summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorU-TTG\pego <pego@NL2W7L-101492.ttg.global>2014-07-14 16:53:47 +0200
committerU-TTG\pego <pego@NL2W7L-101492.ttg.global>2014-07-14 16:53:47 +0200
commit0263c6b40d4cc843efa34baf05d4d7d77b8ce53e (patch)
treed642bfe8f614e8158d167de11f10697505947678
parent83af236086378785cbec01e1d70863a5d2382fbc (diff)
downloadnavigation-0263c6b40d4cc843efa34baf05d4d7d77b8ce53e.tar.gz
Initial version of TrafficIncidentsService API, documentation and PoC
-rwxr-xr-xapi/traffic-incidents-service/introspect.xsl183
-rwxr-xr-xapi/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.xml269
-rwxr-xr-xapi/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.xml1108
-rwxr-xr-xdoc/traffic-incidents-service/GENIVI TrafficIncidentsService API.rtf44942
-rwxr-xr-xdoc/traffic-incidents-service/TrafficIncidentsServiceTestPlan.odtbin0 -> 107625 bytes
-rwxr-xr-xdoc/traffic-incidents-service/poc/GENIVI Traffic Incidents POC - User Manual.docbin0 -> 925696 bytes
-rwxr-xr-xdoc/traffic-incidents-service/tools/GENIVI TrafficIncidents API.rtf336
-rwxr-xr-xsrc/traffic-incidents-service/ReadMe.txt250
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/.classpath9
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/.project21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/META-INF/MANIFEST.MF18
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/ReadMe.confluence1
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecore165
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecorediag429
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.genmodel64
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/plugin.xml29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/pom.xml34
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonFactory.java74
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonPackage.java582
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Coordinate.java110
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/LocalizedString.java190
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/RectangularArea.java92
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Version.java263
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonFactoryImpl.java135
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonPackageImpl.java413
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CoordinateImpl.java272
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/LocalizedStringImpl.java380
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/RectangularAreaImpl.java247
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/VersionImpl.java468
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonAdapterFactory.java181
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonSwitch.java182
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocation.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocationInfo.java24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocation.java161
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocationInfo.java157
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/Location.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationFactory.java112
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationInfo.java86
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationPackage.java796
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocation.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationInfo.java59
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationType.java269
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationImpl.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationInfoImpl.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationImpl.java332
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationInfoImpl.java391
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationFactoryImpl.java230
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationImpl.java48
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationInfoImpl.java252
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationPackageImpl.java484
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationImpl.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationInfoImpl.java170
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationAdapterFactory.java253
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationSwitch.java276
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/.classpath16
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/.project23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/META-INF/MANIFEST.MF19
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/ReadMe.confluence6
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecore45
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecorediag186
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.genmodel37
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecore186
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecorediag694
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.genmodel110
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.xml28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/pom.xml42
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanExpression.java47
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanLiteral.java87
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ClassAttribute.java225
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonOperator.java326
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonPredicate.java118
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DownCastPredicate.java143
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicExpression.java199
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicLogicalOperator.java219
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprFactory.java148
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprPackage.java1559
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InOperator.java218
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InPredicate.java186
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/IsSetPredicate.java60
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ListOperator.java243
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Literal.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MetaOperator.java188
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MultiplicityPredicate.java194
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Predicate.java28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SignedIntegerLiteral.java87
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/StringLiteral.java87
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SubClassPredicate.java141
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryExpression.java91
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryLogicalOperator.java191
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanExpressionImpl.java67
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanLiteralImpl.java204
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ClassAttributeImpl.java587
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ComparisonPredicateImpl.java580
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DownCastPredicateImpl.java412
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DyadicExpressionImpl.java593
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprFactoryImpl.java394
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprPackageImpl.java934
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/InPredicateImpl.java613
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/IsSetPredicateImpl.java245
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/LiteralImpl.java57
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/MultiplicityPredicateImpl.java638
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/PredicateImpl.java60
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SignedIntegerLiteralImpl.java204
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/StringLiteralImpl.java207
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SubClassPredicateImpl.java462
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/UnaryExpressionImpl.java306
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterExprUtil.java714
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprAdapterFactory.java379
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprSwitch.java429
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/booleanexpr/BooleanExprTests.java439
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Address.java84
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Car.java84
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Family.java282
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyFactory.java85
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyPackage.java707
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Person.java160
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Sexe.java215
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/WealthyFamily.java83
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/AddressImpl.java204
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/CarImpl.java204
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyFactoryImpl.java197
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyImpl.java604
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyPackageImpl.java437
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/PersonImpl.java352
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/WealthyFamilyImpl.java200
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilyAdapterFactory.java199
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilySwitch.java202
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/.classpath9
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/.project21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/META-INF/MANIFEST.MF15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/ReadMe.confluence5
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecore67
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecorediag260
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.genmodel53
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/plugin.xml20
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/pom.xml34
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/ColorType.java323
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconData.java84
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDefinition.java138
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDescriptor.java138
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDimension.java215
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconInfo.java138
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSet.java456
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSize.java192
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetFactory.java94
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetPackage.java890
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDataImpl.java204
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDefinitionImpl.java372
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDescriptorImpl.java289
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconInfoImpl.java309
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSetImpl.java851
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSizeImpl.java380
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetFactoryImpl.java232
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetPackageImpl.java549
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetAdapterFactory.java217
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetSwitch.java222
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/.classpath10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/.project23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/META-INF/MANIFEST.MF16
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/ReadMe.confluence4
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecore41
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecorediag131
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.genmodel42
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/plugin.xml20
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/pom.xml38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReference.java138
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingService.java49
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingServiceListener.java43
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceType.java215
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceTypes.java16
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceImpl.java83
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceListenerImpl.java73
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceImpl.java292
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefFactoryImpl.java175
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefPackageImpl.java314
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefFactory.java67
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefPackage.java295
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefAdapterFactory.java163
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefSwitch.java159
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.classpath30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.project28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/ReadMe.confluence1
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/pom.xml60
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/src/main/java/org/genivi/trafficincidentsservice/dbus/impl/DBusTrafficIncidentsService.java108
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.classpath29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.project27
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/ReadMe.confluence1
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/pom.xml39
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/AdviceStruct.java36
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/ApplicabilityStruct.java28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseDiscriminatedVariant.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseStruct.java15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseType.java33
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/DirectCauseStruct.java54
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LaneRestrictionsStruct.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LinkedCauseStruct.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocalizedStringStruct.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocationReferenceStruct.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitSectionStruct.java32
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitStruct.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentFeedDBus.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentStruct.java106
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VehicleRelatedRestrictionStruct.java36
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VersionStruct.java35
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/StructUtil.java1447
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentFeedDBusProxy.java319
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentsUpdatesAdaptor.java363
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AdviceStruct.java36
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/ApplicabilityStruct.java28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationInfoStruct.java28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationStruct.java12
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CategoryDefinitionStruct.java39
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseDiscriminatedVariant.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseStruct.java15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseType.java33
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CoordinateStruct.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/DirectCauseStruct.java54
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/FeedInformationStruct.java40
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDataStruct.java22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDefinitionStruct.java26
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDescriptorStruct.java26
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconInfoStruct.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSetStruct.java52
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSizeStruct.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LaneRestrictionsStruct.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationInfoStruct.java51
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationStruct.java33
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinkedCauseStruct.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocalizedStringStruct.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationDiscriminatedVariant.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoDiscriminatedVariant.java34
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoStruct.java15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoType.java34
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationStruct.java14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationType.java34
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationInfoStruct.java32
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationStruct.java12
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/RectangularAreaStruct.java26
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitSectionStruct.java32
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitStruct.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentStruct.java138
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentsDBus.java145
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TwoTuple.java24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VehicleRelatedRestrictionStruct.java36
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VersionStruct.java35
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/StructUtil.java2236
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsAdaptor.java1578
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsDBusProxy.java1623
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsListenerProxy.java131
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.classpath12
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.project25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/META-INF/MANIFEST.MF18
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/ReadMe.confluence3
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecore139
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecorediag529
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.genmodel64
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.xml21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/pom.xml46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Advice.java224
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Applicability.java129
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Cause.java87
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/DirectCause.java398
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LaneRestrictions.java141
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LinkedCause.java80
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimit.java145
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimitSection.java190
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TrafficIncident.java886
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/VehicleRelatedRestriction.java197
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentFactory.java128
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentPackage.java1730
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/AdviceImpl.java425
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/ApplicabilityImpl.java281
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/CauseImpl.java204
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/DirectCauseImpl.java761
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LaneRestrictionsImpl.java292
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LinkedCauseImpl.java201
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitImpl.java352
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitSectionImpl.java378
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TrafficIncidentImpl.java1527
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/VehicleRelatedRestrictionImpl.java435
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentFactoryImpl.java199
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentPackageImpl.java882
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentAdapterFactory.java287
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentSwitch.java306
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.classpath11
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.project24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/META-INF/MANIFEST.MF17
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/ReadMe.confluence3
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecore150
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecorediag568
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.genmodel70
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.xml21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/pom.xml42
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Advice.java236
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Applicability.java129
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Cause.java87
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/DirectCause.java408
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LaneRestrictions.java141
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LinkedCause.java80
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimit.java172
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimitSection.java190
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TrafficIncident.java1107
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/VehicleRelatedRestriction.java197
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/AdviceImpl.java451
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/ApplicabilityImpl.java275
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/CauseImpl.java200
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/DirectCauseImpl.java781
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LaneRestrictionsImpl.java288
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LinkedCauseImpl.java198
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitImpl.java386
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitSectionImpl.java378
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TrafficIncidentImpl.java1914
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/VehicleRelatedRestrictionImpl.java430
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentFactoryImpl.java199
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentPackageImpl.java947
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentFactory.java128
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentPackage.java1898
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentAdapterFactory.java287
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentSwitch.java306
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.classpath22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.project30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/META-INF/MANIFEST.MF24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/ReadMe.confluence3
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecore683
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecorediag696
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.genmodel348
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.xml22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/pom.xml58
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/CategoryDefinition.java218
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/FeedInformation.java321
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/LengthUnit.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/SpeedUnit.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TextDetailLevel.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeed.java116
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedListener.java74
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedStatus.java245
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentField.java718
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidents.java383
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsListener.java422
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsStatus.java241
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/WeightUnit.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/CategoryDefinitionImpl.java464
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/FeedInformationImpl.java556
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedImpl.java141
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedListenerImpl.java103
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsImpl.java441
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsListenerImpl.java488
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsserviceFactoryImpl.java362
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsservicePackageImpl.java903
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsserviceFactory.java92
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsservicePackage.java788
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceAdapterFactory.java219
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceSwitch.java225
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.classpath10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.project23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/META-INF/MANIFEST.MF15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/ReadMe.confluence3
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/build.properties14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore348
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecorediag1726
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel352
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.properties8
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.xml21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/pom.xml38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Accident.java348
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AdviceCode.java618
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AnimalsOnRoadway.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/BrokenDownVehicles.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/CauseCode.java996
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DangerousEndOfQueue.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DoNotLeaveYourVehicle.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DriveCarefully.java240
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DrivingNotAllowed.java186
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/EffectCode.java348
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ExtremeWeatherConditions.java321
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Fire.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/FollowDiversion.java186
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/GivingPathVehiclesFromBehind.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/HazardousDrivingConditions.java402
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Impassibility.java321
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/LaneRestrictionType.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MajorEvent.java402
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MalfunctioningRoadsideEquipment.java294
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/NarrowLanes.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ObjectsOnTheRoad.java348
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/OvertakingNotAllowed.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PeopleOnRoadway.java240
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PoliceCheckpoint.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Precipitation.java240
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RecklessPersons.java240
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RegulatoryMeasure.java319
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RescueAndRecoveryWorkInProgress.java294
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RestrictionType.java905
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RiskOfFire.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RoadWorks.java240
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotOperating.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotUsable.java294
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlipperyRoad.java429
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlowMovingVehicles.java375
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Tendency.java348
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TimeDelay.java240
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TrafficCongestion.java186
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/UseTollLanes.java213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VehicleType.java456
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VisibilityReduced.java375
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/WarningLevel.java267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesFactoryImpl.java1124
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesPackageImpl.java1267
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesFactory.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesPackage.java1347
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.classpath7
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.project16
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/ReadMe.confluence5
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/pom.xml28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/AUTHORS37
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/COPYING680
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.bat10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sgml182
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sh10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.bat10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sgml126
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sh10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.bat10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sgml212
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sh10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.bat10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sgml107
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sh10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/INSTALL101
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.bat10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sgml177
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sh10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/Makefile328
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/README32
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/changelog342
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/compile.bat17
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/dbus-java.tex1266
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/DBus.java490
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/AbstractConnection.java1075
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ArrayFrob.java173
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/BusAddress.java41
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/CallbackHandler.java22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Container.java88
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusAsyncReply.java111
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusCallInfo.java51
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusConnection.java780
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterface.java31
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterfaceName.java27
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java152
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMatchRule.java143
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMemberName.java27
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSerializable.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSigHandler.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSignal.java276
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DirectConnection.java251
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientMap.java116
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientQueue.java107
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Error.java142
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ExportedObject.java166
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Gettext.java31
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/InternalSignal.java20
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Marshalling.java629
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Message.java1225
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageReader.java175
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageWriter.java72
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodCall.java126
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodReturn.java69
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodTuple.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectPath.java23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectTree.java163
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Path.java40
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Position.java28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteInvocationHandler.java191
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteObject.java56
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/SignalTuple.java51
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/StrongReference.java43
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Struct.java23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Transport.java825
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Tuple.java24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/TypeSignature.java37
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt16.java79
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt32.java79
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt64.java151
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Variant.java112
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/Caller.java83
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/CreateInterface.java711
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/DBusDaemon.java878
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IdentifierMangler.java43
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IterableNodeList.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/ListDBus.java74
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/NodeListIterator.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/StructStruct.java54
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusException.java26
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusExecutionException.java40
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalDBusException.java20
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalException.java15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/InternalMessageException.java20
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MarshallingException.java20
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageFormatException.java23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageProtocolVersionException.java22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageTypeException.java22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NonFatalException.java15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NotConnected.java23
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/UnknownTypeCodeException.java21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfileStruct.java32
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/Profiler.java40
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfilerInstance.java28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestException.java24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestNewInterface.java26
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface.java57
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface2.java54
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSerializable.java48
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface.java97
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface2.java45
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct.java32
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct2.java31
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct3.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestTuple.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartInterface.java29
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartObject.java18
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_client.java512
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_server.java344
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/profile.java381
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test.java965
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_low_level.java56
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_client.java42
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_server.java94
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_client.java42
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_server.java55
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusListType.java44
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusMapType.java47
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusStructType.java44
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusEntry.java123
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusTableModel.java127
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusViewer.java363
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/FileSaver.java191
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/IntrospectAction.java148
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveAllAction.java62
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveFileAction.java85
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/StringStreamFactory.java47
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TabbedSaveAction.java108
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TextFile.java49
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/tmp-session.conf31
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/translations/en_GB.po213
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/.classpath6
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/.project17
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/ReadMe.confluence24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/pom.xml22
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/DataReceptionListener.java14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelClient.java16
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelDataReceptionListener.java14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelServer.java21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/impl/DummyAsyn2WayCommunicationChannel.java83
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/Broadcast.java15
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/BroadcastReception.java17
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/impl/DummyBroadcastChannel.java65
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatter.java75
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatterDemo.java43
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.demo/uml/CommunicationChannel.pngbin0 -> 39088 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.classpath6
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.project14
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/ReadMe.confluence4
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/pom.xml24
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/COPYING21
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/INSTALL10
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/Makefile142
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/README41
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cgi-java.c64
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/changelog73
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGI.java565
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIErrorHandler.java41
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIHeaderSentException.java39
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIInvalidContentFormatException.java39
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGITools.java48
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CheckBox.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DefaultErrorHandler.java67
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DisplayField.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DropDown.java131
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Field.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HTMLForm.java141
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HiddenField.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/MultipleDropDown.java115
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/NewTable.java42
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Password.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Radio.java46
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/SubmitButton.java54
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextArea.java57
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextField.java69
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/testcgi.java78
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.classbin0 -> 5845 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.java597
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.jpp597
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/DOMPrinter.java114
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecInputStream.java142
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecOutputStream.java137
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/InOutCopier.java115
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeInputStream.java155
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeOutputStream.java141
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test.java48
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test2.java39
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test3.java45
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/NotConnectedException.java37
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USInputStream.java84
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USOutputStream.java69
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixIOException.java44
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixServerSocket.java129
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocket.java320
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocketAddress.java85
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/java-unix.h112
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testclient.java51
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testserver.java55
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/utils/Hexdump.java149
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/unix-java.c464
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project11
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml182
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/.classpath28
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/.project26
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/OpenLR-encoder.log0
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/ReadMe.confluence33
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/TextParts.properties1
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/TextParts_en_US.properties1
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/Category definitions screenshot 1.pngbin0 -> 24120 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/Icons and Iconsets screenshot 1.pngbin0 -> 34923 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot - status only.pngbin0 -> 7209 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot 1.pngbin0 -> 64516 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/Map Client screenshot 1.pngbin0 -> 444466 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/Thumbs.dbbin0 -> 31232 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/doc/Warning Client screenshot 1.pngbin0 -> 17547 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/Thumbs.dbbin0 -> 8192 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId1.pngbin0 -> 201 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId2.pngbin0 -> 211 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId3.pngbin0 -> 207 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId4.pngbin0 -> 206 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId5.pngbin0 -> 210 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId6.pngbin0 -> 207 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId1.pngbin0 -> 161 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId2.pngbin0 -> 170 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId3.pngbin0 -> 168 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId4.pngbin0 -> 168 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId5.pngbin0 -> 171 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId6.pngbin0 -> 172 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId1.pngbin0 -> 168 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId2.pngbin0 -> 177 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId3.pngbin0 -> 181 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId4.pngbin0 -> 183 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId5.pngbin0 -> 188 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId6.pngbin0 -> 184 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId1.pngbin0 -> 169 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId2.pngbin0 -> 174 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId3.pngbin0 -> 170 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId4.pngbin0 -> 174 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId5.pngbin0 -> 181 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId6.pngbin0 -> 172 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId1.pngbin0 -> 166 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId2.pngbin0 -> 174 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId3.pngbin0 -> 172 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId4.pngbin0 -> 178 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId5.pngbin0 -> 178 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId6.pngbin0 -> 179 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId1.pngbin0 -> 216 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId2.pngbin0 -> 233 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId3.pngbin0 -> 237 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId4.pngbin0 -> 227 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId5.pngbin0 -> 229 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId6.pngbin0 -> 231 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId1.pngbin0 -> 216 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId2.pngbin0 -> 230 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId3.pngbin0 -> 232 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId4.pngbin0 -> 222 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId5.pngbin0 -> 235 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId6.pngbin0 -> 229 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId1.pngbin0 -> 190 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId2.pngbin0 -> 198 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId3.pngbin0 -> 196 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId4.pngbin0 -> 199 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId5.pngbin0 -> 200 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId6.pngbin0 -> 202 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId1.pngbin0 -> 193 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId2.pngbin0 -> 202 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId3.pngbin0 -> 198 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId4.pngbin0 -> 201 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId5.pngbin0 -> 206 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId6.pngbin0 -> 202 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId1.pngbin0 -> 198 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId2.pngbin0 -> 204 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId3.pngbin0 -> 203 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId4.pngbin0 -> 206 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId5.pngbin0 -> 210 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId6.pngbin0 -> 206 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.bmpbin0 -> 12342 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.pngbin0 -> 4369 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/Thumbs.dbbin0 -> 7680 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/TomTom GENIVI Traffic Info license.rtf172
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo.nsi223
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfoBackground.bmpbin0 -> 1029654 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo_32x32.icobin0 -> 4286 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/genivi_chrome_1_transparent.pngbin0 -> 261894 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/notify.wavbin0 -> 119384 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/road-smaller.pngbin0 -> 109872 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/nsis/road.jpgbin0 -> 41204 bytes
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/pom.xml72
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/resources/Traffic Info demo.sh1
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationData.java30
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationReferenceDecoder.java25
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/openlr/OpenLRDecoder.java359
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/refimpl/LocationReferenceDecodingHandlerRefImpl.java79
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsListener.java258
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsUpdatesListener.java54
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/AreasFilter.java56
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpirationHandler.java48
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpressionFilter.java45
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java67
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/LocationReferenceHandler.java193
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ManagedTrafficIncident.java40
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/RectangularAreaUtils.java34
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentConvertor.java272
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentFilterUtils.java85
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentsService.java1426
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/UpdateListenerInfo.java70
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/TrafficIncidentTextGenerator.java50
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/BasicTextGenerator.java877
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en_US.java38
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_nl.java39
-rwxr-xr-xtest/traffic-incidents-service/ReadMe.txt219
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.classpath39
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.project20
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/pom.xml67
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecEventToTrafficIncidentConversion.java1485
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecUtil.java27
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecDecodingUnit.java55
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecFeedRefImpl.java140
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandler.java23
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandlerRefImpl.java114
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.classpath10
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.project23
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/META-INF/MANIFEST.MF16
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/ReadMe.confluence1
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/build.properties14
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecore71
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecorediag181
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.genmodel31
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.properties8
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.xml20
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/pom.xml38
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/LineOfTable1.java404
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/OperatingTime.java23
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponent.java134
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponentFastTuning.java180
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesFactory.java74
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesPackage.java585
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/LineOfTable1Impl.java825
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/OperatingTimeImpl.java46
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentFastTuningImpl.java363
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentImpl.java285
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesFactoryImpl.java133
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesPackageImpl.java393
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesAdapterFactory.java179
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesSwitch.java179
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.classpath15
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.project23
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/META-INF/MANIFEST.MF16
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/ReadMe.confluence7
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/build.properties14
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecore477
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecorediag1746
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.genmodel405
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.properties8
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.xml22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/pom.xml42
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Accident.java348
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Advice.java177
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AdviceCode.java645
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AnimalsOnRoadway.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/BrokenDownVehicles.java213
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Cause.java85
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/CauseCode.java1046
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DangerousEndOfQueue.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DirectCause.java430
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DoNotLeaveYourVehicle.java213
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DriveCarefully.java240
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DrivingNotAllowed.java186
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EffectCode.java348
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Event.java598
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventFactory.java128
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventPackage.java2991
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ExtremeWeatherConditions.java321
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Fire.java211
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/FollowDiversion.java186
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/GivingPathVehiclesFromBehind.java213
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/HazardousDrivingConditions.java398
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Impassibility.java319
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LaneRestrictionType.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LinkedCause.java160
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MajorEvent.java402
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MalfunctioningRoadsideEquipment.java294
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/NarrowLanes.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ObjectsOnTheRoad.java346
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/OvertakingNotAllowed.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PeopleOnRoadway.java240
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PoliceCheckpoint.java213
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Precipitation.java240
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RecklessPersons.java240
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RegulatoryMeasure.java317
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RescueAndRecoveryWorkInProgress.java288
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RestrictionType.java942
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RiskOfFire.java213
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RoadWorks.java240
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotOperating.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotUsable.java294
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlipperyRoad.java427
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlowMovingVehicles.java375
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TECMessage.java111
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimit.java145
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimitSection.java190
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Tendency.java348
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TimeDelay.java240
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TrafficCongestion.java186
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/UseTollLanes.java213
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRelatedRestriction.java168
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRestriction.java104
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleType.java483
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VisibilityReduced.java375
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/WarningLevel.java267
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/AdviceImpl.java388
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/CauseImpl.java203
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/DirectCauseImpl.java787
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventFactoryImpl.java1234
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventImpl.java1079
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventPackageImpl.java1978
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/LinkedCauseImpl.java361
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TECMessageImpl.java312
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitImpl.java352
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitSectionImpl.java378
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRelatedRestrictionImpl.java373
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRestrictionImpl.java262
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventAdapterFactory.java287
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventSwitch.java314
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.classpath20
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.project20
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/ReadMe.confluence2
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/pom.xml36
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message1234.pngbin0 -> 12651 bytes
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 A Overview.pngbin0 -> 22260 bytes
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 B Causes.pngbin0 -> 31154 bytes
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 C VehicleRestrictions.pngbin0 -> 18390 bytes
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message7878.pngbin0 -> 25625 bytes
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/java/org/genivi/trafficinfo/tpeg/tecservice/testsetplayer/TestPlayerTecService.java415
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.classpath12
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.project24
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/ReadMe.confluence22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/pom.xml31
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegDecodingUnit.java15
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwAdaptationLayers.java16
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwClients.java15
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1.java58
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1Entry.java48
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/TpegSfwRefImpl.java195
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcastadaptionlayer/refimpl/BroadcastAdaptationLayerImplementation.java48
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/registeredvalues/ApplicationId.java72
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/app/fwk/ApplicationServer.java17
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/BroadcastFramework.java35
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/BroadcastFrameworkImplementation.java187
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/GuideToServiceTable1Entry.java48
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.classpath9
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.project21
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/META-INF/MANIFEST.MF15
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/ReadMe.confluence3
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/build.properties14
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore172
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecorediag891
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.genmodel110
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.properties8
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.xml22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/pom.xml31
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/DLR1LocationReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/GLRLocationReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/KoreanNodeLinkLocationReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocalisedShortString.java136
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocationReferencingContainer.java46
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMasterMessage.java45
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMessagePart.java98
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCSwitch.java188
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MessageManagementContainer.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/Method.java23
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MultiPartMessageDirectory.java81
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/OLRLocationReference.java54
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameCountedProtected.java108
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedCountedProtected.java135
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedProtected.java108
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameProtected.java81
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompMultiplex.java47
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceComponentFrame.java109
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceFrame.java109
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceIdentifier.java109
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/StreamDirectoryFrame.java101
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TETLocationReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TMCLocationReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TPEGLocationReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TimeServiceComponentFrame.java136
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesFactory.java299
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesPackage.java3012
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameTemplate.java164
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType0.java54
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType1.java54
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/VICSLinkReference.java22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/DLR1LocationReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/GLRLocationReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/KoreanNodeLinkLocationReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocalisedShortStringImpl.java284
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocationReferencingContainerImpl.java153
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMasterMessageImpl.java155
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMessagePartImpl.java264
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCSwitchImpl.java427
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MessageManagementContainerImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MethodImpl.java46
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MultiPartMessageDirectoryImpl.java222
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/OLRLocationReferenceImpl.java164
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameCountedProtectedImpl.java275
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedCountedProtectedImpl.java329
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedProtectedImpl.java275
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameProtectedImpl.java221
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompMultiplexImpl.java157
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceComponentFrameImpl.java274
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceFrameImpl.java316
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceIdentifierImpl.java276
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/StreamDirectoryFrameImpl.java281
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TETLocationReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TMCLocationReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TPEGLocationReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TimeServiceComponentFrameImpl.java291
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesFactoryImpl.java408
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesPackageImpl.java1348
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameTemplateImpl.java384
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType0Impl.java180
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType1Impl.java180
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/VICSLinkReferenceImpl.java44
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesAdapterFactory.java629
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesSwitch.java721
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.classpath6
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.project14
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/ReadMe.confluence1
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/pom.xml19
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/src/main/java/org/genivi/trafficinfo/tpeg/tpegtables/LanguageCode.java225
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.classpath42
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.project22
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/ReadMe.confluence1
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/pom.xml72
-rwxr-xr-xtest/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/src/main/java/org/genivi/trafficinfo/trafficincidenttestfeed/TrafficIncidentTestFeed.java135
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.classpath29
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.project14
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/ReadMe.confluence3
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/GENIVI_TomTom_64x64.bmpbin0 -> 12342 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Thumbs.dbbin0 -> 9728 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Traffic Info license.rtf173
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficIncidentsPOC.nsi197
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficInfoBackground.bmpbin0 -> 1029654 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/pom.xml46
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/RunTrafficIncidentsPOC.sh17
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsConfiguration/RunTrafficIncidentsConfiguration.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsFeed/RunTrafficIncidentsFeed.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsListClient/RunTrafficIncidentsListClient.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsMapClient/RunTrafficIncidentsMapClient.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsService/RunTrafficIncidentsService.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsWarningClient/RunTrafficIncidentsWarningClient.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.classpath30
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.project14
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/ReadMe.confluence1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/pom.xml60
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/src/main/java/org/genivi/trafficinfo/trafficincidentsconfiguration/TrafficIncidentsConfiguration.java558
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.classpath43
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.project22
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain$MyTrafficIncidentsUpdatesListener.classbin0 -> 7699 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.classbin0 -> 9950 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.classbin0 -> 3847 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.classbin0 -> 3042 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.classbin0 -> 4401 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.classbin0 -> 3622 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.classbin0 -> 1258 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.classbin0 -> 9605 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay$ListCategoryDefinition.classbin0 -> 6503 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.classbin0 -> 17161 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.classbin0 -> 8441 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.classbin0 -> 7057 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/pom.xml80
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/Traffic Info demo.sh1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/tomtom_utrecht_2008_04.db3bin0 -> 16984064 bytes
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.java686
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.java101
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.java76
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.java186
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.java158
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.java37
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.java209
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.java2165
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.java265
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.java240
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.classpath45
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.project23
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/ReadMe.confluence2
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/pom.xml64
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/src/main/java/org/genivi/trafficinfo/trafficincidentslistclient/TrafficIncidentsListClient.java106
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.classpath45
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.project23
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/ReadMe.confluence1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/pom.xml64
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/src/main/java/org/genivi/trafficinfo/trafficincidentsmapclient/TrafficIncidentsMapClient.java117
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.classpath45
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.project23
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/ReadMe.confluence1
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/pom.xml64
-rwxr-xr-xtest/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/src/main/java/org/genivi/trafficinfo/trafficincidentswarningclient/TrafficIncidentsWarningClient.java63
-rwxr-xr-xtest/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project11
-rwxr-xr-xtest/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml233
1029 files changed, 239408 insertions, 0 deletions
diff --git a/api/traffic-incidents-service/introspect.xsl b/api/traffic-incidents-service/introspect.xsl
new file mode 100755
index 0000000..29cc34c
--- /dev/null
+++ b/api/traffic-incidents-service/introspect.xsl
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+ <!--
+ Copyright (C) 2005 Lennart Poettering.
+
+ Licensed under the Academic Free License version 2.1
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+
+ <!-- v0.1 26-06-2011 Marco Residori: Added support for inline documentation (tags doc,line and version) -->
+ <!-- v0.2 12-01-2012 Marco Residori: Added support for inline documentation (tags status,type) -->
+ <!-- v0.3 18-01-2012 Marco Residori: Added support for inline documentation (tag error) -->
+ <!-- v0.4 14-03-2012 Marco Residori: Added support for property-type and property-access. Replaced tag 'type' with 'obligation' -->
+
+ <!-- $Id$ -->
+ <xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
+ <xsl:template match="/">
+ <html>
+ <!-- head -->
+ <head>
+ <title>DBUS Introspection Data</title>
+ <style type="text/css">
+ body { color: black; background-color: white }
+ h1 { font-family: sans-serif }
+ ul { list-style-type: none; margin-bottom: 10px }
+ li { font-family: sans-serif }
+ .keyword { font-style: italic }
+ .type { font-weight: bold; font-size: 10pt }
+ .symbol { font-family: monospace }
+ .title { font-style: italic; color: blue }
+ .interface { padding: 10px; margin: 10px }
+
+ .line { font-style: italic; font-size:8pt; color: green}
+ .version { font-family: monospace }
+ .status { font-weight: bold; font-size:6pt }
+ .obligation { font-weight: bold; font-size:6pt }
+ .error { font-style: italic; font-size:8pt; color: black}
+ </style>
+ </head>
+ <!-- body -->
+ <body>
+ <!-- interfaces -->
+ <xsl:for-each select="node/interface">
+ <div class="interface">
+ <h1>
+ <span class="keyword">interface</span>
+ <xsl:text> </xsl:text>
+ <span class="title">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="version">version</span>
+ <xsl:text> </xsl:text>
+ <span class="version">
+ <xsl:value-of select="version"/>
+ </span>
+ </h1>
+ <ul>
+ <xsl:apply-templates select="doc"/>
+ </ul>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- methods, signals and properties -->
+ <xsl:for-each select="method|signal|property">
+ <hr/>
+ <li>
+ <xsl:if test="status !=''">
+ <span class="status">[<xsl:value-of select="status"/>] </span>
+ </xsl:if>
+ <xsl:if test="obligation !=''">
+ <span class="obligation">[<xsl:value-of select="obligation"/>] </span>
+ </xsl:if>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">
+ <xsl:value-of select="name()"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="keyword">
+ <xsl:value-of select="@access"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <ul>
+ <xsl:apply-templates select="annotation"/>
+ <!-- arguments -->
+ <xsl:for-each select="arg">
+ <br/>
+ <xsl:apply-templates select="doc"/>
+ <li>
+ <span class="keyword">
+ <xsl:choose>
+ <xsl:when test="@direction !=''">
+ <xsl:value-of select="@direction"/>
+ </xsl:when>
+ <xsl:when test="name(..) ='signal'">
+ out
+ </xsl:when>
+ <xsl:otherwise>
+ in
+ </xsl:otherwise>
+ </xsl:choose>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="type">
+ <xsl:value-of select="@type"/>
+ </span>
+ <xsl:text> </xsl:text>
+ <span class="symbol">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:text> </xsl:text>
+ </li>
+ </xsl:for-each>
+ <br/>
+ <!-- errors -->
+ <xsl:apply-templates select="error"/>
+ <br/>
+ </ul>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </div>
+ </xsl:for-each>
+ </body>
+ </html>
+ </xsl:template>
+ <xsl:template match="annotation">
+ <li>
+ <span class="keyword">annotation</span>
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ <xsl:text> = </xsl:text>
+ <code>
+ <xsl:value-of select="@value"/>
+ </code>
+ </li>
+ </xsl:template>
+ <xsl:template match="doc">
+ <li>
+ <span class="line">
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:element name="br"/>
+ </xsl:for-each>
+ </span>
+ </li>
+ </xsl:template>
+ <xsl:template match="error">
+ <li>
+ <xsl:apply-templates select="doc"/>
+ <span class="keyword">error</span>
+ <xsl:text> </xsl:text>
+ <span class="error">
+ <code>
+ <xsl:value-of select="@name"/>
+ </code>
+ </span>
+ <xsl:element name="br"/>
+ <br/>
+ </li>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/api/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.xml b/api/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.xml
new file mode 100755
index 0000000..31ce4b6
--- /dev/null
+++ b/api/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.xml
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="introspect.xsd" name="org.genivi.trafficincidentsservice.trafficincidentfeed">
+ <interface name="TrafficIncidentFeed">
+ <version>1.0.0 (06-03-2014)</version>
+ <method name="GetVersion">
+ <doc>
+ <line>getVersion = Get the API version of this interface implemented by the service.</line>
+ </doc>
+ <arg direction="out" name="version" type="(qqqs)">
+ <doc>
+ <line>version (of type Version) = The API version of this interface implemented by the service.</line>
+ <line>Version struct[major, minor, micro, date] = This datatype is used to provide version information.</line>
+ <line>Version.major ('q') = The major version number.</line>
+ <line>Version.minor ('q') = The minor version number.</line>
+ <line>Version.micro ('q') = The micro version number.</line>
+ <line>Version.date ('s') = The date of this version.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetLanguage">
+ <doc>
+ <line>getLanguage = Get the current language. In case of a client/server based Feed, this language can be sent to the server in order to receive any textual information in the right language.</line>
+ </doc>
+ <arg direction="out" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The currently used language, specified as ISO 639-3 language code (lower case).</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The currently used, country specific variant of the language, , specified as ISO 3166-1 alpha 3 country code (upper case).</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddLanguageListener">
+ <doc>
+ <line>addLanguageListener = Add this client as a listener for changes in the current language.</line>
+ </doc>
+ </method>
+ <method name="RemoveLanguageListener">
+ <doc>
+ <line>removeLanguageListener = Remove this client as a listener for changes in the current language.</line>
+ </doc>
+ </method>
+ <method name="Clear">
+ <doc>
+ <line>clear = Clear the internal store of the Traffic Incidents Service. This may be needed if the source of the Traffic Incidents is changed, or if the server indicates that a reset is needed.</line>
+ </doc>
+ </method>
+ <method name="UpdateIncidents">
+ <doc>
+ <line>updateIncidents = Update the Traffic Incidents in the internal store of the Traffic Incidents Service. These updates can consist of incidents to be removed (cancelledIncidentIds), and/or new or updated incidents (updatedIncidents). The 'cancels' are handled before the 'updates'.</line>
+ </doc>
+ <arg direction="in" name="feedId" type="u">
+ <doc>
+ <line>feedId = Unique Id of the Feed providing the update.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="cancelledIncidentIds" type="as">
+ <doc>
+ <line>cancelledIncidentIds = The unique Ids of the incidents to be deleted.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="updatedIncidents" type="a(syiiyiiiiia(yv)a(yya(sss)a(ya(yaia(yay))))a(ya(yaia(yay)))a(bia(nni)a(ya(yaia(yay))))ii(yay))">
+ <doc>
+ <line>updatedIncidents (of type TrafficIncident) = The new or updated incidents.</line>
+ <line>TrafficIncident struct[trafficIncidentId, effectCode, startTime, stopTime, tendency, lengthAffected, averageSpeedAbsolute, delay, segmentSpeedLimit, expectedSpeedAbsolute, causes, advices, applicability, temporarySpeedLimits, expirationTime, updateTime, locationReference] = Data model description of a Traffic Incident.</line>
+ <line>TrafficIncident.trafficIncidentId ('s') = unique Id</line>
+ <line>TrafficIncident.effectCode ('y') = Effect Code, optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>TrafficIncident.startTime ('i') = Start Time in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.stopTime ('i') = Stop Time in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.tendency ('y') = Tendency, optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>TrafficIncident.lengthAffected ('i') = Length of the event in meters, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.averageSpeedAbsolute ('i') = Average speed in m/s at the given location, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.delay ('i') = Delay in minutes, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.segmentSpeedLimit ('i') = Maximum speed in m/s., optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.expectedSpeedAbsolute ('i') = The expectedSpeedAbsolute, in m/s, is used to signal the expected
+ (normal) speed of traffic through the problem location. Value range 0, .. , 127 (0x7f).
+ Optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.causes (of type CauseDiscriminatedUnion) = Causes.</line>
+ <line>CauseDiscriminatedUnion struct[causeType, causeUnion] = A type to transfer any Cause sub-type, together with an indication of which sub-type it is.</line>
+ <line>CauseDiscriminatedUnion.causeType ('y') = Indentifies the Cause sub-type contained in the causeUnion.</line>
+ <line>CauseDiscriminatedUnion.causeUnion (of type CauseUnion) = The Cause.</line>
+ <line>CauseUnion variant[directCause, linkedCause] = Union for the Cause sub-types.</line>
+ <line>CauseUnion.directCause (of type DirectCause) = Direct Cause.</line>
+ <line>DirectCause struct[mainCause, warningLevel, unverifiedInformation, subCause, lengthAffected, causeOffset, laneRestrictions, freeText] = A Direct Cause for the incident, i.e. all details of the cause are specified here.</line>
+ <line>DirectCause.mainCause ('y') = Main Cause for the incident.</line>
+ <line>DirectCause.warningLevel ('y') = Warning Level. Optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>DirectCause.unverifiedInformation ('b') = Indication of whether the information has been verified by an authority (like the police) or not.</line>
+ <line>DirectCause.subCause ('y') = More detailed cause. The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.</line>
+ <line>DirectCause.lengthAffected ('i') = Length of the cause in meters, optional value, -1 indicates not specified.</line>
+ <line>DirectCause.causeOffset ('i') = Offset (in metres) from the start of the Cause to the end of the Problem Location.
+ When used together with Affected Length the cause can be positioned within the event more accurately.
+ Without Cause Offset but with Affected Length defined the cause position is not defined.
+ If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location.
+ Value range: 0, .. , 2147483647 (0x7fffffff). Optional value, -1 indicates not specified.</line>
+ <line>DirectCause.laneRestrictions (of type LaneRestrictions) = Lane Restrictions. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>LaneRestrictions struct[laneRestrictionType, numberOfLanes] = Lane Restrictions.</line>
+ <line>LaneRestrictions.laneRestrictionType ('y') = Lane Restriction Type.</line>
+ <line>LaneRestrictions.numberOfLanes ('i') = Number of lanes affected by the Lane Restriction Type. Optional value, -1 indicates not specified.</line>
+ <line>DirectCause.freeText (of type LocalizedString) = Free Text in different languages.</line>
+ <line>LocalizedString struct[languageCode, countryCode, string] = A string in a specified language.</line>
+ <line>LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).</line>
+ <line>LocalizedString.countryCode ('s') = The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).&#xD;
+ Optional, an empty string indicates not specified.</line>
+ <line>LocalizedString.string ('s') = A string in the specified language.</line>
+ <line>CauseUnion.linkedCause (of type LinkedCause) = Linked Cause.</line>
+ <line>LinkedCause struct[mainCause, causeTrafficIncidentId] = A Cause for the incident, with a reference to another incident, which is a cause for this incident.</line>
+ <line>LinkedCause.mainCause ('y') = Main Cause for the incident.</line>
+ <line>LinkedCause.causeTrafficIncidentId ('s') = Id of a TrafficIncident which is a cause for this incident.</line>
+ <line>TrafficIncident.advices (of type Advice) = Advices</line>
+ <line>Advice struct[mainAdvice, subAdvice, freeText, applicability] = Advice.</line>
+ <line>Advice.mainAdvice ('y') = Main advice.</line>
+ <line>Advice.subAdvice ('y') = More detailed advice. The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum.</line>
+ <line>Advice.freeText (of type LocalizedString) = Free Text in different languages.</line>
+ <line>LocalizedString struct[languageCode, countryCode, string] = A string in a specified language.</line>
+ <line>LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).</line>
+ <line>LocalizedString.countryCode ('s') = The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).&#xD;
+ Optional, an empty string indicates not specified.</line>
+ <line>LocalizedString.string ('s') = A string in the specified language.</line>
+ <line>Advice.applicability (of type Applicability) = Applicability of the advice.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.</line>
+ <line>LocationReference struct[locationReferenceType, data] = Map database independent description of a location.</line>
+ <line>LocationReference.locationReferenceType ('y') = The type of location reference.</line>
+ <line>LocationReference.data ('y') = The actual data of the location reference.</line>
+ <line>TrafficIncident.applicability (of type Applicability) = Applicability.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.</line>
+ <line>LocationReference struct[locationReferenceType, data] = Map database independent description of a location.</line>
+ <line>LocationReference.locationReferenceType ('y') = The type of location reference.</line>
+ <line>LocationReference.data ('y') = The actual data of the location reference.</line>
+ <line>TrafficIncident.temporarySpeedLimits (array of type TemporarySpeedLimit) = Temporary speed limit information suitable for display to the driver.</line>
+ <line>TemporarySpeedLimit struct[unitsMPH, offset, temporarySpeedLimitSections, applicability] = One of the highly visible attributes of
+ many roadworks is the imposed Temporary Speed Limit. This component provides the ability to define temporary speed limit
+ information suitable for display to the driver. Temporary Speed limit info associated with the event is defined in either
+ kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the
+ Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of
+ the cause. Applicability can be added if needed.
+ </line>
+ <line>TemporarySpeedLimit.unitsMPH ('b') = Units definition for this Temporary Speed Limit. If true, the unit is mph, else the unit is km/h.</line>
+ <line>TemporarySpeedLimit.offset ('i') = Offset defines the distance in meters from the start of the Temporary speed limit to the end of the
+ Location. If not defined then first SpeedLimitSection starts at the beginning of the Location.
+ Value range: 0, .. , 2147483647 (0x7fffffff)
+ </line>
+ <line>TemporarySpeedLimit.temporarySpeedLimitSections (array of TemporarySpeedLimitSection) = Speed Limit information per section.</line>
+ <line>TemporarySpeedLimitSection struct[speedLimitValue, speedLimitValueWet, speedLimitLength] = Each section of a TemporarySpeedLimit is defined
+ by a speed value and length.
+ A speed value for use in Wet conditions is also optionally available.
+ </line>
+ <line>TemporarySpeedLimitSection.speedLimitValue ('n') = Speed Limit numerical value in kph or mph. Value range: 0, .. , 32767 (0x7fff)</line>
+ <line>TemporarySpeedLimitSection.speedLimitValueWet ('n') = Speed Limit numerical value to be used in wet conditions; in kph or mph.
+ Value range: 0, .. , 32767 (0x7fff)
+ </line>
+ <line>TemporarySpeedLimitSection.speedLimitLength ('i') = Length of the SpeedLimitSection, If this is not defined, then section finishes
+ at end of the Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff)
+ </line>
+ <line>TemporarySpeedLimit.applicability (of type Applicability) = Applicability.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.</line>
+ <line>LocationReference struct[locationReferenceType, data] = Map database independent description of a location.</line>
+ <line>LocationReference.locationReferenceType ('y') = The type of location reference.</line>
+ <line>LocationReference.data ('y') = The actual data of the location reference.</line>
+ <line>TrafficIncident.expirationTime ('i') = The time after which this information is no longer valid.
+ The time is expressed in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT.
+ Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.updateTime ('i') = The time at which the information in this incident was updated.
+ The time is expressed in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT.
+ Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.locationReference (of type LocationReference) = Description of the location.</line>
+ <line>LocationReference struct[locationReferenceType, data] = Map database independent description of a location.</line>
+ <line>LocationReference.locationReferenceType ('y') = The type of location reference.</line>
+ <line>LocationReference.data ('y') = The actual data of the location reference.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="UpdateStatus">
+ <doc>
+ <line>updateStatus = Update the status of a Feed.</line>
+ </doc>
+ <arg direction="in" name="feedId" type="u">
+ <doc>
+ <line>feedId = Unique Id of the Feed providing the status update.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="feedStatus" type="y">
+ <doc>
+ <line>feedStatus (of type TrafficIncidentFeedStatus) = Status of the Feed.</line>
+ <line>enum[UNAVAILABLE (0), CONNECTED (1), DISCONNECTED (2)]</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="incidentsStatus" type="y">
+ <doc>
+ <line>incidentsStatus (of type TrafficIncidentsStatus) = Incident Status of the Feed.</line>
+ <line>enum[UNAVAILABLE (0), PARTLY_AVAILABLE (1), AVAILABLE (2)]</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="RegisterFeed">
+ <doc>
+ <line>registerFeed = Register a Feed that is going to provide Traffic Incidents.
+ A Traffic Incident Feed that wants to provide Traffic Incidents to the TrafficIncidentsService has to register itself
+ via this method. The input parameters provide a description of the Feed. The returned feedId is used to identify the Feed in all
+ methods where the Feed is providing information to the TrafficIncidentsService.</line>
+ </doc>
+ <arg direction="in" name="dataProviderName" type="s">
+ <doc>
+ <line>dataProviderName = Name of the data provider for this Feed, e.g. 'TomTom'.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="protocolName" type="s">
+ <doc>
+ <line>protocolName = Name of the protocol used by this Feed, e.g. 'TPG-TEC'.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="communicationChannelName" type="s">
+ <doc>
+ <line>communicationChannelName = Name of the communication channel used by this Feed, e.g. 'FM Tuner'.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="feedId" type="u">
+ <doc>
+ <line>feedId = Unique Id for the registered Feed.</line>
+ </doc>
+ </arg>
+ </method>
+ <signal name="LanguageChanged">
+ <doc>
+ <line>LanguageChanged =
+ When a client registers itself for being notified of language changes (see AddLanguageListener()),
+ this signal is sent to this client only, to inform this client about the currently used language.
+ On a language change inside the TrafficIncidentsService, there is a broadcast with the new language.
+ The broadcast only actually occurs if there is at least one registered listener (see AddLanguageListener).</line>
+ </doc>
+ <arg direction="out" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The currently used language, specified as ISO 639-3 language code (lower case).</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The currently used, country specific variant of the language, specified as ISO 3166-1 alpha 3 country code (upper case). Optional value, an empty string indicates 'not specified'.</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/api/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.xml b/api/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.xml
new file mode 100755
index 0000000..655336f
--- /dev/null
+++ b/api/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.xml
@@ -0,0 +1,1108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
+<!-- SPDX-License-Identifier: MPL-2.0
+ Copyright (C) 2014, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH
+ This Source Code Form is subject to the terms of the
+ Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ this file, you can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="introspect.xsd" name="org.genivi.trafficincidentsservice.trafficincidents">
+ <interface name="TrafficIncidents">
+ <version>1.0.0 (06-03-2014)</version>
+ <method name="GetVersion">
+ <doc>
+ <line>getVersion = Get the API version of this interface implemented by the service.</line>
+ </doc>
+ <arg direction="out" name="version" type="(qqqs)">
+ <doc>
+ <line>version (of type Version) = The API version of this interface implemented by the service.</line>
+ <line>Version struct[major, minor, micro, date] = This datatype is used to provide version information.</line>
+ <line>Version.major ('q') = The major version number.</line>
+ <line>Version.minor ('q') = The minor version number.</line>
+ <line>Version.micro ('q') = The micro version number.</line>
+ <line>Version.date ('s') = The date of this version.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetLanguage">
+ <doc>
+ <line>getLanguage = Get the current language.</line>
+ </doc>
+ <arg direction="out" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The language, specified as ISO 639-3 language code (lower case).</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetLanguage">
+ <doc>
+ <line>setLanguage = Set the language.</line>
+ </doc>
+ <arg direction="in" name="languageCode" type="s">
+ <doc>
+ <line>languageCode = The language to be used, specified as ISO 639-3 language code (lower case).</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="countryCode" type="s">
+ <doc>
+ <line>countryCode = The country specific variant for the language to be used, specified as ISO 3166-1 alpha 3 country code (upper case).</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetTimeFormat">
+ <doc>
+ <line>setTimeFormat = Set the format to be used for representing time in textual information.</line>
+ </doc>
+ <arg direction="in" name="timeFormat" type="s">
+ <doc>
+ <line>timeFormat = Time format specification.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetDateFormat">
+ <doc>
+ <line>setDateFormat = Set the format to be used for representing dates in textual information.</line>
+ </doc>
+ <arg direction="in" name="dateFormat" type="s">
+ <doc>
+ <line>dateFormat = Date format specification.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetLengthUnit">
+ <doc>
+ <line>setLengthUnit = Set the unit to be used for representing lengths and distances in textual information.</line>
+ </doc>
+ <arg direction="in" name="lengthUnit" type="y">
+ <doc>
+ <line>lengthUnit = Length unit.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetWeightUnit">
+ <doc>
+ <line>setWeightUnit = Set the unit to be used for representing weights in textual information.</line>
+ </doc>
+ <arg direction="in" name="weightUnit" type="y">
+ <doc>
+ <line>weightUnit = weight unit</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetApplicability">
+ <doc>
+ <line>getApplicability = Get the filter expression which specifies which Traffic Incidents are NOT applicable.</line>
+ </doc>
+ <arg direction="out" name="filterExpression" type="s">
+ <doc>
+ <line>filterExpression = Filter expression. An empty string indicates that no filtering takes place.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="SetApplicability">
+ <doc>
+ <line>setApplicability = Set the filter expression which specifies which Traffic Incidents are NOT applicable.</line>
+ </doc>
+ <arg direction="in" name="filterExpression" type="s">
+ <doc>
+ <line>filterExpression = Filter expression. An empty string indicates that no filtering shall take place.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="ReserveIconSetIds">
+ <doc>
+ <line>reserveIconSetIds = Reserve a number of IconSet Ids.</line>
+ </doc>
+ <arg direction="in" name="numberOfIds" type="i">
+ <doc>
+ <line>numberOfIds = The number of Ids to be reserved.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="iconSetIds" type="ai">
+ <doc>
+ <line>iconSetIds = The reserved Ids.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="FreeIconSetIds">
+ <doc>
+ <line>freeIconSetIds = Free a set of IconSet Ids.</line>
+ </doc>
+ <arg direction="in" name="iconSetIds" type="ai">
+ <doc>
+ <line>iconSetIds = The Ids to be freed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetIconSets">
+ <doc>
+ <line>getIconSets = Get all IconSet definitions.</line>
+ </doc>
+ <arg direction="out" name="iconSets" type="a(iyya(iii)bisa(si))">
+ <doc>
+ <line>iconSets (of type IconSet) = The IconSet definitions.</line>
+ <line>IconSet struct[iconSetId, colorType, dimension, size, dayTimeIcon, themeId, mediumType, iconDescriptors] = Specifies the characteristics of a set of icons.</line>
+ <line>IconSet.iconSetId ('i') = Unique Id of the IconSet.</line>
+ <line>IconSet.colorType ('y') = Color Type. Optional, 0 indicates not specified.</line>
+ <line>IconSet.dimension ('y') = Dimensionality. Optional, 0 indicates not specified.</line>
+ <line>IconSet.size (of type IconSize) = Size of the Icon. Optional, the array contains at most 1 element.</line>
+ <line>IconSize struct[width, height, dpi] = Size of an icon.</line>
+ <line>IconSize.width ('i') = Width of the icon in pixels.</line>
+ <line>IconSize.height ('i') = Height of the icon in pixels.</line>
+ <line>IconSize.dpi ('i') = Dots per inch. Optional, 0 indicates not specified</line>
+ <line>IconSet.dayTimeIcon ('b') = Daytime (true) or nighttime (false) indication.</line>
+ <line>IconSet.themeId ('i') = Theme Identifier.</line>
+ <line>IconSet.mediumType ('s') = Medium type for the icons in this set, e.g. &quot;image/png&quot;.</line>
+ <line>IconSet.iconDescriptors (of type IconDescriptor) = Descriptors of the icons.</line>
+ <line>IconDescriptor struct[url, iconId] = Icon Descriptor.</line>
+ <line>IconDescriptor.url ('s') = Location of the icon data. Optional, an empty string indicates not specified.</line>
+ <line>IconDescriptor.iconId ('i') = Unique Id, within an IconSet, of the icon.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddIconSetDefinitions">
+ <doc>
+ <line>addIconSetDefinitions = Add IconSet definitions.</line>
+ </doc>
+ <arg direction="in" name="iconSets" type="a(iyya(iii)bisa(si))">
+ <doc>
+ <line>iconSets (of type IconSet) = The IconSet definitions to be added.</line>
+ <line>IconSet struct[iconSetId, colorType, dimension, size, dayTimeIcon, themeId, mediumType, iconDescriptors] = Specifies the characteristics of a set of icons.</line>
+ <line>IconSet.iconSetId ('i') = Unique Id of the IconSet.</line>
+ <line>IconSet.colorType ('y') = Color Type. Optional, 0 indicates not specified.</line>
+ <line>IconSet.dimension ('y') = Dimensionality. Optional, 0 indicates not specified.</line>
+ <line>IconSet.size (of type IconSize) = Size of the Icon. Optional, the array contains at most 1 element.</line>
+ <line>IconSize struct[width, height, dpi] = Size of an icon.</line>
+ <line>IconSize.width ('i') = Width of the icon in pixels.</line>
+ <line>IconSize.height ('i') = Height of the icon in pixels.</line>
+ <line>IconSize.dpi ('i') = Dots per inch. Optional, 0 indicates not specified</line>
+ <line>IconSet.dayTimeIcon ('b') = Daytime (true) or nighttime (false) indication.</line>
+ <line>IconSet.themeId ('i') = Theme Identifier.</line>
+ <line>IconSet.mediumType ('s') = Medium type for the icons in this set, e.g. &quot;image/png&quot;.</line>
+ <line>IconSet.iconDescriptors (of type IconDescriptor) = Descriptors of the icons.</line>
+ <line>IconDescriptor struct[url, iconId] = Icon Descriptor.</line>
+ <line>IconDescriptor.url ('s') = Location of the icon data. Optional, an empty string indicates not specified.</line>
+ <line>IconDescriptor.iconId ('i') = Unique Id, within an IconSet, of the icon.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="RemoveIconSetDefinitions">
+ <doc>
+ <line>removeIconSetDefinitions = Remove IconSet definitions.</line>
+ </doc>
+ <arg direction="in" name="iconSetIds" type="ai">
+ <doc>
+ <line>iconSetIds = The Ids of the IconSets to be removed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetIconDefinitions">
+ <doc>
+ <line>getIconDefinitions = Get the icon definitions for a specified set of icons.</line>
+ </doc>
+ <arg direction="in" name="iconInfos" type="a(ii)">
+ <doc>
+ <line>iconInfos (of type IconInfo) = The set of icons for which the definition is to be obtained.</line>
+ <line>IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.</line>
+ <line>IconInfo.iconSetId ('i') = IconSet Id.</line>
+ <line>IconInfo.iconId ('i') = Icon Id.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="iconDefinitions" type="a((ii)(ay))">
+ <doc>
+ <line>iconDefinitions (of type IconDefinition) = The icon definitions.</line>
+ <line>IconDefinition struct[iconInfo, iconData] = Icon Definition.</line>
+ <line>IconDefinition.iconInfo (of type IconInfo) = The reference to the icon.</line>
+ <line>IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.</line>
+ <line>IconInfo.iconSetId ('i') = IconSet Id.</line>
+ <line>IconInfo.iconId ('i') = Icon Id.</line>
+ <line>IconDefinition.iconData (of type IconData) = The binary icon data.</line>
+ <line>IconData struct[data] = Binary icon data.</line>
+ <line>IconData.data ('y') = Description missing</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddIconDefinitions">
+ <doc>
+ <line>addIconDefinitions = Add icon definitions.</line>
+ </doc>
+ <arg direction="in" name="iconDefinitions" type="a((ii)(ay))">
+ <doc>
+ <line>iconDefinitions (of type IconDefinition) = The icon definitions to be added.</line>
+ <line>IconDefinition struct[iconInfo, iconData] = Icon Definition.</line>
+ <line>IconDefinition.iconInfo (of type IconInfo) = The reference to the icon.</line>
+ <line>IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.</line>
+ <line>IconInfo.iconSetId ('i') = IconSet Id.</line>
+ <line>IconInfo.iconId ('i') = Icon Id.</line>
+ <line>IconDefinition.iconData (of type IconData) = The binary icon data.</line>
+ <line>IconData struct[data] = Binary icon data.</line>
+ <line>IconData.data ('y') = Description missing</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="RemoveIconDefinitions">
+ <doc>
+ <line>removeIconDefinitions = Remove icon definitions.</line>
+ </doc>
+ <arg direction="in" name="iconInfos" type="a(ii)">
+ <doc>
+ <line>iconInfos (of type IconInfo) = The set of icons for which the definition is to be removed.</line>
+ <line>IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.</line>
+ <line>IconInfo.iconSetId ('i') = IconSet Id.</line>
+ <line>IconInfo.iconId ('i') = Icon Id.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="ReserveCategoryIds">
+ <doc>
+ <line>reserveCategoryIds = Reserve a number of Category Ids.</line>
+ </doc>
+ <arg direction="in" name="numberOfIds" type="i">
+ <doc>
+ <line>numberOfIds = The number of Ids to be reserved.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds = The reserved Ids.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="FreeCategoryIds">
+ <doc>
+ <line>freeCategoryIds = Free a set of Category Ids.</line>
+ </doc>
+ <arg direction="in" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds = The Ids to be freed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetCategoryDefinitions">
+ <doc>
+ <line>getCategoryDefinitions = Get all Category definitions.</line>
+ </doc>
+ <arg direction="out" name="categoryDefinitions" type="a(a(sss)ia(ii)s)">
+ <doc>
+ <line>categoryDefinitions (of type CategoryDefinition) = The Category definitions.</line>
+ <line>CategoryDefinition struct[localizedNames, categoryId, icons, expression] = The definition of a category of Traffic Incidents.</line>
+ <line>CategoryDefinition.localizedNames (of type LocalizedString) = The name of the category in different languages.</line>
+ <line>LocalizedString struct[languageCode, countryCode, string] = A string in a specified language.</line>
+ <line>LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).</line>
+ <line>LocalizedString.countryCode ('s') = The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).&#xD;
+ Optional, an empty string indicates not specified.</line>
+ <line>LocalizedString.string ('s') = A string in the specified language.</line>
+ <line>CategoryDefinition.categoryId ('i') = The unique Id of the category.</line>
+ <line>CategoryDefinition.icons (of type IconInfo) = The icons related to the category.</line>
+ <line>IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.</line>
+ <line>IconInfo.iconSetId ('i') = IconSet Id.</line>
+ <line>IconInfo.iconId ('i') = Icon Id.</line>
+ <line>CategoryDefinition.expression ('s') = Filter expression. A Traffic Incident that passes the related filter, is part of the category.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddCategoryDefinitions">
+ <doc>
+ <line>addCategoryDefinitions = Add Category definitions.</line>
+ </doc>
+ <arg direction="in" name="categoryDefinitions" type="a(a(sss)ia(ii)s)">
+ <doc>
+ <line>categoryDefinitions (of type CategoryDefinition) = The Category definitions to be added.</line>
+ <line>CategoryDefinition struct[localizedNames, categoryId, icons, expression] = The definition of a category of Traffic Incidents.</line>
+ <line>CategoryDefinition.localizedNames (of type LocalizedString) = The name of the category in different languages.</line>
+ <line>LocalizedString struct[languageCode, countryCode, string] = A string in a specified language.</line>
+ <line>LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).</line>
+ <line>LocalizedString.countryCode ('s') = The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).&#xD;
+ Optional, an empty string indicates not specified.</line>
+ <line>LocalizedString.string ('s') = A string in the specified language.</line>
+ <line>CategoryDefinition.categoryId ('i') = The unique Id of the category.</line>
+ <line>CategoryDefinition.icons (of type IconInfo) = The icons related to the category.</line>
+ <line>IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.</line>
+ <line>IconInfo.iconSetId ('i') = IconSet Id.</line>
+ <line>IconInfo.iconId ('i') = Icon Id.</line>
+ <line>CategoryDefinition.expression ('s') = Filter expression. A Traffic Incident that passes the related filter, is part of the category.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="RemoveCategoryDefinitions">
+ <doc>
+ <line>removeCategoryDefinitions = Remove Category definitions.</line>
+ </doc>
+ <arg direction="in" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds = The Ids of the Category definitions to be removed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTrafficIncidentIds">
+ <doc>
+ <line>getTrafficIncidentIds = Get all the Ids of the current traffic incidents.</line>
+ </doc>
+ <arg direction="in" name="warningLevels" type="ay">
+ <doc>
+ <line>warningLevels =
+ Only incidents with one of the specified warning levels will be returned.
+ In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds =
+ Only incidents with one of the specified cateory Ids will be returned.
+ In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="trafficIncidentIds" type="ai">
+ <doc>
+ <line>trafficIncidentIds = The Ids of the requested traffic incidents.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTrafficIncidentIdsInAreas">
+ <doc>
+ <line>getTrafficIncidentIdsInAreas = Get the Ids of the traffic incidents in a number of areas.</line>
+ </doc>
+ <arg direction="in" name="warningLevels" type="ay">
+ <doc>
+ <line>warningLevels =
+ Only incidents with one of the specified warning levels will be returned.
+ In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds =
+ Only incidents with one of the specified cateory Ids will be returned.
+ In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="areas" type="a((ddi)(ddi))">
+ <doc>
+ <line>areas (of type RectangularArea) = The areas for which the traffic incident Ids are requested.</line>
+ <line>RectangularArea struct[bottomLeft, topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.</line>
+ <line>RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="trafficIncidentIds" type="ai">
+ <doc>
+ <line>trafficIncidentIds = The Ids of the requested traffic incidents.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTrafficIncidents">
+ <doc>
+ <line>getTrafficIncidents = Get a number of Traffic Incidents.</line>
+ </doc>
+ <arg direction="in" name="trafficIncidentIds" type="ai">
+ <doc>
+ <line>trafficIncidentIds = The Ids of the requested Traffic Incidents.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="includeTextFields" type="b">
+ <doc>
+ <line>includeTextFields = The text fields in the returned Traffic Incident will only be filled in if this parameter is set to true.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="trafficIncidents" type="a(iysiiysiiiiia(yv)a(yv)a(yysa(ya(yaia(yv))))a(ya(yaia(yv)))a(bia(nni)a(ya(yaia(yv))))a(yv)asasasa((ddi)(ddi))ai)">
+ <doc>
+ <line>trafficIncidents (array of type TrafficIncident) =
+ The requested Traffic Incidents. This list may be shorter than the request list
+ as nothing is returned for Ids that don't exist (anymore).</line>
+ <line>TrafficIncident struct[trafficIncidentId, effectCode, effectText, startTime, stopTime, tendency, tendencyText, lengthAffected, averageSpeedAbsolute, delay, segmentSpeedLimit, expectedSpeedAbsolute, causes, location, advices, applicability, temporarySpeedLimits, locationInfo, causeTexts, applicabilityTexts, adviceTexts, locationBoundingBox, categoryIds] = Data model description of a Traffic Incident.</line>
+ <line>TrafficIncident.trafficIncidentId ('i') = unique Id</line>
+ <line>TrafficIncident.effectCode ('y') = Effect Code, optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>TrafficIncident.effectText ('s') = Textual representation of the Effect Code, optional value, an empty string indicates not specified.</line>
+ <line>TrafficIncident.startTime ('i') = Start Time in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.stopTime ('i') = Stop Time in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.tendency ('y') = Tendency, optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>TrafficIncident.tendencyText ('s') = Textual representation of the Tendency, optional value, an empty string indicates not specified.</line>
+ <line>TrafficIncident.lengthAffected ('i') = Length of the event in meters, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.averageSpeedAbsolute ('i') = Average speed in m/s at the given location, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.delay ('i') = Delay in minutes, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.segmentSpeedLimit ('i') = Maximum speed in m/s., optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.expectedSpeedAbsolute ('i') = The expectedSpeedAbsolute, in m/s, is used to signal the expected
+ (normal) speed of traffic through the problem location. Value range 0, .. , 127 (0x7f).
+ Optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.causes (of type CauseDiscriminatedUnion) = Causes.</line>
+ <line>CauseDiscriminatedUnion struct[causeType, causeUnion] = A type to transfer any Cause sub-type, together with an indication of which sub-type it is.</line>
+ <line>CauseDiscriminatedUnion.causeType ('y') = Indentifies the Cause sub-type contained in the causeUnion.</line>
+ <line>CauseDiscriminatedUnion.causeUnion (of type CauseUnion) = The Cause.</line>
+ <line>CauseUnion variant[directCause, linkedCause] = Union for the Cause sub-types.</line>
+ <line>CauseUnion.directCause (of type DirectCause) = Direct Cause.</line>
+ <line>DirectCause struct[mainCause, warningLevel, unverifiedInformation, subCause, lengthAffected, causeOffset, laneRestrictions, freeText] = A Direct Cause for the incident, i.e. all details of the cause are specified here.</line>
+ <line>DirectCause.mainCause ('y') = Main Cause for the incident.</line>
+ <line>DirectCause.warningLevel ('y') = Warning Level. Optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>DirectCause.unverifiedInformation ('b') = Indication of whether the information has been verified by an authority (like the police) or not.</line>
+ <line>DirectCause.subCause ('y') = More detailed cause. The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.</line>
+ <line>DirectCause.lengthAffected ('i') = Length of the cause in meters, optional value, -1 indicates not specified.</line>
+ <line>DirectCause.causeOffset ('i') = Offset (in metres) from the start of the Cause to the end of the Problem Location.
+ When used together with Affected Length the cause can be positioned within the event more accurately.
+ Without Cause Offset but with Affected Length defined the cause position is not defined.
+ If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location.
+ Value range: 0, .. , 2147483647 (0x7fffffff). Optional value, -1 indicates not specified.</line>
+ <line>DirectCause.laneRestrictions (of type LaneRestrictions) = Lane Restrictions. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>LaneRestrictions struct[laneRestrictionType, numberOfLanes] = Lane Restrictions.</line>
+ <line>LaneRestrictions.laneRestrictionType ('y') = Lane Restriction Type.</line>
+ <line>LaneRestrictions.numberOfLanes ('i') = Number of lanes affected by the Lane Restriction Type. Optional value, -1 indicates not specified.</line>
+ <line>DirectCause.freeText ('s') = Free Text.</line>
+ <line>CauseUnion.linkedCause (of type LinkedCause) = Linked Cause.</line>
+ <line>LinkedCause struct[mainCause, causeTrafficIncidentId] = A Cause for the incident, with a reference to another incident, which is a cause for this incident.</line>
+ <line>LinkedCause.mainCause ('y') = Main Cause for the incident.</line>
+ <line>LinkedCause.causeTrafficIncidentId ('s') = Id of a TrafficIncident which is a cause for this incident.</line>
+ <line>TrafficIncident.location (of type LocationDiscriminatedUnion) = Location. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.</line>
+ <line>LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.</line>
+ <line>LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.</line>
+ <line>LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations</line>
+ <line>LocationUnion.pointLocation (of type PointLocation) = Point Location.</line>
+ <line>PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.</line>
+ <line>LocationUnion.linearLocation (of type LinearLocation) = Linear Location.</line>
+ <line>LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.</line>
+ <line>LinearLocation.segments ('x') = The database segments of the location.</line>
+ <line>LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.</line>
+ <line>LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.</line>
+ <line>LocationUnion.areaLocation (of type AreaLocation) = Area Location.</line>
+ <line>AreaLocation struct[] = The location is an area, e.g. an area with fog.</line>
+ <line>TrafficIncident.advices (of type Advice) = Advices</line>
+ <line>Advice struct[mainAdvice, subAdvice, freeText, applicability] = Advice.</line>
+ <line>Advice.mainAdvice ('y') = Main advice.</line>
+ <line>Advice.subAdvice ('y') = More detailed advice. The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum.</line>
+ <line>Advice.freeText ('s') = Free Text.</line>
+ <line>Advice.applicability (of type Applicability) = Applicability of the advice.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocation] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.</line>
+ <line>VehicleRelatedRestriction.restrictionLocation (of type LocationDiscriminatedUnion) = Restriction location.</line>
+ <line>LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.</line>
+ <line>LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.</line>
+ <line>LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.</line>
+ <line>LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations</line>
+ <line>LocationUnion.pointLocation (of type PointLocation) = Point Location.</line>
+ <line>PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.</line>
+ <line>LocationUnion.linearLocation (of type LinearLocation) = Linear Location.</line>
+ <line>LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.</line>
+ <line>LinearLocation.segments ('x') = The database segments of the location.</line>
+ <line>LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.</line>
+ <line>LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.</line>
+ <line>LocationUnion.areaLocation (of type AreaLocation) = Area Location.</line>
+ <line>AreaLocation struct[] = The location is an area, e.g. an area with fog.</line>
+ <line>TrafficIncident.applicability (of type Applicability) = Applicability.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocation] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.</line>
+ <line>VehicleRelatedRestriction.restrictionLocation (of type LocationDiscriminatedUnion) = Restriction location.</line>
+ <line>LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.</line>
+ <line>LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.</line>
+ <line>LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.</line>
+ <line>LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations</line>
+ <line>LocationUnion.pointLocation (of type PointLocation) = Point Location.</line>
+ <line>PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.</line>
+ <line>LocationUnion.linearLocation (of type LinearLocation) = Linear Location.</line>
+ <line>LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.</line>
+ <line>LinearLocation.segments ('x') = The database segments of the location.</line>
+ <line>LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.</line>
+ <line>LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.</line>
+ <line>LocationUnion.areaLocation (of type AreaLocation) = Area Location.</line>
+ <line>AreaLocation struct[] = The location is an area, e.g. an area with fog.</line>
+ <line>TrafficIncident.temporarySpeedLimits (array of type TemporarySpeedLimit) = Temporary speed limit information suitable for display to the driver.</line>
+ <line>TemporarySpeedLimit struct[unitsMPH, offset, temporarySpeedLimitSections, applicability] = One of the highly visible attributes of
+ many roadworks is the imposed Temporary Speed Limit. This component provides the ability to define temporary speed limit
+ information suitable for display to the driver. Temporary Speed limit info associated with the event is defined in either
+ kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the
+ Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of
+ the cause. Applicability can be added if needed.
+ </line>
+ <line>TemporarySpeedLimit.unitsMPH ('b') = Units definition for this Temporary Speed Limit. If true, the unit is mph, else the unit is km/h.</line>
+ <line>TemporarySpeedLimit.offset ('i') = Offset defines the distance in meters from the start of the Temporary speed limit to the end of the
+ Location. If not defined then first SpeedLimitSection starts at the beginning of the Location.
+ Value range: 0, .. , 2147483647 (0x7fffffff)
+ </line>
+ <line>TemporarySpeedLimit.temporarySpeedLimitSections (array of TemporarySpeedLimitSection) = Speed Limit information per section.</line>
+ <line>TemporarySpeedLimitSection struct[speedLimitValue, speedLimitValueWet, speedLimitLength] = Each section of a TemporarySpeedLimit is defined
+ by a speed value and length.
+ A speed value for use in Wet conditions is also optionally available.
+ </line>
+ <line>TemporarySpeedLimitSection.speedLimitValue ('n') = Speed Limit numerical value in kph or mph. Value range: 0, .. , 32767 (0x7fff)</line>
+ <line>TemporarySpeedLimitSection.speedLimitValueWet ('n') = Speed Limit numerical value to be used in wet conditions; in kph or mph.
+ Value range: 0, .. , 32767 (0x7fff)
+ </line>
+ <line>TemporarySpeedLimitSection.speedLimitLength ('i') = Length of the SpeedLimitSection, If this is not defined, then section finishes
+ at end of the Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff)
+ </line>
+ <line>TemporarySpeedLimit.applicability (of type Applicability) = Applicability.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.</line>
+ <line>LocationReference struct[locationReferenceType, data] = Map database independent description of a location.</line>
+ <line>LocationReference.locationReferenceType ('y') = The type of location reference.</line>
+ <line>LocationReference.data ('y') = The actual data of the location reference.</line>
+ <line>TrafficIncident.locationInfo (of type LocationInfoDiscriminatedUnion) = Information about the location.</line>
+ <line>LocationInfoDiscriminatedUnion struct[locationInfoType, locationInfoUnion] = A type to transfer any type of Location Information, together with an indication of which Location Information Type it is.</line>
+ <line>LocationInfoDiscriminatedUnion.locationInfoType ('y') = Indentifies the Location Information Type contained in the locationInformationUnion.</line>
+ <line>LocationInfoDiscriminatedUnion.locationInfoUnion (of type LocationInfoUnion) = The Location Information.</line>
+ <line>LocationInfoUnion variant[pointLocationInfo, linearLocationInfo, areaLocationInfo] = Union for the different types of Location Information</line>
+ <line>LocationInfoUnion.pointLocationInfo (of type PointLocationInfo) = Point Location Information.</line>
+ <line>PointLocationInfo struct[name, mainLocation, locationType] = Point Location specific Location Information.</line>
+ <line>PointLocationInfo.name ('s') = Name of the location.</line>
+ <line>PointLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>PointLocationInfo.locationType ('y') = The type of point location.</line>
+ <line>LocationInfoUnion.linearLocationInfo (of type LinearLocationInfo) = Linear Location Information.</line>
+ <line>LinearLocationInfo struct[name, mainLocation, fromLocationName, fromLocationParentName, toLocationName, toLocationParentName, coordinates] = Linear Location specific Location Information.</line>
+ <line>LinearLocationInfo.name ('s') = Name of the location.</line>
+ <line>LinearLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>LinearLocationInfo.fromLocationName ('s') = Name of the 'from' location.</line>
+ <line>LinearLocationInfo.fromLocationParentName ('s') = Name of parent of the 'from' location.</line>
+ <line>LinearLocationInfo.toLocationName ('s') = Name of the 'to' location.</line>
+ <line>LinearLocationInfo.toLocationParentName ('s') = Name of the parent of the 'to' location.</line>
+ <line>LinearLocationInfo.coordinates (of type Coordinate) = List of coordinates of the location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>LocationInfoUnion.areaLocationInfo (of type AreaLocationInfo) = Area Location Information.</line>
+ <line>AreaLocationInfo struct[name, mainLocation] = Area Location specific Location Information.</line>
+ <line>AreaLocationInfo.name ('s') = Name of the location.</line>
+ <line>AreaLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>TrafficIncident.causeTexts ('s') = Textual representations of the causes.</line>
+ <line>TrafficIncident.applicabilityTexts ('s') = Textual representations of the applicability.</line>
+ <line>TrafficIncident.adviceTexts ('s') = Textual representations of the advices.</line>
+ <line>TrafficIncident.locationBoundingBox (of type RectangularArea) = A bounding box in around the location.</line>
+ <line>RectangularArea struct[bottomLeft, topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.</line>
+ <line>RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>TrafficIncident.categoryIds ('i') = Category Ids.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTrafficIncidentsFields">
+ <doc>
+ <line>getTrafficIncidentsFields =
+ Get a number of Traffic Incidents, where only specific fields are filled in.
+ The field TRAFFIC_INCIDENT_ID is always filled in, independent of whether it is requested or not.
+ </line>
+ </doc>
+ <arg direction="in" name="trafficIncidentIds" type="ai">
+ <doc>
+ <line>trafficIncidentIds = The Ids of the requested Traffic Incidents.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="trafficIncidentFields" type="ay">
+ <doc>
+ <line>trafficIncidentFields = The fields (attributes) to be filled in in the Traffic Incident.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="trafficIncidents" type="a(iysiiysiiiiia(yv)a(yv)a(yysa(ya(yaia(yv))))a(ya(yaia(yv)))a(bia(nni)a(ya(yaia(yv))))a(yv)asasasa((ddi)(ddi))ai)">
+ <doc>
+ <line>trafficIncidents (array of type TrafficIncident) =
+ The requested Traffic Incidents, with only the requested fields filled in.
+ This list may be shorter than the request list as nothing is returned for
+ Ids that don't exist (anymore).</line>
+ <line>TrafficIncident struct[trafficIncidentId, effectCode, effectText, startTime, stopTime, tendency, tendencyText, lengthAffected, averageSpeedAbsolute, delay, segmentSpeedLimit, expectedSpeedAbsolute, causes, location, advices, applicability, locationInfo, causeTexts, applicabilityTexts, adviceTexts, locationBoundingBox, categoryIds] = Data model description of a Traffic Incident.</line>
+ <line>TrafficIncident.trafficIncidentId ('i') = unique Id</line>
+ <line>TrafficIncident.effectCode ('y') = Effect Code, optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>TrafficIncident.effectText ('s') = Textual representation of the Effect Code, optional value, an empty string indicates not specified.</line>
+ <line>TrafficIncident.startTime ('i') = Start Time in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.stopTime ('i') = Stop Time in minutes since the standard base time known as &quot;the epoch&quot;, namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified</line>
+ <line>TrafficIncident.tendency ('y') = Tendency, optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>TrafficIncident.tendencyText ('s') = Textual representation of the Tendency, optional value, an empty string indicates not specified.</line>
+ <line>TrafficIncident.lengthAffected ('i') = Length of the event in meters, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.averageSpeedAbsolute ('i') = Average speed in m/s at the given location, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.delay ('i') = Delay in minutes, optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.segmentSpeedLimit ('i') = Maximum speed in m/s., optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.expectedSpeedAbsolute ('i') = The expectedSpeedAbsolute, in m/s, is used to signal the expected
+ (normal) speed of traffic through the problem location. Value range 0, .. , 127 (0x7f).
+ Optional value, -1 indicates not specified.</line>
+ <line>TrafficIncident.causes (of type CauseDiscriminatedUnion) = Causes.</line>
+ <line>CauseDiscriminatedUnion struct[causeType, causeUnion] = A type to transfer any Cause sub-type, together with an indication of which sub-type it is.</line>
+ <line>CauseDiscriminatedUnion.causeType ('y') = Indentifies the Cause sub-type contained in the causeUnion.</line>
+ <line>CauseDiscriminatedUnion.causeUnion (of type CauseUnion) = The Cause.</line>
+ <line>CauseUnion variant[directCause, linkedCause] = Union for the Cause sub-types.</line>
+ <line>CauseUnion.directCause (of type DirectCause) = Direct Cause.</line>
+ <line>DirectCause struct[mainCause, warningLevel, unverifiedInformation, subCause, lengthAffected, causeOffset, laneRestrictions, freeText] = A Direct Cause for the incident, i.e. all details of the cause are specified here.</line>
+ <line>DirectCause.mainCause ('y') = Main Cause for the incident.</line>
+ <line>DirectCause.warningLevel ('y') = Warning Level. Optional value, NOT_SPECIFIED indicates not specified.</line>
+ <line>DirectCause.unverifiedInformation ('b') = Indication of whether the information has been verified by an authority (like the police) or not.</line>
+ <line>DirectCause.subCause ('y') = More detailed cause. The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.</line>
+ <line>DirectCause.lengthAffected ('i') = Length of the cause in meters, optional value, -1 indicates not specified.</line>
+ <line>DirectCause.causeOffset ('i') = Offset (in metres) from the start of the Cause to the end of the Problem Location.
+ When used together with Affected Length the cause can be positioned within the event more accurately.
+ Without Cause Offset but with Affected Length defined the cause position is not defined.
+ If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location.
+ Value range: 0, .. , 2147483647 (0x7fffffff). Optional value, -1 indicates not specified.</line>
+ <line>DirectCause.laneRestrictions (of type LaneRestrictions) = Lane Restrictions. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>LaneRestrictions struct[laneRestrictionType, numberOfLanes] = Lane Restrictions.</line>
+ <line>LaneRestrictions.laneRestrictionType ('y') = Lane Restriction Type.</line>
+ <line>LaneRestrictions.numberOfLanes ('i') = Number of lanes affected by the Lane Restriction Type. Optional value, -1 indicates not specified.</line>
+ <line>DirectCause.freeText ('s') = Free Text.</line>
+ <line>CauseUnion.linkedCause (of type LinkedCause) = Linked Cause.</line>
+ <line>LinkedCause struct[mainCause, causeTrafficIncidentId] = A Cause for the incident, with a reference to another incident, which is a cause for this incident.</line>
+ <line>LinkedCause.mainCause ('y') = Main Cause for the incident.</line>
+ <line>LinkedCause.causeTrafficIncidentId ('s') = Id of a TrafficIncident which is a cause for this incident.</line>
+ <line>TrafficIncident.location (of type LocationDiscriminatedUnion) = Location. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.</line>
+ <line>LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.</line>
+ <line>LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.</line>
+ <line>LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations</line>
+ <line>LocationUnion.pointLocation (of type PointLocation) = Point Location.</line>
+ <line>PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.</line>
+ <line>LocationUnion.linearLocation (of type LinearLocation) = Linear Location.</line>
+ <line>LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.</line>
+ <line>LinearLocation.segments ('x') = The database segments of the location.</line>
+ <line>LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.</line>
+ <line>LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.</line>
+ <line>LocationUnion.areaLocation (of type AreaLocation) = Area Location.</line>
+ <line>AreaLocation struct[] = The location is an area, e.g. an area with fog.</line>
+ <line>TrafficIncident.advices (of type Advice) = Advices</line>
+ <line>Advice struct[mainAdvice, subAdvice, freeText, applicability] = Advice.</line>
+ <line>Advice.mainAdvice ('y') = Main advice.</line>
+ <line>Advice.subAdvice ('y') = More detailed advice. The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum.</line>
+ <line>Advice.freeText ('s') = Free Text.</line>
+ <line>Advice.applicability (of type Applicability) = Applicability of the advice.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocation] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.</line>
+ <line>VehicleRelatedRestriction.restrictionLocation (of type LocationDiscriminatedUnion) = Restriction location.</line>
+ <line>LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.</line>
+ <line>LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.</line>
+ <line>LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.</line>
+ <line>LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations</line>
+ <line>LocationUnion.pointLocation (of type PointLocation) = Point Location.</line>
+ <line>PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.</line>
+ <line>LocationUnion.linearLocation (of type LinearLocation) = Linear Location.</line>
+ <line>LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.</line>
+ <line>LinearLocation.segments ('x') = The database segments of the location.</line>
+ <line>LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.</line>
+ <line>LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.</line>
+ <line>LocationUnion.areaLocation (of type AreaLocation) = Area Location.</line>
+ <line>AreaLocation struct[] = The location is an area, e.g. an area with fog.</line>
+ <line>TrafficIncident.applicability (of type Applicability) = Applicability.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocation] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.</line>
+ <line>VehicleRelatedRestriction.restrictionLocation (of type LocationDiscriminatedUnion) = Restriction location.</line>
+ <line>LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.</line>
+ <line>LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.</line>
+ <line>LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.</line>
+ <line>LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations</line>
+ <line>LocationUnion.pointLocation (of type PointLocation) = Point Location.</line>
+ <line>PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.</line>
+ <line>LocationUnion.linearLocation (of type LinearLocation) = Linear Location.</line>
+ <line>LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.</line>
+ <line>LinearLocation.segments ('x') = The database segments of the location.</line>
+ <line>LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.</line>
+ <line>LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.</line>
+ <line>LocationUnion.areaLocation (of type AreaLocation) = Area Location.</line>
+ <line>AreaLocation struct[] = The location is an area, e.g. an area with fog.</line>
+ <line>TrafficIncident.temporarySpeedLimits (array of type TemporarySpeedLimit) = Temporary speed limit information suitable for display to the driver.</line>
+ <line>TemporarySpeedLimit struct[unitsMPH, offset, temporarySpeedLimitSections, applicability] = One of the highly visible attributes of
+ many roadworks is the imposed Temporary Speed Limit. This component provides the ability to define temporary speed limit
+ information suitable for display to the driver. Temporary Speed limit info associated with the event is defined in either
+ kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the
+ Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of
+ the cause. Applicability can be added if needed.
+ </line>
+ <line>TemporarySpeedLimit.unitsMPH ('b') = Units definition for this Temporary Speed Limit. If true, the unit is mph, else the unit is km/h.</line>
+ <line>TemporarySpeedLimit.offset ('i') = Offset defines the distance in meters from the start of the Temporary speed limit to the end of the
+ Location. If not defined then first SpeedLimitSection starts at the beginning of the Location.
+ Value range: 0, .. , 2147483647 (0x7fffffff)
+ </line>
+ <line>TemporarySpeedLimit.temporarySpeedLimitSections (array of TemporarySpeedLimitSection) = Speed Limit information per section.</line>
+ <line>TemporarySpeedLimitSection struct[speedLimitValue, speedLimitValueWet, speedLimitLength] = Each section of a TemporarySpeedLimit is defined
+ by a speed value and length.
+ A speed value for use in Wet conditions is also optionally available.
+ </line>
+ <line>TemporarySpeedLimitSection.speedLimitValue ('n') = Speed Limit numerical value in kph or mph. Value range: 0, .. , 32767 (0x7fff)</line>
+ <line>TemporarySpeedLimitSection.speedLimitValueWet ('n') = Speed Limit numerical value to be used in wet conditions; in kph or mph.
+ Value range: 0, .. , 32767 (0x7fff)
+ </line>
+ <line>TemporarySpeedLimitSection.speedLimitLength ('i') = Length of the SpeedLimitSection, If this is not defined, then section finishes
+ at end of the Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff)
+ </line>
+ <line>TemporarySpeedLimit.applicability (of type Applicability) = Applicability.</line>
+ <line>Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.</line>
+ <line>Applicability.vehicleType ('y) = Vehicle Type.</line>
+ <line>Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.</line>
+ <line>VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.</line>
+ <line>VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.</line>
+ <line>VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.</line>
+ <line>VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.</line>
+ <line>LocationReference struct[locationReferenceType, data] = Map database independent description of a location.</line>
+ <line>LocationReference.locationReferenceType ('y') = The type of location reference.</line>
+ <line>LocationReference.data ('y') = The actual data of the location reference.</line>
+ <line>TrafficIncident.locationInfo (of type LocationInfoDiscriminatedUnion) = Information about the location.</line>
+ <line>LocationInfoDiscriminatedUnion struct[locationInfoType, locationInfoUnion] = A type to transfer any type of Location Information, together with an indication of which Location Information Type it is.</line>
+ <line>LocationInfoDiscriminatedUnion.locationInfoType ('y') = Indentifies the Location Information Type contained in the locationInformationUnion.</line>
+ <line>LocationInfoDiscriminatedUnion.locationInfoUnion (of type LocationInfoUnion) = The Location Information.</line>
+ <line>LocationInfoUnion variant[pointLocationInfo, linearLocationInfo, areaLocationInfo] = Union for the different types of Location Information</line>
+ <line>LocationInfoUnion.pointLocationInfo (of type PointLocationInfo) = Point Location Information.</line>
+ <line>PointLocationInfo struct[name, mainLocation, locationType] = Point Location specific Location Information.</line>
+ <line>PointLocationInfo.name ('s') = Name of the location.</line>
+ <line>PointLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>PointLocationInfo.locationType ('y') = The type of point location.</line>
+ <line>LocationInfoUnion.linearLocationInfo (of type LinearLocationInfo) = Linear Location Information.</line>
+ <line>LinearLocationInfo struct[name, mainLocation, fromLocationName, fromLocationParentName, toLocationName, toLocationParentName, coordinates] = Linear Location specific Location Information.</line>
+ <line>LinearLocationInfo.name ('s') = Name of the location.</line>
+ <line>LinearLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>LinearLocationInfo.fromLocationName ('s') = Name of the 'from' location.</line>
+ <line>LinearLocationInfo.fromLocationParentName ('s') = Name of parent of the 'from' location.</line>
+ <line>LinearLocationInfo.toLocationName ('s') = Name of the 'to' location.</line>
+ <line>LinearLocationInfo.toLocationParentName ('s') = Name of the parent of the 'to' location.</line>
+ <line>LinearLocationInfo.coordinates (of type Coordinate) = List of coordinates of the location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>LocationInfoUnion.areaLocationInfo (of type AreaLocationInfo) = Area Location Information.</line>
+ <line>AreaLocationInfo struct[name, mainLocation] = Area Location specific Location Information.</line>
+ <line>AreaLocationInfo.name ('s') = Name of the location.</line>
+ <line>AreaLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>TrafficIncident.causeTexts ('s') = Textual representations of the causes.</line>
+ <line>TrafficIncident.applicabilityTexts ('s') = Textual representations of the applicability.</line>
+ <line>TrafficIncident.adviceTexts ('s') = Textual representations of the advices.</line>
+ <line>TrafficIncident.locationBoundingBox (of type RectangularArea) = A bounding box in around the location.</line>
+ <line>RectangularArea struct[bottomLeft, topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.</line>
+ <line>RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>TrafficIncident.categoryIds ('i') = Category Ids.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="GetTexts">
+ <doc>
+ <line>getTexts = Get the texts for a number of Traffic Incidents.</line>
+ </doc>
+ <arg direction="in" name="trafficIncidentIds" type="ai">
+ <doc>
+ <line>trafficIncidentIds = The Ids of the Traffic Incidents for which the texts are requested.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="textDetailLevel" type="y">
+ <doc>
+ <line>textDetailLevel = The amount of detail to be provided in the texts.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="texts" type="as">
+ <doc>
+ <line>texts =
+ Text information per requested traffic incident.
+ The texts will be in the same order as the trafficIncidentIds in the request.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddUpdateListener">
+ <doc>
+ <line>addUpdateListener =
+ Add a listener which is notified in case of any update in the traffic information.
+ In case of an update the Updates() method of the listener is called.</line>
+ </doc>
+ <arg direction="in" name="listenerId" type="i">
+ <doc>
+ <line>listenerId = Unique Id, on this node, generated by the caller.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="warningLevels" type="ay">
+ <doc>
+ <line>warningLevels =
+ Only incidents with one of the specified warning levels will be returned.
+ In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds =
+ Only incidents with one of the specified cateory Ids will be returned.
+ In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="RemoveUpdateListener">
+ <doc>
+ <line>removeUpdateListener =
+ Remove an update listener, which was installed via addUpdateListener.</line>
+ </doc>
+ <arg direction="in" name="listenerId" type="i">
+ <doc>
+ <line>listenerId = Unique Id of the listener to be removed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddAreasUpdateListener">
+ <doc>
+ <line>addAreasUpdateListener =
+ Add a listener which is notified in case of an update in the traffic information in one or more specific area's.
+ In case of an update the UpdatesInAreas() method of the listener is called.</line>
+ </doc>
+ <arg direction="in" name="listenerId" type="i">
+ <doc>
+ <line>listenerId = Unique Id, on this node, generated by the caller.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="warningLevels" type="ay">
+ <doc>
+ <line>warningLevels =
+ Only incidents with one of the specified warning levels will be returned.
+ In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="categoryIds" type="ai">
+ <doc>
+ <line>categoryIds =
+ Only incidents with one of the specified cateory Ids will be returned.
+ In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="areas" type="a((ddi)(ddi))">
+ <doc>
+ <line>areas (of type RectangularArea) = The area's to be observed for changes.</line>
+ <line>RectangularArea struct[bottomLeft, topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.</line>
+ <line>RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="RemoveAreasUpdateListener">
+ <doc>
+ <line>removeAreasUpdateListener =
+ Remove an areas update listener, which was installed via addAreasUpdateListener.</line>
+ </doc>
+ <arg direction="in" name="listenerId" type="i">
+ <doc>
+ <line>listenerId = Unique Id of the listener to be removed.</line>
+ </doc>
+ </arg>
+ </method>
+ <method name="AddTrafficIncidentsStatusListener">
+ <doc>
+ <line>addTrafficIncidentsStatusListener =
+ Indicate to the service that this node is interested in the TrafficIncidentsStatus broadcast.</line>
+ </doc>
+ </method>
+ <method name="RemoveTrafficIncidentsStatusListener">
+ <doc>
+ <line>removeTrafficIncidentsStatusListener =
+ Indicate to the service that this node is no longer interested in the TrafficIncidentsStatus broadcast.</line>
+ </doc>
+ </method>
+ <method name="AddFeedInformationListener">
+ <doc>
+ <line>addFeedInformationListener =
+ Indicate to the service that this node is interested in the FeedInformation broadcast.</line>
+ </doc>
+ </method>
+ <method name="RemoveFeedInformationListener">
+ <doc>
+ <line>removeFeedInformationListener =
+ Indicate to the service that this node is no longer interested in the FeedInformation broadcast.</line>
+ </doc>
+ </method>
+ <signal name="Updates">
+ <doc>
+ <line>updates =
+ If a client has registered itself as a listener for any updates in the traffic incidents,
+ this method is called if there are changes.
+ The list of unchangedTrafficIncidentIds is redundant, but by providing this list, the client
+ doesn't have to maintain a list of 'current traffic incidents'.
+ Example: A client which completely redraws the list if there are changes. The client
+ merges the lists unchangedTrafficIncidentIds, changedTrafficIncidentIds and newTrafficIncidentIds,
+ gets the information for all these incidents from the service and
+ shows the information for these traffic incidents. It can e.g. highlight the new and changed
+ incidents, or put the new incidents on top.
+ Example: A client updates the list on the screen. It removes the deletedTrafficIncidentIds,
+ it updates the changedTrafficIncidentIds and adds the newTrafficIncidentIds.
+ In this case the client only requests the information for the new and changed incidents
+ from the service.</line>
+ </doc>
+ <arg direction="out" name="listenerId" type="i">
+ <doc>
+ <line>listenerId = Unique Id for the listener on a node.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="unchangedTrafficIncidentIds" type="ai">
+ <doc>
+ <line>unchangedTrafficIncidentIds = Ids of the Traffic Incidents which haven't changed.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="changedTrafficIncidentIds" type="ai">
+ <doc>
+ <line>changedTrafficIncidentIds = Ids of the Traffic Incidents which have changed.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="newTrafficIncidentIds" type="ai">
+ <doc>
+ <line>newTrafficIncidentIds = Ids of new Traffic Incidents.</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="deletedTrafficIncidentIds" type="ai">
+ <doc>
+ <line>deletedTrafficIncidentIds = Ids of deleted Traffic Incidents.</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="UpdatesInAreas">
+ <doc>
+ <line>updatesInAreas =
+ If a client has registered itself as a listener for updates in the traffic incidents in one or more area's
+ (via addAreaUpdateListener() or addAreasUpdateListener()),
+ this method is called if there are changes.</line>
+ </doc>
+ <arg direction="out" name="areas" type="a((ddi)(ddi))">
+ <doc>
+ <line>areas (of type RectangularArea) = The area's in which changes have taken place.</line>
+ <line>RectangularArea struct[bottomLeft, topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.</line>
+ <line>RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ <line>RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.</line>
+ <line>Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.</line>
+ <line>Coordinate.latitude ('d') = latitude &gt;= -90 and &lt;= 90</line>
+ <line>Coordinate.longitude ('d') = longitude &gt;= -180 and &lt;= 180</line>
+ <line>Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="TrafficIncidentsStatus">
+ <doc>
+ <line>trafficIncidentsStatus =
+ If a client has registered itself as a listener for changes in the Traffic Incidents status,
+ this method is called upon changes in the Traffic Incidents status.
+ The provided status information is the combined status of the available feeds in the system.
+ Details of how the information is combined is given per parameter.</line>
+ </doc>
+ <arg direction="out" name="trafficIncidentFeedStatus" type="y">
+ <doc>
+ <line>trafficIncidentFeedStatus (of type TrafficIncidentFeedStatus) =
+ The combined status of the Traffic Incident Feeds.
+ If all Feeds are UNAVAILABLE, the status is UNAVAILABLE.
+ Else, if any of the Feeds is CONNECTED, the status is CONNECTED.
+ Else, the status is DISCONNECTED (so there are Feeds available, but none of them is connected).</line>
+ <line>enum[UNAVAILABLE (0), CONNECTED (1), DISCONNECTED (2)]</line>
+ </doc>
+ </arg>
+ <arg direction="out" name="trafficIncidentsStatus" type="y">
+ <doc>
+ <line>trafficIncidentsStatus (of type TrafficIncidentsStatus) =
+ The combined status of the Traffic Incidents.
+ If the status for all the Feeds is AVAILABLE, , the combined status is AVAILABLE.
+ Else, if the status for one of the Feeds is PARTLY_AVAILABLE, the combined status is PARTLY_AVAILABLE.
+ Else, the combined status is UNAVAILABLE (so there are no Traffic Incidents at all).
+
+
+ Meaning of the enum values at this level:
+ UNAVAILABLE: The are no incidents in the system, and currently they can also not be received.
+ PARTLY_AVAILABLE: There are or may be incidents in the system, but the set of incidents is probably not up to date.
+ This means that big changes are possible. Examples: Upon start-up, some incidents have already been received,
+ but there are more incidents to receive. If the user is looking at the map display, new incidents may suddenly appear.
+ When a connection is lost, the information stays valid for some time, but the information may no longer be fully up to date,
+ and at some point in time a lot of incidents may suddenly disappear because they are no longer valid.
+ AVAILABLE: The reception and handling of the incidents is stable, and as up to date as possible with respect to the used protocol(s).
+ It is however still possible that there are currently no Traffic Incidents.</line>
+ <line>enum[UNAVAILABLE (0), PARTLY_AVAILABLE (1), AVAILABLE (2)]</line>
+ </doc>
+ </arg>
+ </signal>
+ <signal name="FeedInformation">
+ <doc>
+ <line>feedInformation =
+ If a client has registered itself as a listener for changes in the Feed Information,&#xD;
+ this method is called upon changes in the Feed Information.</line>
+ </doc>
+ <arg direction="out" name="feedsInformation" type="a(sssyy)">
+ <doc>
+ <line>feedsInformation (of type FeedInformation) = The information per Traffic Incident Feed.</line>
+ <line>FeedInformation struct[dataProviderName, protocolName, communicationChannelName, feedStatus, trafficIncidentsStatus] = This data type provides information about a Traffic Incident Feed.</line>
+ <line>FeedInformation.dataProviderName ('s') = The name of the data provider.</line>
+ <line>FeedInformation.protocolName ('s') =
+ The name of the protocol via which the Traffic Incidents are received.
+ There are no predefined values.</line>
+ <line>FeedInformation.communicationChannelName ('s') =
+ The name of the communication channel.
+ There are no predefined values.</line>
+ <line>FeedInformation.feedStatus (of type TrafficIncidentFeedStatus) = The status of the Feed.</line>
+ <line>enum[UNAVAILABLE (0), CONNECTED (1), DISCONNECTED (2)]</line>
+ <line>FeedInformation.trafficIncidentsStatus (of type TrafficIncidentsStatus) = The status of the Traffic Incidents delivered by this Feed.</line>
+ <line>enum[UNAVAILABLE (0), PARTLY_AVAILABLE (1), AVAILABLE (2)]</line>
+ </doc>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/doc/traffic-incidents-service/GENIVI TrafficIncidentsService API.rtf b/doc/traffic-incidents-service/GENIVI TrafficIncidentsService API.rtf
new file mode 100755
index 0000000..d590243
--- /dev/null
+++ b/doc/traffic-incidents-service/GENIVI TrafficIncidentsService API.rtf
@@ -0,0 +1,44942 @@
+{\rtf1\ansi\deflang3081\ftnbj\uc1\deff0
+{\fonttbl{\f0 \fswiss Arial;}{\f1 \froman \fcharset2 Times New Roman;}{\f2 \froman \fcharset2 Symbol;}{\f3 \fswiss \fcharset0 Times New Roman;}{\f4 \fswiss \fcharset2 Symbol;}{\f5 \fswiss \fcharset0 Arial;}{\f6 \froman \fcharset0 Times New Roman;}{\f7 \fswiss \fcharset0
+Courier New;}{\f8 \fmodern \fcharset0 Courier New;}{\f9 \froman Times New Roman;}{\f10 \fmodern \fcharset0 Times New Roman;}{\f11 \fswiss Times New Roman;}{\f12 \fswiss Wingdings;}{\f13 \fnil Lucida Sans;}{\f14 \fnil Arial Narrow;}}
+{\colortbl ;\red255\green255\blue255 ;\red0\green0\blue0 ;\red0\green64\blue128 ;\red0\green0\blue176 ;\red0\green0\blue210 ;\red0\green0\blue160 ;\red100\green149\blue237 ;\red0\green0\blue255 ;\red255\green255\blue128 ;\red15\green15\blue15 ;\red239\green239\blue239
+;}
+{\stylesheet{\fs20\cf2\cb1\chcbpat1 Normal;}{\cs1\f1\fs20\cf2\cb1\chcbpat1 Default Paragraph Font;}{\s2\snext0\f1\fs28\b\cf2\cb1\chcbpat1 TOC 1;}{\s3\snext0\f1\fs24\b\cf2\cb1\chcbpat1\fi0\li180\ri0 TOC 2;}{\s4\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li360\ri0 TOC 3;}{\s5\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li540\ri0 TOC 4;}{\s6\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li720\ri0 TOC 5
+;}{\s7\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li900\ri0 TOC 6;}{\s8\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li1080\ri0 TOC 7;}{\s9\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li1260\ri0 TOC 8;}{\s10\snext0\f1\fs24\cf2\cb1\chcbpat1\fi0\li1440\ri0 TOC 9;}{\s11\snext0\outlinelevel0\f0\fs32\b\cf3\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel0 Heading 1;}{\s12\snext0\outlinelevel1\f0\fs30\b\cf4\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel1 Heading 2
+;}{\s13\snext0\outlinelevel2\f0\fs28\b\cf5\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel2 Heading 3;}{\s14\snext0\outlinelevel3\f0\fs24\b\cf3\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel3 Heading 4;}{\s15\snext0\outlinelevel4\f0\fs24\b\i\cf3\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel4 Heading 5;}{\s16\snext0\outlinelevel5\f0\fs22\b\cf3\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel5 Heading 6
+;}{\s17\snext0\outlinelevel6\f0\fs22\ul\cf3\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel6 Heading 7;}{\s18\snext0\outlinelevel7\f0\fs20\ul\i\cf2\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel7 Heading 8;}{\s19\snext0\outlinelevel8\f0\fs22\cf3\cb1\chcbpat1\sb240\sa60\sl0\outlinelevel8 Heading 9;}{\s20\snext0\f0\fs32\b\cf2\cb1\chcbpat1\sb240\sa60\sl0\qc Title
+;}{\s21\snext0\f1\fs20\cf2\cb1\chcbpat1\fi-360\li360\ri0 Numbered List;}{\s22\snext0\f1\fs20\cf2\cb1\chcbpat1\fi-360\li360\ri0 Bulleted List;}{\s23\snext0\f1\fs20\cf2\cb1\chcbpat1\sb0\sa120\sl0 Body Text;}{\s24\snext0\f1\fs18\cf2\cb1\chcbpat1\sb0\sa120\sl0\sl480\slmult1 Body Text 2;}{\s25\snext0\f1\fs16\cf2\cb1\chcbpat1\sb0\sa120\sl0 Body Text 3
+;}{\s26\snext0\f1\fs20\cf2\cb1\chcbpat1 Note Heading;}{\s27\snext0\f7\fs20\cf2\cb1\chcbpat1 Plain Text;}{\s28\snext0\f1\fs20\b\cf2\cb1\chcbpat1 Strong;}{\s29\snext0\f1\fs20\i\cf2\cb1\chcbpat1 Emphasis;}{\s30\snext0\f1\fs20\ul\cf8\cb1\chcbpat1 Hyperlink;}{\s31\snext0\f1\fs20\cf2\cb1\chcbpat1 Footer;}{\s32\snext0\f1\fs20\cf2\cb1\chcbpat1 Header
+;}{\s33\snext0\f7\fs18\cf2\cb1\chcbpat1 Code;}{\cs34\f1\fs20\i\cf3\cb1\chcbpat1 Field Label;}{\cs35\f1\fs22\b\cf2\cb1\chcbpat1 Table Heading;}{\cs36\f13\fs16\b\protect\cf2\cb9\chcbpat9 SSBookmark;}{\cs37\f1\fs20\b\ul\cf2\cb1\chcbpat1 Object type;}{\s38\snext0\f1\fs20\b\i\cf6\cb1\chcbpat1 List Header;}{\s39\snext39\f14\fs16\brdrt\brdrw30\brdrs\brdrcf2\fi0\li0\ri0 Copyright
+;}{\s40\snext0\f0\fs24\cf2 Default;}}
+{\*\revtbl{Unknown;}}
+{\*\listtable
+{\list\listtemplateid1
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List1;}\listid1
+}
+{\list\listtemplateid2
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List2;}\listid2
+}
+{\list\listtemplateid3
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f1\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List3;}\listid3
+}
+{\list\listtemplateid4
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f1\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List4;}\listid4
+}
+{\list\listtemplateid5
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List5;}\listid5
+}
+{\list\listtemplateid6
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List6;}\listid6
+}
+{\list\listtemplateid7
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\f3\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List7;}\listid7
+}
+{\list\listtemplateid8
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List8;}\listid8
+}
+{\list\listtemplateid9
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List9;}\listid9
+}
+{\list\listtemplateid10
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List10;}\listid10
+}
+{\list\listtemplateid11
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List11;}\listid11
+}
+{\list\listtemplateid12
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname ;}\listid858661625
+}
+{\list\listtemplateid13
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname MasterList;}\listid863938703
+}
+{\list\listtemplateid14
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname List864109812_1;}\listid864109812
+}
+{\list\listtemplateid15
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname List1036992718_1;}\listid1036992718
+}
+{\list\listtemplateid16
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname List1037018281_1;}\listid1037018281
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14264528_1;}\listid1037018282
+}
+{\list\listtemplateid18
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14668774_1;}\listid1037018283
+}
+{\list\listtemplateid19
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14720160_1;}\listid1037018284
+}
+{\list\listtemplateid20
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14758895_1;}\listid1037018285
+}
+{\list\listtemplateid21
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List15872087_1;}\listid1037018286
+}
+{\list\listtemplateid22
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List16608521_1;}\listid1037018287
+}
+{\list\listtemplateid23
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List16976762_1;}\listid1037018288
+}
+{\list\listtemplateid24
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List17184726_1;}\listid1037018289
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List1320108041_1;}\listid1320108041
+}
+{\list\listtemplateid18
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List5764392_1;}\listid1320108042
+}
+{\list\listtemplateid19
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List6043790_1;}\listid1320108043
+}
+{\list\listtemplateid20
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List21252889_1;}\listid1320108044
+}
+{\list\listtemplateid21
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List22616853_1;}\listid1320108045
+}
+{\list\listtemplateid22
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List23710825_1;}\listid1320108046
+}
+{\list\listtemplateid23
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List24011502_1;}\listid1320108047
+}
+{\list\listtemplateid24
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List24266142_1;}\listid1320108048
+}
+{\list\listtemplateid25
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List24451456_1;}\listid1320108049
+}
+{\list\listtemplateid26
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List24516727_1;}\listid1320108050
+}
+{\list\listtemplateid27
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List24927025_1;}\listid1320108051
+}
+{\list\listtemplateid28
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List25623772_1;}\listid1320108052
+}
+{\list\listtemplateid29
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List25780959_1;}\listid1320108053
+}
+{\list\listtemplateid30
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List25893607_1;}\listid1320108054
+}
+{\list\listtemplateid31
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List25991388_1;}\listid1320108055
+}
+{\list\listtemplateid32
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List26097360_1;}\listid1320108056
+}
+{\list\listtemplateid33
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List26358162_1;}\listid1320108057
+}
+{\list\listtemplateid34
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List28969526_1;}\listid1320108058
+}
+{\list\listtemplateid35
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List427629940_1;}\listid1320108059
+}
+{\list\listtemplateid36
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List428051704_1;}\listid1320108060
+}
+{\list\listtemplateid37
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List429175567_1;}\listid1320108061
+}
+{\list\listtemplateid38
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List81814615_1;}\listid1320108062
+}
+{\list\listtemplateid39
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List82358075_1;}\listid1320108063
+}
+{\list\listtemplateid40
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List82389073_1;}\listid1320108064
+}
+{\list\listtemplateid41
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List86327958_1;}\listid1320108065
+}
+{\list\listtemplateid42
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List522914243_1;}\listid1320108066
+}
+{\list\listtemplateid43
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List523417284_1;}\listid1320108067
+}
+{\list\listtemplateid44
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List523522616_1;}\listid1320108068
+}
+{\list\listtemplateid45
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List524022864_1;}\listid1320108069
+}
+{\list\listtemplateid46
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List580082791_1;}\listid1320108070
+}
+{\list\listtemplateid47
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List580422046_1;}\listid1320108071
+}
+{\list\listtemplateid48
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List878006137_1;}\listid1320108072
+}
+{\list\listtemplateid49
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List878067820_1;}\listid1320108073
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List1321376001_1;}\listid1321376001
+}
+{\list\listtemplateid18
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List582326506_1;}\listid1321376002
+}
+{\list\listtemplateid19
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List582688554_1;}\listid1321376003
+}
+{\list\listtemplateid20
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List583529399_1;}\listid1321376004
+}
+{\list\listtemplateid21
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List585657923_1;}\listid1321376005
+}
+{\list\listtemplateid22
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List586535335_1;}\listid1321376006
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List1226242598_1;}\listid1226242598
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid1400156522
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid1400159923
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid1400164712
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid1400195382
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fcs1\f2\af2\fcs0\rtlch\f2\af2\ltrch\fs22\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid1400195616
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid584254882
+}
+{\list\listtemplateid2
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List2;}\listid584254883
+}
+{\list\listtemplateid3
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List3;}\listid584254884
+}
+{\list\listtemplateid4
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List4;}\listid584254897
+}
+{\list\listtemplateid5
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List5;}\listid584254898
+}
+{\list\listtemplateid6
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List6;}\listid584254899
+}
+{\list\listtemplateid7
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List7;}\listid584254900
+}
+{\list\listtemplateid8
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List8;}\listid584254901
+}
+{\list\listtemplateid9
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List9;}\listid584254913
+}
+{\list\listtemplateid10
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List10;}\listid584254914
+}
+{\list\listtemplateid1
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List1;}\listid584301604
+}
+{\list\listtemplateid2
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List2;}\listid584301619
+}
+{\list\listtemplateid3
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List3;}\listid584301620
+}
+{\list\listtemplateid4
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List4;}\listid584301621
+}
+{\list\listtemplateid5
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List5;}\listid584301622
+}
+{\list\listtemplateid6
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List6;}\listid584301623
+}
+{\list\listtemplateid7
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List7;}\listid584301624
+}
+{\list\listtemplateid8
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List8;}\listid584301625
+}
+{\list\listtemplateid9
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List9;}\listid584301626
+}
+{\list\listtemplateid10
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List10;}\listid584301627
+}
+{\list\listtemplateid11
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List11;}\listid584301628
+}
+{\list\listtemplateid12
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List12;}\listid584301629
+}
+{\list\listtemplateid13
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List13;}\listid584301630
+}
+{\list\listtemplateid14
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List14;}\listid584301635
+}
+{\list\listtemplateid15
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List15;}\listid584301636
+}
+{\list\listtemplateid16
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List16;}\listid584301637
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List17;}\listid584301638
+}
+{\list\listtemplateid18
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List18;}\listid584301639
+}
+{\list\listtemplateid19
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List19;}\listid584301640
+}
+{\list\listtemplateid20
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List20;}\listid584301641
+}
+{\list\listtemplateid21
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List21;}\listid584301642
+}
+{\list\listtemplateid22
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List22;}\listid584301651
+}
+{\list\listtemplateid23
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List23;}\listid584301652
+}
+{\list\listtemplateid24
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List24;}\listid584301653
+}
+{\list\listtemplateid25
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List25;}\listid584301654
+}
+{\list\listtemplateid26
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List26;}\listid584301655
+}
+{\list\listtemplateid27
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List27;}\listid584301682
+}
+{\list\listtemplateid28
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List28;}\listid584301697
+}
+{\list\listtemplateid29
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List29;}\listid584301698
+}
+{\list\listtemplateid30
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List30;}\listid584301699
+}
+{\list\listtemplateid31
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List31;}\listid584301713
+}
+{\list\listtemplateid32
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List32;}\listid584301714
+}
+{\list\listtemplateid33
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List33;}\listid584301715
+}
+{\list\listtemplateid34
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List34;}\listid584301716
+}
+{\list\listtemplateid35
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List35;}\listid584301717
+}
+{\list\listtemplateid36
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List36;}\listid584301718
+}
+{\list\listtemplateid37
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List37;}\listid584301719
+}
+{\list\listtemplateid38
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List38;}\listid584301720
+}
+{\list\listtemplateid39
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List39;}\listid584301721
+}
+{\list\listtemplateid40
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch\fs20\cf2}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname HTML-List40;}\listid584301722
+}
+}
+{\*\listoverridetable
+{\listoverride\listid1037018282\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls1}
+{\listoverride\listid1037018283\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls2}
+{\listoverride\listid1037018285\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls3}
+{\listoverride\listid1037018286\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls4}
+{\listoverride\listid1037018287\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls5}
+{\listoverride\listid1037018288\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls6}
+{\listoverride\listid1037018289\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls7}
+{\listoverride\listid1320108041\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls8}
+{\listoverride\listid1320108042\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls9}
+{\listoverride\listid1320108043\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls10}
+{\listoverride\listid1320108044\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls11}
+{\listoverride\listid1320108045\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls12}
+{\listoverride\listid1320108046\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls13}
+{\listoverride\listid1320108047\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls14}
+{\listoverride\listid1320108048\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls15}
+{\listoverride\listid1320108049\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls16}
+{\listoverride\listid1320108050\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls17}
+{\listoverride\listid1320108051\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls18}
+{\listoverride\listid1320108052\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls19}
+{\listoverride\listid1320108053\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls20}
+{\listoverride\listid1320108054\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls21}
+{\listoverride\listid1320108059\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls22}
+{\listoverride\listid1320108060\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls23}
+{\listoverride\listid1320108061\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls24}
+{\listoverride\listid1320108062\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls25}
+{\listoverride\listid1320108064\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls26}
+{\listoverride\listid1320108065\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls27}
+{\listoverride\listid1320108066\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls28}
+{\listoverride\listid1320108070\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls29}
+{\listoverride\listid1320108071\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls30}
+{\listoverride\listid1320108072\listoverridecount0\ls31}
+{\listoverride\listid1320108073\listoverridecount0\ls32}
+{\listoverride\listid1321376002\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls33}
+{\listoverride\listid1321376003\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls34}
+{\listoverride\listid1321376004\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls35}
+{\listoverride\listid1321376005\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls36}
+{\listoverride\listid1321376006\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls37}
+{\listoverride\listid1226242598\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls38}
+{\listoverride\listid1400156522\listoverridecount0\ls39}
+{\listoverride\listid1400159923\listoverridecount0\ls40}
+{\listoverride\listid1400164712\listoverridecount0\ls41}
+{\listoverride\listid1400195382\listoverridecount0\ls42}
+{\listoverride\listid1400195616\listoverridecount0\ls43}
+}
+\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\headery720\footery720\nogrowautofit\deftab720\formshade\fet4\aendnotes\aftnnrlc\pgbrdrhead\pgbrdrfoot
+\sectd\pgwsxn12240\pghsxn15840\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\headery720\footery720\sbkpage\pgncont\pgndec
+\plain\plain\f0\fs24
+{\footer
+\trowd\trgaph0\trleft0
+\clvertalt\cellx2790
+\clvertalt\cellx7290
+\clvertalt\cellx9900
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\pard\intbl\ssparaaux0\s0\qc\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf2 \'a9 201\lang1033\hich\f6\dbch\f6\loch\f6 4\lang3081\hich\f3\dbch\f3\loch\f3 \lang1033\hich\f7\dbch\f7\loch\f7 TomTom International B.V.\lang3081\hich\f5\dbch\f5\loch\f5\cf0\fs20\cell
+\pard\intbl\ssparaaux0\s0\qr\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20{\field{\*\fldinst PAGE}{\fldrslt 1}}/{\field{\*\fldinst NUMPAGES}{\fldrslt 198}}\lang3081\hich\f5\dbch\f5\loch\f5\cf0\cell
+\intbl\row
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\plain\f0\fs24}
+\qc\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw21294\pich19426\picwgoal12075\pichgoal11010\picscalex29\picscaley29\sspicalign0 010000006c00000000000000000000005b0200002702000000000000000000002d530000e14b000020454d4600000100d851140003000000010000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050051000000
+5851140000000000000000005b02000027020000000000000000000000000000000000005c02000028020000500000002800000078000000e0501400000000002000cc005c02000028020000280000005b020000280200000100200000000000e050140000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcff
+fdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffe
+fffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffff
+fffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffb
+fffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffd
+fffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefeff
+fcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefe
+fffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffdfffefffdfffe
+fffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffefffffffefffffffefffffffefffffffeffffff
+fefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe
+fffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffff
+fefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffeff
+fdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffdfdfdfffefefefffffffffffffffffffffffffffffffffffffffffffffffffff9faf7fffafbf8fffbfcf9
+fffdfefbfffefffcfffffffdfffffffdfffffffdfffefffcfffefffcfffefffcfffefffcfffffffdfffffffdfffffffdfffffffdfffefefefffefefefffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffffffffffffffffffffffffffefefefffefe
+fefffefefefffefefefffefefefffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffefffcfffdfefbfffefffcfffefffcfffefffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffdfdfdfffcfcfcfffcfcfcfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffdfdfdfffdfdfdfffbfbfbfffffffffffffffffffdfdfdfff8f8f8fffffffffffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbff
+fefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfff9f9f9fffffffffff5f5f5fffffffffffdfdfdfffefefefffefefefffbfbfbfffbfbfbfffdfdfdfffdfdfdfffafafafffbfbfbfffffffffffffffffffdfdfdfffefffcfffefffcfffefffcfffeff
+fcfffefffcfffefffcfffefffcfffefffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfff4f4f4fffffffffffdfdfdfff6f6f6fffcfcfcfffffffffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffcfcfcfffefefefffffffffffffffffffefefefffefefefffffffffffffffffffffffffffdfdfdfffefefefffefefefffdfdfdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffefefefffffffffff3f3f3
+fffffffffffdfdfdfff6f6f6fffffffffffffffffffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffefefefffffffffffffffffffefefefffdfdfdfffefefefffffffffffffffffff9f9f9fffafafafffbfbfbfffffffffffffffffff8f8f8ffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffafafafffffffffffffffffffcfcfcfffdfdfdfffffffffffdfdfdffffffffffffffffffffffffffff
+fffffffffffffffffffffff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffffffffffffffffff6f6f6fffffffffffdfdfdffffffffff
+f6f6f6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffafafaffffffffffffffffffffffffffffffffffffffff
+fffefefefffdfdfdfffffffffffffffffffcfcfcfff6f6f6fffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffdfdfdfffefefefffffffffffffffffffffffffffffffffffffffffffcfcfcfffdfdfdfffffffffffffffffffffffffffcfcfcfffdfdfdffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+fafafffbfbfbfffcfcfcfffdfdfdfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffcfcfcfffbfbfbfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffdfefbfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfcf9fffcfcfafffcfdfafffdfefbfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffafbf8fffafbf8fffcfcfafffffffdfffffffdfffffffffffefefefffdfdfdfffefefe
+fffefefefffefefefffdfdfdfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffafafafffefefefffefefefffbfbfbfffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcffffffffff
+fffffffff6f6f6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffdfdfdfffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffbfbfbfffcfcfcfffdfdfdffffff
+fffffffffffffffffffffefefefffcfcfcfffdfdfdfffefefefffefefefffefefefffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffdfefbfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffe
+fffcfffefffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffefefefffffffffffffffffffefefefffdfdfdfffefefefff4f4f4fffffffffffffffffffefefefffffffffff6f6f6fff4f4f4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdff
+fffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffdfdfdfffffffffffffffffffffffffff9f9f9fff7f7f7fff8f8f8fffcfcfcfffefefefffefefefffcfcfcfffbfbfbfffdfdfdfffffffffffffffffffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fffdfdfdfff6f6f6fffffffffff7f7f7fffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffefefefff7f7f7fff5f5f5fffafafafffffffffffffffffffafafafff7f7f7fffdfdfdfffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffbfbfbfffafafafff9f9f9fffdfdfdfffefefefffffffffffffffffffffffffffffffffffffffffffffffffff6f6f2fff7f7f3fff9f8f4fffbfbf7fffdfdf9fffffffbfffffffcffffff
+fcfffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffffcffff
+fffcfffffffcfffffffcfffefffbfffdfffbfffdfefafffcfdf9fffefffbfffffffcfffffffcfffffffcfffffffcfffffffcfffefffbfffcfdf9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fbfbfbfffefefefffffffffffffffffffffffffffdfcf8fffdfcf8fffdfcf8fffdfcf8fffdfcf8fffdfcf8fffdfcf8fffdfcf8fffbfbf7fffbfbf7fffbfbf7fffbfbf7fffbfbf7fffbfbf7fffbfbf7fffbfbf7fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffb
+fffdfffbfffdfffbfffdfffbfffdfefafffdfefafffdfefafffdfefafffdfefafffdfefafffdfefafffdfefafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffffbfbfbfffffffffffefefefffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffefefafffefefafffefefafffefefafffefefafffefefafffefefafffefefaffff
+fffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffff7f7f7fff9f9f9fffefefefffafafafffafafafffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffcfcfcfffefefefffffffffffefefefffdfdfdfffdfdfdfffdfdfdfffffffffffffffffffffffffffdfdfdfffdfdfdfffcfcfcfffcfcfcfffcfcfcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffdfdf9fffdfdf9fffdfdf9fffdfdf9
+fffdfdf9fffdfdf9fffdfdf9fffdfdf9fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffcfcfcfffdfdfdfffffffffffffffffffffffffffdfdfdfffafafafffffffffffefefefff8f8f8fffafafaffffffffffffff
+fffffdfdfdfffafafafffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffbfbfbfffcfcfcfffefefefff9f9f9fffcfcfcfffffffffffdfdfdfff9f9f9fffffffffffffffffff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffdfdfdfffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffafafafffefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffefefefffffffffffffffffffffffffff3f3f3fffffffffffffffffff6f6f6ffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fffffffffffffffffffbfbfbfffbfbfbfffcfcfcfffcfcfcfffffffffffdfdfdfffffffffffffffffffbfbfbfff5f5
+f5fff7f7f7fffcfcfcfffffffffffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffffffffffffffffffefefefffdfdfdfffdfdfdfffdfdfdfffdfdfdfffefefefffffffffffffffffffefefefffefefefffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fff9f9f9fffafafafffbfbfbfffdfdfdff
+fefefefffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffcfcfcfffafafafff9f9f9fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffbfaf8fffcfbf8fffdfcf9fffdfcfafffefdfbfffffefcfffffffcfffffffdfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc
+fffffffcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffffdfffffffdfffffffdfffffffdfffffffcfffffefcfffefdfbfffefdfbfffafbf7fffbfcf8fffcfdf9fffdfefafffffffcfffffffcfffffffcfffffffcfff6f7f3fff8faf6fffcfdf9fffffffcfffffffcfffefffbfffcfdf9fffafbf7fffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffffffffffffffffffffffffffffffffffffffffffefefefffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffff
+fffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcff
+fffffcfffffffcfffffffcfffffffcfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffefefafffefefafffefefafffefefafffefefafffefefafffefefafffefefafffcfcfcfff8f8f8fffffffffffafafafffdfdfdffffffff
+fffcfcfcfffffffffffdfdfdfffbfbfbfffcfcfcfffffffffffffffffffffffffffefefefffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffff5f5f5fffefefefffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffdfdfdfffbfbfbfffcfcfcfffdfdfdfffffffffffe
+fefefffcfcfcfffdfdfdfffefefefffcfcfcfffcfcfcfffefefefffcfcf8fffcfcf8fffcfcf8fffcfcf8fffcfcf8fffcfcf8fffcfcf8fffcfcf8fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefefefffefefefffefefeff
+fefefefffffffffffffffffffffffffffffffffffefefefffffffffffefefefffefefefffffffffffffffffffefefefff9f9f9fffdfdfdfffafafafffffffffffffffffffafafafff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffffffffffffffffffffffffffefefefffdfdfd
+fffefefefffffffffffffffffffefefefffdfdfdfff9f9f9fffcfcfcfff9f9f9fffffffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffbfbfbfff9f9f9fffcfcfcfffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffdfdfdfffbfbfbfffdfdfdfffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffbfbfbfffffffffffefefefff4f4f4fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffcfcfcfffdfdfdfffffffffffffffffffafafafffcfcfcfffafafafffafafafff7f7f7fff7f7f7fffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffefefefffffffffffdfdfdfffdfdfdfffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffcfcfcfffafafafff9f9f9fffcfcfcfffffffffffffffffffffffffffffffffffffffafffffef9fffffef9fffffef9fffffef9fffffffafffffffbfffffffbfffffffbfffffffbfffffffbfffffffbffff
+fffbfffffffbfffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffff9fffffff9fffffff9fffffff9fffffff9fffffffafffffffafffffffafffffffbfffffffbfffffffbfffefffafffcfef8fffafcf6ff
+f9faf5fff8faf4fffffffbfffffffbfffffffbfffdfef9fffcfef9fffffffbfffffffbfffffffbfffdfdfdfffefefefffffffffffefefefffcfcfcfffcfcfcfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffffffffffafafafff5f5f5fffcfcfcfffefefe
+fffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffffafffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffefffafffeff
+fafffefffafffefffafffefffafffefffafffefffafffefffafffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffdfffafffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbffff
+fffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffbfbfbfffffffffffffffffffefefefff8f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffefdf8fffefdf8fffefdf8fffefdf8fffefdf8ff
+fefdf8fffefdf8fffefdf8fffefefefff3f3f3fffffffffffafafafffbfbfbfffffffffff8f8f8fff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffdfdfdfffffffffffffffffffffffffffafafafff9f9f9fffefefefffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffe
+f9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffdfdfdfffefefefffefefefffefefefffefefefffefefefffefefefffefefefffffffffffffffffffffffffffcfcfcfffdfdfdfffffffffffffffffffafafafffffffffffdfdfdfffffffffffffffffffffffffffffffffffdfdfdfff0f0f0ffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffff8f8f8fffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff9f9f9fffbfbfbfffffffffffffffffff7f7f7fff6f6f6fffdfdfdfffffffffffcfcfcfff9f9f9fffefefefffffffffffffffffffffffffffffffffffefefefffefefefffefefefffefefefffefefefffefefe
+fffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefefffdfdfdfffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffafafafffffffffffffffffffbfbfbfff7f7f7fffefefefffbfbfbfffffffffffffffffffffffffffffffffffefefefffffffffffefefefffbfbfbfffb
+fbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffafafafffafafafffafafafffafafafffbfbfbfffcfcfcfffcfcfcfffdfdfdfff9f9f9fffdfdfdfffefefefffcfcfcfffefefefffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffbfbfbfffafafafffafafafff9f9f9fff8f8f8fff8f8f8fff8f8f8ffffffffffffffff
+fffbfbfbfff9f9f9fffbfbfbfffdfdfdfffbfbfbfff9f9f9fffffef9fffffef9fffefdf8fffefdf8fffffef9fffffffbfffffffbfffffffbfffffffafffffef9fffdfcf7fffbfaf5fff9f8f3fff6f5f0fff5f4effff4f3eeffe8e7e1ffe7e6e0ffe5e5deffe3e2dcffe1e0daffdeded7ffdddcd6ffdcdbd5ffdfded8ffdfded8ffdfded8ffdfded8ffdfded8ffdfded8ffdfded8ffdfded8ffe2e2dbffe2e2dbffe2e2dbffe2e2
+dbffe2e2dbffe2e2dbffe2e2dbffe2e2dbfff5f4eefff6f5effff7f6f0fff9f9f2fffcfbf5fffefdf7fffffff8fffffff9fff6f8f3fff8f9f4fffafbf6fffdfef9fffffffbfffffffbfffffffbfffffffbfff6f8f2fff9faf5fffcfef9fffffffbfffffffbfffefffafffbfdf7fff9fbf5fffffffffffffffffffffffffffffffffffefefefffcfcfcfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffcfcfcfffffffffffbfbfbfffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbff
+fffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffafffefffafffefffafffefffafffefffafffefffafffefffafffefffafffdfff9fffdfff9fffdfff9fffdfff9fffdfff9fffdfff9fffdfff9fffdfff9fffffffb
+fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffdfdfdfffffffffff5f5f5fffffffffffcfcfcfffefefefffefefefffefefeffffffffffffffffffffff
+fffff8f8f8fff3f3f3fffafafafffdfdfdfff8f8f8fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffbfbfbfffffffffff8f8f8fffefefefffffffffff3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffbfbfbfffbfbfbfffefefefffffffffffffffffffffffffffffffffffdfdfdfff8f8f8fffcfcfcfffdfdfdfff9f9f9ff
+f8f8f8fffbfbfbfffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffef9fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefe
+fff7f7f7fffffffffffffffffffcfcfcfffbfbfbfffffffffffffffffffcfcfcfff5f5f5fffefefefffefefefff8f8f8fffdfdfdfffffffffffffffffffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffafafafffafafafffbfbfbfffdfdfdfffefefefffcfcfcfffafafaffe4e4e4ffffff
+fffff8f8f8fffefefefffffffffff6f6f6fffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffdfdfdffffffffffff
+fffffffffffffffbfbfbfffffffffffffffffffafafaffe8e8e8ffdadadaffdadadaffddddddffdbdbdbffdadadaffdcdcdcffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd9d9d9ffd7d7d7ffd7d7d7ffd7d7d7ffd7d7d7ffd7d7d7ffd7d7d7ffd7d7d7ffd7d7d7ffd1d1d1ffd1d1d1ffd1d1d1ffd1d1d1ffd1d1d1ff
+d1d1d1ffd1d1d1ffd1d1d1ffd0d0d0ffc6c6c6ffc9c9c9ffddddddfffffffffffffffffffbfbfbfffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff8f8f8fffffffffffffffffff9f9f9fffafafaffffffffffffffffffffffffffefefefffd4d4d4ffbebebeffb0b0b0ffabababffb0b0b0ffb8b8b8ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffaeaeaeffafafafffb0b0b0ffb0b0b0ffb0b0b0ffb0b0b0ffafafafffaeaeaefff0f0
+f0fffafafafffffffffffdfdfdfffdfdfdfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffcfcfcffe6e6e6ffdcdcdcffcececeffc2c2c2ffb8b8b8ffaeaeaeffa3a3a3ff9c9c9cff918f8aff8c8b86ff85847fff7d7b76ff75736eff6f6d68ff6b6a65ff696863ff6b6a65ff6b6964ff696863ff686661ff666560ff64635eff63625dff62615cff68685fff
+67675eff66665dff64645bff626359ff616158ff5f6056ff5f5f56ff616158ff616158ff616158ff616158ff616158ff616158ff616158ff616158ff63635aff63635aff63635aff63635aff63635aff63635aff63635aff63635aff606057ff616158ff626259ff64645bff66665dff68685eff696960ff6a6a60ff71726dff767872ff80827dff8d8f8aff9c9e98ffa9aba5ffb3b5afffb8bab5ffd2d4ceffd9dbd5ffe5e7e1
+fff1f3eefffbfdf7fffffffbfffffffbfffffffbfff4f4f4fffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffffffffffcfcfcffffffffffffffffffd5d5d5ffe0dfdaffe0dfdaffe0dfdaffe0dfdaffe0df
+daffe0dfdaffe0dfdaffe0dfdaffdeddd8ffdeddd8ffdeddd8ffdeddd8ffdeddd8ffdeddd8ffdeddd8ffdeddd8ffd9d8d3ffd9d8d3ffd9d8d3ffd9d8d3ffd9d8d3ffd9d8d3ffd9d8d3ffd9d8d3ffd4d2cdffd4d2cdffd4d2cdffd4d2cdffd4d2cdffd4d2cdffd4d2cdffd4d2cdffced0cbffced0cbffced0cbffced0cbffced0cbffced0cbffced0cbffced0cbffcdcec9ffcdcec9ffcdcec9ffcdcec9ffcdcec9ffcdcec9ffcd
+cec9ffcdcec9ffcacbc6ffcacbc6ffcacbc6ffcacbc6ffcacbc6ffcacbc6ffcacbc6ffcacbc6ffc7c9c3ffc7c9c3ffc7c9c3ffc7c9c3ffc7c9c3ffc7c9c3ffc7c9c3ffc7c9c3ffc2c4bfffc2c4bfffc2c4bfffc2c4bfffc2c4bfffc2c4bfffc2c4bfffc2c4bfffbdbeb9ffbdbeb9ffbdbeb9ffbdbeb9ffbdbeb9ffbdbeb9ffbdbeb9ffbdbeb9ffbfbeb9ffbfbeb9ffbfbeb9ffbfbeb9ffbfbeb9ffbfbeb9ffbfbeb9ffbfbeb9ff
+bdbcb7ffbdbcb7ffbdbcb7ffbdbcb7ffbdbcb7ffbdbcb7ffbdbcb7ffbdbcb7ffb9b9b9ffc3c3c3ffa6a6a6fffffffffffffffffffbfbfbfffafafafffefefefffafafafffffffffffdfdfdffd0d0d0ffb1b1b1ffb2b2b2ffb8b8b8ffb3b3b3ffaaa8a3ffaaa8a3ffaaa8a3ffaaa8a3ffaaa8a3ffaaa8a3ffaaa8a3ffaaa8a3ffa8a7a2ffa8a7a2ffa8a7a2ffa8a7a2ffa8a7a2ffa8a7a2ffa8a7a2ffa8a7a2ffa3a3a3ff9f9f9f
+ffa9a9a9ff9c9c9cffa4a4a4ff9e9e9eff969696ffe3e3e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffcfcfcfff9f9f9fffcfcfcfffffffffffffffffffafafafff4f4f4ffa4a4a4ff969696ff8e8e8eff909090ff8f8f8fff878787ff848484ff878787ff84837eff84837eff84837eff84837eff84837eff84837eff84837eff84837eff7d7c77ff7d7c77ff7d7c77ff7d7c77ff7d7c77ff7d7c77ff7d7c77ff7d7c77ff74726dff74726dff74726dff74726dff74726dff74
+726dff74726dff74726dff73716cff73716cff73716cff73716cff73716cff73716cff73716cff73716cff6e6e6eff6d6d6dff6d6d6dff6c6c6cff6a6a6aff696969ff696969ff686868ffe8e8e8fff8f8f8fffffffffffefefefffcfcfcfffffffffffffffffffdfdfdfff9f9f9fffffffffff3f3f3ffa6a6a6ff707070ff5d5d5dff616161ff737373ff6a6a6aff6a6a6aff6a6a6aff6a6a6aff6a6a6aff6a6a6aff6a6a6aff
+6a6a6aff656565ff656565ff656565ff656565ff656565ff656565ff656565ff656565ff696969ff686868ff686868ff6a6a6aff6b6b6bff696969ff656565ff606060ff9f9f9ffff8f8f8fffafafafff7f7f7fffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffefefefffffffffff2f2f2ffd5d5d5ff797979ff6a6a6aff606060ff626262ff646464ff5e5e5eff5d5d5dff616161ff606060ff606060ff606060ff606060ff606060ff606060ff606060ff606060ff606060ff606060ff6060
+60ff606060ff606060ff606060ff606060ff606060ff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff606060ff606060ff606060ff606060ff606060ff606060ff606060ff606060ff656565ff5f5f5fff5a5a5aff7a7a7affe5e5e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff4f4f4fffffffffffffffffff4f4f4ffffffffffffffffffe0e0e0ffc8c8c8ff878787ff4c4c4cff484848ff616161ff6a6a6aff5b5b5bff4c4c4cff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff
+5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5b5b5bff5a5a5aff5b5b5bff5c5c5cff5c5c5cff5b5b5bff585858ff545454ff525252ffe6e6e6fff6f6f6fffffffffffefefefffcfcfcfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4ffeaeaeaffd7d7d7ffbebebeffa3a3a3ff8a8a8aff777777ff6d6d6dff6f6f6fff696969ff626262ff5f5f5fff616161ff626262ff5f5f
+5fff5b5b5bff615f5aff5f5e59ff5d5c57ff5b5a55ff5b5a55ff5c5b56ff5e5d58ff5f5e59ff5d5b56ff5d5b56ff5d5c57ff5e5c57ff5e5d58ff5f5d58ff5f5d58ff5f5e59ff58584fff58584fff58594fff595950ff595a50ff5a5a51ff5a5a51ff5a5b51ff5a5a51ff5a5a51ff5a5a51ff5a5a51ff5a5a51ff5a5a51ff5a5a51ff5a5a51ff58584fff58584fff58584fff58584fff58584fff58584fff58584fff58584fff59
+5950ff58594fff58584fff58584fff57574eff57574eff56574dff56564dff555651ff555751ff555752ff565852ff575853ff575953ff585954ff585a54ff5f605bff5e605aff60625cff6a6c66ff7e807aff999b95ffb3b5b0ffc4c5c0ffdfdfdfffeaeaeafff7f7f7fffffffffffffffffffdfdfdfffcfcfcfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffffffffffdfdfdfff5f5f5ffffffffffdfdfdfff8b8b8bff6a6863ff6a6863ff6a6863ff6a6863ff6a6863ff6a6863ff6a6863ff6a6863ff676560ff676560ff676560ff676560ff676560ff676560ff676560ff676560ff666560ff666560ff666560ff666560ff666560ff666560ff666560ff666560ff63625dff63625dff63625dff63625d
+ff63625dff63625dff63625dff63625dff60615cff60615cff60615cff60615cff60615cff60615cff60615cff60615cff5d5f5aff5d5f5aff5d5f5aff5d5f5aff5d5f5aff5d5f5aff5d5f5aff5d5f5aff5e5f5aff5e5f5aff5e5f5aff5e5f5aff5e5f5aff5e5f5aff5e5f5aff5e5f5aff5a5c57ff5a5c57ff5a5c57ff5a5c57ff5a5c57ff5a5c57ff5a5c57ff5a5c57ff5b5d57ff5b5d57ff5b5d57ff5b5d57ff5b5d57ff5b5d
+57ff5b5d57ff5b5d57ff5a5c56ff5a5c56ff5a5c56ff5a5c56ff5a5c56ff5a5c56ff5a5c56ff5a5c56ff5d5b56ff5d5b56ff5d5b56ff5d5b56ff5d5b56ff5d5b56ff5d5b56ff5d5b56ff5b5954ff5b5954ff5b5954ff5b5954ff5b5954ff5b5954ff5b5954ff5b5954ff4d4d4dff5b5b5bff474747ffeeeeeefffffffffff9f9f9fff9f9f9fffffffffff9f9f9ffffffffffeeeeeeffa1a1a1ff616161ff535353ff555555ff4f
+4f4fff5b5a55ff5b5a55ff5b5a55ff5b5a55ff5b5a55ff5b5a55ff5b5a55ff5b5a55ff595752ff595752ff595752ff595752ff595752ff595752ff595752ff595752ff5a5a5aff535353ff5d5d5dff555555ff5f5f5fff4f4f4fff535353ffcbcbcbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffbfbfbfffefefefffffffffffdfdfdfff1f1f1ffe5e5e5ff626262ff545454ff4e4e4eff545454ff585858ff535353ff525252ff575757ff595853ff595853ff595853
+ff595853ff595853ff595853ff595853ff595853ff585752ff585752ff585752ff585752ff585752ff585752ff585752ff585752ff5a5954ff5a5954ff5a5954ff5a5954ff5a5954ff5a5954ff5a5954ff5a5954ff595853ff595853ff595853ff595853ff595853ff595853ff595853ff595853ff585858ff575757ff565656ff545454ff535353ff515151ff505050ff4f4f4fffdbdbdbfff1f1f1fffffffffffffffffffdfd
+fdfffffffffffffffffffcfcfcfffffffffff2f2f2ff9d9d9dff4f4f4fff525252ff666666ff606060ff5a5a5aff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5e5e5eff5e5e5eff5f5f5fff5f5f5fff5c5c5cff555555ff4f4f4fff777777fffbfbfbfffffffffffafafafffffffffff9f9f9ffff
+fffffff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffbfbfbfff3f3f3ffffffffffffffffffb7b7b7ff5a5a5aff
+4b4b4bff484848ff4e4e4eff5d5d5dff636363ff5d5d5dff5c5c5cff626262ff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5f5f5fff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff5e5e5eff636363ff585858
+ff383838ff474747ffcdcdcdfffffffffffdfdfdfff6f6f6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6ffffffffffffff
+fffff1f1f1fffffffffff0f0f0ff919191ff434343ff373737ff3b3b3bff505050ff595959ff545454ff5a5a5aff6b6b6bff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5d5d5dff5f5f5fff606060ff606060ff5d5d5dff585858ff525252ff4f4f4fffe0e0e0fff4f4f4fffffffffffffffffffbfbfbffff
+fffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffffffffffefefefffffefcfffffffefffffffdfffdfbf8fffffffcfffffdfafffbf8f3fffffef9ff
+fffffbfff8f4eeffd8d4ceffbcb7b1ff919086ff86857bff78776dff6e6d64ff6b6a61ff69695fff66675dff63645aff5f6157ff5f6056ff5d6056ff5c5f55ff5b5e54ff5a5d53ff595d52ff595c52ff5b5c55ff5a5b55ff5a5b54ff595a53ff585952ff575851ff565750ff565750ff575851ff575851ff575851ff575851ff575851ff575851ff575851ff575851ff565750ff565750ff565750ff565750ff565750ff565750
+ff565750ff565750ff54554eff54554eff54554eff54554eff54554eff54554eff54554eff54554eff55564fff55564fff55564fff55564fff55564fff55564fff55564fff55564fff53544dff53544dff53544dff53544dff53544dff53544dff53544dff53544dff56554bff56554bff56554bff56554bff56554bff56554bff56554bff56554bff56554bff56554bff56554bff56544bff56544bff55544bff55544aff5554
+4aff66645aff6a685eff828076ffaeada3ffdad9d0fff4f3eafffffff6fffffff9fffffffafffffff9fffdfff9fff7f9f3fff3f5effffffffbfffffffcfffcfdf8fffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfffcfffdfffcfffdfffffffdfffdfefcfffffffdfffffcfafff2eceaff7a7473ff5f5549ff645a4eff625b4fff5f584cff59574bff5c594eff595b4fff58594eff585b51ff57
+5b51ff575a51ff575a51ff585850ff575850ff585750ff585750ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff575750ff585850ff585850ff585850ff
+585950ff585950ff585951ff585951ff585951ff57584fff57584fff57584fff57584fff57584fff57584fff57584fff57584fff585851ff585851ff585851ff585851ff585851ff585851ff585851ff585851ff575750ff575750ff565750ff56564fff56564fff55564eff55554eff55554eff59584eff59584eff59584eff59584eff59584eff59584eff59584eff59584eff57564bff57554bff57564cff59574dff5b594f
+ff5a594eff58574cff56544aff51493fff4d453aff45403affe7e2dcfffffdfcfffffffdfff8f9fafffdfffffffffffffffbfbfbfffffffbffa39f9bff665d51ff5c5348ff655949ff625546ff58594dff57584cff57574bff57584cff59594eff5a594eff59584fff58574dff58554dff59564eff59554eff5a554fff5a554fff5a5550ff5b5550ff5b5550ff54554dff56574fff5d5c55ff57564fff504c47ff4c4843ff4d47
+43ffd4cfcbfffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffdf7f8fffffdfefffffefffffffffefffffefdfff5f2f0ff7c7976ff4f4e4aff51504cff53544eff55554fff54554fff54554eff53554eff53564fff4f544eff4f544eff4f544eff4f544eff50544eff50544eff52544fff52544fff545550ff545550ff555550ff555550ff555550ff555550ff565450ff55544fff53564dff53564dff54564eff54574eff55584fff55584fff555850ff565950ff50534bff51534bff
+51534bff51544bff51544bff51544bff51544bff51544bff5f564bff61584cff5c5449ff5d544aff5c554bff504940ff4b453eff58534cffddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffdfffdfff3f6f4ff6a6b68ff3b3b39ff6c6a68ff615f5dff5f5a59ff625d5cff686462ff64605eff605e5cff605e5cff5f5f5dff5e5e5cff5b5f5cff5c605dff59605dff59605dff5a605dff5a615d
+ff5c615eff5c615eff5d615eff5d615eff616461ff5d605dff5e5f5cff626361ff60615fff555653ff474846ff3f403eff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffafffcfffafffcfffdfffdfffdfffdfffffffdfffffffdfffffffefffffffefffffefffffffefffffffefffffffefffffafafbfff3f3f5ff525153ff464548ff3c4a50ff3d4b51ff434e54ff49545aff53595fff575d63ff5c5d63ff5b5c62ff605f64ff605e63ff605f62ff605e62ff5d5e61ff5c5e61ff5b5e60ff5b5e60ff5d6062ff5d6062ff5c6062ff5c5f62ff5c5f61ff5b5e61ff5b5e60ff5b
+5e60ff5a5d60ff5a5e60ff5a5e60ff5b5e60ff5b5e60ff5b5e60ff5b5e60ff5b5e61ff556262ff546262ff546162ff536061ff545e60ff535d5fff545c5fff535b5fff5f656aff3b4146ff383c42ff292d33ff71727afffbfdfffff3f4fcfffcfdfffff9fffefff7fdfcfff7fcfbfff9fefdfffbfffffffbfffffffdfffffffafcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff5c5f5eff5e6060ff5d5f5fff5a5c5cff5a5d5dff5d605fff5c5f5eff585a5aff5e6160ff5c5f5eff5b5d5d
+ff5b5d5dff5b5e5eff5b5e5dff5a5c5cff585b5aff615c5bff65615fff635e5dff605c5aff5b5756ff4b4846ff474443ff565352ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfff9f9f9fffefefefffffffefffdfcfbfffbfaf7fffdfcf9fffffffcfffffffcfffffffbffe4e1dcffb7b3adff908c86ff7e7a74ff7b7771ff78776dff706f66ff68675eff646359ff636359ff626258ff5e5f55ff5b5c52ff5a5b51ff595b51ff575b50ff565a50ff56594fff55584eff54574dff54574dff54564fff54554eff53554eff53
+544dff52534cff51524bff50514aff50514aff51524bff51524bff51524bff51524bff51524bff51524bff51524bff51524bff50514aff50514aff50514aff50514aff50514aff50514aff50514aff50514aff4f514aff4f514aff4f514aff4f514aff4f514aff4f514aff4f514aff4f514aff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff4f5049ff
+4f5049ff4f5049ff4f5049ff535248ff535248ff535248ff535248ff535248ff535248ff535248ff535248ff545249ff545249ff545249ff545349ff545349ff545349ff54534aff54534aff525046ff525146ff504f45ff4b4a40ff4d4c43ff6c6b62ffa6a69effdadad1fffefff7fffffffafffffffbfffffffbfffffffbfffcfdf8fff0f2edfffcfdf9fffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffd
+fffbfffdfffcfffdfffcfffdfffffffdfffdfefcfffffffdfffffcfafff2ecebff7b7473ff5c5246ff61564aff5f584cff5b5448ff565448ff5a574bff58594eff57594dff565a4fff56594fff565950ff55584fff57574fff56574fff57564fff57564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff5555
+4eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff55554eff56574fff56574fff56574fff57574fff56574fff57574fff56574fff57574fff56574eff56574eff56574eff56574eff56574eff56574eff56574eff56574eff56564fff56564fff56564fff56564fff56564fff56564fff56564fff56564fff55554eff55554eff55
+554eff54544dff54544dff53544cff53544cff53534cff57554bff57554bff57554bff57554bff57554bff57554bff57554bff57554bff5a584eff58574dff58564cff58564cff58574dff57564cff555349ff525147ff4e463cff4c443aff46413bffe8e3ddfffffefdfffffffefff8f9fbfffdfffffffffffffffbfbfbfffffffbffa5a19cff675e52ff5c5348ff645848ff605344ff57584cff56574bff56564aff56564aff
+57574cff57574cff58564dff58564dff56534bff56534bff57524cff57534cff57524dff58524dff58524dff58524dff52534cff51534bff56554eff4f4e47ff4a4641ff494540ff4e4844ffd7d2cefffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafbfffff9fafffffefefffffefffff5f1f0fffffffeff9f9c9aff5a5754ff504f4bff51504cff51514cff51514cff50514bff50514aff4f524aff50524bff4c524cff4c524cff4c514cff4c514bff4d514bff4d514bff4e504bff4e50
+4bff50524dff50524dff51514cff51514cff51514cff51514cff51504bff51504bff4f5249ff4f5249ff4f5149ff4e5148ff4e5148ff4e5148ff4e5148ff4e5048ff4f5249ff4f5249ff4f5249ff4e5148ff4e5148ff4d5048ff4d5047ff4d5047ff554c40ff584f44ff564d43ff564e43ff554e45ff4b443bff48423bff59534cffddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffdfffdfff3
+f6f4ff6a6b68ff3b3c39ff6c6a68ff615f5dff5f5a59ff625d5cff615c5bff5f5a59ff5c5a58ff5c5a58ff5a5b59ff5a5b59ff585b59ff595c59ff555c58ff555c58ff555c59ff565c59ff575c59ff585d5aff595d5aff595d5aff5b5e5bff575a58ff5a5a58ff5c5d5aff595a57ff4e4f4cff444442ff3f403dff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffcfffafffcfffdfffdfffdfffdfffffffdfffffffdfffffffefffffffefffffefffffff9fafffffefffff6f2f3fffffeffffa4a3a5ff474649ff444346ff3b494fff3b4a50ff404b51ff444f56ff4e545a
+ff50575dff55575cff54565bff58565bff58565bff58565aff57565aff555659ff545658ff525658ff525657ff535659ff535658ff535658ff525558ff525557ff515557ff515457ff515457ff515456ff515456ff515456ff515457ff515456ff515457ff515456ff515457ff465353ff465353ff465253ff455252ff465152ff455052ff464f52ff464e52ff43494eff343a3fff2f3239ff21242bff4c4e56ffc9cad2fffcfd
+fffff6f7fffffafffffff9fefefff8fdfcfff9fefdfffbfffffffbfffffffdfffffffbfdfdfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff42
+3d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff505352ff535655ff545656ff525454ff545656ff575959ff575959ff535555ff545756ff535555ff525454ff525555ff545756ff555757ff545656ff525554ff5b5654ff5e5958ff5b5655ff585452ff534f4eff454140ff413f3dff514f4dffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7faf9fff9fbfbfffcfefcfffefffefffefffcfffdfefbfffffffdfffffffdfff2f2edffcbcbc6ff9d9b96ff807f7aff7d7c75ff7d7c75ff76746dff6b6962ff63645c
+ff606058ff5c5d55ff5c5d55ff5c5d55ff5b5c54ff565850ff51544cff50524aff4f524aff4f5249ff4e5149ff4d5048ff4d4f47ff4c4f47ff4c4f46ff4b4c47ff4a4c47ff4a4c46ff494b45ff484a45ff484944ff474943ff474943ff484a44ff484a44ff484a44ff484a44ff484a44ff484a44ff484a44ff484a44ff474943ff474943ff474943ff474943ff474943ff474943ff474943ff474943ff474944ff474944ff4749
+44ff474944ff474944ff474944ff474944ff474944ff464842ff464842ff464842ff464842ff464842ff464842ff464842ff464842ff484a44ff484a44ff484a44ff484a44ff484a44ff484a44ff484a44ff484a44ff4c4c44ff4c4c44ff4c4c44ff4c4c44ff4c4c44ff4c4c44ff4c4c44ff4c4c44ff4d4d45ff4d4d45ff4e4e46ff4f4e46ff4f4f47ff504f48ff505048ff515048ff4d4c43ff525149ff56564dff525149ff46
+463fff42423aff4c4c46ff5b5b55ff81837dffd6d8d3fffffffcfffcfef9fffcfffbfffdfffdfffdfffdfffdfffdfffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfffbfffdfffcfffdfffffffdfffdfefcfffffffdfffffcfbfff3ecebff7b7473ff5b5044ff5e5447ff5b5347ff564e42ff4f4c40ff524f43ff505145ff4f5044ff4f5146ff4e5146ff4f5047ff4e5046ff504f47ff4f4e46ff
+514e47ff514e46ff4e4d45ff4e4d45ff4e4d45ff4e4d45ff4e4d45ff4e4d45ff4e4d45ff4e4d45ff4e4e45ff4e4e45ff4e4e45ff4e4e45ff4e4e45ff4e4e45ff4e4e45ff4e4e45ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4c44ff4d4c44ff4d4c44ff4d4c44ff4d4c44ff4d4c44ff4d4c44ff4d4c44ff4e4d45ff4d4d45ff4d4d45ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44
+ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4d4d44ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4c4b43ff4b4b43ff4b4a42ff4b4a42ff4a4a41ff4a4a41ff4a4941ff4d4a40ff4d4a40ff4d4a40ff4d4a40ff4d4a40ff4d4a40ff4d4a40ff4d4a40ff4e4b41ff4c4a3fff4b483eff4b483eff4c493fff4c493fff4a483eff49463cff4a4238ff4b43
+38ff47423cffe9e4defffffffefffffffefff9fafcfffdfffffffffffffffbfbfbfffffffbffa7a39eff685f54ff5c5348ff625646ff5c5040ff4c4e41ff4b4d41ff4b4c40ff4a4c40ff4a4b40ff4b4c41ff4c4c42ff4c4c43ff4e4d45ff4e4d45ff4e4c46ff4e4c45ff4f4c46ff4f4c46ff4f4c46ff4e4c46ff4e4f47ff4b4c44ff4d4c45ff46453eff43403aff47433dff4f4a46ffdbd6d2fffffffcfffffffcfffffffdffff
+fffdfffdfffefffdfffefffbfffefffbfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f6f6fffffffefffffffdfffffffdff
+c7c6c4ff646460ff454541ff4f514cff4d4f4aff4c4e48ff4a4c46ff494b44ff494b44ff494c44ff4a4c45ff494d46ff484d46ff484c46ff484c45ff494b44ff484a44ff484a44ff484a43ff4b4b45ff4b4b45ff4b4b45ff4b4a44ff4b4a44ff4b4943ff4b4943ff4b4943ff4b4a42ff4b4941ff4a4941ff4a4840ff49473fff48473eff48463eff47463eff48473eff48463eff47463eff47463dff46453cff46443cff45443c
+ff45443bff4a4136ff50473bff4f463cff4f473cff4d463dff443d34ff454039ff5a544dffddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffdfffdfff4f7f4ff6a6b69ff3c3c3aff6d6a69ff625f5eff605a59ff625d5cff575250ff585352ff585553ff585553ff565755ff575855ff555856ff555855ff525654ff525653ff535653ff525653ff535553ff535553ff545552ff545552ff5556
+53ff545452ff565553ff575553ff514f4dff484543ff42403eff43403eff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffdfffd
+fffdfffdfffdfffffffdfffffffdfffffefffffffefffffffcfdfffffefffffffefffffbf8fafff1f0f3ff5b5a5cff3e3f42ff4c4d50ff3b494eff3a484eff3e484eff404a50ff484d53ff4a4f55ff4e4f54ff4d4e53ff4f4d51ff4e4d51ff4e4d50ff4e4c50ff4c4d4fff4c4c4eff4a4d4eff4a4c4eff494b4eff494b4eff494b4dff484b4dff484a4dff484a4cff474a4cff47494cff424547ff424547ff424547ff424447ff
+424447ff424447ff424447ff424447ff384141ff384041ff394041ff384041ff384042ff383f41ff383f42ff383f42ff31373bff353b40ff2d3339ff20252bff2a2f35ff81868cfff8fdfffff3f7fffffafffffffafffffff9fffefff9fffefffbfffffffbfffffffdfffffffcfffefffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff545454ff595959ff5b5b5bff5b5b5bff5d5d5dff606060ff616161ff5e5e5eff5d5d5dff5b5b5bff595959ff595959ff595959ff595959ff575757ff5555
+55ff565150ff595452ff54504eff514d4bff4d4947ff403d3bff3f3d3bff504e4cffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff6f8f7fffdfffffffefffefffbfdfbfffffffdfffffffdfff3f4f1ffdcddd9ff9c9c98ff8f8f8aff7f7e78ff75736eff72706aff706e68ff6a6862ff65635cff5b5b53ff585951ff56564eff54554dff54554dff51524aff4c4f46ff484b42ff474a42ff474a41ff474941ff464940ff464840ff45483fff45473fff45473fff444640ff444540ff434540ff43453fff42443fff42443eff41433eff41433dff
+42433eff42433eff42433eff42433eff42433eff42433eff42433eff42433eff41433eff41433eff41433eff41433eff41433eff41433eff41433eff41433eff41433dff41433dff41433dff41433dff41433dff41433dff41433dff41433dff40423dff40423dff40423dff40423dff40423dff40423dff40423dff40423dff42443eff42443eff42443eff42443eff42443eff42443eff42443eff42443eff46453dff46453d
+ff46453dff46453dff46453dff46453dff46453dff46453dff47463eff47473fff48473fff494840ff4a4941ff4b4a42ff4b4b43ff4c4b44ff4c4b42ff48473eff494840ff525149ff595951ff55554eff464741ff3a3a34ff494b45ff43443fff9c9d99fff0f1edffeaedeafff9fcf9fffdfffdfff8fbf8fffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfffbfffcfffcfffdfffffffdfffdfe
+fbfffffffdfffffcfbfff3ecebff7c7574ff5c5246ff5e5447ff585145ff50493cff474538ff484639ff46473bff45453aff44463bff43463bff44453cff44453cff46453cff45443cff47443dff47443dff44443cff44443cff44443cff44443cff44443cff44443cff44443cff44443cff45453cff45453cff45453cff45453cff45453cff45453cff45453cff45453cff44443bff44443bff44443bff44443bff44443bff44
+443bff44443bff44443bff43433bff43433bff43433bff43433bff43433bff43433bff43433bff43433bff42423aff424239ff424239ff424139ff414139ff414138ff414138ff414038ff424239ff424239ff424239ff424239ff424239ff424239ff424239ff424239ff414038ff414038ff414038ff414038ff414038ff414038ff414038ff414038ff414038ff414038ff414038ff404037ff403f37ff3f3f37ff3f3f36ff
+3f3e36ff424035ff424035ff424035ff424035ff424035ff424035ff424035ff424035ff413f34ff403d33ff3f3d32ff403d33ff434036ff444137ff444137ff434136ff463e34ff4a4238ff49443effebe5dffffffffefffffffefffafbfcfffdfffffffffffffffbfbfbfffffffbffa8a5a0ff6a6155ff5c5348ff615545ff5a4e3eff44463aff44463aff44463aff434539ff424338ff424338ff44433aff45453bff48473f
+ff48473fff48463fff48463fff48453fff48453fff47453fff47443fff484942ff45463eff47463fff414039ff423e38ff48443eff514c48ffddd8d4fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefbfcfffcfaf9fffffffeffecebe9ff6e6c6aff565552ff53534fff4f514cff4b4d48ff474943ff444640ff43463eff43463eff44463fff44463fff424740ff424740ff42463fff41453fff42443eff41443dff41433dff41433cff43433dff43433dff44433dff43423dff44
+423cff43413cff43413bff43413bff44433bff44433aff44433aff44423aff44423aff44423aff43423aff43423aff414037ff414037ff414037ff414038ff414038ff424038ff424038ff424038ff4a4135ff50473bff4f463cff4e453aff4a4339ff413a31ff454039ff5c5750ffddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffdfffdfff4f7f4ff6b6c69ff3d3d3bff6e6b6aff63605eff
+605b59ff625d5bff595452ff5e5958ff605d5bff615e5cff5e5f5dff61615fff5f625fff5d605dff5b5f5cff5a5e5cff5a5d5aff585b58ff575956ff555754ff555553ff545552ff525250ff525250ff545351ff52514fff4b4947ff42403eff423f3dff474442ff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffdfffdfffdfffdfffdfffffffdfffffffdfffffefffffffefffffcf7f8fffffefffffffefffffffeffffa9a9abff444346ff3d3f41ff535456ff3c494fff3a484dff3c464cff3d474dff44494fff464c51ff4b4c51ff4b4b51ff4c4a4fff4c4a
+4fff4c4a4eff4b4a4dff494a4cff494a4cff474a4bff474a4bff47494bff47494bff46494bff46484bff46484aff45474aff45474aff454749ff414346ff414346ff414345ff414345ff404245ff404245ff404244ff404244ff394142ff394242ff3a4142ff3a4243ff3a4144ff3a4244ff3b4144ff3b4145ff32383cff363c40ff32373dff24292fff23282eff464b52ffcaced5fff9fdfffffafffffffafffffffbfffffffa
+fffefffbfffefffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff
+615a59ff615a58ff605958ff606060ff676767ff6b6b6bff6b6b6bff6c6c6cff6f6f6fff6e6e6eff6c6c6cff6c6c6cff696969ff666666ff636363ff616161ff5d5d5dff5a5a5aff575757ff575251ff595453ff544f4eff504c4aff4c4947ff413e3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffbfffdfff5faf7fffcfffdfffcfffdffe5e9e5ffb0b4afff828581ff6d6f69ff757771ff787b74ff70726bff606159ff53544cff52534bff56574fff4d4f49ff4b4d47ff484944ff454741ff434540ff4244
+3eff40423dff3f413bff42433eff41433eff41433dff41433dff41433dff40423dff40423cff40423cff41423eff41423eff41423eff40423eff40413dff40413dff40413dff3f413dff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f413dff3f413dff3f413dff3f413dff3f413dff3f413dff3f413dff3f413dff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e
+3f3bff3e403cff3e403cff3e403cff3e403cff3e403cff3e403cff3e403cff3e403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403aff3f403aff3f403aff3f403aff3f403aff3f403aff3f403aff3f403aff40403bff40403bff41413cff42423dff43433eff44443fff44453fff454540ff4b4b44ff494942ff44443eff40403aff3f403bff454741ff4b4d48ff50514dff3d3f3cff
+464946ff2e312fff606361ffdde1e0fffcffffffe8ecebfffbfffffffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfffafefbfffbfffcfffffffdfffdfefbfffffffdfffffdfbfff4edecff7c7674ff5e5447ff5f5548ff595144ff50493bff484438ff4a473aff49493dff49483cff46473cff47473cff48463dff48473dff4a463dff4a463eff4c453eff4c463eff4a473eff4a473eff4a473e
+ff4a473eff4a473eff4a473eff4a473eff4a473eff4b483fff4b483fff4b483fff4b483fff4b483fff4b483fff4b483fff4b483fff4a473eff4a473eff4a473eff4a473eff4a473eff4a473eff4a473eff4a473eff49463dff49463dff49463dff49463dff49463dff49463dff49463dff49463dff4a473eff49463dff49463dff49463dff48453cff48453cff47443bff47443bff48453cff48453cff48453cff48453cff4845
+3cff48453cff48453cff48453cff48453bff48453bff48453bff48453bff48453bff48453bff48453bff48453bff48453bff47453bff47453bff47443aff47443aff46433aff46433aff464339ff49453aff49453aff49453aff49453aff49453aff49453aff49453aff49453aff4b473cff4a463bff49453aff4a463bff4b473cff4b473cff4a463bff484439ff443c31ff4b4339ff4b4640ffebe6dffffffffdfffffffefffa
+fbfdfffdfffffffffffffffbfbfbfffffffbffa9a5a1ff6a6156ff5c5348ff615444ff594d3dff474a3eff494c40ff4a4d41ff4a4d41ff47493eff45483dff46483eff484a40ff44473eff44473eff44463eff43463eff42453eff42443eff42443dff41443dff44453dff41423aff45443dff42413aff45423cff4b4741ff534d49ffddd8d3fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8faf8fffefffefff1f3f0fffafcf9ff919490ff494b47ff454843ff5b5e59ff4e504aff494b45
+ff43453eff3f423bff3f423aff40433bff40433bff40423aff40423aff3f423aff3f4239ff3e4139ff404038ff3f4038ff403f38ff403f37ff413f37ff413f37ff423f37ff423f37ff423f37ff423f37ff433f38ff433f38ff474138ff474139ff484239ff49433aff4a433bff4b453cff4b453dff4c463dff4d473eff4e473fff4e483fff4f4941ff504a42ff524b43ff524c43ff534c44ff52493eff574e42ff534b40ff5047
+3dff4b443bff423b32ff47423bff5f5952ffddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffdfffdfff5f7f4ff6c6d6aff3e3e3cff706c6bff64615fff615b59ff635c5bff645e5dff6e6867ff736f6dff736f6eff6f706eff737471ff717371ff6e706dff70706eff6f6e6cff6c6b69ff696865ff656361ff615f5dff5f5c5aff5e5a59ff585352ff575351ff595352ff55504fff4d4746ff45
+3f3eff48413fff4f4746ff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffdfffdfffdfffdfffdfffffffefffffffefffffeffff
+fffefffffaf7f7fffffcfcfffffeffffe6e5e8ff5a5c5fff454649ff424649ff464a4dff3e4a50ff3c484eff3e474cff3f484dff474b50ff4b4f54ff525055ff535156ff545155ff545155ff545154ff535154ff525153ff515152ff505151ff505151ff505153ff505152ff505152ff4f5052ff4f5051ff4f4f51ff4e4f51ff4e4f50ff525355ff525354ff525254ff515254ff515153ff505153ff505152ff505052ff525252
+ff525252ff525253ff525253ff505254ff515254ff4f5255ff4f5355ff393f43ff2b3135ff2d3539ff21282dff283036ff212a2fff788288fff2fcfffffafffffffafffffffbfffffffafffffffafffefffbfffefffcfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff6b6768ff736f70ff787474ff787374ff767273ff777374ff767273ff746f70ff726d6eff6f6a6bff6a6667ff666263ff635f60ff5f5b5cff5b5758ff585354ff595452ff5a5554ff55504fff514d4bff4d
+4a48ff433f3eff444240ff575553ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff8fdfafffcfffdff
+fcfffdffdee2deff9da19dff6f726eff626561ff757771ff646660ff52554eff4d4f48ff54554dff585951ff53544cff4b4c44ff454641ff43453fff40423cff3e403aff3e3f3aff3e403aff40423cff41433dff40423cff40423cff40423cff40423cff40413cff3f413cff3f413cff3f413cff41423eff41423eff41423eff41423eff41423eff40423eff40423eff40423eff40413dff40413dff40413dff40413dff40413d
+ff40413dff40413dff40413dff40413dff40413dff40413dff40413dff40413dff40413dff40413dff40413dff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3e3f3bff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3f403cff3e403cff3e403cff3e403cff3e403cff3e403cff3e403cff3e403cff3e403cff3e3e39ff3e3e39ff3e3e39ff3e3e39ff3e3e39ff3e3e39ff3e3e
+39ff3e3e39ff3e3e38ff3e3e39ff3e3f39ff3f3f3aff40403aff40413bff41413cff41413cff464640ff4d4d46ff4f4f49ff4c4c46ff444640ff41433eff3f413dff3d3e3aff424541ff444743ff3e413fff2f3230ff515454ffbabdbdfffcfffffffcfffffffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfffafefbfffbfffcfffffffdfffdfefbfffffffdfffffdfbfff4edecff7d7675ff5e
+5447ff5f5548ff5a5245ff534c3eff4e4a3dff535043ff555549ff57564aff55554aff55554aff56554bff56554bff59554cff59554dff5b554dff5b554dff5a574dff5a574dff5a574dff5a574dff5a574dff5a574dff5a574dff5a574dff5b584fff5b584fff5b584fff5b584fff5b584fff5b584fff5b584fff5b584fff5a574eff5a574eff5a574eff5a574eff5a574eff5a574eff5a574eff5a574eff59564cff59564cff
+59564cff59564cff59564cff59564cff59564cff59564cff5c5950ff5c5950ff5b584fff5b584fff5a574eff59564dff59564dff58554cff59564dff59564dff59564dff59564dff59564dff59564dff59564dff59564dff59564cff59564cff59564cff59564cff59564cff59564cff59564cff59564cff58554bff57554bff57554bff57544aff57544aff56534aff56534aff565349ff585449ff585449ff585449ff585449
+ff585449ff585449ff585449ff585449ff5a564bff585449ff575348ff555146ff545045ff504c41ff4c483dff484439ff433b31ff4d453bff4d4842ffeae5dffffefdfbfffffffefffafbfdfffdfffffffffffffffafafafffffffbffa9a5a0ff6a6156ff5d5448ff625545ff5b4e3fff4a4d40ff4e5145ff525549ff525548ff4e5145ff4a4d42ff4a4c42ff4b4d43ff484b42ff474a41ff474a42ff464941ff464841ff4547
+40ff444740ff444640ff42443cff404139ff45443dff43423bff48443eff4d4944ff534e4affdcd6d2fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fbf9fffefffefffefffdffb7bab7ff585a57ff4d504cff444742ff50524eff4b4d47ff464742ff40423bff3d4039ff3f423aff40433bff40433aff3e4138ff3e4139ff3e4139ff3e4139ff3e4139ff404139ff404139ff414139ff414139ff43413aff43413aff45423bff46433bff47433cff48443dff49443dff49453eff4d473eff
+4e473fff4f4940ff504a41ff524c43ff534d45ff554e46ff554f46ff575148ff585149ff58524aff59534bff5b544cff5c554dff5c564eff5d574eff5c5347ff5d5449ff564e43ff51493eff4c453cff453e34ff49433cff5f5a53ffddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffdfffcfff5f7f4ff6c6d6bff3f3f3dff716d6cff656160ff615b5aff625c5bff66605fff736d6cff7a7675
+ff7a7674ff767774ff797a78ff777a77ff727572ff767573ff747371ff706f6dff6c6b69ff676563ff62605eff605c5bff5e5a59ff5b5755ff595553ff595452ff56504fff4e4847ff474140ff494241ff504948ff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffdfffdfffdfffdfffdfffffffefffffffefffffefffffffefffffffefffffaf6f7fffffeffffa7a7a9ff3c3e41ff494a4eff4d5053ff3e4144ff3e4a50ff3d494eff3f474dff414a4fff4c5055ff52565bff5c5a5fff5e5d62ff615e62ff615d61ff605e60ff605d60ff5e5d5fff5e5d5eff5c
+5d5dff5c5d5dff5d5d5fff5d5d5fff5c5d5fff5c5d5eff5b5c5eff5b5c5dff5b5b5dff5b5b5dff5e5f61ff5e5f60ff5e5e60ff5d5d5fff5c5d5fff5b5c5eff5b5c5dff5b5b5dff5c5c5cff5c5c5cff5c5c5dff5c5b5dff5a5c5dff595b5dff575b5eff575b5eff44494dff282e32ff2c3338ff242c30ff30393eff1e262cff3e474dffc9d2d8fff6fbfbfff8fefdfffafffffffbfffffffbfffefffafefefffcfffefffdffffff
+fdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff6e696aff777373
+ff7d797aff7d7879ff7a7576ff797475ff777373ff746f70ff6e696aff6b6667ff676363ff646061ff625e5eff5f5b5cff5c5758ff595455ff575351ff595553ff54504eff514c4bff4d4947ff423e3dff42403eff555351ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedf4f0fffafffdfffbfffdffd3dad5ff919792ff616762ff5b605aff686d67ff575b54ff595d56ff5c5e56ff585b52ff4f5249ff45483eff3c3f36ff373b31ff40453fff40443fff40443fff3f433eff3f423dff40443eff434540ff454742ff41423dff41423dff41
+423dff41423eff41423eff41423eff42423eff42423eff42433fff42433fff42433fff42433fff42433fff42433fff42433fff42433fff41423eff41423eff41423eff41423eff41423eff41423eff41423eff41423eff42433fff42433fff42433fff42433fff42433fff42433fff42433fff42433fff40423eff40423eff40423eff40423eff40423eff40423eff40423eff40423eff41423eff41423eff41423eff41423eff
+41423eff41423eff41423eff41423eff40413dff40413dff40413dff40413dff40413dff40413dff40413dff40413dff40403cff40403cff40403cff40403cff40403cff40403cff40403cff40403cff3f3f3aff3f3f3aff3f3f3aff3f3f3bff3f3f3bff3f3f3bff40403bff40403bff383732ff393833ff373632ff373732ff3d3f3bff464743ff444542ff3d3e3bff3f413fff353735ff404242ff404342ff292d2cff444847
+ffa4a8a8fff9fdfdfffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfff9fdfafffafefbfffffffdfffdfefbfffffffdfffffdfcfff4eeedff7d7775ff5f5446ff605648ff5b5345ff554e40ff524e40ff5a5648ff5e5d4fff615f52ff656357ff656357ff676358ff686359ff6b635aff6b635aff6d635bff6d635bff6a6559ff6a6559ff6a6559ff6a6559ff6a6559ff6a6559ff6a6559ff6a65
+59ff6c675bff6c675bff6c675bff6c675bff6c675bff6c675bff6c675bff6c675bff6b665aff6b665aff6b665aff6b665aff6b665aff6b665aff6b665aff6b665aff696458ff696458ff696458ff696458ff696458ff696458ff696458ff696458ff6c665cff6c665cff6b655bff6a645aff696359ff696259ff686258ff686158ff686158ff686158ff686158ff686158ff686158ff686158ff686158ff686158ff666055ff66
+6055ff666055ff666055ff666055ff666055ff666055ff666055ff645e53ff635e52ff635d52ff635d52ff625d51ff625c51ff625c51ff625c51ff605a4eff605a4eff605a4eff605a4eff605a4eff605a4eff605a4eff605a4eff5f594dff5e584cff5d574bff5b5549ff575145ff514b3fff4a4438ff443e32ff443c32ff4f473dff4f4a44ffe9e4defffcfbf9fffffffefffafbfdfffdfffffffffffffffafafafffffffbff
+a7a39fff696055ff5d5449ff635747ff5d5141ff494b3fff4f5145ff55574bff56584cff505348ff4b4e42ff484c41ff484c42ff494c43ff494c43ff474b43ff464a42ff454942ff444841ff434841ff434741ff44453eff40413aff44433cff42413aff47433dff4d4943ff534e49ffdbd6d2fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfff4f9f5ffdfe4e0ff626863ff505550ff4f544fff4e534dff434842ff464b43ff41463eff3e4138ff3d4038ff40433aff42453cff4144
+3aff3e4238ff444339ff444339ff45443aff46443bff47453bff48463cff49463cff4a463dff4e4940ff4e4a40ff514b42ff524c43ff554e45ff564f46ff585047ff585148ff5d5249ff5e534aff5e534aff5f544bff60554cff61564dff62574eff63584fff63584fff62574eff62574eff62574eff62574eff62574eff62574eff62574eff60574bff5e5549ff544b41ff4f463bff4c453cff453e35ff48433cff5d5750ffdd
+d9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffefffcfff6f7f4ff6f6d6bff41403eff736e6cff666160ff625b5aff635c5bff645c5bff736c6bff7c7775ff7b7674ff777573ff7a7977ff777875ff71716fff75716fff736f6eff706c6aff6c6766ff686261ff635e5cff615a59ff5f5857ff605857ff5d5554ff5b5251ff584f4eff524847ff4b4140ff4c4140ff514645ff868686fffefefeff
+fffffffffefefefffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffefffcfffefffefffffffefffffffffffffffffffffffffffffffffffffffffefffffdfafdffe1e1e4ff6a6a6e
+ff3d4144ff4a4e51ff454c4fff41474bff3f494dff3e484cff41474cff454c51ff535459ff5c5e62ff686569ff6c696dff6e696cff6e696cff6e696aff6d696aff6b6969ff6b6869ff696969ff696969ff686868ff686868ff686868ff676767ff676767ff666666ff666666ff666666ff636363ff636363ff626262ff626262ff616161ff606060ff5f5f5fff5f5f5fff655d5eff645c5eff625c5dff625b5cff5e5b5cff5e5b
+5bff5a5a5cff595a5cff505558ff363b3dff2f383bff2d3639ff273337ff243034ff253236ff79868afff0f6f5fff5fbfafffafffefffbfffffffbfffffffafefdfffbfefdfffcfffefffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff716a69ff7c7474ff847c7bff837b7bff807878ff7e7676ff7c7574ff797271ff736b6bff706868ff6c6564ff696161ff675f5fff645c5cff605958ff5d5655ff565250ff595453ff54504eff514c4bff4c4947ff413d3cff403e3cff52504effe0dfdcff
+fffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffcfffafffdffe2e9e4ff888e8aff4e544fff545a55ff616660ff585d57
+ff4c5149ff484c44ff43453dff3e4038ff3c3f36ff3f4239ff44473dff474a40ff3f433eff40453fff414540ff414540ff40433eff3f433eff41433eff42433fff42433fff42433fff42443fff42443fff42443fff43443fff44443fff44443fff42433fff42433fff42433fff424440ff424440ff434440ff434440ff434440ff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff424440ff4244
+40ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff424440ff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff41433fff43433eff43433eff43433eff43433eff43433eff43433eff43433eff43433eff41413cff41413cff41413cff40
+403cff40403cff40403bff40403bff40403bff3a3934ff41403bff42423dff3e3d38ff393b36ff3b3d38ff3b3b39ff363734ff454745ff373937ff2d3030ff373a39ff373a3aff2b2e2eff494d4cff898d8cfffffffdfffffffdfffffffdfffffffdfffcfffdfffcfffdfffbfffdfffbfffdfff9fdfafffafefbfffffffdfffdfdfbfffffffdfffffdfcfff5eeedff7d7776ff5f5547ff615648ff5b5345ff554d3fff514d3fff
+595547ff5e5c4fff605f51ff6b695dff6b695dff6d695eff6d695fff716960ff716960ff736961ff746a61ff6f695eff6f695eff6f695eff6f695eff6f695eff6f695eff6f695eff6f695eff716c60ff716c60ff716c60ff716c60ff716c60ff716c60ff716c60ff716c60ff706b5fff706b5fff706b5fff706b5fff706b5fff706b5fff706b5fff706b5fff6e685dff6e685dff6e685dff6e685dff6e685dff6e685dff6e685d
+ff6e685dff6e675eff6d675dff6d665dff6b655bff6b645bff6a635aff696359ff696259ff686258ff686258ff686258ff686258ff686258ff686258ff686258ff686258ff655f54ff655f54ff655f54ff655f54ff655f54ff655f54ff655f54ff655f54ff625c51ff615c50ff615b50ff615b50ff605b4fff605a4fff605a4fff605a4fff5c564aff5c564aff5c564aff5c564aff5c564aff5c564aff5c564aff5c564aff5c56
+4aff5c564aff5c564aff5b5549ff585246ff524c40ff4a4438ff433d31ff453d33ff51493fff504b45ffe9e3ddfffaf9f8fffffffefffafbfdfffdfefffffffffffff9f9f9fffffffbffa6a39eff696054ff5d5449ff645848ff5f5243ff494b3fff515347ff585b4eff595c50ff54564bff4d5045ff494d43ff494c42ff484b42ff474a41ff464942ff444840ff434740ff42463fff41463fff41453eff474840ff41423aff43
+423bff3f3e37ff44413bff4b4842ff534d49ffdbd6d2fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffbfffdfffbfffdff808581ff444a45ff464b46ff555a55ff4c504aff454a43ff444941ff3f443cff3d4037ff3d4038ff42453bff44473eff42453cff3f4238ff46453bff46463cff48473dff49483eff4b493fff4c4a40ff4e4a41ff4e4b41ff555047ff565148ff585249ff5a544bff5d564dff5f584fff615a51ff625b52ff665b52ff665b52ff675c53ff675c53ff675c53ff675c53
+ff675c53ff685d54ff695e55ff695e55ff685d54ff665b52ff655a51ff645950ff63584fff62574eff60574bff5c5347ff50473dff4b4238ff4a433aff453e34ff47413aff5a554effddd9d5fffffdf9fffffffdfffffffdfffffffefffdfcfbfffffffffffdfdfdfffefffcfff6f7f4ff6f6d6bff42403eff736e6dff676260ff625b5aff635c5bff655e5dff776f6eff807b79ff7e7978ff797876ff7d7c7aff797a78ff7273
+71ff767270ff74706fff726d6cff6e6a68ff6b6664ff676260ff665f5eff645d5cff605857ff5c5453ff59504fff574d4dff524847ff4b4140ff4a3f3fff4d4242ff868686fffefefefffffffffffefefefffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffefffcfffefffefffffffefffffffffffffffffffffffffffffffffffffffaf7fafffffdffffadadb1ff48484bff3f4346ff4b4f52ff343a3eff494f53ff3d474bff3c464bff40474bff464d52ff55575cff616367ff6e6c70ff737074ff757073ff746f72ff747071ff746f70ff726f70ff726f6fff6f6f6fff6f6f6fff6d6d6dff6d6d6dff6d6d6dff
+6c6c6cff6c6c6cff6b6b6bff6b6b6bff6b6b6bff676767ff676767ff666666ff656565ff646464ff636363ff636363ff626262ff686061ff675f61ff655f60ff645e5fff615e5eff605d5dff5b5c5eff5b5b5eff555a5dff424749ff313a3dff323a3dff182427ff273337ff1f2c30ff344145ffedf3f2fff3f8f7fff9fefdfffbfffffffbfffffffafefefffbfefdfffbfefefffdfffffffdffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7877ff423d3cff3f3a39ff443e3dff514c4aff5e5756ff615a59ff615a58ff605958ff6e6665ff797171ff827a7aff827a7aff7f7776ff7d7575ff7b74
+73ff797171ff766f6eff736b6bff6e6766ff6a6262ff665e5eff625a5aff5d5555ff595251ff575251ff5a5553ff55514fff524e4cff4d4a48ff413e3cff403e3cff514f4dffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff9f9f9fffffffffffffffffffdfdfdfffffffffffffffffffffffffff9fff9fffbfffcff8c928cff424742ff545953ff555a54ff4e534bff474c44ff44473eff43463dff41443bff40443aff42443aff44463bff46483dff48493eff40453eff41453fff41453fff42463fff43453fff42443eff41433dff41433dff474640ff474741ff494741ff484540ff47433eff46433eff48443fff
+4a4641ff48453fff48453fff48453fff484640ff494640ff494641ff494741ff4a4741ff484540ff484640ff494640ff494640ff494741ff4a4741ff4a4741ff4a4742ff484540ff484640ff494640ff494640ff494741ff4a4741ff4a4741ff4a4742ff494741ff494741ff494741ff494741ff494741ff494741ff494741ff494741ff494641ff494640ff494640ff484640ff48453fff48453fff47453fff47443fff494741
+ff494640ff494640ff484640ff484540ff48453fff48453fff47453fff474540ff47453fff47443fff46443fff46433eff45433eff45433dff45423dff43413cff43413bff43403bff42403bff43403bff43413cff44423dff45433dff43403aff423f39ff413e39ff403d37ff3d3c37ff3c3a35ff3a3935ff393834ff383735ff353532ff353634ff393937ff383838ff333333ff2f3030ff303131ff8d8d8bfffffffdfffcfc
+fafffafbf8fffbfffcfffcfffdffecf2effff8fefbfffcfffdfffcfffdfffffffdfffdfefcfffffffdfffffefcfff5efeeff7e7877ff615747ff605646ff5c5444ff5a5243ff585344ff5c5748ff615d4fff656254ff6c675aff706b5eff776f64ff7a7267ff7e7268ff7d7167ff7f7068ff7f7068ff7a7264ff7a7264ff7a7264ff7a7264ff7a7264ff7a7264ff7a7264ff7a7264ff797163ff797163ff797063ff787063ff78
+7062ff786f62ff776f61ff776f61ff776f61ff776f61ff766e61ff766d60ff756c5fff746c5eff736b5eff736b5dff756d60ff756d5fff756c5fff746b5eff736a5dff726a5cff72695cff71695bff70675dff70665cff70665cff6f655bff6e645aff6d6459ff6d6359ff6c6359ff6f655bff6e655bff6e645aff6d6359ff6c6258ff6b6258ff6b6157ff6a6157ff6b6255ff6a6254ff6a6154ff696053ff686052ff675f52ff
+675e51ff665e51ff665d50ff655d4fff655c4fff645b4eff635b4dff625a4dff62594cff61594cff61594cff61594cff61584cff60584bff60584bff5f574bff5f574aff5f574aff5f564aff5c5447ff5c5447ff5e5549ff5a5245ff51493dff4c4438ff4c4437ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545
+ff504e42ff59574cff5f5e52ff5d5c51ff57584dff545449ff4f5046ff4a4c42ff4b4e45ff494c43ff474b43ff474a43ff464a43ff454942ff414740ff3f443dff45463eff42433bff45443dff403f38ff423e39ff49453fff524d49ffded9d5fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5ffffffffffffffffffe7e7e7fffffffffffffffffff6f6f6fffafffcff949b96ff4e544fff4d534dff4b514bff494f48ff4b5049ff3f433cff3c3f37ff3e4138ff414339ff42443bff45463cff4a4b40ff4f4f45ff535449ff555145ff565347ff585448ff5a
+564aff5c574bff5d584cff5f584dff5f584dff675f54ff675f54ff685f54ff685f54ff695f54ff695f54ff695f54ff695f54ff6b5e54ff6b5e55ff6c5f55ff6c5f55ff6c5f55ff6b5e54ff6a5d54ff6a5c53ff6b5e54ff6b5e54ff6a5d53ff695c52ff685b51ff675a50ff66594fff66594fff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffeff
+fefdfcfffffffffffdfdfdfffefefbfff9f8f6ff716e6cff403d3bff716b69ff676160ff635a5aff615958ff655c5bff7a7271ff807978ff7d7776ff7f7c7aff7f7d7bff797876ff7a7977ff7b7574ff787271ff736d6cff6f6968ff6d6665ff696261ff655d5cff625a59ff615757ff5e5554ff5d5251ff5a4f4eff524746ff4b403fff4c3f3fff514544ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f9f9fffdfffffff8f8f8fffefefefffffffffff7f7f7fffffdfffffffefffffbfafefffdfcffff57595eff3b3d41ff454c50ff3a4145ff485256ff3e474cff4048
+4bff3e4549ff474b4fff565a5eff676669ff6a696cff716c6fff757073ff787172ff787172ff787172ff787172ff767172ff767172ff757271ff757271ff747171ff747071ff736f70ff716e6eff706c6dff6f6b6cff6e6a6bff6d6a6aff6b6868ff6b6868ff6b6768ff6a6767ff696666ff696566ff686565ff686565ff6d6162ff6d6161ff6a6061ff695f60ff655e5fff645d5eff5f5d5eff5e5d5dff56595bff515455ff3f
+4649ff2d3537ff232f31ff263134ff243234ff202e30ff888e8dfffafffffffbffffffecf1f0fffbfffffff8fcfbfffafdfcfffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdff
+fffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6e6564ff817877ff847c7aff807776ff837a79ff837a79ff7c7372ff7b7271ff776f6dff746b6aff6f6665ff6b6261ff685f5eff645c5bff615857ff5e5654ff575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfb
+fffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffffffffffffffffffbfbfbfffefefefffbfffcffbac0bbff616761ff444944ff4d524cff4b5049ff474b44ff40453dff44473eff45473fff45483fff46493fff4749
+3fff484a3fff484a3fff48493fff464b44ff474b44ff474b45ff474b45ff484a44ff484a44ff474943ff474943ff44433eff464540ff494741ff4a4842ff4b4742ff4b4843ff4e4a44ff504b46ff4d4a44ff4d4a44ff4d4a44ff4d4b45ff4e4b45ff4e4b46ff4e4c46ff4f4c46ff4d4b45ff4e4b45ff4e4b45ff4e4c46ff4f4c46ff4f4c46ff4f4c47ff4f4d47ff514e48ff514e48ff514e48ff514f49ff524f49ff524f4aff52
+504aff53504aff52504aff52504aff52504aff52504aff52504aff52504aff52504aff52504aff524f49ff514f49ff514f49ff514e48ff514e48ff504d47ff504d47ff504d47ff4e4b45ff4d4b45ff4d4b45ff4d4a44ff4d4a44ff4c4943ff4c4943ff4c4943ff4e4c47ff4e4c46ff4d4b45ff4c4944ff4a4843ff494741ff484640ff474540ff484640ff47453fff46433eff44423cff43413bff42403bff42403bff42403bff
+423f39ff423f39ff423f39ff413f39ff403e39ff403e39ff3f3d3aff3e3d39ff3c3c39ff393936ff373736ff373836ff333333ff2d2d2dff2b2c2cff2e2f2fff4e4f4cffacadaafffffffdfffefffdfffcfffdfff8fdfafffbfffdfffbfffdfffbfffdfffcfffdfffffffdfffdfefbfffffffdfffffefcfff6efeeff7f7877ff615747ff605646ff5c5444ff5b5343ff595445ff5e594aff625f51ff676355ff6d685bff716c5f
+ff787065ff7b7469ff7f736aff7f7369ff81736aff82736bff7c7366ff7c7366ff7c7366ff7c7366ff7c7366ff7c7366ff7c7366ff7c7366ff7b7265ff7b7265ff7a7264ff7a7164ff797164ff797163ff797063ff797063ff797063ff787062ff786f62ff776e61ff766e60ff756d60ff756c5fff746c5fff766e61ff766e60ff766d60ff756c5fff746b5eff736b5dff736a5dff726a5cff71685eff71675dff71675dff7066
+5cff6f655bff6e655aff6e645aff6d6459ff6f655bff6e655bff6e645aff6d6359ff6c6359ff6c6258ff6b6157ff6b6157ff6b6255ff6a6254ff6a6154ff696053ff686052ff675f52ff675e51ff665e51ff665d50ff655d4fff655c4fff645b4eff635b4dff625a4dff62594cff61594cff61594cff61594cff61584cff60584bff60584bff5f574bff5f574aff5f574aff5f564aff5c5447ff5c5447ff5e5549ff5a5245ff51
+493dff4c4438ff4c4437ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545ff525045ff5b5a4eff616055ff605f53ff5a5a4fff57574cff525349ff4d4e45ff4b4e45ff494c43ff474a43ff464a42ff464a43ff454942ff424740ff3f453eff45463eff42433bff45443dff403f38ff423f39ff49453fff524d49ff
+ded9d5fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffcfcfcfffffffffff9f9f9fff9f9f9ffffffffffc3cac4
+ff6e7670ff434a44ff494f49ff464b45ff444a43ff484c45ff3d423bff3e4139ff40433aff43453bff45473dff494a40ff4f5046ff57574cff5c5c52ff635f53ff646054ff666156ff676357ff696458ff6a6559ff6b6459ff6b6459ff696256ff696256ff6b6256ff6b6256ff6b6156ff6b6156ff6c6156ff6c6156ff6d6056ff6d6057ff6e6057ff6e6157ff6e6057ff6d6056ff6c5f55ff6b5e54ff6c5e55ff6b5e55ff6b5d
+54ff6a5c53ff685b51ff675a50ff665950ff66594fff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffefefbfff9f8f6ff716e6cff403d3bff716b69ff676160ff635a5aff615958ff655c5bff7a7271ff807978ff7d7776ff7f7c7aff807d7bff797876ff7a7977ff7b7674ff787271ff746d6cff706a68ff6d
+6665ff696261ff655d5cff625a59ff615757ff5e5554ff5d5251ff5a4f4eff524746ff4b403fff4c3f3fff514544ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffafdfdfffdfffffffafafafffffffffffffffffff9f9f9fffffcfffffffdfffffffeffffb4b3b6ff4b4d52ff434549ff41474cff3b4246ff414a4fff3d474bff40484bff41494dff4e5256ff5c6164ff6b6a6dff6d6c6fff736e71ff777275ff797273ff797273ff797273ff797273ff777273ff777273ff767372ff767372ff757272ff757172ff747071ff736f70ff726e6fff706d6dff6f6c6cff6f6b6c
+ff6d696aff6c6969ff6c6869ff6b6868ff6a6767ff6a6667ff696666ff696566ff6e6262ff6e6162ff6b6062ff6a5f61ff665f60ff655e5fff5f5e5eff5f5d5dff585b5dff545759ff444c4eff333b3dff273234ff263134ff243234ff222f31ff4b5050ffd9dfdefff0f6f5fffbfffffff7fcfbfff6faf9fffdfffffff4f6f6fffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6e6664ff817977ff847c7bff807876ff837b79ff837b79ff7c7472ff7b7371ff776f6eff746b6aff6f6665ff6b
+6261ff685f5eff655c5bff615857ff5e5654ff575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fffcfcfcfffffffffffdfdfdfff8f8f8fffffffffff4f6f1ff71736dff3b3d37ff4a4c46ff494c45ff43453eff42433bff41423aff47473eff494940ff4c4b41ff4e4d43ff4f4e43ff4e4d42ff4d4b3fff4b4a3eff484b41ff484b41ff494b41ff494b42ff4b4b42ff4b4b42ff4d4b42ff4d4b42ff4c473fff504b42ff564e46ff59524aff5c534bff5d544cff60564fff625850ff635c52ff635c52ff645c53ff645d53
+ff645d53ff655e54ff655e54ff655e54ff6b645aff6c645bff6c655bff6c655bff6c655bff6d665cff6d665cff6d665cff6d665cff6d665cff6e665dff6e675dff6e675dff6f685eff6f685eff6f685eff6f685eff6f685eff6f685eff6f685eff6f685eff6f685eff6f685eff6f685eff6f675eff6e675dff6e675dff6e675dff6d665cff6d665cff6d665cff6d655cff6d665cff6d655cff6c655bff6c655bff6c655bff6b64
+5aff6b645aff6b645aff666058ff655f57ff645e55ff625c53ff605a51ff5e584fff5c564eff5b554dff585249ff565048ff544e46ff514b43ff4f4940ff4d473fff4c463dff4b453dff4c463dff4d463dff4d463eff4d473eff4d4740ff4d4840ff4d4841ff4d4841ff4a4741ff47433eff44413cff403d38ff373431ff2e2c28ff2d2b27ff312f2bff272825ff494a47ffe1e1dffffffffdfff6faf7fff4f8f5fffbfffdfffb
+fffdfffbfffcfffcfffdfffffffdfffdfefbfffffffdfffffefcfff6efeeff7f7877ff625847ff605645ff5c5443ff5c5443ff5d5747ff625c4cff676253ff6b6657ff70695bff746d5fff7c7165ff7f7469ff84746aff84756bff88756cff89766dff817667ff817667ff817667ff817667ff817667ff817667ff817667ff817667ff807566ff807565ff807465ff7f7465ff7f7464ff7f7364ff7e7364ff7e7364ff7e7263ff
+7e7263ff7d7162ff7c7162ff7b7061ff7b6f60ff7a6f5fff7a6e5fff7b7060ff7b6f60ff7a6f60ff796e5fff796d5eff786c5dff776c5dff776b5cff76695eff76695eff75685dff74685dff74675cff73665bff72655aff72655aff72655aff72655aff71645aff716459ff706358ff6f6257ff6e6157ff6e6156ff6e6253ff6d6253ff6d6152ff6c6151ff6b6051ff6b5f50ff6a5e4fff6a5e4fff695d4eff685d4eff685c4d
+ff675c4cff665b4cff665a4bff65594aff65594aff63594bff63594bff63594bff62584bff62584aff61574aff615749ff615749ff615749ff5e5446ff5e5446ff605548ff5c5244ff53493cff4e4437ff4e4436ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545ff5a5348ff635c51ff696358ff686257ff625d
+53ff5f5a50ff59564dff545249ff4e4e45ff4d4c44ff494a43ff484a42ff474a43ff474942ff434741ff41453fff45463fff42433bff45443dff403f38ff433f39ff494540ff534d49ffded9d5fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fff9f9f9fffffffffff1f1f1ffffffffffecececff777c76ff4c524cff424740ff4b5049ff474942ff44473fff484a42ff3f4038ff434239ff45453cff4b483eff4f4c43ff555147ff5d594eff656056ff6b665bff6e6759ff6e685aff70695bff716a5cff726a5dff726a5dff736a5cff73695cff
+706659ff706659ff716559ff716559ff726559ff726559ff726559ff726559ff706459ff716459ff716459ff716459ff716459ff706358ff6f6257ff6e6156ff6d6055ff6c5f55ff6b5f54ff6a5d52ff695c51ff685b50ff675a4fff66594eff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffffdfbfffaf8f6
+ff726e6cff413d3bff726a69ff696160ff645a5aff635958ff665c5cff7c7271ff817978ff7f7776ff807c7aff817d7bff7a7876ff7b7977ff7a7675ff777371ff736e6dff6f6a69ff6c6765ff686361ff655e5dff615a59ff605857ff5d5554ff5c5251ff594f4eff514746ff4a403fff4b403fff504544ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffaf9fbfffffffffffffefffff9f9fbfffffefffffcfafefff3f3f8ff5e5e62ff3f4348ff4a4e53ff3d464bff3b4449ff3a464bff3a464cff42484aff494f52ff5a5c5fff676a6dff716f71ff71
+6f71ff777172ff7c7576ff7d7375ff7d7375ff7d7474ff7d7474ff7b7473ff7b7473ff7a7573ff7a7573ff797473ff797473ff787372ff777271ff767170ff75706fff746f6eff746e6dff716b6bff706b6aff706a6aff6f6a69ff6e6968ff6d6867ff6d6766ff6c6766ff706363ff706362ff6d6262ff6c6160ff686060ff665e5eff615e5eff615d5eff5d5d5dff5c5c5cff4e5354ff3f4345ff2f3739ff2a3234ff273133ff
+263032ff222827ff8e9493fff5fbfafffbfffffff0f5f4fffafefdfffdfffffff5f8f7fffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3c
+ff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6e6764ff817a77ff847d7aff807976ff837c79ff837c79ff7c7572ff7b7471ff77706dff736c69ff6e6764ff6a6360ff67605dff645d5aff605957ff5e5754ff575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffff7f7f7fffbfbfbfffffffffffbfbfbfffdfdfdffffffffffc4c6c0ff484a44ff32342eff484a44ff44463fff42453dff404139ff4b4c44ff4b4b42ff4c4d43ff4f4e44ff504f45ff515045ff514f44ff504f43ff504e42ff484b42ff48
+4c42ff4a4c43ff4b4d44ff4e4e45ff505047ff535148ff545249ff58534bff5d584fff645d55ff686159ff6b625bff6c635cff6f655dff70665eff736c62ff746c63ff746d63ff746d63ff746d63ff756e64ff756e64ff756e64ff726b61ff726b61ff736b62ff736c62ff736c62ff746d63ff746d63ff746d63ff746c63ff746d63ff746d63ff746d63ff756e64ff756e64ff756e64ff766e65ff756e64ff756e64ff756e64ff
+756e64ff756e64ff756e64ff756e64ff756e64ff756e64ff756e64ff756e64ff746d63ff746d63ff746d63ff746c63ff736c62ff766f65ff766e65ff756e64ff756e64ff756e64ff746d63ff746d63ff746d63ff756f67ff746e66ff736d65ff726c63ff706a62ff6e6860ff6d675fff6c665eff676158ff655f57ff635d54ff5f5951ff5d574fff5b554dff5a544cff59534bff5a544bff5a544bff5a544bff5a544bff59544c
+ff5a544cff58544dff59544dff55524cff54504aff514e49ff4c4944ff3f3d39ff33312dff2f2d29ff312f2cff353633ff282926ff8d8e8cfffffffdfff0f5f2fffcfffdfffbfffdfff6fbf8fffafffcfffbfffcfffffffdfffdfdfbfffffffdfffffefdfff6f0efff7f7978ff625847ff605645ff5c5443ff5d5544ff605949ff666050ff6b6657ff6e695aff70695bff736c5fff7b7065ff7f7468ff84746aff85756bff8977
+6dff8b786fff847869ff847869ff847869ff847869ff847869ff847869ff847869ff847869ff837768ff837768ff827768ff827767ff827667ff817667ff817566ff817566ff807565ff807465ff7f7465ff7e7364ff7e7263ff7d7162ff7c7162ff7c7061ff7c7162ff7c7162ff7c7061ff7b6f60ff7a6f5fff796e5fff796d5eff786d5eff776b60ff776a5fff776a5fff76695eff75685dff74675cff74675cff73665cff73
+665bff72655aff72655aff716459ff706358ff6f6258ff6f6257ff6e6257ff6e6253ff6d6253ff6d6152ff6c6151ff6b6051ff6b5f50ff6a5e4fff6a5e4fff695d4eff685d4eff685c4dff675c4cff665b4cff665a4bff65594aff65594aff63594bff63594bff63594bff62584bff62584aff61574aff615749ff615749ff615749ff5e5446ff5e5446ff605548ff5c5244ff53493cff4e4437ff4e4436ff473f35ff4a4238ff
+504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545ff5c554aff665f54ff6c665bff6b655aff656056ff625d53ff5c5a50ff58554cff515048ff4e4e45ff4a4b44ff494a42ff484a43ff474943ff444841ff42463fff46473fff42433cff45453dff414039ff433f3aff4a4640ff534e49ffdfdad5fffffffcfffffffcfffffffdfffffffd
+fffdfffefffdfffefffbfffefffbfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffffffffffffffffffafafaffffffffffffffffff9c9c9cff50564fff454b44ff4a4f48ff4f544dff484a43ff4648
+41ff474941ff3e4037ff434239ff48473eff504e44ff57554bff5f5b50ff656157ff6c675cff706b61ff6f685bff70695cff716a5cff726b5dff736b5dff726a5dff736a5cff72695cff73695cff73695cff74685cff74685cff75685cff75685cff75685cff75685cff74675dff75685dff75685dff75685dff74675cff73665bff72655aff716459ff6e6156ff6e6156ff6c6055ff6b5e53ff6a5d52ff685b50ff675a4fff66
+5a4fff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffffdfbfffaf8f6ff726e6cff413d3bff726a69ff696160ff645a5aff635958ff675d5cff7c7272ff817a79ff7f7776ff817c7bff817d7cff7a7977ff7b7a78ff7b7675ff777372ff736e6dff6f6a69ff6c6766ff686362ff655e5dff625b5aff605857ff
+5d5554ff5c5251ff594f4eff514746ff4a403fff4b403fff504544ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfdfdfffdfffffffaf9fb
+fffffffffffffefffffafafcfffffefffffcfafeffbebec2ff36363bff404449ff4c5055ff40494eff3c454aff3e4a50ff3a474cff43494bff505658ff636669ff6e7174ff757275ff737173ff797273ff7d7677ff7e7577ff7e7577ff7e7576ff7e7576ff7d7675ff7d7675ff7c7675ff7c7675ff7c7675ff7b7675ff7b7574ff7a7473ff797372ff787272ff777271ff777171ff746e6dff736e6dff726d6cff716c6bff706b
+6aff6f6a69ff6e6968ff6e6968ff726564ff716464ff6f6463ff6d6262ff696161ff675f5fff625f5fff625e5fff5d5d5dff5e5e5eff54595bff474c4dff353d3fff2b3335ff263032ff263032ff272d2cff414746ffe8edecfffafffefff7fbfafffbfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6f6865ff827b78ff857e7bff817a77ff847d7aff847d7aff7d7673ff7c7572ff77706dff746d6aff6f6865ff6b6461ff68615eff645d5bff615a57ff5e5754ff
+575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffff9f9f9fffdfdfdfffffffffffbfbfbffffffff
+ffffffffff797872ff413f39ff413f39ff42403aff413f37ff4a4840ff4a473fff5f5c54ff5a564dff5a564cff5a554bff59554aff5b554aff5c564bff5e584cff5f594dff57584bff58584bff5a594cff5c5b4eff605d50ff636154ff686356ff6a6458ff6b6256ff6f665aff766a5fff7a6e62ff7c6e63ff7c6e63ff7e6f64ff7f7065ff7c7163ff7d7163ff7d7163ff7d7264ff7e7264ff7e7364ff7e7365ff7e7365ff7c70
+62ff7c7062ff7c7062ff7c7163ff7d7163ff7d7264ff7d7264ff7e7264ff7e7365ff7e7365ff7f7365ff7f7465ff7f7466ff807466ff807466ff807567ff7f7365ff7f7365ff7f7365ff7f7365ff7f7365ff7f7365ff7f7365ff7f7365ff807567ff807567ff807566ff807466ff7f7466ff7f7365ff7f7365ff7e7365ff7e7365ff7e7264ff7e7264ff7d7264ff7d7263ff7d7163ff7c7163ff7c7163ff7b7166ff7b7165ff7a
+7065ff797064ff796f63ff786e63ff786e62ff776d62ff766c60ff746a5fff72695dff70665bff6e6459ff6d6358ff6c6257ff6c6257ff6c6155ff6b6154ff6a6054ff685e52ff675d52ff655c50ff635b50ff635a50ff5f584fff5e574eff5e574eff5a534bff4f4841ff3f3932ff363029ff352f28ff3f403eff282927ff3f403effe1e1dffff9fdfafffcfffdfff3f8f5fff7fdfafffafefbfffbfffcfffffffdfffdfdfbff
+fffffdfffffffdfff7f0efff807978ff635948ff605644ff5c5443ff5e5644ff645d4cff6b6554ff716a5bff736d5dff71695bff756c5eff7d6f63ff807266ff857368ff87746aff8c766cff8e786eff887b6aff887b6aff887b6aff887b6aff887b6aff887b6aff887b6aff887b6aff877a69ff877969ff877969ff867968ff867868ff867867ff857867ff857867ff847666ff847666ff837665ff827564ff827463ff817363
+ff807362ff807262ff807261ff7f7261ff7f7161ff7e7060ff7d705fff7c6f5eff7c6e5eff7c6e5dff7b6b60ff7a6b60ff7a6a5fff796a5eff78695dff77685dff77675cff77675cff75665aff75665aff74655aff746459ff736358ff726357ff726257ff716256ff706352ff706252ff6f6251ff6e6150ff6e604fff6d5f4fff6c5f4eff6c5e4eff6b5e4dff6b5d4dff6a5d4cff695c4bff695b4aff685a4aff675a49ff6759
+49ff65594bff65594aff64594aff64584aff635849ff635749ff635749ff635749ff625748ff605446ff605446ff615547ff5e5244ff55493bff504436ff504435ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545ff63564cff6d5f56ff73675dff72665cff6c6259ff695f56ff635c53ff5f574fff58534cff55
+5049ff4f4d46ff4d4b44ff4a4a44ff4a4943ff474842ff454640ff464740ff43443cff46453eff414039ff44403aff4a4641ff534e4affdfdad6fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffffffffffffffffff3f3f3ffffffffffc6c6c6ff5a5a5aff4c4e47ff4e5049ff51534cff4d5049ff484840ff484941ff4a4840ff434138ff49443bff504b42ff5c554bff655e53ff6d6359ff70675cff74695eff756a60ff756c5dff766d5eff776e5fff786e5fff796e60ff786e5fff796d5fff786d5eff786b5dff786b5dff796b5dff796b5dff796b5d
+ff796b5dff7a6b5dff7a6b5dff766c5fff776c5fff776c5fff766b5fff756a5eff74695dff73685bff72675bff6e6357ff6d6356ff6c6155ff6b6053ff695e52ff675c50ff665b4fff655a4eff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffffdfbfffbf8f6ff736e6cff423c3bff736a69ff696160ff655a
+5aff635858ff685d5cff7d7372ff837a79ff807877ff827d7bff837d7cff7c7977ff7d7a78ff797775ff767472ff726f6dff6e6b69ff6b6866ff676462ff635f5dff605b5aff5e5857ff5b5554ff595351ff56504eff4f4746ff48403fff49403fff4e4544ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfcfefffefffffffdfcfefffffefffffcfbfffffffdfffffffdffffefeef2ff727378ff3b3c41ff44494fff42484eff3f4a50ff374248ff404f54ff37464bff494d4fff585c5eff6c6c6fff737476ff777375ff767173ff7b7374ff7e7577ff817678ff817678ff
+817776ff817776ff807776ff807776ff7e7875ff7e7875ff7f7876ff7e7776ff7e7775ff7d7675ff7d7674ff7c7573ff7b7473ff7b7472ff787170ff78716fff77706eff766f6dff746d6cff736c6aff726b69ff726b69ff726766ff716765ff6f6564ff6d6462ff6a6261ff686160ff645f60ff635e5fff5d5c5cff5e5d5dff5a5b5cff515354ff404445ff333638ff2b3032ff2b3032ff2e3433ff242928ff989d9dfff5fbfa
+fffbfffffff6fafafff9fbfbfffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff6059
+58ff5f5857ff615a58ff6d6965ff807c78ff847f7bff7f7b77ff827e7aff827e7aff7b7773ff7a7672ff76716dff726e69ff6d6964ff696560ff66625dff635f5aff5f5b57ff5c5854ff575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffafafafffffffffffdfdfdfffcfcfcffffffffffe1e1e1ff414039ff44433dff4a4942ff3e3d36ff3d3b33ff4d4b43ff59564eff6a675fff69645bff67635aff666257ff656156ff666156ff686358ff6b655aff6d675bff646557ff646557ff656558ff676659ff6b685bff6e6c5fff
+746e62ff767064ff756c60ff786f63ff7d7166ff7f7368ff807267ff807267ff827368ff837469ff807566ff807567ff807567ff817567ff817668ff827668ff827668ff827768ff84796bff84796bff85796bff857a6bff857a6cff867a6cff867a6cff867b6dff837869ff83786aff83786aff84786aff84796bff85796bff85796bff857a6bff84796aff84796aff84796aff84796aff84796aff84796aff84796aff84796a
+ff867a6cff857a6cff857a6cff85796bff85796bff84796aff84786aff84786aff84796bff84796bff84796aff84786aff83786aff837769ff837769ff827769ff7e7468ff7e7468ff7d7468ff7d7367ff7d7367ff7c7267ff7c7267ff7c7266ff7a7165ff796f64ff786e62ff766c60ff756b5fff746a5eff736a5eff736a5eff71675aff706659ff6e6458ff6c6256ff695f54ff665d52ff645b51ff635a50ff60584fff5e56
+4dff5d564eff5d564eff554e47ff463f38ff39332cff342e27ff2f302dff272826ff252624ff969794fffcfffdfff9fdfafff7fcf9fffbfffdfff9fdfbfffafefbfffffffdfffdfdfbfffffffdfffffffdfff7f1efff817a79ff645a48ff605644ff5c5442ff5f5746ff67604fff706958ff756e5eff777060ff736a5cff766d5fff7d7064ff807266ff857268ff867469ff8b766cff8d786eff897c6bff897c6bff897c6bff89
+7c6bff897c6bff897c6bff897c6bff897c6bff897b6aff887b6aff887a6aff887a69ff877a69ff877969ff877968ff867968ff857767ff857766ff847666ff837665ff827564ff827463ff817463ff817363ff807262ff7f7261ff7f7161ff7e7160ff7d705fff7d6f5eff7c6e5eff7c6e5dff7b6b60ff7a6b60ff7a6b5fff796a5eff78695dff78685dff77685cff77675cff76665bff75665bff75655aff746559ff736458ff
+726358ff726357ff726257ff706352ff706252ff6f6251ff6e6150ff6e604fff6d5f4fff6c5f4eff6c5e4eff6b5e4dff6b5d4dff6a5d4cff695c4bff695b4aff685a4aff675a49ff675949ff65594bff65594aff64594aff64584aff635849ff635749ff635749ff635749ff625748ff605446ff605446ff615547ff5e5244ff55493bff504436ff504435ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdffff
+fffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545ff66584fff6f6258ff756960ff75695fff6f655cff6c6259ff665f57ff625b53ff5d5951ff5a554dff525049ff4f4d46ff4b4b45ff4a4a44ff474842ff454640ff474840ff43443dff46453eff42413aff44403aff4a4741ff544f4affe0dad6fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffbfbfbffffffffffffffffffe7e7e7ff6c6c6cff4d4d4dff4b4d46ff4e504aff4b4e47ff43453eff43433bff46473fff4a483fff48463eff514c43ff58534aff64
+5c52ff6c645aff71685dff73695fff73695eff74695eff756d5dff766d5eff776e5fff786f60ff7a7061ff7a7061ff7b6f61ff7a6f60ff7b6e60ff7b6e60ff7c6e60ff7c6e60ff7c6e60ff7c6e60ff7d6e60ff7d6e60ff796e62ff796e62ff796e62ff786d61ff776c60ff766b5eff74695dff73685cff6f6558ff6f6458ff6d6256ff6b6154ff695f52ff685d51ff665b4fff665b4eff60574cff5e5549ff534b40ff4e463bff
+4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffffdfbfffbf8f6ff736e6cff423c3bff736a69ff696160ff655a5aff635858ff685d5dff7e7372ff837b7aff817877ff827d7cff837e7cff7c7a78ff7d7a79ff797876ff767472ff72706eff6e6c6aff6b6866ff676462ff645f5eff605c5aff5e5857ff5b5554ff595351ff56504eff4f4746ff48403f
+ff49403fff4e4544ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefffffefffffffffefffffffefffffdfcfffffffefffffbfafeffc2c0
+c5ff3e3f44ff4b4b51ff464b51ff3b4147ff3b464cff384348ff3d4b51ff39474dff525658ff606466ff707173ff737476ff767274ff767274ff7c7475ff7d7476ff827678ff827678ff827777ff827777ff807876ff807876ff7f7876ff7f7876ff7f7877ff7f7877ff7f7876ff7e7776ff7e7775ff7d7675ff7d7674ff7d7674ff7b7473ff7b7472ff797271ff78716fff766f6eff756e6cff746d6bff736c6bff746967ff73
+6867ff716766ff6f6564ff6b6362ff696160ff656061ff645f60ff5d5b5bff5d5b5cff5b5c5dff57585aff494d4eff393d3eff2e3335ff2c3133ff272d2cff363c3bff393f3effe6ebebfffbfffffff7fbfbfffdfffffffafdfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6e6a66ff817d78ff84807cff807c78ff837f7bff837f7bff7c7873ff7b7773ff76726dff726e6aff6d6965ff696561ff66625eff635f5bff5f5b57ff5d5954ff575351ff595453ff544f4eff504b4aff4c4847
+ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffff9f9f9fffffffffffafafafffefefeffffffffffb0b0b0ff44403aff4e4a44ff524e47ff504c
+45ff46413aff524d46ff706a61ff6d675fff736c63ff736c63ff746c62ff746c62ff756d61ff766d62ff766e62ff776f63ff707060ff706f5fff706d5eff6f6d5dff736e5eff746f60ff7a7163ff7b7364ff7e7264ff807466ff847567ff857668ff867467ff867568ff897669ff8b786bff897b6aff8a7b6aff8a7b6bff8a7c6bff8a7c6bff8b7d6cff8b7d6cff8b7d6cff887a69ff887a69ff897a69ff897b6aff897b6aff8a
+7c6bff8a7c6bff8a7c6bff887a69ff887a69ff887a69ff897a6aff897b6aff897b6aff8a7b6aff8a7c6bff8b7d6cff8b7d6cff8b7d6cff8b7d6cff8b7d6cff8b7d6cff8b7d6cff8b7d6cff8b7c6cff8a7c6bff8a7c6bff8a7c6bff8a7b6aff897b6aff897b6aff897a6aff8a7b6bff897b6aff897b6aff897b6aff897a69ff887a69ff887a69ff887969ff887c6eff887c6eff877b6dff867a6cff85796bff84786aff837769ff
+837769ff807466ff7f7365ff7d7163ff7b6f61ff7a6d5fff786c5eff786c5eff786c5eff75695aff746859ff726657ff706355ff6c6053ff6a5e50ff675c4fff665b4eff645a4eff5f5549ff5d5349ff5e554aff5b5248ff4e463cff423930ff3b3329ff2c2d2bff30312eff323230ff50514fffe5eae7fff7fbf8fffbfffdfffbfffdfff9fdfafffafefbfffffffdfffcfdfbfffffffdfffffffdfff8f1f0ff817a79ff645a48
+ff605644ff5c5442ff615846ff696250ff736c5bff787161ff7a7363ff786e5fff7a7062ff817266ff827467ff877368ff88746aff8e766cff90786fff8b7c6bff8b7c6bff8b7c6bff8b7c6bff8b7c6bff8b7c6bff8b7c6bff8b7c6bff8a7c6aff8a7b6aff8a7b6aff897b69ff897a69ff897a69ff887a68ff887968ff867866ff867766ff857765ff857665ff847564ff837463ff827462ff827462ff817261ff807260ff8071
+60ff7f705fff7e6f5eff7d6f5dff7d6e5dff7c6e5cff7c6b5fff7b6b5fff7b6a5fff7a695eff79685dff78685cff78675cff77675bff77675bff77665bff76665aff756559ff756459ff746358ff736357ff736257ff716351ff716251ff706250ff706150ff6f604fff6e5f4eff6d5f4dff6d5e4dff6c5e4cff6c5d4cff6b5d4bff6b5c4bff6a5b4aff695a49ff685a48ff685948ff66594aff65594aff65594aff65584aff64
+5849ff645749ff645749ff645748ff635748ff615446ff615446ff625547ff5f5243ff56493bff514436ff504435ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ada9ff665d52ff61584cff5f5343ff615545ff6c5b52ff76655cff7c6c63ff7b6c63ff75685fff73665dff6d625bff695e57ff655d56ff605952ff58534dff534f48ff4f4c46ff4d4a44ff
+494842ff474640ff474840ff43453dff47463fff42413aff44403bff4b4741ff544f4bffe0dbd6fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffafafafffffffffff8f8f8fffbfbfbfff1f1f1ff959595ff3f3f3fff545454ff494b44ff4d5049ff494942ff404039ff44423aff47453eff4d4940ff544f47ff61594fff655d54ff6d6359ff71675dff75685eff75685eff77695eff77695fff766c5cff776d5dff786e5eff7a7060ff7c7161ff7c7161ff7d7161ff7d7161ff807262ff807262ff817262ff817262ff817162ff817162ff827162ff827162ff797063ff7970
+63ff797063ff786f62ff776e61ff756c5fff736a5eff73695dff6f6659ff6e6558ff6d6457ff6b6255ff696053ff675e51ff655c4fff645b4eff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffffdfbfffbf8f6ff736e6cff423c3bff736a69ff6a6160ff655a5aff645858ff695d5dff7e7373ff847b7aff81
+7877ff837d7cff847e7dff7d7a78ff7e7b79ff787876ff747573ff70706eff6c6c6aff6a6967ff666563ff62605eff5f5d5bff5c5857ff595654ff585351ff55504eff4d4746ff46403fff47403fff4c4644ff848484fffffffffffdfdfdfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffefdfffffffeffffdddbe0ff78777cff393a40ff4b4c52ff434a50ff3f454cff364349ff3e4a50ff35454bff405055ff5d6062ff686c6dff747475ff747475ff777273ff797575ff7f7577ff7e7476ff827777ff827777ff827776ff827776ff817876ff817876ff807875
+ff807875ff807877ff807877ff807876ff807876ff7f7776ff7f7775ff7f7775ff7f7775ff7e7675ff7e7674ff7c7473ff7b7371ff79716fff776f6eff766e6dff766e6cff746b68ff736a67ff716866ff6f6664ff6b6463ff696261ff666160ff65605fff5e5b5cff5d5a5bff5c5c5cff5e5e5eff555557ff454446ff36383aff323335ff272c2cff3d4342ff1c2120ff9da3a2fff8fcfbfffbfffffffdfffffffdfffffffdff
+fffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6d6b66ff807e79ff83
+817cff7f7d78ff82807bff82807bff7b7974ff7a7873ff75736eff716f6aff6c6a65ff686661ff65635eff62605bff5e5c57ff5b5954ff575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffffff9f9f9fffefefefffbfbfbff8b8b8bff615d57ff57534dff55514aff65605aff504b44ff544f48ff7f7971ff6a645cff746d64ff766f65ff787166ff7a7368ff7b7368ff7a7267ff797165ff787064ff7a7969ff787767ff777565ff757363ff767162ff787364ff7c7365ff7d7566ff817567ff827769ff86776a
+ff86776aff887669ff89786bff8c7a6dff8f7c6fff8b7d6cff8b7d6cff8b7d6cff8c7d6dff8c7e6dff8c7e6dff8d7e6dff8d7f6eff988a79ff988a79ff998a79ff998b7aff998b7aff9a8c7bff9a8c7bff9a8c7bffa19282ffa19382ffa19382ffa29382ffa29483ffa29483ffa29483ffa39484ffa69887ffa69887ffa69887ffa69887ffa69887ffa69887ffa69887ffa69887ffa49585ffa39584ffa39584ffa39584ffa394
+83ffa29483ffa29483ffa29383ff9d8f7eff9d8f7eff9d8f7eff9c8e7dff9c8e7dff9c8d7dff9c8d7cff9b8d7cff8c8072ff8b7f71ff8a7e70ff887c6eff867a6cff84786aff837769ff827668ff837769ff827668ff807466ff7d7163ff7b6e60ff796d5fff786c5eff786b5dff76695aff756859ff736758ff716456ff6e6254ff6c6052ff695e51ff685d50ff675d52ff5f554aff5a5046ff5d5349ff5c5349ff544b41ff48
+3f36ff40382fff3f3f3dff434442ff40413eff2c2d2bffc2c7c4fffcfffdfffafffdfff6fbf8fff9fdfafffafefbfffffffdfffcfdfbfffffffdfffffffdfff8f1f0ff817b79ff645b48ff605644ff5c5442ff615846ff6a6352ff746e5cff7a7363ff7b7464ff7a7062ff7c7364ff837468ff847569ff887469ff89756bff8e776dff91796fff8b7d6bff8b7d6bff8b7d6bff8b7d6bff8b7d6bff8b7d6bff8b7d6bff8b7d6bff
+8a7c6aff8a7c6aff8a7b6aff897b69ff897a69ff897a69ff887a68ff887a68ff867866ff867766ff857765ff857665ff847564ff837463ff827462ff827362ff807260ff807160ff7f715fff7f705fff7e6f5eff7d6e5dff7c6e5cff7c6d5cff7b6b5fff7b6a5fff7a6a5eff7a695dff79685dff78675cff77675bff77665bff77675bff77665bff76665aff76655aff756459ff746358ff736357ff736357ff716351ff716251
+ff706250ff706150ff6f604fff6e5f4eff6d5f4dff6d5e4dff6c5e4cff6c5d4cff6b5d4bff6b5c4bff6a5b4aff695a49ff685a48ff685948ff66594aff65594aff65594aff65584aff645849ff645749ff645749ff645748ff635748ff615446ff615446ff625547ff5f5243ff56493bff514436ff504435ff473f35ff4a4238ff504b45ffe1dcd5fffffffefffffefcfffdfffffffdfffffffffffffffcfcfcfffffffbffb1ad
+a9ff665d52ff61584cff5f5343ff615545ff6e5d54ff78675eff7e6e65ff7e6e65ff786b62ff766960ff70655dff6c6159ff686059ff635c54ff5a554fff545049ff4f4d47ff4d4a44ff494842ff474640ff474840ff44453dff47463fff42413aff44403bff4b4741ff544f4bffe0dbd7fffffffcfffffffcfffffffdfffffffdfffdfffefffdfffefffbfffefffbfffeffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffdfdfdfffffffffffcfcfcffcbcbcbff525252ff444444ff545454ff494b44ff4f524bff4b4b43ff43433cff47453dff49473fff4f4a42ff5b574eff6b635aff6d655cff71675dff72685eff74675dff75685dff78695fff
+796b61ff796f5fff7a7161ff7c7262ff7e7464ff807565ff817666ff837667ff837667ff827465ff827465ff837465ff837465ff847465ff847465ff847465ff847465ff7a7164ff7a7164ff797064ff796f63ff776e61ff756c60ff746b5eff736a5dff70665aff6f6659ff6d6457ff6b6255ff696053ff675e51ff655c4fff645b4fff60574cff5e5549ff534b40ff4e463bff4c453bff453e35ff48423bff5c5750ffd9d5d0
+fffffffbfffffffdfffefcf9fffffffefffefdfcfffffffffffdfdfdfffffdfbfffbf8f6ff736e6cff423c3bff736a69ff6a6160ff655a5aff645858ff695e5dff7f7373ff847b7aff817878ff837d7cff847e7dff7d7a78ff7e7b79ff787976ff747573ff70716eff6c6d6aff6a6967ff666563ff62605eff5f5d5bff5c5857ff595654ff585351ff55504eff4d4746ff46403fff47403fff4c4644ff848484fffffffffffdfd
+fdfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffbfafdfffcfbfefffefdfffffffeffffc0bfc4ff3d3c41ff4b4c52ff424449ff42484eff474e54ff36
+4248ff475359ff314046ff49595fff646769ff6d7172ff767577ff747375ff777273ff7b7677ff817779ff7e7576ff827777ff827777ff827776ff827776ff817876ff817876ff807875ff807875ff807877ff807877ff807876ff807876ff7f7776ff7f7776ff7f7775ff7f7775ff7f7776ff7f7775ff7d7574ff7c7472ff7a7270ff78706fff776f6dff766e6dff746c69ff746b68ff716967ff6f6765ff6b6563ff696361ff
+666160ff65605fff5f5c5dff5c5a5aff5c5c5cff616161ff5b5b5cff4a4a4cff3a3b3dff343537ff2d3332ff292f2eff2f3433ff434948ffe3e7e7fffbfffffff1f4f4fffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfffffffdfffefdfbfffffffdfffffffdfffffffdfffffefdff7c7977ff423e3cff3d3937ff433d3cff544e4dff605a58ff605958ff5f5857ff615a58ff6d6b66ff807e79ff84827dff7f7d78ff82807bff82807bff7b7974ff7a7873ff75736eff716f6aff6c6a65ff686661ff65635eff62605bff5e5c57ff5c5955ff575351ff595453ff544f4eff504b4aff4c4847ff413d3cff413f3dff545250ffe0dfdcffffff
+fdfffffffdfffefffcfffffffdfffcfdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffbfbfbfffffffffffffffdfffffefcfffffffafffffdf7fffff9f1ff6d675eff645848ff655849ff635747ff615545ff66594aff716454ff786b5cff7a6d5dff7c
+6f60ff7d7060ff7e7262ff807363ff817464ff817565ff827565ff827565ff807367ff7f7266ff817568ff83776aff807366ff7c6f62ff827566ff8d7f71ff89786aff8b7a6cff8e7a6bff8d786aff91786aff947c6dff997f70ff9a8071ff9b7f69ffb49882ffc7ab95ffc8ac96ffc7ab94ffceb29cffd4b8a2ffd4b8a2ffd3b7a1ffd6baa4ffdabea8ffdec2acffe0c5aeffe1c5afffe0c5aeffe0c4adffd9c1a8ffdcc4aaff
+dec5adffdfc7aeffdfc6afffe0c8b1ffe2c9b4ffe5cbb6ffe1c7b4ffe5cbb9ffc6ab9bff8e7362ff765a4bff866b5cff8e7264ff816557ff80695bff826b5dff846e5fff856f60ff856f61ff867062ff887264ff8a7466ff8a7465ff8c7668ff8f796bff927b6dff937c6eff927c6eff907a6cff8f796bffa28b74ffa38c75ffa48a75ffa08671ff9b7f6bff977b67ff977a68ff987b69ff8f7666ff927969ff857263ff826f60
+ff827868ff817667ff746e5fff746f5fff7b6e60ff786b5dff75685aff736658ff726557ff706355ff6d6052ff6b5d50ff695b4eff675a4cff65574aff635548ff605345ff5b4e40ff55473aff504335ff53473eff584d43ff504740ff362d26ff87827efffffffcfffbfaf9fffffffefffffffffffefefefffffffffffffffffffffffdfffdfefbfff4f3eeff82817cff6a5d4fff635648ff5e5143ff635648ff6f6254ff7b6d
+60ff7f7264ff7f7264ff7f7264ff7f7264ff807265ff807365ff827467ff847669ff85786aff86796bff827a6cff81796bff8e8576ff877e6fff887b6bff8d8071ff897867ff8f7d6dffaf9887ffb29c8affba9f8cffb79c89ffbfa08dffbea08cffb99984ffc6a692ffb89d8dffb89d8dffb89d8dffb89d8dffb89d8dffb89d8dffb89d8dffb89d8dffb4998affb49989ffb49889ffb39888ffb29787ffb19687ffb19686ffb1
+9586ffaf9484ffaf9484ffaf9484ffaf9484ffaf9484ffaf9484ffaf9484ffaf9484ffb19686ffb19686ffb19686ffb19686ffb19686ffb19686ffb19686ffb19686ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffae9383ffb19686ffb09585ffaf9484ffae9383ffad9282ffad9282ffad9282ffad9282ffad9282ff
+b5998affb4998affb09485ffb59a8affbda292ffb19686ff9c8071ff56423aff503c34ff584b45ffe3d6d0fffffffcfffffffdfffafefefffbfffffffcfffdfff7fdf8fffffff8ffb5b4aaff6b6050ff5e5443ff61503aff6a5843ff6d5d4fff79695bff827365ff827365ff7c6f62ff7a6d5fff756b5eff72685bff6b6458ff676054ff605b50ff5b574cff555349ff514f45ff4c4b40ff48473dff4a4b40ff47483dff494a40
+ff424339ff404139ff46473fff50504affddded8fffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffdf6fcfffffdfffffffdfffffefefffffcfcfefffbfffefff9fdfcfffafffdfff5fcf8fffbfffbffd0d6d0ff7275
+6eff444740ff4f5149ff4f524aff585149ff524b43ff4c453cff4b443bff524a41ff5b5349ff635a50ff665e53ff6f665aff70675bff72685bff746a5dff766b5eff786d60ff796e60ff7a6f61ff726d5cff777362ff7e7362ff7b715fff897663ff917e6bff957a67ff8a705dff8e715dff9a7c69ffa28773ff866a57ff8b7461ff967f6cff836f5cff95816eff8f7e71ff867668ff817163ff817164ff7f7062ff7a6b5eff79
+6b5eff7d6f62ff736658ff726557ff6f6456ff6d6254ff6a6052ff695e50ff675d4eff665c4eff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffff9f9f7fffafaf8ff747270ff403e3cff6e6867ff67605fff655b5aff625858ff655a59ff7d7272ff867c7cff857b7bff877f7eff877f7eff817b7aff827d7bff
+7e7877ff7b7573ff76706fff736c6bff6f6968ff6b6564ff67615fff645d5cff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafffdfcf5fffffffcfffffffcfffcfefefff8fbfbff595d61ff464b4fff41454cff42464cff46484fff46494fff434449ff424247ff504f53ff616064ff767472ff767472ff787573ff797775ff7b7876ff7c7977ff7f7a78ff7f7a79ff7c7675ff817b7aff847c7bff817978ff807877ff827a79ff837a79ff807877ff8b7e7eff837575ff7e6d6dff907f
+80ff8a7576ff917c7dff897173ff907779ff8d7577ff937b7dff8f7c7dff877374ff7c6e6eff7d706fff7a7170ff786f6eff736d6cff726c6bff706b69ff6e6967ff6c6765ff6a6563ff676462ff666361ff5f5c5bff63615fff605f5dff5b5a57ff5a5a58ff5a5b58ff4c4d4bff393a37ff242f35ff263136ff1b242aff2a3338ff969ca1fff4fafefffbfffffff5f8fbfffdfffffffcfefffffdfefefffdfefefffdfffdfffe
+fffefffefffefffefffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff6e6866ff837c7bff888281ff847e7dff86807fff857f7eff7f7978ff
+7f7978ff787270ff746e6dff6f6968ff6b6463ff676160ff645e5dff605a59ff5d5756ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffeffff
+fffdfffffffdfffffffcfcfcfffffffffffffffdfffffefcfffffffafffffcf7fff3ece4ff676058ff635747ff645748ff635646ff615545ff675b4bff726656ff7a6d5dff7b6e5eff7e7262ff7f7363ff817464ff827666ff847767ff847868ff847868ff847868ff877a6eff83776aff83776aff877b6eff887b6eff84786aff85786aff897b6dff8d7c6eff918072ff968173ff917d6eff907869ff927a6bff9c8173ffa388
+7affc7ab95ffcdb19affd0b49effd2b6a0ffdbbfa8ffe4c8b1ffe3c7b1ffdcc0a9ffefd3bcffefd3bcffeed2bcffeed2bbffedd1bbffecd0baffebcfb9ffebcfb8ffebd3baffedd5bbffeed6bdffeed6bdffedd4bdffedd4bdffeed5c0fff0d6c1fff1d7c4ffb49a87ff745949ff5a3f2eff5a3f2fff5b3f30ff563a2cff533729ff5b4537ff5c4638ff5d4638ff5b4537ff594334ff574133ff584233ff594334ff5c4637ff5c
+4537ff5b4537ff5a4436ff594334ff584133ff574032ff564031ff553d27ff573f29ff5c422cff614731ff6b4e3bff785c48ff876a59ff927563ff977e6eff9c8272ff8f7d6eff897667ff837969ff817767ff767061ff746e5fff7b6e60ff796c5eff76685bff746659ff736558ff716356ff6d6052ff6b5e50ff695c4eff675a4cff65584aff635548ff605345ff5b4e40ff55473aff504335ff51463cff574b41ff4d443cff
+382f27ff716c68fffffffcfffefcfbfffffffefffffffffffefefefffffffffffffffffffffffdfffdfefbfff4f3eeff82827dff6a5d4fff635648ff5e5143ff635648ff706255ff7b6e60ff807265ff7f7264ff807265ff807265ff807365ff817366ff827567ff847669ff85786aff86796bff877f71ff817a6bff8c8273ff847b6cff887b6bff887b6cff786655ff715f4fff856f5dff8a7361ff8e7360ff8b705dff937561
+ff92735fff8b6a56ff92725dff876c5cff876c5cff876c5cff876c5cff876c5cff876c5cff876c5cff876c5cff8a6f5fff8a6f5fff8a6f5fff8a6f60ff8a6f5fff8a6f60ff8a6f5fff8a6f60ff896e5eff896e5eff896e5eff896e5eff896e5eff896e5eff896e5eff896e5eff826757ff826757ff826757ff826757ff826757ff826757ff826757ff826757ff816556ff816556ff816556ff816556ff816556ff816556ff8165
+56ff816556ff816556ff816556ff816556ff816556ff816556ff816556ff816556ff816556ff7a5f4fff795e4fff795e4eff795d4eff795e4eff7a5f4fff7a5f50ff7b6050ff755a4aff806555ff917666ffaf9384ffdbbfb0fff9decefff1d5c6ffd5baaaff8e7a72ff67534bff50433dffeee2dcfffffffdfffbf8f5ffeef2f1fffbfffffffcfffdfff8fdf9fffffff8ffb4b2a8ff695f4eff5e5343ff62503bff6b5944ff6e
+5d50ff7a695cff827365ff837466ff7d7063ff7a6d60ff756b5fff73685cff6d665aff6a6358ff635f54ff605c51ff5a584dff555348ff4e4e43ff4a4a3fff4a4b40ff47483dff48493fff424339ff404139ff46473fff50504affddded8fffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffefafefff9fafcfffcfdfffffbfffefff8fcfcfff3f9f6fffafffdffe8eee8ff919791ff4f514aff484a43ff51544cff4a4d45ff534d44ff504941ff4e463eff504940ff585047ff60594fff685f55ff6b6258ff70675bff71675cff73695cff746a5dff776c5fff786e60ff7a6f61ff7b7062ff797463ff7a7564ff807564ff817665
+ff8b7865ff887563ff836956ff765c49ff997c68ffc0a38fffc7ab98ffd5b9a6ffceb7a4ffc9b19effbaa693ffc4af9cff8e7e71ff87776aff837366ff827265ff7f6f62ff796a5cff76685bff796b5dff736658ff726557ff706456ff6e6254ff6b6052ff695e50ff675d4fff665c4eff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefd
+fffffffefffffdfcfffff9faf8fff9faf8ff737270ff3f3d3bff6e6867ff67615fff655b5aff625858ff655a5aff7e7372ff877d7cff867c7bff877f7eff877f7eff817b7aff837d7cff7f7877ff7b7574ff77706fff736c6bff6f6968ff6b6564ff67615fff645d5cff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffefcf6fffdfdf9fffafaf6fffdffffffb5b7b7ff4d5156ff3c4045ff43474eff42474dff45474eff45474eff44454aff47484dff58575aff69676bff767472ff
+777573ff787674ff7a7775ff7b7876ff7d7978ff7f7a78ff7f7a79ff7d7776ff817b7aff837c7bff807978ff817877ff837b7aff847b7aff817877ff6e6060ff7e7070ff9d8c8dffccbbbbffbca7a8ffc2acadffc9b1b3ffc1a9abffc6aeb0ffb59d9fff978485ff837071ff7a6d6dff807272ff7c7372ff766d6cff736d6cff736c6bff716b6aff6f6968ff6c6766ff6a6564ff686462ff676362ff625f5dff656261ff61605e
+ff5c5b59ff5b5c5aff5c5d5bff51514fff3f403eff2b363cff1b262cff283136ff232c32ff51575bffe9eff3fff7fbfdfffbfffffffdfffffffdfffffffdfffefffdfffefffdfffdfffdfffdfffefffdfffefffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdffffffffffffff
+fffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff6e6867ff837d7bff898281ff847e7dff87807fff867f7eff7f7978ff7f7978ff787271ff756e6dff6f6968ff6b6563ff686160ff645e5dff605a59ff5d5756ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbffff
+fffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffffffffffffffffffffffdfffffefcfffffffafffffbf5ffddd6ceff5e574fff625545ff635646ff625545ff625545ff695c4dff756859ff7c6f5fff7d7060ff817465ff827566ff847767ff857969ff877a6aff
+887b6bff887b6bff887b6bff8c8073ff867a6eff85796bff897d70ff8e8174ff8c7f72ff897a6dff86786aff8f7f71ff8f7e71ff8e7b6dff857264ff806a5dff836d5fff927b6dff9f887affaf9988ffc2ab9affd7c1b0ffe4cebdffe6d0bfffe6d0bfffe6d0bfffe7d1c0ffe9d2c1ffe8d2c1ffe7d1c0ffe6d0bfffe7d0c0ffe8d2c1ffead3c2ffebd5c4ffdeccb8ffdeccb8ffddcab7ffd9c6b3ffd4c0afffd0bdabffcfbaab
+ffcfbaabffa28d80ff715c4eff4f3a2eff564135ff5e483eff553f34ff553f35ff634d43ff4c3b30ff4e3d32ff4f3e33ff4f3e33ff4e3d32ff4e3e32ff503f34ff514135ff514035ff504034ff503f34ff4f3f33ff503f34ff524136ff544338ff554439ff594838ff5a4838ff5b4737ff594435ff584132ff574031ff594032ff5a4234ff7d6759ff897365ff8c7b6cff8a796aff827767ff827767ff7c7564ff797161ff7c6f
+61ff7a6c5fff77695cff746759ff736658ff716456ff6e6053ff6b5e50ff695c4eff685a4dff65584aff635648ff605245ff5b4d40ff544739ff504235ff4e4239ff53483eff4b423aff3c332bff524d49fff7f1eefffffffefffefdfcfffffffffffefefefffffffffffffffffffffffdfffdfffbfff4f4efff83837dff6a5d4fff635648ff5e5143ff635648ff706355ff7b6e60ff807365ff807365ff817366ff817366ff81
+7366ff817466ff837568ff847769ff86786bff86796bff8b8272ff83796aff8a7f70ff857a6bff8a7d6eff887b6bff685849ff544435ff513e2fff584536ff553f30ff523c2dff594132ff563d2fff52382aff543a2cff574235ff574235ff574235ff574235ff574235ff574235ff574235ff574235ff543f32ff533e31ff533e31ff533e31ff533e31ff523d30ff523d30ff523d30ff523d30ff523d30ff523d30ff523d30ff
+523d30ff523d30ff523d30ff523d30ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff554033ff564134ff564134ff554033ff554033ff554033ff564134ff574235ff584236ff5f4a3dff574235ff4f3a2dff5f4a3dff917c6fffcbb6a9
+ffe8d3c6ffe9d4c7ffb5a39bff94827aff564b45ffe0d5cffff3f1eefffffffdfffcfffffffcfffffffcfffdfffafefbfffffff8ffb1afa6ff665c4bff5e5343ff62513dff6b5a45ff6e5e50ff7a6a5cff837466ff837466ff7e7164ff7b6e61ff776c60ff746a5dff71695eff6f675bff6a645aff666156ff615e53ff5b574dff535147ff4e4c42ff4b4b40ff48483dff49493fff424238ff404038ff46463eff51504bffdfde
+d8fffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf6fcfffffdfffffffdfffff9f5fafffbfcfefffefffffffbfffffffbfffffffafffcfffafffcffb3b8b2ff525751ff3d3f38ff50524bff54544cff4a4a42ff4f483fff4f
+483fff524b42ff585148ff61594fff696157ff6f665bff71685dff72685cff72695cff746a5dff766c5fff786d5fff7a6f61ff7c7062ff7c7162ff817766ff7e7464ff847665ff897b6aff8c7866ff7d6957ff6f5645ff644b39ff795f4dffccb29fffccb3a1ffd4bcaaffc8b4a2ffdac6b4ffd7c6b3ffb6a593ff88776aff857467ff837265ff837366ff7f7063ff7a6b5dff77695bff786a5cff736659ff726558ff706456ff
+6e6254ff6b6052ff695f50ff675d4fff675c4eff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffffbfbf9fff9faf8ff72716fff3d3b39ff6d6766ff67615fff655b5bff625958ff665b5aff7e7373ff877d7dff867c7cff88807fff88807fff827c7bff837e7cff7f7978ff7c7674ff777170ff736d6cff706968
+ff6c6564ff67615fff635d5cff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffbfffffef7fffffffdfffafbf8fff8fbfcff6b6e6fff484c51ff3c4145ff454a50ff43474dff43464cff43464cff48484dff505055ff636265ff737275ff787573ff787674ff797675ff7b7776ff7c7877ff7e7a78ff7f7a79ff807b79ff807978ff827c7bff837c7bff807978ff817878ff847b7aff847b7aff817877ff897c7cff766969ff857575ffd6c6c7ffd4c1c2ffcebabbffdfc9caffdac3c5ffe8
+d2d4ffc4aeafff928081ff776565ff756767ff817473ff807675ff796f6fff756e6dff746d6cff726c6bff706a69ff6d6867ff6b6665ff696563ff686462ff656261ff676462ff63615fff5e5c5aff5e5e5bff605f5dff565755ff494a47ff30393eff1f282dff343b40ff1e262aff21272bffabb0b4fff6fafcfffbfffffffcfffffffcfffffffdfffffffdfffffffdfffdfffdfffdfffdfffdfffdfffdffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff6e6867ff837d7cff898381ff857e7dff87817fff86807eff807978ff807978ff797372ff756f6eff706a68ff6b6564
+ff686260ff645e5dff605a59ff5d5756ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdffffffffffffffffffffffffff
+fdfffffefcfffffffafffefaf4ffc1bbb2ff564f47ff615444ff615545ff615444ff625545ff6c5f4fff786b5bff7e7262ff7e7162ff827666ff837767ff857869ff877a6aff897c6cff897d6dff8a7d6dff8a7d6dff8b7f72ff887c6fff867a6dff897c6fff8d8073ff8c7f72ff8b7d6fff887a6cff938274ff877668ff7a6759ff705d4fff6f594bff725c4eff7d6658ff866f61ff7f6958ff816a5aff7f6958ff76604fff68
+5241ff604a39ff634d3cff6b5544ff5d4736ff5b4534ff584231ff533d2cff4f3928ff4b3524ff493322ff483120ff4a3724ff4b3824ff4b3825ff483522ff453220ff432f1eff432e1fff432f1fff412d1fff432e20ff463125ff473226ff422c21ff3b251bff3e281eff442e24ff453429ff46362aff48372cff47372bff47362bff46352aff48372cff49382dff46352aff46352aff46352aff47362bff47372bff49382dff
+4a392eff4b3a2fff4e3c2cff503e2eff533f30ff544031ff563f30ff553e2fff553d2eff543c2eff5a4435ff6e5749ff837263ff8d7c6dff837768ff817566ff7e7666ff797161ff7e7063ff7b6e60ff786a5dff75685aff746659ff716456ff6e6153ff6b5e50ff6a5c4fff685b4dff65584aff635648ff605245ff5a4d3fff544639ff4f4234ff493e34ff50453bff4b423bff443b33ff393430ffe7e1ddfffffffefffbfaf9
+fffffffffffefefefffffffffffefefefffffffdfffdfffbfff5f5efff84847fff6a5c4fff635648ff5f5144ff645649ff706355ff7c6f61ff817466ff817466ff827567ff827467ff827467ff827567ff837668ff85776aff86786bff87796cff897f70ff827969ff8a8070ff877c6dff8e8172ff8c7f70ff685849ff4f3f30ff554233ff5e4a3bff543e2fff553f30ff5f4637ff5c4334ff614739ff654b3cff543f32ff543f
+32ff543f32ff543f32ff543f32ff543f32ff543f32ff543f32ff5b4639ff5b4639ff5a4538ff594437ff584336ff574235ff574135ff564134ff584236ff584236ff584236ff584236ff584236ff584236ff584236ff584236ff574235ff574235ff574235ff574235ff574235ff574235ff574235ff574235ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff564134ff56
+4134ff564134ff564134ff564134ff564134ff564034ff554033ff543f32ff533e31ff533e31ff533e31ff543e32ff543f32ff564134ff594437ff564134ff533e31ff624d40ff816c5fff998477ffa28d80ffd2c0b8ffc4b2aaff80756ffffaeee9fffcfaf8fffffffdfffcffffffeaeeeefffcfffdfffbfffcfffffff8ffafada3ff645949ff5d5342ff63523eff6c5b46ff6f5e51ff7b6b5dff847567ff847567ff7f7265ff
+7d7063ff786e62ff766b5fff736b60ff716a5eff6d685dff6b665bff666258ff5f5c52ff57554bff524f45ff4d4d42ff49493fff494940ff424238ff404038ff46463eff51514bffdfdfd9fffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff9f3f8fffffdfffffffdfffffefafefffefefffffdfefffff8fcfcfffbfffffffbfffdffc1c7c3ff6b706aff41463fff4b4e46ff565851ff515149ff494a42ff4f483fff534c43ff5a5249ff625a51ff6a6258ff6f675dff726a5fff736a5fff736a5dff746a5eff766c5fff776d60ff7a6f61ff7b7062ff7d7263ff7e7264ff7f7564ff7d7362ff857766ff8b7d6bff867260ff715d4bff664d3cff644b39ff5e44
+32ffb09583ffd5bcaaffe4cbb9ffdfcbb9ffdbc7b4ffb2a18fff705f4dff7e6d60ff7f6f61ff817164ff837366ff817164ff7e6e61ff7a6c5fff7b6d5fff746759ff736658ff706557ff6e6355ff6b6153ff695f51ff685d4fff675d4fff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffffcfdfbfff9faf8ff70
+6f6dff3b3937ff6c6665ff67615fff655b5bff635958ff665b5bff7f7473ff887e7eff877d7cff888180ff888180ff827d7bff847f7dff807a79ff7d7675ff787270ff746d6cff706a68ff6c6564ff67615fff635d5cff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffbfaf4fffffffdfffffffdffbfc2c2ff46494aff464b4fff43474cff454950ff42464cff404349ff42444aff4c4c50ff5a5a5fff6d6c6fff7b7a7dff797775ff7a7775ff7b7776ff7b7877ff7d7977ff7e7a78
+ff807a79ff807b79ff817b79ff837c7bff837b7aff807877ff817978ff847b7aff847a7aff7f7675ff706363ff6a5d5dff675757ffb8a8a8ffd4c0c1ffd3bfc0ffdac4c5ffd2bcbdffc8b2b3ffa89394ff7f6d6eff6b5a5aff6e6160ff7d6f6fff817777ff807676ff766f6eff756e6dff736d6cff716b6aff6e6968ff6c6766ff6a6664ff696564ff676462ff676462ff63615fff5f5d5bff5f5e5cff61605eff5b5b59ff5152
+50ff323b40ff2e373cff333b3fff1c2429ff2b3034ff4f5558ffe9edf0fff8fcfefffcfffffffcfffffffdfffffffdfffffffdfffdfffdfffdfffcfefcfffcfefbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e
+3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff6f6867ff837d7cff898382ff857f7dff878180ff86807fff807a78ff807a78ff7a7472ff76706fff716a69ff6c6664ff686261ff645e5dff605a59ff5d5756ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffffffffffffffffffffffdfffffefbfffffffafffcf7f2ffa6a098ff524c44ff615444ff615444ff605444ff625646ff6e6151ff7a6e5eff807364ff7f7262ff827565ff837667ff857869ff877b6bff897c6cff8a7d6eff8b7e6eff8b7e6eff897e70ff8a7f71
+ff8a7e71ff897d70ff8b7d70ff8d7f72ff8f8073ff8f8073ff8c7c6fff78675bff655448ff5f4e42ff5f4e42ff5b493dff544336ff503f32ff483b32ff3b2e26ff2f221aff2e2118ff362820ff382b23ff31241cff281a12ff2e2118ff31231bff34271fff382b23ff3c2e26ff3d2f27ff3d3027ff3d2f27ff42372dff453a30ff493e34ff4d4138ff4f443bff53473eff564b43ff5a4e46ff645751ff675b54ff645752ff5e51
+4cff60534fff685b57ff675956ff5d504cff5b524bff5b524bff59514aff554d46ff504740ff4c443dff4a423bff4a423bff4a423bff4a423bff49413aff484039ff453d36ff413932ff3d352eff3a322bff352c26ff352c26ff382d27ff3b3029ff42342cff463830ff4c3c32ff4e3d34ff46352aff534237ff766759ff8f8072ff897c6cff847767ff837867ff7b705fff7f7264ff7c6f61ff796b5eff76695bff746759ff72
+6457ff6e6153ff6c5e51ff6a5d4fff685b4dff66584bff635648ff605245ff5a4d3fff534638ff4f4134ff463a31ff4d4238ff4e453eff4b423bff2d2824ffd5d0ccfffffffefffaf8f7fffffffffffefefefffffffffffefefefffffffdfffefffbfff6f5f0ff858580ff6a5c4fff635648ff5f5144ff645749ff716456ff7d7062ff827567ff827567ff837668ff837668ff837668ff837668ff847769ff85786aff86796bff
+877a6cff887c6bff857a69ff8f8372ff897d6cff8d8071ff8d8071ff695c4fff504336ff58493fff57493fff3d2d25ff403028ff43332dff32221cff372722ff382823ff3b2f27ff3b2f27ff3b2f27ff3b2f27ff3b2f27ff3b2f27ff3b2f27ff3b2f27ff352921ff352a21ff352a21ff362a21ff362a22ff362b22ff362b22ff372b22ff372b23ff372b23ff372b23ff372b23ff372b23ff372b23ff372b23ff372b23ff34281f
+ff34281fff34281fff34281fff34281fff34281fff34281fff34281fff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352921ff352920ff342920ff342920ff352920ff362a21ff372b23ff382d24ff392e25ff261a12ff342820ff3b3027ff362a22ff2f241bff32261eff372b23ff382d24ff45372fff463830ff3c33
+2effe0d7d2fffaf9f7fffefdfbfffbfefdfffcfffffffdfffefffdfffdfffffff9ffadaaa2ff615747ff5d5343ff63533fff6a5946ff696051ff756c5dff807768ff807769ff7d7466ff7b7264ff7a7063ff776d61ff766b60ff746a5fff73695fff71675dff6f645bff695e55ff62574fff5d5249ff535046ff4e4c42ff4d4b42ff454339ff424038ff48463eff52504bffe0ded9fffffffdfffffffdffffffffffffffffffff
+fffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfffffffefffffffdfffffafbfbfff4f5f5fff3f7f5fffcfffeffe6ebe6ff7b807bff444740ff50524bff56564eff51524aff525048ff48463eff564f45ff5c544aff635b51ff6b6359ff70685dff726a5fff
+746a5eff746a5eff756b5eff766c5fff786d5fff7a6f61ff7c7162ff7e7263ff7f7464ff807465ff867463ff867563ff8b7867ff897666ff7a6555ff655040ff614b3cff695343ff715c4cff786353ffb09e8dffcab8a8ffcdbeadffa69786ff736755ff5d513fff79695cff7f6e61ff837366ff847466ff817164ff7f6f62ff7c6e60ff7a6c5fff746759ff736659ff716557ff6f6355ff6c6153ff6a5f51ff685e50ff675d4f
+ff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffffefffcfff9faf8ff6e6d6bff393735ff6b6564ff67615fff665c5bff625958ff675c5cff807574ff897f7eff887e7dff898281ff898281ff837e7cff857f7eff817b7aff7e7776ff797271ff746e6dff706a69ff6c6564ff67605fff635d5cff5f5958ff5c56
+55ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafff4f4f0fffffffefff8
+f8f6ff6a6e6fff424547ff40454aff43474cff43474dff40444aff404247ff43454bff545256ff656468ff767476ff7e7c7eff7b7876ff7b7876ff7c7877ff7d7977ff7f7a78ff7f7a79ff817b79ff817b7aff837c7bff847d7cff847b7bff817878ff837979ff847a7aff817777ff7b7170ff564b4aff776c6cff615454ff7a6d6dff958586ffa49494ff9f8d8eff9f8c8dff877575ff7e6b6cff726162ff6d5c5dff6d6060ff
+756767ff7d7271ff857979ff78706fff776f6eff766e6dff746c6bff716a69ff6f6867ff6c6766ff6b6665ff686463ff676361ff63605eff605d5cff605f5dff615f5dff5e5d5aff585755ff42474bff3a3f44ff2e3337ff24292dff363b3eff24292dffadb2b4fffafffffff9fdfefffafefffffcfffefffdfffffffefffffffdfefefffdfdfdfffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff6f6968ff847e7cff8a8382ff857f7eff888180ff87807fff807a79ff807a79ff7b7573ff77716fff716b6aff6c6665ff686261ff645e5dff605a59ff5d5755ff5b54
+53ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffffffffffdfdfdfffffffdfffffefcfffffffafffaf5efff908981ff54
+4e46ff615545ff615444ff605344ff645747ff6f6353ff7d7060ff817464ff7e7162ff827565ff837666ff857869ff877b6bff897d6dff8b7e6eff8b7f6fff8c7f6fff8a7f71ff8e8375ff8f8376ff8d8073ff8d7f72ff8f8174ff918275ff8f8073ff756558ff625246ff554437ff524135ff503f32ff423124ff332215ff2b190dff281a12ff32251cff40332bff53453dff75675fff9c8f86ffb7aaa2ffc0b3abffc2b5acff
+c8bab2ffd1c3bbffdbcec6ffe5d7cfffebded6ffefe2dafff1e3dbffeadfd5ffece1d7ffefe4dbfff2e6ddfff3e7dffff5eae1fff8ece4fffbefe7fffbeee8fff5e8e2fff3e6e1fff9ece7fffff3effffff4f0fffff2effffef1edfffbf2ebfffbf3ecfffaf2ebfff8efe8fff3ebe4fff1e9e2fff0e8e1fff0e8e1ffeee6dfffefe7e0fff0e8e1fff0e8e1ffeee6dfffeae2dbffe6ded7ffe3dbd4fff3eae3ffede4deffe3d8d1
+ffcfc4beffb7a8a1ff95877fff78675eff64544aff534236ff433227ff5b4c3eff827365ff887b6bff897c6cff8a806fff817665ff807365ff7e7063ff7a6d5fff776a5cff75685aff726557ff6f6154ff6c5e51ff6b5e50ff695c4eff66594bff635648ff605245ff5a4c3fff534638ff4e4133ff453a30ff4b3f36ff504740ff4c433cff2c2723ffc3bdbafffffffefffbfaf9fffffffffffdfdfdfffffffffffdfdfdffffff
+fdfffefffbfff7f6f1ff878681ff695c4eff635648ff5f5144ff645749ff716456ff7e7063ff837568ff837668ff85776aff847769ff847769ff847769ff85776aff85786aff87796cff877a6cff877c6aff877b6aff908574ff877b6bff897c6dff897d6eff67594dff4e4134ff53453aff4c3e34ff34251dff584840ff74645eff65554fff6d5d57ff6b5b56ff655951ff655951ff655951ff655951ff655951ff655951ff65
+5951ff655951ff6a5f56ff6b6057ff6d6259ff70645cff72675eff756961ff776b62ff786c64ff756961ff756961ff756961ff756961ff756961ff756961ff756961ff756961ff796e65ff796e65ff796e65ff796e65ff796e65ff796e65ff796e65ff796e65ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff7d7269ff
+80746bff80756cff81766dff83786fff867a72ff897d75ff8b8077ff8d8179ff9a8f86ff9a8e85ff948980ff8d8179ff8d8179ff948980ff998e85ff998e85ff8f817aff978981ff988f8afff7eee9fffcfbf9fffffffefffbfefdfff7fbfafffdfffdfffdfffdfffffff9ffaca9a1ff615647ff5e5344ff64533fff685844ff6a6152ff766d5eff817869ff82796aff7f7567ff7d7366ff7b7165ff796f63ff766c61ff756b5f
+ff73695fff72685eff70655cff6c6158ff675c53ff63584fff57554bff535046ff504e44ff47443bff424039ff48463eff52504bffe0ded9fffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffdf8fcfffefbfefffffe
+fffffafbfbfffefffffffcfffefff9fdfbff979d98ff515651ff454841ff575953ff494a42ff46463eff54524aff48473eff5f574eff645d53ff6b6359ff70685eff726a5fff726a5fff73695eff736a5eff776d60ff786e61ff7a6f61ff7b7062ff7e7263ff807465ff817566ff827667ff8a7867ff8b7968ff8a7766ff7e6b5bff6c5747ff5f4a3aff634d3eff6d5748ff6c5748ff695444ff8e7c6cff857363ff706150ff71
+6251ff605442ff6a5d4cff7c6c5eff837366ff88776aff857568ff807063ff7d6e60ff7a6c5eff77695cff74675aff746759ff716557ff6f6356ff6c6253ff6a6052ff685e50ff685d4fff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffffffffdfff9faf8ff6d6b69ff373533ff6a6463ff67615fff665c5bff
+625958ff685d5cff807575ff8a807fff887e7eff8a8281ff8a8281ff847e7dff86807fff827c7bff7e7877ff797372ff756e6dff706a69ff6c6664ff67605fff635d5cff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcfcf7fffffffeffcdcdcbff363a3cff4e5153ff3f4348ff42474cff41454bff40444aff424449ff494b50ff5d5b5fff706e72ff7b797aff7c7a7cff7c7977ff7d7978ff7e7a78ff7e7a78ff7f7a79ff807b79ff817b7aff817b7aff837c7bff847d7cff847c
+7bff827978ff847a79ff837978ff7c7272ff736969ff6e6363ff726766ff6c5f5fff958787ffaf9e9fff9a8a8aff614f4fff625051ff614e4fff695758ff726262ff776767ff706363ff6f6161ff756a6aff817675ff797170ff787170ff776f6eff756d6cff726b6aff706a68ff6d6867ff6d6766ff686463ff666361ff63615fff625f5dff615f5dff615f5dff5e5d5bff5b5a58ff52575cff3a3f43ff2e3337ff2a2f33ff26
+2b2eff313639ff5c6163ffedf1f3fff7fbfcfff8fcfdfffbfefefffdfffffffefffffffefffffffefefefffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff
+625854ff645a56ff706968ff847e7dff8a8483ff86807eff888281ff878180ff817b79ff817b79ff7c7674ff787170ff726c6aff6d6765ff696261ff645e5dff605a58ff5d5755ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffefefefffcfcfcfffffffdfffffefcfffffffafff8f3edff807971ff59524aff635646ff625545ff605444ff645848ff716454ff7e7161ff817464ff7d7161ff837666ff847767ff86796aff887c6cff8b7e6eff8c8070ff8d8070ff8d8171ff8b8172ff8e8475ff908376ff8f8275ff928376ff938477ff8d7d
+71ff837367ff5f4f44ff534338ff493b30ff43352aff362b20ff2b1f15ff2a2016ff342a20ff3d3938ff837f7effcfcac9fff6f1f0fffffefefffffffefffffcfcfff4efeefffffffefffffffefffffffefffffffefffffffefffffefdfffffcfcfffffbfafffffffefffffffefffffffefffffffefffffefefffffdfcfffffdfefffffefffffffefffffffefffffffefffffffefffffffefffffbf6f7fff8f4f4fffcf8f8fffa
+f9f6fffcfbf8fffdfdfafffefdfbfffdfdfafffefefbfffffffdfffffffdfffefdfbfffffefcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfff6f5f8fffbfafdfffffffffffffffffffffffdfffffcfbfff5ece7ffe8dfdbff857970ff483d34ff44362aff6d5f53ff837566ff8c7e6eff918371ff857766ff817466ff7f7164ff7b6d60ff786a5dff76685bff736558ff6f6254ff6c5f51ff6b5e50ff695c4eff
+66594bff635648ff5f5244ff5a4c3fff534538ff4e4033ff483c33ff493e34ff4f463fff473e36ff2f2a26ffb2ada9fffffffefffffffdfffffffffffdfdfdfffefefefffcfcfcfffffffdfffefffbfff7f7f1ff888782ff695c4eff635648ff5f5144ff645749ff726457ff7e7163ff837668ff847669ff86786bff85786aff85786aff85776aff85786aff86786bff87796cff877a6cff8a7c69ff897c69ff908372ff877a68
+ff887c6dff8a7e6fff62574cff453a30ff564d46ff4f453fff48403dffa69e9bfff4ecedfff7eff1fffffdfefffff8f9fffcf9f5fffcf9f5fffcf9f5fffcf9f5fffcf9f5fffcf9f5fffcf9f5fffcf9f5fff9f6f1fffaf7f2fffbf8f4fffdfaf6fffffdf8fffffffbfffffffcfffffffcfffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffdf9fffffdf9fffffdf9fffffdf9fffffdf9fffffd
+f9fffffdf9fffffdf9fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffdfaf6fffdfaf6fffefbf7fffffcf7fffffdf9fffffffbfffffffcfffffffcfffffdf9fffffefafffffffafffffffcfffffffcfffffffcfffffffcfffdfaf5fffffff9fffffff9fffffffbfffffffbfff6f6f6fffffffffffdfffffff3
+f5f6fffdfdfdfffffffffffffffaffada9a2ff605647ff5e5445ff625340ff655643ff6f6052ff7b6d5fff857769ff87796bff837568ff817467ff7e7266ff7c7064ff786e63ff766c61ff736a60ff72685eff70685eff6d655cff6a6259ff675f56ff5f594fff59544aff565048ff4b463dff45413aff4a463fff53504bffe1ded9fffffffdfffffffdfffffffffffffffffffffffffffffffffffefffffffeffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff8f3f6fffffefffffffefffff9fafafffefffffffdfffdffc5c9c5ff595d58ff4b4f49ff505149ff51534bff47453cff49473eff57534aff58544aff675f54ff6c6359ff71685dff736a5fff736a5eff72695dff746a5dff756b5eff796e60ff7a6f61ff7c7061
+ff7e7263ff807464ff827565ff837666ff847767ff927968ff927967ff866e5eff745c4cff624d3fff614c3eff635246ff68574bff605246ffaea094ffc5b9acffa19588ff473c2dff675d4eff655c4bff5c5342ff7d6c5fff867568ff8a7a6dff867568ff7f7062ff7e6e61ff7b6d60ff786a5dff75685aff746759ff716658ff6f6456ff6c6254ff6a6052ff695f50ff685e50ff695b4dff66584aff5a4d40ff53463aff4f44
+3aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffffffffdfff9faf7ff6c6a68ff353331ff696362ff67615fff665c5cff635958ff695e5dff817676ff8a8080ff897f7eff8a8382ff8a8382ff847f7eff86817fff837c7bff7f7978ff7a7472ff756f6dff716a69ff6c6664ff67605fff635d5bff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff48
+4140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffe8ebeaff818383ff35393bff4e5255ff43484dff43474dff
+404449ff42454bff48494dff525357ff676668ff79787aff807c7dff7b7777ff7f7a78ff7f7a78ff7f7a79ff807a79ff817b79ff817b7aff827b7aff837b7aff847b7aff857d7cff867c7bff847a7aff857a7aff827777ff796d6dff6d6261ff665d5cff574e4dff9d9392fffdf3f3fffffefdffeee3e2ff7d7070ff4f4141ff564848ff605252ff6e6060ff766868ff716464ff6c5f5fff736565ff7f7171ff7b7271ff7a7170
+ff78706fff766e6dff746c6bff726a69ff6f6968ff6e6867ff6a6564ff696362ff666261ff666260ff646160ff625f5dff605d5bff5e5c5aff5c5d60ff444448ff3d3e41ff323437ff1e2224ff373b3dff303637ffa9aeb0fff3f8f9fff5fafbfff9fcfefffcfffffffffffffffffffffffffefffffefdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff706a68ff857e7dff8a8483ff86807fff888281ff878180ff817b7aff817b7aff7d7675ff787271ff726c6bff6d6766ff696361ff655e5dff605a58ff5d5655ff5b5453ff5d5655ff57514fff534c4bff4f4947ff43
+3d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffdfdfdfffbfbfbfffffffdfffffffdfffffffafff7f2ecff787169ff5c564eff645747ff625646ff615444ff655848ff
+716555ff7e7262ff817464ff7d7060ff847767ff857868ff877b6bff8a7d6dff8c7f6fff8d8171ff8e8272ff8f8272ff8b8072ff8c8273ff8d8173ff8e8274ff948679ff948578ff86766aff746459ff5a4a3fff534438ff4a3c31ff3d3025ff2b1f15ff281d12ff41372cff61574dffdbd6d5fffcf8f7fffffffefffffafafff7f2f2fffffffefffffffefffffefefffffdfcfffffdfcfffffcfcfffffcfcfffffdfdfffffffe
+fffffffefffffffefffffcfbfffffefdfffffffefffffffefffffefdfffffefdfffffefffffffefffffffcfdfffffefffffffdfdfff9f5f6fffdf8f9fffffefffffffefffffffefffffefefbfffffffdfffffffdfffffffdfffffefcfffefefbfffffffcfffffffdfffffffdfffffffdfffffefcfffefdfbfffdfcfafffdfdfafffefdfbfffefefbfffffefffffffefffffbf9f9fff9f6f7fffff9f8fffffefdfffffffbffffff
+fbffccc0b7ff6a5f56ff45382cff67594dff807262ff8a7c6cff8c7e6cff7c6e5cff827567ff7f7264ff7b6e60ff786b5dff76685bff736558ff6f6254ff6c5f51ff6c5e51ff695c4eff66594bff635648ff5f5244ff594c3eff524537ff4d4032ff4b3f36ff483c33ff4e453dff403730ff312c28ffa7a29efffffefdfffffffefffffffffffdfdfdfffefefefffcfcfcfffffffdfffefffbfff7f7f2ff888782ff695c4eff63
+5648ff5f5144ff65574aff726557ff7e7163ff847669ff847769ff86796bff86786bff85786aff85786aff85786aff86796bff877a6cff877a6cff8a7c69ff887a67ff8e8170ff877a68ff8b7f71ff8f8274ff64594eff42382dff4d443dff3f352fff39312effaea6a3fffffefffffffefffffffefffff9f2f3fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbff
+fffffcfffffffbfffffffcfffffffbfffffffcfffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffbfffffefa
+fffffef9fffffdf9fffffdf9fffffdf9fffffffcfffffffcfffffdf9fffefbf6fffffdf9fffffffbfffffffcfffffff9fff8f0e8fffffffbfffffefafffcfcfcfffcfcfcfff9fbfcfffdfffffffcfcfcfffffffffffffffaffada9a2ff615648ff5f5446ff625340ff645542ff6f6153ff7c6d5fff86786aff87796bff837669ff827567ff7f7367ff7d7165ff7a6f64ff776d62ff746b60ff72695fff716960ff70685eff6e66
+5dff6c645aff625c52ff5c564cff585249ff4c473eff46413aff4a463fff53504affe1ded8fffffffdfffffffdfffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffaf5f8fffffefffffffefffff0f1f1fffeffffffdee2dfff747875ff45
+4943ff51554fff4f5048ff494a43ff525047ff525047ff565248ff68645aff6b6257ff6f665bff726a5fff746b60ff73695eff72695dff756b5eff776d60ff7a6f61ff7b7062ff7d7162ff7e7363ff817465ff827666ff847767ff857868ff907766ff8d7463ff7d6655ff695241ff5f4a3cff675244ff69584cff68574bffa5978cfffffff5fffffcefffe5d9ccff413728ff564c3dff625848ff685e4eff7a6a5cff847467ff
+89796cff857467ff7f7063ff807063ff7f7163ff7c6e61ff75685aff746759ff716658ff706456ff6d6254ff6b6052ff695f51ff685e50ff695b4dff66584aff5a4d40ff53463aff4f443aff483d33ff4a423bff5f564fffd9d3cffffffffbfffffffefffffbfafffffffffffefdfffffffefffffdfcfffffffffdfff9faf8ff6b6967ff343331ff696361ff67615fff665c5cff635958ff695e5dff817676ff8b8180ff897f7f
+ff8b8382ff8b8382ff857f7eff878180ff837d7cff7f7978ff7a7473ff756f6eff716b69ff6c6664ff67605fff635d5bff5f5958ff5c5655ff5a5452ff57514fff4f4847ff484140ff484140ff4d4745ff828282fffffffffffcfcfcfffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f8f5fffffffdffcccfceff3f4242ff45494bff43474aff454a4fff40454aff404349ff43474dff4b4d51ff57585dff6e6d6fff7e7e7fff827e7eff787475ff7f7a79ff7f7a79ff807b79ff807b79ff817b7aff817b7aff837b7aff837b7aff847b7aff857c7bff867c7cff857b7aff867b7aff817676ff766a6aff68
+5d5dff685f5fff6f6665ffd8cecefffffefdfffbefeffffffefdffb5a7a7ff594b4bff594b4bff5d4f4fff665858ff6f6161ff6e6161ff6c5e5eff736565ff7e7171ff7c7372ff7b7271ff797070ff776e6eff746d6cff726b6aff706968ff6f6967ff6c6765ff696463ff686462ff686463ff666462ff63605eff605e5cff605d5bff58585bff505054ff484a4dff343639ff292d2fff232729ff303536ff5d6264fff2f7f8ff
+f4f9fafff9fcfdfffbfefffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff706a68ff857e7dff8a8483
+ff86807fff888281ff878180ff817b7aff817b7aff7d7775ff797271ff736c6bff6d6766ff696361ff655e5dff605a58ff5d5655ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffff
+fdfffffffefffffffefffefffffffefffffffdfffffffdfffffffffffffffffffffffffefcfffaf9f6fffffffafff3eee8ff726c64ff5a544cff605344ff635646ff5f5242ff635747ff766959ff7d7161ff7d7061ff837666ff837666ff857969ff897c6cff8a7e6eff8b7e6eff8c7f6fff8e8171ff8f8373ff898070ff908777ff8f8475ff908576ff918175ff8f8073ff827166ff57463bff5b4b42ff423229ff554a42ff27
+1c14ff231e15ff27221aff68665efff4f3eafffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffefffffffdfefffffcfdfffffcfcfffffbfcfffffbfcfffffbfcfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffff9fcfffff9fcfffffbfdfffffbfdfffffefdfffffefdfffffffffcfffffffcfffcf5edff7a736cff504539ff51463aff877869ff8d7e6fff8c7a6aff847262ff817466ff7f7164ff7b6d60ff786b5dff76685bff736658ff6f6254ff6c5f51ff6c5e51ff67594cff645749ff65574aff615446ff594b3eff524537
+ff504335ff4e4339ff40352bff554c45ff494039ff2d2824ff96918dfffffefdfffffffefffffffffffefefefffffffffffcfcfcfffffffcfffcfdf9fff7f6f1ff898883ff695c4eff65584aff605345ff625547ff706355ff817466ff887b6dff86796bff87796cff87796cff87796cff87796cff87796cff87796cff87796cff87796cff8a7b67ff8e7f6bff8c7e6cff8a7c6aff8c8071ff887c6dff685e54ff463c32ff4e47
+42ff48413cff312d2cffaeaaa9fffffdfffffffefffffefcfffffffdfffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffafffffffafffffffcfffffffcfffffffffffffffffffdfefffffdfefffffefefefffefefefffffef8ffb6b1abff
+564c3fff615649ff615341ff655745ff6c5e50ff7a6d5eff87796bff887b6dff84776aff827568ff817468ff807367ff7d7166ff7d7065ff7b6f65ff796d64ff776b63ff756a61ff746960ff73685fff6c6359ff655c52ff605850ff554c44ff49423bff49423bff544f4affe8e3defffffffdfffffffdfffffffffffffffffffffffffffffffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefff9f6f6fffffffffff4f4f4fffffffefff4f5f3ff9b9f9aff4d514cff4c4e47ff4c4e47ff4d4d44ff4d4d44ff534f45ff5c574eff6a6258ff726b61ff71685cff72695dff746a5eff756c5fff776d60ff796f62ff7b7062ff7c7163ff847869ff7c7061ff7d7060ff857868ff887b6aff847766ff847665ff897b
+6affa18471ff755845ff796050ff634a3aff5a483dff705e52ff594d45ff84786ffffff7f0fffffbf4fffffff8ffe1d9d0ff433a2fff5a5145ff655b4dff605548ff7a695cff877669ff867669ff817164ff827366ff7f7062ff796b5dff7c6e60ff76695bff75685aff726759ff706557ff6d6355ff6c6153ff6a6051ff695f51ff6b5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcaffff
+fefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff7f8f6ff72716fff32312fff665f5eff6b6564ff625858ff625858ff665b5aff7f7473ff897f7fff897f7eff8b8382ff8a8382ff847f7dff86807fff847d7cff807a78ff7b7573ff76706fff726c6aff6d6766ff686260ff645e5dff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefeff
+fefefefffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffefefefff8f8f8fffffffffffffffffffdfdfdfffbfdfdfffbfefeff6f7374ff35393aff4f5458ff404549ff43484eff40454bff43474cff3e4247ff4f4f52ff6b6c6fff7f7c7c
+ff7a7778ff7a7573ff807b79ff837d7bff837d7bff837d7bff837d7bff847c7bff847c7bff857c7bff857c7bff8d8382ff766c6bff938887ff837877ff796d6dff847878ff665a5aff6b5e5eff5f5857ffa39c9bffefe8e7fffffffdfffdf6f5fffffbfafffdf6f5ff615958ff514746ff5e5554ff574b4bff706464ff746666ff736565ff645555ff796969ff867c7bff7c7271ff776e6dff7b7170ff79706fff726968ff6f67
+66ff746c6bff6e6867ff6d6766ff6b6664ff696462ff666260ff64605eff625f5dff615e5cff635e60ff5b5658ff4f4d4eff444243ff313435ff272a2bff292f30ff353b3cffadb3b5fff7fefffffbfffffff5f8fafffffefffffcfbfefffbf7fbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff726c6aff87807fff8c8685ff888281ff8a8483ff898382ff837d7cff837d7cff7c7675ff787271ff736c6bff6e6866ff6a6463ff67605fff625c5bff5f5958ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdff
+fffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffffffffffffffffffffffcfffbf9f7fffffffafff1ece6ff716a62ff5a544bff605343ff635646ff5f5242ff645747ff76695aff7e7161ff7d7161ff827666ff837666
+ff867969ff897c6cff8b7e6eff8b7e6fff8c7f6fff8e8171ff908373ff8c8373ff8d8374ff938778ff8e8274ff908174ff918275ff77665bff524136ff4f4036ff54443bff382d24ff31261eff252017ff443f36ffc9c7bffffffff9fffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffefefffffdfefffffdfe
+fffffcfdfffffcfdfffffcfdfffffcfdfffffdfefffffcfdfffffcfdfffffcfdfffffcfdfffffcfefffffcfefffffcfefffffcfefffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffafdfffffafdfffffcfefffffcfefffffffefffffffefffffffffdfffffffdfffffff9ff9a938cff504539ff4e4237ff7e
+6f60ff897a6bff8e7d6cff897867ff827467ff7f7164ff7b6e60ff786b5dff76695bff736658ff6f6254ff6d5f52ff6c5e51ff67594cff645749ff65574aff615446ff594b3eff524537ff504335ff4e4239ff41362cff534a43ff4a4139ff2d2824ff908a86fffffefcfffffffefffffffffffefefefffffffffffcfcfcfffffffcfffcfdf9fff7f6f1ff898984ff695c4eff65574aff605345ff625547ff706355ff817466ff
+887b6dff87796cff877a6cff877a6cff877a6cff877a6cff877a6cff877a6cff877a6cff877a6cff8a7b67ff8e7f6bff8c7e6cff8a7c6aff8c8071ff887c6dff685e54ff463c32ff4e4742ff48413cff312d2cffaeaaa9fffffdfffffffefffffefcfffffffdfffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffafffffffafffffffcfffffffcfffffffffffffffffffdfefffffdfefffffefefefffefefefffffef9ffb6b1abff564b3eff605649ff615341ff655745ff6c5e50ff7b6d5fff877a6cff897b6dff85776aff827568ff817569ff807468ff7e7166ff7d7166ff7b6f65ff7a6e64ff776c63ff766a61ff746960ff746860ff6e655bff675e55ff635b52ff57
+4e46ff4a433cff49423bff544f4affe8e3defffffffdfffffffdfffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f5f6ffffffffffedededfffffffffff5f6f4ffc2c2c0ff5b5e5aff4f524eff4d4f48ff4b4d47ff4e4d44ff515148ff5c574dff
+645f56ff6d655bff70685eff72695dff73695eff746b5eff766c60ff786e61ff7a7063ff7c7163ff7d7264ff827667ff7f7364ff817464ff847767ff857867ff847666ff867867ff8a7c6bff8e725fff806451ff5f4636ff674e3eff6a584cff645246ff6c6058ffd7cbc3fffffcf5fffffef7fffffff8ffdfd7ceff41382cff594f44ff665b4eff62584aff7a695cff877669ff877669ff817164ff827366ff7f7063ff796b5d
+ff7c6e61ff76695bff75685aff736759ff716557ff6e6355ff6c6153ff6a6052ff695f51ff6b5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff7f8f5ff72706eff32302eff655f5eff6b6564ff625858ff625858ff665b5bff7f7474ff8a807fff897f7eff8b8483ff8b8382ff857f7eff86817fff847e
+7cff807a79ff7b7573ff76706fff726c6aff6d6766ff686260ff645e5dff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffe
+fefefffdfdfdfffffffffffffffffffdfdfdfffdfdfdfffdffffffbfc2c1ff535758ff404445ff484d51ff3a3f43ff44494fff3e4349ff42464bff464a4fff5a5a5dff707174ff7f7c7dff7c7979ff7d7876ff817c7aff837d7cff837d7cff837d7cff837d7cff847d7cff847d7cff857c7cff857c7cff897f7fff807675ff877c7cff867a7aff7e7272ff796d6cff6b5f5fff635656ff6d6665ffcdc6c5fffffefcfffffffdff
+fffbfafffffcfbfffffdfcffaea6a5ff534a49ff4f4544ff5a4e4eff695d5dff6d5f5fff726464ff6a5a5bff726263ff807675ff7d7272ff7b7171ff7c7271ff79706fff746b6aff716a69ff746c6bff6e6867ff6e6766ff6b6665ff696463ff676261ff65605fff635f5dff625e5dff645f61ff5e595bff535153ff494749ff37393bff2c2e30ff2a3031ff323839ff646b6cffedf3f5fff0f3f6fffbfffffffffefffff8f7fb
+fffffdfffffbf7fbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff726c6bff87817fff8d8685ff888281ff8b8483ff8a8382ff837d7cff837d
+7cff7c7675ff787271ff736d6bff6e6867ff6a6463ff67605fff625c5bff5f5958ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffd
+fffffffdfffffffffffffffefefefffffffdfffcfaf8fffffffaffede8e3ff6e675fff5a534bff605343ff635646ff5f5343ff645848ff776a5aff7e7162ff7d7161ff827666ff837767ff867969ff897d6dff8b7e6eff8b7f6fff8c8070ff8e8272ff908373ff908877ff877f6eff978b7cff8b7f70ff918174ff948477ff66544aff4c3a30ff493a32ff574840ff282019ff302821ff1a1b14ff75766ffffbfffbfffbfffbff
+fbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfefffffcfefffffcfefffffcfefffffcfefffffdfffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefffcfffefffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfefffffcfeff
+fffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffff8fbfffff8fbfffff8fcfffff8fcfffff9fdfcfff9fdfcfffcfdf9fffcfdf9fffffff9ffbdbab2ff4a4135ff4c4338ff77675aff89796cff907c6eff8c786aff827567ff7f7264ff7b6e60ff786b5dff76695bff736658ff706255ff6d5f52ff6c5f51ff675a4cff65574aff65584aff625447ff594c3eff534538ff514336ff4d4238ff43382eff514840ff4b42
+3bff2f2926ff837e7afffffefdfffffffefffffffffffefefefffffffffffdfdfdfffffffcfffcfdfafff8f7f2ff8a8984ff695c4eff65574aff605245ff625547ff706355ff827467ff897b6eff877a6cff887a6dff887a6dff887a6dff887a6dff887a6dff887a6dff887a6dff887a6dff8a7a67ff8e7f6cff8c7e6cff8b7c6aff8c8071ff887c6dff685e53ff463c31ff4e4841ff48423bff312e2bffaeaba8fffefefeffff
+fffffffefdfffffffefffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffffafffffffafffffffdfffffffdfffdfffffffdfffffffefefffffefefffffffdfffffffefffffffffbffb8b1adff554b3fff5f5549ff605242ff645746ff6c5f51
+ff7b6e5fff877b6cff897c6eff85786bff837669ff837569ff827468ff807267ff7f7166ff7e6f66ff7c6e64ff7b6c63ff796a62ff786961ff776860ff74685fff6e6159ff6a5e56ff5d5149ff4e443eff4c423cff554e4affeae3dffffffffdfffffffdfffffffffffffffffffefffffffefffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfff6f6f6ffebece9ff686966ff4d4f49ff4c4e49ff4d4e47ff4c4e46ff535047ff5b584fff696257ff6f685eff73695eff71675cff746a5dff756b5eff766c5fff786e61ff7a6f61ff7c7163ff7e7263ff7f7364ff807363ff847867ff867968ff847665ff847664ff877866ff887967ff867865ff785b47ff725641ff5e4837ff5b4434ff70
+6258ff5b4e43ffa9a39efffffffbfffffffcfffffffcfffffffbffdad4d0ff40352cff584d45ff6a5a50ff67584dff7a695cff877769ff877669ff827164ff837366ff7f7063ff796b5eff7c6e61ff76695cff75685bff736759ff716557ff6e6355ff6c6253ff6a6052ff6a5f51ff6b5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdffff
+fffefffffffefffffffffdfff7f8f5ff72706eff31302eff655e5dff6b6463ff625858ff625858ff675c5bff807574ff8a8080ff8a807fff8c8483ff8b8483ff85807eff878180ff847e7dff807a79ff7b7574ff76706fff726c6bff6d6766ff686261ff655e5dff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefeffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff8f8f8fffefefefffffffffffdfdfdfff7f7f7fffffffffff6fafbff737878ff373c3eff4c5153ff41474bff383e42ff454b51ff3e4349ff42464aff53565bff6b6a6dff79787aff807c7bff807b7aff837c78ff847d7aff847d7cff847d
+7cff847d7cff847d7cff857d7cff857d7cff867c7cff867c7cff877c7cff897e7eff807474ff887b7bff817474ff6c5f5fff6c5e5eff625454ff908b8afff6f2f0fffffffdfffffffdfffffdfbfffffdfbfffffdfbffeeebe9ff6d6867ff413c3aff5a5050ff5f5655ff665858ff716363ff716060ff6b595aff786c6cff7e7372ff817676ff7e7373ff796f6fff786e6dff766d6cff746b6aff706968ff706867ff6d6766ff6b
+6564ff686362ff666160ff65605eff645f5dff6a6061ff665c5dff5c5758ff534e4fff404242ff333535ff2a3132ff2c3333ff2b3335ffbcc4c5fff4f8fbfff9fdfffffffdfffffcfafffffffcfffffbf5fbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdffffffffffffffffff
+fffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff726c6bff878180ff8d8785ff898281ff8b8583ff8a8482ff847d7cff847d7cff7d7776ff797372ff736d6cff6e6867ff6b6463ff67605fff625c5bff5f5958ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffd
+fffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffefefefffefefefffffffdfffcfbf8fffffffaffe9e4deff6a645cff59534bff605343ff635646ff605343ff655949ff786b5bff7f7262ff7d7161ff827566ff847767ff867a6aff8a7d6dff8b7f6fff8c7f6fff8d80
+70ff8f8272ff908474ff948b7bff847c6cff9a8e7fff897d6eff918174ff938376ff554339ff46342aff493a32ff44352dff342d26ff272019ff24251effc0c0bafff9fff9fff7fdf7fffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfdfffffcfdfffffcfefffffdfffffffdfffffffdfffffffdfffffffd
+fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefffcfffefffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffcfffffffcfffffffffffcfffffffcfffefaf2ffd6d2caff473d32ff50463bff746457ff8a7a6dff8e7b6cff897567ff827567ff
+7f7264ff7c6e61ff796b5eff77695cff746659ff706355ff6d6052ff6c5f51ff675a4cff65584aff65584aff625547ff594c3eff534638ff514436ff4c4137ff453a30ff4e453eff4c433cff302b27ff726d69fffffdfcfffffffefffffffffffefefefffffffffffdfdfdfffffffdfffdfefafff8f8f3ff8b8a85ff695b4eff65574aff605345ff625547ff716456ff827567ff8a7c6fff887b6dff897b6eff897b6eff897b6e
+ff897b6eff897b6eff897b6eff897b6eff897b6eff8a7a67ff8e7f6cff8c7e6cff8b7c6aff8c8071ff887c6dff685e53ff463c31ff4e4841ff48423bff312e2bffaeaba8fffefefefffffffffffefdfffffffefffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcff
+fffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc
+fffffffcfffffffffffafffffffafffffffdfffffffdfffdfffffffdfffffffefefffffefefffffffdfffffffefffffffffbffb8b1adff554a3eff5e5348ff5f5241ff645746ff6d6051ff7b6f60ff887b6dff8a7d6fff86796cff84776aff84766aff837569ff807268ff807267ff7f7067ff7d6f65ff7b6d64ff7a6b63ff796a62ff786961ff776a62ff72655cff6e635bff60554dff504640ff4c433cff554f4affeae4dfff
+fffffdfffffffdfffffffffffffffffffefffffffefffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfbfbfffafafafff8f8f8ff91928fff51524fff50514cff4c4e48ff4a4b44ff4e5048ff5a574eff636157ff6f685eff726b61ff746a5fff72685dff766c5fff766c5f
+ff786e61ff796f62ff7c7163ff7d7264ff807465ff807565ff7f7262ff857968ff887a69ff847766ff877867ff8a7c6aff857664ff796a58ff6b4e39ff674a35ff695241ff66503fff5d4f45ff998b80fff3ede8fffffffafffffffcfffffffcfffffffbffdcd6d1ff40352dff584d44ff68594eff65564bff7a6a5dff87776aff87776aff827264ff837466ff807063ff7a6c5eff7d6f61ff776a5cff76695bff73685aff7166
+58ff6e6456ff6c6254ff6b6052ff6a6052ff6b5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff7f8f5ff716f6dff302f2dff645d5cff6a6463ff625858ff635958ff685d5cff817675ff8b8180ff8a8080ff8c8584ff8c8584ff86807fff878281ff847e7dff817b79ff7c7574ff77716fff736c6bff6e
+6866ff696261ff655f5dff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffffffffff9f9f9fff9f9f9ff
+ffffffffc4c8c9ff484c4dff353a3dff4e5356ff3f454aff40464aff43484eff40454bff45484dff5e6266ff79797bff7e7d7fff7f7b79ff807c7aff857e7bff847d7aff857d7cff857d7cff857d7cff857d7cff867d7cff867d7cff877d7cff877d7cff867b7bff887d7dff867979ff847777ff786b6bff655757ff645656ff726464ffc9c5c3fffffffdfffcf9f7fffffcfafffefcfafffffffdfffdfaf8fffffefcffaba6a4
+ff4c4745ff564d4cff564d4cff665858ff706262ff756464ff685657ff6e6362ff7c7170ff847978ff7f7474ff7a706fff7b7171ff79706fff746b6aff726a69ff716968ff6e6867ff6c6665ff696463ff676261ff66615fff65605fff6a5f61ff685e5fff605b5cff5a5556ff484a4aff3b3d3cff2b3333ff272e2eff272e30ff6a7173fff4f8fbfff1f5f8fffffdfffffffdfffffffbfffffffcffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff736c6bff878180ff8d8786ff898381ff8b8584ff8a8483ff847e7cff847e7cff7e7876ff7a7472ff746e6dff6f6967ff6b
+6563ff67605fff625c5bff5f5958ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffefefefffefefefffffffdff
+fefcfafffffffaffe3dfd9ff666058ff59524aff5f5343ff635647ff615444ff675a4aff796c5cff7f7363ff7e7161ff827565ff847767ff877a6aff8a7d6dff8c7f6fff8c8070ff8d8071ff8f8272ff918474ff938b7aff867e6dff998d7eff897d6dff938376ff8d7c70ff4a382fff423027ff44352eff3c2e27ff302b25ff1e1913ff454a44fff1f6f1ffe9f5f0fff6fffdfffcfffffffcfffffffcfffffffcfffffffcffff
+fffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffefdfffffefdfffffffffffffffffffffffffffffffffffffffffefffefefdfffdfefbfffdfefbfffdfffafffdfffafffdfff9fffdfff9fffdfff9fffdfff9fffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefefffffefefffffefefffffefefffffefefffffefefffffefe
+fffffefefffffdfdfdfffdfdfdfffcfdfdfffcfdfdfffbfffbfffbfffbfffdfff9fffdfff9fffbfaf1ffe4e2d9ff494035ff4e453bff6e5e52ff88786cff8f7a6eff8a7569ff837568ff807265ff7c6f61ff796c5eff776a5cff746759ff706355ff6e6053ff6d5f52ff685b4dff65584aff66594bff625547ff5a4d3fff534638ff524437ff4c4037ff473c32ff4b423bff4d443dff332d29ff605a57fffffefdfffffffeffff
+fffffffefefefffffffffffdfdfdfffffffdfffefffbfff9f9f4ff8c8b86ff695b4eff65574aff605345ff635548ff726457ff837668ff8b7d70ff897c6eff897c6eff897c6eff897c6eff897c6eff897c6eff897c6eff897c6eff897c6eff8a7a68ff8e7e6cff8c7e6dff8a7c6bff8c8071ff887c6dff695f52ff473d30ff4f483fff4a4339ff332f28ffb0aca5fffffffbfffffffbfffffffbfffffffcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffbfffcfffbfffcfffefffcfffefffcfffffffcfffffffffdfffffffdfffffffcfffffffefffffffffcffb9b1aeff54493eff5c5247ff5d5141ff645747ff6d6152ff7c6f61ff897c6eff8a7e6fff877a6cff8577
+6aff85776bff84766aff827369ff827268ff817168ff7f6f66ff7e6d65ff7c6b63ff7b6a63ff7b6a62ff7a6b63ff76675fff74665fff655750ff534842ff4e423cff564f4affece4e0fffffffdfffffffdfffffffffffffffffffdfffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffefefffbfafafff9f9f8ffb9b9b7ff52534fff50514dff4f514aff484a44ff4a4a42ff54554cff656156ff6c685eff72695eff72685dff76695eff786c60ff786d60ff796e61ff7a6f61ff7c7163ff7e7364ff807465ff827666ff837667ff817363ff857867ff887a68ff877867ff8c7d6aff8b7d6aff7d6e5bff685946ff684e37ff6f553eff604d3bff73604eff645b51ffeee5dbfffffffdfffbfaf7ffffffffff
+fffffffffffffdffdcd6d5ff443530ff5a4b46ff6b564eff665149ff7b6a5dff88776aff88776aff827265ff847467ff807164ff7a6c5fff7d6f62ff776a5cff76695cff74685aff726658ff6f6456ff6d6254ff6b6153ff6a6052ff6b5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff7f7f5ff706f6d
+ff2f2e2cff625c5bff696362ff625857ff635958ff685d5dff817676ff8c8281ff8b8180ff8d8685ff8d8584ff878180ff888381ff857f7dff817b7aff7c7675ff777170ff736d6cff6e6867ff696362ff655f5eff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffffffffffafafafffffffffff9f9f9ff797e80ff3f4546ff43494dff43494dff3e454aff474e53ff3b4147ff42484eff4e5156ff686b70ff818081ff807f81ff7f7a77ff807b79ff867f7aff857e78ff867e7dff867e7dff867e7dff867e7dff877d7dff877d7dff88
+7d7dff887d7dff887b7bff827675ff928585ff7b6d6dff6c5d5dff665858ff625454ff9a8b8bfff7f4f2fffffffdfffaf9f7fffffffdfffbfcf9fffffffdfffffffdfffbfcfaffe4e2e0ff696866ff4e4645ff4b4342ff685a5aff6e5f5fff776465ff6e5c5cff695c5cff796c6cff837776ff807474ff7c7171ff7e7372ff7b7171ff756b6bff746b6aff736a69ff716968ff6f6766ff6c6564ff6a6362ff686261ff676160ff
+6c5e5eff6c5e5eff655e5dff605857ff505050ff434343ff2f3636ff242c2cff2a3334ff2d3637ffb6babefff9fdfffffbf8fffffefcfffffff7fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3b
+ff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff736d6cff888280ff8e8786ff898382ff8c8584ff8b8483ff847e7dff847e7dff7f7977ff7b7573ff756f6dff706968ff6b6564ff67615fff625c5bff5f5957ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffefefefffefefefffffffdfffffdfbfffffff9ffdfdad4ff635c54ff58524aff5f5343ff635747ff615545ff685b4bff7a6d5dff807363ff7e7161ff827565ff847868ff877a6bff8a7e6eff8c7f70ff8d8070ff8d8171ff8f8373ff918475ff8f8776ff8c8473ff94
+8879ff8a7e6fff968579ff827165ff47342bff423026ff43352eff4d3e38ff1e1813ff201b15ff676c67fff5fbf5ffecf8f3fff6fffdfffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffdfcfffffefdfffffffffffffffffffffffffffffefefefffcfdfbfffbfbfafffffffdfffffffdfffffffcfffffffcff
+fffffbfffffffbfffffffafffffffafffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffefefefffefefefffdfffefffdfffefffcfffcfffcfffcfffefffafffefffafffffff9ffe8e6ddff50473cff4b4237ff67574bff837368ff907b6fff907b6eff837668ff807365ff7c6f61ff7a6c5fff776a5cff75675a
+ff716356ff6e6153ff6d6052ff685b4dff66584bff66594bff635548ff5a4d3fff544639ff524537ff4b4036ff4a3e34ff483f37ff4f463fff342f2bff4f4a46fffffefdfffffffefffffffffffefefefffffffffffefefefffffffdfffffffcfffafaf4ff8d8c87ff695b4eff65574aff605345ff635648ff726557ff847769ff8b7e70ff8a7d6fff8a7d6fff8a7d6fff8a7d6fff8a7d6fff8a7d6fff8a7d6fff8a7d6fff8a7d
+6fff8a7a68ff8e7e6cff8c7e6dff8a7c6bff8c8071ff887c6dff695f52ff473d30ff4f483fff4a4339ff332f28ffb0aca5fffffffbfffffffbfffffffbfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffbfffcfffbfffcfffeff
+fcfffefffcfffffffcfffffffffdfffffffdfffffffcfffffffefffffffffcffbab2afff53493eff5b5146ff5d5040ff645847ff6e6153ff7c7062ff897d6fff8b7e70ff877a6dff85786bff85776cff84766bff837469ff827369ff827168ff807067ff7f6e66ff7d6c64ff7c6b63ff7c6a63ff7a6b63ff776860ff766861ff675952ff544942ff4e433dff574f4bffede5e1fffffffdfffffffdfffffffffffffffffffdffff
+fffdfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefffefdfdffe2e3e1ff5f605eff545551ff4d4e4aff464841ff4b4d47ff505148ff5c5c53ff6c685dff706b61ff71685dff70665bff776a5fff7c6f64ff7a6f62ff7a7062ff7c7163ff7d7264ff807465ff827667ff8477
+67ff847868ff847666ff857867ff877967ff897b69ff8b7c69ff837462ff70614eff5d4e3bff6b503aff6d533cff665241ff685543ffbeb5acfffffaf0fffffefcfffffffdfffdfdfdfffffffffffffffdffdbd6d4ff43352fff594b45ff6a554dff655048ff7b6b5eff88786bff88786bff837265ff847567ff817164ff7a6c5fff7e7062ff776a5dff776a5cff74685aff726659ff6f6556ff6d6355ff6b6153ff6b6052ff6b
+5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff7f7f5ff706e6cff2e2d2bff625b5aff696261ff625857ff635958ff695e5eff827777ff8d8382ff8c8281ff8e8685ff8e8685ff878281ff898382ff857f7eff827b7aff7c7675ff787170ff736d6cff6f6867ff696362ff66605eff615b5aff5e5857ff
+5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffff7f7f7ffffffffffffffffffffffffffffffffffcdcdcdff43484aff464b4dff4d5256ff3a4043
+ff3e454aff474e53ff363c42ff474d53ff5c5f64ff6f7277ff818182ff807f81ff7f7a78ff807b79ff867f7aff867f7aff867e7dff867e7dff877e7dff877e7dff887e7dff887e7dff887e7dff887e7dff887b7bff7f7373ff928585ff716363ff645656ff6b5d5dff756666ffcdbebefffffffdfffffdfbfffffffdfffffffdfff9f9f7fffefffcfffffffdfffcfdfafffffefcff9e9c9aff544c4bff463e3dff645656ff6759
+59ff746262ff766464ff675a5aff726665ff7c7070ff807474ff7f7474ff7e7373ff7b7170ff776d6cff756c6bff746b6bff726a69ff706867ff6d6665ff6b6563ff696362ff686261ff6c5e5eff6d5f5fff665e5eff615a59ff545454ff4b4b4bff353c3cff272f2fff242d2fff283133ff5b6064fffafefffffaf8fefffefcfffffffcfffffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff746d6cff888281ff8e8887ff8a8482ff8c8685ff8b8584ff857f7dff857f7dff807a78ff7c7574ff766f6eff706a68ff6b6564ff67615fff625c5bff5f5957ff5b5453ff
+5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffefefefffdfdfdfffffffdfffffefbfffffdf8ffdbd6d1ff605951ff58524a
+ff5f5243ff635747ff625545ff685c4cff7a6e5eff807464ff7e7161ff827565ff857868ff877b6bff8b7e6eff8c8070ff8d8070ff8e8171ff908373ff918575ff8a8371ff928b79ff8e8373ff8d8171ff98877bff77665aff49362dff443128ff44362fff4e403aff1c1813ff28241fff777e7afff2f9f5ffeffefaffeffefafffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdff
+fefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffefdfdfffffefefffffffffffffffffffffffdfffdfcfafffafbf6fff9f9f5fffffff9fffffff9fffffff8fffffff8fffffff7fffffff7fffffff6fffffff6fffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffdfbfbfffdfbfbfffdfbfbfffdfbfbfffdfbfbfffdfbfbfffdfbfbfffdfbfbfffffffdfffffffdfffffffcffff
+fffcfffffffbfffffffbfffffffafffffffafffffff6ffd8d7cdff564e44ff494136ff67574bff817166ff907a6fff907a6fff837668ff807365ff7d6f62ff7a6d5fff786a5dff75685aff716456ff6e6153ff6d6052ff695b4eff66594bff67594cff635648ff5b4d40ff544739ff524537ff4b3f35ff4b4036ff463d35ff504740ff35302cff423d39fffffefdfffffffefffffffffffefefefffffffffffefefefffffffdff
+fffffcfffbfaf5ff8e8d88ff685b4dff65574aff605345ff635648ff736558ff847769ff8c7f71ff8b7e70ff8b7d70ff8b7d70ff8b7d70ff8b7d70ff8b7d70ff8b7d70ff8b7d70ff8b7d70ff897a68ff8e7e6dff8c7e6dff8a7c6bff8c8070ff887c6cff6a5f51ff483d2fff51493dff4b4337ff352f25ffb2ada3fffffff8fffffff8fffffff7fffffff9fffffffefffffffefffffffefffffffefffffffefffffffefffffffe
+fffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffff
+fefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffafffbfffafffbfffafffefffafffefffcfefffffcfefffffffdfffffffdfffffffbfffffffdfffffffffcffbbb2b0ff53483dff5a5045ff5b5040ff635848ff6e6254ff7d7162ff8a7e6fff8b7f71ff887b6eff86796cff87786cff86776bff84746aff837469ff83
+7269ff817067ff806e66ff7f6d65ff7e6b64ff7d6b63ff7a6961ff786860ff776861ff695a53ff554943ff4f433dff584f4bffeee6e1fffffffdfffffffdfffffffffffffffffffdfffffffdfffffffbfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9faf8ffeeeeecff898987ff555553ff
+464743ff5d5f5aff3a3c35ff545650ff5e5e55ff64645bff6f6a60ff716c61ff74695eff73695eff7a6d61ff7f7166ff7b7062ff7c7163ff7e7264ff7f7465ff817666ff837768ff857868ff867969ff877a68ff867967ff8a7b69ff8b7d6aff847562ff746451ff645541ff5c4d39ff674e37ff6a523aff746351ff938270fffffff8fff8f2e9fffdfffdfffdfffdfffbfdfefffcfdfffffffdffffd8d1d2ff41302dff594845
+ff6d544eff6a514aff7b6b5eff89786bff88786bff837366ff847568ff817264ff7b6d5fff7e7062ff786b5dff776a5cff74695bff726759ff6f6557ff6d6355ff6c6253ff6b6153ff6b5d50ff66594bff594c3fff534639ff50453aff493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff7f7f5ff6f6d6bff2e2c2aff615b59ff686261ff625857ff6359
+59ff6a5f5eff837877ff8d8383ff8c8282ff8f8786ff8e8786ff888381ff8a8483ff867f7eff827c7aff7d7675ff787270ff746d6cff6f6967ff6a6462ff66605fff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffff8f8f8fffffffffffbfbfbfffffffffff0f0f0ff828282ff393f42ff484e50ff474e52ff3b4246ff41474dff41474dff3a3f46ff51575dff6d7074ff74777cff7f7f7fff808080ff837d7aff827d7aff877f79ff8a827cff877e7dff877e7dff877e7dff877e7dff887e7dff887e7dff897e7dff897e7dff877a7aff857878ff837575ff
+6b5d5dff685959ff716262ff9a8b8bfffcecedfffffdfbfffcfaf8fffffffdfffafbf8fffdfffdfff7faf8fff7fbf8fffdfffdfffefffdffdcdddbff6f6967ff4b4443ff5d4f4fff5f5050ff6f5c5cff796666ff685b5bff6c5f5fff756868ff807473ff827776ff7e7372ff796f6eff796f6eff766d6cff756c6bff736b6aff716968ff6e6766ff6c6564ff6a6463ff696362ff6f5f5fff706060ff685f5eff635a59ff585858
+ff525252ff3c4444ff2c3434ff242d2fff2f393aff303439ffbcc1c5fffefcfffffdfbfffffffbfffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c
+58ff635956ff746e6cff898281ff8e8887ff8a8483ff8c8685ff8b8584ff857f7eff857f7eff817a79ff7c7675ff76706fff706a69ff6c6564ff67615fff625c5bff5f5857ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3cff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffdfffffffdfffffffefffffffefffefffffffefffffffdfffffffdfffffffefefefffdfdfdfffffffdfffffefcfffffdf7ffd9d5cfff5e5850ff585249ff5f5242ff635747ff625545ff695c4cff7b6e5eff817464ff7e7161ff817565ff857868ff887b6bff8b7e6eff8d8070ff8d8071ff8e8171ff908373ff928575ff867f6dff97907eff8a7f6fff8f8373ff9a897dff705f53ff4b382fff
+46332aff41332dff3b2c26ff2d2924ff332f2bff818884fff9fffdfff3fffeffeffefafffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffffdfefffffefefffffffffffffffffffefefcfffcfbf9fff8f9f4fff6f7f2fff2f3edfff2f3edfff2f4ebfff2f4ebfff2f4eafff2f4eafff2f5eafff2f5eafff1efef
+fff1efeffff1efeffff1efeffff1efeffff1efeffff1efeffff1efefffeceaebffeceaebffeceaebffeceaebffeceaebffeceaebffeceaebffeceaebffe9e7e4ffe9e7e4ffe8e8e4ffe8e8e4ffe7e9e3ffe7e9e3ffe7e9e1ffe7e9e1fff2f1e7ffc3c2b8ff595146ff4d453aff6b5b50ff837368ff8e786dff8b766aff847669ff817366ff7d7062ff7a6d5fff786b5dff75685aff716456ff6e6153ff6e6053ff695b4eff6659
+4bff67594cff635648ff5b4d40ff544739ff524537ff4a3f35ff4c4137ff443b34ff514840ff35302cff3b3632fffffdfcfffffffefffffffffffefefefffffffffffefefefffffffdfffffffdfffbfaf5ff8e8d88ff685b4dff645749ff605345ff635648ff736558ff85776aff8c7f71ff8b7e70ff8b7e70ff8b7e70ff8b7e70ff8b7e70ff8b7e70ff8b7e70ff8b7e70ff8b7e70ff897a68ff8e7e6dff8c7e6dff8a7c6bff8c
+8070ff887c6cff6a5f51ff483d2fff51493dff4b4337ff352f25ffb2ada3fffffff8fffffff8fffffff7fffffff9fffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffafffbfffafffbfffafffefffafffefffcfefffffcfefffffffdfffffffdff
+fffffbfffffffdfffffffffcffbbb3b0ff52483dff5a4f45ff5b5040ff635848ff6e6354ff7d7163ff8a7e70ff8c8071ff897b6eff86796cff87786dff86776cff84756aff84746aff837269ff827168ff816f67ff7f6d65ff7e6c64ff7d6b64ff796860ff78675fff786961ff695a53ff554943ff4f423cff584f4bffefe6e2fffffffdfffffffdfffffffffffffffffffdfffffffdfffffffbfffffffbffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfaffadaeacff565754ff444442ff565753ff40413dff54564fff4c4e48ff696860ff6a6960ff6f6a5fff706b60ff756b5fff776d62ff7d6f63ff7f7165ff7c7163ff7d7264ff7e7364ff807466ff827667ff847869ff867969ff877a6aff897b6aff887a69ff8c7e6bff8c
+7d6bff7e6e5bff675744ff5d4d3aff5f4f3cff624932ff7f664fff746452fff9e9d7fffffff8fffffff8fffefffefff9fbf9fffcfefffffbfdfffffffbfcffd4cdceff3e2d29ff584743ff6f564fff6d544dff7c6b5eff89786bff88786bff837366ff847568ff817264ff7b6d5fff7e7062ff786b5dff776a5cff74695bff736759ff706557ff6e6355ff6c6254ff6b6153ff6b5d50ff66594bff594c3fff534639ff50453aff
+493e34ff49413aff5c544dffd4cfcafffffefafffffffefffffdfcfffffffffffefdfffffffefffffffefffffffffdfff6f7f5ff6f6d6bff2d2c2aff605a59ff686261ff625857ff635959ff6a5f5fff837878ff8e8483ff8d8382ff8f8786ff8f8786ff888382ff8a8483ff867f7eff827c7bff7d7775ff787271ff746e6cff6f6968ff6a6462ff66605fff615b5aff5e5857ff5c5554ff585250ff504a48ff484240ff484240
+ff4d4745ff7e7e7efffffffffffefefefffefefefffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffbfbfbfffffffffff8f8f8ffffffffffdcdcdcff444444ff474d4fff464c4fff3f4549ff43494dff454c51ff3b4248ff42474eff5b6066ff787b
+7fff787a7fff7d7d7dff808080ff857f7dff847e7bff88807aff8c847eff877e7dff877e7dff877e7dff877e7dff887e7dff887e7dff897e7dff897e7dff867979ff8d8080ff726464ff695b5bff6e5f60ff736565ffb9aaaafffffdfdfffffffdfffffffdfffefffcffecedebfffdfffdfffdfffdfff4f7f5fffdfffdfff8f8f6fffffffdff8d8685ff544d4cff584949ff58494aff6a5657ff776464ff695c5cff675a5aff6f
+6363ff7f7373ff847978ff7e7272ff786e6dff7a706fff776e6dff766d6cff736c6bff716a69ff6f6867ff6d6665ff6b6463ff6a6462ff706060ff716161ff695f5fff645b5aff5b5b5bff575757ff414949ff313939ff293335ff273133ff32373cff666b6ffffdfafffff8f5fcfffdf5fefffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423d3bff423b38ff58514eff645b57ff5d5451ff665c58ff635956ff746e6cff898281ff8e8887ff8a8483ff8c8685ff8b8584ff857f7eff857f7eff817b79ff7d7675ff76706fff716a69ff6c6664ff67615fff625c5bff5f5857ff5b5453ff5d5655ff57514fff534c4bff4f4947ff433d3c
+ff433f3dff565150ffe2dedcfffffffdfffffffdfffffefcfffffffdfffefdfbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c
+5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff938976ff928775ff938776ff8a7e6dff978a7bff695b4dff493c31ff413429ff453a32ff41372fff251f1aff2b2520ffa6a5a2fffffffdfffdfffefff9fcf9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff9fffffff9fefffffafdfcfff9fcfcfffffffbfff4f3eeff6e6961ff78736bff7b746bff7b736aff797269ff776f67ff746d67ff746d66ff736d68ff746e69ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff716f65ff6e6e64ff6e6e64ff6e6d64ff6d6c63ff6d6a61ff6b685fff6b665eff6a655cff
+665f56ff625b53ff574e46ff50473fff635951ff80766eff8a7f77ff81766eff857369ff827167ff7f6d63ff7c6b61ff7b695fff78675dff756359ff726056ff6f5d53ff6c5b51ff6a584eff68574dff67554bff625047ff5a483eff534238ff4c3f33ff4d4033ff493f35ff4f453bff332c26ff3c352ffff1edecfffffffefffffffffffffffffffffffffffffefefffffefffffffcfdfffdf9f7ff918d8cff6b5e4eff655849
+ff5f5343ff625546ff736656ff857969ff8c8070ff8a7e6eff8d8070ff8d8070ff8d8070ff8d8070ff8d8070ff8d8070ff8d8070ff8d8070ff887a67ff8e7f6cff8d806eff8c7e6dff8e8272ff8a7d6eff6a6053ff473d31ff50483eff484037ff38332cffa7a29bfffffffbfffffcf7fffefbf7fffffffcfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffbfdfdfffbfdfdfffcfefdfffcfffefffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffefffffffefffffffdfff6f7f5fffdfefbfffffffdfffffffdfff9faf7fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffef9ffbeb8b2ff52473dff554a40ff64564aff615447ff6c5f51ff7f7164ff8c7f71ff8c7e71ff887b6dff897b6eff887a6dff837668ff85786aff847769ff837668ff827467ff807365ff7f7164ff7d7062ff
+7d6f62ff7b6c5eff7e6e61ff75695cff6f6356ff4d463bff4f483dff504e46ffebe9e0fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf9fafffffefffffffefffff4f3f5fffffefffff4f3f6fffffeffffc2c9c6ff5f6663ff454844ff555955ff474540ff46433eff665d56ff655c55ff72665c
+ff73675dff76695cff786b5eff7b6e5fff7d7061ff7e7261ff7e7362ff827469ff807267ff7f7265ff807366ff857867ff887b6aff8a7d69ff897c68ff8e7e6aff867662ff927e6bff8e7967ff705748ff624839ff694d40ff664a3dff545250ff63605effb8b8b8fffffffffffbfffefff7fcfbfffafffffff4faf9fffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a
+6aff867767ff827363ff817262ff807161ff7d6e5fff7a6b5cff796a5bff786959ff766757ff746555ff726353ff706152ff706151ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff675c5bff837878ff8f8584ff8d8382ff8f
+8887ff938b8aff8c8785ff8a8584ff89807fff857c7bff7f7776ff7a7271ff766d6cff706867ff6b6261ff675e5eff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffefffffffefffffffcfffffffcff
+fffffbfffffffbfffbfcf7fffafaf6fffffffffffffefefffffdfffffffdffff837d84ff443f46ff3e4e52ff39494cff3a464aff3c484cff40464aff43494dff5a595dff6f6e72ff837d80ff837d81ff857e80ff857e81ff867f80ff878081ff868081ff868081ff867d7dff8b8281ff8d8282ff897e7eff8a7c7cff8b7d7dff8c7c7cff897979ff8d7d7dff847475ff706363ff5f5252ff6f6565ff7e7574fffffaf9fffffdfc
+fffafffffffafffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffdfefffef9faffe1d9daff655d5eff54494bff594e50ff524648ff75696bff795f5fff715857ff715d5bff826d6cff857976ff817472ff79736fff7c7673ff73716dff73706cff716f6bff6f6d69ff706a67ff6e6865ff6e6763ff6d6662ff686361ff676260ff65615fff635f5dff5f5d5cff5a5857ff515151ff4c4c4cff343635ff3336
+35ff313536ff323637ffc4caccfff4fafbfff8fefffff8fefffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff756c6bff908887ff8f8685ff92
+8988ff948b8aff8c8382ff8d8483ff867d7cff817978ff7d7574ff776e6eff716968ff6d6463ff685f5fff635b5aff605756ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdff
+fefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928774ff918774ff948877ff8a7e6dff958879ff66594bff4a3d32ff46392eff4a3f37ff3d332bff26201bff2b2520
+ffb3b2affffffffdfffdfffefffafcfafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fcfdfff7fcfefff9fbfbfff7fafafffbfbf6ffe6e5e0ff58534bff5c574fff615950ff605950ff615950ff5f584fff5d564fff5e5650ff5e5752ff5f5854ff58554cff58554cff58554cff58554cff58554cff5855
+4cff58554cff58554cff56544aff56544aff56544aff56544aff56544aff56544aff56544aff56544aff54544aff54544aff55544aff54534aff545249ff535047ff534e46ff524d45ff5a534aff585149ff514840ff4d443cff625750ff7f746cff897d76ff81756eff85746aff837167ff7f6e64ff7d6b61ff7b695fff78675dff75635aff726157ff6f5e54ff6d5b51ff6a584eff69574dff67564cff635147ff5a493fff54
+4238ff4c4033ff4c3f33ff493e35ff4f453bff332c26ff3b342efff0ecebfffffffefffffffffffffffffffffffffffffefefffffefffffffdfdfffdf9f7ff918d8cff6b5e4eff655849ff5f5343ff625646ff736656ff857969ff8d8070ff8a7e6eff8d8171ff8d8171ff8d8171ff8d8171ff8d8171ff8d8171ff8d8171ff8d8171ff90816eff928371ff8e806fff8b7d6cff8e8172ff897d6eff695f53ff473d30ff51493fff
+494238ff3b352effa39d97fffffffbfffffffbfffffffcfffffdf9fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfefffffcfefffffcfefffffcfdfffffcfdfffffbfdfefffbfcfefffbfcfefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffcfefefffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfffdfdfdfff8f8f7fffcfdfbfffffffdfff9f9f7fffffffdfffafbf8fff1f2effffffffdfffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffef9ffbfb9b3ff5348
+3eff554a40ff635649ff615447ff6c5f51ff7f7164ff8c7f71ff8c7e71ff897b6eff897c6eff887b6dff847769ff85786aff85776aff847669ff827567ff807365ff7f7164ff7e7063ff7d7062ff7b6c5fff7e6f61ff75695cff6f6356ff4d463bff4f483dff504e46ffebe9e1fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffefffffffeffffffffffffffffffffffffffffffffffff
+fffffffffffffffcfbfdfffbfafcfffffefffffffefffffffeffffeeedeffffffeffffe3e2e5ff818885ff4c5350ff474a46ff545753ff4c4944ff514e49ff6d645cff696159ff74685eff75695fff786b5eff7a6d60ff7c7060ff7e7262ff7f7463ff807564ff827369ff827469ff837668ff84776aff867a69ff877a69ff887b67ff887b66ff8a7965ff8f7f6aff927d6bff7b6754ff644b3cff63493bff6e5145ff6e5145ff
+4e4c4aff9f9d9bffeaeaeafffffffffff8fcfbfffbfffffffafffffff4faf9fffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d6e5fff7a6b5cff796a5bff78695aff766758ff746556ff726354ff716252ff706151ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9
+fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff675c5bff847978ff8f8585ff8d8382ff908887ff938b8aff8c8785ff8b8584ff89807fff857c7cff807776ff7a7271ff766d6cff716867ff6b6262ff675f5eff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcffffff
+fffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffefffffffefffffffcfffffffcfffffffbfffffffbfffffffbfff9faf5fffffdfefffaf8f8fffffdffffccc8ccff605b62ff403b42ff3c4c4fff3b4b4eff3d494dff3c474bff40454aff494e52ff636266ff77767aff837d81ff837d81ff857e80ff867e81ff867f80ff87
+8081ff868081ff868081ff867d7cff8a8180ff8b8080ff887d7cff897b7bff8a7c7cff8c7b7cff897879ff847575ff827273ff675a5aff6c5f5eff6a605fffc1b8b7fffaf3f2fffffffdfffafffffffafffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffefffffffefffff5edeeff9b9394ff54494bff564c4dff594d4fff6b5f61ff7c6262ff735a59ff6e5958ff7a6665ff827673ff867977ff7c7773ff
+79736fff74716dff73716dff726f6bff706d69ff706b67ff6e6965ff6f6764ff6e6663ff696563ff686461ff666260ff65615fff615f5dff5c5a59ff545454ff4f4f4fff3e4040ff2d2f2fff2f3334ff323637ff707577fff9fefffff2f9fbfff9fffffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffe
+fffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff756c6bff908887ff8f8686ff928988ff948b8aff8c8383ff8d8483ff867d7cff827978ff7d7574ff776f6eff726968ff6d6463ff68605fff635b5aff605757ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdffffff
+fdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a
+7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff908572ff918774ff958978ff8a7e6dff928576ff635547ff4c3f34ff4f4136ff51463eff372c24ff28231eff2b2621ffcac9c6fffffffcfffdfffefffafdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fefffffafffffffdffffff
+fdfffffffffef9ffe3e1dcff4c473fff4b463dff5c544aff5d554bff5f564dff5e554cff5c534cff5b534bff5c534eff5d554fff59544bff59544bff59544bff59544bff59544bff59544bff59544bff59544bff58544aff58544aff58544aff58544aff58544aff58544aff58544aff58544aff57554bff57554bff58554bff58554bff59554bff58534aff585249ff585248ff554d44ff564e45ff534a41ff534a41ff675d54
+ff82776eff8b7f77ff847970ff84756aff827268ff7e6e64ff7c6c62ff7a6a60ff78685dff74645aff716257ff6f5f55ff6c5c52ff695a4fff68594eff67574dff625248ff5a4a40ff534339ff4d4033ff4b3f32ff483e34ff50463cff332c27ff39322dffedeae9fffffffefffffffffffffefffffffffffffffdfefffffefffffffdfdfffdf9f8ff928e8cff6b5e4eff655848ff5f5343ff625646ff736657ff867969ff8d81
+71ff8b7f6fff8e8171ff8e8171ff8e8171ff8e8171ff8e8171ff8e8171ff8e8171ff8e8171ff938572ff938472ff8d7f6eff8a7c6bff8e8172ff8b7f6fff6b6154ff483d31ff4a4238ff4f473dff464038ff918b83ffdad6d0ffdcd7d1ffddd9d4ffdad6d1ffd2d1d0ffd2d1d0ffd2d1d0ffd2d1d0ffd2d1d0ffd2d1d0ffd2d1d0ffd2d1d0ffd1d0ceffd1cfceffd1cfceffd0cfcdffd0cfcdffcfcecdffcfceccffcfceccffc7
+c7c3ffc7c7c3ffc7c7c3ffc7c7c3ffc7c7c3ffc7c7c3ffc7c7c3ffc7c7c3ffc7c6c2ffc7c6c2ffc7c6c2ffc7c6c2ffc7c6c2ffc7c6c2ffc7c6c2ffc7c6c2ffc1c1bdffc1c1bdffc1c1bdffc1c1bdffc1c1bdffc1c1bdffc1c1bdffc1c1bdffbfbfbbffbfbebaffbebebaffbdbdb9ffbdbcb8ffbcbbb7ffbbbbb7ffbbbbb6ffbbb7b5ffbbb7b5ffbbb7b5ffbbb7b5ffbbb7b4ffbbb7b4ffbbb8b4ffbbb8b4ffb7b4b0ffb9b6b2ff
+b2b0abffafada8ffb9b6b1ffb2b0abffb8b6b0fffffffbfffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffef9ffc1bab5ff544a40ff554a40ff635549ff615447ff6d5f52ff7f7264ff8d7f72ff8d7f72ff897c6eff8a7d6fff897c6eff85786aff86796bff85786aff847769ff837568ff817466ff7f7264ff7e7163ff7e7063ff7c6d5fff7e6f62ff75695cff6f6356
+ff4d463bff4f483eff504e46ffeceae1fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffcfcfcfffffffffffdfdfefffffefffff4f4f5fff9f9fbffa3a3a5ff4c514dff444a46ff4d4f4aff50514cff514d47ff5d5953ff726961ff726961ff786a60ff786b61ff7b6d60ff7d6f62ff7f7263ff8174
+65ff817665ff827766ff827469ff85766cff87796cff887a6dff887b6aff877a69ff887a66ff897a67ff8c7b68ff92826eff836f5eff675342ff61493bff654e40ff6a5045ff6c5247ff777573ffe0dedcfffffffffffbfbfbfffbfffffffbfffffff2f8f7fffafffffffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d
+6e5fff7b6c5cff7a6b5bff78695aff766758ff746556ff726354ff716252ff706152ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff675c5bff847978ff8f8585ff8d8383ff908887ff938c8bff8c8786ff8b8584ff898180ff
+857d7cff807776ff7b7271ff766d6dff716867ff6b6362ff685f5eff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffcfffffffcfffffffbfffffffbfffffffcfffafbf7ffffffff
+fffdfcfcfffaf7fbff8b888cff444047ff47424aff3b494dff3e4c50ff404a4eff3b4548ff44484bff55595dff717073ff807f82ff847e81ff847e81ff867f80ff867f80ff877f81ff878081ff868081ff878081ff867d7cff89807fff8a7f7fff867b7bff887a7aff8a7c7cff8b7b7cff887878ff7f7070ff766767ff675b5bff6e6262ff827a79fffff6f5fff8f3f1fffffffdfffbfffffffbfffffffcfffffffcfffffffdff
+fffffdfffffffffffffffffffffffffdfefffffefffffffcfdffd7d0d1ff615859ff4e4446ff564b4dff5b5052ff7b6463ff755d5cff6b5856ff705d5bff7b6f6cff897d7aff827b78ff77716dff76726eff75716dff73706cff716e6aff716c68ff6f6a66ff706865ff6f6764ff6b6664ff6a6563ff686462ff676260ff63605fff5f5c5bff575757ff525252ff464848ff323434ff2d3132ff313536ff2d3234ffcbd0d2fff7
+fdfffff9fffffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff756c6bff918887ff8f8786ff928988ff948c8bff8c8483ff8d8484ff867e7dff
+827978ff7e7574ff776f6eff726968ff6d6564ff69605fff645b5aff605857ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcffff
+fffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff8e8471ff908673ff968a79ff8b7f6eff8f8273ff5f5243ff4d4035ff57493fff564c44ff32271fff29241fff2c2621ffe0dfdcfffffefbfffdfffefffcfffcffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fdfffffafffffffdfffffffdfffffffffffbffe8e6e1ff4f4941ff4b463dff544c42ff585046ff5c5349ff5c534aff595049ff574f47ff574f49ff59514bff565248ff565248ff565248ff565248ff565248ff565248ff565248ff565248ff59544bff59544bff59
+544bff59544bff59544bff59544bff59544bff59544bff56544aff57554bff58554bff59564cff5a564cff5a554cff5b554bff5a544bff5a5248ff5c544bff5c534aff5d544bff6e635aff82786fff897e75ff83786fff85756bff827368ff7f6f65ff7d6d62ff7b6b61ff78695eff75655bff726258ff706056ff6d5d53ff6b5b50ff695a4fff68584eff635349ff5b4b41ff54453aff4d4034ff4a3e31ff483d33ff51473dff
+332c27ff37302bffebe7e6fffffffefffffffffffffefefffffffffffffdfefffffefffffffdfefffefaf8ff928e8dff6b5e4eff655848ff5f5343ff625646ff746757ff877a6aff8e8172ff8c7f70ff8f8272ff8f8272ff8f8272ff8f8272ff8f8272ff8f8272ff8f8272ff8f8272ff918270ff918270ff8b7d6cff897c6aff908374ff8d8172ff6d6356ff483e31ff51493fff5e564cff504a42ff615b53ff6b6660ff57534d
+ff55524dff55514cff545351ff545351ff545351ff545351ff545351ff545351ff545351ff545351ff565453ff555453ff555452ff555352ff545352ff545351ff545351ff545251ff585854ff585854ff585854ff585854ff585854ff585854ff585854ff585854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff595854ff5958
+54ff575753ff575753ff575752ff565652ff565651ff555551ff555551ff555550ff575451ff575451ff575451ff575451ff575451ff575451ff575451ff575451ff56534fff585651ff4e4b47ff4f4c47ff57544fff4f4c47ff5c5954ffdbd8d3fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffef9ffc3bdb7ff574c42ff554a40ff625448ff615447ff6d5f52ff7f
+7264ff8d8072ff8d8072ff8a7d6fff8b7e70ff8b7d70ff86796bff87796cff86796bff85786aff837668ff827467ff807365ff7f7264ff7e7163ff7d6e60ff7f7062ff75695cff6e6256ff4d463bff4f493eff514f47ffedebe2fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffff
+f9f9fafff7f6f8fffffeffffb2b1b3ff626263ff464c47ff4c524eff4e4f4aff4a4b46ff56524cff625e59ff716860ff796f68ff796c62ff7a6d63ff7d6f62ff7e7063ff807364ff817465ff827666ff837766ff83756aff86776dff887a6dff887a6dff887a69ff877a69ff8b7c69ff8d7e6bff93826eff857561ff6b5746ff604c3bff6b5446ff644d3fff654b40ff7c6257ffcac8c6fffdfbf9fffffffffff7f7f7fffbffff
+fffbffffffeff5f4fffafffffffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d6e5fff7b6c5cff7a6b5cff796a5aff776858ff756656ff736454ff716253ff716252ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffe
+fffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff675c5cff847979ff908685ff8e8483ff908988ff938c8bff8d8786ff8b8684ff8a8180ff867d7cff807877ff7b7272ff766e6dff716968ff6c6362ff685f5eff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffcfffffffcfffffffbfffffffbfffffffcfff8faf6ffffffffffffffffffcecbcfff5c595dff413c44ff504c53ff3b494cff3c4b4eff3c464aff384246ff4a4e52ff64686cff7d7c7fff838285ff857f82ff857f82ff877f81ff878081ff878081ff878081ff868081ff868081ff887f7eff8a8180ff
+8a7f7fff877b7bff897b7bff8b7d7dff8c7b7cff877777ff7f7070ff635454ff6f6362ff6e6262ffbcb4b3fffffefdfffffdfcfffffefdfffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffbf7f8fffefafbfffffefffffdf5f6ff938a8bff504748ff4f4446ff554a4cff765e5eff775f5fff6e5a59ff6a5755ff726562ff857976ff837d79ff79726fff77736fff76736fff75716dff736f6b
+ff726d69ff706b67ff716966ff706865ff6c6765ff6a6563ff686462ff676361ff646160ff615e5cff595959ff555555ff474949ff404242ff2e3132ff2d3132ff2b3032ff707577fff3f9fbfff3f9fbfffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdffffffffffffffffffffff
+fffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff756d6cff918887ff908786ff928a89ff958c8bff8d8483ff8d8584ff877e7dff827a79ff7e7575ff786f6eff726a69ff6e6564ff69605fff645b5bff615857ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffd
+fffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff
+938475ff938475ff8e8471ff908673ff968a79ff8c806fff8f8173ff5d5041ff4e4136ff5c4f44ff574d45ff30251dff29231eff2d2823ffedede9fffffffcfffdfffefffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fbfdfff7fcfefffcfefefffdfffffffffffbffe9e7e2ff514a41ff4d473e
+ff554b40ff5c5348ff665b50ff6b6055ff6a5f56ff695e55ff695f57ff6b6159ff655e53ff655e53ff655e53ff655e53ff655e53ff655e53ff655e53ff655e53ff676055ff676055ff676055ff676055ff676055ff676055ff676055ff676055ff645e53ff655f54ff665f54ff676055ff686156ff686055ff686055ff685f55ff6a6055ff6c6358ff6d6257ff6d6258ff766b60ff83776dff86796fff80746aff84776bff8174
+68ff7e7165ff7b6e62ff796d61ff776a5eff73675bff716458ff6f6256ff6c5f54ff695d51ff685c50ff675a4eff625549ff5a4d41ff53473bff4e4134ff493d30ff473c33ff52473eff342d28ff352e29ffe8e4e3fffffdfcfffffefefffffdfefffffffffffffdfdfffffefffffffdfefffefaf9ff938f8dff6b5e4eff655848ff5f5343ff635647ff746758ff877b6bff8f8272ff8d8071ff8f8373ff8f8373ff8f8373ff8f
+8373ff8f8373ff8f8373ff8f8373ff8f8373ff8a826fff8b8371ff88806fff877f6dff8d8474ff898070ff6a6153ff463c2eff594f43ff685e52ff655a51ff665b52ff645851ff5e524bff675b55ff6b5f59ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff615c55ff615c55ff615c55ff615b55ff605b54ff605b54ff605a54ff5f5a53ff59544cff59544cff59544cff59544cff59544cff
+59544cff59544cff59544cff5b564eff5b564eff5b564eff5b564eff5b564eff5b564eff5b564eff5b564eff5c574fff5c574fff5c574fff5c574fff5c574fff5c574fff5c574fff5c574fff5b574eff5b574eff5c574fff5c584fff5d5850ff5d5950ff5d5950ff5e5951ff5f5951ff5f5951ff5f5951ff5f5951ff5f5951ff5f5951ff5f5951ff5f5951ff5d564eff645e56ff605a51ff666057ff635c54ff524b43ff504a41
+ffe3ddd5fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefdfffffef9ffc6bfbaff594f45ff554a40ff615347ff625448ff6d6052ff807265ff8e8073ff8e8073ff8b7e70ff8c7f71ff8c7e71ff887a6dff887a6dff877a6cff86786bff847769ff837568ff817466ff807265ff7f7264ff7e6f61ff807063ff75695dff6e6255ff4d463bff50493eff525048ffeeece4ffffff
+fbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffffffffffffffe9e9e9ff707070ff494949ff55594cff52574aff4b4c40ff4e4f44ff666156ff6c675cff72675dff7d7268ff7b6c63ff7c6d64ff7e6e65ff7f6f66ff807168ff827269ff82746aff83746bff86776cff86776cff87
+786aff87786aff887968ff8a7b6aff8e7e6bff91816eff8d7c6aff71604dff5a4737ff625040ff695548ff574337ff6f5a50ffb29d93fffffffdfffffdfbfffafafafffcfcfcfffbfffffffbfffefff9fefdfffafffffffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d6e5fff7b6c5dff7b6c5cff796a5bff776859ff
+756657ff736455ff726353ff716252ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff685d5cff857a79ff908686ff8e8483ff918988ff948c8bff8d8886ff8c8685ff8a8180ff867d7dff817877ff7b7372ff776e6dff726968
+ff6c6463ff68605fff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffffcfffcfdfafff7f8f5fffffffffffafafaff87858aff434247ff47444cff4d4a
+52ff3f4a4dff3c474bff3a4245ff3d4548ff585a5dff75767aff868285ff837f82ff878082ff878082ff888081ff888081ff888081ff878081ff878080ff868080ff8b8180ff8c8281ff8c8080ff897d7cff8b7d7dff8c7e7eff8a7a7bff837474ff766868ff594b4bff6b6060ff8a807fffece5e4fffffdfcfffffffdfffbf9f7fffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffefbfcffff
+fcfcfffffefffffffeffffd7d0d1ff676061ff473f40ff554d4eff6a5554ff745f5eff71605eff675654ff685c59ff7b6f6cff827a77ff7f7774ff7a7471ff797370ff77726eff75706cff746e6aff726c68ff726a67ff716a66ff6d6765ff6b6563ff686361ff676260ff646160ff625e5dff5c5a5aff595757ff505050ff484848ff343738ff2b2d2eff373b3dff383c3effbec3c6fffafffffffafffffffafffffffbffffff
+fbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff766d6cff918988ff908887ff938a89ff958c8cff8d8584ff8e8584ff877e7eff837a79ff7e7675ff78706fff736a69ff6e6565
+ff696160ff655c5bff615958ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfaffffff
+fdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff8f8572ff908572ff958a78ff8d8170ff908274ff5c4f41ff4e4036ff5e5046ff544a42ff31271fff27221dff2f2924fff1f0edfffffffdfffafdfafffdfffeffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffff9fefffffcfefefffdfffffffffffbffe9e7e2ff524b42ff4e473eff5c5247ff685e53ff796e63ff83786dff867a71ff867b71ff867c74ff897e76ff837b70ff837b70ff837b70ff837b70ff837b70ff837b70ff837b70ff837b70ff827b70ff827b70ff827b70ff827b70ff827b70ff827b70ff827b70ff
+827b70ff7f796dff7f796eff807a6fff817b70ff827b70ff827a6fff827a6fff81796eff7f756aff81776cff81766bff7f7469ff82776cff887c72ff887c72ff84786eff84786cff827569ff7e7266ff7c6f63ff7a6d61ff786b5fff74675cff716559ff706357ff6d6155ff6b5e52ff6a5d51ff685b50ff63564bff5b4e42ff55483cff4e4235ff493c2fff463c32ff53483eff352e28ff332c27ffe5e1e0fffffcfbfffffdfe
+fffffdfdfffffffffffffdfdfffffefffffffefefffffbf9ff938f8eff6a5e4eff655848ff5f5343ff635747ff756858ff887c6cff908373ff8e8172ff908374ff908374ff908374ff908374ff908374ff908374ff908374ff908374ff8c8471ff8f8774ff8d8573ff89816fff8c8373ff877e6eff6a6153ff483f31ff63594dff62584dff5d5249ff564b42ff554942ff594d46ff594d48ff534741ff59544dff59544dff5954
+4dff59544dff59544dff59544dff59544dff59544dff5a554eff5a554eff5a554eff5a544eff59544dff59544dff59534dff58534cff5e5951ff5e5951ff5e5951ff5e5951ff5e5951ff5e5951ff5e5951ff5e5951ff605b53ff605b53ff605b53ff605b53ff605b53ff605b53ff605b53ff605b53ff5b574eff5b574eff5b574eff5b574eff5b574eff5b574eff5b574eff5b574eff5b564eff5b574eff5c574fff5d5850ff5e
+5950ff5e5a51ff5f5a52ff5f5b52ff5f5950ff5f5950ff5f5950ff5f5950ff5f5950ff5f5950ff5f5950ff5f5950ff5e5850ff605a52ff59534bff5a544cff4d463eff49423aff464038ffe1dad2fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffdfcfffffff9ffc8c2bcff5c5147ff554a41ff605246ff615447ff6d6052ff807365ff8e8173ff8f8174ff8c7e71ff8d8072ff
+8d8072ff897c6eff887b6dff887a6dff86796bff85786aff837668ff827467ff817366ff807365ff7f7062ff807164ff75695dff6e6255ff4c453bff50493eff525048ffefede5fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffff7f7f7ffffffffffffffffff868686ff595959ff515151
+ff505448ff4a4e42ff494a3eff595b4fff747065ff757065ff756a60ff7c7167ff7d6e65ff7d6e65ff7f6f66ff807067ff817269ff82736aff83746bff83756bff88796eff86776cff857669ff857769ff897a6aff8c7d6cff8d7e6bff8d7d6aff796856ff63523fff5b4838ff655242ff614d40ff5f4b3eff9f8a80fffde8defffffffdfffefcfafffffffffffffffffff1f5f4fffbfffefffafffffff1f7f6fffdfffdfffeff
+fefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d6e5fff7c6d5dff7b6c5cff796a5bff786959ff756657ff746555ff726354ff716253ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff30
+2e2cff5f5958ff5f5958ff635959ff625857ff685d5dff857a7aff918786ff8e8484ff918a89ff948d8cff8e8887ff8c8785ff8a8281ff867e7dff817877ff7c7372ff776f6eff726969ff6d6463ff69605fff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffdfffefffcffffffffffd2d2d2ff535156ff444348ff4e4b53ff49474fff3f4a4dff3a4548ff3c4346ff474f52ff66686bff7c7e81ff868286ff817d80ff888183ff888183ff898182ff898082ff888081ff888081ff868080ff868080ff8b8180ff8c8281ff8c8080ff8a7e7eff8c7e7eff8c7d7eff867777
+ff7d6d6eff6a5c5cff5f5151ff6c6261ffc3b8b8fffff9f8fffffbfafffffffdfffffdfbfffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffefffffffdfefffffefffffdf8f9fffffbfcff938c8dff4b4244ff51494aff604c4bff705b5aff736260ff6a5957ff635654ff716462ff7c7471ff827a77ff7b7572ff7a7571ff797370ff77716eff756f6cff746d6aff736c68ff726b67ff6d67
+65ff6b6563ff686361ff676260ff656160ff63605eff5e5c5cff5b595aff5a5a5aff454545ff3e4142ff2a2c2eff2d3133ff373b3dff6d7274fffafffffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff45
+3e3bff554e4bff635a56ff625a56ff625854ff645a56ff766e6dff928988ff918887ff938b8aff958d8cff8e8584ff8e8685ff877f7eff837a7aff7f7675ff79706fff736a6aff6e6665ff6a6160ff655c5bff625958ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff918674ff8f8572ff958978
+ff8e8271ff918475ff5d5041ff4d3f35ff5d5045ff4f443dff352a22ff26201bff302a25ffeeeeebfffffffdfff6f9f6fffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffefffffffefffffffffffbffece9e4ff544c42ff4f463dff574b3fff675b4fff7d6f63ff8a7d70ff8e80
+74ff8d7f73ff8c7e74ff8d7f75ff8c8174ff8c8174ff8c8174ff8c8174ff8c8174ff8c8174ff8c8174ff8c8174ff8b8073ff8b8073ff8b8073ff8b8073ff8b8073ff8b8073ff8b8073ff8b8073ff897e72ff8a7f72ff8a7f73ff8b8073ff8b8073ff8a7f72ff8a7e71ff897d71ff8c8073ff8d8175ff8d8174ff8a7e71ff8a7d71ff8c7f73ff8c7f72ff897c70ff84796cff817669ff7e7365ff7c7063ff7a6f61ff776c5fff74
+695bff716659ff706557ff6d6255ff6b5f52ff6a5e51ff685d50ff63584bff5b5042ff55493cff4f4235ff483b2eff463b31ff53493fff352e28ff322b25ffe3dfdefffefbf9fffffdfdfffefdfdfffffffffffffdfdfffffefffffffefffffffbf9ff94908eff6a5e4eff655848ff605343ff635747ff756859ff897c6cff908474ff8f8272ff918474ff918474ff918474ff918474ff918474ff918474ff918474ff918474ff
+908271ff948776ff928574ff8c7f6eff8c8070ff8b7e6fff74695bff594d3fff51473aff4c4236ff52493dff534a3eff564e44ff645c51ff655e54ff60584eff685f53ff685f53ff685f53ff685f53ff685f53ff685f53ff685f53ff685f53ff685f53ff685f53ff685e53ff675e52ff675e52ff675d51ff665d51ff665d51ff62594cff62594cff62594cff62594cff62594cff62594cff62594cff62594cff62584cff62584c
+ff62584cff62584cff62584cff62584cff62584cff62584cff645b4eff645b4eff645b4eff645b4eff645b4eff645b4eff645b4eff645b4eff645b4eff645b4fff645b4fff645b4fff645b4fff655c4fff655c4fff655c4fff635a4cff635a4cff635a4cff635a4cff635a4cff635a4cff635a4dff635a4dff645a4eff5d5347ff53483dff4e4438ff3b3126ff4e4439ff53483effebe0d6fffffffdfffffffdfffdfffffffdff
+fffffdfffffffdfffffffefffffffefffffffffffefffefcfbfffffff9ffcac4beff5e5349ff554a41ff5f5245ff615447ff6d6052ff807365ff8f8174ff8f8274ff8c7f71ff8e8173ff8e8173ff8a7d6fff897b6eff887b6dff877a6cff86786bff847669ff827567ff817466ff817366ff807063ff817164ff766a5dff6e6255ff4c453aff50493eff535149ffefede5fffffffbfffffffbfffffffefffffffeffffffffffff
+fffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfff9faf8fffdfefbfff6f7f4ffbabbb7ff4f504cff545551ff545551ff4b4b42ff4c4c43ff59554cff69655cff786f66ff7a7168ff7d6f66ff7c6e65ff817166ff817166ff837366ff847467ff847667ff857768ff857869ff857869ff8b7b6fff87786cff867668ff89796bff8f7e6eff8f7e6dff8a7866ff
+847260ff665544ff604e3dff604f41ff615042ff5f5045ff87786effd6c8c0fffffff8fffdfbf9fffffefcfffffffffffffffffff4f8f7fffbfffefffafffffff4faf9fffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff665448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d6e5fff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff726354ff726353ff6e6053
+ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff685d5dff857a7aff918786ff8f8584ff918a89ff958d8cff8e8887ff8c8785ff8b8281ff877e7dff817978ff7c7473ff776f6eff726a69ff6d6463ff696060ff645b5bff615857ff5d55
+54ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffefffffffefffefffdfffefffdfffdfffefffdfffefff0f2f4ff8f9192ff3f4146ff4a4c51ff494a53ff464750ff41484bff3e4548ff474b4dff5b5f61ff74
+7376ff7f7e81ff867f82ff857e81ff8b8283ff8b8183ff8b8282ff8a8181ff898180ff888180ff87817fff87807fff8a7f7eff8b8080ff8c807fff8a7e7eff8c7e7eff8a7b7bff807171ff746666ff675b5aff675b5bff898180ffefe7e6fffffffdfffffdfbfffffffdfffffffdfffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffefefffefdfdfffffdfefff8f5f5fffffeffffcac6c7ff
+605b5cff4b4647ff584846ff665654ff6e605eff6a5b59ff635654ff6b5e5cff786e6bff837976ff7e7673ff7d7572ff7b7470ff79726eff77706cff756e6bff746c69ff736c68ff706967ff6e6765ff6b6563ff6a6462ff686362ff676261ff625f5fff5f5d5dff5a5a5aff4f4f4fff494a4cff2e3031ff292c2eff383b3dff3b3e41ffc3c6c9fffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdffff
+fffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff645a56ff766e6dff928989ff918887ff938b8aff968d8cff8e8584ff8f8685ff887f7eff837b7aff7f7676ff79706fff736b6aff6f6665ff6a6161ff655d5cff625958ff5e5453ff6055
+55ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffcfafffffffdfffffef9ffd3ccc7ff635951ff5d534bff64
+5546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928875ff8f8572ff948877ff8e8371ff938577ff5d5042ff4c3f34ff5c4e44ff4b4038ff382d25ff241e19ff322c27ffeaeae7fffffffdfff3f6f4fffdfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9fdfffff8fcfffffcfdfdfffefffffffffffbffece8e3ff524a40ff4c433aff5b4e42ff6c5f53ff837568ff908275ff928478ff8e8074ff8b7d72ff8b7d72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a7f72ff8a8073ff8b8073ff8b8073
+ff8b8073ff8a7f72ff897e71ff897d70ff877b6eff897d70ff897c70ff867a6dff85786cff86796cff86796cff85786bff85796cff827769ff7e7366ff7c7163ff7a6f62ff786c5fff74695cff726659ff716558ff6e6355ff6b6052ff6a5f51ff695d50ff64584bff5c5043ff554a3cff4f4236ff473b2eff453b31ff544940ff352e29ff312a24ffe2deddfffdfaf9fffefdfdfffefdfdfffffffffffffdfdfffffefffffffe
+fffffffbf9ff94908eff6a5d4eff655848ff605343ff635747ff756959ff897c6cff918474ff8f8273ff918475ff918475ff918475ff918475ff918475ff918475ff918475ff918475ff8c7f6eff928473ff908372ff8a7d6cff8b7f70ff8e8272ff7f7465ff695e50ff6c6255ff6b6155ff786f64ff736a5fff665e54ff6b6358ff6c645aff6b635aff6c6256ff6c6256ff6c6256ff6c6256ff6c6256ff6c6256ff6c6256ff6c
+6256ff6d6358ff6c6357ff6c6357ff6c6257ff6c6256ff6b6256ff6b6256ff6b6156ff6a6154ff6a6154ff6a6154ff6a6154ff6a6154ff6a6154ff6a6154ff6a6154ff685f52ff685f52ff685f52ff685f52ff685f52ff685f52ff685f52ff685f52ff635a4dff635a4dff635a4dff635a4dff635a4dff635a4dff635a4dff635a4dff635a4dff62594dff62594cff61584cff61584bff60574aff5f564aff5f5649ff605748ff
+605748ff605648ff605648ff605649ff605649ff605649ff605649ff5c5246ff564c41ff554a3fff51473cff3b3126ff54493fff50453bffdbd0c6fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffefcfbfffffff9ffcbc5bfff5f544aff554a41ff5f5145ff615447ff6e6053ff807365ff8f8174ff8f8274ff8d7f72ff8f8174ff8e8173ff8b7d70ff897c6eff897b6eff877a6c
+ff86786bff847769ff837568ff817466ff817366ff807163ff817264ff766a5dff6e6255ff4c453aff50493eff535149fff0eee6fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefff2f3f1fffffffdffdddedbff636461ff585955ff4c4e4aff4a4b47ff4b4b42ff55554cff69655cff6e6b62ff7067
+5eff776e65ff81746aff7b6e64ff837368ff847368ff857568ff867669ff867769ff87786aff86796bff877a6bff8b7c70ff88786cff877769ff8c7c6eff938271ff907f6eff857462ff7a6856ff5f4d3cff62503fff645446ff5d4c3eff6d5d53ffb9aa9ffffff2eafffffff8fffffffdfffffdfbfff9f9f9fffefefefffbfffffffafefefff6fcfbfffafffffffdfffdfffefffefffffffaffcbc6c0ff3b2f25ff60544aff66
+5448ff67554aff7d6e5eff857666ff897a6aff867767ff827363ff817262ff807161ff7d6e5fff7c6d5eff7b6c5dff7a6b5bff78695aff766757ff746556ff736454ff726353ff6e6053ff695b4eff5b4e42ff54473bff50453bff493e34ff494039ff5b534cffd2ccc8fffffdf9fffffffefffffdfcfffffffffffcfcfdfffffefffffffefffffefffcfffbfcfaff6d6c6aff302e2cff5f5958ff5f5958ff635959ff625857ff
+695e5dff857a7aff918786ff8f8584ff918a89ff958d8cff8e8987ff8c8786ff8b8281ff877e7dff817978ff7c7473ff786f6eff736a69ff6d6464ff696160ff645b5bff615857ff5d5554ff59504fff514847ff4a4140ff4a4241ff504746ff7c7c7cfffdfdfdfffcfcfcfffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeff
+fffffffffffffffffffffffefffffffefffefffdfffefffdfffafdfbfffbfefcffdddfe1ff56595aff3c3e44ff4d4e54ff3f4048ff45464fff3f4749ff3f4649ff4f5355ff676b6dff7b7a7dff7d7c7fff837d7fff888183ff8b8284ff8b8283ff8b8282ff8a8181ff898180ff888180ff87817fff87807fff887d7dff8a7f7eff8b7f7eff8a7d7dff8b7d7dff877979ff7c6d6dff6e6060ff6e6161ff6c6060ffb0a8a7fffffa
+f9fffffffdfffcf9f8fffdfefcfffefffcfffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffefefffffefefffffefffffefafbfffffefffffaf5f6ff7e797aff514c4dff564644ff625250ff6b5c5aff6a5c5aff655856ff695c5aff746a67ff817774ff7f7673ff7e7672ff7c7471ff7a726fff77706dff756e6bff746d6aff736c69ff726a69ff706867ff6d6664ff6c6563ff6a6564ff69
+6463ff646162ff625f60ff535353ff5f5f5fff4e5051ff333536ff333639ff272a2cff323638ff7c8082fffafffffffafffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff433e3cff3e3937ff453e3bff554e4bff635a56ff625a56ff625854ff
+645a56ff776e6dff928a89ff918887ff948b8aff968d8cff8e8584ff8f8685ff887f7eff847b7aff7f7776ff797070ff736b6aff6f6665ff6a6261ff655d5cff625959ff5e5453ff605555ff5a504fff554c4bff504847ff453d3cff443f3dff575150ffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff8f8472ff8f8572ff908573ff918674ff908274ff584b3cff54473cff584a
+40ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fdfffffbfefffffffffffffffffffffffaf6fff7f2edff4e443aff50463cff58493cff695b4eff847364ff968577ff9a887aff948375ff907e71ff8f7e70ff8f7f71ff8f
+7f71ff8f7f71ff908071ff908072ff908172ff908172ff918173ff8d7d6fff8d7d6fff8d7e6fff8d7e6fff8e7e70ff8e7e70ff8e7f70ff8e7f70ff8f7f71ff8f7f70ff8e7e70ff8d7d6fff8d7d6eff8c7c6eff8b7c6dff8a7b6dff88796bff88796bff887a6bff88796bff86786aff857768ff837567ff827465ff837769ff827667ff807465ff7d7162ff7a6e60ff776b5dff75695bff746859ff6d6152ff6f6254ff6e6253ff
+6b5f51ff6a5e50ff685c4eff615446ff574b3cff53463aff483b2fff4a4036ff52483eff352e29ff302923ffd7d4d2fffffffefffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff6b5e4eff655848ff5f5242ff635646ff746858ff897c6cff918575ff908474ff928575ff928575ff928575ff928575ff928575ff928575ff928575ff928575ff8e8171ff8e8171ff8e8272ff8e8172ff8d8171
+ff8c8070ff8a7e70ff897e6fff877c6eff877c6eff867b6dff857a6dff83796cff83796cff82786bff82786bff827667ff827667ff817566ff807565ff807465ff7f7364ff7e7263ff7e7263ff7c7061ff7c7061ff7b6f60ff7a6f5fff7a6e5fff796d5eff786c5dff786c5dff75695bff75695aff74685aff736759ff736758ff726657ff716557ff716556ff6f6355ff6f6354ff6e6254ff6d6153ff6d6152ff6c6051ff6b5f
+51ff6b5f50ff695d4fff695d4eff685c4eff675b4dff675b4cff665a4bff65594bff65594aff65594bff65594aff64584aff635749ff635748ff625647ff615547ff615546ff615744ff605643ff605543ff5f5542ff5e5342ff5e5342ff5d5242ff5d5142ff5e5245ff55493cff52463aff4c4034ff4a3d32ff4d4035ff57493fffe6d9cffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffeffffffff
+fffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6b5e50ff807365ff918476ff928577ff8f8174ff8f8274ff8f8174ff8c7e71ff8c7f71ff8a7d6fff877a6cff86796bff86786bff847769ff827467ff7f7264ff817164ff827366ff786c5fff706457ff4d473cff504a3fff535149fff0eee6fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffeffffffffffffffffffff
+fdfdfdfffffffffffffffffff9f9f9fff6f7f5fffffffefffcfdf9fffffffcfff8f9f4ff7f807bff575952ff545650ff42453dff52554dff555145ff625e53ff716a5fff766e63ff7b6f64ff7e7267ff847368ff837368ff877569ff87756aff88766aff89776bff88796bff897a6cff887b6dff897b6dff86776aff897a6dff8a796bff877668ff8f7b6bff8e7a6aff7a6655ff604c3bff635041ff534131ff6d5e52ff5a4b3f
+ff887d75fffffff8fff9f1ecfffffffafffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f
+35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffefffffdfcfffffdfefcfff6f7f4ff72706eff2e2c2aff5c5655ff615b5aff5e5454ff645a5aff665b5aff847979ff928887ff908685ff928a89ff948d8cff8f8988ff8e8887ff8c8382ff887f7eff827978ff7c7473ff776f6eff726968ff6c6363ff685f5fff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff52
+4a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff9f6fafffffefffffffefffffffffffffffffffffafcfafff8fbf9fffcfffffffcffffff7a7f81ff4b5052ff42474dff43474dff484c55ff3c4049ff45484aff474a4cff5c5b5dff777679ff8b8588ff888385ff8b8283ff8f8688ff8d8283ff
+8d8283ff8c8382ff8c8281ff8a8381ff8a8280ff898380ff898380ff908484ff847978ff938685ff8f8282ff877979ff857777ff726464ff675a5aff675d5cff7c7171fff8f3f1fffffffdfff7f8f5fffffffdfff9fdfafffcfffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffffffffff6f6f6fffffffffffcfbfbfffcfbfbffd9d7d8ff474546ff5c514eff524744ff594d4a
+ff776b68ff5f5350ff655957ff6c605eff7f7370ff807472ff827775ff807673ff7b726fff776f6cff78706dff766f6cff736c68ff736b69ff726a68ff706867ff6e6665ff6b6464ff696262ff656162ff646061ff626061ff5b595aff515152ff474748ff36383aff2c2d30ff2f3133ff393b3effd2d7d6fffafffffffbfffffff2f7f6fffbffffffeff4f3fffdfffffffdfffffffdfffffffdffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff746c6bff928988ff928988ff948c8bff958d8cff8d8484ff8f8786ff8a8181ff867d7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff43
+3e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff
+807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff908573ff908572ff908473ff908573ff8f8173ff584a3cff55473cff594b41ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff9fdfffffafefffffffffffffffffffffffaf6fff8f3eeff4f443aff50463cff645548ff6a5b4eff786758ff847465ff8e7d6fff917f71ff907e71ff8f7d70ff8d7e6fff8d7e6fff8d7e6fff8d7e6fff8d7e6fff8d7d6fff8d7d6fff8d7d6fff928374ff928274ff918273ff918173ff8f8071ff8f7f71ff8e7e70ff8e7e70ff8b7b6cff8a7a6bff89796aff877769ff857667ff847466ff827365ff827364ff8b7c
+6dff8a7b6cff88796bff867869ff847668ff837567ff837566ff837566ff7d7162ff7d7162ff7d7062ff7c7062ff7c7062ff7c7061ff7c7061ff7c6f61ff796d5eff776b5cff716557ff6b5f50ff685c4eff65594aff5b4f41ff504436ff4e4235ff45382bff483d33ff54493fff3c3530ff362f2affd8d4d3fffffffefffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff6b5e4eff655848ff5f
+5242ff635646ff746858ff897c6cff918575ff908474ff928576ff928576ff928576ff928576ff928576ff928576ff928576ff928576ff8f8271ff8f8271ff8e8272ff8e8272ff8d8171ff8c8070ff8a7e6fff897d6fff877c6eff877c6eff867b6dff857a6dff83796cff83796cff82786bff82786bff827667ff827667ff817566ff807565ff807465ff7f7364ff7e7263ff7e7263ff7c7061ff7c7061ff7b6f60ff7a6f5fff
+7a6e5fff796d5eff786c5dff786c5dff75695bff75695aff74685aff736759ff736758ff726657ff716557ff716556ff6f6355ff6f6354ff6e6254ff6d6153ff6d6152ff6c6051ff6b5f51ff6b5f50ff695d4fff695d4eff685c4eff675b4dff675b4cff665a4bff65594bff65594aff65594bff65594aff64584aff635749ff635748ff625647ff615547ff615546ff615744ff605643ff605543ff5f5542ff5e5342ff5e5342
+ff5d5242ff5d5142ff5e5245ff55493cff52463aff4c4034ff4a3d32ff4d4035ff57493fffe6d9cffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6b5e50ff807365ff918476ff938578ff8f8174ff8f8274ff8f8274ff8c7e71ff8d7f72ff8a7d6fff887a6dff86796bff86796bff85776aff827567ff8072
+65ff817164ff837366ff786c5fff706457ff4d463bff50493eff535149fff0eee6fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffff7f6f8fffffffffffffffffff9f9f9fffcfcfcfffffffffffffffefffbfbf9fffefffbfff3f4f0ffaaaba6ff676863ff474943ff494b44ff4e5149ff3f423aff5e5a4fff6a655aff766e63ff787065ff7c7065ff7e7267ff837368ff827267ff87756aff88
+766aff88776aff89776bff88796cff897a6cff887b6dff897b6dff8c7d70ff88796cff8a796bff8d7c6dff8d7a6aff7f6c5cff6e5949ff604c3bff5b4839ff6a5748ff635448ff78695dffebe1d9fffdf3ebfffffffafffffffafffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff
+847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffefffffdfcfffffefefcfff6f7f5ff72706eff2e2c2aff5c5655ff615b5aff5e5454ff645a59ff665b5aff857a79ff928888ff908686ff928a89
+ff948d8cff8f8988ff8e8987ff8c8382ff887f7eff827979ff7d7473ff786f6eff726969ff6c6463ff68605fff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffbfbfdfffcfcfcfffffffffffdff
+fefffdfffefffcffffffccd0d0ff5b6062ff404446ff43474eff3f434aff464953ff40444dff424446ff4f5254ff69686aff7e7d7fff8a8486ff878284ff8b8183ff8e8586ff8d8283ff8d8283ff8d8382ff8c8281ff8a8381ff8a8280ff888280ff88827fff8d8281ff827676ff8f8282ff8b7e7eff847576ff807272ff6e6060ff685a5aff6a5f5fffb6ababfff9f4f3fffffffdfffffffdfffffffdfffdfffdfffdfffdfffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffffffffffafafafffffffffffefdfdffffffffffeeecedff828081ff4d423fff5a4f4cff564a48ff6c605eff685b59ff5e5250ff695d5aff746866ff7f7371ff827774ff817774ff7c7370ff78706dff79716dff77706cff736c69ff736b69ff736a69ff716967ff6f6765ff6b6564ff696362ff666162ff656061ff636162ff5d5b5cff
+555456ff4b4b4dff3b3d3fff2f3133ff2f3134ff36383bff7f8483fff9fffefff1f6f5fffbfffffffafefefff4f9f8fffdfffffff9fcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff746c6bff928988ff928988ff948c8b
+ff958d8cff8d8584ff8f8786ff8a8281ff867d7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffeff
+fefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff918774ff908673ff8f8472ff8f8372ff8d8071ff574a3bff55483dff5a4d42ff51463eff332820ff2b2520ff332d28ffef
+efecfffffffdfffafdfbfffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafdfffffbfefffffffefffffffffffffffbf6fffaf4efff51453aff52463bff604f40ff726152ff8a7666ff958271ff988373ff978272ff998474ff9d8878ff958171ff948171ff948070ff937f6fff937f6fff927e6eff
+917e6eff917d6dff907c6cff8f7c6cff8f7b6bff8e7a6aff8c7969ff8b7868ff8b7767ff8a7767ff927d6eff927d6dff907c6cff8f7b6bff8d7a6aff8c7969ff8a7868ff8a7767ff8a7868ff887766ff857564ff827262ff807161ff807160ff807261ff817261ff817162ff807162ff807061ff7e6f60ff7d6e5fff7c6d5eff7c6c5dff7b6c5dff756657ff736354ff6e5e4fff6c5c4dff6f6051ff716253ff6a5b4cff5f5041
+ff55483bff4b3f32ff493e35ff51463dff3c3530ff332c26ffd0cccbfffdf9f8fffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff6a5d4eff645848ff5f5242ff625646ff756858ff897c6cff928575ff918474ff928676ff928676ff928676ff928676ff928676ff928676ff928676ff928676ff8f8272ff8f8273ff8f8273ff8e8272ff8d8171ff8c8070ff8b7e6fff8a7d6eff897c6dff887c
+6cff887b6cff877b6bff867a6aff85796aff857869ff847869ff837766ff837666ff827665ff827565ff817464ff807363ff7f7362ff7f7262ff7d7160ff7d7060ff7c705fff7c6f5fff7b6e5eff7a6d5dff796d5cff796c5cff76695bff76695aff75685aff756759ff746658ff736657ff726557ff726556ff706355ff706354ff6f6254ff6f6153ff6e6052ff6d6051ff6c5f51ff6c5f50ff6a5d4fff6a5d4eff695c4eff69
+5b4dff685a4cff675a4bff66594bff66594aff66594bff66594aff65584aff655749ff645648ff635647ff625547ff625546ff615742ff605742ff605642ff5f5541ff5e5442ff5e5341ff5d5242ff5d5141ff5e5245ff55493cff52453aff4c3f34ff4a3c33ff4d4036ff574941ffe6d8d0fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff
+574c42ff605346ff625448ff6b5e50ff817366ff928477ff938578ff8f8274ff908275ff8f8274ff8c7f71ff8d8072ff8b7e70ff887b6dff877a6cff87796cff85786aff837568ff807365ff817264ff837467ff796d60ff706457ff4c453aff4f483dff535149fff1efe7fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffff9f8fafffffefffffffffffff9f8f9fffafafafffffffffffffffd
+fffafbf8fffffffbffbfc1bcff60635bff565951ff43473dff4d5147ff4d5045ff4a4e43ff6e6759ff766f61ff7e7466ff7e7366ff7f7164ff817366ff857367ff847266ff8a766aff8a766aff8a776bff8a786bff89796cff8a796dff887a6dff897b6dff8d7d70ff87776aff8b796aff917e70ff897364ff715b4cff634d3eff644d3eff5b473aff725f51ff605349ffc4b7adfffffffafffffff9fffffffcfffdfcf8ffffff
+fdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9ffff
+fffefffffcfbfffffffffffefefffffffefffffdfcfffffefffdfff7f8f5ff72706eff2e2d2bff5c5655ff625b5aff5e5453ff645a59ff665b5aff857a79ff928888ff908686ff928b8aff958d8cff8f8988ff8e8987ff8c8483ff88807fff827a79ff7d7473ff786f6eff726a69ff6d6463ff69605fff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbffffffffff
+fffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfffffffefffffbf8fcfffefefefffffffffffcfffefffdfffffffaffffff8b9190ff3e4548ff3a4043ff444b52ff3b4149ff414751ff404751ff454546ff5f5e60ff7d7979ff888484ff8b8384ff8a8283ff8d8283ff8e8383ff8f8382ff8f8382ff8e8381ff8d8381ff8b8380ff8a827f
+ff88827eff88827eff8d8180ff837777ff8d8080ff897b7bff817373ff796b6bff675a5aff6b5e5eff7b7272fff5ecebfff8f5f4fffffefcfffdfffdfffbfefbfffafffdfffafffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffafbfbfffdfffffffafcfbfffdfffffffdfffffffdfffffffdffffffc8cac9ff504946ff5a534fff524946ff5d5451ff706462ff5c514eff695b59ff6a5d
+5aff7e706eff837673ff837875ff807472ff7a726fff7a726eff77706dff746d69ff756c6aff756b6aff726a68ff706866ff6d6665ff6b6463ff686263ff676162ff656262ff615e5fff5a595bff525153ff434446ff363639ff303134ff313235ff393f3effd3d9d8fff6fbfafffbfffffff8fdfcfffbfffffffdfffffffcfffefffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffd
+fffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff756c6bff928989ff928a89ff958c8bff968d8cff8d8584ff908786ff8a8281ff867d7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdff
+fefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6c
+ff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928875ff918673ff8f8372ff8e8271ff8c7f70ff57493bff56483dff5b4e43ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefffffafdfffffefeffffffff
+fffffffcf8fffbf5f1ff52463cff52463cff574638ff6b5a4cff847060ff907c6cff937e6eff917d6cff907b6bff8e7969ff948070ff937f6fff927f6fff917d6dff907c6cff8e7b6bff8e7a6aff8d7969ff907c6cff8f7c6cff8f7b6bff8f7b6bff8e7a6aff8d7a6aff8d7969ff8d7969ff897464ff897464ff887464ff887464ff877363ff877363ff867363ff857363ff837262ff837261ff817161ff807160ff7f705fff7f
+705fff7e6f5eff7e6f5eff7a6a5bff796a5bff78695aff776758ff766657ff746556ff736455ff736354ff7a6a5bff766758ff706051ff6c5d4eff6e5e4fff6c5d4eff615243ff544435ff4d4034ff4a3d31ff463b32ff4d4238ff3d3630ff362f29ffd6d3d1fffffffefffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff6a5d4dff645747ff5e5242ff625646ff756858ff897d6dff928676ff
+918575ff938676ff938676ff938676ff938676ff938676ff938676ff938676ff938676ff8f8373ff908373ff8f8373ff8f8273ff8e8172ff8c8070ff8b7e6fff8a7d6eff897c6dff887c6cff887b6cff877b6bff867a6aff85796aff857869ff847869ff837766ff837666ff827665ff827565ff817464ff807363ff7f7362ff7f7262ff7d7160ff7d7060ff7c705fff7c6f5fff7b6e5eff7a6d5dff796d5cff796c5cff76695b
+ff76695aff75685aff756759ff746658ff736657ff726557ff726556ff706355ff706354ff6f6254ff6f6153ff6e6052ff6d6051ff6c5f51ff6c5f50ff6a5d4fff6a5d4eff695c4eff695b4dff685a4cff675a4bff66594bff66594aff66594bff66594aff65584aff655749ff645648ff635647ff625547ff625546ff615742ff605742ff605642ff5f5541ff5e5442ff5e5341ff5d5242ff5d5141ff5e5245ff55493cff5245
+3aff4c3f34ff4a3c33ff4d4036ff574941ffe6d8d0fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6c5e51ff817466ff928577ff938678ff8f8274ff908375ff908275ff8c7f71ff8e8173ff8c7e71ff897c6eff887a6dff877a6cff86796bff837668ff817466ff827265ff847567ff7a6e61ff706457ff4b
+4439ff4d473cff525048fff2f0e7fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffefffff7f7f9fff8f7f9fffffffffffffffffff9f9f9fffefefcfffffffdffeaebe6ff6d6f6aff474941ff51534bff4b4e45ff55594fff404338ff6b6e64ff766f61ff7c7566ff807668ff7e7366ff807164ff827467ff877468ff867367ff8b776bff8b776bff8a786bff8b786cff89796cff8a796dff
+887a6dff897a6dff87786aff88786bff8d7a6cff897768ff7b6656ff675142ff604a3bff644e3eff685547ff655244ffa1958afffff5eafffaf4eefffffffafffcfcf8fffcfbf7fffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5e
+ff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffefffffdfcfffffffffdfff8f8f6ff73716fff2f2d2bff5c5655ff625b5aff5e5453ff645a59ff665b5bff857a7aff938988ff918786ff928b8aff958d8cff8f8a88ff8f8988ff8d8483ff8980
+7fff837a79ff7d7574ff78706fff736a69ff6d6463ff69605fff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf6fcfffffdfffffffcfffffffefffffffffffff8f8f8fff8fbfafffdffffffd9deddff595e5dff3d4347ff41
+484bff494f57ff3b4249ff3e454fff3f4650ff505051ff6d6d6eff878384ff898586ff898182ff8c8486ff908585ff8c8081ff908483ff908383ff8e8382ff8e8381ff8b837fff8a827fff88827eff88827eff8d8180ff877a7aff8e8181ff877979ff7d6f6fff706262ff625554ff736666ffa9a09ffffffefdfff9f6f4fffffefcfffdfffdfffafdfbfff8fffcfff8fffcfffdfffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffff7f9f9fffdfffffff7f9f9fffafcfbfffdfffffffcfefefffdfffffff4f6f6ff837c78ff514a47ff524946ff554c48ff6e625fff655a57ff6a5c5aff645654ff796b69ff817371ff847875ff827674ff7c7370ff7b7370ff78716eff756e6bff776d6cff766c6bff746b69ff726967ff6e6766ff6c6564ff696364ff686263ff646161ff626060ff5d5c5eff575658ff4a4a4dff3c3c3fff313235
+ff2c2d30ff2c3231ff858b8afffbfffffff3f8f7fffbfffffffbfffffff5f8f7fffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff756c6cff928a89ff938a89ff958c8bff968d8cff8e8584ff908786ff8b8281ff867d
+7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffc
+fffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928875ff918673ff8f8372ff8e8271ff8c7f70ff57493bff56483dff5b4e43ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffeffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefffffbfdfffffdfdfefffffefffffffdf9fffef7f3ff54473cff53463bff625041ff705e4fff856f5dff927c6aff9e8775ffa38c7aff9d8674ff937c6aff988170ff988170ff96806eff957e6dff937d6bff927b6aff917a69ff907968ff907a68ff907968ff8f7867
+ff8e7766ff8c7664ff8b7563ff8a7462ff8a7362ff907766ff907766ff8e7665ff8d7564ff8b7463ff8a7362ff887361ff877361ff806d5bff816e5cff81705eff82715fff81715fff80705dff7e6e5cff7c6d5aff7f6c5dff7f6c5dff7f6c5dff7f6c5dff7f6c5dff7f6c5dff7f6c5dff7f6c5dff786455ff776454ff756253ff746151ff776354ff756253ff6b5848ff5e4b3bff514438ff55483cff4f443bff50453bff3c35
+30ff2c2520ffc7c3c2fffffefdfffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff695c4dff635747ff5e5142ff625646ff756858ff8a7d6dff938676ff928575ff938777ff938777ff938777ff938777ff938777ff938777ff938777ff938777ff908475ff908475ff908474ff8f8374ff8e8272ff8c8070ff8b7e6eff8a7d6dff8a7d6cff897c6cff897c6bff887b6aff887a69ff877968ff87
+7967ff867967ff837667ff827666ff827566ff817565ff807464ff7f7364ff7f7263ff7e7263ff7d7061ff7c7060ff7c6f60ff7b6f5fff7a6e5eff796d5eff796c5dff786c5dff76685cff75685bff75675bff74675aff736659ff726558ff726558ff716457ff706256ff6f6255ff6f6155ff6e6154ff6d6053ff6c5f52ff6c5f52ff6b5e51ff6a5c50ff695c4fff695b4fff685b4eff675a4dff66594cff66594cff65584bff
+66584cff65584bff65574bff64574aff635649ff625548ff625548ff615447ff5f5842ff5f5742ff5e5642ff5e5541ff5d5442ff5c5341ff5c5243ff5b5142ff5d5246ff54493dff51453cff4b3f36ff493c35ff4c3f38ff554843ffe5d8d3fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6c5f51ff827467
+ff938578ff948679ff908375ff918376ff908375ff8d7f72ff8f8174ff8c7f71ff8a7d6fff897b6eff887b6dff87796cff847769ff827567ff827365ff857668ff7b6f62ff706457ff4a4338ff4c453aff525048fff2f0e8fffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffffefffff8f7f9fffcfbfdfffffefffffffffffffffffffffffffdfffafbf7ff92948dff3a3c35ff474a40ff494c
+42ff4f5347ff4b4f43ff4a4f41ff73776aff7b7262ff7f7565ff827666ff7f7363ff837264ff877668ff8b776aff8a7669ff8d786bff8d786cff8c786cff8c786cff8a796dff8a796dff897a6eff897a6eff857567ff8e7e70ff8f7c6dff7c695aff6c5545ff644d3dff634b3cff624a3cff6b574bff806d60fffaeee5fffffcf4fffffdf9fffffffbfffcfffefffcfffefffffffdfffffffdfffffffffffffffffffbfffffffb
+fffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffeffff
+fdfcfffffffffdfff9f9f7ff747270ff2f2e2cff5d5755ff625c5aff5e5453ff645a59ff675c5bff867b7aff938989ff918787ff938b8aff958e8dff908a89ff8f8a88ff8d8483ff89807fff837b7aff7e7574ff79706fff736a6aff6d6564ff696160ff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef9fffffffcfffffaf7fcfffffdfffffffefffff6f5f7fffbfffefffcffffff909697ff373d3dff444c50ff474f53ff444c54ff39424aff3a434eff3e4751ff676263ff7d7979ff8c8587ff898283ff8b8081ff938789ff958888ff8d8080ff928483ff918483ff8f8481ff8f8380ff8b837fff8a827eff88827dff88817dff8b7e7eff897c7cff8d7f
+7fff817474ff766868ff675959ff605454ff867979ffe2dbdafffffefdfffcfbf9fffffffdfff3f8f5fffbfffdfff3fcf8fff7fffcfffefffffffefffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffff8fbfbfffcfffffff5f9f8fff8fcfbfffcfffffff9fdfdfff9fefdfffbffffffc8c4c0ff4d4a46ff524b48ff4e4744ff605451ff6e6260ff6b5c5aff625351ff746462ff7e6e6cff847774ff847774ff7e
+7572ff7d7471ff79726fff76706cff796e6dff786d6cff766c6bff746a69ff706867ff6e6665ff6b6465ff6a6364ff646061ff646061ff605e60ff5a585aff504f52ff444346ff353638ff2b2b2eff2f3433ff454b4affcdd2d1fff8fdfcfffbfffffff5faf9fff3f6f6fffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdffffffffffffffffffffffffff
+fffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff766d6cff938a89ff938a8aff958d8cff968e8dff8e8685ff908887ff8b8382ff867d7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff9384
+75ff938475ff918774ff908673ff8f8472ff8f8372ff8d8071ff574a3bff55483dff5a4d42ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefffffafcfffffdfcfefffffefffffffefafffff8f4ff55483dff54463cff56
+4434ff837161ffb59f8effc7b1a0ffc4ad9bffc1aa98ffc3ab99ffc4ad9bffbaa392ffb9a291ffb8a190ffb7a08fffb69f8effb49d8cffb39d8bffb39c8bffac9684ffab9583ffaa9382ffa89180ffa58f7dffa48d7cffa28b7affa18a79ff9a8170ff99806fff967f6dff947c6bff917a69ff8f7867ff8b7765ff8a7664ff816e5cff826f5dff816f5dff81705eff7f6f5cff7d6d5bff7b6b59ff796a58ff7f6c5dff7e6b5cff
+7c695aff7a6758ff776455ff756253ff736051ff725f50ff746152ff776454ff776455ff766354ff776454ff766354ff6f5c4cff665243ff4c3f32ff53473aff4a3f36ff493f35ff3a332eff27201bffbcb8b7fff9f6f4fffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff685c4cff635646ff5e5141ff625545ff756858ff8a7d6dff938777ff928676ff948777ff948777ff948777ff948777
+ff948777ff948777ff948777ff948777ff918576ff918576ff908475ff908374ff8e8272ff8c8070ff8b7e6eff8a7d6dff8a7d6cff897c6cff897c6bff887b6aff887a69ff877968ff877967ff867967ff837667ff827666ff827566ff817565ff807464ff7f7364ff7f7263ff7e7263ff7d7061ff7c7060ff7c6f60ff7b6f5fff7a6e5eff796d5eff796c5dff786c5dff76685cff75685bff75675bff74675aff736659ff7265
+58ff726558ff716457ff706256ff6f6255ff6f6155ff6e6154ff6d6053ff6c5f52ff6c5f52ff6b5e51ff6a5c50ff695c4fff695b4fff685b4eff675a4dff66594cff66594cff65584bff66584cff65584bff65574bff64574aff635649ff625548ff625548ff615447ff5f5842ff5f5742ff5e5642ff5e5541ff5d5442ff5c5341ff5c5243ff5b5142ff5d5246ff54493dff51453cff4b3f36ff493c35ff4c3f38ff554843ffe5
+d8d3fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6d5f52ff827567ff938678ff948779ff908375ff918476ff908375ff8d8072ff8f8274ff8d8072ff8b7d70ff897c6eff897b6eff887a6dff85786aff837568ff827365ff867769ff7b6f63ff706457ff484136ff4b4439ff514f47fff3f1e9fffffffbff
+fffffbfffffffefffffffefffffffffffffffffffffefffffffefffffbfafcfffffefffffffefffffefdfffff9f9f9fffffffffffbfcf8ffc0c1beff3d3f38ff40423bff4b4e44ff45483eff505448ff474b3fff6c7163ff686c5fff7c7262ff7f7565ff827566ff807364ff847365ff89786aff8d796cff8b776aff8e796cff8e796cff8d796dff8d796dff8a796dff8a796dff897a6dff897a6eff89796bff8f7f71ff897667
+ff6e5b4cff604939ff614a3bff664e3fff644c3eff6c584cffd7c3b7fffffff6fffffff8fffffffbfffbf9f4fff9fdfbfffcfffefffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff7667
+57ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffefffffdfcfffffffffdfff9faf8ff747371ff302e2cff5d5756ff625c5bff5e5453ff635a59ff675c5cff867b7bff948a89ff928887ff938c8bff968e8dff908b89ff908a89ff8d8584ff898180ff847b7aff7e7575ff79706fff736b6aff6e
+6564ff6a6160ff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffff6f3f7fffffdfffffffefffffaf9fbfffcffffffdadeddff464c4dff2b3132ff454d51ff454d50ff3c454dff3a424aff39424dff48515cff
+777374ff858081ff8d8687ff888182ff8c8183ff94898bff968989ff8e8181ff928584ff928483ff908481ff8f8380ff8b837fff8a827eff87817cff87817cff877a7aff887b7bff887a7aff786a6aff6e6060ff635555ff6e6262ffada0a0fffffefdfffbf3f2fffffffdfffffffdfff2f7f4fffbfffdfff3fcf8fff8fffdfffefffffffefffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffcfffffffcffff
+fff8fcfbfffcfffffffcfffffffbfffffff5f9f8fffafffefffbf7f3ff716d69ff58514dff4d4643ff534845ff6c615eff695a58ff625250ff6c5c5aff796967ff827572ff847774ff7e7572ff7d7471ff7a7370ff78716eff7a6f6eff796e6dff776d6cff756b6aff716969ff6f6767ff6c6566ff6b6566ff656162ff666263ff615f61ff5c5a5cff555457ff4c4b4eff3c3c3fff2f2f32ff2a2f2fff373c3cff757a79fffbff
+fffffbfffffff1f6f5fffdfffffff8fbfbfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff766d6cff938b8aff938b8aff968d8cff978e8dff8f8685ff918887ff8c8382ff867d7cff817878ff7b7271ff756c6bff706766ff6b
+6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdff
+fffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff908573ff908572ff908473ff908573ff8f8173ff584a3cff55473cff594b41ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfdfffffafcfffffcfbfdfffffefffffffffafffff9f5ff57493eff54463cff766353ffac9889ffe4cdbbffefd8c6ffe2cab7ffdac2afffdfc6b4ffe7cebbffe6cdbbffe5cdbbffe5ccbaffe4cbb9ffe3cab8ffe2c9b7ffe1c8b6ffe0c8b6ffe2c9b7ffe2c9b7ffe1c9b7ffe1c9b7ffe1c8b6ffe0c8b6ffe0c8b6ffe0c8
+b6ffe5cab8ffe4cab8ffe3c9b7ffe2c8b6ffe0c8b6ffdfc7b4ffddc6b4ffdcc6b3ffe0ccb9ffddc9b6ffd8c6b3ffd3c2aeffcfbfabffcebeaaffcdbdaaffcdbeaaffcbb5a5ffcab4a4ffc8b2a3ffc6b0a0ffc4ad9effc1ab9cffc0a99affbfa899ffb8a293ffbaa494ffb6a091ffae9889ffa79182ffa48e7eff9f897aff9a8474ff605347ff5e5245ff453b31ff40362cff3d3631ff342d27ffccc8c7fffffffefffffffffffd
+fcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff685b4cff635646ff5e5141ff625545ff756858ff8a7d6eff948777ff938676ff948777ff948777ff948777ff948777ff948777ff948777ff948777ff948777ff918577ff918577ff918576ff908475ff8f8272ff8c8070ff8b7e6eff8a7d6dff8a7d6cff8a7c6bff8a7c6aff897b69ff897a68ff887a67ff887967ff877966ff827667ff827667ff817566ff
+807466ff7f7465ff7f7364ff7e7264ff7e7263ff7c7061ff7c7061ff7b6f60ff7a6e60ff796e5fff796d5eff786c5eff786c5dff75685dff75685cff74675cff73665bff72665aff726559ff716459ff716458ff6f6257ff6f6256ff6e6156ff6d6055ff6c6054ff6c5f53ff6b5e53ff6b5e52ff695c51ff695c50ff685b50ff675a4fff665a4eff66594dff65584dff65584cff65584dff65584cff64574cff63564bff62564a
+ff625549ff615449ff615448ff5e5843ff5e5742ff5d5643ff5c5542ff5c5443ff5b5342ff5a5144ff5a5143ff5c5247ff52483eff4f443dff493e37ff473b37ff4a3e3aff544744ffe4d7d4fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6d6052ff827567ff938678ff948779ff918376ff918476ff9183
+76ff8d8072ff908375ff8e8073ff8b7e70ff8a7d6fff897c6eff887b6dff86786bff837668ff837366ff87776aff7c7064ff706457ff474136ff494237ff514f47fff4f2eafffffffbfffffffbfffffffefffffffefffffffffffffffffffffefffffffefffffbfafdfffffdfffffffefffffcfcfdfff9f9f9ffffffffffcfd0ccff686a66ff2c2f27ff4d5048ff4f5348ff494c42ff53574aff5f6356ff737869ff6d7263ff80
+7564ff827766ff857767ff837565ff887667ff8d7b6cff907b6dff8d786aff8f796dff8f796dff8e796dff8d796dff8b796eff8b796dff897a6eff897a6eff8c7c6dff857566ff796556ff665243ff5e4637ff61493aff6c5345ff745b4dffaa958afffffff5fffcf1e9fffffff8fffffefbfffefdfafff2f9f8fff9fffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdff
+fffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffefffffdfcfffffffffdfffafbf8ff757371ff302f2d
+ff5d5756ff625c5aff5e5453ff635959ff675c5cff867b7bff948a89ff928887ff948c8bff968f8eff908b8aff908a89ff8e8584ff8a8180ff847b7aff7e7675ff797170ff746b6aff6e6564ff6a6160ff675e5dff605757ff5d5453ff5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffcfffffffcfffff9f6fafffffcfffffaf9fbfffffefffff3f7f6ff8a8e8eff22292aff383e3fff3f484cff40484cff3a434bff3d474fff3b4550ff5b6570ff817b7cff8a8485ff908789ff8e8586ff8f8384ff928686ff958786ff928484ff938584ff938583ff908481ff8f8380ff8b837eff8a817dff87817cff87817bff877979ff897c7cff857777ff716363ff6a5c5cff695b5bff8a7e7effe2
+d6d6fffffffdfffef7f6fffffffdfffdfefcfffafffdfffafffdfff2fdf9fff7fffdfffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffcfffffff9fcfcfffbfffefffbfffffffbfffffffbfffffff7fdfcfffafffffffffffcffb5b3afff645e5aff504a46ff544946ff625754ff6a5a58ff665654ff665553ff756462ff807270ff847674ff7f7572ff7e7572ff7b7471ff79736fff7b706fff
+7a6f6eff786e6dff766c6bff736a69ff716868ff6d6667ff6c6567ff686465ff686465ff636063ff5e5b5dff59585bff545356ff464548ff373639ff292e2dff353b3aff404545ffced4d3fffbfffffff6fbfafffdfffffffbfefefffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37
+ff58514eff655d59ff5f5652ff665c58ff615854ff766e6dff948b8aff948b8aff968d8dff978e8eff8f8685ff918888ff8c8382ff867d7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffdfbfffffffdfffffcf7ffd0c9c4ff61574fff5c524bff645546ff615243ff655646ff706151ff7b6c5dff807162ff847565ff877868ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff8f8472ff8f8572ff908573ff91
+8674ff908274ff584b3cff54473cff584a40ff51463eff332820ff2b2520ff332d28ffefefecfffffffdfffafdfbfffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfdfffffafcfffffcfbfdfffffefffffffffbfffffaf6ff57493eff54463cff5f4b3bff685545ff705946ff6c5542ff6f5744ff
+755d4aff735a47ff69503dff6e5543ff6e5543ff6d5543ff6c5442ff6c5341ff6b5240ff6a5240ff6a513fff644c3aff664d3bff684f3dff6a5240ff6d5543ff705745ff725a48ff735b49ff785d4cff795e4dff7a604eff7b6150ff7c6452ff7d6553ff7d6755ff7e6855ff7e6a57ff786451ff6e5c49ff665441ff604f3cff5f4f3cff60513dff62533fff6b5546ff6d5647ff6f594aff735d4eff776152ff7b6556ff7e6859
+ff806a5aff836d5dff897364ff8d7768ff8e7869ff927c6dff9d8778ffa69080ffaa9485ffbfb2a6ffa79a8dff6b6157ff4b4037ff3a332eff29221cffbab7b6fff9f6f4fffffffffffdfcfcfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff685b4bff625646ff5d5141ff625545ff756858ff8a7e6eff948777ff938677ff948777ff948777ff948777ff948777ff948777ff948777ff948777ff948777ff9286
+77ff918677ff918576ff908475ff8f8273ff8c8070ff8b7e6eff8a7d6dff8a7d6cff8a7c6bff8a7c6aff897b69ff897a68ff887a67ff887967ff877966ff827667ff827667ff817566ff807466ff7f7465ff7f7364ff7e7264ff7e7263ff7c7061ff7c7061ff7b6f60ff7a6e60ff796e5fff796d5eff786c5eff786c5dff75685dff75685cff74675cff73665bff72665aff726559ff716459ff716458ff6f6257ff6f6256ff6e
+6156ff6d6055ff6c6054ff6c5f53ff6b5e53ff6b5e52ff695c51ff695c50ff685b50ff675a4fff665a4eff66594dff65584dff65584cff65584dff65584cff64574cff63564bff62564aff625549ff615449ff615448ff5e5843ff5e5742ff5d5643ff5c5542ff5c5443ff5b5342ff5a5144ff5a5143ff5c5247ff52483eff4f443dff493e37ff473b37ff4a3e3aff544744ffe4d7d4fffffffdfffffffdfffdfffffffdffffff
+fdfffffffdfffffffefffffffefffffffffffefffffefcfffffffaffcbc5bfff5f544aff574c42ff605346ff625448ff6d6052ff827567ff938678ff948779ff918376ff918476ff918376ff8e8073ff908375ff8e8173ff8c7e71ff8a7d6fff8a7c6fff887b6dff86796bff847669ff837366ff87786aff7d7164ff706457ff474035ff494237ff514f47fff4f2eafffffffbfffffffbfffffffefffffffeffffffffffffffff
+fffffefffffffefffffffefffff6f5f8fffbfbfcfffffefffffefefeffefefefff9d9e9aff262723ff454740ff454840ff51554aff4b4e44ff54584bff7a7f72ff5a5f50ff7e8374ff827766ff857968ff877968ff857767ff8a7869ff8e7c6dff917b6eff8d786aff907a6dff8f7a6dff8e7a6dff8e796dff8b7a6eff8b796dff897a6eff887a6dff8b7b6dff776759ff695546ff614e3fff61493aff624a3bff72594bff856c
+5efffff0e5fffffff5fffffff8fffffdf5fffffffcfff7f7f3fff9fffffff7fefdfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfefcfffdfffdfffffff9ffc8c3beff392c23ff5f5249ff665449ff69574bff7f7060ff857666ff877868ff847566ff827363ff827364ff807162ff7d6e5eff7c6d5eff7b6c5dff7a6b5bff786959ff766757ff746555ff736454ff726353ff6d5f51ff6b
+5e50ff5d5144ff54473aff4f443aff4a3f35ff494039ff585048ffcec8c4fffffdf9fffffffefffffcfbfffffffffffefefffffffefffffdfcfffffffffdfffafbf9ff757371ff312f2dff5d5756ff625c5bff5e5453ff635959ff685d5cff867b7bff948a89ff928887ff948c8bff968f8eff918b8aff908a89ff8e8584ff8a8180ff847b7bff7f7675ff797170ff746b6aff6e6665ff6a6261ff675e5dff605757ff5d5453ff
+5b5352ff534b4aff494040ff4a4140ff524a49ff7b7b7bfffcfcfcfffbfbfbfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf5fcfffffcfffffffbfffffffcfffff7f7f9fffffeffffe0e4e3ff3e4242ff202728ff4c5253ff3d464aff3f484cff3d474fff434c55ff3f4954ff6d7782ff837d7eff8a8485ff938a8cff92898bff918586
+ff8e8283ff938484ff958686ff948584ff938583ff918581ff8f8380ff8b837eff8a817dff87817cff86807bff897c7cff8c7e7eff847676ff6e6060ff6a5c5cff726464ffa39797fffffefdfffffaf8fffffffdfffffffdfff5f5f3fffafffdfff4faf7fff2fdf9fff5fffcfffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffcfffffff3f7f7fffbfffefffbfffffff8fdfcfffbfffffffaff
+fffffafffffffffffcfff2f0ecff6f6a66ff554f4cff5c504eff5a4e4cff6c5c5aff6b5b59ff61504fff72615fff7f706eff847573ff7f7572ff7f7572ff7b7572ff7a7470ff7c706fff7b706eff796e6dff776c6bff736a6aff716868ff6e6768ff6d6667ff6b6667ff6b6667ff646264ff5f5c5eff5c5b5eff59585bff4c4b4eff3d3c3fff2d3332ff282e2dff393f3eff858a89fffafefefff8fcfcfff7faf9fffdfffffffd
+fffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfffffffdfdfdfffffffffffffffffffffffffffffefdff7c7978ff403b39ff423c3bff413a37ff58514eff655d59ff5f5652ff665c58ff615854ff766e6dff948b8aff948b8aff968e8dff978f8eff8f8686ff918988ff8c8383ff867d7cff817878ff7b7271ff756c6bff706766ff6b6261ff655d5cff625958ff5f5554ff615656ff
+5a5150ff564c4bff504847ff443d3cff433e3cff56504fffe1dedcfffffffdfffffffdfffefffcfffffffdfffcfdfbfffdfffdfffdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffcfcfcfffffffdfffffffdfffffffaffddd5d0ff625850ff5e544cff635445
+ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928373ff978878ff938576ff968879ff8c8074ff615548ff40362dff4c4239ff524a44ff2f2721ff2d2825ff312c29ffece9e9fffffefffffffffffffefcfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffbfffafffdfffcfff9fbf6fffffffcfffffef8fffefcf6ff544d46ff4c453dff51443cff51443cff56443bff56443bff59443aff59443aff5b4439ff5b4439ff5e443cff5e443cff5e443cff5e443cff5e443cff5e443cff5e443cff5e443cff5c423aff5c423aff5c423aff5c423aff5c423aff5c423aff5c423aff5c423aff5d4238ff5d4339ff5e433aff5e433aff5c
+4139ff583e36ff553b34ff533931ff4e352eff503730ff523933ff543c36ff553d37ff553d37ff543c36ff533b35ff524037ff524037ff524037ff524037ff524037ff524037ff524037ff524037ff534138ff534138ff534138ff534138ff534138ff534138ff534138ff534138ff594939ff8d7d6dffa6998cff695c4fff30261eff322920ffcbc6c3fffbf6f3fffffffffffffcfdfffffffffffffefffffefbfcffffffffff
+fffdfeff8b8889ff5b4c3dff605142ff635444ff665748ff766757ff8b7c6dff968777ff948576ff968777ff968777ff968777ff968777ff968777ff968777ff968777ff968777ff908673ff9a907cff8f8371ff897d6aff978977ff958775ff8c7b6aff928170ff958171ff907c6bff8c7565ff8b7364ff927869ff967c6dff94796bff8e7365ff8c7963ff8b7862ff8a7761ff8a7660ff89755fff89765fff89765fff897660
+ff85725bff85715bff84715aff837059ff826f59ff816e57ff816d57ff806d56ff816b55ff806b55ff806a54ff7f6953ff7e6852ff7d6751ff7c6751ff7c6650ff7a644eff79644eff79634dff79634dff78634dff79634dff79644eff7a644eff735d47ff735d47ff735d47ff735d47ff735d47ff735d47ff735d47ff735d47ff725c46ff715c46ff705b45ff6f5a44ff6e5842ff6d5741ff6c5640ff6b5640ff6b563dff6b56
+3dff6a563eff6a563eff68553fff68553fff655542ff655542ff655646ff554636ff4e4134ff4d4134ff493e33ff483d32ff52493fffeae1d7fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffdfbfafffffffaffcfc9c3ff61564cff54493fff5d5043ff64574aff706152ff867767ff978878ff98897aff958676ff968777ff958677ff928374ff918273ff908172ff8f8071ff8e
+7f6fff8c7d6eff8b7c6cff897a6bff897a6aff847664ff867866ff7d7163ff736859ff4a4339ff484138ff514d49fff7f3effffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffcfffff7eff7fffffdfffffffdfffff8f9faffa5a7a8ff3d423eff3a3f3bff4e534bff454b42ff4a4b40ff595a4fff6f6b5dff777365ff7d7666ff7f7869ff8a7667ff8a7667ff887768ff897869ff877a6aff
+887b6bff867c6cff877c6cff867a6aff877b6bff8d7c6dff907f70ff937c6eff90796bff94796cff977c6fff93705fff775443ff614637ff684d3fff56483dff5f5147ff65625cffd3d0cbfffcfffefffcfffefffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffbfefbfffcfefcfffffffaffc2bdb7ff44372eff5b4e45ff645347
+ff68564aff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e
+5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff777777fff8f8f8fffffffffffffffffffefefefffffffffffbfbfbfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefdf6fffbfaf3ffff
+fffcfff7f9f5fffafefdfffafefdff83888cff21262aff3f444aff3f444aff42464cff44484eff424348ff48494eff646468ff838387ff8e8783ff8e8783ff8e8784ff8e8784ff908784ff908784ff918784ff918784ff8c817fff918683ff938784ff8f8381ff8d807eff8d807eff8c7f7cff887b79ff8d777bff957f83ff6b595cff6e5c5fff6e6365ff726869ffeae6e6fffefafbfffffffffffffffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f8f7fffaffffffb3b3b3ff4e4e4eff4f4749ff5c5556ff5c4d4eff6b5c5dff685656ff675555ff6f5e5dff806e6dff887a77ff867875ff807470ff7e726fff7c726fff7a706dff776e6bff776d6aff766d6aff756c69
+ff716a66ff6f6864ff6b6561ff6a6460ff68635fff66615dff625e5aff5c5753ff534f4bff4d4a46ff273031ff313a3bff272e2fff444b4cffe1e4e6fff2f5f7fffefefffffefefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff6257
+57ff766e6bff948c89ff948c89ff968e8bff978f8cff8f8784ff918986ff8c8481ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffcfcfcfffffffdfffffffdfffffffaffded6d1ff625851ff5d534cff635445ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928373ff978878ff938476ff958778ff8c8073ff615549ff40362dff4a4037ff
+504842ff2e2721ff2a2522ff2d2825ffe7e3e4fffffdfefffffffffffffdfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefafffdfffcfffbfdf8fffffffcfffffffafffaf8f2ff5f5851ff352e27ff4c4038ff4c4038ff514036ff514036ff554035ff554035ff573f35ff573f35ff563c34ff563c34
+ff563c34ff563c34ff563c34ff563c34ff563c34ff563c34ff543a32ff543a32ff543a32ff543a32ff543a32ff543a32ff543a32ff543a32ff543a30ff553a31ff563b32ff563c32ff543a32ff52382fff4f352dff4d342cff482e28ff4a312aff4c332dff4f3730ff503833ff513933ff503933ff503833ff4b3930ff4b3930ff4b3930ff4b3930ff4b3930ff4b3930ff4b3930ff4b3930ff4a3930ff4a3930ff4a3930ff4a39
+30ff4a3930ff4a3930ff4a3930ff4a3930ff4a3b2aff483828ff65574aff6f6255ff544b43ff322920ffb5b0adfffffefbfffffffffffffcfdfffffffffffffefffffefbfbfffffffffffffdfeff8c8889ff5b4c3dff605142ff635444ff665748ff766757ff8b7c6dff968777ff948576ff968778ff968778ff968778ff968778ff968778ff968778ff968778ff968778ff8d8370ff958b78ff928674ff8e8270ff928472ff88
+7a68ff8f7e6cffaa9988ffa79282ffaa9686ffae9788ffab9384ffa78d7fffa48b7cffa68b7dffa88d7effa6937cffa5927bffa4917bffa3907affa39079ffa39079ffa39079ffa3907affa7937dffa6937dffa6927cffa5927bffa4917affa39079ffa28f79ffa28f78ffa5907affa58f79ffa48f79ffa48e78ffa38d77ffa28c76ffa18c76ffa18b75ffa28d77ffa28c76ffa18c76ffa18b75ffa08b75ffa18b75ffa18b75ff
+a18b75ffa28c76ffa28c76ffa28c76ffa28c76ffa28c76ffa28c76ffa28c76ffa28c76ffa38d77ffa38d77ffa38d77ffa28d77ffa28c76ffa28c76ffa28c76ffa18c76ffa28d74ffa28d74ffa18c75ffa18c75ff9f8c76ff9f8c76ff9c8b78ff9c8b78ff988a7aff827464ff665a4cff4a3e31ff3f3529ff473c31ff52483effdfd5cbfffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffe
+fffefcfafffffffaffcfc8c3ff60554cff54493fff5e5044ff64574aff706152ff867767ff978878ff98897aff958676ff968777ff968777ff928374ff918273ff918272ff908171ff8e7f70ff8c7d6eff8b7c6cff8a7b6bff897a6bff847664ff867866ff7d7163ff736859ff4a4239ff484138ff514e49fff7f4f0fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffbfffffef6fefffffc
+fffffffdffffcdcecfff555657ff3f4440ff393e3bff494e46ff484d45ff535449ff626458ff747162ff787466ff7c7566ff7e7768ff8a7667ff8b7668ff897768ff897869ff877a6aff887b6bff867c6bff877c6cff887c6cff887c6cff8c7b6cff8c7b6cff927b6dff927b6dff94796bff907568ff856251ff6e4b3aff624839ff674c3dff6d5e54ff5a4b41ffb8b5b0fff4f1ebfffcfffefffcfffefffbfffffffbfffffffd
+fffffffdfffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfffcfffcfffdfffffffaffbfbbb5ff42362cff5b4f45ff665448ff69574bff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff
+494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48
+ff777777fff8f8f8fffffffffffefefefffefefefffffffffffbfbfbfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffff8fffcfdf9fffffffcfff8fcfbffcfd2d2ff505559ff21262aff41464cff40464cff42464cff42464cff46484dff535459ff6d6d70ff848487ff8e8784ff8e8784ff8e8784ff8f8784ff8f8784ff908784ff918784ff918784ff8c817eff8f85
+82ff918482ff8d817eff8c7e7cff8d807dff8c7e7cff887b78ff917b7fff887276ff746265ff736164ff6b6162ffaba0a2fffbf7f7fffffefffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffaffffffe3e3e3ff76
+7676ff50494aff544c4dff655758ff655758ff685657ff665454ff6c5b5aff7b6a69ff857774ff857774ff807470ff7e726fff7d726fff7a706dff786e6bff776d6aff766d6aff756c69ff726a67ff706865ff6d6763ff6c6562ff696461ff68635fff64605cff5e5a56ff56524eff504d49ff353e3fff1f2829ff293031ff353c3dff828688fffbfffffff3f4f6fffefefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff625757ff766f6bff948c89ff948c89ff968e8bff978f8cff8f8784ff918986ff8c8481ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3d
+ff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffdfdfdfffffffdfffffefcfffffffaffe0d8d3ff645a52ff5d534bff635445ff645546ff635444ff6c5d4eff7f7060ff8273
+64ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff938474ff978878ff928475ff948577ff8c7f73ff625649ff3f352cff463c33ff4b443eff2e2721ff27221fff2a2522ffdfdbdcfffffdfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfbfffffffefffafbf8fffafbf8fffffefbfffffffcffb7b1acff89847fff413731ff413731ff443730ff443730ff46372fff46372fff48372fff48372fff433831ff433831ff433831ff433831ff433831ff433831ff433831ff433831ff443932ff443932ff443932ff443932ff443932ff443932ff443932ff443932ff44372fff453830ff453931ff463a32ff453932ff443830ff42362fff40352eff41362fff
+433831ff453a34ff483e37ff4a403aff4b413bff4b413bff4b413bff4d413cff4d413cff4d413cff4d413cff4d413cff4d413cff4d413cff4d413cff4c403bff4c403bff4c403bff4c403bff4c403bff4c403bff4c403bff4c403bff5f5448ff473b30ff433931ff473d35ff4d4742ff56504cffd3cfd0fffffefffffffffffffcfcfdfffffffffffffefefffefbfcfffffefffffffefdff8d8988ff5b4c3cff605141ff625344
+ff665748ff766757ff8b7c6dff968778ff958676ff968778ff968778ff968778ff968778ff968778ff968778ff968778ff968778ff928774ff928774ff908472ff948775ff938574ff837563ff847463ff9c8c7bffc0ad9effc6b2a3ffcdb7a9ffcfbaabffcfb7a9ffcdb5a8ffcfb6a9ffd3baadffcfb6a5ffceb5a4ffcdb5a3ffccb4a2ffccb3a2ffccb4a2ffcdb4a3ffcdb4a3ffcfb6a5ffceb6a4ffceb5a4ffcdb4a3ffcdb4
+a3ffccb3a2ffcbb3a1ffcbb2a1ffcfb4a3ffcfb4a3ffceb3a2ffceb2a2ffcdb2a1ffccb1a0ffccb1a0ffcbb09fffd3b8a7ffd3b8a7ffd3b7a7ffd2b7a6ffd1b6a5ffd1b6a5ffd1b5a5ffd0b5a4ffd2b6a6ffd2b6a6ffd2b6a6ffd2b6a6ffd2b6a6ffd2b6a6ffd2b6a6ffd2b6a6ffcfb4a3ffd0b5a4ffd0b5a4ffd0b5a4ffd1b6a5ffd2b6a6ffd2b7a6ffd2b7a6ffd1b6a3ffd1b6a3ffd0b6a3ffd0b6a3ffceb6a5ffceb6a5ffcb
+b5a7ffcbb5a7ffccb8adffc4b0a5ffa7958cff746158ff52413aff52423bff5d4d47ffe7d7d1fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffefcfbfffffffaffcdc7c1ff5f544aff54493fff5e5144ff64564aff706151ff857667ff968778ff98897aff958676ff968778ff968777ff938474ff928373ff918273ff908172ff8f8070ff8d7e6eff8b7c6dff8a7b6cff8a7b6bff
+857765ff877967ff7d7163ff736859ff4a4239ff494138ff514e4afff8f5f0fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefff8f5fafffffdfffffffdfffff7f5f9ff747676ff323434ff3c403cff484d48ff464940ff4f5249ff636156ff727064ff7d7668ff7c7467ff7f7465ff817768ff8a7768ff8a7768ff897869ff8a7969ff877a6aff887b6bff877c6bff877c6cff8a7d6eff8b7e6e
+ff8c7a6bff887768ff907a6cff947d6fff8f7568ff82685aff6c4c3cff6c4c3cff594133ff6c5346ff5c4f46ff94877dfff0ede8fffffffbfffdfffffffdfffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaffbcb7b1ff3f3329ff5b4f45ff67564aff6a584dff837263ff847364ff857364ff8574
+64ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97
+908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff777777fff7f7f7fffffffffffefefefffefefefffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffff9fff7f8f4fffffffdfffafdfeff898d8dff262b2fff
+2d3236ff44484fff43484eff41444aff41444aff4e4f53ff64656aff7b7a7cff858487ff8f8784ff8f8784ff8f8784ff8f8784ff8f8784ff8f8784ff908784ff908784ff8c817eff8e8381ff8f8280ff8b7e7cff8a7d7bff8c7f7dff8c7e7cff887b78ff8d797cff776266ff736365ff6f5f61ff73696bffe6dcdefffffefffffffefefffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffff4f9f9ffffffffffb6b6b6ff4f494aff4a4344ff615555ff5d5050ff685858ff655454ff685756ff746463ff80716fff847673ff817471ff7f726fff7e7370ff7c716eff796e6cff786e6bff776e6bff766d6aff736b67ff716965ff6f6865ff6e6764ff6b66
+62ff6a6461ff67625eff615d59ff5a5652ff55514dff454d4eff222a2bff303637ff2a3032ff393d3effedf1f2fffdfefffff8fafcfffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff625757ff776f6cff948c89ff948c89ff978f8bff98
+908cff8f8884ff928a86ff8c8581ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffeff
+fefffefffcfffffffcfffffffcfffffffcfffffffffffffffdfdfdfffffffdfffffdfbfffffffaffe2dad5ff655c54ff5c524bff635445ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff938474ff978878ff918374ff928475ff8c8073ff64584cff3f352cff433930ff453e38ff302822ff27221fff2b2623ffd9d6d6
+fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbf9fffffffefffdfefbfffcfdfafffffdf9fffffffcfffffffbfff7f1ecfff5ece6fff5ece6fff8ece5fff8ece5fffbece4fffbece4fffcece3fffcece3fff9eee6fff9eee6fff9eee6fff9eee6fff9eee6fff9eee6fff9ee
+e6fff9eee6fffdf2ebfffdf2ebfffdf2ebfffdf2ebfffdf2ebfffdf2ebfffdf2ebfffdf2ebfffcf0e8fffdf1e9fffef2eafffff3ebfffef3ebfffef2eafffdf1eafffcf0e9fffff4edfffff5eefffff7f0fffff9f2fffffaf4fffffbf5fffffbf5fffffbf5fffffdf8fffffdf8fffffdf8fffffdf8fffffdf8fffffdf8fffffdf8fffffdf8fffffcf7fffffcf7fffffcf7fffffcf7fffffcf7fffffcf7fffffcf7fffffcf7ffff
+f7ebfffffff6fffffff8fffffff7fffffcf7fff5efeafffffeffffede9eafffffffffffcfcfdfffffffffffffefefffefbfcfffffefffffffffdff8e8a88ff5a4b3cff5f5041ff625344ff665747ff766758ff8c7d6dff978878ff958677ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff9a8f7cff918673ff8c7f6dff938774ff9a8c7bff8c7d6cff746453ff655444ff736050ff6e5b4bff
+6d5749ff705a4cff745c4fff71594cff6d5447ff6a5144ff755c4bff745c4aff745b4aff735a49ff735a49ff745b4aff745b4aff755c4bff715847ff715847ff715847ff705746ff6f5745ff6f5645ff6f5645ff6e5644ff715645ff715545ff705544ff705544ff6f5443ff6f5443ff6e5342ff6e5342ff694e3dff694e3dff694d3dff684d3cff684c3cff664b3aff664b3aff654a39ff644938ff644938ff644938ff644938
+ff644938ff644938ff644938ff644938ff604534ff614635ff614635ff614635ff624636ff624736ff624736ff624736ff5f4431ff5f4431ff5e4431ff5e4431ff5c4433ff5c4433ff594335ff594335ff4e3a2eff554135ff55433aff46342bff413029ff504039ff60504affedddd7fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffdfcfffffffaffcbc5c0ff5d5249ff5449
+3fff5f5245ff635649ff6f6051ff857666ff968778ff98897aff958676ff968778ff968778ff938475ff938474ff928374ff918272ff8f8071ff8e7f6fff8c7d6eff8b7c6cff8a7b6cff867866ff877967ff7d7163ff736759ff494239ff494138ff524f4afff9f5f1fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffbf8fdfffffdfffffffeffff9c9b9fff373939ff3d3f3fff414541ff4e
+524eff494c43ff585a52ff6f6e62ff7a796dff80786bff7c7567ff807667ff847a6bff8b7869ff8b7869ff8a7969ff8a796aff887a6aff887b6bff877b6bff877c6cff897c6cff8b7e6eff8b7a6bff877667ff907a6bff927c6eff876d5fff72584aff674837ff6b4b3bff674e41ff644c3eff6c5e55ffeadcd3fffefbf6fffffffbfffdfffffffdfffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffffdff
+fffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffefffefffffff9ffb8b3aeff3d3027ff5c5046ff69574cff6b594dff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffb
+fffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff767676fff7f7f7fffffffffffefefefffefe
+fefffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff6f6f0fffffffdfffffffdffdfe2e3ff454849ff1f2328ff3c4145ff44494fff43484eff404349ff42454bff58595dff747579ff858487ff858487ff8f8885ff8f8884ff8f8884ff8f8784ff8f8784ff8f8783ff908683ff908683ff8d8280ff8e8481ff8e827fff8a7e7bff8b7d7bff8d807dff8c
+7f7cff887a78ff867174ff756063ff6b5b5eff6e5d60ff9e9495fffff9fbfffffefffffefafbfffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fbfbfffafffefffffffffff0f0f0ff6d6667ff494243ff574a4aff5c4f50ff
+695959ff655555ff665655ff6f5f5eff7b6c6aff827471ff827672ff817471ff7e7371ff7c716fff796f6cff796e6bff786e6bff776d6aff746b68ff716966ff6f6865ff6e6764ff6c6662ff6a6561ff68635fff635f5bff5d5955ff585450ff464d4eff373f40ff303637ff252b2cff313537ff929698fffdfffffff2f3f5fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffcfefcfffdfffd
+fffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff625757ff776f6cff948d89ff958d89ff978f8cff98908dff908885ff928a87ff8d8582ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefe
+fefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffefefefffffffdfffffcfafffffffaffe5ddd8ff685e56ff5b514aff635445ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c
+7d6eff8f8070ff918272ff928374ff938475ff938475ff938474ff988979ff918274ff918374ff8d8175ff685c50ff41372eff41372dff403933ff332b25ff292421ff2e2926ffd4d1d2fffffefffffffffffffffefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcffffffffffffffffff
+fffffffff5f3f3fffffffefffefbfafffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffc
+fffefffcfffefffcfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffefffffffefffffefefffffafafefffffefffffefdfffffffcfbfffffffefffffffcff908b88ff5a4b3bff5f5040ff625343ff665747ff766758ff8c7d6eff978879ff9687
+77ff978879ff978879ff978879ff978879ff978879ff978879ff978879ff978879ff988c7aff948775ff8f8270ff8f8270ff978978ff948675ff716152ff423223ff534133ff4d3b2dff4c392dff503d31ff533f34ff503c31ff513c32ff554036ff553c31ff543b31ff543b30ff533a30ff533a30ff543b31ff553c31ff553c32ff533a2fff533a2fff52392fff52392fff52392eff52392eff51382eff51382eff53382eff53
+382eff53372dff53372dff52372dff52372dff52362cff52362cff5c4137ff5d4137ff5d4238ff5e4238ff5d4238ff5c4036ff5b3f35ff5a3e34ff5c4036ff5c4036ff5c4036ff5c4036ff5c4036ff5c4036ff5c4036ff5c4036ff5d4237ff5d4137ff5d4137ff5c4137ff5c4036ff5b4036ff5b4036ff5b4035ff533f31ff533f31ff533e32ff533e32ff533e33ff533e33ff533d35ff533d35ff604943ff553e38ff513a36ff
+4f3835ff553d3cff5a4241ff5c4343ffe1c8c8fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffefdfffffefcfffffffaffc9c3bdff5b5046ff544940ff605246ff625548ff6f6050ff847566ff968777ff98897aff958677ff978878ff978878ff948575ff948575ff938474ff928373ff908172ff8f8070ff8d7e6eff8c7d6dff8b7c6dff877967ff887a68ff7d7263ff736759ff494239
+ff494238ff534f4bfffaf7f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffcfffffff3f6f7ffd1d5d4ff383c3bff353835ff3a3e3bff4e5049ff454741ff57564dff67655cff7c7569ff817a6eff837669ff817467ff877869ff8c7c6dff8b796aff8b796aff8a7a6aff8a7a6aff887b6bff897b6bff887b6bff887b6bff877969ff8a7c6cff8d7b6cff8a7869ff8e786aff8a7466ff7961
+53ff644c3eff6c5243ff614738ff6e5a4eff645144ffc4b9b0fffffff7fffffffcfffcfaf6fffdfffffffdfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffefffefffffef8ffb4b0aaff3b2e25ff5d5147ff6b594dff6b594dff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e
+6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff
+867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff767676fff7f7f7fffffffffffefefefffefefefffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbf6fff5f5f0fffffffefffdfdfbff939597ff222527ff24282dff44484dff43474dff43474dff44454aff4a4c51
+ff656467ff818083ff8c898bff868385ff908985ff8f8885ff8f8885ff8f8784ff8f8784ff8f8683ff8f8683ff8f8582ff8f8481ff8f8482ff8e827fff8a7e7bff8c7f7cff8e807eff8b7e7cff857875ff776568ff7a686bff645658ff7b6d6fffded6d7fffffbfdfffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6faf9fffbfffffff8f8f8ffffffffffb5b0b1ff4e494aff524847ff594f4eff655757ff645655ff655755ff6a5c5aff756764ff80716fff847773ff847774ff807472ff7e726fff7b706dff7a6f6cff796f6cff786e6bff756c69ff736a67ff706865ff6e6763ff6c6562ff6b6461ff696360ff65605cff605b57ff5c
+5753ff45494bff45494aff2d3133ff262a2bff35393bff45484affdcdee0fffcfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff625757ff78706cff958d8aff958d8aff97908cff98918dff908885ff928b87ff8d8582ff877f7bff
+827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcffff
+fffffffffffffffffffffffdfffffbf9fffffffaffe7e0daff695f58ff5b5149ff635445ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff938474ff988979ff908273ff918374ff8f8377ff6d6154ff443a31ff40362dff3e3731ff362f29ff292421ff2d2825ffcdc9cafffffefffffffefffffffefeffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fff5f5f5fffffffffffffffffff7f5f5fffffcfbfff8f5f4fffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffbfffafffbfffafffbfffafffb
+fffafffbfffafffbfffafffbfffafffbfffafffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffefffcfffcfffafffcfffafffcfff9fffbfef8fffafdf8fffafdf7fff9fcf7fff9fcf7fffffbfafffffbfafffffbfafffffbfafffffbfafffffbfafffffbfafffffbfafffffcfbfffffcfbfffffcfbfffffcfbfffffcfbfffffcfbfffffcfbfffffcfbfffffaf5fffdf7f3fffcf8f6fffffaf8ffffffffff
+fbf9f9fff9f7fbfff8f7fafffefefffffafafdfffffefffffefdfffffffcfbfffffffefffffffcff908b88ff594a3bff5e4f40ff615243ff665747ff766758ff8c7d6eff988979ff978878ff988979ff988979ff988979ff988979ff988979ff988979ff988979ff988979ff908371ff948775ff968977ff8d806fff8c7e6dff938474ff7b6b5cff4a3a2bff564537ff544335ff564337ff574437ff503c31ff493429ff4e392f
+ff5a453aff5b4238ff5b4238ff5b4237ff5a4137ff5b4237ff5c4338ff5c4339ff5d443aff5b4238ff5b4237ff5b4237ff5b4237ff5b4237ff5b4237ff5b4237ff5b4237ff5e4238ff5e4238ff5e4238ff5e4238ff5e4238ff5d4238ff5d4238ff5d4238ff573c32ff583d33ff593e34ff5b3f35ff5b3f35ff5a3e34ff583d33ff573c32ff593e34ff593e34ff593e34ff593e34ff593e34ff593e34ff593e34ff593e34ff5a3e
+34ff593e34ff593e33ff593d33ff583c32ff573c32ff573c32ff573b31ff523e31ff523e31ff523e32ff523e32ff523d33ff523d33ff523c34ff523c34ff513a34ff4e3832ff533c39ff513a36ff4e3635ff533b3aff634b4bfffbe2e2fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffdfcfffffefdfffffffaffc8c1bcff594f45ff544a40ff605346ff625448ff6e5f50ff847565ff96
+8777ff988979ff958677ff978878ff978879ff948576ff948576ff948575ff928374ff918272ff8f8071ff8e7f6fff8d7e6eff8c7d6dff887a68ff897b69ff7d7263ff726759ff494238ff494238ff53504cfffbf8f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffcffffffe3e6e7ff666969ff373a3aff393d3aff414441ff494b44ff4a4c45ff66655bff717066ff7e786cff7f786cff
+817567ff837769ff8a7a6bff8c7c6eff8c7a6bff8c7a6bff8a7a6bff8a7a6bff897b6bff897b6bff887b6bff887b6bff877869ff88796aff8c7a6bff8c7a6bff897365ff7b6657ff6c5446ff604739ff674e3eff6b5142ff5c483cffa99689fffffbf2fffffff8fffffffcfffffcf8fffdfffffffdfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbffff
+fffafffffffafffffffefffefffefffefffffdf7ffb2aea8ff3a2d24ff5f5249ff6c5a4eff69584cff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcff
+fffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff757575fff6f6f6fffffffffffefefefffffffffffffffffffdfdfdffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafaf5fffffffcfffffffeffdfe0deff424547ff292c2eff2c3035ff474b50ff42464cff42464cff494b50ff57595eff727174ff868588ff8c8a8bff878486ff908986ff908985ff908885ff8f8884ff8f8783ff8e8683ff8f8582ff8f8582ff8e8481ff8f8481ff8d817fff8a7e7cff8c7f7dff8d807dff887a78ff807270ff685659ff79676aff67595bff
+9f9093fffffefffffcf4f5fffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefefffbfffffffafafafff5f5f5fffaf5f6ff666162ff544a4aff504646ff605252ff635555ff665755ff685957ff6e605e
+ff7a6c69ff827572ff867875ff817572ff7e7370ff7c716eff7b706dff7a706dff796f6cff766d6aff746b68ff706865ff6f6764ff6c6662ff6c6561ff6a6461ff67625eff635e5aff605b57ff505556ff424748ff363a3bff2e3234ff292d2fff35393bff8f9294fffcfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffe
+fcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff625757ff78706dff958d8aff958e8aff98908dff99918eff918986ff938b88ff8e8683ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffffdfffefaf8fffffffaffe9e1dcff6b6159ff5a5049ff635445ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff
+938475ff928373ff988979ff908173ff918274ff928579ff716559ff483e35ff41372eff3f3832ff3a332dff27221fff282320ffc1bebefffffdfefffffdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffdfbfdfff5f5f7fffbfafcfffcfbfdfffffefffffffffffffffffffffdfdfd
+fffdfdfdfffcfefdfffcfefdfffbfefdfffbfefdfffbfefdfffbfefdfff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff7fefdfff7fefdfff7fefdfff7fefdfff7fefdfff7fefdfff7fefdfff7fefdfff9fffffff9fffffff9fffffff9fffefff9fffefff9fffefffafffffffafffffffbfffefffbfffefffcfffdfffbfffdfffcfffcfffcfffcfffcfffcfffcfffcfffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfbfcfffffffffffffefffff9f8fbfff8f9fefffdfefffffbfdfffffbfdfffffcfefffff8f9fefffffefffffefdfffffffcfbfffffffdfffffffbff928c88ff594a3aff5e4f3fff615243ff665747ff766758ff8d7e6eff988979ff978878ff988979ff988979ff988979ff988979ff98
+8979ff988979ff988979ff988979ff938573ff918371ff968877ff928473ff8b7c6dff8f8071ff7c6d60ff504134ff58493dff4c3d32ff48382fff4d3e35ff4f3f38ff483831ff44342dff473730ff392b26ff392b26ff392b25ff392b25ff392b26ff3a2c27ff3b2d28ff3c2e29ff3a2c27ff3a2c27ff3a2c27ff3b2d27ff3a2c27ff3b2d27ff3a2c27ff3b2d27ff3d2c27ff3d2c28ff3d2c27ff3d2d28ff3d2c27ff3d2d28ff
+3d2c28ff3d2d28ff3f2e29ff40302bff42322dff44342fff453530ff45342fff43332eff42322dff42322dff42322dff42322dff42322dff42322dff42322dff42322dff42322dff3f2f2aff3f2f2aff3f2f2aff3f2f2aff40302bff40302bff40302bff40302bff41322cff41322cff41322cff41322cff3f322dff3f322dff3e312eff3e312eff322725ff3d312fff453b3aff3b3130ff332a2aff382f2fff3f3637ffc8bfc0
+fffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffdfcfffffffefffffffaffc6c0baff584d43ff554a40ff615347ff615447ff6e5f4fff837465ff958677ff988979ff958677ff978879ff988979ff958676ff958676ff948576ff938475ff928373ff908171ff8e7f70ff8d7e6fff8d7e6eff897b69ff897b69ff7d7263ff726758ff494138ff494238ff54514cfffcf8f4ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffefffffffeffe3ebe7ff9ea6a2ff242b26ff4b514cff3e423bff4d504aff4a4941ff626159ff777166ff7c766cff84786bff817569ff857467ff8a796bff8e7a6cff8c786aff8a7b6cff8a7b6bff8a7b6bff8a7b6bff8a7b6bff8a7b6bff8a7b6bff8a7b6bff8b7b6bff897868ff8b786aff8c796aff806b5cff6a5547ff604a3cff614b3dff5b493bff6e5c4fff77695efff1
+e3d8fffffffafffffff9fff8f6f3fffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffefffffffefffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffdfffdfffefffefffffcf7ffb2ada7ff3a2e24ff60544aff6d5b4fff68564aff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff
+766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663
+ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff757575fff6f6f6fffffffffffefefefffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefbfffffffdfff4f4f4ff979797ff212326ff343639ff373a40ff46494fff43454bff44464cff535256ff6a686dff817d80ff8a8789ff8d8889ff8c8788ff9189
+86ff908986ff908885ff8f8884ff8f8683ff8e8683ff8f8582ff8e8582ff8d827fff8d827fff8c807dff8a7d7bff8b7e7bff8a7d7bff837573ff796b69ff645557ff706163ff7b6f71ffd1c5c7fffffefffffdf7f8fffefefefffefefefffdfffffffdfffffffcfffffffcfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffcfffffffbfefefffbfbfbfff4f4f4ffffffffffa5a3a3ff564f4eff4d4746ff554b4aff5e5352ff645856ff635755ff675a57ff746663ff80716fff867875ff827573ff807371ff7e716fff7d706eff7c706eff7b6f6dff776d6aff756b68ff736a67ff716865ff6f6764ff6e6663ff6d6663ff6b6561ff68615eff655f5bff5f5e61ff444346ff48494bff3a3c3eff
+242729ff363a3cff53585affd9dedffffbfffffffbfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff595150ff665d5cff605655ff675c5bff625757ff78706dff968e8aff968e8bff98908dff99918eff918986ff938b88ff8e8683ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460
+ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffffdfffdfaf8ffffff
+faffeae2ddff6c625aff5a5048ff635445ff645546ff635444ff6c5d4eff7f7060ff827364ff817262ff887969ff897a6aff8a7b6cff8c7d6eff8f8070ff918272ff928374ff938475ff938475ff928373ff988879ff908173ff908273ff93877aff74675bff4a4037ff42382eff413a34ff3c352fff241f1cff231e1bffb8b5b6fffdfafbfffefcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f3f6fffffefffffffefffffffefffff5f5f6fffffefffff2f2f3fffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffefff9fffeff
+f9fffffff9fffffff9fffffff9fffffffafffffffafffffffbfffffffbfffffffbfffdfffafffdfffbfffcfffbfffcfffcfffcfffdfffdfffdfffdfffdfffdfffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffbfdfffffbfdfffffbfdfffffbfdfffffbfdfffffbfdfffffbfdfffffbfdfffffbf9fafffcfafafffcfbfefffefdfffffdfefffffafaffffeff1f7fffbfdfffffcfdfffff8f9fe
+fffffefffffefdfffffffcfafffffffdfffffffbff928c88ff58493aff5e4f3fff615243ff665747ff776858ff8d7e6eff98897aff978879ff988979ff988979ff988979ff988979ff988979ff988979ff988979ff988979ff9d8f7dff8c7e6cff8f8170ff978978ff938475ff8e8070ff746558ff46372aff5f5045ff4b3c31ff4c3c33ff726259ffa09089ffb5a59dffb2a29bffab9b94ffb3a5a0ffb3a59fffb3a59fffb2a4
+9fffb3a5a0ffb4a6a1ffb5a7a2ffb6a8a3ffb9aba5ffb9aba6ffb9aba6ffb9aba6ffb9aba6ffb9aba6ffb9aba6ffb9aba6ffb9a8a3ffb9a8a3ffb9a8a3ffb9a9a4ffb9a9a4ffb9a9a4ffb9a9a4ffb9a9a4ffc3b3aeffc5b5b0ffc8b8b3ffcabab5ffccbcb7ffcbbbb6ffcabab5ffc9b9b4ffcbbbb6ffcbbbb6ffcbbbb6ffcbbbb6ffcbbbb6ffcbbbb6ffcbbbb6ffcbbbb6ffcabab5ffcabab5ffcbbbb6ffccbcb7ffcebeb9ffcf
+bfbaffd0c0bbffd0c0bbffcec0b9ffcec0b9ffcebfbaffcebfbaffcdbfbaffcdbfbaffccbfbcffccbfbcffd0c5c3ffccc1bfffc5bbbaffbfb5b4ffcfc5c6ffd7ceceffb2a9aafffffafcfffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffdfbfffffffefffffffaffc6bfbaff574c43ff554a40ff615447ff615447ff6e5f4fff837465ff958677ff988979ff958677ff978879ff988979ff
+958677ff958677ff958676ff938475ff928373ff908172ff8f8070ff8d7e6fff8d7e6eff897b69ff897b69ff7d7263ff726758ff494138ff494239ff54514cfffcf9f4fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffbfc7c3ff3e4541ff343a35ff2d342fff535650ff41443eff595850ff6e6d65ff7d776cff7f796fff84786cff807468ff867668ff8c7b6eff8e7a6cff887466ff8b7b6c
+ff8b7b6cff8a7b6cff8a7b6cff8a7b6bff8a7b6bff8a7b6bff8a7a6bff8f7e6eff887768ff8a7768ff8a7768ff796455ff5f4a3bff5a4436ff665041ff655446ff685649ffcfc1b6fffff7ecfffffffafffffbf4fffdfbf8fffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffefffffffefffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffcfffdfffefffefffffc
+f6ffb1ada7ff3a2e24ff61554bff6d5b4fff675549ff837263ff847364ff857364ff857464ff847364ff827162ff806f60ff7f6e5fff7e6d5eff7d6c5dff7c6b5bff7a6959ff786757ff766555ff756354ff746253ff705f50ff6e5e4eff605142ff564739ff514539ff4c4033ff494138ff595047ffc8c4bdfffffff9fffffffbfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfff9faf8ff757472ff302f2dff5b
+5554ff605a58ff5d5352ff645a59ff695e5dff877c7cff958b8aff938988ff958d8cff97908fff928c8bff918b8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff655e5aff605855ff5e5653ff5c5451ff534b48ff48403dff4a423eff534c48ff757575fff6f6f6fffffffffffefefefffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffefefbfffafaf7ffecececff4b4b4bff232528ff2e3133ff3f4247ff3f4248ff43454bff45474dff59575cff747277ff898587ff8a8789ff8c8687ff8f898aff918a86ff908986ff908985ff8f8884ff8f8683ff8e8682ff8e8582ff8e8481ff8b807dff8b807dff8b7e7cff887c7aff8a7d7aff887b78ff7f716fff736663ff706163ff716264ff988c8efffef2f4fffffefffffffefffffffffffffbfbfb
+fffdfffffffdfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffefffbfbfbffffffffffffffffffebe9e9ff5c5554ff5a5453ff504645ff5b5150ff645856ff615553ff635553ff6f615eff7d6f6cff857774ff837673ff8174
+71ff7e716fff7d706eff7c706eff7b706dff786e6bff766b69ff746b68ff736a67ff706965ff706865ff6f6865ff6e6764ff6a6461ff68625eff5d5c5eff434345ff4f5153ff3b3c3eff2a2d2fff272b2dff3d4143ff999d9ffffbfffffffbfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffcfefcfffdfffdfffefffcfffffffdfffffffdfffefefcfffffefcff7d7a78ff413c3bff433d3cff423a39ff59
+5150ff665d5cff605655ff675c5bff625757ff78706dff968e8bff968e8bff98908dff99918eff918986ff938b88ff8e8683ff877f7bff827a77ff7c7471ff766e6bff716965ff6c6460ff665f5bff635b58ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffafafafffffffffffffdfbfffffcfafffffffaffe8e1dbff726861ff594f48ff615242ff645546ff625344ff68594aff7c6d5dff837465ff827364ff877869ff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff948576ff948575ff918272ff968879ff97887a
+ff8f8376ff8e8275ff3f352bff453b32ff3d3630ff48403aff241f1cff2e2926ff8b8888fffffefffffffffffffefcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffff9fffffff9ff
+fffff9fffffff9fffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffdfefffffdfefffffefefffffefefffffffefffffffefffffffffffffffffffffcf9f9fff6f3f3fffffffdfffaf5f4fffffffdfffffcfafff5f0edfffffffbfffbfefefffbfefefffcfffefffcfffffffdfffffffdfffffffdfffffffd
+fffffffafcfcfffafdfdfffbfefefffcfffffffdfffffffcfffffffcfefefffbfefefffffffffff6f4f4fffffefffffffefffff1f2f7fffdfefffffbfdfffff2f4fafffbfcfffffcfdfffffffefffffefefffffffffdfffffefcfffffdf9ff9a9490ff574838ff5e4f40ff635445ff665748ff746555ff897a6aff968777ff978879ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff988777ff
+978776ff978777ff938373ff908173ff918274ff75675bff493b2fff52453cff55483fff382c26ff9a8e88fffffdf8fffffcf8fffffdfafffffdfafffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffdfffefffdfffdfffefffdfffefffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffdfffffffdfffdfffffffdfffffffdff
+fffffdfffffffefffffffefffffffffefdfffffefdfffffef9ffd1cac5ff53483eff594e45ff625448ff605346ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff958677ff948576ff938475ff928373ff908172ff8f8070ff8d7e6fff8d7e6eff887a68ff8a7c6bff807466ff75695bff4a4239ff494239ff54514dfffdfaf6fff6f6f6ffffffffffeeeeeefffffffffffdfdfdfffcfcfcffff
+fffeffe3e2e1ff4e574eff3a433bff353c33ff41473eff505147ff53544bff686358ff7d786dff82786cff83786cff87786bff88796cff8b796bff8c7a6cff8e7a6cff8e7b6cff8b7e6eff8b7e6eff897b6bff857767ff887868ff8d7d6dff8e7c6dff8a7869ff8d7a6bff806d5eff8e7a6cff786456ff645142ff604d3eff523f30ff6d5a4bff4e4439ffb1a89cfffef7eefffffff8fffffbf7fffffcf8fffffdfeffffffffff
+fffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffdfffefffdfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffefffefffffffaffafaaa4ff3d3027ff65584fff655347ff6c5b4fff827162ff837263ff847263ff847364ff837263ff817061ff806e5fff7e6d5eff7e6d5eff7e6c5dff7c6b5cff7b695aff796859ff786657ff766556ff766455ff716051ff6f5f4f
+ff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d55
+52ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffffefefefffbfbfbfffffffffffffffffff9f9f9fffefefefffefefefffefefefffafafaffffffffff959697ff252628ff36383cff36383cff44464cff42444aff404046ff54545aff6e6b6fff7c7a7eff888283ff8d8788ff908887ff8e8684ff908986ff908985ff908885ff8f8884ff8f8784ff8f
+8683ff8f8582ff8f8582ff8d8280ff8d827fff918582ff837775ff8a7d7bff8d807eff726462ff6b5e5bff685d5fff7d7273ffd2caccfffff9fafffffcfdfffffefffff6f7f7fffdfffffffcfffffffcfffffffcfffffffcfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffff9fbfbfffdfffffffefffffffdfefefffafafaffffffffffbbb8b7ff3d3b39ff5c5654ff4a4442ff584d4bff685e5bff645754ff665856ff796966ff827370ff827472ff847674ff827472ff7c6e6cff796c6aff7b6e6cff7a6e6cff786c69ff756b68ff746a67ff726966ff716865ff6e6663ff6d6561ff6b6360ff6b6360ff605b5eff585356ff4d4c4eff444346ff313436ff292c2eff343b3cff4b5253ffdae1e2
+fff8fffffffbfffffff6fafcfffdfcfffffefdfffffffefffffffefffffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b53
+4fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffbfbfbfffffffffffffdfbfffffdfbfffffffaffebe3deff766c64ff595048ff615242ff64
+5546ff625344ff685949ff7b6c5dff837464ff827364ff877869ff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff948576ff968777ff938474ff988a7bff948677ff8b7f72ff877b6fff41372dff453b32ff413933ff453e38ff26211eff2c2724ff7d7a7afffffcfcfffffdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffff9fffffff9fffffff9fffffff9fffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffdfefffffdfefffffefefffffefefffffffeff
+fffffefffffffffffffffffffffffeffffdedbdbffdedad9ffcbc7c6ffdfdad7ffe2dddaffd8d3cfffdfdad6ffd2d5d5ffd2d5d4ffd1d4d4ffd0d3d3ffd0d3d2ffcfd2d1ffced1d1ffced1d1ffced1d0ffcdd0d0ffcdd0cfffcccfcfffcbceceffcacdcdffcacdccffc9ccccffd6d4d5ffc4c2c2ffc5c4c7ffc5c4c7ffc2c2c7ffe6e7ecfffbfdfffffbfdfffffbfcfffffcfdfffffffefffffefdfffffffffdfffffefcfffffd
+f9ff9a9490ff584939ff5f5040ff635444ff665748ff746555ff897a6bff968777ff978879ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff988777ff978776ff978777ff938373ff908173ff918274ff75675bff493b2fff52463dff554940ff382c26ff9b8f89fffffdf9fffffdf8fffffefafffffefafffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffefffdfffefffdfffdfffefffdfffefffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffefdfffffefdfffffef9ffd1cbc5ff53483eff594e45ff625448ff605346ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff958677ff958676ff938475ff928373
+ff908172ff8f8070ff8e7f6fff8d7e6eff887a69ff8b7d6bff807466ff75695bff494239ff494239ff55514dfffefaf6fffffffffff6f6f6fffffffffff2f2f2fffefefefffefefefff8f7f6ff81807fff3d463eff374037ff373d34ff3f463dff53544aff62645aff767166ff7f7a6fff83786cff83786dff87796cff88796cff8c7a6bff8c7a6cff8e7a6cff8e7b6cff897c6cff8b7e6eff8b7d6dff877969ff897969ff8b7b
+6bff8c7a6bff887667ff897667ff9a8778ff776355ff675344ff635041ff5e4a3bff6e5a4cff5f4b3dff91887cffd8cec3fffffff8fffffff8fffffefafffffefafffefcfcfffffdfdfffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffdfffefffdfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffefffefffffffaffaeaaa4ff3c3026ff65584fff655347ff6d
+5b4fff827162ff837262ff847263ff847263ff837263ff817061ff7f6e5fff7e6d5eff7e6d5dff7d6c5dff7c6b5cff7b695aff796858ff776657ff766556ff766455ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff
+867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffffffffffffffffffffffffffffafafafffcfcfcfffffffffffffffffffdfdfdffffffffffdbdbdbff575859
+ff262729ff34363aff383a3eff46484eff42454bff46474dff5b5b61ff757376ff828083ff8b8586ff8e8889ff918988ff908886ff908985ff908985ff8f8885ff8f8784ff8f8683ff8e8683ff8f8582ff8e8582ff8f8481ff897e7cff8b7f7dff897d7bff877977ff7f716fff716461ff6e605eff65595bff9f9495ffece4e5fffffefffffffcfdfffffefffffefffffffdfefefffcfffffffcfffffffcfffffffcfffffffeff
+fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafdfcfffcfefdfffefffffffcfdfdfffbfbfbffffffffffd2cfceff6c6968ff4c4644ff5a5452ff524845ff665c59ff655754ff675a57ff736360ff7a6a68ff827371ff847674ff837573ff7d6f6dff7a6d6bff7b6e6cff7a
+6f6cff786c6aff756b68ff756a68ff736a66ff716865ff6f6663ff6d6562ff6c6461ff6b6360ff656063ff5e595cff535254ff4a4a4cff373a3bff2a2d2eff2c3334ff3b4143ff979e9ffff8fffffff4f8fafffbfffffff6f5f8fffffefffffffcfffff9f7f9fffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff
+78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffcfcfcfffffffffffffefcfffffdfbfffffffaffefe8e3ff7d736bff5a5048ff615242ff645546ff625343ff675849ff7b6c5cff827364ff827364ff877869ff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff948576ff978878ff948575ff998b7cff938576ff8b7e72ff877b6fff4b4138ff473d34ff4840
+3aff473f39ff2a2522ff282320ff656262fffdf9fafffaf8f9fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffefffffffefffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfefffffbfefffffafefffffafefffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffded4d4ff716767ff5c514fff504542ff5d514dff5c504bff584b46ff594c47ff504e49ff504d48ff4f4d48ff4f4c47ff4e4b47ff4d4b46ff4d4a45ff4c4a45ff4e4b47ff4d4b46ff4c4a45ff4b4844ff
+4b4843ff4a4843ff4a4843ff4b4843ff4d4743ff504945ff4e4947ff575351ff484647ff6a6869ffd7d6d9fffffefffffdfdfffffdfdfffffffefffffefdfffffffffefffffefdfffffefbff9a9592ff594a3bff5f5041ff625344ff665747ff746555ff8a7b6bff968777ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff998777ff988676ff988778ff948374ff908174ff918175
+ff74675dff473a31ff514640ff544943ff352d2aff98908cfffffefdfffffdfcfffffefffffffefffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9ff
+fffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffefdffff
+fffdfffffff9ffd1cbc5ff53483fff594f45ff625548ff615347ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff968777ff958676ff948575ff928374ff918272ff8f8070ff8e7f6fff8d7e6fff897b69ff8b7d6bff807566ff74695bff494239ff494239ff55524dfffefbf7fffffffffff8f8f8fffffffffffffffffffafafaffffffffffafaeadff3d3c3bff333a2dff394033ff414437ff
+474a3dff5f5c50ff767367ff867c70ff82796dff87796cff87796cff89796bff897a6cff8a7a6bff8b7a6cff8b7b6cff8b7b6cff847969ff887e6eff8c7f6fff897c6cff8a796aff8a796aff8c7869ff897466ff897465ff947e70ff655041ff5a4536ff614e3fff5c493bff6d5c4dff6d5c4dffd7d5cbfff8f6ecfffffffafffffffafffffffdfffffffdfffcfcfcfffdfdfdfffffefffffffefffffefffffffefffffffdfffe
+fffdfffefffdfffdfffdfffdfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffefffefffffffaffaea9a4ff3c2f26ff65584fff665448ff6e5c50ff827161ff837162ff837263ff847263ff837162ff817061ff7f6e5fff7e6c5dff7e6c5dff7d6c5dff7c6b5bff7a695aff796758ff776657ff766555ff756455ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff4940
+37ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff73
+7373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffffefefefffffffffffdfdfdfff7f7f7fffffffffffffffffffffffffffafafaffffffffff9e9e9fff1b1c1fff2e2e32ff36383dff3e3f45ff494a50ff45464dff535157ff68666cff817d80ff8b878aff918988ff918988ff958a87ff948a87ff908985ff8f8885ff8f8884ff8e8783ff8e8683ff8d8582ff8e8481ff8d8481ff8d827fff867b78ff
+867a77ff918482ff847674ff726462ff746764ff706260ff6d6466ffcbc3c4fffffefffffffefffffbfbfbfffffffffffdfffffff9fcfcfffbfffffffbfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffbfbfbfffefffffffbfdfc
+fffafcfcfffdffffffecedebffababaaff464341ff5d5b58ff4e4643ff5e5653ff645754ff685a58ff6e5d5bff70605dff80716fff857573ff857674ff80716fff7c6e6cff7d6f6dff7c6f6cff796c6aff776b69ff766b68ff746a67ff736865ff706764ff6f6562ff6d6461ff6d6460ff6c6366ff655b5fff5b5659ff545053ff404244ff2f3233ff252e2eff2a3233ff525c5dffd8e2e2fff6fdfefff9fffffffafbfdfffcfd
+fffffffefffffbf8fbfffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff57
+5150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffdfdfdfffffffffffffffdfffffdfbfffffffafff5eee9ff867c74ff5b5149ff615243ff645546ff615242ff665748ff7a6b5bff827363ff
+827364ff887969ff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff948576ff988979ff928373ff988a7bff928475ff928579ff8e8175ff5b5148ff463c33ff4a423cff4a433dff322d2aff211c19ff4c4949fff8f4f5fffefcfcfffefcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefffffffefffffffefffffffefffefffffffefffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfefffffbfefffffafefffffafefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffefffff7eeedff6f66
+65ff5c514eff5d524fff5e524eff554945ff594c47ff5c4f4aff53514cff53514cff54514cff54524dff55524dff55534eff55534eff56534eff57544fff56544fff56534eff55534eff56534fff575550ff595651ff5a5752ff4f4944ff58524eff484442ff4f4b49ff2a2828ff343232ffd2d1d4fffffefffffdfdfffffdfdfffffffefffffefdfffffffffefffffffefffffffcff9c9794ff5b4c3dff605141ff625344ff65
+5646ff746556ff8a7b6cff968778ff968778ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff998777ff988676ff988778ff948374ff908174ff918175ff74675dff473a31ff514740ff544a44ff362e2aff98908dfffffefdfffffefdfffffefffffffefffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7ffffff
+f7fffffff7fffffff7fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6ffff
+fff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffdfffffffefffffffaffd2cbc6ff53493fff5a4f45ff625548ff615347ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff968777ff958677ff948576ff938474ff918272ff8f8071ff8e7f70ff8e7f6fff8a7c
+6aff8c7e6cff807566ff74695aff494238ff494239ff56524efffffcf8fffffffffffffffffff3f3f3ffffffffffffffffffd3d3d3ff575755ff3c3b3aff343b2eff3c4236ff484b3fff54574bff6b685cff7c796cff857c6fff80776aff887a6dff887a6dff8a7a6cff8a7a6cff8b7a6cff8b7b6cff8b7b6bff8b7b6cff837968ff887e6eff8c7f6fff887b6bff897869ff8a796aff8e796bff8c7769ff8b7667ff6d5849ff66
+5143ff5d483aff625041ff614e3fff655445ffb1a091fffefcf2fffffff8fffffffafffffdf7fffffffdfffffffdfffbfbfbfffffffffffffefffffffefffffefffffffefffffffdfffefffdfffefffdfffdfffdfffdfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffefffefffffffaffada9a3ff3b2f25ff65584fff665549ff6f5d51ff827061ff827162ff837262ff837263ff
+827162ff816f60ff7f6d5eff7d6c5dff7d6c5dff7d6b5cff7c6a5bff7a6959ff786758ff776556ff766455ff756454ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190
+ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffffafafafffffffffffafafafffffffffffffffffffcfcfcfffbfbfbfffdfdfdffe5e5e6ff5f5e60ff151619ff37383bff3c3e43ff44464bff45464cff4a4b
+51ff5f5d63ff737177ff8a8689ff918c8fff938b8aff918988ff948986ff948986ff908885ff8f8885ff8f8784ff8e8683ff8d8582ff8c8481ff8d8380ff8c827fff887d7aff877c79ff877b78ff908482ff807270ff6c5f5dff766966ff6c5f5cff948b8dfff2eaebfffffefffffffefffffbfbfbfffafafafffdfffffff7faf9fffbfffffffbfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffbfdfdfffbfdfcfffbfdfdfffdfffffffffffdffe0e0deff686563ff4d4a48ff544c49ff564e4bff625552ff685b58ff6d5d5aff6a5957ff7c6c6aff837371ff857674ff827371ff7e706dff7e706dff7c6f6dff7a6d6aff786c6aff776c69ff756b68ff
+736966ff716865ff6f6663ff6e6562ff6d6461ff6b6266ff645b5fff5b575aff585356ff474a4cff383b3cff293132ff262f30ff343e3eff97a1a2fff9fffffff3fafbfffdffffffeff0f2fffffefffffefbfefffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928f
+ff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffeff
+fefffcfffffffcfffffffcfffffffcfffffffefefefffffffffffffffdfffffdfbfffffffafffcf4efff90867eff5b514aff615243ff645545ff605142ff655647ff796a5aff817262ff827363ff887969ff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff948576ff9a8b7bff918272ff958778ff918274ff968a7eff928579ff675d54ff3f352cff423b35ff473f39ff36312eff1c1714ff393536ffe4
+e0e1fffffffffffffdfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffbfffdfffbfffdfffbfffdfffbfffdfffcfffdfffcfffdfffefffdfffefffefffffffefffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffefefffffefefffffffefffffffefffffffffffffffffffffffffefffffffeffe9e3dfff544e4aff463d37ff564e47ff61574fff5c524aff62574eff62574eff5f554aff5f554aff5f554aff5f554aff5f554aff5f5549ff5e5449ff5e5449ff61574bff60564bff5f554aff5e5449ff5d5348ff5d5348ff5d5348ff5e5448ff665a4f
+ff61554aff423930ff51483fff352f2aff322c27ffd9d5d6fffbf7f8fffffefffffffefffffffffffffefdfdfffffefffffffefffffffffdff9c9897ff5e4f3fff615243ff625343ff645546ff746556ff8b7c6dff978878ff968778ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff9a8777ff998676ff998678ff958274ff908075ff918175ff72665eff463a32ff4f4642ff524a45ff332d
+2cff95908ffffffefffffffefefffffefffffffefffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffafffffffafffffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffffaffd2ccc6ff54493fff5a5046ff
+635549ff615447ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff968778ff968777ff958676ff938474ff918273ff908171ff8f8070ff8e7f6fff8b7d6bff8c7e6dff807566ff74695aff494238ff4a4239ff56534ffffffdf9fffdfdfdfffffffffffffffffffffffffff4f4f4ff6e6e6eff383736ff3f3e3dff404334ff444737ff555445ff6a695aff7e7668ff80786aff85786aff877a6c
+ff8b7b6dff8b7b6dff8a7b6cff8a7b6cff887b6cff887b6bff867c6bff867c6bff837a6aff867e6dff897d6dff857969ff887767ff8b7a6bff907a6cff8e786aff816a5cff644d3fff685344ff644f40ff5f4d3eff665445ff908171fffdeddefffdfff9fffefffafffbfcf7fffafcf6fffffffefffefffdfffbfafcfffffefffffffefffffffefffffffffffffffffffffefffefffefffefffdfffcfffdfffcfffffffdffffff
+fdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffefffffffaffada8a2ff3b2e25ff65584fff675549ff705e52ff817061ff827061ff837162ff837162ff827161ff806f60ff7e6d5eff7d6c5dff7d6c5cff7c6b5cff7b6a5bff7a6859ff786757ff766556ff756455ff756354ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcffff
+fffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefeff
+fffffffffcfcfcfffffffffffcfcfcfffffffffff8f8f8fffffffffffffffffff4f4f4ffffffffffffffffffa1a0a3ff28272aff303135ff393a3eff3e3f46ff46474dff404148ff515158ff6c6a6fff7c7a80ff908a8cff938d8fff948a88ff928886ff958884ff958883ff8f8885ff8f8884ff8e8783ff8d8582ff8c8481ff8b837fff8b827fff8b817eff847a77ff8a7f7cff8b7f7cff857977ff746664ff675a58ff6e605e
+ff6d5f5dffcbc6c7fffffefffffffffffffefbfcfffffffffff9f9f9fffbfffffff7fbfbfffbfffffffbfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffbfbfbfffbfdfcfffcfdfdfffafdfdfffcfffffffdfffefff7faf8ffa3a4
+a1ff3b3c39ff5b5552ff4d4643ff605350ff665956ff715f5dff6a5855ff766664ff7f6f6dff857674ff847472ff80716fff7f706eff7d706dff7b6e6bff796d6aff796c6aff776b69ff756a67ff736865ff716764ff6f6663ff6f6562ff706367ff695d61ff5e585bff5a5457ff4c4e50ff3f4244ff2e3838ff273132ff283435ff4f5b5cffe5edeefff7fffffffdffffffeff1f3fffffefffffaf7fafffdfffdfffdfffdfffd
+fdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefeff
+fffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffdfdfdfffffffdfffffefcfffffffafffffbf5ff988f87ff5c524aff615243ff645545ff605141ff645546ff786959ff807162ff827363ff887969ff887969ff8a7b6cff8e7f6f
+ff908171ff908172ff918272ff938474ff948576ff9b8c7cff928273ff958778ff8e7f71ff95897dff8f8276ff71675eff3c3229ff39312bff3d352fff383330ff211c19ff2c292affb3afb0fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffbfffdfffbfffdfffbfffdfffbfffdff
+fcfffdfffcfffdfffefffdfffefffefffffffefffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffefefffffefefffffffefffffffefffffffffffffffffffffffffefffffffefff2ebe7ff5c5551ff49413aff605851ff7b7269ff7f766dff7e
+736aff756b61ff7c7267ff7b7166ff796f64ff766c61ff746a5eff71675cff6f655aff6e6459ff72685dff71675cff6f655aff6c6257ff685e53ff645a4fff60564bff5e5449ff504439ff4f4338ff41372fff544a41ff3a332fff352f2bffe8e5e5fffffefffffffffffffffefffffffffffffefcfdfffffefffffffefffffffffdff9e9a98ff605142ff625344ff615243ff645545ff746556ff8c7d6dff978879ff968777ff
+978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff9a8777ff998676ff998678ff958274ff908075ff918175ff72665eff463a32ff4e4641ff524944ff322d2bff958f8efffffefefffffdfefffffefffffffefffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffafffffffafffffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfffefffcff
+fefffcfffefffcfffefffcfffefffcfffefffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffffaffd2ccc7ff544a40ff5b5046ff635649ff625448ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff978878ff968778ff958676ff938475ff928373ff908172ff8f8070ff8e7f70ff8c7e6cff8d7f6dff807566ff74685aff494138ff4a
+4239ff575450fffffefafffafafafffbfbfbfffffffffffcfcfcff9e9e9eff414141ff3f3e3dff363634ff464839ff4c4e3fff615f51ff777667ff857d6fff817a6bff86786aff8c7e70ff8c7c6dff8c7c6dff8b7c6dff8b7c6cff887c6cff887b6cff867c6bff867b6bff847b6bff857c6cff867a6aff837666ff887767ff8a7969ff8c7668ff867062ff674f41ff715a4cff5b4638ff5e483aff5c4a3bff7d6b5cffe1d1c2ff
+fffff2fff9fef5fffefffafffcfef9fffdfef9fffffffefffefefdfffaf9fbfffffefffffffefffffffefffffffffffffffffffffefffefffefffefffdfffcfffdfffcfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaca7a2ff3a2e24ff65594fff68564aff715f54ff816f60ff817061ff827162ff827162ff827061ff806e5fff7e6d5dff7d6b5cff7d6b5c
+ff7c6b5bff7b695aff796859ff786657ff766555ff756354ff746354ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e
+7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffffffffffffffffffff7f7f7fffffffffffdfdfdfff5f5f5ffffffffffecececff555457ff111013ff404145ff37373cff3e3f45ff45464cff43434aff5c5c63ff78767bff838187ff918b8dff918b8eff93
+8987ff928887ff958884ff938682ff8f8885ff8e8784ff8e8683ff8c8581ff8b8380ff8a827eff8a807dff89807dff877c79ff897e7bff8d817eff746865ff645754ff5f514fff625452ff8b7e7bfffaf5f6fffffefffffefbfcfffffcfdfffffffffffefefefffbfffffffbfffffffbfffffffbfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffefefefffcfdfdfffcfefefffbfefdfffafdfdfffafefcfffdfffeffdcdddaff585956ff5d5754ff4a4441ff5d504dff635653ff705e5cff6b5a57ff6f5e5dff7b6a68ff837371ff847472ff80716fff80716eff7e706eff7d6f6dff7a6e6bff7a6d6bff776c69ff766b68ff736966ff726865ff706663ff706663
+ff74676bff6e6266ff635d60ff5d575aff4e5153ff434648ff323c3cff2a3434ff263232ff2e3a3affa3acadfff7fffffff8f9fbfffdfffffffaf7f9fffaf7f9fffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b
+77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcffffffff
+fffffffcfcfcfffffffdfffffefcfffffef9fffffffaff9f958eff5c524aff625343ff645545ff5f5041ff645545ff776859ff807161ff827363ff88796aff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff948576ff988979ff928373ff998b7cff8d7f70ff93867aff8e8175ff82786fff4c4239ff39312bff352d27ff3b3633ff2f2a27ff252222ff6b6768ffe6e4e5ffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfff9fffcfff9fffcfffafffcfffafffdfffbfffdfffbfffffffcfffffffcfffffffefffffffefffffffffffffffffffffefffffffefffffffefffffffefffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbffff
+fffbfffffffbfffffffbfffffffbfffffff9fffffff9fffffffafffffffafffffffcfffffffcfffffffffffdfffffffdffccccc5ff4f4e47ff48463cff5e5b51ff7f7a6eff848074ff7f7a6dff767164ff89796aff877768ff857566ff817162ff7d6e5fff7a6a5bff776858ff766657ff756556ff756556ff736354ff6f6050ff695a4bff625343ff5c4c3dff584839ff544434ff564736ff574a3cff5c4e41ff342b23ff2d23
+1bffe2dddafffffffcfffffffffffffffffffffffffffefcfdfffffefffffffffffffffeffff9e9a9bff625343ff635444ff615242ff635445ff756656ff8c7d6eff978879ff968777ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff978878ff9b8777ff9a8676ff998678ff958274ff908075ff918176ff72665eff463a32ff4c4541ff4f4844ff302b2cff928e8ffffdfcfffffdfcfefffcfdfffffc
+fdfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffffaffd3ccc7ff554a40ff5b5046ff64564aff625548ff6f6050ff857666ff968778
+ff998a7aff968778ff98897aff98897aff968777ff978878ff968778ff958677ff948575ff928373ff908172ff8f8071ff8f8070ff8d7f6dff8d7f6eff807567ff74685aff494138ff4a4239ff575450fffffffbfffffffffffffffffffbfbfbffcbcbcbff474747ff434343ff3d3c3bff3b3a39ff4c4c3cff5e5e4dff757060ff7f7b6bff877c6dff877c6dff8b7c6dff8b7c6dff8d7d6eff8d7c6dff8b7d6dff8b7c6dff877c
+6cff867c6bff837c6bff837c6bff837b6bff837b6aff847868ff837666ff897768ff887667ff836c5dff776052ff5e4638ff6a5244ff5a4435ff5e483aff6f5e4fffbcaa9bfffffff2fffffff1fff5fdf5fffbfffbfffbfffbfff9fef9fffefffffffefffffffafafcfffefefffffffefffffffefffffffffffffffffffffefffdfffefffdfffdfffcfffdfffcfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffa
+fffffffafffffffefffefffdfffdfffffff9ffaca7a1ff3a2d24ff65594fff68564bff726054ff816f60ff817061ff827161ff827162ff817061ff806e5fff7e6c5dff7c6b5cff7c6b5cff7c6a5bff7a695aff796858ff776657ff766455ff756354ff746353ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcffffff
+fffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffffefefeffffffff
+fffafafafffffffffffafafafffffffffffcfcfcff9f9f9fff29292dff232327ff38393eff3c3d42ff414248ff47484fff515158ff696971ff838186ff89878cff918b8cff90898aff948987ff958a88ff978985ff948681ff8f8884ff8e8784ff8d8683ff8c8481ff8b827fff89817eff897f7cff887f7cff8b807eff817674ff8a7e7bff665957ff5b4e4cff574a48ff625452ffcfc1bffffffefffffcf8f8ffffffffffffff
+fffffcfefefffdfffffffafffefffbfffffffbfffffffbfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffdfefefffbfdfdfffbfffffffafefdfff7fcfafffbfffefff9faf7ff9e9e9cff544e4bff4e4845ff5c4f4cff60
+5350ff695755ff6d5b59ff695856ff766563ff82716fff847372ff81716fff80716fff7f716fff7e706eff7b6e6cff7a6d6bff786d6aff776b68ff746967ff736865ff716764ff716663ff74656aff726468ff686164ff625b5eff525557ff484b4cff364141ff2d3738ff243131ff2b3838ff586161ffdbe4e5fffdfffffffdfffffffdfafcfffffdfffffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff
+7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff675f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffffffffffcfcfcfffffffdfffffefcfffffef8fffffffaffa39992ff5c524bff625343ff645545ff5f5040ff635445ff776858ff807161ff827363ff88796aff887969ff8a7b6cff8e7f6fff908171ff908172ff918272ff938474ff9485
+76ff948575ff928373ff9d8e80ff8e8071ff92867aff908377ff938980ff61574eff3f3832ff322b25ff3e3936ff3e3936ff211d1eff343031ffcbc9c9fffcfafbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfff9fffcfff9fffcfffafffcfffafffdfffbfffdfffbfffffffcfffffffcfffffffeffff
+fffefffffffffffffffffffffefffffffefffffffefffffffefffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffff9fffffff9fffffffafffffffafffffffcfffffffcfffffffffffdfffffffdff94948dff3a3932ff4a473eff615e55ff7f7b6fff837f73ff827c6fff827d70ff857566ff847465ff827263ff
+7f7060ff7c6d5dff7a6a5bff786859ff776758ff6f6050ff706051ff6f6050ff6d5d4eff675848ff605041ff59493aff544435ff574737ff4b3c2bff4a3d30ff504336ff3a3028ff41382fffefeae7fffffffcfffffffffffffffffffffffffffefcfcfffffefffffffffffffffeffff9e9b9bff635444ff635444ff615242ff635444ff756656ff8d7e6eff978879ff958677ff978878ff978878ff978878ff978878ff978878
+ff978878ff978878ff978878ff9b8777ff9a8676ff998678ff958274ff908075ff918176ff72665eff463a32ff4c4440ff4f4743ff2f2b2bff928d8efffdfcfefffcfbfefffcfcfffffbfcfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe
+fffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffefffffffefffffffaffd3ccc7ff554a40ff5b5047ff64564aff625548ff6f6050ff857666ff968778ff998a7aff968778ff98897aff98897aff968777ff978879ff978878ff958677ff948575ff928374ff918272ff8f8071ff8f8070ff8d7f6dff8e806eff807567ff74685aff484138ff4a4239ff585450fffffffbfffffffffff5f5f5ff
+eeeeeeff6e6e6eff343434ff373737ff343332ff464544ff4f4f3eff6c6c5cff837f6fff807b6bff827768ff897e6fff8d7e6fff847566ff8e7d6eff8e7d6eff8b7d6dff8b7c6dff877d6cff867c6bff837c6bff837c6bff827a6aff817a69ff837767ff837767ff8a7869ff867465ff7a6355ff695244ff6b5345ff52392bff695345ff6a5546ff918070ffffefe0fffffff2fffff9e9fff5fdf5fffbfffbfffafffafff5faf6
+fffefffffffefffffffcfbfefffdfcfffffffefffffffefffffffffffffffffffffefffdfffefffdfffdfffcfffdfffcfffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffef9ffaba7a1ff3a2d24ff65594fff69574bff726155ff806f60ff817060ff827061ff827161ff817061ff7f6e5fff7d6c5dff7c6b5cff7c6b5cff7b6a5bff7a695aff796758ff776657ff7664
+55ff746354ff746253ff716051ff6f5f4fff605243ff564739ff504538ff4b3f33ff494037ff584f46ffc5c1bafffffef8fffffffcfffffffcfff9fbfafffefffffffafefdfffcfffffffffffdfffbfcfaff767573ff2e2c2aff595352ff615b59ff5f5554ff635959ff675c5bff867b7bff958b8aff948a89ff968e8dff989190ff928d8bff918c8aff908885ff8c8481ff867e7aff807875ff7a726fff746c69ff6e6663ff6a
+625fff665f5bff615956ff5f5754ff5d5552ff544c49ff49413eff4b433fff544d49ff737373fff5f5f5fffffffffffefefefffefefefffffffffffcfcfcfffffffffff5f5f5fffffffffffffffffffffffffffdfdfdffffffffffeaeaeaff525252ff212125ff434347ff2b2c31ff47474cff47484fff4b4c53ff5f5f66ff73737aff89888dff8c8a8fff918a8bff8f8889ff948987ff978c8aff998b86ff948681ff8f8884ff
+8e8784ff8d8682ff8b8481ff8a827fff89807dff897f7cff887e7bff8e8381ff796e6bff867a78ff5f5351ff594c4aff564946ff6a5d5afffffefcfffffefffff0ececfffffffffffffffffff5f8f7fffdfffffff8fcfcfff9fefdfffbfffffffbfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffdfffffffafcfcfffbfffffffbfffffff8fdfafffbfffefffffffdffdbdcd9ff4b4643ff524c49ff5c4f4cff5e514eff63514eff6e5c59ff655452ff736261ff80706eff837371ff81716fff80716fff80716fff7f716eff7b6e6cff7b6e6bff786d6aff776b69ff756a67ff736866ff716764ff716764ff6f6065ff706267ff6a6266ff665e62ff5659
+5aff4d4f51ff3b4546ff313c3dff212e2eff2e3b3bff242d2effa2abacfffdffffffeceef0fffffefffffffefffffdfffdfffdfffdfffdfdfbfffffffdfffffffdfffffffdfffffffdff7c7977ff3f3a39ff423d3cff433c3bff5a5352ff665d5cff5f5554ff665b5bff625857ff78706cff958e8aff968e8bff99918eff9a928fff918986ff938b88ff8d8582ff87807cff827b77ff7b7370ff756d6aff706865ff6b6360ff67
+5f5cff645c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffefefeffffffffffffffffff
+fbfbfbffabababff565656ff705a42ff6d573fff67533cff69553fff73614eff84715eff877767ff867666ff897b6cff8b7c6dff8c7e70ff8e8072ff918374ff928476ff938576ff938576ff968672ff968772ff968773ff968773ff938675ff928574ff8f8475ff8e8374ff50483cff433b2fff383229ff474037ff3d3932ff201b14ff5e5b55ffe4e1dbfff9f9f9fffffffffffffffffffefefefffefefeffffffffffffffff
+fff6f6f6fffdfdfdfffdfdfdfffefefefffefefefffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefffbfefefffbfefefffbfefdfffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefffbfefefffafdfdfffcfffffffcfffffffcfffffffafefdfffbfefdfffafefdfffafdfcfff8fcfbfffbfe
+fffffcfffffffafcfdfff6f9fafffffffffffffffffff0eeeaffc5c3bfff4f4a44ff403b35ff4a443aff6d675eff888075ff847d71ff7e7568ff80776aff847568ff817265ff7e6e62ff7b6c5fff7a6a5eff77685bff746458ff716255ff6f6053ff6d5d51ff6a5b4eff67584bff655549ff605144ff5b4b3fff57473bff5a4738ff4b3829ff4d3f34ff53453aff39322eff2d2622fffbfbfdfff9f8fafffcfefffffbfdfffffd
+fffffffdfffffffffffdfffffefcfffffffbffa09d97ff6d5b4cff5f4d3eff695748ff695748ff736152ff8f7e6fff978677ff9a8879ff998878ff998878ff998878ff998878ff998878ff998878ff998878ff998878ff948673ff9c8e7bff928573ff908372ff8e8373ff8f8474ff7b7165ff433a2dff463f35ff514a40ff3c3831ff77736cfffffffbfffbf8f3fffffffcfffffffcfffbfefffffbfefffffbfefffffbfeffff
+fbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfdfffffafdfffffafdfefffafcfefffafcfefff9fcfdfffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffcfffffffcfffffffcfffffffcfffffffcfffffffcfefffffcfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffcfffffffcfffffffcfffffffcfffffffcfffffffcffff
+fffcfffffffcfffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffbfafcfffffefffffffefffffffefffffefdfffffffefffffffefffffefdfffffffff7fffffff7fffffffafffffffafffbfbf9fffffffefff7f9fafffbfdfefffefefefffffffffffffffaffd0cbc6ff564a3fff5e5247ff665647ff615142ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff9988
+79ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff877f6eff837b6aff8a8374ff676051ff4c473aff3f3a2dff676459fffcf9effffffffafffbfbf3ff949691ff383a35ff363a37ff3c3f3cff333736ff484c4bff716756ff7c7261ff887c6cff8b806fff877b6bff847868ff887b6bff8d8070ff8a7c6cff8a7c6cff8b7b6cff8b7b6cff8c7b6bff8b7a6bff8b7a6bff8b7a6bff877767ff8a
+7a6aff897765ff887664ff8a7662ff796551ff67523fff644f3bff574333ff645040ff58483eff716258ffeadedcfffffffcfffffbfcfffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ff
+aba6a1ff3a2d24ff65584fff68564bff726054ff826f5eff826f5eff826f5eff826f5eff816e5dff806d5cff7f6c5bff7e6b5aff7d6a59ff7d6a58ff7c6958ff7b6856ff796655ff786554ff776453ff776453ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352
+ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffdfffffff2f5f5fffbfffffff2f6f7fffbfffffff5fafcffa2a7
+a9ff23282aff252e36ff2d363eff383e45ff3c4249ff48474dff57565cff746d71ff878084ff948a8cff948a8cff958a88ff958a88ff948a85ff948985ff938983ff928983ff8e8682ff8b837fff8c827eff8e8481ff928482ff8f817fff8d7d7cff8b7b7aff8d7d7eff877778ff756769ff544648ff504647ff5c5153ffbbb3b5fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffefffffffefffffffbfcfffffdfeff928789ff584d4fff4f4244ff56494bff584a4cff6c5e60ff665a57ff675a58ff
+706361ff7e716eff847775ff807471ff7d706eff7e716fff7c6f6dff7b6f6cff7a6e6bff796c6aff776a68ff766966ff746865ff746765ff6f6261ff706463ff6f6564ff6d6362ff635e5dff5a5454ff4c4b4bff464545ff303332ff2e3130ff373b3cff616667ffe3e8eafffafffffff3f8fafffafffffffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251
+ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffffffffffcfcfcffbbbbbbff535353ff6e5941ff6c563eff67523cff69543eff72604dff83705dff877767ff877767ff897b6cff8b7c6dff8c7e70ff8e8072ff918374ff928476ff938576ff938576ff978773ff978873ff968874ff968874ff94
+8775ff938675ff8f8576ff8f8475ff6e665aff534b3fff352f26ff443d34ff555049ff3e3932ff3b3731ff6b6761ffe1e1e1fff7f7f7fffffffffffffffffff4f4f4fff7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafdfdfffafdfdfffafdfdfffafefdfffafefdfffbfefdfffbfefdfffbfefefffcfffffffcfffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffbfefdfffafdfdfffafdfdfffafdfcfffafdfdfffbfefefffcfffffffcfffffff6f9f9fff6faf9fff8fbfafffbfefdfffcfffffffcfffffffcfffffffafdfdffeaedeffff8fbfdfffdfffffffdfffffffefefeffddddddffa19f9bff676561ff45413aff45413aff59534aff787168ff8a8277ff857d71ff80776aff82796cff837468ff817165ff7d6e61ff7b6c5fff796a5dff77675bff736457ff706155
+ff6e5f52ff6c5d50ff695a4dff67584bff655549ff615145ff5b4c40ff57483cff574435ff4d3a2bff514238ff53453aff362f2bff342c29fffaf9fbfffbfafcfffcfefffffbfdfffffdfffffffdfffffffffffdfffffefcfffffffbffa19d98ff6c5b4cff5f4d3eff685748ff695748ff726152ff8f7e6fff978676ff9a8879ff998778ff998778ff998778ff998778ff998778ff998778ff998778ff998778ff928572ff9c8e
+7bff928574ff8f8271ff8a7f6fff897e6eff776e61ff443b2eff514a40ff4d463cff322e27ff706b64fffffffbfffffffbfffffffcfff6f4f0fffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfefffffcfefffffbfefffffbfdfffffbfdfffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc
+fffffffcfffffffcfefffffcfefffffcfefffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffff9f9fbfffdfdfffffefdfffffbfafcfffafafcfffdfdfffffefdfffffcfbfdfffdf8eefffffbf0fffaf8f1fffffef7fff2f3f1ff
+fffffefffdfffffffdfffffffffffffffffffffffffefaffd1cbc7ff564b40ff5e5247ff665647ff615242ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff888070ff807867ff817b6bff5e5748ff4b4639ff454033ff474439ff949287ff787770ff7a7a72ff4b4d48ff272924ff353835ff3d403dff3f4342
+ff5a5e5dff7a6f5fff817766ff8a7e6eff8b8070ff887c6cff857969ff887b6bff8c7e6eff8a7c6cff8a7b6cff8b7b6cff8b7b6bff8b7a6bff8b7a6bff8b7a6aff8b796aff877767ff817261ff847260ff897866ff897561ff77634fff67523eff604b37ff675343ff5a4636ff5f5046ffc1b2a8fffcf0edfffffffcfff8f0f1fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054ff826f5eff826f5eff826f5eff826f5eff816e5dff806d5cff7f6c5bff7e6b5aff7d6a59ff7c6958ff7c6957ff7a6756ff796655ff786554ff776453ff776453ff706050ff6f5e4fff61
+5243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff
+574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffbfdfdfff8fbfafff8fcfdfffbfffffffbffffffe4e8eaff5d6264ff1c2023ff283139ff2e373fff393e45ff3f444bff4d4d53ff5e5e63ff7a7377ff8a8487ff948a8cff948a8cff958a88ff958a87ff948a85ff938984ff928983ff928983ff8e8682ff8c8480ff8d8380ff8d837fff8e817fff8b7d7c
+ff8b7a7aff897979ff837374ff877778ff5a4c4eff625456ff524749ff746a6bffe9e1e2fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffefffffffefffffffefffffffeffffd2c7c9ff63585aff56494bff56494bff615355ff635557ff675b58ff665a57ff6d605eff7a6d6aff827572ff807471ff7e716fff7e716fff7c706dff7c6f6dff7b6e6bff796c6aff776b68ff766967ff756866ff746765ff726564ff716564ff6f6564ff6e6463ff666160ff5e5858ff504f4fff484747ff373939ff2b
+2e2eff2a2f30ff424748ffa7acaefffafffffff4fafcfff9fefffffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff
+574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffcfcfcffffffffffd5d5d5ff555555ff6b5640ff6a553f
+ff66523dff67543eff705e4bff806e5bff877766ff897967ff8a7b6bff8b7c6cff8d7e6fff8f8172ff918374ff928475ff938576ff938577ff988874ff988974ff988976ff988976ff968877ff958776ff918677ff918576ff8a8174ff6d6458ff3e372dff393228ff575149ff59534bff433e37ff403b34ff5c5956ff918e8bffceccc8fff2f0ecfffcfaf6fffdfaf7fffaf8f4fff7f4f1fffffffcfffffffcfffffffcffffff
+fbfffffefbfffffefafffffefafffffdfafffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffbfffffffbfffefffbfffefefafffefefafffdfdf9fffdfdf9fffdfdf9fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffcfcf8fff4f5f1ffefefebfffffffeffedeeecffcbcac7ffa5a4a1ff888581ff6d
+6a66ff555049ff403b35ff4b443aff5a534aff756c60ff887f73ff8d8275ff867b6eff827768ff827769ff837367ff807164ff7d6d61ff7a6b5eff79695cff76675aff736356ff706154ff6d5d51ff6b5b4fff69594dff67584bff655649ff625245ff5d4d41ff594a3dff534030ff513e2fff56473dff54453bff332b28ff413936fff8f8fafffefefffffcfefffffbfdfffffdfffffffdfffffffffffdfffffefcfffffffbff
+a29e99ff6c5b4cff5e4d3eff685748ff685748ff726152ff8f7e6eff978576ff998879ff998778ff998778ff998778ff998778ff998778ff998778ff998778ff998778ff918370ff9a8c7aff938574ff918372ff8b7f6fff887d6dff786e61ff473d30ff524a40ff4e463cff3e3830ff7a746cfffffcf6fffffffafffffffbfffffefafffefefcfffefefcfffefefcfffefefcfffefefcfffefefcfffefefcfffefefcfffffffe
+fffffffefffffffefffffffefffffffdfffffefdfffffefdfffffefcfffefdfcfffefdfcfffefdfcfffefdfcfffefdfcfffefdfcfffefdfcfffefdfcfffdfcfbfffdfcfafffcfcfafffcfbfafffcfbf9fffbfbf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fffbfaf9fff9f8f7fff9f8f7fff9f8f7fff9f8f7fff9f8f7fff9f8f7fff9f8f7fff9f8f7fff9f5f4fff9f5f4fff9f5
+f4fff9f5f4fff9f5f4fff9f5f4fff9f5f4fff9f5f4fffffcfbfffffefdfffffdfcfffcf9f7fffbf8f7fffefbf9fffefbf9fffbf8f7fffffff4fffffff6fffffef7fffffffafffdfdfcfffffffefff6f8f9fff3f5f6fffffffffffefefefffffefaffd2cdc8ff584c41ff5e5247ff655546ff625243ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff95
+8475ff948374ff938273ff938172ff8f8575ff897f6fff8d8374ff695f50ff564e41ff5c5447ff474136ff524c41ff4b463eff4f4b43ff44423cff3f3c36ff41403cff42413dff4b4c49ff646562ff857a69ff887c6cff8b7f6fff8b8070ff8a7d6dff887c6cff897b6bff8a7c6cff8b7b6cff8a7b6cff8b7b6bff8a7a6bff8b796aff8a796aff8b796aff8a7869ff8b7868ff847161ff897564ff887463ff75604eff644f3dff
+5f4b39ff5b4735ff604f40ff5c4a3cff95887ffffff9f0fffffffcfffffffcfffaf5f6fffffdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054
+ff826f5eff826f5eff826f5eff826f5eff816e5dff806d5cff7e6b5aff7e6b5aff7d6a59ff7c6958ff7b6857ff7a6756ff796655ff786554ff776453ff766352ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b
+7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffdfffffffcfffffff7fafcfffbfffffff9feffffb2b7b9ff24282bff24292bff2e363dff313940ff3b3f45ff44
+494fff58565bff6b696eff837c7fff8f888bff958a8cff958a8cff958a88ff948987ff938985ff928884ff918883ff918882ff8d8581ff8e8582ff8f8481ff8b817eff8a7d7bff887a79ff897979ff887878ff827273ff756666ff4d4042ff635658ff595051ffada4a5fffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffefffffffefffffffdfefffffefffffffbfcff898081ff524648ff55494bff5d4f52ff594b4eff685c59ff655956ff695c59ff746764ff7d716eff807371ff7f7270
+ff7e716fff7d706eff7c706dff7b6e6cff7a6d6aff786b69ff766a67ff756966ff756865ff756968ff726665ff6e6463ff6e6463ff6a6463ff645d5dff565354ff4d4a4aff444444ff353535ff292d2eff2c3031ff666b6dffeef3f5fff9fffffff7fcfefffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e
+6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffff8f8f8fffffffffff9f9f9ffffffffffedededff5f5f5fff69543eff69553eff66533eff67533eff6d5b48ff7d6b57ff867664ff8a7968ff8a7b6bff8b7c6cff8d7e6fff8f8172ff918374ff928475ff938576ff938577ff998975ff998a75ff998a77ff998a77ff978978ff968877ff928778ff928677ff90877aff
+897f73ff655e54ff4a4238ff4c463eff554f47ff56514aff5d5851ff53514dff575451ff575451ff575551ff62605cff787672ff8a8884ff92908cff979591ff9c9a96ffa4a29effb0aeaaffbcb9b6ffc7c5c1ffcfcdcaffd4d2ceffcdcdc9ffcdcdc9ffcececaffcfcfcbffd0d0ccffd1d1cdffd1d1cdffd2d2ceffd6d6d2ffd6d6d2ffd5d6d2ffd5d5d1ffd5d5d1ffd4d4d0ffd4d4d0ffd4d4d0ffc7c7c3ffc6c6c2ffc5c5c1
+ffc3c3bfffc0c0bcffbcbcb8ffb8b8b4ffb6b6b2ffa3a39fffa1a19dff9e9e9aff999995ff93938fff898a86ff7f807cff787874ff50514fff50504fff555452ff595856ff595652ff504d49ff4c4740ff49453eff615a51ff746d64ff898074ff8e8579ff8a7f72ff847a6cff817667ff7f7465ff837366ff807064ff7d6d60ff7a6b5eff78695cff76665aff726356ff706053ff6c5c50ff6a5b4eff68594cff67574bff6556
+49ff625346ff5e4e41ff5a4a3eff503d2eff564333ff5b4c42ff53443aff2f2824ff564e4bfff7f6f8fffffefffffcfefffffbfcfffffdfffffffdfefffffffffdfffffefcfffffffbffa39f9aff6c5a4bff5e4d3eff685647ff685748ff726051ff8f7d6eff968576ff998879ff988778ff988778ff988778ff988778ff988778ff988778ff988778ff988778ff928471ff998b78ff918472ff938674ff908575ff8d8171ff7a
+7063ff473d30ff4a4238ff50483eff48423aff635d56ffa7a39dff9d9892ffa5a19dffa4a19cffa1a19fffa1a19fffa1a19fffa1a19fffa1a19fffa1a19fffa1a19fffa1a19fff969593ff959593ff959593ff959492ff949492ff949392ff949392ff949391ff91918fff91918fff91918fff91918fff91918fff91918fff91918fff91918fff8e8e8cff8e8d8cff8e8d8cff8d8d8bff8d8c8bff8d8c8aff8c8c8aff8c8c8aff
+8a8a88ff8a8a88ff8a8a88ff8a8a88ff8a8a88ff8a8a88ff8a8a88ff8a8a88ff878785ff878785ff878785ff878785ff878785ff878785ff878785ff878785ff868281ff868281ff868281ff868281ff868281ff868281ff868281ff868281ff827e7dff827f7eff807c7bff7b7776ff7b7776ff7d7a79ff7d7978ff797674ff787368ff7e7a6fff96938cffefede6fff4f5f3fffffffefffdfffffffdfffffffffffffffefefe
+fffffefaffd4cecaff594e43ff5d5247ff645546ff625343ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff857a6aff837868ff8d8374ff695f4fff484032ff524a3dff484237ff3f382dff433f37ff413d35ff403e38ff3e3c36ff393935ff474643ff60615eff737471ff8a7f6fff897e6eff897d6dff897d
+6dff8a7d6eff8a7d6dff8a7c6cff887b6bff8a7b6cff8a7b6bff8a7a6bff8a796aff8a7969ff897869ff897768ff897768ff857263ff897667ff907c6bff7f6b5aff604b39ff594532ff634e3cff624e3cff514031ff867466ffebded5fffffff7fffffffcfffbf3f0fffffefffffefafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054ff816e5dff826f5dff826f5eff816e5dff816e5cff7f6c5bff7e6b5aff7d6a59ff7c6958ff7c6958ff7b6857ff7a6756ff796654ff776453ff766352ff766352ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff
+574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706d
+fff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffdfffffff9fcfbfffbfffffffafdffffe6ebedff626769ff1b1f22ff353a3cff313a40ff333b42ff3d4147ff4a4e54ff636166ff767479ff8a8386ff928b8eff958a8cff958a8cff958a88ff948987ff938984ff928883ff918782ff908781ff8b837fff8e8581ff8f8581ff8a807cff897b79ff887a79ff8a7a7aff897979ff867677ff5c4d4dff574a
+4cff524547ff786f71ffeee5e7fffffcfdfffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffeffffffff
+fffffffffffffffffefffffffefffffcf5f6fffffefffffffdffffccc2c4ff5d5153ff55494bff524547ff594c4eff685b58ff645755ff655856ff6d605eff786c69ff7f7270ff7f7370ff7e716fff7e716fff7d706eff7c6f6dff7a6e6bff796c6aff776b68ff766967ff756966ff776b6aff726665ff6c6261ff6c6361ff6c6564ff676160ff5a5758ff504d4eff484848ff3e3e3eff2e3233ff282b2cff404547ffb6bbbdff
+f7fdfffff5fbfdfffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150
+ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffff9f9f9fffffffffff8f8f8fffffffffff7f7f7ff727272ff65533fff675541ff665340ff64523eff6a5845ff796754ff8574
+61ff8b7967ff8c7b6aff8d7d6bff8e7e6eff908171ff918374ff938475ff938576ff938577ff948b76ff958b76ff958b77ff958b77ff958a78ff948977ff938778ff928777ff8f8376ff998c7fff93867bff7d7065ff685b52ff5c4e46ff5c4e46ff65574fff665e56ff625a52ff5d554dff5b544bff5f584fff625b52ff5d564dff564e46ff635c53ff625b52ff5f5850ff5c554dff595149ff564e46ff534c43ff524a42ff59
+544bff59544cff5a554cff5b564dff5c574eff5d584fff5e5950ff5e5950ff656058ff656057ff656057ff656057ff645f56ff645f56ff645f56ff635e56ff6b665dff6c675eff6d685fff6c675eff68635aff605b53ff59544cff555047ff635e55ff615c53ff5f5a51ff5d584fff5d584fff5a554cff575249ff544f46ff656254ff5f5b4eff5d584bff5e594cff5f594cff635c4fff71685cff7f766aff81766aff8c8175ff
+94867aff8f8176ff8b7b70ff8a7a6fff88786dff857469ff847466ff817163ff7e6e60ff7b6b5dff7a695cff776759ff746356ff716153ff6d5d4fff6b5b4dff69594bff68584aff665648ff635345ff5e4e41ff5b4b3dff503d2eff5b4839ff5d4e44ff514338ff2f2723ff716966fff7f6f8fffffefffffcfefffffbfcfffffdfffffffdfefffffffffdfffffefcfffffffbffa4a19bff6b5a4bff5e4c3dff675647ff685647
+ff716051ff8e7d6eff968475ff998778ff988677ff988677ff988677ff988677ff988677ff988677ff988677ff988677ff918976ff938b78ff8b8371ff908876ff928979ff8c8372ff766d5fff41372aff51473cff5a4f44ff5a4e46ff5b5047ff685c55ff554942ff5c4f49ff61544fff59534cff59534cff59534cff59534cff59534cff59534cff59534cff59534cff605a54ff605a53ff605a53ff5f5953ff5f5953ff5e59
+52ff5e5952ff5e5852ff5e5852ff5e5852ff5e5852ff5e5852ff5e5852ff5e5852ff5e5852ff5e5852ff5d5751ff5d5750ff5d5750ff5c5650ff5c564fff5b564fff5b554fff5b554fff5b554eff5b554eff5b554eff5b554eff5b554eff5b554eff5b554eff5b554eff5a544dff5a544dff5a544dff5a544dff5a544dff5a544dff5a544dff5a544dff5b544dff5b544dff5b544dff5b544dff5b544dff5b544dff5b544dff5b
+544dff5f5751ff605852ff5e5650ff5b544dff5e5750ff625b54ff625a54ff5d564fff615d52ff59544aff74726bfffbf8f2fffffffefffffffefff6f8f9fffcfdfffffffffffffdfdfdfffffef9ffd6d1ccff5b5045ff5d5247ff645445ff635444ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff89806fff
+817867ff8c8373ff756c5cff52483aff564d3eff5b5145ff53493dff544940ff52473eff544841ff4e423bff4d403bff685b56ff847773ff867975ff8a7e6eff887c6cff877a6aff877a6bff8a7d6dff8b7d6eff8b7c6dff897b6bff8b7b6bff8a7a6bff8b796aff8a7969ff8a7869ff897768ff897667ff887667ff846d5eff8c7566ff897263ff735c4dff5f4a3bff644f3fff655445ff5e4c3dff685b50ffc6b9adfffffff9
+fffffdf6fffffffcfffbf9f6fffdfffffffafcfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054ff816e5dff816e5dff816e5dff816e5dff806d
+5cff7f6c5bff7e6b5aff7d6a59ff7c6958ff7b6857ff7a6756ff796655ff786554ff776453ff766352ff766351ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff97
+8b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffcfffefff9fcfcfffbfffffff6fafbffacb0b2ff262a2cff25292bff393d3fff363f3dff38403fff434847ff545858ff6e6d6dff807f7fff8f8889ff938c8dff
+968a8cff958a8cff95898bff94878aff928688ff918587ff8f8486ff8e8485ff89807cff8e8581ff8f8480ff897e7bff887b79ff8b7d7bff8b7c7bff877878ff786a6bff584a4aff54494bff4f4446ffb3acadfffffefffffefbfbfffffcfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffafbfffffefffffffefffffff7f8ff908788ff4f4547ff4f4446ff5a4f51ff645755ff635653ff635654ff685b59ff736664ff7c706dff7f7370ff7e716fff7f726fff7e716fff7d706eff7b6f
+6cff7a6d6aff786b69ff776a68ff766a67ff766b6aff706564ff6b6160ff6c6260ff6d6564ff6a6262ff5f5a5bff575152ff484646ff434242ff323436ff282a2bff303537ff6a6f71ffe2e8eafff9fffffffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff92
+8885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffff8f8f8fffffffffff4f4f4ff939393ff65533fff685642ff675541ff64523eff675542ff75634fff82715eff8a7866ff8c7b6aff8d7d6bff8e7e6eff908171ff918374ff938475ff938576ff938577ff948a76ff948b76ff958b77ff958b77ff948a78ff948977ff938778ff928777ff908477ff8f8376ff92847aff93867cff8c7e75ff7f7269
+ff75675fff6f6159ff605850ff625b52ff655d55ff675f57ff696159ff6e665eff736b63ff766f66ff696159ff6a635aff6d655dff706960ff746d64ff787068ff7b736bff7c756cff78736aff78736aff78736aff79746bff7a756cff7a756cff7b766dff7b766dff767168ff757068ff757067ff757067ff757067ff746f66ff746f66ff746f66ff726d64ff746f67ff78736aff79746bff777269ff726d64ff6b665eff6762
+59ff5e5950ff5c574eff5b564eff5d584fff615c53ff645f57ff676259ff676259ff636052ff666355ff6e695cff757063ff797366ff7a7467ff81786cff877e72ff8f8377ff8f8478ff8f8276ff8b7d71ff8b7b70ff8c7d71ff8d7c71ff8b7a6fff857567ff827264ff7f6f61ff7c6c5fff7b6a5dff78685aff756557ff726254ff6e5d50ff6c5c4eff6a594cff68584aff665648ff635245ff5e4d40ff5a4a3cff544132ff61
+4e3eff5c4e43ff4e4035ff302925ff8d8682fff8f7f9fffffefffffcfefffffafcfffffdfffffffcfdfffffffffdfffffefcfffffffbffa5a29cff6b5a4aff5d4c3dff675646ff675647ff716050ff8e7c6dff958475ff988778ff978677ff978677ff978677ff978677ff978677ff978677ff978677ff978677ff948c79ff948c79ff8a8270ff8f8775ff8f8676ff89806fff756b5eff443a2cff5a4f44ff5a5045ff61554dff
+63574fff645851ff62564fff675b55ff675b55ff5d5751ff5d5751ff5d5751ff5d5751ff5d5751ff5d5751ff5d5751ff5d5751ff5b554eff5a554eff5a544eff5a544dff59544dff59534dff59534cff59534cff5c564fff5c564fff5c564fff5c564fff5c564fff5c564fff5c564fff5c564fff5d5751ff5d5750ff5d5750ff5c5650ff5c564fff5b564fff5b554fff5b554fff5d5851ff5d5851ff5d5851ff5d5851ff5d5851
+ff5d5851ff5d5851ff5d5851ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5953ff5f5851ff5f5851ff5f5851ff5f5851ff5f5851ff5f5851ff5f5851ff5f5851ff59514bff5a524cff5a524cff5a534cff605852ff655d57ff645c56ff5e5650ff524d42ff433f34ff5c5a53fffbf8f2fffffffefffffffefffbfdfefffdfffffffffffffffcfcfcfffffef9ffd8d2ceff5d5247ff5d5247ff6353
+44ff645445ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff928978ff847c6bff8a8171ff8b8272ff7b7263ff7b7263ff81766bff786e62ff7f746bff81766cff81756fff7a6e67ff766964ff857974ff8b7e7aff7d706cff877b6bff877a6aff867a6aff877a6bff897c6cff8a7d6dff8a7c6cff8a7b6bff8b
+7b6bff8a7a6bff8a796aff897869ff897768ff887667ff877566ff877465ff897163ff876f61ff725b4cff624c3cff675142ff655040ff574537ff564436ffb3a69afffff3e7fffffff9fffffff9fffdfcf9fffffffdfff2f4f4fffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdff
+fffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054ff816e5cff816e5dff816e5dff816e5cff806d5cff7f6c5aff7d6a59ff7c6958ff7b6857ff7b6857ff7a6756ff796655ff786554ff776452ff766352ff756251ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffc
+fffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcffffff
+fefff9fbfbfffdfffffff6f9f9fffdfffffff9fdfeffe7eaecff636769ff1e2325ff2d3133ff35393bff394140ff3d4544ff4b504fff5e6262ff787777ff878586ff928b8cff938b8dff968b8cff958a8cff95898bff948789ff928688ff908486ff8e8385ff8e8385ff887f7bff8c837fff8d827fff877c79ff897c7aff8c7e7dff897a7aff807170ff5f5152ff655758ff483d3fff776c6effefe8e9fffff8f9fffffefffffb
+f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffeffff
+fff9fafffffdfefffffeffffd3c9cbff594f51ff524749ff524749ff5f524fff615452ff635654ff655956ff6e615fff796c69ff7f726fff7f7270ff7f7370ff7f7270ff7d716eff7c6f6dff7a6e6bff796c6aff786b68ff776a68ff756a69ff716664ff6c6261ff6c6261ff6d6564ff6b6362ff635d5eff5d5758ff4f4e4eff484647ff383a3bff2b2d2eff2d3133ff393e40ffb4bbbdfff9fffffffcfcfffffdfefffffdfcff
+fffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefeffffff
+fffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffafafafffffffffff4f4f4ffbfbfbfff625242ff665646ff675645ff615140ff655340ff715f4cff816e5aff8a7763ff8e7c68ff8f7d69ff907f6dff92
+816fff928373ff938474ff938577ff938577ff998876ff9a8976ff998977ff998977ff988877ff978876ff958676ff948676ff958879ff8b7e6fff897d70ff908477ff93887cff978b7fff94897eff8a8074ff8c7f72ff8d8073ff8d8072ff897c6eff807466ff796d5fff776a5dff786b5eff7f7265ff7f7265ff807366ff817466ff827567ff827668ff837669ff837769ff817668ff817669ff817669ff817769ff817769ff
+817769ff817769ff817769ff817769ff817669ff817668ff807668ff807568ff7f7567ff7f7567ff7f7567ff796f61ff7b7163ff7d7365ff7f7567ff7f7567ff7e7366ff7b7163ff7a7062ff7f7467ff7d7265ff7c7163ff7c7264ff7f7567ff82786aff83796bff84796bff8b7f73ff8c8174ff8c8073ff8b7e71ff8d8072ff918477ff958677ff948677ff948474ff8f806fff8f7e6cff907f6dff907f6cff8f7e6aff8f7d6a
+ff907f6bff877668ff857465ff817061ff7f6e5fff7d6c5dff7b695bff776657ff746355ff705f50ff6e5d4eff6c5a4cff69584aff675647ff635243ff5e4d3eff5a493aff594637ff645142ff5b4c42ff4b3d32ff342c29ffa69e9bfffaf9fbfffefefffffcfefffffafcfffffdfefffffbfcfefffffffdfffffefcfffffffbffa6a39dff6b594aff5d4c3cff675546ff675646ff715f50ff8d7c6dff958475ff988777ff9786
+77ff978677ff978677ff978677ff978677ff978677ff978677ff978677ff968776ff998a79ff918272ff948675ff918373ff8d7f70ff847769ff5f5244ff6b5f52ff615549ff655b50ff665b50ff5d5349ff655b52ff655b52ff5c5249ff6e6357ff6e6357ff6e6357ff6e6357ff6e6357ff6e6357ff6e6357ff6e6357ff706559ff706459ff6f6459ff6f6458ff6f6458ff6e6358ff6e6357ff6e6357ff6f6358ff6f6358ff6f
+6358ff6f6358ff6f6358ff6f6358ff6f6358ff6f6358ff6d6257ff6d6257ff6d6256ff6d6156ff6c6156ff6c6155ff6c6155ff6b6055ff6d6256ff6d6256ff6d6256ff6d6256ff6d6256ff6d6256ff6d6256ff6d6256ff6c6156ff6c6156ff6c6156ff6c6156ff6c6156ff6c6156ff6c6156ff6c6156ff675c50ff675c50ff675c50ff675c50ff675c50ff675c50ff675c50ff675c50ff6d6156ff6e6257ff6d6256ff6e6257ff
+71665aff74695dff6f6358ff675b50ff514c42ff4d493eff65625cfffffff8fffbfbfafffffffdfffdfffffffdfffffffffffffffcfcfcfffffef9ffd9d4cfff5e5348ff5d5146ff625344ff645545ff705f50ff837263ff958475ff9b8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff8f7c6dff887565ff887566ff927f70ff917f71ff8f7e70
+ff928175ff8a796dff8a7a6fff8a7b6fff897b71ff8b7d73ff8f8178ff8f8279ff8a7d75ff857870ff887a6bff897b6cff8a7c6cff8b7d6dff8a7c6cff8a7b6bff8a7a6bff8a7a6bff8b7a6bff8b7a6aff8b786aff8a7768ff897667ff887566ff887465ff877364ff8b7263ff82695aff614a3cff5c4436ff685447ff574337ff53453aff84766bffefe7defffffff8fffbfaf4fffffffbfffcfffdfffcfffeffecf3f2fff9ff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054ff806d5cff806d5cff816e5cff806d5cff7f6c5bff7e6b5aff7d6a59ff7c6958ff7b6857ff7b
+6857ff7a6756ff796655ff776453ff766352ff756251ff756251ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffffdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff
+827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffafcfcfffdfffffffbffffffa7abacff2d3133ff303436ff323639ff34393bff3e4345ff464a4cff57585aff6b6c6eff827f7fff8e8b8bff968d8eff948b8dff978b8bff968b8aff958a88ff948886ff918784
+ff8f8682ff8d8580ff8c8480ff8a807cff8c837fff8b7f7cff857976ff887a79ff8b7e7cff827474ff736565ff534747ff615555ff52494bffb5acaefffffefffff7f4f4fffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffefafafffffdfefffffcfdfff7f1f2ff8b8586ff524b4cff4d4647ff594c4aff605351ff645755ff655856ff6a5d5bff756866ff7d716eff807371ff807371ff7f7370ff7e716fff7d706dff7b6e6cff796d6aff786c69ff786b68ff74
+6a68ff726866ff706664ff6f6564ff6f6565ff6d6363ff696062ff665d5fff5d5858ff4e494aff454546ff343335ff2c3133ff303436ff6c7475ffe6eeeffffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff
+7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fff7f7f7fffffffffffbfbfbfffbfbfbfffffffffff7f7f7ffe3e3e3ff625343ff675747ff675746ff625140ff63513eff6f5d4aff7f6c58ff897662ff8e7c68ff8f7d69ff907f6dff92816fff928373ff938474ff938577ff938577ff998875ff998875ff998976ff998976ff978877ff968776ff948676ff948575ff978a7cff96887aff988c7fff93877aff887c70ff8c8074ff91867bff8b8075ff938679ff8d8073ff8a7d
+70ff8d8072ff928577ff938678ff908476ff8f8275ff8b7e71ff8b7e71ff8b7e71ff8b7f71ff8c7f71ff8c7f72ff8c7f72ff8c7f72ff887e70ff887d70ff887d70ff887d6fff877d6fff877d6fff877d6fff877d6fff887d70ff887d6fff877d6fff877d6fff877c6fff867c6eff867c6eff867b6eff897f71ff897f71ff897f71ff897f71ff8a8072ff8b8073ff8c8174ff8c8274ff8a8072ff897f71ff897e70ff8a7f72ff8c
+8274ff8e8476ff8e8476ff8d8375ff8b7f73ff8e8276ff8e8275ff8b7f72ff8f8274ff938678ff928374ff897b6cff908170ff8c7d6cff8e7d6bff938370ff93826eff8b7a67ff8a7864ff8d7b67ff887768ff867466ff827162ff806e60ff7e6d5eff7b6a5cff786758ff756455ff716051ff6f5e4fff6c5b4cff6a584aff675647ff625143ff5d4c3dff594839ff5d4a3bff665344ff594b40ff493b30ff362e2bffb4aca9ff
+fbfafdfffcfcfefffcfefffffafcfffffdfefffffbfcfefffffffcfffffefcfffffffbffa6a39dff6b594aff5d4b3cff675546ff675546ff715f50ff8d7c6dff958475ff988677ff978676ff978676ff978676ff978676ff978676ff978676ff978676ff978676ff908070ff978777ff938473ff968777ff908273ff908373ff948779ff7a6d5fff867b6eff7c7064ff867b70ff857a6fff746a60ff80766cff82796fff797067
+ff81766aff81766aff81766aff81766aff81766aff81766aff81766aff81766aff7d7266ff7c7166ff7c7166ff7c7165ff7c7065ff7b7064ff7b7064ff7b7064ff766b60ff766b60ff766b60ff766b60ff766b60ff766b60ff766b60ff766b60ff70655aff706559ff706559ff6f6459ff6f6458ff6f6358ff6e6358ff6e6358ff6c6155ff6c6155ff6c6155ff6c6155ff6c6155ff6c6155ff6c6155ff6c6155ff675c50ff675c
+50ff675c50ff675c50ff675c50ff675c50ff675c50ff675c50ff63584cff63584cff63584cff63584cff63584cff63584cff63584cff63584cff62564bff62564bff5f5448ff5d5146ff5d5246ff5c5045ff53473cff483c31ff3c372dff4b473cff68655efffffff8fff2f2f0fffefffdfffdfffffff8fafbfffffffffffbfbfbfffffdf9ffdad4d0ff5f5449ff5d5146ff625243ff645546ff705f50ff837263ff958475ff9b
+8a7bff998879ff988778ff998878ff998879ff998879ff998778ff988677ff978576ff958475ff948374ff938273ff938172ff938070ff978474ff928071ff938172ff8f7d70ff8b796bff8f7e72ff8b7a6eff928377ff8a7a6fff807268ff87786eff8c7f76ff83766dff7e7169ff8b7e76ff887b6bff8b7e6eff8e8070ff8d7f6fff8b7c6dff88796aff89796aff89796aff8b7a6bff8b796aff8b7869ff8a7768ff897567ff
+887465ff877364ff877364ff816859ff7b6153ff5c4537ff60483aff6c584bff534033ff6f6156ffdccec3fffffff8fffffff6fffffffbfffaf8f3fffcfffefff3f6f4fff9fffffff9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffaffff
+fffafffffffefffefffdfffdfffffff9ffaba6a1ff3a2d24ff65584fff68564bff726054ff806d5cff806d5cff806d5cff806d5cff7f6c5bff7e6b5aff7d6a59ff7c6958ff7b6857ff7b6856ff7a6756ff796654ff776453ff766352ff756251ff756251ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcffffffffff
+fdfffffbfaff7a7473ff312b2aff5a5352ff615b59ff5d5554ff625a59ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff928885ff8e8381ff887d7aff827775ff7c726fff766c69ff706663ff6c625fff695f5cff645a57ff625855ff605653ff574c4aff4c413fff4e4340ff574d4aff6f706dfff3f4f0fffffffdfffefffcfffefefcfffffffefff9fbfbfffdfffffffdfffffff7faf9fffb
+ffffff595d5eff121719ff363b3dff35393bff35393bff414547ff4a4e50ff5e5f61ff727375ff888485ff918d8eff978e8fff958c8dff978b8bff968b8aff958a88ff948886ff918783ff8f8582ff8d8580ff8c847fff8b817dff8c827fff897e7bff827774ff877977ff897c7aff7d6f6eff6a5b5bff584c4cff514444ff6e6567ffe3dadbfffffefffffffdfefff3f3f3ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffefafafffffefffffffdfefffffefffffffbfdffccc6c7
+ff575051ff575051ff554846ff5f5250ff655956ff655855ff685b59ff736664ff7d706eff807471ff807471ff807370ff7e726fff7d706eff7b6f6cff7a6d6bff786c69ff786b69ff746a69ff746a68ff736967ff726766ff706666ff6e6464ff6c6364ff6b6264ff5e595aff4a4546ff4c4c4dff383739ff282d2fff34393bff2b3335ffc1c9cbfffcfcfffffdfefffffdfcfffffffefffffefefffffefdfffffffeffff7f7b
+7cff403a3bff423c3dff423a3aff5a5251ff675e5cff605755ff665c5bff615756ff796e6bff968c89ff978d8aff9a908dff9b918eff928885ff948a87ff8e8481ff897f7cff847a77ff7d7370ff776d6aff726865ff6d6360ff695f5cff665c59ff605753ff625855ff5b534fff574e4aff514a47ff453e3bff443f3dff575150ffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c7064ff66594dff5a4c3dff655748ff604e3bff74624fff735e48ff88735dff8b7660ff8f7a64ff917f6bff94826eff918271ff928271ff918375ff928476ff
+978674ff978674ff978574ff978574ff968574ff968574ff968575ff968575ff958575ff958576ff958576ff958677ff958678ff958678ff958779ff968779ff948373ff948373ff948373ff948473ff958474ff958574ff968574ff968575ff948373ff948373ff948373ff948373ff948373ff948373ff948373ff948373ff928373ff928373ff928373ff928373ff928373ff928373ff928373ff928373ff928372ff928372
+ff928372ff928372ff928372ff928372ff928372ff928372ff928373ff928373ff928373ff928373ff928373ff928373ff928373ff928373ff928373ff928372ff918372ff918372ff908271ff908271ff908271ff908171ff958474ff948474ff948473ff948373ff948372ff948372ff948371ff948271ff93816eff92806eff92806dff917e6bff907d6aff8f7c69ff8e7b67ff8e7b67ff8a7868ff887666ff847363ff816f
+5fff7d6b5bff7a6859ff786657ff776556ff736151ff726051ff705e4eff6d5b4bff685646ff625141ff5e4c3cff5b4939ff5b4839ff695646ff584a3fff4c3e33ff3a332fffc3bbb8fffcfbfdfffffefffffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaaa4ff6a5849ff5c4b3cff675546ff675546ff705f50ff8c7b6bff938172ff958374ff968576ff978576ff988677ff998778ff998879ff99
+8878ff998778ff988778ff968676ff968676ff958576ff948475ff938374ff928273ff908173ff908173ff8e7f72ff8d7f71ff8c7e71ff8b7e71ff8a7d70ff897c6fff887b6fff887b6fff8a7b6cff897a6cff897a6bff88796aff877869ff867769ff867768ff857668ff857667ff847567ff847566ff837465ff827364ff817264ff817263ff807163ff7d6e60ff7d6e60ff7d6e5fff7c6d5eff7b6c5dff7a6b5dff7a6b5cff
+796a5cff796a5bff78695bff78695aff776859ff766758ff756658ff756657ff746557ff736455ff726355ff726354ff716253ff706152ff6f6052ff6f6051ff6e5f51ff6e5f50ff6d5e50ff6d5e4fff6c5d4eff6b5c4dff6a5b4dff6a5b4cff695a4cff685a4bff68594bff67594aff665849ff655748ff655648ff645647ff645647ff655748ff635546ff635546ff655648ff605243ff57493aff514234ff4f4132ff423d33
+ff524d42ff615e57fffdfbf4fffffffefffffffefffcfefffffdfffffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff665647ff6f5e4fff827061ff938273ff988778ff968576ff968475ff978677ff988778ff988777ff988677ff978677ff968576ff958475ff958374ff948374ff948273ff968172ff958171ff958071ff948070ff937f70ff927e6fff917d6fff907d6fff8e7c6eff8e7c6eff8e7c
+6fff8e7c6fff8e7c6fff8e7c70ff8e7c70ff8e7c70ff8b7c6dff8b7c6cff8b7c6cff8b7b6cff8b7b6bff8a7a6bff8b7a6bff8b7a6bff8f7c6eff8a7869ff887465ff877365ff8a7567ff8a7667ff877263ff836d5fff775f50ff695143ff543f32ff624d40ff58483eff57473dffb3aaa3fffffdf6fffffffcfffffffcfffefffefffefffefffafffffffafffffff8fffffff8ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7e6b5aff7f6c5aff7f6c5bff7f6c5bff7f6c5aff7e6b5aff7d6a59ff7c6958ff7b6857ff7b6856ff7a6756ff796654ff776453ff766352ff
+756251ff756251ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff655c5bff857b7bff958b8aff948a89ff998e8dff9c9090ff978b8bff968a8aff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360
+ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff757673ffe8e9e6fffffffdfffffffdfffffffefffefffdfff4f6f6fffdfffffffdfffffffafdfdffb2b5b7ff313436ff191e20ff414547ff33373aff3d4143ff434544ff585a59ff727171ff828181ff8f8988ff928c8cff958b8aff928887ff968a89ff958a88ff948987ff938785ff8f8683ff8e8582ff8b8480ff8b837fff8a7f7cff877c
+79ff928683ff807471ff7d6f6eff8d807eff766968ff594b4bff584d4dff4b4040ffb0aaabfffffefffffbfbfbfffefefefffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf9fafffcfafafffffffffff7f4f4fffffefffff4f1f1ff777373ff534f50ff534644ff5e514eff675a57ff5a4d4bff5f5350ff6f6260ff6e625fff7f7370ff807370ff7d716eff7b6f6cff7a6d6bff7a6d6bff7a6d6bff796c6aff786b68ff726968ff726968ff726867ff716766ff716565ff
+706464ff6f6264ff6e6264ff655c5eff574e50ff494648ff454244ff313638ff292d2fff384042ff565e60fffcfdfffffcfcfffffdfcfffffffefffffbfbfcfff9f9fbfffffeffff7f7c7cff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff7b706dff968c89ff958b88ff988e8bff9b918eff948986ff948a87ff8e8481ff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5b
+ff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffb3a79bff5b4e42ff655647ff645546ff5f4d3aff6b5946ff715d47ff8b7761ff907b65ff907c66ff907e6aff93806cff928272ff948473ff928476ff928476ff958472ff958472ff958472ff958472ff958473ff958473ff948373ff948373ff938373ff938374ff938474ff938475ff938476ff938476ff948577ff948577ff948373ff948373ff948473ff958474ff958474ff968574ff968575ff96
+8575ff948373ff948373ff948373ff948373ff948373ff948373ff948373ff948373ff928473ff928473ff928473ff928473ff928473ff928473ff928473ff928473ff938574ff938574ff938574ff938574ff938574ff938574ff938574ff938574ff918372ff918372ff918372ff918372ff918372ff918372ff918372ff918372ff928473ff928473ff928372ff918372ff918272ff908271ff908271ff908271ff938272ff
+938272ff928271ff928271ff928170ff928170ff92816fff92816fff917f6dff917e6cff907e6bff8f7d6aff8e7b68ff8d7a67ff8d7a66ff8c7965ff877566ff857464ff837161ff7f6e5eff7c6a5bff796858ff786656ff776555ff736152ff726050ff6f5d4eff6c5a4aff675546ff635141ff5f4d3eff5d4b3bff635041ff5c493aff54463bff48392fff413a36ffebe3e0fffffefffffbfafcfffcfdfffffcfefffffdfeff
+fffbfcfefffffffdfffffefbfffffffbffadaaa4ff6a5849ff5c4b3cff675546ff675546ff705f50ff8c7a6bff938172ff958374ff968575ff978576ff988677ff988778ff998778ff998778ff988778ff988778ff978777ff968677ff958676ff958575ff938475ff928374ff918274ff918274ff8f8073ff8e8072ff8d7f72ff8c7e71ff8b7e71ff8a7d70ff897c70ff897c70ff8b7c6dff8a7b6dff8a7b6cff897a6bff8879
+6bff87786aff877869ff867769ff867768ff857668ff857667ff847566ff837466ff827365ff827364ff817264ff7f7061ff7e6f61ff7e6f60ff7d6e5fff7c6d5fff7c6d5eff7b6c5dff7b6c5dff796a5cff796a5bff78695bff78695aff776859ff766758ff756658ff756657ff736456ff736455ff726355ff726354ff716253ff706152ff6f6052ff6f6051ff6e5f51ff6e5f50ff6d5e50ff6d5e4fff6c5d4eff6b5c4dff6a
+5b4dff6a5b4cff695a4cff685a4bff68594bff67594aff665849ff655748ff655748ff645647ff665849ff645547ff645647ff655748ff615244ff57493aff514234ff4f4132ff423d33ff514d42ff605d56fffcfaf3fffffffefffffffefffcfefffffdfffffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff665647ff6f5e4fff817061ff938272ff988778ff968576ff968475ff978677ff988778ff
+988778ff988777ff978677ff978576ff968475ff958475ff948374ff948374ff968272ff968172ff958171ff948071ff937f70ff927e6fff917e6fff917d6fff8e7c6eff8e7c6eff8e7b6fff8e7c6fff8d7b6fff8d7c6fff8d7b6fff8d7c6fff8a7c6cff8a7b6cff8a7b6cff8a7b6bff8a7a6bff8a7a6aff8b796aff8a796aff8c7a6bff887567ff867263ff877364ff8a7567ff887364ff816c5dff7a6556ff765e4fff573f31
+ff6a5548ff5f4a3dff5a4a40ff95867cffefe6dffffffff8fffffffcfffffffcfffefffefffefffefffafffffffafffffff8fffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c
+87ff45382fff5f5249ff6b594dff746357ff7e6b5aff7e6b5aff7f6c5bff7f6c5bff7e6b5aff7e6b59ff7d6a58ff7c6958ff7b6857ff7a6756ff7a6755ff786554ff776453ff766352ff756251ff756251ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c
+5554ff625959ff5f5756ff655c5bff857b7bff958b8aff948989ff998e8dff9b908fff978b8bff968a8aff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff747571fff0f1eefffffffdfffbfcf9fffcfcfafffffffefff9fbfbfffdfffffff9fbfbfff4f6f6ff606365ff242829ff383c3eff262b2dff393e40ff
+404547ff4a4c4cff5f6161ff797878ff878586ff908a89ff938d8cff968c8bff948a89ff968a88ff958988ff948886ff928785ff8f8683ff8d8481ff8b8380ff8a837fff887e7aff857b77ff8d817eff8a7e7bff847674ff7e706eff6a5c5bff554747ff574c4cff6a5f5fffe4dedffffffefffff5f5f5fffffffffff2f5f5fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfafafffffffffffffffffff5f2f2fffffdfefffffeffffbbb7b8ff524e4fff5b4f4cff524643ff5e51
+4fff665956ff6b5e5bff665957ff635653ff807471ff7f7370ff7e716fff7d706dff7b6e6cff7b6e6cff7a6d6bff796c6aff786b69ff736a68ff726968ff736867ff726766ff726565ff716464ff6f6365ff6f6264ff696061ff5c5355ff4e4b4dff494649ff34383aff262b2dff2b3436ff41494bffbebfc1fffdfefffffffefffffffefffffffefffffffefffffffcfdff7d797aff403a3bff403a3bff403838ff5c5454ff69
+605fff5f5655ff655b5aff635957ff7a706dff968c89ff958b88ff988e8bff9b918eff938986ff948a87ff8e8381ff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8ded6ff544b43ff65584cff5e5144ff604f3cff614f3dff69543cff846e57ff917b63ff927c63ff907c66ff937f69ff918170ff938372ff908274ff8f8174ff938170ff938170ff938170ff938170ff938170
+ff938170ff938170ff938170ff938170ff938170ff938171ff948271ff948271ff958272ff958372ff958372ff968372ff968372ff968472ff978473ff978473ff978573ff988574ff988574ff968472ff968472ff968472ff968472ff968472ff968472ff968472ff968472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff948472ff9484
+72ff948472ff928270ff928270ff928270ff928270ff928270ff928270ff928270ff928270ff948472ff948372ff938371ff938371ff938271ff928270ff928270ff928170ff93806eff93806eff92806eff927f6eff927f6dff917f6dff917e6cff917e6cff8f7c6aff8f7c6aff8e7b69ff8d7a68ff8c7967ff8a7766ff8a7765ff897664ff857261ff847160ff826f5eff7f6d5cff7d6a59ff7b6857ff796655ff786554ff76
+6352ff736150ff705d4cff6b5948ff675443ff635140ff614e3dff5f4d3cff685546ff594637ff56473dff48392fff5b5350fffffffcfffffefffff8f7fafffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaaa4ff695849ff5c4b3bff665546ff665546ff705f50ff8c7a6bff928172ff948374ff968475ff968576ff978677ff988778ff998778ff988778ff988778ff988677ff988778ff978778ff
+978677ff968577ff958576ff948475ff948375ff948374ff928273ff928273ff928172ff918071ff907f71ff8f7f70ff8f7e6fff8e7e6fff8e7d6eff8e7d6eff8e7d6dff8d7c6cff8c7b6bff8b7a6bff8b7a6aff8a796aff897869ff897869ff897868ff887767ff877666ff867566ff867565ff857465ff837262ff837262ff827161ff817061ff806f60ff806f5fff7f6e5fff7f6e5eff7c6b5cff7c6b5cff7c6b5bff7b6a5a
+ff7a6959ff796859ff796858ff786758ff766556ff766556ff766555ff756454ff746353ff736253ff736252ff726152ff716051ff716051ff716050ff705f4fff6f5e4eff6e5d4eff6e5d4dff6d5c4dff6b5c4cff6b5b4cff6a5b4bff695a4aff685949ff685949ff675848ff675848ff685949ff665747ff665747ff675848ff625343ff59493aff524333ff514232ff423d33ff504c41ff5e5b55fffbf8f1fffffffeffffff
+fefffcfefffffdfffffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff665647ff6f5d4eff817061ff938172ff988677ff968475ff958475ff978676ff988677ff998778ff988778ff988677ff978677ff968576ff958475ff958374ff958374ff968372ff968372ff958272ff958171ff948070ff937f6fff927f6fff927f6fff907c6cff907c6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8f
+7c6cff8a7a6bff8a7a6bff8a7a6aff8a796aff8a796aff8a7869ff8b7869ff8a7869ff8a7667ff877364ff857062ff887264ff8a7466ff856f61ff7a6355ff6f584aff614e3fff5f4c3dff56473aff67574bff5d534bffeee4dcfffdf9f5fffffffcfffffffffffffffffffbfffffffbfffffffafffffffafffffffafffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7e6b5aff7e6b5aff7e6b5aff7f6c5aff7e6b5aff7d6a59ff7c6958ff7c6958ff7b6857ff7a6756ff796655ff786554ff776453ff766352ff756251ff746150ff706050ff6f5e4fff615243
+ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff655c5bff847b7aff958a8aff948989ff998d8dff9b908fff978b8bff968a8aff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c
+49ff4f4441ff4f4542ff554b48ff6d6e6bfff8f9f6fffffffdfff6f6f4fffbfcfafffffffefff9fbfafffdfffffffdffffffb7bab9ff1f2324ff292c2dff43484aff1e2224ff424749ff434749ff585854ff6d6d69ff85827fff8f8c88ff948c89ff948d8aff988d8bff988d8bff958987ff958886ff938785ff918684ff8e8582ff8c8381ff89827fff89827fff8a7f7bff887c79ff857976ff8f827fff867977ff6c5f5dff60
+5352ff574a49ff534a49ffa79e9efffffefffffffefffff5f7f7fffdfffffff1f7f6fff8fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffff7f7f7fffefefefff7f7f7fffffffffffafafaff757575ff5d504eff4c403dff594d4aff685b59ff6c605dff655956ff5e524fff766967ff7e716fff7e716fff7d716eff7d706eff7c6f6cff7a6e6bff796c6aff786b69ff726b69ff726a68ff746968ff726867ff746566ff736465ff736265ff726265ff6f6365ff65585a
+ff565154ff524d4fff3c4042ff2b2f31ff242d2fff2d3638ff737476fff0f0f3fffffefffffffefffffbfbfcfffffefffffffcfdff7e7b7bff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff7a706dff968c89ff958b88ff988e8bff9b908dff938986ff948a87ff8d8380ff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e
+4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf2ff797068ff60
+5346ff5b4e41ff685744ff645340ff634e36ff766049ff877159ff8c765eff8f7b66ff937f69ff8e7e6dff8d7d6cff8a7d6fff8c7e70ff917f6eff917f6eff917f6eff917f6eff917f6eff917f6eff917f6eff917f6eff917f6eff917f6eff927f6fff92806fff928070ff938170ff938170ff938170ff948270ff958271ff958271ff958371ff968372ff968372ff968472ff968472ff958371ff958371ff958371ff958371ff
+958371ff958371ff958371ff958371ff938371ff938371ff938371ff938371ff938371ff938371ff938371ff938371ff91816fff91816fff91816fff91816fff91816fff91816fff91816fff91816fff928170ff928170ff928170ff928170ff928170ff928170ff928170ff928170ff928270ff928270ff928270ff928170ff91816fff91816fff91806fff90806eff917e6dff917e6cff917e6cff907e6cff907d6bff8f7d6b
+ff8f7c6bff8f7c6aff8d7a69ff8d7a68ff8c7967ff8b7866ff8a7765ff897664ff887563ff877462ff82705fff826f5eff816e5dff7f6d5cff7d6b5aff7b6958ff796756ff786655ff786555ff756251ff705d4dff6a5847ff655242ff614f3eff5f4c3cff5e4c3bff655243ff635040ff55463cff4c3e33ff918a86fffffffcfffffefffffffefffffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaa
+a4ff695849ff5c4a3bff665545ff665545ff705e4fff8b7a6bff928172ff948374ff958475ff968575ff978676ff988677ff988778ff988778ff988677ff978677ff988778ff988778ff978678ff978677ff968577ff958576ff958576ff958476ff948374ff948374ff938274ff928273ff918172ff918071ff908071ff907f70ff907f70ff907f6fff8f7e6fff8f7e6eff8e7d6dff8d7c6dff8c7b6cff8c7b6cff8b7a6bff8b
+7a6aff8a796aff8a7969ff897868ff887768ff877667ff877667ff857465ff857464ff847364ff837263ff837262ff827161ff817061ff817060ff7e6d5dff7e6d5dff7d6c5dff7c6b5cff7b6a5bff7b6a5aff7a695aff7a6959ff786757ff786757ff776657ff766556ff756455ff756454ff746354ff746353ff736252ff736252ff726152ff716051ff705f50ff705f4fff6f5e4fff6f5e4eff6c5d4dff6c5d4dff6c5c4dff
+6b5c4cff6a5b4bff695a4aff69594aff685949ff695a4aff675848ff675848ff685949ff635444ff594a3aff524333ff514232ff423d33ff4f4b40ff5c5952fff8f6effffffffefffffffefffcfefffffdfffffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff665647ff6e5d4eff816f60ff928172ff978677ff958475ff958475ff978576ff978677ff998778ff988778ff988677ff978676ff968576
+ff958475ff958374ff948374ff978373ff968372ff968272ff958171ff948070ff938070ff937f6fff927f6fff8f7c6cff8f7c6cff8f7b6bff8f7b6bff8e7b6bff8e7b6bff8e7a6aff8e7a6aff897969ff897969ff887869ff887868ff897768ff887768ff897667ff897667ff887465ff857163ff857062ff877264ff887264ff806a5bff725b4dff654e40ff5e4a3bff5f4c3dff625246ff554539ffc6bbb3fffff6eeffffff
+fcfffffcf9fffffffffffffffffffbfffffffbfffffffafffffffafffffffafffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7d
+6a59ff7e6b5aff7e6b5aff7e6b5aff7e6b5aff7d6a59ff7c6958ff7b6857ff7a6756ff7a6756ff796655ff786554ff776452ff756251ff746150ff746150ff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff645b5aff847b7aff
+958a8aff938988ff998d8dff9b8f8fff978b8aff968a89ff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff666764fffafbf8fffffffdfffcfdfafffffffefffcfcfafff7f9f9fffdfffffffbfefdff585b5bff1e2223ff3b3f40ff323638ff323638ff464b4dff474b4dff646460ff787874ff8d8986ff928f8b
+ff938c89ff938b88ff978c8aff988d8bff948886ff948785ff928684ff908583ff8c8481ff8b827fff88817eff87817eff8b807dff8c817dff807370ff887b78ff817472ff635654ff5d504fff5a4d4dff645b5bffeae1e1fffffcfcfffffefffffdfffffff1f3f3fffafffffff3f9f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfff6f6f6fffffffffffafafafff5f5f5ffffffffffc0c0c0ff5e514fff504341ff5a4d4bff5d504eff625653ff6d605eff655956ff66
+5a57ff7b6e6bff7c706dff7e716fff7e716fff7d706dff7a6e6bff796c6aff796c69ff736b6aff736b69ff746968ff736867ff756667ff746566ff746366ff736366ff716567ff685c5eff5b5658ff575254ff45494bff363a3cff283233ff283133ff464749ffb9babdfffffefffffaf9fcfff6f5f7fffdfcfefffffefeff838080ff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff7a706dff
+968b89ff958a87ff988d8bff9a908dff938986ff948987ff8d8380ff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffbbb3aeff605449ff564b40ff695745ff6d5b49ff68523aff725b43ff7b644aff877056ff917c65ff96816aff8c7c6aff897867ff87796cff8b7d70ff907d6dff907d6dff907d6cff907d6cff907d6cff907d6cff917d6cff917d6cff917d6bff917d
+6cff927e6cff927e6cff937f6cff937f6dff947f6dff947f6dff927f6eff927f6eff927f6eff937f6fff93806fff938070ff948170ff948170ff93806fff93806fff93806fff93806fff93806fff93806fff93806fff93806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91806fff91
+806fff91806fff91806fff91806fff91806fff907f6eff907f6eff8f7f6eff8f7e6dff8f7e6dff8e7d6cff8e7d6cff8e7d6cff907c6bff907c6aff8f7c6aff8f7b6aff8e7b6aff8e7b69ff8d7a69ff8d7a69ff8b7868ff8a7867ff897767ff887566ff867465ff857364ff847263ff837162ff826e5dff826e5dff816e5cff806d5bff7f6b5aff7c6957ff7a6755ff796654ff796654ff766251ff705d4bff6a5745ff64513fff
+604d3bff5e4a39ff5c4937ff604d3dff665444ff44362bff594b40ffd6cecbfffff9f5fffcfcfefffffefffffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaaa4ff695748ff5b4a3bff655445ff655445ff6f5e4fff8b796aff928071ff948273ff958374ff968475ff968576ff978677ff988677ff988677ff978677ff978676ff978678ff978678ff978678ff978677ff978577ff978576ff978576
+ff978576ff968474ff968474ff968373ff958373ff958271ff948171ff948170ff938070ff928072ff918071ff917f71ff907f70ff8f7e6fff8f7d6eff8e7c6eff8e7c6dff8d7b6dff8c7b6cff8c7a6cff8b7a6bff8a796aff8a7869ff897769ff897768ff877567ff877566ff867566ff857465ff847364ff847263ff837263ff837163ff806e60ff806e5fff7f6d5fff7e6d5eff7d6c5dff7d6b5cff7c6b5cff7c6a5bff7a68
+5aff7a6859ff796759ff786758ff776657ff776556ff766556ff766455ff756355ff756354ff746254ff736253ff726152ff726051ff716051ff715f50ff6d5f50ff6d5e4fff6d5e4fff6c5d4eff6b5c4dff6a5b4cff6a5b4cff695b4bff6a5b4cff68594aff675949ff68594aff635445ff594a3bff524334ff514233ff423e33ff4e493fff595750fff6f4edfffffffdfffffffefffdfefffffdfffffffffffffffbfbfbffff
+fffbffded8d4ff62564cff5c5046ff625243ff665647ff6e5d4dff806f60ff928071ff978676ff958474ff958374ff968576ff978676ff988677ff978677ff978576ff968576ff958475ff948374ff948373ff948273ff948372ff948372ff948271ff938270ff92816fff92806fff917f6eff917f6dff8f7c6aff8e7c6aff8f7c69ff8e7b69ff8e7b68ff8d7a67ff8d7a67ff8d7a66ff887768ff887767ff887667ff877667ff
+887566ff877566ff887466ff887466ff887364ff867263ff877162ff867062ff836c5eff796254ff6c5446ff61493bff5c4f3fff584b3bff5a5144ff8f8579fffffffafffffef8fffffffffffcfcfcfffcfefffffcfefffffbfefffffbfefffffcfffffffcfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7d6a59ff7d6a59ff7e6b5aff7e6b5aff7d6a59ff7c6958ff7c6957ff7b6857ff7a6756ff796655ff786554ff776453ff766352ff756251ff746150ff74614fff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e
+45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff645b5aff837a79ff948a89ff938888ff988c8cff9a8f8eff968a8aff958989ff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff696a67fff7
+f8f5fffafbf8fffffffdfffffffefff8f9f7fffdfffffffdffffffbdc0c0ff262929ff2a2d2eff3e4142ff2c3032ff414547ff43484aff525759ff72706aff82807aff928d88ff94908aff938b86ff938a86ff968a87ff978b87ff948784ff938684ff908583ff8f8481ff8b8280ff89817eff86807dff867f7dff867a77ff8e827fff847774ff7d716eff786b69ff615351ff544847ff594c4cff9c9494fffffefefff9f7f7ff
+fdfbfbfffbffffffeef3f2fff8fffffff4fdfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffafafafffbfcfcfffefffffffefffffff6f8f8fffcfefefff5f7f7ff7b6e6cff564947ff534744ff564a47ff5d504dff6c5f5dff675a58ff645754ff756966ff796d6aff7d716eff7f7270ff7d706eff7a6e6bff7a6d6aff7a6d6bff736c6aff736c6aff756a69ff746968ff776768ff766566ff776467ff766366ff746568ff6e5f61ff5f595bff595255ff494d4fff3d4143ff2d37
+39ff263132ff38383bff717275fffcfbfdfffefdfffffdfcfefffdfcfefffffeffff827f80ff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff796f6cff958b88ff948a87ff978d8aff9a8f8dff928885ff938986ff8d827fff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1
+deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf6fff0e8e3ff7d7267ff594d42ff5d4b39ff695745ff6d573eff
+6d573eff735b41ff80684eff8b765fff927d66ff8a7968ff887766ff86796bff8b7d70ff8d7a6aff8d7a6aff8d7a69ff8d7a69ff8d7a69ff8d7a69ff8d7a69ff8d7a69ff8e7a68ff8e7a68ff8f7b68ff8f7b69ff907b69ff907c69ff917c69ff917c6aff8e7b6aff8e7b6aff8e7b6aff8f7b6bff8f7c6bff8f7c6cff907d6cff907d6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8f7c6cff8d7d6c
+ff8d7d6cff8d7d6cff8d7d6cff8d7d6cff8d7d6cff8d7d6cff8d7d6cff907f6eff907f6eff907f6eff907f6eff907f6eff907f6eff907f6eff907f6eff8e7d6cff8e7d6cff8e7d6cff8e7d6cff8e7d6cff8e7d6cff8e7d6cff8e7d6cff8c7b6aff8c7b6aff8b7b6aff8b7a69ff8b7a69ff8a7968ff8a7968ff8a7968ff8d7967ff8d7967ff8c7967ff8c7867ff8b7867ff8b7766ff8a7766ff8a7766ff877565ff877464ff8673
+64ff847262ff837162ff827060ff816f60ff806e5fff806c5bff806d5bff806d5bff7f6c5aff7e6a59ff7b6756ff786553ff766351ff74614fff725e4dff6e5a49ff695644ff64513fff604d3bff5d4a38ff5c4837ff5e4b3bff5c493aff3f3126ff7f7166fffffefbfffffbf8fffdfcfefffefdfffffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaaa4ff685748ff5b493aff655445ff655445ff6f
+5d4eff8a796aff918071ff938273ff948374ff958475ff968576ff978676ff978677ff978677ff978676ff978576ff968577ff968577ff968577ff968576ff968576ff968576ff978576ff978576ff978475ff968474ff968473ff958373ff958272ff948171ff948170ff948070ff928172ff928072ff918071ff917f70ff907e70ff8f7e6fff8e7d6eff8e7d6eff8d7c6dff8d7b6dff8c7b6cff8c7a6bff8b796bff8a796aff
+897869ff897869ff887668ff887667ff877567ff867566ff857465ff857364ff847364ff847263ff817061ff817061ff806f60ff806e5fff7f6d5fff7e6d5eff7e6c5dff7d6c5dff7b6a5bff7b6a5bff7a695aff7a6859ff796759ff786758ff786657ff776657ff766556ff766556ff756455ff756354ff746254ff736253ff736152ff726152ff6f6051ff6f6051ff6e5f50ff6d5f4fff6d5e4fff6c5d4eff6b5c4dff6b5c4d
+ff6b5d4dff695a4bff685a4aff695a4bff645546ff594b3bff524435ff514233ff423e33ff4d483eff57554efff4f2ebfffefefdfffffffefffdfefffffdfefffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff665647ff6e5c4dff806f5fff918071ff978576ff958374ff948374ff968475ff978576ff968576ff968575ff958475ff958374ff948273ff938273ff928172ff928172ff938271ff9382
+71ff938170ff92806fff91806eff917f6eff907e6dff907e6cff8e7c6aff8e7c69ff8e7b69ff8d7b68ff8d7a67ff8c7966ff8c7965ff8c7965ff867566ff867566ff867566ff867465ff867465ff867364ff867364ff867364ff877264ff877264ff867061ff816b5dff7a6355ff70594aff674f41ff614a3cff594c3cff594d3dff645a4efff9efe3fff9f4eefffffffafffffffffffdfdfdfffcfefffffcfefffffbfefffffb
+fefffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7d6a58ff7d6a59ff7d6a59ff7d6a59ff7d6a59ff
+7c6958ff7b6857ff7a6756ff796655ff796655ff786554ff776453ff766352ff756250ff746150ff73604fff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff645a5aff837a79ff948989ff938887ff988c8cff9a8e8eff968a8a
+ff958989ff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff70716efff5f6f3fff6f7f4fffffffdfffefefdfffbfcfafffdfffffff1f3f3ff5d6060ff303332ff252829ff2f3334ff3c4042ff3f4345ff424649ff63686aff7d7b75ff888680ff928e89ff928e89ff938a86ff928a85ff958986ff938884ff9386
+83ff928583ff8f8482ff8e8280ff8a817fff88807dff857f7cff857e7cff817471ff887c78ff8b7e7bff766a67ff6e615fff5e514fff4c403fff6b5f5effe1d9d9fffffefefffffffffff8f6f6fffbfffffffbfffffff0f9f8fff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefffffff3f4f4fffefffffffefffffff6f8f8fffdffffffb7aba8ff655856ff4d403eff5a4d4bff5f5250ff625553ff625553ff6c5f5dff6f6260ff756866ff7c6f6cff7e726fff
+7c706dff7a6e6bff7a6d6bff7b6e6cff746d6bff746d6bff766b6aff756a69ff786768ff776667ff776468ff776467ff746568ff716265ff625c5eff595255ff484c4eff404446ff2f393bff242f30ff343537ff404043ffcdcccffffdfcfffffffefffffffefffffffeffff7d797aff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff796f6cff958b88ff948987ff978d8aff998f8cff928885
+ff938986ff8c827fff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf7fffffbf7ffbfb4aaff72675dff5a4937ff63513fff715b41ff685138ff6f573cff755d42ff7b664eff846e57ff847361ff887765ff85786aff87796cff887565ff887565ff897565ff897565ff897665ff897665ff8a7664ff8a7664ff8b7664ff8b7664ff8c7664ff8c7764ff8d7764ff8d7864ff8e
+7864ff8e7864ff897667ff8a7767ff8a7767ff8a7767ff8b7868ff8b7868ff8b7868ff8b7869ff8b7868ff8b7868ff8b7868ff8b7868ff8b7868ff8b7868ff8b7868ff8b7868ff897968ff897968ff897968ff897968ff897968ff897968ff897968ff897968ff8b7a6aff8b7a6aff8b7a6aff8b7a6aff8b7a6aff8b7a6aff8b7a6aff8b7a6aff897868ff897868ff897868ff897868ff897868ff897868ff897868ff897868ff
+877767ff877766ff877766ff877666ff867665ff867565ff867565ff857565ff887564ff887463ff887463ff877463ff867363ff867363ff857263ff857263ff827061ff827061ff806f61ff7f6e60ff7d6c5fff7c6b5eff7b6a5dff7a6a5cff7d6a58ff7e6a58ff7e6a59ff7d6a58ff7b6756ff776452ff74614fff725e4dff6c5847ff6b5846ff6a5644ff685442ff65513fff624e3cff5f4c3aff5e4a38ff5e4b3bff523f30
+ff63554affc6b8adfffffffcfffffffcfffbfafcfffbfafcfffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaaa4ff685747ff5a493aff655344ff655344ff6f5d4eff8a796aff918070ff938272ff948374ff958374ff968475ff978576ff978677ff978676ff978576ff968576ff958476ff958476ff958475ff958476ff968475ff968475ff978475ff978475ff978474ff978474ff978372ff9683
+72ff968270ff958170ff95806fff95806fff928073ff918072ff918072ff907f71ff8f7e70ff8f7d6fff8e7d6fff8e7c6eff8d7b6eff8c7b6dff8c7b6dff8b7a6cff8a796bff8a786aff89786aff897769ff887668ff877668ff877568ff867567ff857466ff847365ff847265ff847264ff827163ff827063ff817062ff816f61ff806e60ff7f6e60ff7e6d5fff7e6d5fff7c6b5dff7c6a5dff7b6a5cff7b695bff7a685aff79
+685aff786759ff786759ff776658ff776558ff766557ff766456ff756355ff746355ff736254ff736254ff6f6153ff6f6153ff6f6052ff6e6051ff6d5f50ff6c5e50ff6c5d4fff6b5d4fff6c5e4fff695b4dff685a4cff695b4cff635547ff594b3cff524435ff504234ff423e33ff4c473dff56534cfff3f1eafffdfefcfffffffefffdfefffffcfefffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff
+665647ff6d5c4dff806e5fff918071ff968576ff948374ff948373ff958475ff968576ff958374ff948374ff948373ff938273ff928172ff928071ff918070ff917f70ff918170ff908170ff90806fff8f806eff8f7f6dff8e7e6cff8e7e6bff8e7d6bff8e7c69ff8d7c68ff8d7c67ff8d7b66ff8c7a65ff8b7964ff8b7963ff8b7863ff857465ff857465ff857364ff857364ff857364ff857263ff867263ff867263ff867162
+ff877163ff856e60ff7b6456ff6f5749ff664e40ff634b3dff644c3eff574f3eff635b4affbeb8abfffffff4fffffffbfff5f3eefffdfffffff6f9fafffafefffffafefffffbfefffffbfefffffefefffffefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffffff
+fffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7c6958ff7d6a58ff7d6a59ff7d6a59ff7d6a59ff7c6958ff7b6857ff7a6756ff796655ff796655ff786554ff776453ff756251ff746150ff73604fff73604fff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffb
+fcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff635a59ff837a79ff948988ff928887ff978c8bff9a8e8eff968a89ff958988ff918784ff8d8380ff877d7aff817774ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff6f706dfff5f6f3fff8f9f6fffffffdfff9faf8fffffffeff
+fdffffffb3b5b5ff282b2bff373a39ff2c2f31ff2c3031ff3f4446ff424648ff4e5254ff6f7476ff87847dff8d8a83ff938e87ff928d86ff958b86ff958c87ff958985ff918581ff928582ff918481ff8e8381ff8d827fff88807eff877f7dff847e7cff837d7bff867976ff7e726eff8e817eff6e615eff615452ff5b4e4cff534746ffa49998fffffbfbfffff9f8fffffffffffbfbfbfff6fcfbfffafffffff1fbfafff7ffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffdfe
+fefffdfffffff3f5f5fff9fbfbfffdfffffffafefdfff9fcfbfff4e8e5ff877b78ff574b48ff594c4aff5b4e4bff615451ff645755ff6c605dff695c5aff716462ff796d6aff7d716eff7c706dff7a6d6bff7b6e6bff7c6f6dff746e6cff746d6bff776c6bff766a69ff796869ff786768ff796568ff796468ff726264ff746466ff686063ff5d5658ff4c5052ff45494bff343f40ff273233ff2e2f32ff37383aff7e7d80ffe9
+e8ebfffffefffffefefffffffdfeff7b7778ff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff796e6cff958a87ff938986ff978c89ff998f8cff928785ff938885ff8c827fff897e7bff847a77ff7e7371ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefeffffffffff
+fcfcfcfffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffff6ecff978c82ff675643ff665543ff796249ff664f36ff6c5439ff6b5338ff6b563eff756048
+ff7d6c5aff867563ff837668ff817366ff857262ff857262ff857262ff857262ff867261ff867261ff877261ff877261ff877360ff887361ff887360ff897361ff8a7461ff8a7461ff8b7561ff8b7561ff877464ff877464ff877465ff887565ff887565ff897666ff897666ff897666ff897666ff897666ff897666ff897666ff897666ff897666ff897666ff897666ff877766ff877766ff877766ff877766ff877766ff8777
+66ff877766ff877766ff857464ff857464ff857464ff857464ff857464ff857464ff857464ff857464ff857564ff857564ff857564ff857564ff857564ff857564ff857564ff857564ff857564ff857464ff857464ff847463ff847363ff837363ff837362ff837262ff857160ff857160ff857160ff847160ff837060ff836f5fff826f60ff826f60ff7f6d5eff7f6d5eff7d6b5eff7c6a5cff7a695bff79685aff78675aff77
+6659ff7b6856ff7c6856ff7c6857ff7b6756ff786553ff75614fff715d4cff6e5b49ff655240ff665240ff665341ff665341ff665240ff63503eff624e3cff604d3bff5d4b3bff503d2eff93857afffff8edfffaf2effffffffcfff8f7f9fffefdfffffcfdfffffcfefffffdfefffffbfcfefffffffdfffffefbfffffffbffadaaa4ff685647ff5a493aff655344ff655344ff6e5d4eff8a7969ff917f70ff938172ff948374ff
+958374ff968475ff978576ff978676ff978576ff968576ff968576ff948375ff948375ff958375ff958375ff958374ff968475ff968474ff968474ff978474ff978373ff978372ff968271ff968170ff95816fff95806eff94806eff928072ff918072ff917f71ff907f71ff8f7e70ff8e7d6fff8e7c6fff8d7c6eff8d7b6dff8c7b6dff8c7a6cff8b7a6cff8a796bff89786aff89776aff887769ff887668ff877668ff877568
+ff867567ff857466ff847365ff847265ff837264ff837164ff827163ff827163ff817062ff806f61ff806e60ff7f6e60ff7f6d5fff7d6b5eff7c6b5dff7c6b5dff7b6a5cff7a695bff7a685aff79685aff796759ff786659ff776658ff776658ff766557ff756456ff756355ff746355ff746254ff706254ff706253ff6f6153ff6e6052ff6e5f51ff6d5f50ff6c5e50ff6c5e4fff6c5e50ff6a5b4dff695b4cff695b4dff6456
+47ff594b3dff524436ff504234ff423e33ff4b473cff55524bfff2f0e9fffdfdfcfffffffefffdfefffffcfefffffffffffffbfbfbfffffffbffded8d4ff62564cff5c5046ff625243ff665647ff6d5c4dff806e5fff918071ff968576ff948374ff948273ff958475ff968576ff948273ff938273ff938272ff928172ff918071ff917f70ff907f6fff907e6fff90806fff8f806fff8f806eff8e7f6dff8e7e6cff8d7d6bff8d
+7d6aff8d7c6aff8e7c69ff8d7c68ff8d7b67ff8c7a66ff8c7a65ff8b7964ff8a7863ff8a7862ff857364ff857364ff857364ff847263ff857263ff847263ff857162ff857162ff856f61ff867062ff836c5eff766051ff675042ff5f4739ff61493bff664e40ff554c3cff9b9382fffffaedfffffff6fffffffbfffffef9fff2f5f6fffdfffffffafefffffafefffffbfefffffbfefffffefefffffefeffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfffffffbfffffffafffffffafffffffefffefffdfffdfffffffaff918c87ff45382fff5f5249ff6b594dff746357ff7c6958ff7c6958ff7d6a59ff7d6a59ff7d6a58ff7c6958ff7b6857ff7a6756ff796655ff796654
+ff786554ff776452ff756251ff746150ff73604fff73604fff706050ff6f5e4fff615243ff57483aff514539ff4b4033ff484036ff574e45ffbfbbb4fffffffafffffffcfffffffcfffbfcfcfffefffffff8fbfbfffcfffffffffdfcfffffffdff8a8483ff2e2827ff5c5654ff5c5554ff625959ff5f5756ff635a59ff837979ff938988ff928887ff978c8bff9a8e8eff958989ff948888ff918784ff8d8380ff877d7aff8177
+74ff7c726fff776d6aff716764ff6d6360ff695f5cff665b58ff625855ff5e5451ff564c49ff4f4441ff4f4542ff554b48ff696a67fff5f6f3fffdfefbfffffffdfff9f9f7fffffffeffeef0f0ff727473ff282b2aff272a2aff434748ff383c3dff323638ff4f5355ff5c6163ff74787aff8c8982ff908d86ff938d87ff928c86ff958c87ff978e89ff968a86ff908480ff918481ff918481ff8e8380ff8c817fff88807eff86
+7e7cff847d7bff837d7aff908481ff786b68ff8d807dff665956ff564846ff594c4aff625655ffe1d5d4fffffaf9fffffefdfff8f8f8fffffffffff6fcfbfff0f6f5fff7fffffff0faf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff7f9f9fffdfffffffdfffffff6f9f8fff5f8f7fffcfffffffafdfdfffffefcffa99d9aff6a5d5aff524543ff504341ff695c59ff6e615fff635754ff655956ff6e625fff786b69ff7d706eff7c6f6dff7a6d6bff7b6e6bff7d706eff756e6c
+ff746e6cff776c6bff766b6aff7a6869ff786768ff796568ff796568ff6e5e60ff746466ff6b6467ff625b5eff525658ff4d5053ff3b4647ff2d383aff29292cff424346ff3c3b3dffcfced1fff9f9fafff9f9fafffefafbff7d7a7bff403a3bff403a3bff403838ff5c5454ff69605fff5f5655ff655b5aff635957ff796e6bff948a87ff938986ff968c89ff998f8cff928784ff928885ff8c827fff897e7bff847a77ff7e73
+71ff786d6bff736865ff6e6360ff685e5bff655b58ff615854ff635955ff5c534fff574e4bff504947ff453e3bff433e3cff56504fffe1deddfffffffefffffffffffefefefffffffffffcfcfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffbffd4d0cbff7f776eff5a5249ff695a4cff645647ff735e4aff74604cff755b42ff6d533aff77593cff86684bff927152ff907050ff826a5cff836b5dff846d5fff856e60ff856e60ff836d5eff816b5dff7f6a5bff826e5fff826e5fff816e5fff826e5fff816e5fff816f5fff816f5fff816f60ff846e5dff846f5eff846f5eff
+846f5eff846f5eff846f5eff846f5eff846f5eff897362ff887362ff887362ff887261ff877261ff877160ff877160ff867160ff867261ff867261ff867261ff867261ff867261ff867261ff867261ff867261ff857160ff857160ff857160ff857160ff857160ff857160ff857160ff857160ff857361ff857361ff847261ff847260ff83715fff83715fff82705fff82705eff816e5dff806e5dff806e5dff806e5dff806e5d
+ff806e5dff806e5dff806e5cff816c63ff816c62ff806c62ff806b61ff7f6a60ff7e6960ff7e695fff7d695fff7b665cff7c675dff7d685eff7e695fff7d685eff7a665cff786359ff766157ff80644bff82674dff86684fff82644bff7e5c45ff78563fff77543dff77543dff74523dff74533dff6e513cff6c503aff68533dff6a553fff604f39ff57462fff383838ff6a6a6affcacacaffffffffffffffffffffffffffffff
+fffff7f7f7fffefefefffffffffffffffffffffffffffffffffff9f9f9fffefefeffaeaeaeff5d5244ff5b5043ff5e5245ff65594cff6d6154ff776a5dff84776aff8f8275ff918275ff918275ff928275ff928275ff938275ff938275ff938275ff938275ff948376ff948376ff948376ff948376ff948376ff948376ff948376ff948376ff928074ff928074ff928074ff928074ff928074ff928074ff928074ff928074ff91
+7f73ff907f73ff907e72ff907e72ff8f7d71ff8e7d71ff8e7c70ff8e7c70ff8c7a6eff8b796dff8b796dff89786cff89776bff88766aff877569ff877569ff867568ff867468ff857467ff847266ff837266ff827164ff827064ff817063ff816f63ff816f63ff806f63ff806e62ff7f6d61ff7f6d61ff7e6d61ff7e6c60ff806b5fff806a5fff7f6a5eff7e685dff7e685cff7c675bff7c665bff7b665aff7a6459ff7a6458ff
+796358ff786257ff776156ff766055ff766054ff755f54ff746055ff736054ff735f54ff725e52ff715e52ff705c51ff6f5c50ff6f5b50ff6f5c50ff705d51ff705d51ff6c594dff645145ff5c483cff554135ff513e32ff4b3a2fff554439ff5e524bfffdf2ebfffffefdfffffffdfff9fcfefffafdfffffdfffffff8f9fbfffffdf9ffe0dad6ff6a5b4fff625347ff675140ff6a5443ff6f594eff7e685dff8f796eff988276
+ff968075ff937e72ff957f73ff988277ff968075ff968074ff957f74ff947e73ff937d72ff927c71ff927c70ff917b70ff927d6eff927d6eff917c6dff907b6cff8f7a6cff8e796aff8e796aff8d7869ff8b7768ff8b7667ff8a7667ff897466ff887465ff877364ff877263ff867263ff86716bff86716aff897067ff876e65ff8c6d61ff8a6b60ff8c6b5cff8b6a5bff927363ff7f6050ff8e7767ff654f3fff584a3bff5e50
+41ff5a5345ff4f4739ff737373ffe0e0e0fffffffffff5f5f5fffffffffffffffffff8f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffdfffffffdfffafffffffafffffff9fefffff9
+fefffffdfefffff4f6f8fffdf7f2ff96908bff514234ff635446ff6b5742ff786450ff7d685aff7d6859ff7c6859ff7c6758ff7b6658ff7b6657ff7a6557ff7a6556ff786354ff786354ff776253ff776253ff766152ff766152ff756051ff756051ff73614bff72604bff685945ff594a36ff493f2dff493e2dff494537ff4f4b3dffbec0b5fffffff7fff9fffafff8fff9ffeffdf7fff5fffdffedfdf9fff2fffefffbfffbff
+f6fdf6ff848983ff2a2f29ff5c5e58ff5b5d58ff54544fff595954ff65615cff7b7773ff908985ff928b87ff948b87ff988e8aff978c88ff908581ff8d8782ff89827eff837c78ff7c7672ff77716cff716a66ff6b6460ff66605cff6f6965ff605a55ff58524dff5a544fff554f4bff4a443fff4a4440ff554f4bff787071fff3ebecfffffffffff8f5f6fffbfffffffbffffffb3bdbbff2d3635ff28302fff2c3433ff373737
+ff3b3b3bff4b4344ff5e5557ff7c6d6fff8f7f82ff938a86ff938a86ff938986ff928885ff918884ff908783ff908683ff8f8682ff8b817eff8a807dff887f7bff867d79ff847a77ff817874ff807773ff7f7672ff827476ff7d6f71ff776a6cff5a4d4fff524749ff5d5254ff898283fffffefffffffefffffffefffffffffffffffffffffdfffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff5f5f0fffffffbff6a6964ff42413cff56524dff524e49ff5f5753ff625b57ff5b504cff695e5aff766865ff796a67ff7e6d6bff847370ff816e6cff776563ff726865ff726864ff716764ff716764ff706663ff706662ff6f6562ff6f6562ff6b615dff6a605dff6a605cff695f5cff675d59ff5f5551ff544a46ff4b413eff232726ff383b3bff3f4141ff6c6e6efffefefefffffffffffffeffff7e7a7bff
+463f40ff433c3dff423839ff524749ff6c5f61ff6e6163ff66575aff66585aff7a706cff867c78ff928885ff968c89ff918783ff8c827eff8d837fff908682ff877d7aff857b77ff807673ff7a706dff746a67ff6e6461ff6a605dff685e5aff6b595cff614f52ff625255ff635356ff4e4143ff443739ff4c4446ff5c5455ffe0dcddfffffcfdfffefffffffefffffffbfffffff5faf9fff9fffffff9fffeffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcf9fffffffdfffffffbfffffffaffdbd2c9ff797067ff4e3f31ff6c5e4fff604c37ff66513dff72583fff765c42ff7e6042ff7e6043ff7b5a3bff725232ff7a62
+54ff7a6354ff7b6455ff7c6556ff7d6758ff7f695aff806a5bff816b5dff7d695aff7e6a5bff7d6a5bff7e6b5cff7e6c5dff7f6d5dff7f6d5eff7f6e5eff826d5cff826d5cff836d5cff836d5cff836e5dff836e5dff846e5dff846e5dff836d5cff826d5cff826d5cff826d5cff826c5bff826c5bff826c5bff826c5bff826d5cff826d5cff826d5cff826d5cff826d5cff826d5cff826d5cff826d5cff816c5bff816c5bff81
+6c5bff816c5bff816c5bff816c5bff816c5bff816c5bff806e5cff806e5cff7f6d5cff7f6d5bff7e6c5bff7e6c5aff7e6c5aff7d6b5aff7e6c5bff7e6c5bff7e6c5aff7e6c5aff7d6b5aff7d6b5aff7d6b59ff7d6b59ff7d685eff7d685eff7c685eff7c675dff7b665dff7b665cff7a665cff7a655cff7b675dff7c675dff7b675dff7b665cff79645aff766157ff745f55ff725d53ff7c6047ff795d44ff76583fff705239ff
+6f4d36ff704e37ff75513bff78553eff795842ff775540ff70543eff6f533dff69533dff68523cff64533cff63523cff5a5a5affbababafffffffffffffffffff4f4f4fff8f8f8fffffffffffffffffffefefefffffffffffffffffffffffffffffffffff9f9f9fffefefeffaeaeaeff5b5043ff5d5245ff5f5346ff615649ff6f6255ff827669ff918376ff95877aff8d7e72ff8d7e72ff8f7e72ff8f7e72ff8f7e72ff8f7e72
+ff907e72ff907e72ff907e72ff907e72ff907e72ff907e72ff907e72ff907e72ff907e72ff907e72ff8e7c70ff8e7c70ff8e7c70ff8e7c70ff8e7c70ff8e7c70ff8e7c70ff8e7c70ff8c7a6eff8c7a6eff8c7a6eff8b796dff8b796dff8a786cff8a786cff8a786cff907e72ff8f7e72ff8f7d71ff8e7c70ff8d7b6fff8c7b6eff8c7a6eff8b7a6dff8a796dff8a786cff89786cff89776bff88766aff877569ff867568ff8674
+68ff847266ff847266ff847266ff837165ff837165ff827064ff827064ff827064ff836e62ff836d62ff826d61ff826c60ff816b5fff806a5fff7f695eff7f695eff7e695dff7e685dff7d685cff7d675bff7c665aff7b655aff7a6459ff7a6459ff786459ff786458ff776358ff766357ff756256ff746155ff746054ff736054ff715e52ff715e52ff715d51ff6e5b4fff69554aff614d41ff594539ff534034ff4d3c30ff54
+4237ff594e47fffaefe8fffffffefffffffefffcfffffffcfffffffcfefffffcfefffffffffbffdcd7d2ff605145ff5e4f44ff6a5443ff6e5847ff786256ff836d61ff907a6eff968075ff957f73ff927c70ff917c70ff937d72ff927c71ff927c70ff917b70ff907a6fff8f796eff8e796dff8e786cff8d786cff8a7567ff8a7566ff897466ff887465ff877364ff877263ff867162ff867162ff877263ff877263ff867162ff
+857062ff846f61ff836f60ff836e5fff826e5fff816c66ff816c65ff856b63ff846a62ff88695eff87685dff896859ff896859ff7e5f4fff927463ff604a3aff695242ff544738ff544738ff595243ff655d4fffc1c1c1fffffffffffffffffffcfcfcfffffffffffefefefff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffdfffffffdfffafffffffafffffff9fefffff9fefffffcfefffffdfefffffffffbff918b86ff443628ff615344ff725e4aff7e6a56ff7c6758ff7c6758ff7b6758ff7b6658ff7b6657ff7b6657ff7b6657ff7a6657ff786455ff786354ff786354ff776354ff776253ff766253ff7661
+52ff766152ff73614cff6c5a45ff61523eff5a4b37ff524836ff504634ff4b4738ff4d493affbcbeb3fffffff7fff9fffafff9fffafff1fef9fff5fffdffeefefafff2fffefffafffbfff9fff9ff878c86ff222721ff4f514bff575953ff5b5b55ff64635eff635f5aff77736fff8a837fff8d8682ff8f8682ff948a86ff948986ff8f8481ff87817dff837d78ff7d7772ff77716cff716b67ff6b6561ff655f5bff615b56ff5b
+5551ff5f5954ff625c57ff5f5954ff56504bff4e4843ff4d4742ff4f4945ff797072fffdf4f5fffaf7f7fffefbfcfffbfffffff3f8f7ff6d7775ff1f2827ff333b3aff303837ff373737ff3f3f3fff584f50ff6c6365ff837376ff8c7d7fff857c78ff857b78ff837a76ff827875ff807673ff7e7571ff7c736fff7c726fff786f6bff776e6aff776e6aff766d69ff756c68ff746b67ff736a66ff736a66ff76686aff6e5f62ff
+5f5254ff514446ff5e5355ff655a5cffd2cbccfffffefffffffefffffffefffffffffffffffffffffdfffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffefdf8ffacaba6ff474540ff5c5853ff4e4a45ff68615dff665e5aff6a5e5bff675c58ff665754ff645552ff6b5a58ff72615eff72605eff6d5b58ff6c625eff6c625eff6b615eff6b615dff6a605dff6a60
+5cff6a605cff695f5cff6d635fff6c625eff6c625eff6d635fff6b615eff665c58ff5e5450ff574d4aff343736ff2a2d2cff2a2c2cff565858ffc3c3c3fffffffffffcf8f9ff8c8889ff362f30ff3c3536ff483d3fff5c5153ff706265ff695b5eff605254ff67585aff7c726fff867c78ff908682ff948a86ff918784ff8e8481ff8f8581ff918784ff8a807cff877d79ff827874ff7b716dff746a66ff6d635fff685e5aff65
+5b57ff6a585bff675558ff605052ff5a4a4dff4f4244ff493c3eff4a4243ff574e50ffe4e1e2fffffefffffefffffffefffffffbfffffff5faf9fff9fffffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffff8f8f8fffffffffffffcf9fffffffdfffffffaffcec7c1ff807469ff5d5146ff736252ff756453ff7b6550ff76604bff70563dff6b5138ff775a3fff83674cff745a44ff735a43ff725942ff725942ff745a44ff775d47ff7a604aff7d624cff7d634cff7e634dff7e644dff7f654eff80654fff816750ff826751ff826851ff806754ff806754ff806855ff816855ff816956ff826956ff826956ff826a57
+ff816855ff816855ff816855ff816855ff816855ff816855ff816855ff816856ff826a57ff826a57ff826a57ff826a57ff826a57ff826a57ff826a57ff826a57ff816956ff816956ff816956ff816956ff816956ff816956ff816956ff816956ff7f6956ff7f6956ff7f6956ff7f6955ff7e6855ff7e6855ff7e6855ff7e6854ff7f6956ff7f6955ff7f6955ff7e6855ff7e6854ff7d6754ff7d6753ff7d6753ff7f634fff7f63
+4fff7f634fff7e634fff7e634eff7e624eff7e624eff7e624eff7c604cff7b5f4bff7a5e4aff785c48ff765b46ff745945ff735843ff725742ff6e543bff6f553cff735740ff775b44ff7d5f49ff80614cff80614dff7f604cff765a48ff705341ff6a5342ff705949ff6b5b4aff665545ff605444ff655848ffafafaffffbfbfbfffffffffff5f5f5fff9f9f9fffffffffffcfcfcfffcfcfcfffefefeffffffffffffffffffff
+fffffffffffffff9f9f9ffffffffffafafafff65523dff67543fff65513cff64503bff715c47ff85715cff907a65ff8d7762ff927b67ff927b67ff937b67ff937b67ff947b67ff947b67ff957a67ff957a67ff937a66ff937a66ff937a66ff937a66ff937a66ff937a66ff937a66ff937a66ff927864ff927864ff927864ff927864ff927864ff927864ff927864ff927864ff907763ff907763ff907763ff907662ff8f7662ff
+8f7662ff8f7562ff8f7561ff8a705dff8a705cff89705cff886f5bff886e5aff876d5aff876d59ff866d59ff856c58ff856c58ff856b57ff846a56ff836a56ff826955ff826955ff826854ff816854ff816753ff816753ff806753ff806753ff806652ff806652ff7f6652ff7f6450ff7f6350ff7e634fff7e624fff7d624eff7c614dff7c604dff7b604cff7c614dff7c604dff7c604dff7b5f4cff7a5f4bff795e4aff795d4a
+ff795d4aff765d49ff765d49ff765c49ff755c48ff745b47ff735a46ff735a46ff735946ff745b47ff735946ff725945ff725945ff705743ff69503cff5f4632ff573e2aff4d3d33ff514136ff554b44fff7ede6fffffdfcfffffffefff9fdfffffbfefffffbfdfefffdfffffffffffbffdcd7d2ff615348ff615348ff695445ff675343ff795e4aff7f6350ff856a56ff896e5aff896d5aff876b58ff856956ff846855ff8468
+55ff846855ff836854ff826753ff826653ff816552ff816552ff806551ff7c624bff7c614bff7b614aff7a6049ff7a5f49ff795f48ff795e48ff785e47ff725741ff715740ff715740ff70563fff70553fff6f543eff6e543dff6e543dff6e5242ff6d5242ff705240ff705140ff74513dff74503dff75513bff75503bff7b5a44ff785741ff654c37ff664d38ff5a4a38ff5d4d3bff504634ffb1a795fff7f7f7ffffffffffff
+fffffffdfdfdfffffffffffbfbfbfff8f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffbfffffffbfffffff9fefffff9fefffffafbfefffdfefffffffffbff8c8682ff
+413327ff65584bff73604eff73614fff70563fff70563fff70563fff715640ff715640ff715740ff715740ff715740ff6f553eff6f543eff6f543eff6e543dff6e543dff6e533dff6e533dff6d533cff745947ff6d5240ff674f3dff654d3bff5a4637ff533f31ff504236ff5a4b40ffc2bab1fffffff8fffffffafffffffbfffdfefbfffffffdfff8fcfafffcfffefffffdf9fffffffbff918d89ff292621ff554f4bff5e5854
+ff605753ff635a56ff6d615eff7d716eff8c7d7bff8f807dff91807eff978583ff998784ff968481ff8e7d7bff8a7a77ff857472ff7f6f6dff7b6b68ff766563ff70605eff6c5c5aff685856ff675754ff685856ff675754ff5c4b49ff51403eff534341ff5e4e4cff6f6667fffff7f9fffcf7f8fffffefffffdffffffbbbdbdff2b3231ff272e2dff363c3bff313635ff363435ff413f40ff5c5253ff6b6163ff766568ff7464
+67ff756260ff74615fff73605eff725f5dff715e5cff705d5bff6f5c5aff6e5b59ff6e5b59ff6e5b59ff6e5c5aff6f5c5aff6f5c5aff705d5bff705d5bff705d5bff6f6164ff615456ff574b4dff55494bff5a5052ff908688fffdf6f7fffffcfdfffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfdf8ffeceae5ff
+6d6b67ff4f4b46ff4b4642ff5c5551ff5f5854ff615754ff635855ff695c59ff6c5f5cff6c5d5aff695a57ff6d5c5aff736260ff6e5c5aff6e5c5aff6d5c59ff6d5b59ff6d5b59ff6c5b58ff6c5a58ff6c5a58ff6b5957ff6b5957ff6b5a57ff6c5b58ff6d5b59ff6b5957ff675553ff63514fff454847ff2a2d2cff252726ff404241ff7f7f7ffffffffffffbf8f8ff817e7eff474042ff423c3dff473d3fff5d5355ff726668
+ff685d5fff605255ff695b5eff877673ff8c7a78ff92807eff968482ff968482ff968482ff968482ff978583ff8f7d7bff8c7a78ff887674ff83716fff7d6b69ff786664ff73615fff715f5dff6c5b5eff6d5d60ff66575aff68595bff605557ff45393bff3c3536ff5a5253ffe7e4e4fffffffffffefffffffefffffffbfffffff5faf9fffafffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffdfbf8fff8f6f2fffdf7f0fffffffaffe7dbd0ff8b7f74ff736251ff6c5b4aff725c46ff7a644fff81674eff7b6148ff7c6045ff81654aff785e48ff775d46ff755b45ff735943ff725842ff72
+5841ff735842ff735942ff775c46ff775c46ff775c46ff775c46ff775c46ff775c46ff775c46ff775c46ff765d4bff775e4bff775e4bff775e4bff785f4cff785f4cff785f4dff79604dff7a614eff7a614fff7a624fff7b624fff7b624fff7b6350ff7c6350ff7c6350ff7c6451ff7c6451ff7c6451ff7c6451ff7c6451ff7c6451ff7c6451ff7c6451ff7b6350ff7b6350ff7b6350ff7b6350ff7b6350ff7b6350ff7b6350ff
+7b6350ff796350ff796350ff796350ff796350ff796350ff79634fff79634fff79634fff78624fff78624eff77614eff77614eff77614dff76604dff76604dff76604cff765b46ff765b46ff765b47ff775b47ff775b47ff775b47ff775b47ff775c47ff735844ff735743ff725742ff725642ff725642ff735743ff735743ff745844ff785e46ff795f46ff7d6049ff81654eff866752ff846650ff7e5f4bff785945ff755947
+ff7c604eff7d6655ff725b4aff554534ff584737ff877a6affc1b5a4fff9f9f9fffffffffff9f9f9fff4f4f4fffffffffffffffffffbfbfbfff9f9f9fffffffffffffffffffffffffffefefefffffffffffafafaffffffffffb1b1b1ff695641ff66523dff634f3bff66523dff6e5a45ff75604bff76604cff735d49ff77604bff77604bff785f4bff785f4bff795f4bff795f4bff795f4bff795f4bff795f4cff795f4cff795f
+4cff795f4cff795f4cff795f4cff795f4cff795f4cff785e4aff785e4aff785e4aff785e4aff785e4aff785e4aff785e4aff785e4aff775d49ff765d49ff765d49ff765d49ff765d49ff765d49ff765d49ff765d49ff775d49ff765d49ff765d49ff765c48ff755b48ff755b47ff745b47ff745a47ff755b47ff745b47ff745a47ff745a46ff735945ff725945ff725945ff725844ff745b47ff745a47ff745a47ff745a46ff74
+5a46ff745a46ff745a46ff745a46ff755946ff745945ff745945ff745845ff735744ff735744ff725743ff725643ff745845ff745845ff735844ff735744ff725743ff725643ff715642ff715642ff705743ff705743ff6f5642ff6f5642ff6e5541ff6e5541ff6d5440ff6d5440ff705743ff6e5541ff6e5441ff705743ff715844ff6c523fff614834ff573e2aff4e3e33ff524238ff584e47fffcf1ebfffffffefffffdfbff
+f5f8fafff7fafcfffdfffffff9fbfcfffffffbffe1dcd8ff6a5c51ff63554aff655141ff645040ff745845ff745945ff765a47ff785c49ff7a5e4bff785d49ff765b47ff745845ff755a46ff755946ff745945ff745945ff735844ff735744ff735744ff725743ff725841ff725841ff725741ff715740ff715640ff70563fff70553fff70553fff735842ff735842ff725841ff725741ff715740ff715640ff70563fff70563f
+ff705545ff705545ff745543ff745544ff785541ff795542ff7a5640ff7a5640ff7f5e48ff66452fff725944ff634a35ff685845ff574634ff827867fffaf0defffffffffff7f7f7fff7f7f7fffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffbfffffffbfffffff9fefffff9fefffffcfefffffdfefffffffdf9ff8d8782ff493c2fff6b5d51ff6e5b49ff665441ff775d46ff775d46ff785d47ff785e47ff795f48ff7a5f49ff7a6049ff7a6049ff785e47ff785e47ff785e47ff785e47ff785e47ff785e47ff785e47ff785d47ff755a48ff755a48ff765e4cff74
+5c4aff5e4a3cff4e3a2bff4c3e32ff5c4d41ffc0b8affffffff6fffffffafffffffbfffefffcfffffffdfff8fdfbfffcfffefffffffbfffffdf8ff8f8c87ff312d29ff5f5955ff605a56ff5b524eff5f5652ff8a7e7bff968a87ffa0918fffa1928fffa39290ffa89694ffab9896ffaa9795ffa59592ffa2928fff9e8e8cff9b8b88ff998886ff958583ff92817fff8f7e7cff968683ff857573ff837370ff8c7c79ff81716eff
+61504eff4f3f3dff534340ff72696bfffcf3f5fffffefefffffcfdfff6f8f8ff707272ff1d2322ff313837ff2f3534ff353a39ff464545ff565555ff6d6364ff746a6cff78686bff756567ff776462ff786563ff786563ff796664ff7a6765ff7b6866ff7b6866ff7b6967ff7b6866ff7b6866ff7c6967ff7c6967ff7d6a68ff7d6a68ff7e6b69ff7e6b69ff706365ff625457ff594d4fff5e5254ff5a5051ffdad1d2fffaf3f4
+fffffefffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffdf8ffb5b4afff48443fff514d48ff4c4541ff5e5753ff645a57ff5f5552ff665956ff756865ff7e6f6cff7a6b68ff796966ff7c6c69ff816f6dff816f6dff816f6dff806f6cff806f6cff806e6cff806e6cff806e6cff7d6b69ff7d6b69ff7d
+6b69ff7d6c69ff7e6c6aff7e6c6aff7d6c69ff7d6b69ff606262ff4b4e4dff3a3c3bff323434ff464646ffddddddfffffeffff7d797aff3f3839ff3a3334ff3d3335ff504647ff635759ff665b5dff786b6dff9a8d8fffc3b1afffc3b1afffc5b3b1ffc7b5b3ffc9b7b5ffcab8b6ffc9b7b5ffc8b6b4ffc5b3b1ffc4b2b0ffc3b1afffc2b0aeffc0aeacffbeacaaffbdaba9ffbcaaa8ffbbabaeffbbaaadffb3a5a7ffb9aaacff
+a4989aff5f5355ff3b3435ff60595affe4e1e1fffffefefffcfdfdfffefffffffbfffffff7fbfbfffafffffff8fefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfff8fff3faeffffefff7
+fffffff8fff9f9eefffffff7fffffff8ffefe9dfffa99d94ff84776fff6a5750ff6c5a52ff836c65ff8c756eff8a716aff856b65ff8a7357ff8a7356ff8a7256ff897054ff886e52ff846a4eff83674cff82654aff816247ff806146ff816045ff7f5e44ff7f5d42ff7d5b40ff7d5a3fff7c593fff755843ff755843ff755843ff755843ff755843ff755843ff755843ff755843ff765a44ff765a44ff765a44ff765a44ff765a
+44ff765a45ff765a45ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff765944ff765944ff765944ff765944ff765944ff765944ff765944ff765944ff745a44ff755a44ff755a44ff755a44ff755a44ff755a44ff755a44ff755a45ff745a44ff745a44ff745a44ff745a44ff745a44ff745a44ff745a44ff745a44ff7a5a3dff7b5a3dff7b5b3dff7c5b3eff7c5c3fff7d5c3fff7d
+5d40ff7e5d40ff816043ff816143ff826245ff846346ff876649ff89694cff8c6b4eff8d6d4fff88705bff866f59ff866e5aff8a715dff8e7564ff917866ff8d7667ff8b7365ff867367ff715d52ff5a4c43ff5d4f45ff6b625aff958c84ffd3cec7fffffff9fffffffffff3f3f3fffbfbfbfffffffffffbfbfbfff6f6f6fffffffffffffffffffffffffffffffffffffffffffefefefffffffffffafafaffffffffffb3b3b3ff
+6d5338ff694f35ff71563cff81664cff876b51ff80644aff7d6046ff81644aff806248ff806248ff816248ff816248ff826148ff826148ff826148ff826148ff83634aff83634aff83634aff83634aff83634aff83634aff83634aff83634aff826349ff826349ff826349ff826349ff826349ff826349ff826349ff826349ff826248ff826249ff826249ff826249ff826249ff826249ff826249ff826249ff87674eff87674e
+ff87674eff87674eff86664dff86664dff86664dff86664dff88684fff88684eff87684eff87674eff87674eff87674dff86674dff86664dff89694fff896950ff896950ff896950ff896950ff896950ff896950ff896950ff896b51ff886b51ff886a51ff886a50ff886a50ff876a50ff876950ff87694fff8a6c52ff896c52ff896b52ff896b51ff896b51ff886b51ff886a51ff886a50ff886c52ff886c52ff876c52ff876c
+52ff876b51ff876b51ff866b51ff866b51ff856a50ff83684eff83684dff866b50ff896d53ff856a4fff7c6046ff73583eff4b3e35ff4e4139ff574f49fffdf5effffffffefffffffefff8fbfcfffcfffffffdfffffff5f8f8fffffffbffe3dfdaff64584eff574b41ff665447ff7a695bff8c6e54ff8b6d53ff8a6c53ff8c6e54ff8e7057ff8f7157ff8d6f56ff8b6d54ff8d6f55ff8d6f55ff8d6f55ff8c6f55ff8c6e54ff8c
+6e54ff8c6e54ff8b6e54ff8e7155ff8e7155ff8e7155ff8e7055ff8d7054ff8d7054ff8d7054ff8d6f54ff927459ff927459ff917459ff917458ff917358ff917358ff907358ff907357ff93745cff93745dff95745cff96745cff98755bff99755cff99755bff99765cff8c6c54ff987860ff5d4530ff644c37ff655544ff625240ffebe1d1fffffff1fffffffffffdfdfdfffffffffffffffffffcfcfcffffffffffffffffff
+f7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffefffffffefffbfffffffbfffffffbfefffffbfefffffefffffffbfcfdfffffbf7ff8f8a86ff45392fff60544aff6a5b4cff736455ff96795d
+ff96795eff977a5eff977a5fff987b5fff997b60ff997c60ff997c61ff987b5fff987b60ff987b60ff987b60ff987b60ff997b60ff997b60ff997b60ff947466ff957466ff97796cff997a6dff876c61ff6f5449ff5a443bff574038ffc7b6b0fffffdf8fffffefbfffffffbfffffdfcfffffefdfffffafcfffffefffffffffcfffff9f7ff928886ff362c29ff5f5351ff605452ff726362ff928381ffd1c0bfffd7c6c5ffddc9
+c8ffdcc8c8ffddc7c7ffdec9c9ffe2cbcbffe2cccbffe4cbcbffe2c9c9ffe0c7c7ffdfc7c7ffdfc7c7ffdec6c6ffdcc4c4ffdac2c2ffdcc4c4ffd9c1c1ffddc4c4ffe3cbcbffdcc3c3ffb79f9eff816969ff594141ff7b7072fffaf0f2fffef8f9fffffeffffc8c8c8ff3b3b3bff2a2d2cff323434ff333333ff494949ff686364ff7c7778ff887c7eff887c7eff8d7c7fff8f7e81ff93797aff947a7aff957a7bff967c7cff97
+7d7dff987e7eff987e7fff997f7fff977d7dff977d7dff977d7dff967c7dff967c7dff967c7cff967c7cff967c7cff7d797aff746f70ff4c4849ff504c4dff837f7ffffffefffffffcfdfffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f7f4fffffffcfffaf8f4fff1f0ecff696662ff524f4bff4a4441ff5c5653
+ff6c6361ff5f5754ff635856ff7b706eff958886ff998d8bff938583ff8c7f7dff9a8484ff9b8484ff9b8484ff9b8484ff9b8484ff9b8484ff9b8484ff9b8584ff9f8888ff9f8888ff9e8888ff9e8787ff9d8787ff9e8787ff9e8888ff9f8989ff8c8e8eff808281ff6b6c6cff4d4f4fff363636ff8e8e8efff6f3f3ff8a8787ff403b3cff464041ff4e4647ff595152ff655b5cff6f6667ff978d8effccc2c3ffd1bbbaffcfb9
+b8ffceb7b7ffcfb8b8ffd0babaffd1bbbaffcfb9b9ffcdb7b7ffd1bbbaffd1bbbbffd2bbbbffd3bcbcffd3bdbdffd4bebeffd5bebeffd5bfbeffc6b8baffcfc0c3ffc8bcbeffccc0c2ffc5bbbdff8a8081ff514b4cff534d4effdfddddfffcfafafffafbfbfffefffffffcfffffff9fdfcfffafffffff6fcfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafff6fffcfff8fffbfff4fffafdf2fffffff8fffffff6fffdf7eefffffff8fffffdf5ffe3d7ceffb6a49cff917f77ff856e67ff866f68ff927872ff9b827cff9e876aff9f886bffa1896cffa1896cffa1876bff9e8468ff9d8165ff9b7f63ff97785dff96775cff
+96755aff937257ff927055ff8f6d52ff8e6b51ff8d6a4fff826550ff826550ff81654fff80644eff80634eff7f624dff7e624cff7e614cff7b5e49ff7b5e49ff7a5e49ff7a5d48ff795d48ff795c47ff795c47ff785c47ff785b46ff785b46ff785b46ff785b46ff785b46ff785b46ff785b46ff785b46ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff775a45ff765b46ff765c46ff775c46ff775c47
+ff775c47ff785d47ff785d47ff785d48ff795e49ff795f49ff7a5f4aff7b604aff7b614bff7c614cff7d624cff7d624dff88684aff89684bff89694bff8a6a4cff8b6b4dff8c6c4eff8d6c4fff8d6d50ff947356ff957457ff977659ff9a795cff9d7c5fff9f7f61ffa18163ffa28264ff9b836eff9c856fffa08874ffa28a76ffa28977ff9c8372ff927b6cff8c7566ff79655aff6c584cff6f6057ff9d8f85ffd2c9c1fff9f1
+e9fffffff9fffffff9fffefefefff3f3f3fffffffffffffffffff2f2f2fff8f8f8fffffffffffcfcfcfffffffffffffffffffefefefffefefefffffffffffbfbfbffffffffffb4b4b4ff654a30ff70553bff876c51ff9d8268ffa3876dff9c8066ff9c7f65ffa3866cffa7886fffa7886fffa8886fffa8886fffa8886fffa8886fffa9886fffa9886fffab8b71ffab8b71ffab8b71ffab8b71ffab8b71ffab8b71ffab8b71ffab
+8b71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffa98a70ffaa8a71ffaa8a71ffaa8a71ffaa8b71ffab8b72ffab8b72ffab8b72ffa98970ffa98970ffa98970ffa9896fffa9896fffa8896fffa8896fffa8896fffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffaa8a71ffa98970ffa98a70ffaa8a70ffaa8a71ffaa8a71ffab8b71ffab8b72ffab8b72ffaa8c73ff
+aa8c73ffaa8c73ffaa8c72ffaa8c72ffaa8c72ffaa8c72ffaa8c72ffac8e75ffac8e74ffac8e74ffac8e74ffac8e74ffac8e74ffac8e74ffac8e74ffab8f75ffab8f75ffab8f75ffab8f75ffab8f75ffab8f75ffab8f75ffaa8f75ffaa8e74ffa98d73ffa98e74ffac9076ffae9278ffac9076ffa68b70ffa1856bff5b4e45ff52453dff504842fff4ece7fffffffefffffffefff9fcfdfffcfffffff8fbfbfff8fafafffffffb
+ffe0dcd7ff5c5046ff5a4e44ff806f61ffa79688ffb09278ffaf9178ffaf9177ffb09278ffb2947affb3957bffb2957bffb2947affb3957bffb3957bffb3957bffb3957bffb3957bffb3957bffb3957bffb2957bffb3967bffb3967bffb3967bffb3967affb3967affb3967affb3967affb3967affb09378ffb09377ffb09377ffb09377ffb09377ffb09377ffb09377ffb09377ffb2937cffb3937cffb5937bffb5947bffb794
+7affb8947affb8947affb8947affb1927affc2a38bff715944ff614a34ff5b4b3affbcac9bfffffff3fffff9e9fffffffffffffffffffffffffffcfcfcfff5f5f5fffefefefffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffbfffffffbfffffffefffffffefffbfffffffbfffffffbfefffffbfefffffefffffffefffffffffffcff8e8986ff3c3127ff5c5146ff7f6f60ffa19182ffb7997effb7997effb79a7effb79a7effb79a7fffb89a7fffb89a7fffb89b7fffb89a7fffb89b7fffb89b7fffb89b80ffb99b80ffb99c80ffb99c80ffb99c81ffbd9c8effb89789ffb59689ffbc9d90ffba9f93ffa58a7fff79635aff59433aff
+c9b8b2fffffff9fffffefbfffffffbfffffcfbfffffefdfffffafbfffffefffffffffcfffffaf8ff938886ff2e2321ff554947ff695d5bff9b8d8bffd5c6c4ffd4c3c2ffd6c5c4ffdac6c5ffd8c5c4ffd8c3c2ffd8c3c2ffdbc4c4ffdcc5c5ffddc5c5ffdcc4c4ffdbc3c3ffdcc3c3ffddc5c5ffdec6c5ffddc5c5ffdcc3c3ffd3bbbaffe4cbcbffe5ccccffd9c0c0ffdcc4c3ffd9c1c1ffa78f8fff684f4fff6e6466fffaf0f1
+fffffcfdfffffbfcff6b6b6bff151515ff343636ff4a4c4cff6b6b6bff828282ffa09b9cffaba6a7ffada2a4ffa79b9dffac9b9effb09fa2ffbba1a1ffbba1a1ffbaa0a0ffbaa0a0ffb99f9fffb99f9fffb89e9effb89e9effbca1a2ffbba1a1ffbba1a1ffbaa0a0ffba9fa0ffb99f9fffb89e9fffb89e9effa9a5a6ffa4a0a0ff5a5657ff5a5657ffccc8c9fffffefffffffefffff7f2f3fffffefffffffefffffffefffffffe
+fffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefbfffffffcfffdfbf8fffffffcffa8a4a1ff4d4a46ff4c4744ff4c4744ff524947ff6c6461ff948987ffb2a7a5ffbcafadffb8aba9ffb8aaa8ffbcaeacffbca5a5ffbca6a5ffbca6a5ffbca6a6ffbda6a6ffbda7a6ffbda7a6ffbda7a7ffbea8a7ffbfa8a8ffbfa9a8ffbda7a7ffbca5a5ffbba5a5ffbda6a6ff
+bfa8a8ffafb1b0ffa8aaaaffabacacff999b9aff686868ff5a5a5affc3c0c0ff807d7dff3a3536ff383233ff3c3435ff564e4fff82787aff9f9597ffb8adafffd1c6c8ffd5bfbeffd4bdbdffd3bcbcffd3bcbcffd3bdbcffd3bdbcffd2bcbbffd1babaffd1babaffd1babaffd1bbbaffd1bbbbffd2bbbbffd2bcbbffd2bcbcffd3bcbcffbfb1b4ffd0c2c4ffc8bbbdffc3b6b8ffd3cacbffcac1c2ff938d8eff686263ffe1dfdf
+fffdfbfbfff9fbfbfffdfffffffcfffffffafefdfffafffffff6fcfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f7fafff9fffffff7fafcffedf1f2fffefffffffefffffff9f7f5fffbf9
+f7fffffffbfffffffbfffdf4ecffded5cdffbdb1a7ffa5998fff9a8d83ff978a7fffab9e87ffab9e87ffad9d87ffad9d87ffae9c86ffad9c85ffb09a85ffaf9a84ffb09681ffaf9580ffb0937fffad917cffad8e7affab8c78ffab8a76ffaa8975ffa38671ffa28670ffa1856fff9f836eff9e816cff9c806aff9b7f69ff9b7e69ff987c66ff987b66ff977a65ff967964ff957863ff947762ff937661ff927660ff92745fff92
+745fff92745fff92745fff92745fff92745fff92745fff92745fff91735eff91735eff91735eff91735eff91735eff91735eff91735eff91735eff917560ff917560ff917660ff927661ff927761ff937762ff937762ff937862ff947863ff957964ff967a65ff987c66ff997d68ff9b7f69ff9c806aff9c816bffa1866bffa2866cffa3876dffa4886effa58a6fffa78b71ffa88c72ffa88d72ffac9076ffad9277ffaf9379ff
+b1957bffb1967bffb1957bffb1957bffb0947affab9887ffa99685ffa39081ff9b8879ff8f7e72ff88776aff7f7268ff7e7067ff7c736cffa49b95ffd3cecbfff8f2effffefcfbfffcfbfafffbfbfbfffffffffffffffffffdfdfdfffcfcfcfffbfbfbfffdfdfdfffffffffffffffffff6f6f6fffffffffffffffffffefefefffdfdfdfffffffffffbfbfbffffffffffb5b5b5ff705944ff937b67ffb39b86ffbba38fffbba28e
+ffbfa691ffc3a894ffc1a792ffc0a591ffc0a591ffc1a591ffc1a591ffc2a591ffc2a591ffc3a491ffc3a491ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a793ffc2a692ffc2a793ffc2a793ffc3a793ffc3a894ffc4a894ffc4a995ffc4a995ffc6aa96ffc6aa96ffc6aa96ffc6aa96ffc6aa96ffc6aa96ffc6aa
+96ffc6aa96ffc6aa96ffc6ab97ffc6aa96ffc6ab97ffc6aa96ffc6ab97ffc6ab97ffc6ab97ffc5a995ffc5aa96ffc5aa96ffc6aa96ffc6ab97ffc7ab97ffc7ac98ffc7ac98ffc3ac97ffc3ac97ffc3ac97ffc3ac97ffc3ac97ffc3ac97ffc3ac97ffc3ac97ffc5ae99ffc5ae99ffc5ae99ffc5ae99ffc5ae99ffc5ae99ffc5ae99ffc5ae99ffc2ae98ffc3ae99ffc2ae98ffc3ae99ffc2ae98ffc3ae99ffc3ae99ffc3ae99ffc3
+ae99ffc4af9affc5b09bffc6b19cffc7b29dffc5b19bffc4af9affc2ad98ff918781ff706661ff544f4bffede8e4fffefefdfffffffefff8fcfcfff9fdfcfff8fbfafffcfefefffffffcffdbd8d4ff6a6159ff857c74ffac9d92ffc0b2a7ffc5ad99ffc5ae99ffc6af9affc6af9affc6af9affc6af9affc7af9bffc7b09bffc7b09bffc8b09cffc7b09bffc8b09cffc7b09bffc8b09cffc8b09cffc8b09cffc6af9affc6af9aff
+c6af9affc6af9affc6af9affc6af9affc6af9affc6af9affcab39effcab39effcab39effcbb49effcab39effcbb49effcab39effcbb49effcdb3a0ffcdb3a0ffcdb39fffcdb39fffcdb39effcdb39effccb29effcbb29effc8b3a2ffc1ac9bffa49689ff6e5f52ff847b74fffffff7fffffcf8fffffbf6fffbfbfbfffffffffffefefefff9f9f9fff9f9f9fffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffefffefffefffefffcfffffffcfffffffcfffffffcfffffffefdfffffffefffffffffdff8a8683ff3f3730ff756c65ffa09489ffbeb2a8ffcdb6a1ffcdb6a1ffcdb6a0ffcdb6a0ffccb5a0ffccb5
+a0ffccb5a0ffccb59fffccb5a0ffcdb6a0ffcdb6a0ffcdb6a1ffceb7a1ffceb7a2ffcfb8a2ffcfb8a2ffcab1a6ffc8afa3ffc3aba1ffc4aca2ffc9b4abffc4b0a7ffa3918bff816f69ffc8bab6fffffffafffffefcfffffefcfffffafafffffefefffffafbfffffefffffffcfafffffffdff928c8aff2b2523ff635b5aff8d8684ffb9b0afffdcd3d1ffd4c9c8ffd4c9c8ffd5c9c8ffd5c9c8ffd5c7c7ffd4c6c6ffd6c7c7ffd8
+c9c9ffdbc8c8ffdac6c7ffd9c5c6ffd9c6c6ffdbc7c8ffdbc8c8ffdac7c7ffd9c5c6ffd4c1c1ffdecbcbffd9c6c6ffcdb9baffd5c2c2ffe5d1d1ffd4c0c0ffb19d9eff807779fff7eef0fffffeffffd0c9caff353132ff2c292aff626262ff878787ffb6b4b4ffbebcbcffcac3c4ffcbc4c5ffcabec0ffc5b9bbffc8b8bbffcababdffd4c0c0ffd3bfc0ffd3bebfffd2bebeffd1bdbdffd0bcbcffcfbbbcffcfbbbbffd4bfc0ff
+d3bfc0ffd3bfc0ffd3bfbfffd3bebfffd2bebfffd2bebeffd2bebeffc5bdbeffc2bbbcff968f90ff989192fff8f2f3fffef9fafffffefffff5f1f2fffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdffe2dfddff6d6a68ff5b5755ff534f4dff504a48ff837d7bffbbb3b2ffcec7c5ffc4bc
+baffbab2b0ffc1b7b6ffccc2c1ffcdbdbdffcdbdbdffcdbebdffcebebeffcebfbeffcfbfbfffcfbfbfffcfc0bfffcabbbbffccbdbcffcdbebeffccbdbdffcabbbaffc9babaffcbbcbcffcebebeffb7b8b8ffafb0b0ffc6c6c6ffc8c8c8ffadadadff8b8b8bffb9b7b7ff807e7eff322e2eff2e2a2bff322c2dff595354ff9c9596ffc3bdbeffc6bfc0ffc1babbffc6b6b6ffc7b7b7ffc7b8b8ffc8b9b8ffc8b8b8ffc8b8b8ffc8
+b8b8ffc8b9b8ffc4b4b4ffc4b4b4ffc3b4b4ffc3b4b4ffc3b4b3ffc3b4b3ffc3b3b3ffc3b3b3ffc3b8baffc6bcbdffbcb3b4ffb3aaabffbeb6b7ffc8c1c2ffafababff8b8787ffebe9eafffffffffffbfdfcfffcfefdfffcfffffffafdfdfffbfffffff9fefdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9ffffffeff4f7fffbfffffffbfffffff4f5f5fff6f7f7fffffffdfffffdfafffffff9fffffffbfffffff8fffffef6fffffff6fffffaf0ffefe2d7ffd5c8bdffc2b59effc1b39cffc0b19affbeaf98ffbfad97ffbfae97ffc3ae98ffc4af99ffc7ae99ffc7ad98ffc8ac97ffc6aa95ffc7a894ffc5a692ffc5a491
+ffc5a490ffc1a48fffc0a38effbea28dffbca08bffba9e88ffb89c86ffb79a85ffb69984ffb89c86ffb79b86ffb69a85ffb59883ffb39781ffb29580ffb1947fffb0937effaf917cffaf917cffaf917cffaf917cffaf917cffaf917cffaf917cffaf917cffae907bffae907bffae907bffae907bffae907bffae907bffae907bffae907bffaf937effaf937effb0947effb0947fffb19580ffb19580ffb29680ffb29681ffb094
+7fffb19580ffb29781ffb49983ffb79b85ffb99d87ffba9e89ffbb9f8affbca187ffbda187ffbea388ffbfa48affc1a68bffc2a78dffc4a88effc4a98effc8ac92ffc9ad93ffcaae94ffcaae94ffc8ac92ffc5aa8fffc2a68cffc0a48affad9988ffa28e7dff917e6fff887566ff8d7d70ffa8978bffc7b9b0ffe0d2c9fffdf4eefffff9f3fffffcf8fffffbf8fffffdfcfffffffefffffffffffdfdfdfffdfdfdfffffffffff9
+f9f9fff8f8f8fffffffffffffffffff4f4f4fffffffffffffffffffffffffffefefefffdfdfdfffffffffffbfbfbffffffffffb6b6b6ff907964ffc4ac98ffe5cdb8ffdac2adffd1b8a4ffddc4afffe1c7b3ffd4baa5ffdabfabffdabfabffdcbfabffdcbfabffdcbfabffdcbfabffddbfabffddbfabffdbc0acffdbc0acffdbc0acffdbc0acffdbc0acffdbc0acffdbc0acffdbc0acffdcc0acffdcc0acffdcc0acffdcc0acff
+dcc0acffdcc0acffdcc0acffdcc0acffdbc0acffdbc0acffdcc0acffdcc1adffddc2aeffddc2aeffdec2aeffdec3afffdbbfabffdbbfabffdbbfabffdbbfabffdbbfabffdbc0acffdbc0acffdbc0acffdabeaaffdabeaaffdabeaaffdabeaaffdabeaaffdabfabffdabfabffdabfabffdbbfabffdbbfabffdbc0acffdcc0acffddc1adffddc1adffddc2aeffdec2aeffd7c0abffd7c0abffd7c0abffd7c0abffd7c0abffd8c0ac
+ffd8c0acffd8c1acffd9c2adffd9c2adffd9c2adffdac2aeffdac2aeffdac3aeffdac3aeffdac3aeffd5c0abffd5c0abffd5c0abffd5c1abffd5c1abffd6c1acffd6c1acffd6c1acffd1bca7ffd3bfa9ffd5c0abffd6c1acffd5c0abffd4bfaaffd5c0abffd6c1acffd2c8c3ff9d938eff69635ffff5efecfffffffefffffffefffbfffefff6fafafffcfffefffdfffffffffffbffdad8d3ff887f76ffbdb4abffd3c5baffc3b5
+aaffd3bba7ffd5bda9ffd6bfaaffd5bea9ffd3bca7ffd2bba6ffd4bca8ffd5bea9ffd4bda8ffd4bda8ffd4bda8ffd4bda8ffd4bda8ffd5bda9ffd5bda9ffd5bea9ffd2bba6ffd2bba6ffd2bba6ffd2bba6ffd2bba6ffd3bca6ffd3bca6ffd3bca6ffd1baa5ffd2bba5ffd2bba5ffd2bba5ffd2bba5ffd2bba6ffd2bba6ffd2bba6ffd2b9a5ffd2b8a5ffd3b8a4ffd2b8a4ffd2b8a3ffd2b7a2ffd0b7a3ffd0b7a3ffccb7a6ffd2
+bdacffc6b7abff9a8b7fffdbd2cbfffffff9fffffffafffffffbfffffffffffffffffffffffffffffffffffffffffffdfdfdfff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffefffeff
+fefffefffcfffffffcfffffffcfffffffcfffffffefdfffffffefffffffcfaff86827fff514841ff9a918affbeb2a8ffc6baafffcab39effcab39dffc9b29dffc9b29cffc8b19cffc8b19bffc7b09bffc7b09affc8b19cffc8b19cffc9b29cffc9b29dffcab39effcab39effcbb49effcbb49fffc8afa4ffd0b7acffccb4aaffc2aaa0ffc2ada4ffcdb8afffc5b4adffb6a59effcabcb8fffffffafffffefcfffffdfbfffff9f9
+fffffefefffff9fafffffefffffffcfafffffffdff968f8dff342e2cff837c7affbab3b1ffc8bfbdffbdb3b2ffc1b6b5ffc0b5b4ffc1b5b4ffc3b6b6ffc3b5b5ffc2b5b4ffc3b5b4ffc6b7b7ffcab6b7ffc8b5b5ffc7b3b4ffc7b3b4ffc8b4b5ffc8b4b4ffc6b3b3ffc5b1b1ffcab7b7ffc1aeaeffc0acadffcab6b6ffcdb9baffc7b3b4ffc5b1b1ffc9b5b6ffbbb1b3fff4ebedfffffdfeff8e8788ff3e3b3bff6e6a6bffa2a2
+a2ffb6b6b6ffbbb8b9ffb5b3b3ffb3acadffb1aaabffb8acaeffbcb0b2ffc1b1b4ffc2b2b4ffc0acadffc0acadffc1acadffc1adadffc1adaeffc1adaeffc2adaeffc2aeaeffbeaaaaffbeaaaaffbeaaaaffbeaaabffbfaaabffbfababffbfababffbfababffbab3b4ffbcb5b6ffcfc8caffdad3d4fffcf7f8fffffefffff3eff0fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfafffefdfbfffdfbf9fffffffdfffffffdffa6a4a1ff7b7674ff7a7674ff888280ff9b9594ffaba4a2ffaca4a3ffaba2a1ffafa6a5ffb1a8a6ffafa5a4ffb1a1a1ffb1a2a1ffb2a2a2ffb2a2a2ffb3a3a3ffb3a4a3ffb4a4a4ffb4a4a4ffb5a6a6ffb8a9a8ffbaababffbaaaaaffb8a8a8ffb7a8a8ffb9aaaaffbcadacffb3b4b4ffa1a2a2ffb3b3b3ffb7b7b7
+ffcececeffe2e2e2ffe6e3e4ffa4a2a2ff7e7a7bff8b8788ff928c8dff9c9697ffb5aeafffc0b9baffbab3b4ffb5aeafffbeafaeffc1b2b2ffc4b5b5ffc6b6b6ffc5b5b5ffc5b6b5ffc6b7b7ffc8b9b9ffc8b9b8ffc8b9b9ffc8b9b9ffc9b9b9ffc9bab9ffc9babaffc9babaffcababaffcbc0c2ffbfb4b6ffc1b8b9ffcdc3c5ffcec7c8ffd9d2d3ffebe6e7fff8f3f4fff5f3f3fffffffffffefffffffbfcfcfffcfffffff9fc
+fcfffbfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff9fffffffafffffffafffffffcfffffffcfffffffffffffffffffffffffffefffffffefffffffdfffffffdffff
+fffcfffffffcfffffffbfffffffbfffffdf4fffaf9effff3f0e7ffe8e6dcffded9d0ffd4cec6ffcfc6bdffcac1b9ffc5b8b1ffc4b8b0ffc7b7b0ffc6b6afffc9b6b0ffcab7b0ffccb7b1ffccb8b2ffd2bcabffd1baa9ffcfb9a7ffcdb7a5ffccb6a4ffccb6a5ffcdb7a5ffceb7a6ffd1bba9ffd0baa8ffcfb9a7ffcdb7a6ffcbb5a4ffcab4a2ffc9b2a1ffc8b2a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ff
+cbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcbb1a0ffcab3a1ffcab3a1ffcab3a1ffcab3a1ffcab3a1ffcab3a1ffcab3a1ffcab3a1ffccb5a4ffcdb6a4ffcdb6a5ffceb7a6ffcfb8a6ffd0b8a7ffd0b9a8ffd0b9a8ffcdbeb0ffccbdafffcbbcaeffc9baacffc7b8aaffc5b6a8ffc4b5a7ffc3b4a6ffbeafa1ffb9aa9cffb1a294ffa69789ff9c8d7eff938476ff8d7e70ff8a7b6c
+ff9b8c82ffad9f94ffc8bcb2ffe7dad1fffaf1e9fffffdf5fffffffafffffffafffffffcfffffffcfffefefefffefefefffbfefffffbfefffffafefffffafefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffffffffffffffffff3f3f3ffe2e2e2ffbaaea6ffb6a9a1ffb2a59dffb0a49bffb3a59dffb4a79fffb5a69effb3a49dffb1a199ffb1a1
+99ffb2a199ffb2a199ffb3a099ffb3a099ffb3a099ffb3a099ffb1a29affb1a29affb1a29affb1a29affb1a29affb1a29affb1a29affb1a29affab9c94ffab9c94ffab9c94ffab9c94ffab9c94ffab9c94ffab9c94ffab9c94ffa99b93ffa99b93ffa99b93ffa99b93ffa99b93ffa99b93ffa99b93ffa99b93ffa99a93ffa99a93ffa99a93ffa99a93ffa99a93ffa99a93ffa99a93ffa99a93ffa89991ffa89991ffa89991ffa8
+9991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa89991ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa59a91ffa69e95ffa69e95ffa69e95ffa69e95ffa69e95ffa69e95ffa69e95ffa69e95ffa9a198ffa9a198ffa9a198ffa9a198ffa9a198ff
+a9a198ffa9a198ffa9a198ffaaa4a2ff9b9693ffacaaa8ffe3e0dffffefffffffbfcfcfff5f9f9fffbfffffffcfffdfffdfffefffffefaffe4e3dfffc6bfb8ffaea7a1ffafa59dffb7aca4ffb7aca4ffb7aca4ffb7aca4ffb7aca4ffb7aca4ffb7aca4ffb7aca4ffb7aca4ffbaafa7ffbaafa7ffbaafa7ffbaafa7ffbaafa7ffbaafa7ffbaafa7ffbaafa7ffb9aea6ffb9aea6ffb9aea6ffb9aea6ffb9aea6ffb9aea6ffb9aea6
+ffb9aea6ffbbb0a8ffbbb0a8ffbbb0a8ffbbb0a8ffbbb0a8ffbbb0a8ffbbb0a8ffbbb0a8ffbdb0a9ffbdb0a9ffbdb0a8ffbdb0a8ffbcb0a8ffbcb0a8ffbab1a8ffbab1a8ffbcb6b0ffbcb6b1ffc1bebfffd8d6d6fff0f1f6fffcfefffff9fdfffff6f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffcfcfcfffffffffff8f5f4ffdddad9ffccc6c2ffcac4c0ffcfc7c2ffcec7c1ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5
+cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd5cac2ffd6cec4ffd3cbc2ffcfc8bfffcec7beffd0cac2ffd6d1c9ffdbd8d2ffe0ddd7fffffffcfffffffcfffffffdfffffffdfffdfffffffdfffffffcfffffffcfffffffcfffefff3f7f5ffe2e6e4ffd3d7d5ffcbcfcdffcccfcdffd2d5d2ffd7d9d7ffd8d8d7ffd8d8d7ffd8d8d7ffd8d8d7ffd8d8d7ffd8d8d7ffd8d8d7ffd8d8d7ffe1dbdaffe1dbdaffe1dbdaffe1dbdaff
+e1dbdaffe1dbdaffe1dbdaffe1dbdaffe4deddffe4deddffe4dedeffe5dfdfffe7e1e0ffe9e3e2ffebe5e4ffece6e5fffffefffffffbfcfff7f2f3ffeeeaeaffe7e4e5ffe6e3e4ffe7e4e5ffe8e6e6ffe6e2e3ffe6e2e3ffe8e1e3ffe8e1e3ffebe1e3ffebe1e3ffede1e3ffede1e3ffeae4e3ffeae4e3ffeae4e3ffeae4e3ffeae4e3ffeae4e3ffeae4e3ffeae4e3ffefe9e8ffefe9e8ffefe9e8ffefe9e8ffefe9e8ffefe9e8
+ffefe9e8ffefe9e8fff7f3f4fffaf6f7fffefbfbfffffefffffffffffffffffffffffdfefffefcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffefffffffefffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff9fffffffafffffffafffffffcfffffffcfffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffff8fffffff8fffffff8fffffff8fffffff7fffffef5fffffdf4fffffcf4fffffbf4fffff6eefffdece6fff1e0d9ffe7d4ceffdcc9c3ffd6c1bbffd1bdb7ffd0baa8ffceb8a7ffccb5a4ffc8b2
+a1ffc5af9effc3ac9bffc1ab99ffc0aa99ffccb5a4ffcdb7a5ffd0b9a8ffd3bdacffd7c1afffdbc4b3ffddc7b5ffdfc8b7ffe2c8b7ffe2c8b7ffe2c8b7ffe2c8b7ffe2c8b7ffe2c8b7ffe2c8b7ffe2c8b7ffdfc5b4ffdfc5b4ffdfc5b4ffdfc5b4ffdfc5b4ffdfc5b4ffdfc5b4ffdfc5b4ffdcc5b4ffdcc5b4ffdcc5b4ffdcc5b4ffdcc5b4ffdcc5b4ffdcc5b4ffdcc5b4ffd8c1afffd6bfaeffd3bcaaffceb7a6ffcab3a1ffc5
+ae9dffc2ab9affc0a998ff9a8b7dff9a8b7dff9c8d7eff9d8e80ff9f9082ffa19283ffa29385ffa29385ffa59688ffad9e90ffbcad9fffd0c1b3ffe7d8cafffdeee0fffffff1fffffff3fffffef4fffffff6fffffff7fffffff7fffffff9fffffff9fffffcf7fffffaf4fffffffcfffffffcfffefefefffefefefffbfefffffbfefffffafefffffafeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffcfcfcfffffffffffffffffffefefefff4f4f4fffaeee6fff7eae2fff3e6defff2e5ddfff4e7defff5e8e0fff6e7dffff5e6defffaeae2fffaeae2fffbe9e2fffbe9e2fffce9e2fffce9e2fffce9e2fffce9e2fffcede5fffcede5fffcede5fffcede5fffcede5fffcede5fffcede5fffcede5fffff8f0fffff8f0fffff8f0fffff8f0fffff8f0fffff8f0fffff8f0fffff8f0fffffbf3
+fffffbf3fffffbf3fffffbf3fffffbf3fffffbf3fffffbf3fffffbf3fffffdf5fffffdf5fffffdf5fffffdf5fffffdf5fffffdf5fffffdf5fffffdf5fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7ffffff
+f7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffffdfffffbf8fffcf9f8fffffffdfffefffffffcfefdfff4f8f8fff5faf9fff5f8f6fffbfffdfffffffcfffffffbfffff9f2fffef7f1fffffff7fffffff8fffffff8fffffff8fffffff8fffffff8ffff
+fff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff8fffffff9fffffff9fffffff8fffffff8fffffff7fffffff7fffffff8fffffff8fffffffbfffffdf8fffdfafbfffffdfefffcfefffffcfeffff
+f6fafffff0f4fcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffffffffffffffffffffffefffdfaf9fff9f3f0fffff9f5fffffff9fffffff9fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffef6fffffff5fffffef4fffffcf3fffffbf2fffffbf3fffffcf5fffffef8fffffffafffffffcfffffffcfffffffdfffffffdfffdfffffffdfffffffcfffffffcfffffffcfffefffcff
+fefffbfffdfff9fdfbfff9fcfafffafdfbfffcfefcfffdfffdfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfcfffffdfcfffffdfcfffffdfdfffffffefffffffefffffffefffffffefffffefffffffefffffffcfdfffefafafffcf9f9fffcf9fafffcfafafffdfbfbfffffefffffffefffffffeffffff
+fefffffffdfffffffdfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffaf6f7fffcf8f9fffffcfcfffffefffffffffffffffffffffffefefffefcfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffff6fafbff
+f6fbfcfff8fcfdfff9fdfefffcfefffffdfffffffffefffffffefffffffefffffffdfffffffbfefffefafcfffff8fbfffef7fbfffef7fafffef7fafffffef4fffffdf3fffffbf1fffff9effffff5ebfffcf1e7fff9eee4fff8ede2ffe3d8cdffe1d6cbffddd2c8ffd8cdc3ffd3c8beffcfc4b9ffcbc0b6ffc9beb4ffc1b1a8ffc1b1a8ffc1b1a8ffc1b1a8ffc1b1a8ffc1b1a8ffc1b1a8ffc1b1a8ffbdada4ffbdada4ffbdada4
+ffbdada4ffbdada4ffbdada4ffbdada4ffbdada4ffb9ada3ffb9ada3ffb9ada3ffb9ada3ffb9ada3ffb9ada3ffb9ada3ffb9ada3ffc3b7adffc5b8aeffc8bbb1ffccbfb5ffd0c3b9ffd5c8beffd7cbc1ffd9ccc2fff4f0edfff5f1eefff7f4f1fffaf7f4fffefbf8fffffefbfffffffdfffffffdfffffefbfffffdfafffffcf9fffdfaf7fffdf9f6fffcf9f6fffcf9f6fffcf9f6fffffffbfffffffbfffffffcfffffffbffffff
+fcfffffffcfffffffdfffffffdfffbfffdfffbfffdfffbfffefffbfffefffcfefefffcfefefffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffefcfdfffdfbfbfffefcfcfffffdfdfffffcfdfffffcfcfffffefffffffefffffffefffffffefffffffefffffffeffffff
+fefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfafafffcfafafffcfafafffcfafafffcfafafffcfafafffcfafafffcfafafffefbfcfffefbfcfffefbfcfffefbfcfffefbfcfffefbfcfffefbfcfffefbfcfffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfeff
+fffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfbfbffffffff
+fffffffffff9f9f9fff4f7f7fffcfefefffbfffefffbfffefffcfffdfffcfffdfffffffcfffefffbfffffef9fffffef9fffffffafffffffafffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffdfcfefffdfcfefffdfcfefffdfcfefffdfcfefffdfcfefffdfcfefffdfcfefffcfbfdfffcfbfdfffcfbfdfffcfb
+fdfffcfbfdfffcfbfdfffcfbfdfffcfbfdfffefbfefffefbfefffdfcfcfffdfcfcfffcfcfcfffcfcfcfffbfcfcfffbfcfcfff8fcfdfffafdfefff8fdfffff6fbfffff3f8fffff3f8fffff5fafffff7fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffffffffffffff8f8f8fffffffffffffffffffefcfcfffffbfcfffffefffffffffefffffffefffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffdfffafffdfffafffdfffbfffdfffbfffcfffbfffcfffbfffafffbfff8fef9fffafffdfffafffdfff9fffefff9fffefff8fffffff8fffffff7fffffff7fffffff1f9f8fff4fcfafff7fffefff8fffffff8fffffff8fffffff6fefdfff5fdfbfff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffbfefd
+fffafefdfffafdfdfffafdfdfffafefdfffcfffefffcfffffffcfffffffbfbfbfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffefefffffefefffffefefffffefefffffefefffffefefffffdfefffffdfefffafffefffafffefffafffefffafffefffafffefffafffefffafffefffafffefffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfcfcfffdfdfdfffefe
+fefffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbffffff
+fbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbffff
+fffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffafffffffafffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffafefffff9fdfefff9fbfdfff8fafcfffaf9fbfff9f9fbfffefcfefffffcfefffffdfffffffefffffffdfffffffdfffffffdfffffffdfffffffff6fffffff7fffffff7fffffff7fffffff6fffffef4fffffcf2fffffaf0ffff
+fff7fffffff7fffffff7fffffff7fffffff7fffffff6fffffef4fffffef3fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffff6fffffef4fffffff5fffffff5fffffff7fffffff7fffffff7fffffff7fffffff7fffbf7f4fffcf8f5ff
+fcf9f6fffefaf7fffffbf9fffffdfafffffefbfffffefbfffffffcfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffdfffff7f4fffff9f5fffffbf8fffffdf9fffffffbfffffffbfffefffcfffdfefbfffbfffdfffbfffdfffbfffefffbfffefffcfefefffcfefefffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd
+fffbfbfbfffdfdfdfffffffffffffffffffffffffffffffffffffdfefffefcfcfffffcfdfffffcfdfffffcfdfffffcfdfffffbfcfffffbfcfffffbfcfffffbfcfffffbfcfffffbfcfffffbfcfffffbfcfffefcfcfffefcfcfffefcfcfffefcfcfffefcfcfffefcfcfffefcfcfffefcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffff1eeeffffdfbfbfffffffffffafafafff5f8f8fffdfffffffbfffefff9fefcfffcfffdfffafffbfffbfdf8fffafcf7fffffcf7fffffcf7fffffcf6fffffbf6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffefffffffefffffffafefffffcfffffff9fefffff8fcfffff2f7fffff2f7fffff4fafffff7fcffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffdfdfdfffffffffffffffffffdfbfcfffffc
+fcfffffefffffffdfdfffbf7f7fffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfffbfafcfff9fdf6fffafef7fffbfff9fffdfffbfffcfffbfffbfffafff8fefafff7fdf8fffafffdfffafffdfff9fffefff9fffefff8fffffff8fffffff7fffffff7fffffff8fffffff8fffffff8fffffff7fffefff6fefdfff6fefcfff5
+fdfcfff5fdfcfff6fefdfff6fefdfff6fefdfff6fefdfff6fefdfff6fefdfff6fefdfff6fefdfffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffcfffffffbfefefffbfefdfffafdfdfffafdfdfffafefdfffbfefefffbfffefffafafafffbfbfbfffdfdfdfffffffffffffffffffefefefffdfdfdfffcfcfcfffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfeff
+fafffefffafffefffafffefffafffefffafffefffafffefffafffefffafffefff8fdfdfff8fdfdfff8fdfdfff8fdfdfff8fdfdfff8fdfdfff8fdfdfff8fdfdfffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffdfffdfffdfffdfffdfffefffdfffefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfefffffdfefffffdfefffffdfefffffefefffffefeff
+fffefefffffefefffffffefffffffefffffffefffffdfcfffffbfafdfffaf9fcfff9f8fbfff9f8fbfffefefcfffffffdfffffffefffffffefffffffefffffffefffffffefffffffdfff7f8f5fff8f8f6fff9faf8fffbfcfafffefefcfffffffefffffffefffffffefffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffdfcfffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffe
+fdfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffdfffefdfbfffcfaf9fffaf9f7fff9f8f6fffffffffffffffffffffffffffffffffffffffffffefefefffefefefffdfdfdfffefefefffefefefffefefefffefefefffdfdfdfffcfcfcfffcfcfcfffbfbfbfffffefffffffefffffffffffffffffffffcfffffffcfffffff6fdfbfff4fbf8fff9fffcfff9
+fffcfffcfffbfffcfffbfffffffafffffffafffffffafffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffdfdfdfffafafafffbfbfbfffdfdfdfffcfffffffcfffffffdfffffffdfffffffcfffefffdfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffff9fcfcfff9fcfcfff9fcfcfff9fcfcfff9fcfcfff9fcfcfff9fcfcfff9fcfcfffafdfdfffafdfdfffafdfdfffafdfdfffafdfdfffafdfdfffafdfdfffafdfdfffafdfcfffafdfcfffafdfcfffafdfcfffafdfcfffafdfcfffafdfcfffafdfcfffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffe
+fffcfffefffcfffefffcfffefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefffdfefefff8fcfbfff8fcfbfff8fcfbfff8fcfbfff8fcfbfff8fcfbfff8fcfbfff8fcfbfff9fdfdfff9fdfdfff9fdfdfff9fdfdfff9fdfdfff9fdfdfff9fdfdfff9fdfdfffffefffffffefffffdfffffffdfffffffcfffffffcfffffffaff
+fcfff8fdfafff8fcf8fffafefafffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffbfdfdfffbfdfdfffbfdfdfffbfdfdfffbfdfdfffbfdfdfffbfdfdfffbfdfdfffcfdfdfffcfdfdfffcfdfdfffcfdfdfffcfdfdfffcfdfdfffcfdfdfffcfdfdfffbfbfefffbfbfefffbfbfefffbfbfefffbfbfefffbfbfefffbfbfefffbfbfefffcfcfffffcfcfffffcfcfffffcfcfffffcfcfffffcfcfffffcfcfffffcfcfffffb
+fbfffffbfbfffffbfcfefffbfcfefffbfdfdfffbfdfdfffafefbfffafefbfffdfffdfffdfffdfffdfffffffdfffffffffefffffffefffffffdfffffefcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffffefffffffefffffffefffffffefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffafffcfffbfffcfffbfffdfffbfffd
+fffbfffdfffbfffdfffbfffefffbfffefffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffffffffffffffefffffffdfffefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffff9fffffff9fffffffbfffffffafffefffafefdfff9fdfcfffafcfcfffafcfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffefffffffdfffefffdfefefffdfffeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffdfffdfffd
+fffdfffdfffefffdfffefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffafbfefffbfbfefffbfcfefffbfcfffffcfcfffffcfcfffffcfdfffffcfdfffffcfbfefffcfbfefffcfbfefffefcfffffffefffffffefffffffefffffffefffffefffdfffefffdfffffffdfffffffdfffefffdfffdfefcfffcfdfbfffcfcfafffffffefffffffefffffffefffffffdfffdfdfbff
+fbfbf9fff9faf8fff9f9f7fffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefdfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffefcfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffcfaf8fffcfbf9fffefcfafffffefcfffffffefffffffefffffffefffffffefffffffffffefefefffefefefffefefefffdfdfdfffcfcfcfffcfcfc
+fffcfcfcfffdfdfdfffefefefffefefefffffffffffffffffffffffffffffffffffefefefffefafcfffef9fcfffafafafffafafafff8fbfbfffbfefefffafffefffafffefff9fffcfff9fffcfffcfffbfffcfffbfffffffafffffffafffffffafffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffffffffffffffffffefefefffefefefffffffffff7fb
+fafff9fcfcfffafdfdfffafdfcfff9fbfbfff8fafafffbfbfbfffcfcfcfffdfdfdfffdfdfdfffefcfdfffefcfdfffffcfdfffffcfdfffffcfdfffffcfdfffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffdfffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffcfffffffcfffffffcfffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffefffff5f4f7fff1f3f4fffafcfdfffcfffffffafefdfff9fffbfffbfffdfffcfffdfffcfffdfffffffcfffffffcfffefcf8fffbf9f5fffef9f6fffffbf8fffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffff
+fffefffffffefffffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffefefffffdfffffffdfffffffdfffffffdfffffffcfffdfffcfffdfff5f9f5fff4f8f4fff5f7f7fff9fbfbfffffefffffffefffffffdfffffdfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffcfcfcfffafafafff9f9f9fff9f9f9fffbfafcfffdfdfffffffefffffefdfffffdfdfffffd
+fdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffdfdfffffafffbfff8fefafff7fdf9fff6fbf7fff6fbf8fff7fcf9fff8fdfbfff9fefcfffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffff9f9f9fffafafafffbfcfcfffcfdfdfffcfefdfffafcfcfff8fafafff7f9f9fff9fcfcfff9fcfcfff9fcfcff
+f9fcfcfff9fcfcfff9fcfcfff8fcfcfff8fcfcfffafcfcfffafcfcfffafcfcfffafcfcfffafcfcfffafcfcfffafcfcfffafcfcfffbfdfdfffafcfcfffafcfcfff9fbfbfff9fbfbfff9fbfbfffafcfcfffafcfcfff9fffffff9fffffffafffffff9fefefffafdfdfffbfefdfffdfefefffefffffffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfffbfbfbfff9fefdfff9fefdfff9fefdfff9fefdfff9fefd
+fff9fefdfff9fefdfff9fefdfffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffdfffffffdfffffffefffffffdfffefffdfffefffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffdfffffffdffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffefffdfffefffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffcfefffffcfefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff6fffffff6fffffff6fffffff5fffffff5fefffff4fdfffff4fdfffff4fefffff1fbfefff2fbfefff3fcfffff5fefffff6fffffff6fffffff6fffffff6fffffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffff9fffffff9fffffff9fffffff9fffffff9
+fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fffffff9fefffff7fdfffff6fcfffff6fbfffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffefffcfffdfefbfffffdfffffffdfffffcfefffffafcfffff6fcfdfff7fdfefff7fffefff8fffffff8fffbfff8fffbfffefff9fffefff9fffffff7fffffff7ff
+fffff6fffffff6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffcfcfcfffffffffffffffffffffffffffffffffffffffffffcfffbfffefffcfffffffcfffffffcfffffffcfffefffbfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffc
+fffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffdfffcfffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffbfefafffffefafffffe
+fafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffffefafffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffcfefffffcfefffffafdfefffcfffffffbfffffff8fcfbfff7fcf9fffafffcfffbfffbfffcfffcfffffffcffff
+fffcfffffffdfffffffdfffffffdfffffffdfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffbff
+fffffbfffffff9fffffff9fffffff8fffffff8fffffff9fffffff9fffffffafffffff9fffffbf8fffff8f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffcfffffffcfffffffdfffffffdfffffffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffefffffffefffffdfefffffdfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffdfefffffafbfffdf7f8fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffefff5fffefff6
+fffdfff6fefdfff8fefdfff8fefdfffbfefefffbfffefffdfffffffdfffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffcfcfcfffbfefefffbfffefffcfffefffcfffefffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffbfffffffbfffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffcfffffffcfffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffefffdfffefffdff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffcfefffffcfefffffffbfcfffffbfcfffffbfcfffffcfdfffffcfdfffffdfdfffffdfdfffffdfefffffffffffffffffffefefefffdfdfdfffcfcfcfffdfdfdfffdfdfdfffdfdfdfff6fffffff6fffffff5fefffff4fdfffff4fdfffff5fefffff6fffffff6fffffff5fffffff5fffffff5fffffff5fefffff5fefffff5fefffff5fefffff5fefffffbfefffffbfeff
+fffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffffbfefffff8fdfffff8fdfffff8fdfffff8fdfffff8fdfffff8fdfffff8fdfffff8fdfffff6fcfffff6fcfffff7fcfffff7fdfffff7fdfffff7fdfffff8fdfffff8fefffffffffdfffefffdfffefffdfffefffcfffefffcfffefffcfffefffcfffefffcfffafbf8fffbfcf9fffdfefcffffff
+fdfffffffdfffffffdfffffffdfffffffdfff7f5fbfff9f7fdfff9fbfefffbfdfffff9fffffff9fffffff7fffffff7fffefff8fffbfff8fffbfffefff9fffefff9fffffff7fffffff7fffffff6fffffff6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfff9f9f9fffefefefffffffffffdfdfdfffcfcfcfffffffffff9fcf8fffcfffbfffffffcfffffffcfffdfffafffc
+fef9fffdfffafffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffcfffbfffcfffbfffcfffbfffcfffbfffcfffbfffcfffbfffcfffbfffcfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffdfffbfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcff
+fefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffefffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffefffb
+fffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffbfff3f5f9fffafcfffffcfffffffcfffffffbfffffffbfffffffbfffdfff8fefafffcfffcfffafffafffcfef9fffefffbfffffffdfffffffdfffffffdfffffdfbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffefefefffefefefffefefcfffefefcfffefff9fffefff9fffffff7fffffff7fffdfef3fffefff4fffffff7fffffff6fffffef8fffffffafffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffefffffffefffffffefffffffefffbfafafffdfcfcfffffffffffffffffffffefffffdfbfffffbfbfffffdfdffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefcfffefffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffcfefffffafbfffff9fafffff9fafffffbfcfffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffcfdfffffefffffffefefffffefefffffdfefffffefefffffffffffffffffffffffffff5fffefff6fffffff8fffffff8fffffffafffffffafffffffbfefefffafefdfffcfefefffcfefefffcfefefffcfefefffbfffefffbfffefffbfffefffbfffefffefefefffefefefffefefefffefefefffefefefffefefefffefefefffefefeffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffff9fcfcfffafdfdfffbfefefffcfffffffdfffffffdfffffffdfffefffdfefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcfffffffcffffff
+fcfffffffbfffffffbfffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffcfffffffcfffffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffdfffffffdfffffffffffffffffffffffffefffffffefffffffffefffffbfbfffefbfafffffffefffffffdfffdfefbfffefffcfffffffdfff3f5f9fffcfefffffcfefffffafcfffff5f8fcfffafdfffffcfefffffcfefffffcfefffff5f8fcfff1f4f8fffafcfffffcfefffffbfdfffff9fbfffffcfeff
+ffebfbfbffeafaf9ffecf8f7fff4fffffffbfffffffbfffffffefefefffffffffffefaf9fffffdfcfffffffdfffffffdfffcfdfafff7f9f5fff9fdf9fffcfffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffdfffffffdfffffffffffffffffffffffffefffffffefffffffffefffffffefffffffefffffffefffffffdffff
+fffdfffcfdfafff2f3f0fffcfefffffcfefffff8fafffff7fafefffafdfffff1f3f7ffd5d8dcffbabdc1ff919398ff898b8fff8c8f93ffa1a3a7ffb8bbbfffcccfd3ffe2e5e9fff5f7fbfff1fffffff1fffffff5fffffff3fefeffecf1f0fff8fdfcfffffffffff7f7f7fffffefdfffffdfcfffbf9f7fff7f5f3fff9faf7fffffffdfffcfffcfff8fdf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffefffffffefffffffcfdfffffbfcfffffffefffffffefffefffdfff4f4f3fff9fcf9fffdfffefff1f3f7fff2f4f9ffe4e6eaffb7b9bdff777a7eff46494dff3a3c41ff424549ff404347ff36383cff303337ff35383cff3d3f43ff45484cff54575bff64666aff7b8a8affcededefff5fffffff5fffffffaff
+fffff8fefefff6f6f6fffffffffffffffffffffffffffffffdfffaf9f7fffbfcf9fffffffdfffdfffdfff3f7f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffefffffffefffffef9fafffffdfefffffefdfffdfbfafffbfbfafffffffefffdfffefffdfffeffe6e9edff9ea0a4ff
+515357ff34363bff3e4145ff4b4d51ff4a4c50ff44474bff505357ff4b4e52ff484a4fff46494dff404247ff383b3fff37393dff3b3e42ff425151ff2d3c3cff707b7cffd4dfdffffafffffffafffffffffffffff8f8f8fffefcfcfffffffffffffffdfffffffdfffffffcfffcfdfafffafefafffbfffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffefffffffefffffefafbfffffefffffefefefff2f2f2fffdfffffffdffffffdce1e0ff949898ff404448ff383b3fff393c40ff464a4eff505458ff4d5155ff494d50ff494d51ff45494dff484b4fff4c5054ff505357ff4d5054ff44484cff3f4347ff3e4246ff1d2b2cff3b494aff283435ff263132ff888e90ffe6eceefffcfffffff8fbfbfffefefefff7
+f7f7fff8f9f7fffffffefffffffdfffafbf8fffafdfafffdfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffefffffffefffffffefffffffcfcfffffffffffffffffffcfefeffc5c7c7ff777b7bff3f4443ff52565aff4e5255ff4c5054ff4d5155ff4e5256ff4e5155ff505458
+ff55595cff575a5eff56595dff55595cff53575aff4f5357ff494c50ff43474bff404447ff3d4b4cff233132ff2e393bff343f40ff212829ff464c4effb3b6b5fffcfffffffffffffffffffffff7f7f6fffbfcfafffffffdfffefefcfffafdfafffdfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffeffffffff
+fffffffffffffffffefffffffefffffffefffffaf8fafffefefffff8f8fbffb4b8bbff5b5f62ff31383bff3d4346ff3d4246ff464b4fff4f5458ff555a5dff5a5f63ff61666aff63686cff62676bff5e6367ff5a5f63ff555a5eff51565aff51565aff515659ff4d5256ff494e52ff344143ff3c494cff394447ff313c3fff293234ff212a2cff4d5354ff979d9fffe9edecfff8fcfbfffdfffffffdfffffffbfdfcfffeffffff
+fffffefff8f8f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffffffffffffffffffffffffefffffffefffffcf9fcfffffefffff4f5f7ffacacafff5b5f62ff3a3e41ff3f4548ff4d5457ff505559ff5b6063ff61666aff61666aff666b6fff6d7276ff6c7174ff63686cff616669ff5c6165ff555a5eff5156
+5aff52575bff52575aff4c5155ff454a4dff455254ff333f42ff333e41ff3b4648ff2f383aff1e2729ff252b2cff33383affa1a5a5ffdee2e1fffdfffffffdfffffff4f5f5fffefffffffffffefffdfefcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f4f2fffdfffefffffffffff6f6f6fffefefefffffffffffffefffff8f5f7fffffeffff
+fffeffffbbbcc1ff53555aff2e343aff434a4fff4a5359ff475055ff595f62ff5d6367ff676d71ff767c80ff7f8588ff787e81ff646a6eff52595cff53595dff51585bff505659ff4f5559ff4f5559ff4d5357ff4a5154ff484e51ff414c50ff3c474bff374245ff333e41ff313b3eff2b3538ff252e30ff1f282aff1c2324ffa2a9aafffbfffffff3f8f7fffefffffff8faf9fffefefefffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fdfbfffdfffefffefefefffbfbfbfffffffffffffffffffffdfffffffefffffffeffffc3c2c6ff6e6f74ff44464bff3e444aff40474cff454e54ff555e63ff61676bff72787cff7e8488ff757b7fff5d6366ff4a5154ff4a5054ff52585cff4c5256ff4a5054ff474e51ff464c50ff464c4fff454b4fff43494dff41474bff3e
+494dff3a4549ff364145ff343f42ff323d40ff2d383bff273032ff212a2cff1b2223ff434a4bffb5b9b9fffbfffffff0f2f2fffefffffffefefefffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffafdfafff9faf8fffffffefffffffffffdfdfdfffefdfffffffeffffe1e1e6ff79797eff30333aff393c43ff454d55ff404850
+ff465159ff5b676fff686f73ff676f72ff62696dff565e61ff495053ff42494dff434b4eff484f53ff4c5457ff495053ff454c50ff434a4dff434a4eff434b4eff434b4eff424a4dff3d474dff3a4349ff354045ff333e43ff313d41ff2d393dff273336ff212d30ff1a2426ff020c0eff4f5556ffdbe1e2fff4f5f6fffdfffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffdfffefffafdfafffbfcfafffffffefffffffffffffffffffffefffffcfbfeff939398ff545459ff33363dff3e4249ff404850ff474f57ff535e66ff56626aff5e6568ff4d5458ff3c4447ff3b4246ff464d50ff4e5559ff4b5256ff444b4eff4e5559ff4a5154ff454d50ff434a4dff444b4eff464d50ff474f52ff484f52ff414b50ff3c454bff354045ff313c41ff303c40ff
+2d393dff283437ff243033ff1e282aff151f21ff0f1517ff787d7ffffbfcfdffeff1f2fffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffdfffefffdfffffffefffdfdfcfffdfdfdfffffffffffdfbffffd6d5d8ff595960ff494950ff434851ff434750ff38424cff48525cff54616bff4a5761ff464e51ff454d50ff434b
+4eff40494cff3f484bff424a4dff464e51ff4a5255ff464f52ff424b4eff3e4649ff3c4447ff3e4649ff414a4dff444d50ff464e51ff464f56ff40484fff364146ff303b41ff2c3a3eff2a383cff263538ff233134ff1f2b2dff263235ff091012ff262d2fffc5c7c9fffbfcfefffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfefafffefffdfffffffefffbfcfafffafafaffffffffffe9e8ecff9d9ca0ff505157ff47484eff40454dff41454eff3c464fff444e58ff47545eff424f59ff3c4548ff434c4fff495255ff495255ff444d50ff424a4eff454d50ff495155ff3f484bff3c4548ff394245ff394144ff3d4548ff41494cff444d50ff464f52ff464f55ff40494fff384248ff333d43ff2f3c41ff2b393dff263437ff213033ff1d2a2cff152123
+ff1d2426ff11181aff67686afffdfffffffcf9fbfffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffcfffcfdfafffffffefffdfefcfffcfcfcffffffffffcac9cdff646367ff54555cff4c4d54ff3c414bff3c414aff414b56ff404b56ff374551ff3a4753ff424a4eff40484bff40484bff454e51ff4b5457ff4b5457ff454d50ff3d
+4649ff3b4346ff394144ff374043ff394144ff3e4649ff434b4eff474f52ff485154ff40484fff3d454cff39444aff384349ff344247ff2e3c41ff253538ff1e2e31ff192629ff111f21ff1f2729ff121a1cff333437ffc8c9ccfffdfafdfffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfff8f9f5fffefffdfffffffefffefefe
+fffafafaffb3b1b5ff413f43ff4e4f56ff56575eff444a53ff3b414aff434d58ff414c57ff313f4bff34424dff454d50ff434b4fff424b4eff434c4fff454d50ff424a4eff3b4447ff353e41ff353d40ff333c3fff333c3fff363f42ff3b4447ff414a4dff454d50ff464f52ff394148ff3a4149ff3a444bff3d474eff3a484dff324045ff253539ff1c2c2fff162426ff2b393cff131b1dff0b1315ff37393bff78797cfffffe
+fffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffcfb
+fafffcfbfafffdfbfafffefdfbfffffffdfffffffdfffffffdfffffffdfffbf7f9fffefbfdfffffefffffffefffffffefffffffefffffffefffffffefffffaf6f8fffffefffffffefffffffefffffffefffffffefffffffefffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefbfffdfffdfffffffdfff6f7f5fffffffdfff8f4f3ff787170ff554e4dff5d5554ff625958ff58504fff4c4443ff4b4645ff4a4543ff43403eff464241ff3e4149ff3f424aff3d424aff3d424aff394148ff374047ff343f46ff343f45ff374148ff354047ff363e45ff343c44ff
+363b43ff363b42ff383b43ff383b43ff373a39ff3d4040ff414343ff3f4141ff3f4141ff3e4040ff363939ff2c2e2eff1e2121ff242726ff222424ff282b2aff292c2bff474a4afffdfffffffcfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffdfffffffcfffffffcfffffffdfffffefffffffefffffffefffffffdfffffffefffffffefffffffdfffffdfafcfffffefffffffefffff9f6f8fff5f2f4fffdfafcfffffefffffffefffffcf8fa
+fffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffcfdfbfffdfefbfffffffdffdedad8ff665f5eff564f4eff5a5150ff6158
+57ff5a5352ff544d4cff585352ff56514fff4c4947ff4a4745ff3c3f47ff3a3d45ff363b43ff353a42ff333c43ff343d44ff333e45ff333e45ff343f46ff343f45ff343d44ff323b42ff333840ff31363eff32343cff31333bff2d302fff343737ff393b3bff393c3bff3a3d3cff3d3f3fff3b3d3dff353838ff2f3231ff2f3232ff292c2bff303333ff2c2e2eff313333ffdbdedefff8fbfaffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffbfbfbfffdfcfbfffdfcfbfffdfcfafffd
+fcfbfffffefdfffffffefffbfafcfff9f8fafff8f7f9fffbfafcfffffefffffffefffffffefffffdfcfefffaf9fbfffffefffffffefffffffefffffcfcfdfffdfcfefffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfff8fcf9fffafbf8fffffffdfffffefcffbebab9ff524a49ff564f4eff564e4dff5f5656ff5d5554ff5d5655ff666160ff645f5eff565351ff504d4bff404149ff3a3c43ff32363dff30343bff30373eff353c42ff353f45ff364046ff374046ff363f45ff363d43ff333a41ff33373eff30343bff303139ff2e3037ff343434
+ff3b3b3bff404040ff404040ff404040ff454545ff494949ff4a4a4aff404040ff3e3e3eff323232ff393939ff333333ff1e1e1effb3b3b3fffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffdfdfdfffffffefffffffefffffffefffffffefffffffefffffffefffffefffffffefffffffefffffffefffffffefffffefdfffffdfcfefffefdfffffffefffffefefffffbfafcfffcfbfdfffffefffffffefffffafafbfff3f2f4ffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfff8fcf9fffbfbf9fffffffdfffffcfaffaca8a6ff4a4342ff534b4aff564d4cff5e5555ff5d5554ff605857ff6b6665ff6a6564ff5a
+5755ff524f4eff484a51ff404149ff34383fff30343bff30373eff363d44ff384248ff394349ff3b454bff394248ff373e45ff333b41ff33373eff33373dff34363dff35373eff434343ff484848ff4b4b4bff484848ff464646ff494949ff505050ff565656ff414141ff434343ff343434ff383838ff373737ff1e1e1eff999999fffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffdfdfdfffdfdfdfffcfcfcfffbfbfbfffbfffffffbffffff
+fbfffffffbfefffff5f8fafff2f5f7fff9fdfffffbfffffff0f4f6fff9fcfefffbfffffffbfffffffbfffffffbfffffffbfffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffdfffdfffdfffdfffdfefcfffffffdfffffcfaffa8a4a2ff504948ff4f4746ff574f4eff5e5655ff5b5352ff5c5453ff676260ff676260ff585553ff514e4dff525157ff49484eff3c3d43ff35373cff33383dff383d42ff3b4247ff3d4549ff41494dff3d4549ff393f44ff353a3fff37383eff393b40ff3f3f44ff424247ff4e494aff4f4b4bff504b4cff4d494aff4a4546ff4a45
+46ff514d4dff595555ff423d3eff494445ff383435ff353132ff3a3536ff2e2a2aff918c8dfffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfff9f9f9fff7f7f7fffafafafffffffffffffffffffffffffffafafafff3f6f8ffe0e4e6ffc7cbcdffadb0b2ff8f9395ff7b7f81ff7a7e80ff84888affbec1c3ffcfd2d5ffe6eaecfff6fafcfff6fafcfff0f4f6fff0f4f6fff5f9fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefbfffdfffdfffffffdfffdfefbfffffdfcffa39f9eff574f4eff4e4746ff584f4fff5f5655ff5a5251ff58504fff605b59ff605b59ff54514fff504d4bff525157ff4c4b51ff414348ff
+393b40ff33383dff363b40ff394145ff3e454aff434a4fff3f464bff3b4146ff383d42ff3a3c42ff3e4046ff46454bff49494fff504b4cff4e4a4aff4e494aff4e494aff4c4748ff4a4646ff4f4b4bff565253ff433f3fff474243ff3a3636ff342f30ff363132ff353131ff868282fffffbfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffcfefffffdfffffffdfffffffcfeffffeef0f3ffd0d2d6ffb8bbbeff62696cff52595cff454c4fff3f4649ff3a4043ff333a3dff373e41
+ff41484bff333a3dff2e3538ff3f4649ff71787bffb0b7baffe0e7eafff8fefffff8fffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fc
+fafffdfffdfffffffdfffffffdfffffffdff989492ff554d4cff534b4aff574e4dff5f5756ff5b5352ff58504fff5d5856ff5b5655ff514e4cff4f4c4aff524e52ff504d51ff49484cff424144ff383b3eff393c3fff3e4345ff44494cff494e50ff474c4eff46484bff44464aff47464aff4a484cff4e4b4fff514d51ff564f4eff524a4aff504948ff534b4aff524a49ff4e4646ff4e4746ff534b4bff494241ff423a3aff3e
+3736ff3c3434ff352d2cff342d2cff7d7575fffffbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffefffffffefffffffcfdfffffbfdfefffbfdfffff6f8faffdddfe2ffa7a9adff636669ff323538ff474e51ff3a4144ff373e40ff42484bff494f52ff434a4dff3e4548ff3f4649ff3f4648ff41474aff3b4245ff2b3235ff242b2eff484f52ff999fa2ffe1e8eafffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fcf9fffbfefbfffefffdfffffffdfffffffdff8b8886ff4f4847ff57504fff554c4bff5f5756ff5e5655ff5a5251ff5d5857ff5a5554ff514d4cff504d4bff504c50ff514e52ff4e4d50ff474649ff3c3f42ff3c3e41ff414649ff494e51
+ff4d5254ff4c5154ff4e5154ff4e5053ff514f53ff515053ff524f53ff534f53ff57504fff514948ff4e4646ff514948ff504847ff494141ff463e3eff484040ff4a4342ff393131ff3d3535ff423a39ff332b2aff2e2625ff756d6dfffffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f7f6fffffffefffffffffffcfcfcfff7f7f7fffffffffffdfffffff9fbfcfff7fafdfffcfeffffecf0f4ffafb3b7ff64686eff3a3e44ff393e44ff484d54ff485054ff4c5458ff4d5558ff495155ff495054ff4b5356ff4b5357ff495154ff42494dff434b4fff42494dff3b42
+46ff333a3eff323a3eff394145ff41494dffaeb5b4fff9fffffff1f8f7fff3faf9fffafffffffafffffff6faf9fffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafdfbfffdfffdfffbfbf9fffffffdfffffffdff82
+7f7dff554e4dff4e4645ff574e4dff59504fff5a5251ff5b5352ff575251ff544f4eff504d4bff4e4b49ff544e4fff565051ff535050ff514d4eff4b4b4bff4c4c4cff505252ff555757ff5b5d5dff5d5f5fff5f5f5fff5d5d5dff5b5758ff555252ff544e4fff524c4dff534b49ff534b49ff524a48ff514847ff4f4645ff4c4442ff4a4240ff49403fff473e3dff463e3cff393130ff453c3bff342c2aff352d2bff756c6bff
+fff7f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffaf9f8fffdfdfdfffffffffffdfdfdfffcfcfcfffdfefffff9fafcfffcfeffff
+dde0e3ff95999dff52565bff3b4046ff494e53ff50555bff484d53ff444c4fff4d5559ff545c5fff545c60ff535b5eff535b5fff525a5eff50585bff444c50ff454d50ff434b4eff3c4448ff343c3fff2f373bff2f373bff323a3dff3f4645ff767d7cfff9fffffff5fcfbfffafffffff9fefdfff5f9f8fff8fcfbfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefbfffdfffdfffafbf9fffffffdfffffffdff807d7bff544d4cff4f4746ff564d4dff58504fff5a5251ff5a5251ff565150ff534e4cff4f4c4aff4d4a48ff524c4dff544e4fff534f50ff524f4fff4e4e4eff525252ff575959ff5d5f5fff646665ff646666ff646464ff5f5f5fff5b58
+58ff555152ff534d4eff524c4dff534b49ff534a49ff524a48ff514847ff4f4645ff4c4442ff4a4240ff49403fff463e3dff463d3cff3a3130ff443c3aff352c2bff352d2bff716867fffff6f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefff5f4f2fffbfaf9fffffffefffcfcfcfffafafafffdfffffffafcffffd6d9deff85898dff3b4147ff2f353bff3f464eff484f57ff4f565fff5a616aff62686dff676d73ff686e74ff62686dff5a6166ff575d62ff545a5fff50565cff4c5257ff4b5156ff494f54ff444a50ff3e4449ff373d42ff31373cff2d3439ff10
+1b19ff2e3837ff6a7473ffe5efedfff5fdfcfff8fffffff5fbfafffafffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefbfffdfffdfffbfcf9fffffffdfffffffdff7d7977ff524b4aff504847ff564e4dff59504fff
+5a5352ff5a5251ff544f4eff514c4bff4e4a49ff4d4a48ff53494aff554c4cff564f4fff575050ff565352ff5c5858ff636261ff6a6968ff71706fff6f6e6dff6d6968ff656161ff5f5858ff585151ff564d4dff554c4cff524b48ff524b48ff514a47ff504946ff4d4644ff4b4441ff49423fff48413eff453e3cff443d3bff3a3330ff413a38ff352e2bff342d2aff68615ffffdf6f3ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffaf9f7fffffffefffffffefff7f7f7fffffffffffdffffffe3e5e7ff72757aff44474cff2e333aff474c53ff565c64ff4e545d
+ff585f68ff747b85ff7a8086ff757b80ff696f74ff5b6167ff555b60ff545a5fff52585dff4d5358ff4d5358ff4a5055ff474d53ff454c51ff43494fff3e4449ff373d42ff31373cff2e3937ff252f2eff111b19ff67706fffe9f1f0fff6fefdfffafffffff7fdfcfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcfffdfffdfffbfcf9fffffffdfffffffdff797573ff504948ff514a49ff58504fff5b5352ff5d5554ff5b5453ff554f4eff514c4aff4e4b49ff4f4b4aff524849ff554b4bff554e4eff585151ff585554ff605c5cff686766ff716f6eff777675ff747372ff6f6c6bff666262ff5f5858ff585151ff574d4eff564d4dff524b48ff51
+4a47ff514a47ff4f4845ff4d4643ff4b4441ff49423fff47403dff453e3cff433c39ff3b3431ff3f3835ff362f2cff342d2aff5f5855fffbf4f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffefcfafffffffdfffffffefff9f8f7fffdfdfdffffffffffe2e4e7ff989a9dff34383eff41454bff464d55ff484e56ff4f5761ff636a74ff6e7681ff6f7782ff676b71ff5e6268ff52555cff4c4f55ff51545bff595c63ff585b62ff51555bff4d5057ff494c52ff44474eff42454cff41444bff3f4249ff393c43ff33373dff283533ff253230ff293533ff0e1a18ff7c8684ff
+edf7f5fff9fffffff4fbf9fffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffbfcfafffffffdfffffdfcff74706eff4d4645ff534c4bff5c5352ff5f5656ff605958ff5e5655ff55504fff514c4bff4f4c4b
+ff514e4cff554a48ff574c4bff584f4dff5a5150ff5a5553ff635d5bff6c6966ff75716fff7b7876ff787572ff726d6bff686361ff615856ff5a5150ff594e4dff594e4dff4f4b47ff4f4b46ff4e4a46ff4d4844ff4b4642ff484440ff46423dff45413cff433f3bff403c38ff3b3632ff3a3632ff35312cff322e29ff524e49fff8f4efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfafffffffdfffcfbf9fff6f5f4fffffffffffcfcfcffa6a9acff494b4eff3d4247ff43484eff474d55ff4d545cff5a626cff666e78ff606974ff525b66ff4f5259ff4a4e54ff4649
+4fff484b52ff53565dff5d6066ff595c63ff50535aff52555cff4d5057ff474a51ff43464dff40444aff3e4147ff393c42ff35383eff263431ff2a3735ff222e2cff1f2b29ff1a2422ffa4aeacfff2f9f8fff9fffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfffdfffdfffdfffcfcfafffffffdfffffbf9ff6f6c6aff4b4443ff554d4cff5e5554ff625958ff635b5aff5f5756ff55504fff514b4aff504d4bff534f4eff564b4aff594d4cff59504eff5a5150ff5b5553ff635e5cff6d6a67ff767370ff7c7977ff797673ff746e6cff6a6462ff625957ff5b5250ff594e4dff594d4cff4f4b46ff4e4a46ff4e4a45ff4c4844ff4a4642ff48443fff
+46413dff44403cff433f3bff3f3b37ff3c3833ff383430ff36322dff322e29ff484440fff6f2eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffcfffffffdfff9f8f7fffdfcfbffffffffffc6c6c6ff67696dff36393cff494e54ff3d4249ff404750ff585f68ff5d6671ff4e5662ff3f4955ff3f4955ff4f5057ff4f5057ff4d4e55ff4c4d54ff505159ff56575eff54565dff4f5058ff54555dff51525aff4d4e56ff484a51ff44454dff3f4048ff3b3c44ff383940ff384744ff1e2d2aff1c2927ff1c2927ff1d2827ff2f3a39ffd3dbdafff9fffffffcfffffffcffff
+fffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffcfdfafffffffdfffdf9f8ff6c6867ff494241ff564f4eff5e5655ff625a59ff635c5bff5f5756ff544f4dff4f4a48ff4f4c4aff534f4eff594c4aff5b4e4cff5b504eff5c52
+50ff5d5754ff67605dff716c69ff7a7672ff817c79ff7d7976ff78726fff6e6764ff655b59ff5d5350ff5a4d4bff584c4aff4d4b46ff4d4a46ff4c4a45ff4a4843ff484641ff46443fff44423dff42403bff413f3aff3d3b36ff3b3934ff35332eff35332eff302e29ff3f3d38fff3f1ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffefdfbfffffffefff3f3f3ff909090ff424448ff505356ff3a3f45ff494e54ff505760ff4b525bff3e4752ff3b444fff3e4754ff404a56ff505259ff52535aff4e4f56ff46474fff43444cff494b52ff4f5158ff52
+535bff4b4d54ff4b4c54ff4a4b53ff47484fff42434bff3c3e45ff383941ff35373eff293735ff23322fff2b3836ff212e2cff040f0eff25302fff747b7afff6fdfcfffcfffffffcfffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdff
+fdfffdfffcfdfafffffffdfffcf8f7ff6a6665ff484140ff574f4eff5e5554ff625958ff635b5aff5e5655ff524d4cff4d4847ff4d4a49ff524e4dff594c4aff5b4e4cff5b514eff5d5351ff5f5855ff69625fff736f6cff7d7976ff847f7cff817c79ff7c7572ff716a67ff675d5aff5d5350ff594c4aff574a48ff4d4b46ff4c4a45ff4c4945ff4a4843ff484641ff46443fff44413dff42403bff413f3aff3c3a35ff3c3a35
+ff34322dff36332fff302e29ff3b3934fff3f1ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefcfffffffdfffffffefffffefdffc5c2c3
+ff5e5b5bff545254ff494749ff3e3e42ff48494dff474d52ff40454aff384348ff3f4a50ff425056ff415056ff4e545eff4c515cff484e58ff454b56ff444a54ff444b54ff454e55ff474f57ff485359ff424c52ff3a454aff354146ff334044ff323f42ff2e3b3eff2a373aff353c44ff222a31ff292e35ff22262dff26262cff101117ff333034ffd2cfd3fffffbfefffffbfefffffefffffffefffffffdfcfffefcfbffffff
+fdfffafbf8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefcfffafdfbfffffffdfffffffdffedeae8ff64615fff4f4847ff534c4bff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff524f4dff574e4dff584f4fff5a5150ff5b5352ff605756ff6a6161ff786f6eff827978ff8b
+8382ff887f7eff7f7676ff736a69ff665d5cff5b5352ff564d4cff544b4aff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff453d3aff443c39ff423a37ff423a37ff352d2aff352d2aff352d2afff4ece9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefbfffcfdfbfffcfaf9fffaf9f8ff908d8eff524f50ff555255ff464346ff424347ff454549ff40464bff3e4449ff3b464cff404b50ff3f4d53ff3d4b51ff444954ff424752ff404550ff3d434dff3c424cff3c434cff3c454cff3d464dff3a444aff394349ff364146ff333e43ff
+313e41ff313e42ff334144ff354346ff313940ff282f37ff34393fff262a31ff27282eff18181eff221e23ff878489fffffefffffffefffffefafbfffffefffffffffefffbfaf9fffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffafefbfffffffdfffffffdffede9e8ff64605f
+ff4f4847ff534c4bff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff524f4dff564e4dff584f4fff5a5150ff5b5352ff605757ff6a6261ff78706fff827a79ff8c8382ff887f7eff7f7776ff736a6aff665d5cff5b5352ff564d4cff544b4aff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff443d39ff433b38ff413936ff413a36ff352d2aff362e2bff352d2afff4ec
+e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffcfdfbfffcfaf9ffedecebff5c5959ff4e4b4bff5e5b5dff4d4a4cff48474aff4140
+44ff393e42ff3e4247ff3e474cff3d464bff374449ff364348ff384049ff373f48ff363e47ff353d46ff343c44ff343c44ff353d44ff353d44ff31393fff333b41ff333c40ff30393dff2d3539ff2e363aff343c40ff3a4246ff30373dff2c3339ff3b3f44ff282c32ff27272cff28272cff1d191dff3f3b3ffffbf6f8fffffefffffaf6f7fffffefffffffffefffaf8f7fffefffdfffffffeffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcfffafefbfffffffdfffffffdffede9e7ff64605fff504847ff544c4bff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff524f4dff564e4dff584f4eff5a5150ff5c5352ff605857ff6b6261ff79706fff837a7aff8c8382ff887f7eff807776ff736b6aff665e5dff
+5c5352ff564d4dff544b4bff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff433b38ff423a37ff403835ff413936ff352e2aff362e2bff342d29fff3ebe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffdfcffc6c5c4ff494546ff4f4c4dff625f61ff585557ff4a494dff413f43ff383d41ff3f4348ff3b454aff343d42ff2c393eff2e3b40ff343b45ff343b45ff343c45ff343c45ff343c44ff343c43ff333b42ff333b42ff30383dff30383dff2e363bff2b3337ff272f33ff273033ff2b3336ff2e373aff343a40
+ff2c3238ff393d43ff2b2f34ff2b2a30ff36363bff2c282cff282428ffcfcacdfffffefffffbf7f8fffffefffffffffefffcfbf9fffefefdfffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfefbfffefffdfffffffdffece8e7ff64605eff504847ff554d4cff5d5453ff5c5453ff5a53
+52ff574f4eff524d4bff514b4aff504d4bff524f4dff564e4dff584f4eff5a5150ff5c5352ff615857ff6c6362ff7a7170ff847b7aff8c8483ff88807fff807776ff746b6aff675e5dff5c5453ff564e4dff544c4bff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff433b38ff413935ff3f3733ff403835ff362e2bff372f2bff342c28fff0e9e5ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfafffffffefffefbfcff8a8888ff4f4b4cff4f4b4cff5b5658ff5c585aff504e50ff494749ff444649ff47494dff3f4549ff32393cff2b
+3538ff2e383bff2f3a41ff313b43ff343d44ff353f46ff374046ff363e44ff363c42ff343b40ff33383cff303539ff2e3235ff2e3135ff323437ff343639ff353639ff343538ff3e4347ff33383cff3f4145ff3c3e42ff39383bff3f3e41ff3a3538ff2e292cff948e90fffffbfefffffcfdfffffefffffdfbfcfffffffffffffffefffdfdfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffbfefcfffefffdfffffffdffebe8e6ff63605eff504948ff554e4dff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff524f4dff564d4dff584f4eff5a5150ff5c5453ff615958ff6c6463ff7b7271ff857c7bff8d8483ff89807fff807877ff746b6bff675e5dff5d5453ff574e4dff554c4bff534c48ff524a47
+ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff443c38ff403835ff3e3633ff403834ff362e2bff362f2bff322a27ffede5e2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff8f8f7fffffffefffffdfeff5f5c5dff5b5758ff524e4eff545052ff5e5a5cff555255ff535153ff4e5054ff4e5053ff434a4dff394043ff303a3dff303a3dff2c373eff2f3a41ff343e45ff374148ff394248ff374046ff363d42ff343a40ff30353aff2e3338ff303337ff35393cff3f4144ff434548ff444548ff424345ff44494dff3e4347ff484b4fff4e5054ff48464aff3e3d
+40ff393437ff2f2a2dff686365fffffafcfffffefefffffefffffbf9f9fffffffffffefffdfffcfcfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffbfffcfffefffcfffffffdffebe7e5ff635f5eff504948ff564e4dff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff52
+4f4dff564d4cff584f4eff5a5151ff5c5453ff625958ff6d6463ff7b7372ff867d7cff8d8484ff898180ff817877ff746c6bff675f5eff5d5453ff574f4eff554d4cff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff453d3aff413936ff3d3632ff3f3834ff362e2bff362e2bff2f2724ffe9e1deffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefffffffffffffeffff524f50ff5a5556ff565152ff565051ff605a5bff585354ff585455ff535354ff504f51ff4b4e4fff474b4cff3c4344ff32393aff2c373cff2f3b40ff364045ff
+3a4449ff3d4549ff3b4347ff3a3f42ff373c3fff36373aff383a3cff3f3e40ff444446ff4c4949ff4f4b4cff514b4cff504b4bff424546ff494c4dff4e4d4fff525153ff4d4a4cff3e3b3dff373233ff302a2bff5d5758fffffcfdfffdf9fafffffefffffbfbfbfffffffffff9fbfbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffdfffdfffbfffcfffefffcfffefffcffeae7e5ff635f5eff504948ff564f4eff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff524f4dff564d4cff584f4eff5a5151ff5d5453ff625a59ff6d6564ff7c7372ff877e7dff8d8584ff898180ff817878ff756c6bff685f5eff5d5554ff584f4eff564d4cff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff4942
+3eff473f3cff463f3bff423a37ff3e3633ff3f3734ff362e2bff352d2aff2d2522ffe5dddaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffdfcfcfffffeffff524f50ff4d4849ff555051ff554f50ff5c5657ff565152ff575253ff4f4e50ff4b4b4cff4b4f50ff4f5353ff414748ff2f3536ff2d383dff313d41ff384247ff3d474cff40484cff3e464aff3c4144ff393e41ff3c3d3fff424346ff4a494bff4c4c4dff4d494aff4a4747ff4b4647ff4d4849ff3a3d3eff4a4d4eff49484aff464547ff484446ff3d3a3cff3a3435ff342e2fff635d5efffffefffff7
+f3f4fffffefffffffffffffdfdfdfff6f7f7fffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffbfffcfffefefcfffefffcffeae6e5ff635f5eff514948ff564f4eff5d5453ff5c5453ff5a5352ff574f4eff524d4bff514b4aff504d4bff524f4dff564d4cff584f4eff5a5151ff5d5453ff
+625a59ff6e6564ff7c7473ff877e7dff8e8584ff8a8180ff817978ff756c6bff685f5eff5d5554ff584f4eff564d4cff534c48ff524a47ff504845ff4f4744ff4f4743ff4d4542ff49423eff473f3cff48403cff423a37ff3e3633ff3f3734ff362e2aff342c29ff2b2320ffe3dbd8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfcfffffefffffbf7f8ff534f50ff4f494aff585253ff554d4fff5b5254ff564e4fff585152ff54504fff4f4b4bff4c4d4bff50514fff4c504dff464947ff353e41ff363f42ff3a4144ff3e4648ff44494bff454a4cff47484aff454648
+ff504f4fff4f4d4eff504b4cff504b4cff524b4bff514a49ff504746ff4d4444ff454644ff424341ff4d4b49ff514f4eff4b4646ff443f3fff3e3738ff302829ff575152fff8f1f2fffffefffffffdfefffffffffffffffffffcfffefffbfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbff
+fcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff635a59ff5a5151ff5c5453ff5e5655ff514c4bff4e4948ff514e4cff4f4c4aff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff453e3aff433b38ff3e3633ff3d
+3532ff342c29ff372f2cff2f2724ffe4dcd9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfcfffffffffff7f4f4ff524f4fff50494bff57
+5051ff564e4fff5a5253ff564f50ff585051ff53504fff4f4b4bff4c4d4bff50504fff4c4f4dff474a48ff3a4245ff3c4447ff41484bff474e50ff4e5254ff4f5456ff505253ff4e4f51ff514f50ff4f4e4eff504b4cff504b4cff524b4aff514a49ff4f4746ff4d4544ff454644ff424341ff4c4b49ff514f4eff4b4646ff443f3fff3e3738ff30282aff544d4efff6f0f1fffffefffffffdfdfffffffffffefefefffdffffff
+fbfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff635a59ff5a5150ff5c5453ff5e5655ff524c4bff4f4948ff514e4cff4f4c4bff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484
+ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff453e3aff433b38ff3e3633ff3d3532ff342c29ff372f2cff2e2623ffe3dbd8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfdfffffefffff3efefff534e4fff524a4bff564e50ff594f4fff5a5051ff59504fff59504fff554f4cff524c49ff504d49ff53504cff50504bff4c4c47ff47494aff4a4c4eff515253ff58595aff5f5f5fff606060ff5f5d5dff5c5a5aff54504fff524e4dff524c4aff514b49ff524b
+48ff514a47ff4f4844ff4d4642ff474641ff44433eff4f4b47ff53504cff4d4744ff46403dff403837ff322928ff4f4747fff5eeedfffffefffffffdfefffffffffffffffffffcfffffffafdfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff50
+4948ff574f4eff625a59ff595150ff5c5453ff5e5655ff524c4bff4f4a48ff514e4cff504d4bff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff453e3aff433b38ff3e3633ff3d3532ff352d29ff372f2bff2e2623ffe2dbd7ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffffeffffede8e9ff514d4dff534b4dff544c4dff5b5151ff584f4fff5a5150ff584f4eff
+544e4bff524c49ff504d4aff524f4cff50504bff4e4e49ff4d4f51ff525455ff5a5c5dff626465ff696969ff686868ff656363ff605e5eff555250ff534f4eff524c4aff504b49ff514a47ff504947ff4f4844ff4d4642ff474541ff44433eff4e4a47ff53504cff4d4744ff47403eff403837ff322a29ff474040fff2ebebfffffefffffffdfefffefefefffffffffffcfffffffbfefeffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff625958ff595050ff5b5453ff5e5655ff524d4bff4f4a49ff524f4dff504d4bff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e56
+55ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff453d3aff433b38ff3f3734ff3e3633ff352d2aff372f2bff2d2522ffe1d9d6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffffeffffe5e0e2ff514b4dff564d4eff52494aff5e5252ff584d4dff5d5250ff594e4cff554c48ff554c48ff534e48ff544f49ff525049ff53504aff585353ff5d5859ff666162ff6f6a6bff746e6eff706b6aff696462ff625d5bff585350ff55504dff524d49ff4f4b47ff4f4a45ff4e4a45ff4d4843ff4b4741ff48453eff46
+433cff504b45ff55504aff4f4743ff48413dff423937ff342b29ff3f3737ffefe8e7fffffefffffffdfefffefdfffffffefffffcfffffffbfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff615858ff59504fff5b5352ff
+5d5655ff524d4bff4f4a49ff524f4dff514e4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff453d3aff433c38ff3f3834ff3f3734ff362e2aff362f2bff2c2521ffe0d8d5ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffffeffffdfd9dbff504a4cff574e4fff4f4647ff605454ff564b4bff5e5251ff584d4bff544b47ff554c48ff544e49ff534e48ff524f49
+ff55524bff595354ff605a5bff6a6566ff746f70ff787372ff736e6dff696463ff615c5aff595451ff56514eff524d49ff4f4a46ff4e4a45ff4e4944ff4c4842ff4b4741ff48453eff45423bff4f4a45ff55504aff4f4743ff49413dff423937ff342b29ff372f2fffece4e4fffffefffffffefefffdfdfefffffefffffcfffffffbfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff615857ff584f4fff5b5352ff5d5655ff524d4bff504b49ff53504eff514e4dff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff51
+4946ff504845ff4e4643ff4b4340ff49413eff48403dff453d3aff443c38ff403835ff3f3834ff362e2bff362e2bff2c2421ffdfd7d4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffcfffffffdffffdad4d6ff4f494cff584f50ff4d4445ff615555ff564a49ff5f5351ff584c4aff544a45ff564c48ff554f48ff544e47ff545048ff58544cff5d5254ff655a5cff716768ff7c7373ff807877ff7b7271ff6f6866ff665f5dff5b5552ff57524eff514d48ff4e4a45ff4d4a44ff4c4943ff4b4942ff494741ff48443dff46423aff504a44ff565049ff504743ff4a423dff
+433a37ff352c29ff312929ffeae2e2fffffefffffffefffffcfcfdfffffffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff605857ff584f4eff5b5352ff5d5655ff524d4bff504b49ff53504eff524f4d
+ff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff453d3aff443c39ff403935ff403835ff362e2bff362f2bff2b2320ffded6d3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdffffd7d2d4ff4f494bff594f51ff4c4344ff625656ff554949ff605451ff584c49ff534945ff564c48ff564f49ff544d47ff545048ff59554dff5c5153ff655a5cff726969ff7f76
+76ff847b7bff7f7675ff736c6aff6a6360ff5b5652ff57524eff514d48ff4e4a45ff4c4a43ff4c4943ff4a4842ff494741ff48443cff46423aff504a43ff565049ff504743ff4a423dff433a37ff352c29ff2e2625ffe9e1e0fffffefffffffefffffcfcfdfffffffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae6e5ff625e5cff504948ff574f4eff605756ff584f4eff5a5352ff5d5655ff524d4cff504b4aff53504eff524f4dff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff8d8484ff8c8382ff837b7aff746b6aff665d5dff5e5655ff58504fff534a4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff
+48403dff453d3aff443c39ff413935ff403935ff362f2bff362e2bff2b2320ffded6d3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdff
+fffffdffc6c4c2ff4e4c4aff534c4bff4f4948ff5e5453ff4f4544ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5e5554ff685f5eff746b6bff7e7574ff847c7bff827a79ff766e6dff69605fff615857ff58504fff534a49ff534a49ff534a49ff4f4645ff4c4342ff4b4342ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff312e2dffcbc8c7ffffffff
+fffefefefffefefefffffffffffdfffffffbfdfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a
+59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff443c39ff3f3734ff3b3330ff3f3734ff39312eff38302dff28201dffd8d1cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffc5c4c2ff4d4c4aff534d4cff504948ff5e5453ff4f4544ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605756ff6a6160ff766e6dff807777ff877e7dff857c7bff79706fff6b6362ff61
+5857ff59504fff534a49ff534a49ff534a49ff4f4645ff4c4342ff4b4342ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff2f2c2bffc8c5c4fffffffffffdfdfdfffefefefffffffffffdfffffffbfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcff
+fffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff433b38ff403835ff3d3531ff3f3734
+ff38302dff372f2cff2a221fffdbd3d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffc4c2c0ff4d4b49ff534d4cff504a49
+ff5e5454ff4e4444ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff615958ff6c6362ff79706fff837a7aff8a8180ff887f7eff7b7372ff6e6564ff615958ff59504fff534b4aff534b4aff534b4aff4f4746ff4c4343ff4c4342ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff2b2827ffc4c1c0fffffffffffcfcfcfffefefefffffffffffdfffffffcfe
+fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b
+8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff433b37ff423a37ff3f3734ff3f3734ff362e2bff372f2cff2c2421ffded6d3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffcffc3c1bfff4c4a48ff534d4cff514b4aff5e5454ff4e4443ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff615858ff6c6362ff797170ff857c7bff8b8282ff898180ff7c7473ff6f6665ff625958ff595150ff544b4aff544b4aff544b4aff
+504746ff4c4443ff4c4343ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff282524ffc0bdbcfffffffffffcfcfcfffefefefffffffffffdfffffffdfefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948
+ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff423a37ff433b38ff403835ff3e3633ff352d2aff372f2cff2d2522ffded6d3ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfefbffc1bfbdff4b4947ff534d4cff524c4bff5e5554ff4d4343ff544948ff564b4aff574d
+4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6261ff797070ff847c7bff8c8382ff898180ff7c7473ff6e6564ff625959ff5a5150ff544b4bff544b4bff544b4bff504747ff4d4443ff4d4443ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff262322ffbdbab9fffffffffffcfcfcfffffffffffefefefffdfffefffdffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff
+584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff423a37ff443c39ff413936ff3d3532ff342c29ff38302dff2c2421ffdad2cfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffcfcfaffbfbebcff4a4846ff544e4cff534d4bff5f5554ff4c4342ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5e5554ff6a6160ff78706fff847c7bff8c8382ff898180ff7c7372ff6d6564ff625a59ff5a5151ff544c4bff544c4bff544c4bff504847ff4d4544ff4d4443ff4d433fff453c38
+ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff262322ffbbb9b7fffffffffffefefefffffffffffdfdfdfffcfefdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff6155
+55ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff433b38ff443d39ff403835ff3c3431ff352d2aff3a322fff2a221fffd3cbc8ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffbfcf9ffbebcbaff494745ff544e4dff534d4cff5f5554ff4c4241ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff58
+5251ff5e5554ff6a6160ff79706fff857d7cff8d8483ff8a8281ff7d7473ff6e6565ff635a59ff5a5251ff554c4bff554c4bff554c4bff514847ff4e4544ff4d4544ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a38ff332e2cff272423ffbcb9b7fffffffffffffffffffffffffffdfdfdfffbfdfcfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946
+ff504845ff4e4643ff4b4340ff49413eff48403dff443c38ff443c39ff3e3633ff3b332fff362e2bff3c3431ff27201cffcac2bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfffbfbf9ffbebcbaff484745ff544e4dff544e4cff5f5555ff4c4241ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5e5655ff6a6261ff7a7171ff867e7dff8e8685ff8c8382ff7e7574ff6f6665ff635a59ff5a5251ff554c4bff554c4bff554c4bff514847ff4e4544ff4d4544ff4d433fff453c38ff4c4440ff564d49ff4f4845ff48413eff3f3a
+38ff332e2cff282524ffbcb9b8fffffffffffffffffffffffffffdfdfdfffafcfcfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffeae5e4ff625e5cff524948ff59504fff5e5252ff574b4bff5d5150ff615555ff584d4dff554b4aff584f4eff564d4cff56
+4d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff908786ff8b8382ff837a79ff766d6dff69605fff5e5554ff584f4eff564d4cff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff443c39ff443c39ff3d3532ff3a322fff372f2cff3d3532ff261e1bffc5bdbaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff
+8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff2e2b2affb6b3b2fffffffffffdfdfdfffbfbfbfffffffffffcfefefffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff4840
+3dff463e3bff423a37ff3f3734ff3c3431ff3d3531ff342c28ff312926ffc4bcb9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcffffff
+fdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff2d2a29ffb5b2b1fffffffffffd
+fdfdfffbfbfbfffffffffffcfefdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff
+6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff463e3bff423a37ff3f3734ff3c3431ff3c3431ff342c28ff312926ffc3bcb8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857
+ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff2c2928ffb3b0affffffffffffdfdfdfffcfcfcfffffffffffbfdfdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdffffff
+fdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff463e3bff423b37ff3f3834ff3c3431ff3c
+3531ff332b28ff312926ffc3bbb8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff56
+4c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff2a2826ffb0adacfffffffffffefefefffdfdfdfffffffffffafcfcfffdffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483
+ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff473f3cff433b38ff403834ff3c3431ff3c3431ff332b28ff302825ffc3bbb7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff5149
+48ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff292625ffadaaa9fffefefefffefefefffefefefffffffffff9fbfbfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59
+504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff47403cff433c38ff403835ff3c3431ff3c3431ff332b28ff302825ffc2bab7ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff
+574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff272423ffaba8a7fffcfcfcfffffffffffefefefffffffffff8fafafffdffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff5950
+4fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff48403dff443c39ff403835ff3c3431ff3c3431ff322a27ff2f2724ffc1bab6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d
+4441ff564d49ff4f4845ff48413eff403b39ff35302eff262322ffa9a6a4fffafafafffffffffffffffffffffffffff8f9f9fffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff
+584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff48403dff443c39ff403935ff3d3531ff3c3431ff322a27ff2f2724ffc1b9b6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffffdffb9b7b5ff4d4b49ff534d4bff554f4eff564c4bff504645ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251
+ff5f5756ff6b6262ff7a7170ff867d7cff8d8584ff8b8282ff7e7574ff6f6766ff605857ff5b5252ff554d4cff524a49ff524a49ff514948ff4e4545ff4b4241ff4f4541ff473d3aff4d4441ff564d49ff4f4845ff48413eff403b39ff35302eff252321ffa7a4a3fff9f9f9fffffffffffffffffffefefefff7f9f9fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff5b4f4fff564a4aff5e5252ff635756ff584d4dff544a4aff584f4eff574f4eff564d4dff584f4fff5a5251ff5d5453ff625a59ff6d6564ff7c7372ff867e7dff918887ff8c8483ff847b7aff776e6eff6a6160ff5f5655ff59504fff574e4dff524a47ff524a47ff514946ff50
+4845ff4e4643ff4b4340ff49413eff48403dff49413dff443d39ff413935ff3d3532ff3c3431ff322a27ff2f2724ffc1b9b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff
+372f2eff302b2aff9d9797fffffefffffffdfdfffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4c
+ff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff4b4440ff3e3633ff3d3532ff3e3633ff3b3330ff332b27ff302925ffbbb3b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf7f5fffffffefffffffefffcfcfbfff7fbfafffcfffffff9fffffff6fefdfff6fefffff7fffffff8fefffff9fffffffbfefffffafefffffcfdfffffcfdfffffdfefffffcfdfffffbfefffffbfefffff9
+fffffff4fbfdfff3fbfcfff8fffffff6fdfcfff7fffdfff9fdfcfff7fbfbfffefefdfffffffefffffffdfffaf7f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e86
+83ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff372f2eff2f2a29ff9c9796fffffefffffffcfdfffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff
+49413eff3e3633ff3e3733ff3e3633ff39312eff312926ff302825ffbcb4b1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffbf8f7
+fff8f8f7fffffffefffbfefefff0f4f3fff1f8f7fff9fffffff8fffffff7fffffff6fcfefff6fcfffffafefffffbfefffffdfefffffdfeffffeef0f4fffdfefffffbfefffffbfefffff2f8fbfff4fafcfff8fffffff8fffffff5fcfbfff4fcfbfffcfffffffcfffffffffffefff7f8f6fffcf9f8fffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdff
+bbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff372f2eff2f2a29ff9c9796fffffefffffffcfd
+fffffefffffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d65
+62ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff473f3cff403834ff413936ff3f3734ff38302cff302824ff312926ffbeb6b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffbfbfbfff8f8f8fffbfffefffbfffffff8ffffffeef6f6fff5fefffff4fdfefff6fcfffff6fdfffff4f8fcffe7ebefffd8d9deffcacbd0ffeceef3fff5f6fbfff2f6faffecf0f4fff2f9fbfff8fffffff7ffffffecf4f6fff8ffffff
+f8fffffff1f5f5ffe9edecfff6f6f6fffffffffffffffefffefcfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b
+5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff372f2eff2e2928ff9b9695fffffefffffffcfcfffffefefffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdff
+fefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff463e3bff423b37ff463e3bff413a36ff38302d
+ff302925ff322a27ffbfb7b4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f7f6fffcf9f8fffffffffffffffffffbffffffeef2f1fff4fb
+fbfff8fffffff7ffffffd9e1e2ffadb4b6ff848a8dff686c70ff55595dff494b50ff414247ff525358ff66686cff82868affa5a9adffccd3d5ffeff5f8fff7fffffff6feffffe8f0f0fff8fffffffbfffffffbfffffffbfbfbfffefefefffffdfcfffaf7f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140
+ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff372f2eff2d2827ff9a9594fffffefffffefbfcfffffefefffffffffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff84
+7c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff473f3cff463e3bff4a433fff443d39ff3a332fff332b28ff322b27ffbcb4b1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfcfffffffffffbfbfbfff6f6f6fffbfffffffbffffffe5ededffbdc5c6ff687173ff545d5eff3b4346ff2c3336ff2f3338ff383c41ff42454aff47494eff37393eff323439ff2c3035ff2d3136ff394144ff686f72ffb3bcbefff3fcfefff8fffffff8fffffff9fefdfffbfffffffffffffffafafa
+fffcfafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff
+4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff372f2eff2c2726ff999493fffffefffffefbfbfffffdfefffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504f
+ff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff48403cff48403cff4c4541ff463e3bff3d3532ff352d2aff312925ffb5adaaffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fff8f8f8fffafffeffdfe4e4ff8f9798ff424a4aff374042ff394244ff41484bff4b
+5356ff565b60ff585c61ff53565bff4c4f54ff57595fff4e5156ff484d51ff42474bff2f3639ff242b2fff374042ff586163ffcdd5d6ffeff7f7fffbfffffff1f6f5fff3f3f3fffffffffffffffffffcfafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d
+4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441ff584d49ff514845ff4a413eff423b39ff372f2eff2b2625ff999392fffffefffffefafbfffffdfefffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff
+564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff473f3cff473f3cff4c4441ff463e3bff3e3733ff362e2bff2d2522ffaba4a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffdfffffffdffffffbcc2c3ff505556ff283133ff474f51ff4a5457ff495356ff495156ff4a5257ff4f545aff4f545aff4f5259ff4d5056ff51545aff45484fff3d4348ff41464cff3e464bff353d41ff2b3538ff293335ff313a3cff9ba4a6fffafffffffafffffff9fbfcfff8fafbfffdfdfdfff6f6f6ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb9b7ff494745ff544e4dff575150ff4b4140ff534948ff544948ff564b4aff574d4cff574d4dff554d4cff554e4dff56504fff585251ff605855ff6c6461ff7b7370ff877f7cff8e8683ff8c8481ff7f7774ff706865ff645c59ff5b5350ff544d49ff544c49ff544c49ff504945ff4e4643ff4e4643ff514541ff493d3aff4f4441
+ff584d49ff514845ff4a413eff423b39ff372f2eff2b2625ff989392fffffefffffefafbfffffdfdfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffefefcffe7e3e1ff5e5a59ff504746ff59504fff564a4aff544848ff5e5252ff645858ff584d
+4dff534949ff574e4dff574e4dff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8d8582ff847c79ff776f6cff69615eff5e5653ff58504dff564e4aff524a47ff524a47ff514946ff504845ff4e4643ff4b4340ff49413eff48403dff463e3bff463e3bff4a433fff453d3aff3f3733ff362e2bff2a221effa59d99ffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffffffffffafbfcffa1a2a3ff4d5354ff3b4142ff444c4eff495254ff4d575aff525c5fff5a6267ff61696dff64696fff60666bff5c6066ff585c62ff
+53565cff53565dff4d5358ff474c52ff41494dff3e464aff353f42ff2c3639ff1e2729ff323b3dff7f8486ffe0e5e7fffdfffffffdfefffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fbfafffdfffffffdfffffffafdfcfffcfffefffdfffffffdfffffff6f9f8fffdfffffffdfffffffdfffffff7f9f9fff9fcfcfffdfffffffdfffffffdfffffffcfffffff3f6f5fff6f9f8fffdfffffffdfffffff9fcfbfff6f9
+f9fffdfffffffdfffffffafdfdfffbfefdfffdfffffffdfffffffbfefefffbfefdfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffdfffefffcffb5b4b2ff4b4a48ff504a49ff4f4948ff4f4545ff4c4241ff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff60
+5855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff332e2dff928c8cfffffefffffffdfdfffcfbfbfffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffcffe9e4e3ff615d5bff514847ff59504fff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946
+ff4f4744ff4c4441ff4a423fff49413eff433b38ff4b4340ff514a46ff453e3aff3e3633ff3a322fff2f2723ffa59d9afffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffff8f8f8fffdfdfdfffffffffffdfd
+fdfffffffffff8f8f8fffffefffff8f7f9ffa8aaacff4a4d4fff31383aff494f51ff505a5dff4f595cff5a6468ff6a7478ff737c81ff6a7378ff60666dff5b6168ff595d65ff53575fff4a4e55ff484c54ff444a51ff41474eff3b444aff394247ff364044ff353f43ff242e30ff303a3dff202628ff767c7ffff3f6f8fffcfffffffaf9fbfffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffbfefdfffafcfcfffbfefdff
+fdfffffffdfffffffbfefefffafdfdfff4f7f6fffafdfdfffdfffffffdfffffffdfffffffbfefefff6f9f9fff0f3f3fffdfffffffdfffffffdfffffffafdfcfff2f4f4fff1f4f4fffafdfdfffdfffffffcfffefff8fbfafff9fbfbfffdfffffffdfffffffafcfcfffbfefefffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffdfffffffdffb6b4b2ff4c4a48ff514b4aff514a49ff514746ff4e4443ff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e
+2dff322d2cff918b8afffffefffffffdfefffdfbfbfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffcfffdfffffffdfffefffdffe9e5e3ff615d5bff514847ff594f4fff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58
+504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff433b38ff4b4340ff524a47ff473f3cff3e3633ff39322eff2e2623ffa59d9affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff7f7f7fffffffffffffffffff7f7f7fffffffffffffffffffffeffffb8b7b9ff626467ff404244ff41484aff484f51ff4f595cff626c6fff727c80ff737e82ff6e777cff5e676dff545a61ff51575eff555961ff585c63ff4d5159ff4d5058ff484f55ff454b52ff3d464c
+ff384146ff313c40ff2e393dff353f42ff1b2528ff1c2325ff373e40ff989b9dfff8fafcfffffefffff6f5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffff7fbfcfff8fbfcfffbfffffffafefffff8fcfdfff8fbfcfff8fcfdfff5f9fafff0f4f5fff0f3f4fff2f6f7fff6faf9fff8fcfbfff7fbfafff6faf9fffbfffffffbfffffff9fdfdffeaeeedfffbfffffffbfffffffbfffffffb
+fffffffbfffffff8fdfcfff8fcfcfffafefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffb7b5b3ff4d4b49ff534c4bff534c4bff544a49ff514746ff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff
+8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff312c2bff8e8988fffffefffffffdfefffdfcfcfffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffcfffdfffcfffdfffffffdfffffffdffe9e5e4ff615d5cff514847ff584f4eff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff443c
+39ff4b4340ff524b47ff48403dff3f3733ff38302dff2d2522ffa69e9bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfff9f9f9fffffffffffffffffff4f4f4ffffffffffffffffffd7d8dbff767679ff32
+3538ff3e4144ff4f5659ff51585bff5a6569ff707a7eff6a757bff606c71ff566066ff4d575dff495058ff495058ff535760ff5d616aff51565fff51555eff4d545cff4a5159ff424b52ff3a444aff323d42ff2e393eff2f393dff222c30ff272f32ff171e21ff35383bffb6b9bcfffefefffff9f9fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafdfefffbfffffffbfffffff9fdfefff8fcfdfffbfffffffbfffffffbfffffffbffff
+ffe4e7e9ffb8bbbdff8f9394ff686c6dff46494bff343839ff323637ff414544ff595d5cff838786ffb5b9b8ffe3e7e7fffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffafefefffbfffffffbfffffff9fdfdfff5f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffb7b5
+b3ff4e4c4aff544e4cff554f4dff574d4cff554b4aff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff2f2a29ff8c8686fffffefffffffdfefffe
+fdfdfffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffffffdffeae6e4ff625d5cff514747ff584e4eff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff
+7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff453d3aff4b4340ff534b47ff49413eff3e3633ff372f2bff2d2521ffa9a19effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffcfcfcfffbfbfbfffffffffff0f0f0ff88898cff545457ff3a3d40ff44484bff4b5256ff5b6265ff667175ff636e72ff4c575cff414d52ff3e484eff424b52ff454c54ff424951ff474c54ff50545dff4a4f58ff4a4f57ff474e56ff454b53ff3f484fff3a444aff354146ff333e43ff222c30ff3843
+47ff242b2eff1f262aff101316ff5c5f62fffafbfefffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffff3f7f9ffeff3f5fffafefffffbfffffff0f5f7ffd2d7d9ff777c7eff5e6264ff474b4dff404446ff414547ff404446ff44484aff4a4f51ff474c4bff3d4241ff333938ff323736ff3e4443ff6c7170ffbbc1c0fffbfffffffbfffffffbfffffffbfffffff5faf9fff6fbfafffbfffffffbfffffff9fefdff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffb7b5b3ff4d4c4aff544e4dff56504fff594f4fff584e4dff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552
+ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff2e2928ff898383fffffefffffffefffffffefefffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdffffff
+fdffebe6e5ff625e5cff504746ff574e4dff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff463e3bff4a433fff524a47ff49413eff3e3633ff35
+2d2aff2e2623ffaea6a3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffafafaffffffffffffffffffc1c1c1ff515256ff48494dff484c50ff464a4eff424a4eff586064ff5e696eff
+485358ff3e4b50ff364248ff364048ff3d474eff3f474fff373f47ff363b45ff393e48ff3b414aff3a4049ff373f47ff363e46ff343e46ff354047ff354247ff374349ff293539ff323d42ff141c20ff21292dff171b1fff25292dffacadb1fff9f9fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffbfffffffbfffffffbfffffffbffffffe5e9ebffa3a7a9ff63686aff515557ff484c4eff43484aff494d4fff515557ff5055
+57ff4c5052ff484c4eff4c5251ff434948ff3f4444ff3d4241ff343939ff373c3bff5b6160ff878c8cffe7ececfff9fefdfffbfffffffbfffffff5fbfafff9fffefffbfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdffb5b4b2ff4d4b49ff544e4dff575150ff5b5150ff5a
+504fff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff2c2726ff868180fffffcfdfffffefffffffefffffffffffffcfcfcffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdffebe7e5ff625e5cff504746ff564d4cff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7c
+ff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4a423fff504845ff47403cff3c3431ff342c29ff302825ffb5ada9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffafafaffffffffffedededff888888ff525357ff4b4c50ff474b4eff484c50ff485054ff51585dff4b565bff3b464bff3a464cff364247ff353f47ff374249ff39414aff373e47ff373c46ff383e47ff373c46ff363b44ff323a42ff323942ff313c43ff353f47ff384449ff3a464cff323d42ff1f2a2fff283034ff20282cff1b1f23ff12161aff52
+5357fff7f8fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff7fcfefffafffffffafffffffaffffffd2d6d8ff8f9496ff515658ff2f3336ff424749ff494d50ff4f5456ff53585aff585c5fff5b5f62ff585c5eff525658ff535958ff4b5050ff464b4bff464b4aff404645ff323736ff272c2bff232828ff888e8dffbfc5c4fff3f8f8fffafffffff9fefefff8fdfdfffafffefff8fefdffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefcfffdfefbffb4b2b0ff4b4a48ff544d4cff575150ff5c5251ff5b5151ff554a49ff574c4bff584e4dff584e4eff564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff5048
+45ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff2b2625ff847f7efffefbfbfffffefffffffffffffffffffffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffcfffffffdfffffffdffece7e6ff625e5dff504746ff564d4cff53
+4747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff48403dff49413eff4e4643ff453d3aff3a332fff322b27ff332b27ffbbb3b0ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffffffffffdfdfdffffffffffd0d0d0ff575757ff5a5b5fff525357ff464a4fff4a4e53ff4f575bff454e52ff364247ff364247ff2e3b41ff323e44ff333e45ff313c44
+ff343c45ff39414aff3c424cff3c414bff383e48ff373d46ff333b44ff323a43ff303a42ff313b43ff313d43ff323e44ff2b363bff1a262bff343c40ff1e262aff1c2025ff13171bff2b2d31ffd2d4d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefffffafffffff8fcfeffd6daddff868a8cff3c4042ff363a3cff595d5fff575b5eff5e6265ff5b5f62ff4b5052ff404446ff404547ff414648ff3f4345ff383e3dff404645ff44
+4949ff404645ff3d4342ff3b4140ff363b3aff2d3332ff0f1514ff6b7170ffced3d3fff9fffefffafffffffafffefffafffffffafffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefbfffcfdfbffb3b2b0ff4b4947ff534d4cff575150ff5c5252ff5c5251ff554a49ff574c4bff584e4dff584e4eff
+564e4dff564f4eff575150ff595352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff635b58ff5d5552ff564e4aff524a47ff524a46ff524a47ff504845ff4e4642ff504440ff4d413eff4b403cff594e4aff524946ff463c3aff473f3eff362e2dff2a2524ff837d7dfffdfafbfffffefffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffbfffcfffffffdfffffffdffece8e6ff625e5dff504746ff564c4cff534747ff554948ff5f5353ff635757ff574d4cff564c4bff59504fff554d4cff564e4bff58504dff5a524fff5d5552ff625a57ff6d6662ff7c7471ff867f7bff908985ff8f8884ff877f7cff78706cff6a625eff615956ff5a524fff544c
+49ff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff49413eff48403dff4c4441ff443c39ff39312eff322a27ff342c29ffbfb7b4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
+f7f7fff9f9f9fffffffffffffffffff5f5f5ffbababaff3d3d3dff4d4f53ff56575bff4b4f54ff484c50ff495156ff394146ff263237ff2f3a40ff263339ff303c43ff353f47ff2f3a42ff303841ff353d46ff373c46ff313640ff353b45ff343a44ff313942ff2e363fff29343cff263139ff232f35ff212e34ff253136ff1e2a2fff182025ff131c20ff282c30ff202428ff313237ff909296ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffdfdfdfffffffffffbfbfb
+fff4f9fffff9fdffffecf1f8ff60656cff40444aff43474eff3b3f44ff5e6167ff4c4e53ff45484cff404245ff414346ff4a4b4eff525456ff58595bff595a5cff535661ff474a55ff373d48ff313741ff313b44ff354048ff344248ff334047ff212d33ff212d33ff384046ffe0e8edfffbfefffff6f9fefffaf9fefffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfbfffefcfaffb9b5b4ff484442ff564d4cff5c5453ff534747ff5e5252ff574a4aff584a4aff584c4cff594d4dff584e4eff584f4eff574f4eff574f4eff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff59
+4e4bff534a47ff463d3aff463f3dff352e2cff2f2928ff827d7cfffffdfefffffefffffdfcfcfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffffffdffeeeae8ff666160ff524948ff554c4bff564a49ff534746ff5d5151ff635757ff5a504fff
+554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffdfbfbfffefdfdffffffffffffffffff575454ff575354ff5b5551ff59544fff615d5aff635e5bff4d4b49ff403d3cff3b3a3cff373638ff333539ff37393eff393d44ff3a3e45ff363b45ff343a43ff353c46ff373e48ff363a
+3dff33373aff313336ff2e3034ff313134ff313134ff343133ff333032ff363132ff363132ff3e3536ff42393aff3d3232ff392e2eff483c3cff5e5251ffefefeffffffffffffefefefffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffbfbfbfffffffffffffffffffcfcfcfffffffffffffffffffcfcfcfff4f9ffffe4e9f0ff999ea5ff474c53ff3d4147ff51555cff45484eff43464bff404246ff404247ff44464aff4d4f52ff58595cff5e5f62ff5e5f62ff5c5d5fff545661ff4c4f5aff424852ff3c424dff39434cff38434bff344249ff
+323f46ff28353aff121f25ff222a2fff6f777cffdbdee3fffbfefffffffdfffffdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffefcfaffbab5b4ff484443ff564d4cff5c5453ff534747ff5e5251ff574a4aff584b4bff584c4cff594d4dff584e4dff584f4eff574f4eff574f4eff605855
+ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff2e2928ff827d7cfffffdfdfffffefffffdfcfcfffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffffffdffeeeae8ff666160ff524948ff554c4bff564a49ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f
+4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffdfbfcfffdfbfcfffffefffffffdfdff
+4a4747ff494546ff5f5a56ff5e5954ff67635fff6a6562ff575553ff4c4948ff49484aff454546ff3a3c40ff37393eff34383fff363a42ff393e48ff3b414aff39404bff383f49ff363a3dff373a3eff393b3eff3c3f42ff424245ff444447ff464446ff454244ff464142ff443e3fff473e40ff483f40ff413636ff392e2eff423636ff524645ffecececfffffffffffdfdfdfffefefefffffffffffcfcfcfffffffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffbfbfbfffffffffffffffffffffffffffffffffffdfdfdfffafeffffb8bcc0ff4c5053ff404548ff3d41
+45ff484c50ff3b3f43ff313539ff454a4eff464a4fff494d52ff4f5358ff54595eff54595eff50555aff4b5055ff4b4e58ff4b4d58ff474c56ff454a54ff3f4850ff3b454cff374248ff343f46ff313c41ff1f292eff1b2227ff161c21ff98999efffcfefffffffdfffffefdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffefcfffefdfbffbab5b4ff484443ff564d4cff5c5453ff534746ff5d5151ff584b4bff594b4bff584c4cff594d4dff584e4dff594f4eff57504fff58504fff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff
+2e2827ff827c7bfffffcfdfffffefffffdfcfcfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffdfffffffdfffffffdffefeae9ff666260ff524848ff544b4aff564a49ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504d
+ff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffefcfcfffefcfdfffffdfdfff9f6f6ff413d3eff3f3c3cff5b5652ff5a5450ff635e5bff686461ff595655ff514e4dff4f4f50ff4d4c4eff444549ff3b3c40ff32343bff35383eff3d424aff444951ff41464fff3b414aff37393cff393b3fff3f4043ff46474aff4d4c4fff4e
+4e50ff4f4c4dff4d4a4aff524c4dff4c4748ff4c4444ff4b4242ff443a3aff3a302fff3c302fff433837ffe7e7e7fffffffffffcfcfcfffdfdfdfffffffffffbfbfbfffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffdfdfdfffffffffffffffffffdfdfdffffffffffffffffffebeff2ff808588ff363a3dff494d50ff3f4347ff2e3336ff2d3135ff43484cff4e5257ff4a4e52ff454a4eff42474cff43484cff43474cff41464bff404549ff3d3f49ff40434dff414750ff414750ff3b444cff384148ff354047ff354147ff2d373dff364046ff22292eff0b1217
+ff4c4e52ffe4e5eafffcfafffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffdfbffbab6b4ff484443ff564d4cff5c5352ff524646ff5d5150ff594c4cff594c4cff584c4cff594d4cff584e4dff594f4eff58504fff595150ff605855ff6c6461ff7b7370ff87807cff908885ff8e86
+82ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff2d2727ff817c7bfffffbfcfffffefffffdfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfffdfffbfffcfffffffdfffffffdffefebe9ff666260ff514847ff544b4aff564a49ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff
+4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffdfdfdfffffffffffefcfdfffffffffffffffffff9f6f7ff403d3dff403d3dff55504cff534e49ff5c5754
+ff625d5aff555251ff504d4bff4f4e50ff4d4c4dff4a4b4fff404145ff35383eff363940ff3f434cff464b53ff444a53ff40464fff404245ff414346ff444648ff48494cff4d4c4eff4d4c4eff4c494aff494647ff4f494aff494344ff483f3fff483f3fff453b3aff3d3232ff3a2f2eff3c302fffe3e3e3fffffffffffefefefffdfdfdfffffffffffcfcfcfffffffffffcfcfcffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffcfcfcfffcfcfcffffffffffffffffffb3b6b4ff535553ff4a4d4dff424544ff3a3e3eff2b302fff2f3436ff515759ff3f464aff3b
+4247ff353e44ff333c42ff333d44ff364047ff38424aff3a444cff373942ff3b3d46ff3c4048ff3b3f47ff353b42ff333940ff343b41ff373e43ff293034ff363c40ff262a2dff191d20ff212124ff98989bfffbf8fbfffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffefcffbab6b5ff
+494443ff554d4cff5b5352ff524645ff5c5050ff5a4d4dff5a4c4cff594c4cff594c4cff574e4dff594f4eff595150ff5a5251ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff2c2625ff807a7afffefbfbfffffefffffcfbfb
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffbfffcfffffffdfffffffdfff0eceaff666261ff514847ff534a49ff564a49ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c74
+71ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
+fffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffbfbfbfffffffffffefcfdfffffffffffffffffff7f4f4ff3d3a3aff3f3c3dff51534eff4d4e4aff555653ff5b5c58ff525250ff4d4d4cff505050ff4d4d4dff4e4d50ff48474aff434146ff434146ff48464dff4e4b53ff504d56ff504e56ff525255ff4f5052ff4e4e50ff4d4c4eff4e4c4eff4d4b4cff4d4949ff4a4647ff4b4546ff464041ff
+453c3bff453d3cff453b3aff3f3634ff3a302eff372d2bffdededefffffffffffffffffffefefefffffffffffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffefefefffbfbfbfffffffffffffffffffbfbfbfffffffffffffffffff8f8f8ff7b7e7cff474947ff5d6060ff313434ff2e3332ff383d3cff33393bff3a4042ff323a3eff343b3fff343c42ff363e44ff353f46ff353f46ff343e46ff333e46ff3b3d45ff3b3d46ff393d45ff353941ff2f353bff2d333aff2e363bff31393eff2f363aff242b2fff25292cff1c2023ff232427ff4f4f53fff6f3f7fffffeffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffefcffbbb6b5ff494543ff554d4cff5b5352ff514545ff5c504fff5b4e4eff5a4d4dff594c4cff594c4cff574d4dff594f4eff595150ff5b5352ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff56
+4e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff2b2525ff7f7a79fffdfafbfffffefffffcfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffafffcfffffffdfffffffdff
+f0ecebff676261ff514847ff534949ff564a49ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29
+ff2f2724ffbcb5b1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffdfdfdfffffffffffefcfcfffffffffffffdfdffefecedff353233ff393636ff51524eff4b4d48ff52534fff575854ff4e4f4dff4b4c4aff4e4e4eff4b4b
+4bff4e4d50ff4d4c4fff4c4b50ff4d4b51ff514e55ff55525aff59565fff5c5961ff58585bff545457ff504f51ff4c4b4dff4c4a4cff4b494bff4c4849ff4b4748ff4d4648ff494243ff473f3eff453d3cff453b39ff403634ff3a302eff352b29ffdadadafffefefefffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffcfcfcfffcfcfcfffffffffffafafaffdededeff5d5e58ff54544eff5a5c57ff3d3f3aff313431ff404340ff343a39ff2c3231ff31393dff343c40ff353f45ff374148ff344049ff323e46ff
+2d3b44ff2c3943ff3b3d43ff3a3c42ff37393fff34363cff303338ff2f3237ff313337ff323538ff3c3d40ff2e3032ff303031ff323233ff333232ff2f2e2effd1cecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffefcffbbb7b5ff494443ff554d4cff5b5251ff514545ff5b4f4f
+ff5c4e4eff5b4d4dff594c4cff584c4cff574d4dff594f4fff5a5251ff5b5453ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff2a2524ff7e7978fffdf9fafffffefffffcfafbffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffafffcfffffffdfffffffdfff1edebff676361ff514747ff524948ff564a49ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a
+726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdffffff
+fdfffffffffffffffffffffffefefefffffffffffefcfcfffffffffffdfbfbffebe8e8ff312e2fff373334ff554e4cff4e4745ff534d4bff585250ff504b4aff4e4948ff504c4dff4d494aff504d4fff514e50ff525154ff575659ff5d5c60ff626165ff666469ff67656aff5a585aff565355ff514f4fff4d4b4bff4c4849ff4b4748ff4b4647ff4a4445ff4e4746ff4c4544ff49413fff453d3bff423937ff3e3532ff392f2c
+ff332a27ffd5d5d5fffcfcfcfffffffffffdfdfdfffffffffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfb
+fbfffefefefffffffffff0f0f0ffc4c4c4ff4b4c45ff565650ff474944ff555752ff3d413eff3d413eff393f3eff3d4342ff2f373aff31393dff313b41ff333d43ff313d46ff323f47ff33404aff34414bff36373dff34363cff32343aff303238ff303337ff303338ff313337ff313437ff3a3b3eff404244ff383739ff4d4d4eff323131ff272626ff9f9c9cffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffbbb7b5ff494543ff554d4cff5b5251ff514544ff5b4f4fff5c4f4fff5b4e4eff594d4cff584c4cff574d4cff594f4fff5a5251ff5c5453ff605855ff6c6461ff7b7370ff87807cff908885ff8e8682ff817976ff726b67ff625a57ff5c5551ff564e4bff534b47ff524b47ff524a47ff4f4844ff
+4d4542ff4f4340ff4d413eff4b403dff594e4bff534a47ff463d3aff463f3dff352e2cff2a2424ff7e7978fffdf9fafffffefffffcfafbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffafffcfffffffdfffffffdfff1edebff676361ff514747ff524948ff564a49
+ff534746ff5d5151ff635757ff5a504fff554b4bff584f4eff564d4cff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff938b88ff8f8784ff877f7cff7a726fff6c6461ff615955ff5a524eff574f4cff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff4f4744ff504845ff453d3aff3e3633ff342c29ff2f2724ffbcb5b1ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffffffffffefcfcfffffffffffefbfcffece9e9ff333030ff3a3737ff564f4dff4f4846ff534d4bff595351ff524d4cff514b4aff544f50ff514d4dff514e50ff524f51ff545256ff5d5b5fff67
+666aff6e6c71ff6f6e73ff6e6c71ff5e5b5dff5a5759ff565353ff514f4fff504c4dff4d494aff4b4647ff494344ff4b4443ff4a4342ff48403eff423a38ff3f3634ff3c3330ff382f2cff332a27ffd1d1d1fffafafafffffffffffcfcfcfffdfdfdfffefefefffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffffffffffefefefff8f8f8ffffffffff929292ff4c4b44ff56544dff474640ff4d4c46ff555652ff4e4f4bff4d5050ff4a4d4cff404649ff343a3cff2c3439ff353d43ff3d474fff3d474eff354049ff313c45ff323337ff37383cff3f3f43
+ff444447ff464548ff454447ff464245ff454244ff494545ff524e4fff4b4647ff4c4849ff3d3a39ff292625ff7c7977fffffdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefdfbffbab6b4ff4a4644ff574f4eff5c5453ff534747ff605454ff605353ff5a4d4dff574a4aff594d4cff594f
+4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffcfffdfffdfefbfffefefcfffffaf9ff5f5b59ff534a49ff514847ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff
+534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffdfdfd
+fffffefefffffffffffffeffffdcd9daff302c2dff3b3839ff4b4442ff4d4644ff585150ff5c5453ff524b4aff504949ff544e4fff514a4cff524c4dff544e4fff575253ff5f5a5bff6d686bff787375ff767174ff6e6a6cff676162ff5c5657ff534d4eff524c4dff534c4dff50494aff4d4645ff4c4544ff4b4442ff49423fff463f3bff443c39ff413a35ff3d3531ff372f2bff332b27ffb8b8b8fffffffffff8f8f8fffefe
+fefffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffdfdfdfffffffffffefefefff8f8f8ffffffffff909090ff4c
+4b43ff55544dff474640ff4c4c46ff545552ff4d4f4bff4d5050ff494d4cff454b4eff393f41ff2f373cff343c42ff3a444cff3c454dff38434cff37424bff3b3c40ff3e3f43ff434347ff46464aff48474aff474649ff484447ff474446ff484445ff524e4fff4b4747ff4b4748ff3e3a39ff2a2726ff787573fffefbfaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffdfbffbbb7b5ff4a4644ff574e4dff5c5453ff544847ff605453ff605353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47
+ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffcfffdfffdfefbfffefefcfffefaf9ff5f5b59ff534a49ff514747ff544848ff544848ff5e5252ff625656ff584e4dff574d
+4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffdfdfdfffffdfdfffffffffffffeffffd9d6d6ff302d2eff3c3839ff4b4442ff4d4644ff585150ff5c5553ff524b4aff504a49ff554e4fff514b4cff534d4eff554f50ff585354ff615c5dff6f6a6cff797577ff787376ff706c6eff686263ff
+5c5758ff534e4fff524c4dff534c4dff50494aff4d4645ff4c4544ff4b4442ff49423fff463f3bff443c39ff413a35ff3d3531ff372f2bff332b27ffb5b5b5fffffffffff9f9f9fffefefefffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffdfdfdfffffffffffefefefffafafaffffffffff8b8b8bff4d4945ff56524eff474440ff4d4a46ff565451ff4f4d4bff4f4f4fff4c4c4cff4f5052ff454647ff3b3d40ff3c3e42ff404449ff45484dff464a50ff484d52ff48494bff494a4bff4b4a4bff4c4a4cff4e494aff4d4849ff4f4648ff4e45
+47ff4c4343ff574e4dff504846ff4d4543ff413c39ff2e2925ff726f6bfffdf9f5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfffffffdffbdb8b7ff4a4644ff564e4dff5c5453ff544848ff605353ff605353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c
+6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffbfffcfffcfffdfffdfefbfffdfefcfffefaf8ff5e5a59ff524948ff504746ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744
+ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffefefefffffdfdffffffffffffffffffd2cfcfff322e
+2fff3c393aff4c4443ff4e4645ff595150ff5d5454ff534b4bff514a49ff564e4eff534b4bff564e4eff585150ff5d5554ff665e5dff756d6dff807878ff7f7777ff78706fff6c6364ff605759ff564e4eff554c4cff544c4bff514948ff4e4644ff4d4643ff4c4441ff49423eff463f3bff443d38ff413a34ff3c3630ff37302aff332c26ffafafaffffffffffff9f9f9fffefefefffffffffffffffffffbfbfbffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffefefefffbfbfbffffffffff868686ff4d4945ff56524dff46433fff4c4845ff545250ff
+4e4c4aff4f4f4fff4c4c4cff505152ff494a4cff434548ff444649ff484c50ff4e5156ff51565bff54585dff535455ff505152ff4f4e4fff4d4b4dff4f4a4bff4e4949ff4f4748ff4e4547ff4c4342ff564d4cff524a48ff4a4241ff423d3aff302b28ff696662fff9f5f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfbfffffffdffbfbbb9ff4b4645ff554c4cff5c5453ff554848ff5f5353ff605353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c27
+26ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffcfffdfffdfefbfffdfefbfffef9f8ff5e5a58ff514847ff4f4645ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a
+524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffdfdfffffefeffffffffffc9c6c7ff343031ff3d3a3aff4c4444ff4e4645ff595151ff5d5554ff534b4bff524a4aff574f4eff534b4bff574f4fff5a5251ff5e5656ff686060ff787070ff847c7bff837b7bff7c7474ff6d6466ff61585aff574e4eff544c4cff544c4bff514948
+ff4e4644ff4e4644ff4c4441ff49423eff463f3bff443d38ff413a34ff3c3630ff37302aff332c26ffa8a8a8fffffffffffafafafffffffffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffdfdfdffffffffff7f7f7fff4d4748ff554f50ff464041ff4b4546ff555050ff4f4a4bff524d4eff504b4cff524d4eff514c4dff524d4eff555152ff5e595aff656061ff676363ff656162ff595959ff545454ff524e4fff4e4a4bff514949ff504848ff514545ff4f4343ff4e4240ff594c4bff564b48ff493f3cff46
+3f3aff342d28ff615c57fff6f2ecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefdfbfffffffdffc2bebcff4b4745ff544b4aff5c5453ff554949ff5f5353ff605353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff
+837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffbfffdfffcfffdfffdfefbfffdfdfbfffdf9f7ff5d5957ff504746ff4e4544ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a
+47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffdfdfffefcfcffffffffffbfbdbdff363333ff3e3a3bff4d4445ff4f4646ff5a5251ff5e
+5555ff554c4bff534a4aff594f4fff554c4bff59504eff5c5351ff625856ff6c6260ff7d7370ff897f7dff897f7dff827876ff716666ff645a5aff594f4eff564c4bff554c4aff534947ff504744ff4f4744ff4c4440ff4a423eff46403aff443d37ff403a34ff3c362fff363029ff322c25ffa0a0a0fffffffffffbfbfbfffffffffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffefefefffefefeff797979ff4d4748ff554f50ff453f40ff494445ff534e4fff4e494aff524d4eff504b4cff504b4cff534e4f
+ff575253ff5e5a5aff6a6566ff726d6eff706c6cff696565ff5a5a5aff545454ff504d4dff4c4949ff504848ff4f4747ff504443ff4d4140ff4e413fff584c4aff584d4aff463c39ff47403cff362f2aff58544efff2eee9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfcfafffffffdffc4c0beff4b47
+45ff534a4aff5c5453ff564a4aff5f5353ff605353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffd
+fbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffcfffdfffdfdfbfffcfdfbfffdf8f7ff5c5857ff504646ff4d4443ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff
+877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcffff
+fffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffffffffffefcfdfffcfafbffffffffffb6b4b4ff383536ff3e3b3cff4d4545ff4f4647ff5b5252ff5e5655ff554c4cff544b4aff59504fff564c4cff594f4eff5c5251ff625856ff6d6361ff7e7472ff8b817fff8c827fff857b78ff726767ff655b5bff594f4fff564c4bff554b4aff524947ff504744ff504744ff4c4440ff4a423eff4640
+3aff443d37ff403a34ff3c362fff363029ff322c25ff999999fffdfdfdfffcfcfcfffffffffffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffcfcfcfffefefefffffffffffffffffffdfdfdff757575ff4d4649ff544e51ff453e41ff494245ff544d4eff4e4849ff544c4dff524a4bff554c4cff584f4fff5d5453ff665d5cff756c6aff7e7573ff7a706dff6e6462ff595959ff535353ff504c4bff4d4848ff524847ff514747ff524342ff4e403fff4f403eff5a4b49ff5a4e4aff463936ff49423cff38302bff524d47fff0ece5ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfbf9fffffffdffc6c2c0ff4b4745ff524a49ff5c5453ff564a4aff5f5352ff605353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4c
+ff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffcfffdfffdfdfbfffcfdfbfffcf8
+f7ff5c5856ff4f4645ff4c4342ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c
+2421ffbeb6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffffffffffefcfcfffbf9faffffffffffb0adadff3a3737ff3f3b3cff4e4546ff4f4648ff5b5252ff5f5656ff564c4cff544b4aff5a504fff564d4bff
+594f4dff5d5250ff635855ff6f6361ff807572ff8e837fff8f8380ff897d79ff756968ff675b5bff5b4f4fff574b4bff564b49ff534947ff504744ff504744ff4c4540ff4a423eff47403aff443d37ff403b34ff3c362fff363129ff322c25ff939393fffbfbfbfffdfdfdfffffffffffdfdfdfffefefefffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffdfdfdfffffffffffffffffffcfcfcff727272ff4c4649ff544e51ff443e40ff484244ff534c4dff4e4748ff534c4dff524a4bff584f4fff5a5151ff5d5453ff665d5cff766d6bff817775ff7a70
+6eff6c6260ff585858ff515151ff4f4b4aff4c4848ff534948ff524848ff524443ff4e3f3eff4f403eff5a4b49ff5b4f4bff443834ff4a423dff39312cff4e4943ffefeae4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfbf9fffffffdffc7c3c1ff4b4745ff514948ff5c5453ff564a4aff5f5352ff60
+5353ff5a4d4dff574a4aff594d4cff594f4eff584e4eff58504fff5b5352ff605855ff6c6461ff7c7470ff89817dff918985ff8f8784ff837b77ff746d69ff655d5aff5f5754ff574f4cff534b48ff524b47ff524a47ff504845ff4d4642ff4f433fff4c413dff4e4340ff554a47ff544b48ff4b423fff3f3736ff393130ff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffcfffdfffdfdfbfffcfdfbfffcf8f6ff5c5756ff4f4545ff4c4342ff544848ff544848ff5e5252ff625656ff584e4dff574d4cff595150ff544c4bff574f4cff58504dff5a524fff5c5451ff625a56ff6d6562ff7c7471ff877f7cff928a86ff8f8784ff88807dff7b7370
+ff6b6360ff5f5754ff59514eff58504dff534b48ff534b48ff524a47ff514946ff4f4744ff4c4441ff4a423fff49413eff473f3cff524a47ff4e4643ff403835ff413936ff362e2bff2c2421ffbeb6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdff
+fffffffffffffffffffffefefefffffffffffdfbfcfffbf9f9ffffffffffacaaaaff3a3738ff3f3c3cff4e4546ff4f4648ff5b5252ff5f5656ff564c4cff544b4bff5a504fff574d4cff594e4cff5c5250ff635855ff6f6361ff817572ff8e8380ff908481ff897d7aff756969ff685c5bff5b504fff574b4aff554b49ff534847ff504744ff514844ff4c4540ff4a423eff47403aff443d37ff403b34ff3c362fff363129ff32
+2c25ff909090fffafafafffefefefffffffffffdfdfdfffefefefffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffefeff
+fffffffffffffffff4f1f2ff6f6b6cff534b4aff4d4443ff4a4241ff4f4645ff534a4aff534b4aff534b4aff554c4bff544c4bff564e4dff5c5453ff696160ff7c7372ff867d7dff807776ff736b6aff665e5bff5b5350ff514946ff504845ff514945ff4e4643ff4b4440ff4b4340ff473f3cff534b48ff534b48ff49413eff463e3bff3c3431ff453d3affece5e1ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdffd2cdceff484344ff534a4bff5e5556ff5a4e4eff5c5050ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f47
+44ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefefffcfffffffffffffff8f8f8fffef9faff615c5dff463d3dff4e4545ff564a49ff53
+4746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320ffbfb5b2ffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776
+ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffefefffffffffffffffffff3f0f0ff6d6a6aff534b4aff4d4443ff4a4241ff4f4645ff534b4aff534b4aff534b4aff554c4bff554d4cff574f4eff5d5554ff6a6261ff7d7473ff877f7eff817978ff756c6bff665f5bff5b5350ff524a47ff50
+4845ff514946ff4e4643ff4b4440ff4b4340ff473f3cff534b48ff534b48ff49413eff453d3aff3b3330ff423a37ffeae2defffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdffd2cdceff484344ff534a4bff5e5456ff5a4e4eff5c5050ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff
+59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefefffcfffffffffffffffafafafffffbfcff625d5eff463d3dff4d4444ff564a49ff534746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b
+48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320ffbfb5b2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefeffff
+fffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcffffffffffffffffff
+fefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffdfdfdfffffffffffffefffffffffffffffffffff1eeefff6b6768ff544b4a
+ff4d4544ff4b4241ff4f4645ff534b4aff544b4aff544b4aff554d4cff574e4dff59504fff5f5655ff6c6463ff7f7675ff898180ff837b7aff776e6dff675f5cff5c5450ff524a47ff504945ff514946ff4e4643ff4b4340ff4b4340ff473f3cff534b48ff534b48ff49413dff443c39ff38302dff3f3733ffe5dddaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfeffd3cecfff494445ff52494bff5d5355ff594d4dff5c5050ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff54
+4a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefefffcfffffffffffffffcfcfcfffffeffff656060ff463d3dff4b4242ff564a49ff534746ff5d514fff635856ff5a504dff554c49ff
+58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320ffbfb5b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d
+5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffeffffefecedff686566ff544b4bff4e4544ff4b4242ff4f4746ff544b4aff544b4bff544b4bff564d4cff584f4eff5a5251ff605857ff6e6564ff817877ff8c8382ff867d7cff797170ff68605dff5c5451ff534b48ff514946ff514946ff4e4643ff4b4340ff4b4340ff
+463e3bff534b47ff534b48ff49413eff443c38ff362e2bff3b3330ffe0d8d5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeffd4cfd0ff494445ff52494aff5b5254ff594d4dff5d5051ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461
+ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfffefffcfffffffffffffffefefefffffeffff666162ff463d3dff494040ff564a49ff534746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e
+4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320ffbfb5b2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff
+41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffefeffeeebebff666364ff554c4bff4e4545ff4c4342ff504746ff544c4bff554c
+4bff554c4bff564d4dff59504fff5b5252ff615958ff6f6666ff827979ff8d8584ff877f7eff7b7272ff69615eff5d5552ff544c49ff514a46ff524a47ff4e4743ff4b4340ff4b433fff453d3aff524a47ff544c48ff49423eff443c39ff352d2aff39312effddd5d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffd5d0d1ff4a4546ff514849ff5a5153ff584c4cff5d5051ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff
+7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffffffffffefefefffffeffff676263ff463c3cff473e3eff564a49ff534746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534f
+ff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320ffbfb5b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e
+4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdffffff
+fdfffffffdfffffffdfffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffffefeffeeeaebff666363ff554c4bff4e4645ff4c4342ff504847ff554c4bff554c4bff554c4bff564e4dff59504fff5b5252ff615958ff6f6766ff837a79ff8e8584ff88807fff7c7373ff6a625fff5e5653ff544c49ff524a47ff524a47ff4f4744ff4b4340ff4a433fff443c39ff524a47ff544c49ff4a433fff453d3a
+ff362e2bff38302dffdcd4d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffd7d2d3ff4b4646ff514749ff595051ff574b4bff5d5151ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b
+78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
+fffffffcfffffffffffffffcfcfcfffffeffff676263ff453b3bff463c3cff564a49ff534746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff
+504643ff423835ff423835ff372d2aff2d2320ffbfb5b2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5b
+ff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffffffffffffeffffeeebebff666364ff554d4cff4f4645ff4c4443ff504847ff554c4bff554d4cff554d4cff574e4dff584f4fff5b5251ff61
+5858ff6f6766ff837a79ff8e8585ff88807fff7c7473ff6b635fff5f5754ff554d4aff524a47ff524a47ff4f4743ff4b4340ff4a423fff433b38ff514a46ff544c49ff4c4441ff463e3bff372f2bff38312dffdcd4d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeffffffffffd8d3d3ff4b4647ff
+504748ff584f50ff574b4bff5d5151ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfc
+fffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffffffffffbfbfbfffffeffff666162ff443b3aff453b3bff564a49ff534746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e
+7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320ffbfb5b2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff
+443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdffffffffffffffffffff
+fffefefefffbfbfbffffffffffffffffffffffffffffffffffeeebecff676364ff554d4cff4f4645ff4c4443ff514847ff554c4cff554d4cff554d4cff574e4dff584f4eff5a5251ff615857ff6f6666ff837a79ff8e8585ff89807fff7c7473ff6b6360ff5f5754ff554d4aff524b47ff524a47ff4f4743ff4b4340ff4a423fff423b37ff514946ff554d4aff4c4441ff473f3cff37302cff39312effdcd4d1ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeffffffffffd8d3d4ff4b4647ff504748ff584e50ff574a4bff5d5151ff625554ff5c4f4eff584d4aff5a4f4cff5a514dff59504cff58514dff5b5450ff615956ff6c6461ff7a726fff88807dff918986ff918986ff837b78ff736b68ff665f5bff5d5552ff564e4bff54
+4c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff7d7877fffffefffffffcfdfffffffffffdfbfcfffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefefefff9f9f9fffffeffff
+656061ff443a3aff443b3bff564a49ff534746ff5d514fff635856ff5a504dff554c49ff58504cff564e4aff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff554b48ff554b48ff544a47ff534946ff514644ff4e4441ff4c423fff4b413eff4a403dff554b48ff504643ff423835ff423835ff372d2aff2d2320
+ffbfb5b2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefefffffffffffdfdfdfffffeffffb1acadff3e3638ff41393aff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f
+4fff5c5352ff625a59ff6e6564ff7f7776ff8c8382ff8c8382ff857c7bff726a67ff655d5aff59514eff554d4aff544c49ff514946ff4e4643ff4e4643ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff909090fffcfcfcfffffffffffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff
+7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffdad5d6ff4f4a4bff4d4345ff574e4fff5b4f4fff5e5152ff645756
+ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2626ff807b7afffefbfbfffffefffffcfbfbffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffff8fbfbfffdfdfdfffffffffffef9faff6b6667ff3a3130ff4b4242ff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a
+625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff4a3f3dff554a48ff483e3bff473d3aff3f3431ff3a302dff291e1cffc0b6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcffffff
+fbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28
+ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcffffffffffffffffffffff
+fffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeffdad5d6ff4e494aff4c4344ff564c4eff5a4e4eff5d5151ff645756ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff
+4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2c2726ff807b7afffffbfcfffffefffffdfbfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffff9fdfcfffffffffffffffffffffbfcff6e6969ff3c3332ff4c4242ff544847ff564b4a
+ff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff493f3cff554b48ff483e3bff473d3aff3e3431ff3a302dff291f1cffc1b7b4ffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e
+8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47
+ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfeffdad5d6ff4e494aff4a4142ff544a4cff594c4dff5c5050ff645756ff5c4f4eff574b49ff594d4bff5a514dff5a51
+4dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2d2727ff817c7bfffffbfcfffffefffffdfbfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffafefdfffffffffffffffffffffdfeff706b6cff3e3535ff4c4242ff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff
+554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff493f3cff554b48ff493f3cff473d3aff3e3431ff392f2cff2a201dffc3b9b6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdffffffff
+fffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff797979fffefefeffffffffffffffffffffff
+fffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d
+4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefffffffdfdffdad5d6ff4d4849ff483f41ff51484aff574b4bff5b4f4fff645756ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48
+ff453c39ff413a38ff362e2dff2e2828ff827c7cfffffcfdfffffefffffdfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffafefdfffffffffffffffffffffdfeff736e6eff3f3636ff4a4141ff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c
+48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff493f3cff554b48ff4a403dff473d3aff3d3330ff392f2cff2b201effc5bbb8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff
+5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e
+3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefffffdfeffdbd6d6ff4e494aff473e3fff504648ff56494aff5b4f4fff645756ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a
+726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff2f2929ff837d7cfffffdfefffffefffffefcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffcfffffff9fdfcfffffffffffffffffffffcfdff746f70ff403636ff473e3eff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441
+ff4d423fff4c413fff493e3cff564c49ff4a403dff483e3bff3c322fff392e2cff2c211fffc8bdbbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c
+3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff
+554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffdfefffffefeffdcd7d8ff4f4a4aff473d3fff4f4547ff554949ff5b4f4fff645756ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff302a29ff837e
+7dfffffefefffffefffffefcfdfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefdfff9fcfcfffefefefffffffffffffcfdff767172ff413737ff463c3cff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c
+5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff483e3bff564c49ff4b413eff483e3bff3c322fff382e2bff2c221fffcac0bdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844
+ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdff
+fffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff36
+2e2bff362e2bffd8d0cdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeffffffffffded9daff504b4cff473e3fff4f4547ff56494aff5c5050ff645756ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff
+746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff302b2aff847f7efffffefffffffefffffefcfdfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefe
+fffafefdfffffffffffffffffffffeffff797475ff433939ff463c3cff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff483e3bff564c49ff4c42
+3fff483e3bff3c312eff382e2bff2d2320ffccc1bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff50
+4746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffefeffeeeaebff666363ff534a49ff4d4443ff4b4342ff504746ff554d4cff554d4cff554c4bff564d4dff584f4fff5b5251ff615958
+ff706767ff847b7aff8f8786ff8a8181ff7e7575ff6b635fff5f5754ff554d4aff534b47ff524a47ff4f4744ff4b4340ff4b433fff463e3bff524a47ff534c48ff4a423fff463e3bff362e2bff362e2bffd8d0cdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffdfdadbff504b4cff473e
+40ff4f4547ff564a4aff5d5151ff645756ff5c4f4eff574b49ff594d4bff5a514dff5a514dff59524eff5b5450ff605855ff6b6360ff7a726fff87807cff928a87ff918986ff847c79ff746c69ff665f5bff5d5552ff564e4bff544c49ff544c49ff514945ff4e4743ff4f4744ff4e423eff514542ff493e3bff554a47ff544a48ff453c39ff413a38ff362e2dff312b2aff847f7efffffefffffffefffffefdfdffffffffffff
+fffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffffffffffffffffffffeffff7c7778ff453b3bff463d3dff544847ff564b4aff5c514eff615553ff5d5350ff564d49ff544c48ff58504cff58504dff59514eff5b534fff5c5451ff615956ff6d6561ff7b7470ff867e7bff
+908885ff918986ff8a827eff7a726eff6a625eff615956ff5b534fff564f4bff564c49ff554b48ff544a47ff524845ff504643ff4e4441ff4d423fff4c413fff483e3bff574c49ff4c423fff483e3bff3b312eff382d2aff2e2320ffccc2bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffafefdfffffffffffffffffffffeffffada9a9ff3b3435ff433c3dff4d4444ff534a4aff564e4dff645c5bff504746ff59504fff564d4cff574e4dff584f4eff5c5352ff635a59ff6f6665ff807877ff8e8584ff8e8584ff877e7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c
+39ff413936ff3d3531ff372f2cff332b28ff797979fffefefefffffffffffffffffffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffdfbfaffebe6e5ff484443ff49413fff4e4544ff554a47ff5b504eff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff5f5754ff6a635fff78716eff87807cff918a87ff918a87ff847d79ff756e6aff67605cff5d5653ff564f4cff554e4a
+ff544d4aff514a46ff4f4844ff4f4845ff4f433fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffefffffffefffcfcfbfffffffdff908c
+8aff413734ff493f3cff554845ff584b48ff60514dff655652ff62544fff5b4d48ff594c46ff5c4f4aff5a504dff5b514eff5c5350ff5e5451ff635956ff6e6461ff7d7370ff877e7bff928986ff918784ff8a807dff7d7471ff6e6461ff615754ff5a514eff584f4cff594d4bff574b49ff564846ff554745ff574745ff564544ff544341ff52413fff4a3938ff5a4a48ff493d3aff483b39ff3b3330ff332b27ff2a2521ffdc
+d6d3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff
+5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f76
+75ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffdfcfbffebe7e6ff484443ff49403fff4d4544ff554947ff5b504eff645855ff5c
+504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff5f5754ff6a635fff78716eff87807cff918a87ff918a87ff847d79ff756e6aff67605cff5d5653ff564f4cff554e4aff544d4aff514a46ff4f4844ff4f4845ff4f433fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffefffffffefffdfdfbfffffffdff95908eff413734ff493f3cff554845ff584b48ff60514dff655652ff62544fff5b4d48ff594c47ff5c4f4aff5a504dff5b514eff5c5350ff5e5451ff635956ff6e6461ff7c726fff877d7aff918885ff908683ff89807dff7d7370ff6d6461
+ff615754ff5a514eff594f4cff594d4bff574b49ff564946ff554845ff574745ff564543ff544241ff51403eff4a3938ff5a4a48ff493d3aff473b38ff3b3330ff332b28ff2c2623ffded9d5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbff
+fffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff70
+7070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffffffffffffffffffffff
+fefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffefcfbffece8e7ff494544ff48403eff4d4443ff544947ff5b504eff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff5f5754ff6a635fff79716eff87807cff918a87ff928a87ff847d79ff756e6aff67605cff5e5653ff564f4cff554e4aff554d4aff514a46ff4f4844ff504845ff4f43
+3fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfffbfffefffffffefffefefcfffffffdff9d9896ff413634ff493f3cff564845ff594b48ff60
+514eff655753ff62544fff5b4e49ff594c47ff5c504aff5a504dff5b524fff5d5350ff5e5552ff635956ff6d6360ff7b716eff857c79ff908683ff8e8582ff887e7bff7c726fff6d6461ff615855ff5b514eff5a504dff594d4bff574b49ff574947ff564846ff584745ff564543ff534240ff513f3dff493937ff5a4a48ff493d3aff463a37ff3a322fff332b28ff2e2925ffe2ddd9ffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683
+ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff53
+4b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffdfcffede9e8ff4a4544ff473f3eff4b4342ff544846ff5c504eff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff
+59534cff5b554eff5f5754ff6a635fff79716eff87807cff918a87ff928a87ff847d79ff756e6aff67605cff5e5653ff564f4cff554e4aff554d4aff514a46ff4f4844ff504845ff4f433fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffafffcfffffffefffffffefffffffdffa8a3a1ff403533ff493f3cff564845ff594b48ff61524eff665753ff625550ff5c4e49ff594d47ff5d504aff5a504dff5c524fff5d5451ff5f5552ff635956ff6d6360ff7a706dff837976ff8e8481ff8c827fff877d7aff7b716eff6d6360ff615855ff5c524fff5a514eff594d4bff584c
+49ff574a47ff574947ff584846ff564543ff53413fff4f3e3cff493937ff5a4a48ff493c3aff463937ff39312dff342c28ff312c28ffe8e2dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffe
+fffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcffffffffff
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241
+ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffefffffefcffeeeae9ff4a4645ff473f3dff4a4240ff534745ff5c504eff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff605754ff6b625fff79716eff887f7cff928a87ff928a87ff857d79ff766d6aff685f5cff5e5653ff574f4cff564d4aff564d4aff524a46ff504744ff504845ff4f433fff524642ff4a3f3cff554a47ff544a48ff44
+3b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff8fdfbfffffffefffffffefffffffdffb3aeacff3f3533ff493f3cff574946ff5a4c49ff61524eff665754ff635550ff5c4f4aff5a4d48ff
+5d504bff5b504dff5d524fff5f5451ff605553ff645956ff6d625fff796e6bff827774ff8c817eff8b807dff867b78ff7b706dff6d6260ff625855ff5d5250ff5c514fff594d4bff584c49ff584a48ff574a47ff584846ff564543ff52403fff4e3d3bff493837ff594947ff483c39ff443835ff38302dff342c29ff342f2bffede8e4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a52
+4fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff
+4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffefdfff0ebeaff4b4645ff463e3dff49413fff524745ff5c514eff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff605754ff6b625fff79716e
+ff887f7cff928a87ff928a87ff857d79ff766d6aff685f5cff5e5653ff574f4cff564d4aff564d4aff524a46ff504744ff504845ff4f433fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffbfffefff7fcf9fffffffefffffffefffffffdffbdb9b7ff3f3532ff493f3cff574946ff5a4c49ff61534fff675854ff635651ff5d4f4aff5a4e48ff5d514bff5b504dff5d5250ff5f5452ff615653ff645956ff6c615eff776c6aff807572ff8a7f7cff897e7bff847976ff7a6f6cff6d625fff635855ff5e5350ff5d524fff594d4bff584c49ff584b48ff584a48ff594947ff554543ff51
+403eff4d3c3aff483836ff594947ff483c39ff433734ff372f2bff342c29ff38322ffff3edeafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff
+524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d
+4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2bff332b28ffc4bcb9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffffdfff0ecebff4b4746ff463d3cff48403eff524644ff5c514fff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff615754ff6c625fff7b716eff897f7cff938a87ff948a87ff867c79ff776d6aff695f5cff605653ff584f4cff574d4aff574d4aff534946ff514744ff524845ff4f433fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080ff
+fffcfdfffffefffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff6fbf8fffffffefffffffefffffffdffc5c1bfff3f3432ff493f3cff574947ff5a4c4aff62534fff675854ff635651ff5d4f4aff5a4e48ff5e514cff5c504eff5e5250ff615452ff625653
+ff655956ff6c605eff776b68ff7f7371ff897d7aff887c79ff847875ff7a6e6bff6e615fff645855ff5f5351ff5f5350ff594d4aff584c4aff594b49ff584b48ff594947ff554543ff513f3eff4c3b39ff483836ff594947ff483b39ff433634ff362e2bff352c29ff3a3531fff7f1eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4cff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff50
+4845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffebebebff636363ff4e4645ff4b4241ff4c4342ff514948ff564d4cff554d4cff564d4dff59504fff59504fff5b5352ff615858ff6f6766ff837a79ff8f8686ff8a8281ff7f7675ff6c6460ff605855ff564e4bff544c48ff534b48ff504845ff4c4441ff4c4440ff48403dff4f4744ff534b48ff4c4440ff443c38ff362f2b
+ff332b28ffc4bcb9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefff1edecff4b4746ff463d3cff483f3eff524644ff5c514fff645855ff5c504dff574c47ff594e49ff5a524cff5a524cff59534cff5b554eff615754ff6c625fff7b716eff897f7cff938a87ff948a87ff867c79ff776d
+6aff695f5cff605653ff584f4cff574d4aff574d4aff534946ff514744ff524845ff4f433fff524642ff4a3f3cff554a47ff544a48ff443b38ff403937ff352d2cff2c2726ff868080fffffcfdfffffefffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff5
+faf8fffffffefffffffefffffefcffcac6c4ff3e3431ff493f3cff574a47ff5a4d4aff62534fff675854ff645651ff5d4f4aff5b4e48ff5e514cff5c504eff5f5250ff615552ff625653ff655956ff6c605dff776a68ff7f7270ff887c79ff877b79ff837774ff7a6d6bff6d615fff645855ff605351ff5f5350ff594d4aff584c4aff594b49ff594b49ff5a4947ff554543ff503f3dff4c3a39ff483836ff594947ff483c39ff
+433634ff362e2aff352d29ff3b3632fff9f4f0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffcfffffffafdfdfffffffefffefffdfffffefcffaba7a5ff3a3432ff433d3bff524745ff504643ff5c514fff625855ff594f4c
+ff544a47ff594f4cff594f4cff594f4cff5d5350ff645a57ff716664ff827875ff908683ff918683ff8a7f7dff746c69ff675f5bff5a524fff564e4aff544c49ff524a47ff504844ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f
+6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff473f3bff4d4542ff544c49ff4e4743ff473f3cff352d2aff2e2623ffbfb7b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfbfafffffffefffaf5f4ff4d4948ff453d3cff
+4c4443ff554947ff584c4aff635653ff5c504dff584d48ff594e49ff584f4aff574f49ff56504aff5a544dff5f5452ff6a605dff7a6f6cff887d7bff948986ff948986ff877c7aff786d6bff695e5bff605552ff594e4bff584d4aff584d4aff554a47ff534845ff534946ff504440ff4c403dff4d423fff544946ff544b48ff4b413fff3c3533ff342d2bff2d2827ff817c7bfffffefffff6f2f3fffffffffffffffffffefefe
+fffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff7fcfafff8f9f7fffffffefffffffdffccc8c6ff473c3aff4b413fff594b48ff5b4d4aff61524eff675854ff655853ff60524dff5c504aff5e524cff615451ff615451ff615351ff615452ff645755ff6c5e5cff756865ff7b6e6cff8779
+77ff847674ff7e716eff776967ff6f615fff675a57ff615452ff5e514fff5e524fff584c4aff574a47ff5a4c4aff5b4b49ff544442ff4e3c3aff4a3937ff4e3e3cff544442ff433634ff4c3f3dff3c3430ff29211dff4b4542fffaf5f1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffff
+fefffffffefffffcfffffffcfffffffbfffffffbfffffffafefdfffcfffffffefefcfffffffefffffefcffa5a19fff3f3836ff443d3bff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff
+413936ff3d3531ff372f2cff332b28ff6e6e6efffffffffffffffffffbfbfbfffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff473f3cff4e4643ff534b48ff4e4643ff463e3bff362f2bff302824ffbfb7b4ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfcfffffffefffaf6f5ff4f4a49ff443c3bff4b4341ff564a48ff594d4bff635653ff5c504dff584d48ff594e4aff58504aff574f49ff57514aff5a544dff605552ff6b605eff7a6f6cff897e7bff948986ff948986ff877d7aff796e6bff695e5bff605552ff594e4bff584d4aff58
+4d4aff554a47ff534845ff534946ff504441ff4c413dff4d423fff544946ff544b48ff4a413fff3c3433ff342d2bff2e2928ff878181fffffefffff8f4f5fffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffafffdfffffffefffbfbfafffffffdffd6d2d0ff
+483e3bff4a403eff594b48ff5a4d4aff61524eff675854ff665853ff60524dff5d504bff5f524cff605351ff605351ff605351ff615452ff655755ff6c5e5cff756865ff7b6e6cff857876ff827572ff7c6f6dff756865ff6d605eff665956ff605351ff5d504dff5f5351ff5a4f4cff5a4c4aff5a4c4aff594847ff503f3dff4a3937ff483735ff4d3d3bff574645ff433634ff443735ff362d2aff352d2aff4f4a46fffaf5f1
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffafdfdfffcfffffffdfdfcfffffffefffffefbffa4a19eff3e3836ff433d3bff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d53
+50ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff6b6b6bfffffffffffffffffffcfcfcfffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff
+6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff48403dff4f4744ff534b48ff4c4441ff453d3aff38302dff312a26ffc0b8b5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffcf8f7ff524d4cff433b39ff49413fff574c4aff5a4f4cff635754ff5d504d
+ff584d48ff594e4aff58504aff574f49ff57514aff5a544eff625654ff6d615eff7c6f6dff8a7d7bff958886ff958986ff897d7aff7a6e6bff6a5e5bff615452ff5a4e4bff594d4aff594d4aff564a47ff544845ff554846ff504541ff4d413dff4d423fff534845ff534a47ff4a403eff3c3433ff342c2bff2f2a29ff908b8afffffefffffaf7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fefbfffbfffefffffffefff5f6f4fffffffdffe0dcdaff473d3aff493e3cff594b48ff5a4d4aff61524eff675955ff665853ff60534eff5d514bff5f534dff605250ff615250ff615351ff625452ff665755ff6d5e5cff766765ff7c6d6bff847573ff817370ff7c6d6bff756664ff6d5e5cff66
+5755ff605250ff5d4f4dff5e5250ff5b504dff5b4d4bff5a4c4aff554543ff4c3c3aff493736ff4a3937ff4c3c3aff574745ff443835ff3e322fff302824ff3f3733ff534e4afffbf5f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbffffff
+fbfffffff9fcfcfffcfffffffcfcfbfffffffdfffffdfaffa3a09dff3d3735ff423c3aff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff656565
+fffcfcfcfffffffffffcfcfcfffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffff
+ffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff48413dff504845ff534b47ff4a423fff443d39ff39312eff322b27ffbfb7b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffaf9ff575251ff413937ff463e3dff594d4bff5b4f4dff645754ff5d514eff584d49ff5a4f4aff58504aff58504aff57514bff5b554eff635755ff6e615fff7c6f6dff897d7aff948885ff958886ff887c7aff7a6e6bff6a5e5bff615452ff5a4e4bff594d4aff594d4aff564a47ff544845ff554846ff514542ff
+4d413eff4d423eff534844ff524946ff49403dff3b3332ff342c2bff2e2928ff9a9493fffffefffffcf8f9fffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffdfff8fdfbfffffffefff4f5f3fffffffdffe4e0deff463c3aff463c39ff584b48ff5a4d4aff61524e
+ff685955ff665954ff61544fff5e514cff60544eff60524fff615250ff625351ff635452ff665755ff6c5e5cff746664ff7a6c69ff827371ff7f706eff7a6b69ff746563ff6d5e5cff665755ff615350ff5e504eff5c504eff5b4f4cff5c4e4cff594c49ff544442ff4b3b39ff4a3937ff4e3d3bff4e3e3cff534341ff473a38ff413532ff2e2623ff3b3330ff595350fffbf6f2ffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffff8fbfbfffcfffffffbfcfafffefefdfffffcfaffa39f9dff3c3634ff413b39ff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff91
+8784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff606060fff9f9f9fffffffffffdfdfdfffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48
+ff514945ff4e4643ff4d4542ff48403dff504845ff534b48ff49413dff443c39ff3a322fff322a26ffbab2affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffdfffffefdff5d5958ff403837ff443b3aff5a4f4dff5b4f4dff645855ff5e514eff594e49ff5a4f4bff59514bff58504aff5852
+4bff5b554fff655755ff6f615fff7c6f6cff897b79ff938684ff948784ff887b79ff7a6d6bff6b5e5bff625452ff5b4d4bff5a4c4aff5a4c4aff574947ff554845ff554846ff524643ff4d413eff4c413eff514643ff514745ff483e3cff3a3331ff332c2aff2b2625ffa49f9efffffefffffdfafafffffffffffffffffffbfbfbfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff3f8f5fffffffefff9f9f7fffffffdffe6e1dfff524846ff433937ff584b48ff5a4d4aff61534fff685955ff675954ff62544fff5f524dff61554fff625250ff635351ff635452ff645553ff675755ff6c5c5aff736361ff786967ff7f6f6dff7d6d6bff796967ff736462ff6d5e5cff685856ff645452ff625250ff5f5350ff5c504dff
+5b4e4bff584a48ff52413fff493837ff493735ff4d3b39ff524240ff4c3c3aff483b39ff493c3aff302825ff2f2723ff6c6663fffcf7f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffff8fbfbfffcfffffffbfcfafffefefd
+fffffcfaffa39f9dff3c3634ff413b39ff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff5c5c5cfff7f7f7fffffffffffdfdfdffffffffffffff
+fffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d
+4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff473f3cff504945ff534b48ff48403dff433b38ff3a322fff2f2724ffb4aca9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefffefcfbfffffffeff64605fff413937ff423a39ff5b4f4dff5a4e4cff645855ff5e514eff594e4aff5b504bff59514bff59504bff58524bff5c564fff645755ff6e615eff7a6d6bff877a77ff918381ff928583ff877977ff796c69ff6b5e5bff625452ff5b4d4bff5a4c4aff5a4c4aff574947ff554845ff554846ff534743ff4d423eff4c413eff514642ff504644ff473e3b
+ff3a3231ff332b2aff2a2524ffaea9a8fffffefffffffbfcfffffefefffffefefff9f9f9fffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff3f8f6fffdfefcfffefefcfffffefcffefebe9ff736967ff413735ff584a48ff5a4c4aff61534fff685956ff685a55ff635550ff60534eff6256
+50ff635452ff645452ff655553ff655553ff665755ff6a5b59ff70615fff756563ff796a68ff786866ff746563ff70615fff6c5c5aff685856ff655553ff635351ff615552ff5c504dff584a48ff544644ff4e3e3cff463634ff443331ff473634ff544442ff463634ff473a38ff483c39ff332b27ff29211eff98928ffffef8f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffff9fcfcfffcfffffffcfcfbfffffffdfffffdfaffa3a09dff3d3735ff423c3aff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff
+574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff5c5c5cfff8f8f8fffffffffffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff463e3bff5049
+45ff534c48ff48403cff433b38ff39312eff2b2420ffada5a2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffbfaf9fffffffeff6a6665ff423938ff413938ff5b504eff584d4bff655855ff5e524fff594e4aff5b504bff59514bff59514bff58524cff5c564fff645654ff6d605dff796c69ff85
+7775ff8f827fff908380ff857875ff786a68ff6b5e5bff625452ff5b4d4bff5a4c4aff5a4c4aff574947ff554845ff564846ff534744ff4e423fff4c413dff504542ff4f4643ff463d3aff393230ff332b2aff2b2524ffb7b2b1fffffefffffffefefffffffffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfffefffafffdfffdfefcfffffffefffffbf9fffffdfbffa29795ff403633ff584a47ff5a4c49ff61534fff685956ff685a55ff635550ff61544eff635651ff655553ff665654ff665654ff665654ff665654ff695957ff6e5e5cff726260ff736361ff726260ff6f605eff6d5d5bff695a58ff675755ff645553ff635351ff5b4f4cff534744ff4e413eff4c3e3cff4b3b39ff463634ff453432
+ff473534ff534341ff443432ff433734ff3c2f2dff332b27ff302825ffd2cdc9fffffbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffafdfdfffcfffffffdfdfcfffffffefffffefbffa4a19eff3e3836ff433d3bff4d43
+40ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff5e5e5efff9f9f9fffffffffffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffecececff646464ff4b4242ff4b4342ff4d4443ff514847ff554c4bff584f4eff584f4fff
+574f4eff584f4eff5a5251ff615857ff6f6665ff837a7aff908786ff8b8382ff807776ff6d6562ff615956ff564e4bff544c49ff534b48ff514945ff4e4643ff4d4542ff453d3aff504945ff544c48ff48403cff433b37ff39312dff29211effa9a19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
+fffaf8f7fffffffeff6e6968ff433b39ff413837ff5c504eff574c4aff655855ff5e524fff5a4f4aff5b504bff5a514cff59514bff58524cff5c564fff635654ff6c5f5dff786a68ff847674ff8e807eff8f827fff847774ff776967ff6b5e5bff625452ff5b4d4bff5a4c4aff5a4c4aff574947ff554845ff564846ff544844ff4e423fff4c413dff504541ff4f4543ff463d3aff393130ff332b2aff2c2625ffbdb8b7fffffe
+fffffffefffffffffffffffffffffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fdfbfffbfffefffffffefffffffefffdf9f7fffffffdffc4bab7ff3f3533ff584a47ff5a4c49ff61534fff695a56ff685a55ff635651ff61544fff635751ff675755ff675755ff675755ff665654ff66
+5654ff685856ff6c5c5aff70605eff6e5e5cff6d5d5bff6c5c5aff695a58ff675755ff655553ff635452ff635351ff514542ff493d3aff453735ff463836ff4a3a38ff493836ff493836ff4b3938ff51413fff443332ff413432ff2f2220ff322a27ff3a322ffffef9f5fffffcf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefffffffefffffffefffffffefffffcfffffffcfffffffbfffffffbfffffffafefdfffcfffffffefefcfffffffefffffefcffa5a19fff3f3836ff443d3bff4d4340ff544a47ff5b504eff5c524fff584e4bff564c49ff574d4aff5a504dff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff766e6bff68615dff5c5450ff574f4cff554d4aff524a47ff504845ff504845
+ff4c4441ff4a423fff473f3cff443c39ff413936ff3d3531ff372f2cff332b28ff5f5f5ffffbfbfbfffffffffffefefefffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdff
+fffffdfffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffffffffffffeffffeeebebff666363ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff31
+2724ffaca19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf9f8fffffffefffff9f8ff7c7675ff413736ff423836ff554846ff5f5150ff695a57ff655653ff60524eff5e504cff5d514cff5e534eff5e554fff5e554fff675856ff6d5f5dff796b68ff867775ff8d7f7dff8b7d7bff817371ff786a68ff
+695b59ff655754ff5f514eff5b4d4aff594b49ff594b48ff584a48ff584947ff554643ff524340ff524441ff554744ff504543ff453a38ff372f2dff312928ff2c2726ffbebab9fffcfafbfffffffffff8f9f9fffefffffff4f7f7fffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5ffffffff
+fffffffffffffffffffbfbfbffffffffffe9e8e6ff51504eff4a4543ff5d5755ff5f5351ff625654ff6e5c5aff6c5a58ff725b5aff6a5352ff605654ff625855ff645a58ff675c5aff695d5bff6a5e5cff6a5d5bff6a5d5bff716361ff6f6160ff6d5d5cff665756ff5f4e4dff554544ff4e3d3cff493837ff483b35ff493c36ff4c3c37ff493a34ff493531ff493531ff4d3836ff513c39ff44312fff4e3a39ff413332ff2c1e
+1dff3c3433ff696160fffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfdfdfffffffffffffffffffffdfdfffffbfcffada6a7ff3d3335ff443a3cff4e4441ff534946ff584e4bff594f4cff574d4aff56
+4b49ff574c4aff594e4bff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff5f5f5ffff7f7f7fffffffffffffffffffffffffffcfcfcfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffeeebecff676364ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663
+ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff312724ffaca19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfcfffffffefffffefdff857f7eff453b39ff463c
+3bff584a49ff625453ff695a57ff655653ff60524eff5e504cff5d524cff5f534eff5e554fff5e554fff665755ff6c5d5bff776966ff837573ff8b7c7aff897a78ff7f716eff766866ff695b59ff655654ff5f514fff5b4d4bff5a4c49ff594b49ff594a48ff584a47ff554644ff524340ff524441ff554744ff504442ff453937ff362e2dff312928ff2a2524ffc3bfbefffefcfcfffffdfefff6f7f7fffefffffff7faf9fffd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffafafafffffffffff9f9f9fffefefefffbfaf8ff9e9d9cff2f2927ff443f3dff5e5250ff564a48ff6e5c5aff7d6b69ff6e5756ff786260ff6a605eff6b605eff6b605eff6b605eff6b5f5dff6a5e5cff6a5d5bff695c5aff5b4d4bff
+5a4c4bff5a4a49ff574746ff534342ff4e3e3dff4b3a39ff483836ff483b35ff483b34ff483833ff463631ff473430ff493531ff4d3835ff503b38ff503c3bff3d2928ff312322ff3d2f2dff342d2bffdcd5d3fffefbf9fffffdfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffff
+fffffffffffefffffffefffffffdfffffffdfffffffdfdfdfffffffffffffffffffffdfefffffbfcffaea7a8ff3d3435ff443a3cff4e4441ff534946ff584e4bff594f4cff574d4aff564c49ff574d4aff594f4cff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a
+37ff403532ff3a302dff362b29ff606060fff8f8f8fffffffffffffffffffffffffffdfdfdfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffb
+fbfbffffffffffffffffffffffffffffffffffefececff686465ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff312724ffaca19effffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfbfafffffffefffffcfbff8a8584ff413736ff433938ff544745ff605250ff695a57ff665654ff61524eff5f504cff5e524cff5f534eff5f554fff5f554fff655654ff6b5c5aff756664ff807270ff877977ff867775ff7c6e6cff746664ff695a58ff655654ff60514fff5c4d4bff5b4c4a
+ff5a4c4aff594b49ff584a48ff564744ff534441ff524542ff554744ff4e4341ff433735ff362e2cff312927ff2a2625ffd0cbcafffffffffffffdfefff6f7f7fffefffffff9fcfbfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffcfcfcfff4f4f4ffffff
+feffebebe9ff55514fff24201eff463b39ff453a38ff493836ff63524fff5b4644ff6e5957ff554845ff544743ff534542ff514340ff50413eff4f403dff50403dff503f3dff4d3b39ff4d3b38ff4d3a38ff4c3a37ff4d3937ff4c3836ff4c3836ff4b3735ff4a3a35ff473732ff45342fff44332eff473430ff493632ff4b3735ff4b3735ff453432ff332220ff3a2f2eff2d2120ff716c6bfffffffdfffefefdfffefffdffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffefefefffefefefffffffffffffdfdfffffcfdffafa8a9ff3e3436ff443a3cff4e4441ff534846ff584e4bff594f4cff574d4aff564c49ff574d4aff594f4cff5b514eff5e5451ff
+655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff636363fffafafafffffffffffffffffffffffffffdfdfdfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffffffffffffffffff0ededff696666ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f65
+62ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff312724ffaca19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfbfffffffefffffaf9ff908b8aff3b3231ff3f3534ff514442ff605250ff6a5a58ff665754ff61
+534fff5f514dff5e524dff60544fff5f554fff60554fff665755ff6b5c5aff736563ff7e6f6dff857674ff837472ff7b6c6aff736462ff685957ff645654ff60514fff5d4e4cff5c4d4bff5b4d4aff5a4b49ff594a48ff564744ff544542ff534643ff554744ff4d413fff413533ff342c2bff312927ff2a2524ffdcd7d6fffffffffffffffffffafbfbfffefffffffafdfcfffafdfdffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffff8f8f8fffffffffffffffffff3f3f3fffffffefffffffeffb1acaaff262220ff2c211fff483e3bff362523ff42312eff513c3aff533e3cff4a3c39ff483b37ff473936ff463734ff453633ff463734ff483835ff493936ff4b3937ff4a3936ff4a3835ff4a3734ff4a3634ff4a3734
+ff4b3735ff4c3735ff473732ff45352fff44332eff46342fff4a3733ff4b3734ff493532ff46312fff392726ff41302eff332826ff3d3231ffd7d3d1fff4efeefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdff
+fffffefefefffefefefffffffffffffcfdfffffdfeffb0a9abff3f3537ff443b3cff4d4340ff524845ff584d4aff594f4cff584d4aff564c49ff584d4bff5a4f4dff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff676767fffc
+fcfcfffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffff
+f1eeefff6b6868ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff312724ffaca19effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffdfbff9b9796ff3a3130ff3f3635ff534543ff645655ff6a5b58ff675754ff62534fff60514dff60524dff61544fff615550ff615650ff695957ff6c5d5bff746462ff7d6e6cff837472ff827270ff7a6b69ff736462ff685856ff655553ff61514fff5f4f4dff5e4e4cff5d4d4bff5b4c4aff5a4a48ff574845ff5546
+43ff544643ff544644ff4b3f3dff3f3331ff332b29ff312927ff25201fffdfdad9fffffffffffffdfdfffefffffffefffffffafdfcfffafdfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffafafafffffffffffffffffffdfdfdfffbfbfafffdfefcffede9e7ff6b6866ff2f2523ff42
+3936ff483937ff443633ff523f3dff483533ff503e39ff4e3d37ff4d3b36ff4c3934ff4c3934ff4d3a35ff4f3b36ff503b37ff4e3834ff4d3833ff4e3733ff4d3632ff4d3531ff4e3632ff4e3632ff4f3632ff46322eff46322eff473330ff4b3733ff4d3936ff4b3734ff42312fff3d2b29ff352827ff392c2bff211a19ff9b9493fffffffefffffffefffdfffffffafdfdffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffefefefffffffffffffcfdfffffeffffb2abacff403738ff453b3dff4d4240ff524745ff574d4aff594f4cff584d4bff574c4aff584e4bff5a504dff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885
+ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff6b6b6bfffefefefffffffffffefefefffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffefffffffffffffffffffff3eff0ff6c696aff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff53
+4845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff312724ffaca19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffefffdfffffdfcffa6a2a1ff3a312fff3e3534ff4f4240ff615452ff6b5b59ff675755ff635350ff61514eff60534eff62554fff625650ff
+625650ff695a58ff6c5d5bff726361ff7b6b69ff81716fff80706eff796967ff726260ff675856ff655553ff615250ff60504eff5f4f4dff5e4e4cff5c4c4aff5a4b49ff574845ff564744ff554744ff544643ff493e3cff3d312fff322a28ff302827ff282322ffe1dcdbfff9f8f8fffbf9f9fffefffffffefffffffafcfcfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffdfdfdfff8f8f8fffffffffffffffffffffffefffbfcfafffffefcffd1cdcbff5d5451ff261d1bff443532ff453634ff453230ff4d3a38ff493832ff483732ff483530ff46342fff46332eff46332eff47322eff47322eff49332fff49342fff4a332fff4b3430ff4c3430ff4c3430ff4c3430ff4c3430ff432f2bff44312dff4834
+30ff4a3733ff4a3734ff463230ff3e2c2aff392725ff2f2221ff2a1d1bff6d6665fff5eeedfffefdfcfffffffefff9fcfcfffafdfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffefefefffffffffffffcfdffff
+feffffb4adaeff413839ff453b3dff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594e4bff5b514eff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff6f6f6ffffffffffffffffffffdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffefefffffffffffffffffff3f0f1ff6d6a6bff48403dff4a423fff4d4642
+ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff544a47ff4c423fff443a37ff3c322fff312724ffaca19effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffbfbfafffafbf9fffffffeffb2b0aeff3d3533ff3e3735ff4b3e3cff5b4e4cff6b5b59ff685855ff645450ff62514eff62534eff645450ff645650ff645651ff6a5957ff6c5b59ff71605eff796866ff7e6d6bff7d6c6bff776664ff71605eff685755ff665553ff635250ff61504fff61504eff604f4dff5e4d4bff5c4b49ff584946ff574845ff564845ff544643ff483d3aff3b2f2dff31
+2927ff312927ff3e3938fff0ebeafff8f6f7fffbf9f9fffefffffffbfdfcfff7faf9fffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffdfdfdfffffffffffffffefffffffefffffffdfffffefcffb6afacff4a4340ff2f2320ff372b28ff372725ff453633ff
+4a3731ff4b3731ff4c3832ff4d3933ff4e3933ff4e3833ff4e3832ff4e3732ff4d3530ff4d3631ff4f3631ff503732ff503631ff4e3430ff4d332eff4c322dff432e2bff46302eff463230ff463230ff402f2dff3c2a28ff352726ff342625ff2d2524ff645b5affdddadafffffefffffafbfbfff2f3f3fff6faf9fffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffdfdfdfffffffffffefcfcfffffeffffb5aeafff42383aff453b3dff4c423fff514744ff574c4aff594f4cff584e4bff574d4aff594f4cff5b514eff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e
+4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff727272fffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
+fffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffefefffffffffffffffffff4f0f1ff6e6b6bff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff59514eff5b534fff605855ff6e6663ff827a77ff8f8784ff8c8480ff817976ff6f6562ff635956ff584e4bff564c49ff554b48ff534845ff504543ff4f4542ff4c413eff4e4441ff
+544a47ff4c423fff443a37ff3c322fff312724ffaca19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfbfffdfefcfffffffeffc0bebdff463e3dff463e3dff4d403eff5b4e4dff6b5c59ff685855ff645450ff62524eff62534eff645550ff645651ff645651ff695856ff6a5958ff6f5e5cff766564
+ff7c6b69ff7b6a68ff756462ff6f5e5cff685755ff655453ff635250ff62514fff61504fff604f4eff5e4d4bff5c4b49ff584946ff574845ff564845ff544643ff473c3aff3a2f2dff302827ff302827ff575352fffffdfcfffdfcfcfffefdfdfffefffffff8f9f9fff4f7f7fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffefefffcfafbfffffffffffffffffffbfbfbfffffffffffffffefffffffefffffefcfff5f3f1fffffffcffa9a29fff3b2f2cff3b2f2cff3f302dff3b2c29ff422e28ff44302aff48332eff4b3731ff4e3934ff503a35ff513b35ff513b35ff553d38ff553d38ff573e39ff563d38ff553b36ff513732ff4e332fff4b312cff432e2cff45302dff44302eff412d2bff392726ff362422ff322423ff34
+2625ff433b3affd4cccbfffffefffffbf7f8fffefffffffefffffff1f5f5fffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffdfdfdfffffffffffefcfcfffffeffffb5aeb0ff43393aff453b3dff4c413eff
+514644ff574c49ff594f4cff584e4bff574d4aff594f4cff5b514eff5b514eff5e5451ff655a57ff716764ff837875ff918784ff928885ff8c817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4d4240ff4a3f3dff473d3aff443a37ff403532ff3a302dff362b29ff737373fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffdfdfdfffffffffffffefefffffffffffffefffffffdfdfff9f6f7ff6c696aff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f
+4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4c423fff4e4441ff534846ff4a403dff423835ff3b312eff302623ffaba19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafefcfff6
+faf8fffffffeffecedebff665f5eff312a29ff463937ff5e514fff6a5957ff6c5c5aff6d5b58ff695754ff675651ff6a5954ff695954ff675752ff6a5856ff6b5958ff6e5c5aff705e5cff715f5eff715f5dff705e5dff705e5cff6c5a58ff695755ff665452ff645250ff635150ff635150ff62504fff614f4dff5f504eff5e4e4cff4e403dff3e302eff4c403eff3b302eff191110ff3c3433ff979291fff7f3f2ffffffffff
+f6f4f4fffefffffffefffffff2f5f4fff9fbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffbfcf9fff8f9f6fffffffcfffefaf6ffb7aeaaff524946ff2b1f1cff3a2e2bff46342fff412f2aff402e29ff43312cff45332e
+ff45322dff493531ff4f3b36ff4e3834ff4e3834ff4c3531ff47312cff472f2bff4a322fff4f3733ff513935ff3e2b29ff402d2bff42312fff3f2e2cff2d201fff281b19ff3a3130ff584f4effe9e4e5fff5f0f1fffdfdfdfffffffffffdfefefffafbfbfffcfdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e
+4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdffffff
+fdfffffffffffffffffffffffdfdfdfffffffffffffefefffffefffffffefffffffdfdfffaf7f7ff6d6a6aff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4b413eff4e4441ff524845ff4a403dff423835ff3b312eff302623
+ffaba19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffefffcfffefffffffefff2f2f0ff948e8cff3c3534ff473a38ff4e4240ff6b5b59ff6c5c5aff6b5a56ff665551ff655450ff695854ff6a5a55ff685853ff6d5b59ff6d5b59ff6c5a59ff6c5a58ff6b5958ff6a5857ff6a5856ff695756ff6856
+55ff675553ff665452ff665452ff665453ff655351ff63514fff604e4cff554643ff534441ff4a3c39ff463835ff3a2e2cff372c29ff362e2cff251d1cffcdc9c8fffffffefffffffffff6f5f5fffefffffffefffffff4f7f7fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffefffffffefffffffdfffefffcfffffcf9fffffdf9fff9f0ecffc5bcb9ff726663ff2b1f1bff311f1aff3b2924ff3f2d28ff3e2c27ff47342fff53403bff503c37ff412d29ff47322dff4c3632ff523b37ff533d39ff513936ff4b3430ff452d29ff3f2723ff4d3a38ff2e1b19ff2d1c1aff463534ff3c2f2eff362928ff7a7271ffe1d8d7fffaf5f6fffffcfdffffffffffffffffff
+fdfefefffafbfbfffcfefffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4a
+ff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffdfdfdfffffffffffffefefffffefffffffefffffffdfefffbf7f8ff6e6b6bff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff82
+7a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4b413eff4d4340ff524845ff4a403dff423835ff3b312eff302623ffaba19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefff6fcf9fffffffefffbfbfaffcbc5c4ff484341ff
+3b2e2cff473b39ff72615eff756462ff766460ff715f5bff6f5c58ff725f5bff73615cff72605bff735f5eff725f5eff725f5dff725e5dff715e5dff715e5dff715e5cff715e5cff725f5dff705d5cff6f5b5aff6d5958ff6a5756ff655250ff5f4c4bff5b4746ff4e3f3cff443532ff4b3d3aff433532ff392d2bff382d2aff342c2bff4e4644fffefaf9fffffffefffffefefffbfafafffefffffffcfdfdfff8fbfafffdffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffdfffefffdfffefffbfcf9fffffffdfffffefafffdfcf8fffffffbfffffffbffd0c8c4ff8a817dff4b3f3dff372c29ff332724ff403432ff433634ff352826ff352625ff413331ff433332ff3f2f
+2eff3c2b29ff392827ff3a2928ff3e2c2bff443130ff483635ff2f2120ff443634ff382c2bff1d1210ff393231ff999291ffeae7e7fffffefffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffff
+fffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff
+3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefeffffffff
+fffffefefffffefefffffefffffffefefffcf8f9ff6f6c6dff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4a403dff4c423fff514744ff493f3cff423835ff3b312eff302623ffaba19effffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffeffeff4f2fffefefcfffffffefff2edebff75706eff322624ff473b39ff5e4d4bff6b5a58ff766360ff74615eff6e5c57ff6c5a56ff6e5b57ff6f5c58ff6f5b5aff705d5bff725f5eff74615fff756261ff756160ff74615fff73605fff776463ff73605fff6d5a58ff665352ff604d4bff58
+4543ff513d3cff4b3837ff4e3f3cff3f302dff4c3e3cff372926ff413634ff332826ff271f1dffb8b0aefffffffefffffaf9fffdfbfbfffffffffffefffffffdfefefffdfffffffcfefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffdfffeff
+fdfffefff7f8f5fffcfdfafffffffcfffffefbfffffdf8fffffdf9fffffdf9fffffbf7ffc8bcbaff736765ff2b1f1cff231715ff372a28ff3c2f2dff403230ff493b39ff3e2f2dff3e2e2dff423130ff463533ff463433ff3e2d2cff382625ff352322ff3c2e2dff1b0d0bff2d2220ff8f8482ffe9e2e1fffffffdfffffcfdfffefafbfffffffffffefefefffdfcfefffcfbfdfffffcfffffffefffffffefffffffeffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff6459
+56ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffffffffffffefefffffefefffffefffffffefffffdfafaff716e6eff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff
+645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff493f3cff4c413eff504643ff493f3cff413734ff3b312eff302623ffaca19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffefff3faf7fffdfffefffdfffefffffefcffccc8c6ff4b3f3dff352927ff4c3b39ff635250ff7b6764
+ff806c69ff796561ff76625eff77645fff7a6762ff7e6968ff806b6aff826e6dff846f6eff826e6cff7d6968ff796463ff75615fff675352ff624d4cff5a4544ff523e3dff4d3938ff493433ff45312fff422e2dff4b3c39ff473835ff433532ff372926ff342826ff261b19ff5b5351fffffaf8fffffcfbfffdf8f7fffffffffffffffffffbfcfcfffefffffffdfffffff6f9f9ffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffdfffefffdfffefffdfffdfffafdf9fffdfdf9fffffffcfffffffbfffffcf7fffffffafffffffbfffffefffffffefeffd4d0d0ff868182ff494344ff342e2fff30292aff292223ff3d3536ff342b2dff2e2527ff2e2526ff302527ff2d2224ff2e
+2325ff322729ff4f4846ff999190ffded9d7fff8f4f2fffdfcfbfffffffefffefffffffafbfbfffcfdfdfffafcfcfffcf9fcfffefbfefffffdfffffffdfffffffcfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdffffff
+fffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070ffffffff
+fffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffdfefffffdfefffffefefffffffffffefb
+fbff736f70ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff483e3bff4b403eff504543ff493e3bff413734ff3b302eff302623ffaca19fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fefcfff9fffefffdfffefff7f9f7fffffcfafffffffdff8c817fff302422ff41302eff584744ff715d5aff796562ff786460ff786460ff7b6762ff7d6965ff7d6967ff7e6968ff7e6968ff7b6766ff766160ff6d5958ff655150ff604c4bff513d3cff4d3837ff483332ff44302fff45312fff473231ff493433ff493533ff433431ff4c3d3aff
+362825ff3d302dff241816ff3d3230ffc4bcbafffffefcfffffcfbfffffffefffffffffffffefffff6f8f8fffefffffffdfffffff9fcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffdfffefffdfffefffdfffdfffdfffdfffffffbfffcfcf8
+fffffffafffffffbfffffffafffbf5f0fffffcfdfffffefffffcf7f8fff0ebecffe5dfe0ffd2cccdffaaa3a4ff827b7cff605859ff524a4bff4d4445ff5c5254ff796f70ff9c9193ffc1b7b8ffddd2d4fffbf4f2fffffcfafffffffdfffefaf8fff9f8f7fffdfcfbfffbfdfdfff7f9f9fffefffffffefffffffffefffffffefffffffdfffffffdfffffffbfffffff9feffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b
+807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffdfefffffdfdfffffefefffffffffffffcfcff747171ff48403dff4a423fff4d4642ff514946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845
+ff4f4542ff4e4441ff473d3aff4a403dff4f4542ff483e3bff413734ff3b302eff302623ffaca29ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2faf8fff8fffdfffcfffdfff6f9f7fffdf9f7fffffffdffe1d5d3ff756967ff372624ff41302eff4d3936ff523e3bff58433fff5d4845ff5e4a45ff5c47
+43ff574342ff574241ff55403fff513d3cff4d3938ff483433ff45302fff422d2cff493433ff463231ff44302eff442f2eff473231ff4a3534ff4c3736ff4c3836ff3f302eff3c2d2aff352725ff352825ff3f3432ff9b908efffffbf9fffff7f6fffffffefffffffefffffffffffffefefffbfdfdfffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffdfffefffdfffefff8fbf8fffdfffdfffffffcfff8faf6fffaf8f3fffffffbfffffffbfffffdf9fffefefffff8f8fbfffbfafdfffffefffffffefffffaf9fcfff7f6f9fffffefffffaf6f9ffeeebeeffece7eafff4f0f3fffcf7fafffcf6fafffef9fcfffffdfffffffffdfffffdfbfffbfcfaff
+fffffefffdfffffffcfefefffafffefffbfffffffdfffffffdfffffffffefffffffefffffffcfffffffbfffffff9fffffff9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfc
+ffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffdfefffffdfdfffffefefffffffffffffcfdff747172ff48403dff4a423fff4d4642ff51
+4946ff544c49ff564e4bff564f4bff574f4bff58504dff5b5350ff625a57ff6f6764ff827a77ff8f8784ff8e8683ff857d7aff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff473d3aff4a403dff4f4542ff483e3bff413734ff3b302eff302623ffaca29fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9fffefff8fffdfff9fcfafffdfffefffffefcfff0eceafffffefcffd5cac8ff483735ff443331ff422d2aff412c29ff4a3531ff533e3aff523d39ff4b3632ff483433ff473332ff463230ff453130ff463230ff483332ff4a3634ff4c3736ff493433ff473231ff453130ff45302fff463130ff453130ff442f2eff422e2dff423330ff271815ff3e312eff241613ff716563fffff3f1fffffbf9
+fffffffdfffffcfbfffffdfcfffdfbfcfffffffffffefffffffefffffff7fafafffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffdfffefffdfffefffcfffcfffbfffbfffffffcfffffffcfffffffbfffefcf8fffffaf6fffffcf8fffafb
+fdfffbfcfefffffefffffffefffffefdfffffaf9fcfffbfafdfffffefffffffefffffaf7fafff8f4f7fffffcfffffffdfffffffcfffffffbfefffffdfffffffdfbfffffffdfffffffefffefffdfffbfdfdfffcfffffffafffefff7fcfbfffcfdfffffdfefffffffefffffffcfffffff9fefffff9fefffffafffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffffffffffffffffffcfafafffffffffffffbfcffbbb4b5ff3f3537ff453b3cff4c423fff514744ff574d4aff594f4cff584e4bff574d4aff594f4cff5b514eff5a504dff5d5350ff645956ff706663ff827774ff908683ff918784ff8b807dff786e6bff6a605dff5e5350ff594e4cff
+574d4aff544a47ff524745ff524845ff4e4441ff4e4441ff4a403dff443a37ff413633ff3f3532ff3a302dff332926ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffefefefffffffffffffffffffdfdfdfffafafaff737373ff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4c423fff493f3cff4d42
+40ff483e3bff423835ff392f2cff2e2421ffaca29ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffeffffb8adafff5f5456ff291b1dff3a2b2eff4a393bff362427ff382629ff574447ff47302eff4a3331ff4c3534ff4e3735ff50
+3938ff533c3bff533d3bff523b3aff462f2eff4f3837ff503a38ff483230ff432c2bff452e2cff422b29ff3a2322ff313131ff212121ff1e1e1eff626262ffd3d3d3fffffffffffffffffff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfffefffcfffffffefefefffbfbfbfffffeffffc7c2c3ff3a3334ff40383aff4b413eff5046
+43ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffefefefffffffffffffffffffdfdfdfffbfbfbff747474ff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff
+59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4c423fff493f3cff4c423fff483e3bff423734ff392f2cff2e2421ffaca29fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffefffffffefffffffefffffffefffffffdffffc2b7b9ff605153ff2e1f21ff372629ff49383bff443134ff321f22ff442e2cff4c3534ff533c3bff543d3cff513a39ff4f3836ff503a38ff523b3aff4b3433ff4b3432ff462f2eff3e2826ff3c2624ff402928ff432c2aff422b2aff1e1e1eff191919ff757575ffeaeaeafffffffffff2f2f2fffdfdfdffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfffefffcfffffffefefefffbfbfbfffffeffffc7c2c3ff3a3334ff40393aff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542
+ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffefefefffffffffffefefefffffffffffffffffffefefefffcfcfcff757575ff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4c423fff493f3cff4c423fff473d3aff413734ff392f2cff2e2421ffac
+a29ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffdf4f6fffffeffffe0d5d7ff7b7072ff332527ff2c1e20ff3e2f32ff423335ff483533ff43312fff412f2dff463432ff4c3a38ff4b3836ff42302eff3a2825ff493735ff
+493734ff4a3835ff4a3836ff43312fff392724ff33211eff33201eff313131ff9c9c9cfff2f2f2fffffffffffdfdfdfffffffffffffffffff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfffefffcfffffffefefefffbfbfbfffffeffffc7c3c4ff3b3435ff41393bff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff58
+4e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffefefefffffffffffffffffffefefefffcfcfcff767676ff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976
+ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4c423fff493f3cff4b413eff463c39ff403633ff382e2bff2e2421ffaca29ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
+fffffffefffffffefffffff7f8fffff7f8fffaeff1ffb3a5a8ff4d3f42ff28191bff3d2e31ff392725ff402e2bff463331ff43312eff3a2826ff392725ff473533ff584643ff362422ff342220ff362422ff3a2825ff372522ff362422ff453331ff594745ffb7b7b7fff2f2f2fffffffffff8f8f8fffffffffffffffffff4f4f4fffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffcfffffffcfffffffbfffffffbfffffffbfefefffcfffffffefefefffcfcfcfffffeffffc8c4c4ff3c3436ff423a3bff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f34
+32ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
+fefefffffffffffffffffffffffffffefefeff787878ff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4c423fff493f3cff4b403dff453b38ff3f3532ff372d2aff2e2421ffaca29fffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffcf9f9fffffefffffffefffffdf7f8fffcf4f5ffe7dfe1ff9b9294ff463d3eff3b302dff332826ff322725ff3d322fff453937ff403432ff352927ff2d2220ff3c302eff3f3432ff3d3230ff312523ff2b201eff544946
+ffb0a4a2fffff7f5ffffffffffe9e9e9fff2f2f2fffffffffffffffffff8f8f8fffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfefefffcfffffffefefefffcfcfcfffffeffffc9c4c5ff3d3537ff433b3dff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff
+6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffff797979ff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a
+57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4d4240ff493f3cff4a403dff443a37ff3e3431ff372c2aff2e2321ffada2a0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffefffff6f2f3fffaf4f5ffff
+fefffffffefffffffdfefff1e8eaffe7dee0ffb6aaa8ff847876ff4e4240ff352a27ff352a28ff3a2f2dff3d3230ff3f3431ff382c2aff392d2bff534745ff8e8381ffd3c8c6fffff4f2fffffefcfffffefcfff9f9f9fffffffffffffffffffafafafff6f6f6fffffffffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfe
+fefffcfffffffefefefffcfcfcfffffeffffcac5c6ff3e3637ff443c3dff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070ffffffffffff
+fffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffff
+7b7b7bff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f4542ff4e4441ff4d4340ff493f3cff4a3f3cff433936ff3d3330ff362c29ff2e2320ffada3a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffffffff7f6f6fff9f6f7fffffffffffffefffffffefffffdf9f7fffffffdfffffffdfff8f4f2ffcfcbc9ffaba7a5ffa7a3a1ffb6b2b0ffe2dddbfff8f3f1fffffffdfffffffdfffcf7f5fff7f3f1fffffbf9fffffffdfff7f7f7fffffffffffdfd
+fdfff5f5f5fffffffffff9f9f9fff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfefefffcfffffffefefefffcfcfcfffffeffffcac6c6ff3e3738ff443d3eff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817e
+ff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffff7b7b7bff473f3cff4a423fff4e4643ff524a47ff554d4aff564e4bff564e4bff564e4bff59514eff5a524fff5f5754ff6c6461ff817976ff8f8784ff8d8582ff837c78ff706663ff645a57ff594f4cff564c49ff554b48ff524845ff4f
+4542ff4e4441ff4d4340ff493f3cff493f3cff433936ff3d3330ff362c29ff2e2320ffada3a0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffff4f4f4fffcfcfcfffffffffffffffffffffcfcfffffdfdfffffefffffffeffff
+fffffdfffffbf9fffef9f7fffffffdfffffffdfffffefcfffffcfafffffffdfffffaf8fffffffdfffffefcfffffaf8fffffffdfffffffdfffffffdfffffaf8fffffffffff9f9f9fffffffffffffffffffbfbfbfffffffffffffffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfefdfffcfffffffefefefffdfdfdfffffeffffca
+c6c7ff3e3738ff453d3eff4b413eff504643ff564c49ff584e4bff574d4aff564c49ff584e4bff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4f4442ff4a403dff433936ff403533ff3f3432ff3a302dff342a27ff707070fffffffffffffffffffcfcfcfffffffffffefefeffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffcfcfcfffdfdfdfffffffffffefefeff7f7f7fff463e3bff49413eff4d4542ff524a47
+ff554d4aff574f4cff574f4cff574f4cff59514eff5d5552ff615a56ff6c6461ff807975ff928a87ff908885ff837b78ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff493f3cff4c413eff4e4441ff433936ff3c312eff382e2bff312724ffada3a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffdfdfdfffefefefffbfbfbfffdfdfdfffffffffffffffffffcfcfcfffafdfdff
+fdfffffffdfffffffbfefdfffcfffffffdfffffffdfffffffbfefefff6f9f8fffafdfcfffdfffffffdfffffffcfffefffbfdfdfffdfffffffdfffffff6f6f6fffdfdfdfffffffffffcfcfcfff9f9f9fffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfefdfff9f9f9fffefefefffffeffffd7d3d3ff383132ff453e3fff4a403dff524845ff584e4bff574d4aff574c49ff594f4cff5b504dff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d
+4aff544a47ff524745ff524845ff4f4542ff4b413eff463c39ff443a37ff433936ff403633ff3a302dff352b28ff747474fffffffffffffffffffefefefffcfcfcfffdfdfdfffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffcfcfcfffdfdfdfffffffffffefefeff7f7f7fff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff59514dff5d5552ff615956ff6c6460ff807875ff928a86ff908885ff837b78ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4a403dff4b413eff4d4340ff
+433936ff3d322fff392f2cff302623ffaba19efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffe
+fffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfff7f7f7fff5f8f8fffdfffffffdfffffffafdfdfff5f8f7fff7faf9fffbfefefffdfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffbfbfbfff8f8f8fffe
+fefefffffffffffffffffffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffbfffefffbfbfbfffefefefffffdfdffd6d1d2ff373031ff443d3eff4a403dff534846ff
+584e4bff584d4aff574c49ff594f4cff5a504dff5a504dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4f4542ff4b403eff463c39ff443a37ff433936ff403633ff3a302dff352b28ff737373fffefefefffffffffffefefefffdfdfdfffdfdfdfffffffffffcfcfcffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffdfdfdfffcfcfcfffffffffffdfdfdff818181ff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff5850
+4dff5c5551ff615956ff6b6360ff807875ff918986ff8f8884ff837b77ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4c413fff4a3f3dff4b403eff433936ff3e3431ff392f2cff2e2421ffa99f9cfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffe
+fffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfff8f8f8fff6f6f6fff8f8f8fffafafafffbfbfbfffefefefffffffffffbfffffffbfffffffafefdfff6faf9fff8fcfbfffbffff
+fffbfffffff7fbfafffbfffffffbfffefff3f7f6fff0f4f4fff4f8f7fff9fdfcfffbfffefffbfffefffffffffff5f5f5fff2f2f2fffcfcfcfffffffffffffffffffefefefffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffcfffffffdfdfdfffffffffffffbfcffd4cfd0ff362f30ff433c3dff4b413eff534946ff594e4cff584e4bff574c49ff594f4cff5a504dff5a4f4dff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4a
+403dff463c39ff443a37ff433936ff403533ff3a302dff352b28ff737373fffcfcfcfffefefefffefefefffefefefffefefefffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffefefefffdfdfdfffffffffffdfdfdff838383ff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff58504dff5c5451ff615956ff6b6360ff807875ff918986ff8f8784ff827a77ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4d4340ff493f3cff493f3cff443936ff3f3532ff3a2f2cff2e2421ffaa9f9d
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdff
+fffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffdfdfdfffffffffffffffffff9fdfdfffafefefffbfffffffbfffffffbfffffffbfffefff6faf9fff0f5f4ffc3c7c6ffbcc0bfffb5bab9ffb7bbbbffc4c8c7ffd7dbdbffe9ededfff4f8f7fffffffffffffffffffffffffffffffffffdfdfdfffbfbfbfffffffffffffffffffdfdfdfffdfdfdfffefefeffffffffffffffffff
+fffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffafefdfffcfffffffffffffffffffffffffbfbffd4d0d0ff362f30ff423b3cff4c423fff544a47ff594f4cff584e4bff574d4aff594f4cff5a504d
+ff5a4f4cff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4441ff4a403dff463b38ff433936ff423835ff3f3532ff3a2f2cff352a27ff757575fffcfcfcfffdfdfdfffefefefffffffffffefefefffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffdfdfdfffffffffffdfdfdff878787ff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff57504cff5c5450ff605855ff6a635fff7f7774ff90
+8985ff8f8783ff827a77ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4e4441ff483e3bff493e3cff443a37ff3f3532ff382e2bff2f2522ffafa4a2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffafafafff7f7f7fffafafafffbfffffffbfffffff0f6f5ffd0d5d4ff9a9f9eff5e6362ff2e3433ff161c1bff131918ff111716ff0d13
+12ff0c1110ff0f1514ff1b201fff2a302fff363b3aff737373ffadadadffe9e9e9fffffffffffcfcfcfff9f9f9fffdfdfdfffffffffffcfcfcfffcfcfcfffdfdfdfffefefefffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
+fffffffcfffffffbfffffffbfffffffafdfdfffcfffffffffffffffffffffffffcfcffd7d3d4ff393132ff413a3bff4d4340ff554b48ff5a504dff594f4cff574d4aff594f4cff5a504dff594f4cff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4e4341ff4a3f3dff453b38ff433936ff423835ff3f3532ff
+392f2cff342a27ff7a7a7afffdfdfdfffcfcfcfffffffffffffffffffdfdfdfffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffff
+fffffffffffefefefffffffffffefefeff8c8c8cff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff574f4cff5b5350ff605855ff6a625fff7f7774ff908885ff8e8683ff817976ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4f4441ff493f3cff4a403dff453b38ff3f3431ff372d2aff322825ffb7adaaffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffdfdfdfff8f8f8fff7f7f7fffcfcfcfffffffffffffffffffefefeffe8eeedffafb4b4ff656a6aff303534ff1a1f1fff171d1cff1b2120ff1f2423ff292e2dff2b3130ff2b3130ff262c2bff1e2423ff191e1dff181e1dff1a201fff1f1f1fff1e1e1eff323232ff6f6f6fffc7c7c7fffffffffffffffffff3f3f3fffbfbfbfffcfcfcfffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffbfefefffcfffffffffffffffffffffffffeffffddd9daff3c3536ff41393bff4e4441ff564c49ff5b514eff5a4f4dff574d4aff594f4cff5a504dff594f4cff5b504dff5e5351ff635956ff6f65
+62ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4d4340ff493f3cff453b38ff433836ff423735ff3f3431ff392e2cff342a27ff818181fffffffffffcfcfcfffefefefffffffffffdfdfdfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffffffffffefefeffffffffffffffffff909090ff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff574f4cff5b5350ff605854ff6a625fff7f7773ff908885ff8e8683ff817976ff736865ff655a58ff
+584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4e4441ff493f3cff4c413fff463c39ff3d3330ff352b28ff352b28ffc0b6b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfff9f9f9ffffffffffffffffffe6e6e6ffc0c0c0ff4e5352ff292f2eff090f0eff090f0eff1f2424ff2d3332ff2c3131ff252b2aff1f2423ff232827ff282e2dff2c3130ff2d3231ff2b302fff292f2eff28
+2d2cff292929ff212121ff1a1a1aff1c1c1cff2e2e2eff666666ffc0c0c0fffffffffffafafafffbfbfbfffcfcfcfffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcffffff
+fcfffffffdfdfdfffefefefffffeffffe3dfe0ff40393aff40393aff4f4441ff574c49ff5b514eff5a504dff584e4bff594f4cff5a504dff594f4cff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff786e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4d4340ff493f3cff453a37ff423835ff413734ff3e3431ff382e2bff332926ff888888fffffffffffcfcfc
+fffefefefffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffff9292
+92ff463e3bff49413eff4d4542ff524a47ff554d4aff574f4cff574f4cff574f4cff574f4cff5b5350ff5f5854ff6a625fff7e7773ff908885ff8e8683ff817976ff736865ff655a58ff584e4bff564c49ff574d4aff544a47ff504643ff4e4441ff4e4441ff4a403dff4d4340ff473d3aff3c322fff342a27ff372d2affc6bcb9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fffcfcfcfffffffffffffffffffefefe
+ffd8d8d8ff7d7d7dff262626ff181e1dff1d2322ff272d2cff303534ff2e3433ff292f2eff2c3231ff353a3aff383e3dff343a39ff313636ff303635ff323837ff323736ff2e3433ff2a302fff2c2c2cff252525ff292929ff2c2c2cff181818ff111111ff454545ff8a8a8afffafafafffbfbfbfffcfcfcfffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffbfffffffbfffffffcfffffffcfffffffcfcfcfffefefefffffeffffe8e3e4ff433b3dff40393aff4f4542ff574d4aff5c514eff5a504dff584e4bff594f4cff5a504dff594f4cff5b504dff5e5351ff635956ff6f6562ff817774ff908582ff918784ff8b817eff78
+6e6bff6a605dff5e5350ff594e4cff574d4aff544a47ff524745ff524845ff4d4340ff493f3cff443a37ff423835ff413734ff3e3431ff382e2bff332926ff8d8d8dfffffffffffdfdfdfffefefefffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffffffffffffffffffffffffffffffcfcfcffa8a8a8ff4c3e3cff4f413fff544644ff574947ff574a48ff594c49ff5a4d4bff5b4f4dff5c504eff5d524fff615654ff6e6360ff817875ff8f8683ff8d8481ff847a77ff6a6763ff5f5c58ff57514eff534d4aff544b48ff514845ff534643
+ff544745ff4f413fff4f413eff4e423fff493c3aff3d3431ff2e2421ff2f2724ffccc4c1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffbfefdfff8fcfbfff9fdfcfff6fbfafff5fbfafffafffffffafffffffdff
+fffffdfffffff7faf9fff1f4f3fff8fafbfffdfffffffdfefffff6f8fafffdfefffffcfdfffffdfefffffdfefffffdfdfffff9fafffffbfbfffffdfdfffffdfffffff4f6f6fffbfdfdfffdfffffffdfdfdfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffbfffffff4f8f7fffdfffffffdfffffffcfcfcfffcfcfcfffbfafafffefcfdfffffffffffdfdfdfff8fbfbfff8fcfbffbac2c1ff444c4bff040f0eff1f2a28ff222825ff232825ff262a27ff2b2f2cff323532ff373a37ff3b3c39ff3b3c3aff403f3dff41403eff43403fff433f3eff423d3bff403c3aff423c3bff433d3bff313434ff2c302fff262b2aff232827ff
+1f2726ff1c2423ff161f1dff111a19ff5b6361ffd6dddcfffcfffffffbfffefffafafafffffffffffffefffff5f2f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffff8f8f8fffffffffffdfbfbfffffffffff4f2f2
+ff3e3b3bff413e3eff504542ff564a47ff5c504dff5d524fff5c504dff5a4e4bff5a4e4bff5b504dff5a4e4cff5e5250ff645855ff6e625fff7d726fff8b7f7dff8f8380ff8a7f7cff756e6bff655e5bff57504cff544c49ff554d4aff534a47ff4e4542ff4b423fff483e3bff463c39ff443936ff423735ff403532ff3d312fff382c2aff342826ff989898fffffffffffcfcfcfffefefefffffffffffffffffff8f8f8ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffffffffffffffffffffffffffcfcfcffacacacff4c3e3cff50423fff544644ff574947ff58
+4b48ff594c49ff5a4e4bff5c4f4dff5c504eff5d524fff615754ff6d6360ff807673ff8e8481ff8c827fff837976ff6a6763ff5f5c58ff57514eff534e4aff554b48ff524845ff534644ff544745ff514341ff504240ff4f4240ff4a3d3bff3f3532ff2f2623ff322a27ffcfc7c4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffff5f8f7fffcfffefffbfffffffafefdfffbfffffffbfffffff3f9f8ffe1e7e6fff8fbfafffdfffffffdfffffffdfffffffdfffffffdfffffffdfefffffafcfefffdfefffff5f6fafff2f3f8fff8f9fefffdfdfffffdfdfffffbfbfffffafafffff1f3f3fffdfffffffdfffffff7f8f8fffffffffffbfbfbffefefefffffffff
+fffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffff9fefdfffcfefefffafcfbfffefefefffffffffffffffffffffffffff5f5f5fff9f9f9fff3f6f6ffa7aaaaff343c3aff151d1bff242f2dff1b2624ff292f2bff2b31
+2eff2f3431ff333835ff383b39ff3c3f3dff414240ff444442ff474644ff484644ff4a4745ff4a4745ff4b4644ff484341ff45403eff433d3cff353938ff313434ff2a2f2eff272c2bff242b2aff202726ff1a2221ff151d1cff1a2221ff414847ffc3c7c7fffbfffefffffffffffffffffff1edeefffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffff9f9f9fffffffffffdfbfbfffffffffff5f2f3ff423f3fff413e3eff514542ff564a47ff5c504eff5e5250ff5c504eff5a4e4cff5a4e4cff5b504dff5b4f4cff5e5250ff645855ff6d615fff7d716eff8a7e7cff8d817fff897d7bff746d6aff655e5bff59514eff564e4bff574f4bff
+534b48ff4e4542ff4a413eff473e3bff453c39ff443936ff423734ff403532ff3c312eff382c29ff342826ff9c9c9cfffffffffffbfbfbfffffffffffffffffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffdfdfdfffffffffffefefefffdfdfdffb3b3b3ff4d3f3dff504240ff544745ff574a48ff594b49ff5a4c4aff5b4e4cff5d504dff5d514eff5e5250ff625754ff6d625fff7f7471ff8c817eff8b807dff827775ff6a6662ff5f5b57ff58514eff554e4aff574c49ff534845ff544644ff554745ff524442ff514340ff4f4240ff4a3d
+3bff3f3633ff312825ff352d2affd3ccc8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffafdfdfffcfffffffbfffffffbfffffff8fdfcfff7fcfbfffafffffffafffffffdfffffff5f7f7ffd7d9d9ffb7b9b9ff989a9aff80
+8282ff767779ff757778ff86878aff9a9b9effbdbec2ffe4e4e9fffafbfffffdfefffffcfcfffffafafffff2f5f4fffdfffffffdfffffff6f9f8fff4f5f5fffefffffffffffffff2f2f2fffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffbfffefffcfffffffbfcfcfff8f9f9fffffffffffffffffffffffffffffffffffffffffff2f2f2ffa1a4a4ff353737ff020908ff141b1aff242e2cff222c2aff2a2f2cff2e3430ff343936ff373b38ff3a3d3aff3d403dff444542ff484947ff4c4c4aff4b4b49ff4d4b49ff4f4d4bff514d4bff4e4a48ff474341ff413d3bff353a3aff313636ff2c3331ff2a312fff27302fff242d2cff1e2827ff192322ff0d1715
+ff040d0cff3e4443ffb8bebdfffefffffffbfcfcfffbfafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffbfbfbfffffffffffefcfcfffffffffff7f4f4ff4a4748ff413d3eff514542ff574a48ff5d51
+4eff5f5351ff5d514fff5b4f4cff5b4f4cff5c504dff5c4f4dff5f5350ff645855ff6d615eff7c706dff897c7aff8b7f7dff877b78ff746b68ff675e5bff5c5350ff59514eff59504dff544b48ff4d4441ff4a403dff473d3aff463b38ff443936ff423734ff403532ff3c312eff372c29ff332825ffa3a3a3fffffffffffbfbfbfffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffbfbfbfffffffffffefefefffefefeffbdbdbdff4d403dff514341ff554845ff584b48ff594c4aff5a4d4bff5c4f4dff5d514eff5d514fff
+5f5350ff625754ff6c615eff7c716eff887d7aff877c7aff807572ff6a6562ff5f5b57ff59524eff564f4bff584d4aff544946ff554745ff554845ff524442ff504240ff4d413eff483b39ff3e3431ff322926ff37302dffd7d0ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffdfffffffdfffffff0f3f2fffdfffffffbffffffeff3f2fff3f9f8fffbfffffff4faf9ffc7cdccff868988ff626464ff3b3d3dff272929ff1f2121ff191b1bff17181aff191b1cff111215ff151619ff1c1d21ff2a2b2fff48484eff818287ffceced4fffdfdfffffdfffffff0f3f2fff4f7f6fffdfffffffbfdfdfffafcfbfffffffffffcfcfcfffffffffffffffffffffffffffffffffffffe
+fffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fbfbfffcfffffffafcfcfffefffffffffffffff8f8f8fff9f7f8fffefcfdffffffffffadadadff393c3bff0c0f0fff232b29ff262e2dff192321ff2a3432ff2b312dff323734ff393d3aff3c403dff3d403dff404340ff48
+4947ff4f4f4dff545351ff50504dff504d4bff514f4dff565251ff55514fff4f4b49ff494443ff373c3bff343938ff2f3635ff2e3534ff2c3534ff293331ff232d2cff1e2827ff222b29ff1e2725ff000302ff4d5352ffcacbcbfffafbfbfffffffffff6f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffffffffffdfdfffffffffff8f5f6ff555252ff413d3eff514542ff574b48ff5e524fff615452ff5f5350ff5c504dff5b4f4dff5c504dff5d504eff605451ff645855ff6c605eff7a6e6bff867a78ff887c7aff847775ff726966ff675e5bff5e5552ff5c5350ff5a514eff534a47ff4c423fff483f3cff473d3aff453b38
+ff433836ff413634ff3f3432ff3c312eff372b29ff332825ffacacacfffffffffffafafafffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffefefefffffffffff9f9f9fffffffffffdfdfdfffefefeffc8c8c8ff4e413eff514442ff564946ff594c49ff5a4d4bff5b4e4cff5d504dff5f514fff5e514fff615351ff645755ff6c5f5cff7a6d6bff867876ff867976ff7f7270ff6b6461ff615a57ff5b524fff594f4cff5a4e4bff574a48ff564745ff574846ff524341ff4f403eff4b3e3cff453836ff3c332fff322926ff39332fffdad4d0ffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffff2f5f4fff2f7f6fffbfffffffbffffffc7cdccff757b7aff3a403fff2c2e2dff1c1e1dff151717ff212323ff2f3231ff333535ff333536ff343637ff2f3033ff2e2f32ff
+292a2dff1e1f22ff141519ff1e1f24ff404045ff616166ffc4c8c7fff4f8f8fffcfffffff5f8f8fffdfffffffdfffffff7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fcfcfffdfffffffafafaffffffff
+fffffffffff3f1f2fffffdfeffffffffffb6b5b5ff4c4a4bff171919ff282a2aff242b2aff1f2524ff283130ff2c3534ff363a37ff3c413eff434744ff464a47ff464a47ff494c49ff525250ff585956ff565654ff51514fff4e4d4bff4f4e4cff545250ff565553ff535250ff504e4cff3d4446ff3a4043ff343d3fff333b3dff303a3cff2b3638ff243031ff1e2a2bff192426ff0e181aff1e2427ff101719ff5a5d60ffdee0
+e3fffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffefefefffffdfefffffefefffffffffffaf7f8ff605d5eff413e3eff524543ff594b49ff605350ff635653ff615451ff5e514eff5d504dff5d
+504dff5e514fff615452ff655855ff6c5f5dff796c6aff857875ff867976ff817471ff726765ff685d5bff605553ff5e5350ff5b504dff534845ff4b413eff483d3aff473c3aff453a38ff433835ff413633ff3f3431ff3b302dff362b28ff322724ffb7b7b7fffffffffffafafafffffffffffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffff7f7f7fffffffffffdfdfdffffffffffd2d2d2ff4e413fff524542ff574947ff5a4c4aff5b4e4bff5c4f4cff5e514eff5f5250ff5f524fff615452ff645755ff6b5e5bff776a68ff827472
+ff837573ff7d706eff6a6360ff615a56ff5b524fff59504dff5c4f4dff574b48ff574846ff574846ff524341ff4e3f3dff493d3aff433634ff3b322eff322926ff3c3532ffdfd8d4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdff
+fffffdfffffffbfdfdfffbffffffecf0f0ff9fa5a4ff3d4241ff121817ff1e2423ff232624ff282b29ff303232ff363838ff323534ff2b2d2dff2a2c2dff2d2f30ff333437ff2d2f31ff292a2dff27282bff222328ff1d1d22ff1b1b20ff1d1e23ff363939ff949897ffe7ebeafffcfffffffdfffffffdfffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffff8f8f8fffffffffffffffffff9f7f8ffffffffffe7e5e5ff4f4e4eff333132ff202221ff212323ff212726ff272d2cff2d3735ff313b39ff3d423fff414643ff464a47ff474b48ff484b48ff4a4d4aff50504eff545452ff4b4c49ff474745ff444441ff
+444341ff484644ff4b4947ff4b4a48ff4a4947ff454b4dff41474aff3c4446ff394244ff354042ff303b3cff273335ff202c2eff212c2dff0a1416ff20272aff10171aff0d0f13ff848689fffbf9fdfffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdffff
+fffdfffffffffffffffffffffffffffffffffffffffefcfcfffffffffffffffffffcf9faff6b6868ff413d3eff524543ff594c49ff615451ff645755ff625553ff5f524fff5d504eff5d504eff5f5250ff625552ff655856ff6c5e5cff786b68ff827573ff837674ff7e706eff716663ff675d5aff605552ff5c514fff584d4bff504543ff493f3cff473c3aff473c39ff453a37ff423835ff413633ff3e3431ff3b302dff352b
+28ff312724ffc0c0c0fffffffffff9f9f9fffffffffffbfbfbfffefefefffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffff6
+f6f6fffffffffffdfdfdffffffffffd9d9d9ff4e423fff524643ff574a48ff5a4d4bff5b4e4cff5d4f4dff5f514fff615350ff615250ff635452ff675755ff6c5d5bff786765ff82716fff837271ff7e6e6cff6d6260ff635956ff5e524fff5d504eff5e4f4dff5a4b49ff594846ff594846ff544442ff4f403eff493d3aff433634ff3b322fff342b28ff3f3935ffe2dcd9ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffffffeef1f1fffdffffffdbe0dfff6a6f6eff161b1aff131817ff282e2dff2b3130ff252926ff323532ff3c3f3cff3c3f3cff393c3aff3d403eff454747ff4a4c4cff3b3d3eff363839ff36383aff3c3d3fff3b3c40ff313235ff232427
+ff1a1b1fff151a19ff0a0f0fff646868ffdce0e0fff9fcfcffedf1f0fffafcfcfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefcfffefffefff9faf8fffffffefffdfbf9fffffffefff6f2f1ff8d8988ff2826
+25ff3c3938ff232322ff151513ff2f3532ff383e3bff2b3430ff37403dff414542ff414542ff424542ff414542ff414441ff414441ff414441ff424442ff3d3f3cff3b3e3bff3c3d3aff3b3c39ff3c3c3aff3c3d3aff3d3d3bff3d3d3bff3c4347ff3a4145ff374043ff384144ff374245ff333f42ff2d393cff273336ff2d393bff263134ff0a1215ff141c20ff070b0fff292c30ffb7b7bcfff6f6fbffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffcfbfbfffffffffffffefffffdfafbff747071ff403d3eff544543ff5b4c4aff635452ff675856ff655654ff615250ff5f504eff5f504eff615351ff645553ff665856ff6c5e5bff
+786967ff827371ff827371ff7c6e6cff736562ff6a5b59ff615351ff5d4f4dff574a48ff4f4240ff493d3aff483c39ff473b39ff453a37ff423735ff403533ff3e3330ff3a302dff342b28ff312724ffc7c7c7fffffffffff8f8f8fffffffffff9f9f9fffdfdfdfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffff5f5f5fffffffffffdfdfdffffffffffddddddff4f4240ff524643ff574a48ff5a4d4bff5c4f4cff5d504dff5f514fff615351ff615250ff635553ff675755ff6c5c5aff766664ff806f6eff82716fff7d6d6bff6c625fff635956ff5e52
+4fff5d514eff5f504eff5a4b49ff594847ff594846ff554543ff51413fff4a3d3bff433734ff3c3330ff362d2aff413c38ffe5e0dcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdffffffb7babaff4d5150ff1a1e1dff1b
+201fff292e2dff282e2dff202625ff333733ff3c3f3cff404341ff3f423fff424543ff484b49ff454747ff3b3d3dff454748ff404243ff3c3d40ff37383bff2f3134ff292a2dff2a2b2eff2f3034ff222726ff121716ff070b0aff424746ffbbbfbefffcfffffffdfffffff1f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f9f7fffefffefffcfdfbfffffffefffbf8f7fffffffeffd7d4d3ff2e2a29ff3a3836ff22201eff232322ff313130ff282e2bff2d3330ff37403cff353d3aff454946ff424643ff404340ff3e413fff3d403eff3b3e3cff393c39ff363936ff3b3d3bff3d3f3cff3f403eff3f403dff3c3d3bff3a3b38ff393a38ff393a38
+ff2e3539ff2e3538ff2e373aff333c3fff364144ff374245ff323f42ff2e3b3dff1b2729ff2a3538ff222a2dff0c1417ff1b1f23ff101317ff45464afff4f5f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffff
+fffffcfafbfffffffffffffefefffefbfcff787575ff403d3eff544543ff5b4c4aff635553ff675856ff655754ff615351ff5f504eff5f504eff625351ff645553ff665856ff6c5d5bff776966ff817270ff817270ff7b6c6aff736562ff695b59ff605250ff5b4d4bff554846ff4e403eff483c39ff483c39ff473b39ff453937ff423734ff403532ff3d3330ff3a2f2dff342a27ff302724ffcbcbcbfffffffffff8f8f8ffff
+fffffff9f9f9fffdfdfdfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffffffffffffffffff9f9f9ffeaeaeaff
+5c514eff473c39ff5e5250ff5c504eff5b4e4cff665956ff5e504dff665755ff645351ff645351ff685654ff715e5dff7b6867ff816d6cff806c6aff7c6867ff6d5f5dff665956ff625250ff5f4f4dff62504eff604f4dff5d4b49ff584644ff4e3d3bff51403eff473b38ff3e312fff443c39ff2c2421ff4d4845ffe4e0dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffdfdfdfffafafafffcfdfdfffdffffffc1c4c3ff505353ff1c2020ff232727ff1b201fff292e2dff3d4241ff292f2eff363a36ff3b3f3aff424642ff4a4d49ff4f524fff505350ff505251ff4f5150ff4a4d4cff444746ff3f4142ff3e4041ff3f4142ff3b3d3eff323335ff292a2cff242b2aff1a2120ff1e2423ff161c
+1bff323737ffabb0b0fffcfffffff8fbfbfffdfffffff6f8f8fffdfdfdfffffffffffffffffffcfcfcfff7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffefbfffffffcfffffdfbfffaf6f4ff625d5bff373331ff383532ff2f2b29ff262724ff2b2c29ff303532ff37
+3c38ff3b423eff404844ff3f423fff3d403dff3a3d3aff383b38ff363937ff373a37ff373b38ff383c39ff3a3e3bff3a3e3bff3a3e3bff393e3bff383d3aff373c39ff353a37ff353a37ff2e3537ff2e3436ff2c3436ff2e3638ff2f3a3cff313c3eff313c3eff303c3dff2a3436ff2d3739ff202729ff192022ff1b1d20ff0f1215ff39383cff8e8d91fffffffffffbfbfbfff7f7f7fffffffffffefefefffbfbfbffffffffff
+fefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffaf7f8ffffffffff747071ff434041ff50403eff635452ff635351ff6c5d5bff645553ff5d4e4cff6d5e5cff594a48ff645553ff635452ff655654ff6d5d5bff786866ff7e6f6dff7f706eff7d6e6cff766463
+ff6e5c5bff635150ff594746ff524240ff50403eff4e403eff4e403dff4c403dff443835ff4a3f3cff3b302eff3e3431ff322825ff3c3330ff2f2623ffdbdbdbfff1f1f1fffffffffffffffffffdfdfdfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffffffffffffffffffbfbfbffefefefff6e6360ff544946ff473b39ff5e5250ff554745ff615452ff635452ff5d4f4dff645351ff625150ff645150ff695655ff715e5cff766261ff766261ff745f5eff685a58ff645654ff615250ff60514fff635150ff61504eff5c4a48ff57
+4443ff483735ff554543ff4d403eff3d302eff332b28ff3c3430ff5f5a56fffef9f5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffff4f4f4fffffffffffefefefffdffffffcbccccff666969ff242726ff121615ff242928ff222726ff2c3131ff3c4241ff333837ff3f433fff
+434742ff494c49ff4f524eff535653ff545855ff545755ff545755ff505352ff4a4d4cff444647ff424445ff434446ff3f4142ff37383aff2f3032ff232928ff272d2cff212625ff0f1514ff171c1bff575c5bffbec2c1fffcfffffff9fcfbfffdfffffffffffffff9f9f9fffcfcfcfffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffdfffdfefbfffefdfafffffffdfffcf9f7ffc3c0beff484442ff35312fff363331ff2e2b29ff272825ff2d2e2bff333834ff373c39ff373f3bff39413dff383b38ff373a37ff373a37ff363937ff373a37ff393c39ff3a3e3bff3b3f3cff393d3aff393d3aff393d3aff393d3aff383d3aff373c39ff353b37ff353a37ff32393bff303739ff2d3537ff2d3537ff2c36
+38ff2b3637ff293536ff273334ff242e30ff293435ff21282aff1c2325ff202225ff0d1013ff1f1e22ff58575affe9e9e9fffffffffffafafafffffffffffefefefff9f9f9fffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffdfdfdfffefcfdfffffefefffbf9f9ffffffffff94
+9191ff444041ff554543ff61514fff5b4c4aff695957ff675755ff5b4c4aff675755ff625250ff635351ff625351ff645452ff6b5c5aff746462ff796967ff786967ff766664ff6e5c5aff675553ff5d4c4aff554442ff50403eff4e3e3cff4c3d3bff4b3d3aff463a37ff433634ff443936ff372c2aff3e3532ff382e2bff352c28ff443b38ffe8e8e8fff8f8f8fffffffffffefefefffcfcfcfffffffffffffffffffdfdfdff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffefefefffffffffffffffffffdfdfdfff7f7f7ff9d928fff5b504dff584d4aff645956ff635553
+ff665956ff685856ff675755ff6e5c5aff6b5957ff6b5655ff6d5958ff745e5dff796261ff7a6362ff796261ff6e5d5bff6b5a58ff685554ff655351ff64504fff5e4a49ff564241ff503b3aff42312fff554442ff453836ff3e312fff302926ff2f2824ff8c8884fffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffefefefffffffffff8f8f8fffdfdfdfffffffffff0f2f2ff737575ff272a2aff171a1aff1e2221ff2f3333ff2f3433ff313736ff3a403fff3d4342ff474b45ff484d47ff4b4f49ff4d514cff4e524eff4f524eff4e514eff4d514eff4e504fff484b49ff434545ff424444ff444646ff424544ff3d3f40ff37393aff272f2eff323a39ff242b2aff171e1dff111716ff0e1413ff626766ffedf2f1fff7
+fbfafffcfffffffdfffffff4f6f6fffcfdfdfffefffffffffffffffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfff9fbf6fffffefafffffffcfff5f1eeff807c78ff322d2aff3a3532ff3a3632ff322e2aff2c2c28ff32322eff373b37ff383c38ff333a35ff323934ff353533ff353633ff
+353735ff363836ff373a37ff383c39ff383d3aff393e3bff363b38ff363c38ff353c39ff363d39ff353c39ff343c38ff333b37ff323a37ff343737ff313534ff2d3332ff2b3130ff293130ff272f2eff232d2bff212b29ff28302fff2d3634ff272b2bff232827ff2a2a2aff191919ff161414ff312e2effb0b0b0fffffffffffbfbfbfffffffffffffffffffbfbfbfffefefeffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffff8f8f8fffefcfcfffffffffffffdfdffffffffffbcb9b9ff403d3dff594847ff62514fff5c4b49ff6a5957ff6f5e5cff5f4e4cff635251ff6c5b59ff6a5957ff695856ff695857ff6d5c5aff72615fff726160ff705f5dff6c5b59ff644f4dff5f4a49ff584443ff533f3eff4f3d3cff4e3c
+3aff4a3b39ff493937ff423533ff443734ff3e3330ff382d2aff3d3431ff39302dff2c2421ff706865fff7f7f7fffffffffffffffffffcfcfcfffbfbfbfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffefefeffffffffffffffffffffffffffc9bfbcff544a47ff685d5aff5b504dff6d5f5dff615452ff5d4d4bff6c5d5bff6a5856ff685654ff695554ff6b5655ff715a59ff735c5bff745c5cff735b5bff756462ff705f5dff6a5756ff62504eff5c4947ff54403fff4c3836ff453130ff473634ff4e3d3bff3a2d2bff413432ff
+37302dff2b2421ffd0ccc8fffffcf8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fffffffffff3f3f3ffffffffff9ea0a0ff393b3aff202323ff292c2cff2e3232ff333737ff373c3bff383d3cff3d4241ff474d4cff454943ff444843ff434742ff424641ff404440ff3f433e
+ff3e413eff3d403dff414442ff3d403eff3a3d3cff3b3e3dff3f4141ff414443ff3f4142ff3d3f40ff303837ff303736ff242b2aff272e2dff232928ff010807ff252a29ff8c9190fff5f9f8fffcfffffff6f9f8fffcfefefffefffffff7f9f8fff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffcfffafcf7fffffffcfffffffcffe2dedbff514c49ff2f2a27ff413b38ff3f3c38ff373330ff30302cff353531ff363a36ff343834ff2d342fff2a312cff343533ff353633ff353734ff363835ff363936ff363936ff343936ff343936ff343a36ff353a37ff343b38ff343b38ff343b38ff333b37ff323a37ff313a36ff323535ff2f3333ff2c3130ff2b3030ff28312fff28302eff242e2cff222c2aff28302fff2c
+3433ff262b2aff212625ff2b2b2bff252525ff221f1fff2b2828ff727272fffefefefffbfbfbfffffffffffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffff5f5f5ffffffffffffffffffffffffffffffffffe0dcddff4c4949ff4e3d3bff5b4a48ff5e4d4bff
+695856ff705f5dff645351ff604f4dff6a5958ff695856ff675654ff675654ff675654ff675654ff635251ff5e4d4bff594847ff584342ff56403fff523e3dff503c3bff4e3c3aff4d3b39ff493937ff473735ff433633ff453836ff3c312eff3e3431ff39302dff2f2623ff2e2623ffaca4a0fffffffffffffffffffffffffffcfcfcfffdfdfdfffffffffffffffffffafafaffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffefefefffffffffffffffffff7edeaff817774ff514644ff615653ff716461ff675a57ff6e5d5bff746462ff725f5eff725f
+5eff765f5eff76605fff78605fff775e5dff755b5bff725858ff6b5857ff665351ff5f4a49ff574241ff523c3bff4d3736ff483332ff463130ff503e3cff443231ff3c302dff3b2e2cff261f1bff736c69fffffdf9fffcf9f5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffafafaffff
+fffffff9f9f9ffe1e1e1ff4c4e4eff2e2f2fff202322ff2c2f2eff2a2e2eff2a2e2eff373c3bff3d4241ff3e4443ff474d4cff3c403aff3b3f39ff3a3e38ff393d37ff373b36ff363a35ff363935ff363935ff393c39ff363937ff353737ff363838ff393c3bff3c3e3eff3b3e3dff3a3c3cff394140ff28302fff222a29ff29312fff222928ff0f1615ff141a19ff2b3130ffd2d7d6fffbfffffff9fcfcfffbfffefffdffffff
+f4f6f6fff9fbfbfffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffef9ffbab6b2ff3c3733ff36312cff403a36ff44403cff3c3834ff35342fff363530ff333631ff2e322cff282e28ff262d27ff323331ff333432ff343533ff363734ff353835ff353835ff333835
+ff333835ff323936ff333a36ff313a37ff323a37ff303a36ff303a36ff2e3935ff2d3834ff353732ff333430ff30332eff2f322dff2d332eff2c322cff29302bff272e29ff222722ff282d28ff292a26ff252722ff2d2a27ff2f2c28ff302b28ff322d29ff454545ffe2e2e2fffdfdfdfffefefefffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcff
+fffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffff8f8f8fffffffffffffffffffffffffffffcfdfffffcfcff807d7dff3b2928ff463433ff544240ff5b4947ff614f4eff604e4cff594745ff5c4a48ff594745ff584645ff584644ff574543ff554342ff52403eff4e3c3aff4b3937ff533c3bff523b3aff503939ff503a39ff4e3a39ff4e3a38ff493836ff473534ff433533ff443634ff3a
+2f2dff423735ff302724ff251c19ff49413effdfd8d5fffefefefffffffffffefefefffefefefffffffffffffffffffefefefff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffefefefffdfdfdfffefefefffffffffffffffffffefefefffffffffffffffffffffffcffd0c6c3ff3a2f2cff675c59ff5f524fff645754ff7d6d6bff6a5a58ff725f5dff735f5eff765f5eff755e5dff735b5aff6e5555ff6b5150ff674d4dff523f3dff4f3c3aff4c3736ff483332ff483231ff493332ff4b3635ff4d3837ff493735ff382624ff3e322fff2f2320ff241d1affdcd5d2fffffffcfffffdf9ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f0f0fffffffffffffffffffdfdfdff9a9a9aff2a2c2cff3b3d3cff222525ff2a2c2cff272b2bff292e2dff363b3bff3a3f3fff363c3bff383e3dff353933ff353a33ff363a34ff373b35ff383c37ff393d38ff3a3d3aff3a3e3aff393c3aff383b38ff3638
+38ff363838ff363838ff363838ff343636ff313433ff404847ff2c3433ff2b3331ff262e2dff151c1bff181f1eff1f2524ff0e1413ff8a8e8dfff2f6f5fffcfffffff4f7f7fff9fbfbfffbfdfdfffdfffffff8fafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffaf8f3ff85
+807cff342f2bff3a3430ff3b3531ff44403cff403c38ff3b3a35ff3b3a35ff343731ff2d302bff282e28ff29302aff2f302eff30312fff323230ff343432ff343734ff363936ff363b38ff373c39ff333936ff333a36ff313a36ff313a36ff2f3935ff2e3834ff2c3632ff2b3632ff30322dff2e2f2bff2b2d29ff2a2d28ff282d28ff272c27ff232a25ff212823ff212621ff282d28ff333530ff373834ff393632ff373531ff
+37312eff322d2aff313131ffbbbbbbfffffffffffdfdfdfffffffffffcfcfcfffdfdfdfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffefefefffffffffffefcfdfffffcfdfffefbfcfffffeffffcac7c7ff4c3a38ff342221ff3f2d2bff473533ff4a3837ff534140ff4e3c3bff4b3938
+ff4c3a38ff4c3a38ff4c3a39ff4d3b39ff4c3a39ff4c3a38ff4b3938ff4b3937ff513938ff4f3837ff4d3736ff4e3837ff4d3937ff4c3837ff483635ff453432ff3f312fff403230ff372c29ff3d3230ff2b221fff322a27ff867e7bfffdf5f2fffbfbfbfffcfcfcfffdfdfdfffffffffffffffffffffffffffdfdfdfffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffcfcfcfffffffffffffffffffefefefffdfdfdfffffffffffffbf8fff6ece9ff726765ff514644ff3d302eff453836ff5d4c4bff493937ff55403fff554140ff58403fff563e3dff553b3aff513737ff50
+3535ff4f3434ff463130ff463130ff46302fff452f2eff46302fff493231ff4b3534ff4e3837ff3d2a29ff392725ff352826ff3a2e2bff7e7773fffffffcfffdfaf6fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffafafafffffffffffbfbfbffdadadaff585858ff2d2f2fff404242ff
+2c2f2fff2d3030ff303433ff343837ff343938ff323736ff2f3534ff2e3433ff343831ff353932ff373b34ff393d36ff3a3e38ff3b3f39ff3b3f3aff3b3f3aff383b38ff373b38ff363937ff363937ff343736ff323434ff2f3131ff2c2e2eff353e3dff2e3735ff2f3736ff28302fff181f1eff19211fff202625ff191f1eff3c4140ffd2d7d6fffcfffffff4f8f7fff8fbfafffbfefdfffdfffffff6f9f8ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffafffffffafffcfaf5ff544f4aff342f2bff3c3632ff3f3834ff45403cff47423eff484742ff4a4944ff3f423cff373a34ff333932ff373d37ff323330ff323230ff323330ff323331ff323633ff353835ff353b38ff373c39ff333a37ff333a37ff313a36ff3039
+35ff2d3834ff2b3632ff283430ff27332fff2f2e27ff2e2d26ff2b2c25ff2c2d25ff2c2f27ff2d2f28ff2a2f27ff292d25ff31332cff33352eff42413aff4a4a43ff49453fff433e38ff3f3731ff352e28ff2a2a2aff8f8f8ffffffffffffcfcfcfffffffffffbfbfbfffffffffffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffd
+fffffffffffffffffffffffffffffffffffffffffffffffbf9f9fffffefffffefcfcfffffefffffbf8f8ff968382ff412f2eff372523ff433130ff412e2dff4a3836ff4a3736ff483635ff4c3a38ff4c3a38ff4c3938ff4b3937ff4b3837ff4c3938ff4d3b39ff4f3c3bff513837ff4f3636ff4d3534ff4d3534ff4b3635ff4a3534ff463432ff443230ff3b2c2aff3f312fff342927ff342926ff2f2724ff5c5450ffd7cfccff
+fffefbfffdfdfdfffdfdfdfffefefefffffffffffffffffffefefefffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffafafaffffffff
+fffffffffffefefefffcfcfcfffdfdfdfffffffcfffffffcffe8dddaff4b413eff3d2f2dff3c2f2cff41312fff443432ff493534ff493534ff4c3534ff4b3433ff4c3232ff4d3332ff503434ff513636ff483433ff493433ff4b3534ff4a3433ff493231ff483130ff483231ff493332ff3a2826ff473433ff2b1e1cff574a48fff7f0edfffaf3f0fffffffbfffffffcffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffafafaffffffffffaaaaaaff343434ff363838ff3b3d3dff2e3131ff2c2f2eff333837ff393d3cff2e3433ff2b302fff313736ff343938ff353a33ff363b34ff373c35ff383d36ff383c37ff373b35ff363935ff353834ff333633ff333733ff343735ff343735ff343636ff313333ff2e3030ff2b
+2d2dff212a29ff252e2dff28312fff2a3331ff262e2cff161e1cff121918ff1e2423ff0f1413ffb1b6b6fff1f5f4fffcfffffffdfffffff3f6f6fffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff9f8f3fffefbf6fffffefaff39342fff37322dff3f3935ff49423eff47423dff
+4e4944ff54534eff585752ff4c504aff424540ff3e443eff434a43ff383836ff363734ff343532ff333331ff313431ff323532ff323834ff343936ff333b38ff333b37ff313a37ff2f3935ff2c3733ff2a3531ff27332fff25322dff33322bff32312bff32332bff35362fff383a33ff3b3e36ff3a3f37ff3a3f37ff3c3f37ff373932ff43433cff4e4e47ff4c4741ff443f39ff403933ff362e28ff272727ff707070ffffffff
+fffafafafffffffffffdfdfdfffffffffffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffcfcfcfffffffffffffffffffefcfcfffffffffffefbfcfff8f5f5fffffeffffe1cfceff5c4948ff3c2a28ff4b3937ff43312fff493735ff4b3937ff4e3c3aff4e3c3aff4d3b39ff4b3937ff483634ff4634
+32ff463432ff493635ff4b3837ff513837ff4e3635ff4c3433ff4b3332ff493433ff483332ff443230ff42302eff382a28ff413331ff352a27ff2d221fff38302dff837a77fffffffcfffffffbfffffffffffffffffffffffffffffffffffdfdfdfffcfcfcfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf9fffffffbfffbf8f3ffb1ada9ff58524dff302a26ff372e2aff3c332fff423532ff433633ff443331ff3f2f2cff43302eff493634ff4c3836ff4a3634ff492e2dff523837ff533b39ff
+4d3533ff473331ff493533ff40322fff372926ff3c3430ff19110dff4c4945ffc7c5c0fffffffbfffffffbfff9fdf7fffdfffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffdfbfffffffffffffdfafaff686360ff3d3935ff443f37ff454039ff423e35ff3e3a31ff37362dff333229ff2f312a
+ff31342dff343731ff363a34ff303534ff303535ff323736ff333837ff343939ff343939ff343938ff333837ff303535ff313636ff323736ff303535ff2e3332ff2b3030ff2b302fff2b302fff252925ff252924ff252925ff262925ff262926ff252826ff252626ff232525ff363636ff535353fffaf9fcfffffefffff9f7fbfff9f8fcfffffdfffffdfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfefbffd4d5d2ff3c3831ff3b3730ff3c342aff4b4339ff4c4237ff53493dff564b41ff53483dff4f443cff50453dff514740ff50463fff4d483fff4b463cff464037ff403b31ff3c372eff3d382fff423d33ff464137ff49443bff4a443bff49443bff474239ff453f36ff443f35ff453f36ff464138ff4f
+483cff4f483bff50463aff4f4539ff504338ff4f4237ff4f4137ff4f4036ff4d3f34ff4c3e34ff4b4036ff4f4339ff4e463cff494136ff3c372cff332d22ff2d2d2dff4c4c4cfffffffffffffffffff9f9f9fffffffffff9f9f9fffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffbffaaa5a1ff48413dff2f2824ff3f3532ff403632ff423331ff4c3e3bff513d3bff493634ff4a3231ff4d3534ff533837ff4f3433ff4c2f2fff4a2d2dff543e3cff4b3433ff442f2dff442f2dff42302dff3f2d2aff3d2e2bff40312eff322622ff3a2f2bff312925ff332a26ff79736fffefe9e5fffffffbfff9f4f0ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf8
+f3fffcfaf5fffffffbfffffffbffaea7a3ff49423eff2b221eff3a302dff3c2f2cff3f322fff473734ff4f3e3cff554340ff53413eff4d3937ff473331ff543a39ff4c3231ff493130ff4f3736ff4b3735ff3f2c2aff332522ff332522ff1a120eff655c59ffc2c0bbfffcf9f4fffdfff9fffbfcf7fffdfffbfffdfffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefffffdfcfffffffdfeffe9e6e7ff585450ff3a3532ff454039ff47423bff464239ff433f36ff3d3c33ff38372eff31332cff2e3029ff2b2e28ff2a2e28ff313635ff313635ff313635ff333837ff343938ff353a39ff343938ff333838ff313635ff313635ff303534ff2e3332ff2b3030ff292e2dff282d2cff272c2cff252925ff262a26ff282b28ff2b2e2aff
+2e302eff2f322fff2f3131ff2f3030ff2a2a2aff404040ffe1e0e3fffcfbfefffbfafefffbfafefffffdfffffdfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfefbffcacbc8ff3a362fff39352eff40382eff4a4238ff4c4136ff52483dff554a40ff52473dff4e433bff4f453c
+ff50463fff4f453eff4f4a41ff4e4940ff4c473eff4b463cff4c473dff514c43ff59534aff5e5950ff676258ff666158ff645f56ff5f5a51ff58534aff534e44ff504b42ff4f4a41ff4f483bff4e473bff4f463aff4e4539ff4f4338ff4e4237ff4f4036ff4e4036ff4c3e34ff4b3d33ff4a3e34ff4c4137ff4b4339ff473f35ff3c362cff342e24ff262626ff404040fff8f8f8fffffffffff7f7f7fffffffffffdfdfdfffefe
+fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef9f4fffffffbffa39d99ff302925ff312723ff433935ff3c2d2bff443533ff4d3a38ff4a3735ff4d3533ff4f3736ff513635ff513635ff563938ff5c3f3eff3b2523ff44
+2e2cff4b3634ff4c3735ff473432ff43312eff3e2f2cff3d2d2bff433734ff372b28ff241b17ff665d59ffded8d4fffffffbfff8f3effffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfff9f9f4fffdfcf7fffffffbfffffef9ffcac7c2ff76706cff2b2420ff352b27ff342a27ff3a2e2bff3f3330ff40312eff3e2f2dff483936ff574745ff4f3c3aff412e2cff402f2dff4b3a38ff40322fff2b1d1aff2b211dff413734
+ff6d6763ffcdc7c3fffffffbfffffffbfff7f8f3fffffffbfffffffbfffdfef9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffdfffffcf7f8ffcec9caff463f3bff38312dff4a423aff4c443cff524b41ff514a40ff4e483fff4a453bff423f37ff3c3931ff34342dff313029ff343531ff3334
+30ff333430ff353632ff373935ff393a36ff383935ff363734ff32332fff31322eff30312dff2e2f2cff2d2e2bff2d2e2aff2c2e2aff2c2d2aff31312aff32322bff33332cff373730ff3b3a35ff3d3c37ff3c3b37ff3a3936ff272524ff2f2d2cffc4c2c2fffbf9fafffffefffffffefffffffefffffefbfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffefefefffffefbffbfbdbaff3b342eff37312aff483d33ff4a3f35ff4f4136ff55483dff584a40ff55473cff51433aff52443bff52453eff51443dff50473cff51483cff51493dff544b3fff595044ff62594dff6c6458ff736b5fff80776bff7f776bff7c7367ff746c60ff6a6155ff60574bff595044ff554d41ff4f473aff4f4739ff504539ff4f4437ff504237ff
+4f4135ff4f4035ff4f3f34ff4d3e33ff4b3c31ff473b31ff493d33ff473f34ff443c31ff3c362bff363025ff252525ff373737fff0f0f0fffffffffff8f8f8fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdf9fffffffbfff8f5f0ffa4a19cff3e3834ff251f1bff3d322fff382d29ff40302eff443532ff4f3b39ff533f3dff513a39ff4b3433ff4e3635ff553c3bff5a4846ff554341ff4a3937ff3f2e2cff3b2c29ff3d2e2cff392d2aff342825ff261d1aff302723ff6e6964ffd6d0ccfffffffbfffffffbfff9f6f2fffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcf7fffffffbfffffffbfffcfaf6fffffffbffff
+fffbffe0dad6ff908a86ff4c423fff3d3330ff3a2e2bff443734ff483a37ff3e2f2dff392a27ff3d2d2aff42302eff3b2826ff3b2a28ff3f2e2cff332522ff322422ff554b48ff877c79ffebe5e1fffffffbfffffffbfff7f5f0fffffffbfffffffbfffefffafffbfcf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffdfffffffefffffbf6f7ffb3aeafff37312dff38312dff4b433bff4c443cff534c43ff544d43ff534d44ff524d43ff4d4a42ff49463eff43423bff403f38ff343531ff333431ff343531ff373835ff3c3d39ff3e3f3bff3c3d3aff3a3b37ff373835ff353633ff343531ff343531ff363734ff383936ff3a3b37ff3a3b38ff3e3e36ff3c3c35ff3c3c36ff3f3e38ff41403bff41403bff3d3c39ff393835ff302e2d
+ff292726ffa8a6a7fffcfbfbfffffefffffffefffffdfbfefffefbfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffcffb6b4b2ff3b352eff342e27ff4b4137ff493e34ff514438ff574a3fff5a4c42ff57493eff52443cff53453dff53463fff53463eff50473cff51483dff524a
+3eff554d41ff5b5347ff655c50ff70675bff776f63ff867d71ff867d71ff827a6eff7a7266ff6e665aff62594eff595044ff544b3fff4f4739ff4f4639ff4f4538ff4e4437ff504236ff4e4135ff4f4035ff4f3f34ff4c3d33ff4a3b31ff463a30ff45392fff433a30ff40382eff3a352aff373126ff2b2b2bff3b3b3bffefefeffffffffffffafafafffffffffffffffffff9f9f9ffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f7f2fffffffbfffffffbfff6f3eeffb9b2aeff514a46ff241915ff3d322fff3c2d2aff3b2c29ff412d2cff43302eff462f2eff462f2eff4e3634ff573f3eff3a2725ff3d2b28ff443330ff493836ff423330ff372825ff
+322622ff362a27ff322925ff817874ffe6e0dcfffffffbfffffdf8fffffcf7fffffffbfffefcf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fcf7fff9fcf8fffffffcfffffffcfffafbf7fffdfffafffffffcfffdfbf7ffc4c0bdff86817eff49423fff332c29ff39302eff3c3431ff3d3431ff3f3533ff3a3431ff342e2bff2e2825ff322c29ff4a4441ff837e7bffd2cecafffffffcfffffffcfffffffcfffcfbf7fffdfcf8ffffff
+fcfffffffcfff7f8f4fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfffffff8f9ffa49d9eff362c28ff3c322eff4d4139ff4d4139ff52453aff52463bff52473cff53473cff51483eff51473dff4f473eff4f473eff453f36ff453f36ff484239ff4f4940ff575147ff59534aff57
+5148ff534d44ff524c42ff4e483fff4a443bff49433aff4c463dff4e483fff504a41ff504a40ff4b4439ff484236ff474136ff484237ff4a443bff484239ff413c35ff3c362fff3b3631ff292420ff938f8dfffffaf8fffffffefffffffefffdf9f9fffffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffdfbfbfffffffdffbdb7b5ff403630ff372d27ff4e4036ff4e3f35ff58463bff5e4d41ff614f43ff5e4b3fff59473cff5a473dff5b483fff5a483eff5a4c3cff5b4d3dff5c4e3eff5f5141ff655747ff6f6151ff796b5bff817363ff918373ff918373ff8d8070ff857767ff786a5aff6a5d4dff605242ff5a4c3cff524838ff524738ff534637ff514536ff524335ff514134ff514034ff514034ff4e3d33ff4c3c31
+ff473a2fff45382dff40372dff3d342bff393229ff373027ff2a2a2aff444444ffefefeffffffffffffdfdfdfffefefefffffffffffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffdfefaffffff
+fcfffbf9f6ffc4c2beff75706cff433e3bff362d2aff352c29ff3d302eff473a38ff4e3f3dff493938ff423130ff3d2c2bff514c49ff393431ff2d2825ff342e2bff342e2bff2b2623ff332e2aff47413effa09a97fff9f3f0fffffffcfff6f1eefffffbf8fffffffcfffff9f6fffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffcfff4f8f3fff6f8f4fffffffcfffffffcfffffffcfffffffcfffffffbfffffffcfffcf8f5ff
+dfd8d5ffc2bcb9ffa29a97ff7a716fff5a504eff4a413eff5f5855ff7b7471ffa09a97ffc6c0bdffe9e4e1fffffffcfffffffcfffffffcfffdfaf7fffffffbfffefdfafffffffbfffffffcfffdfffbfff9fbf7fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfffffffafbff9a9294
+ff372d29ff3e3430ff4a3e36ff4a3f36ff51453aff51443aff504539ff50453aff4f453bff50473dff4f473eff50483fff524c43ff544e45ff5a544bff655f56ff706a61ff746e65ff706a61ff6a655bff605a50ff59534aff514b42ff4d473eff4d473eff4e483fff4d473eff4c463cff494236ff464034ff453e33ff484136ff4b453cff4a443bff423d36ff3c362fff38332fff26211cff807c7afffffaf8fffffbfaffffff
+fefffcf8f9fffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfdfffffffdffcbc6c4ff453b35ff392f29ff493b31ff514239ff5a493dff604f43ff645145ff5f4d41ff5b483eff5b493fff5c4a41ff5b4940ff584a3aff594b3bff5a4d3dff5e5040ff635545ff6d5f4fff786a5aff80
+7262ff908272ff8f8171ff8b7e6eff837565ff766858ff685a4aff5e5040ff584b3bff534939ff534839ff544738ff524637ff534436ff524335ff524135ff524135ff4f3e34ff4d3d32ff483b31ff45382eff3e352bff3b3228ff363026ff352f25ff232323ff525252fff1f1f1fffffffffffefefefffdfdfdfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfff5f6f2fffffffcfffffffcfff4f2eefffffffcfff9f3f0ffa09b98ff524947ff3f3634ff312422ff2f2220ff382927ff3e2f2dff42312fff433230ff302a27ff312c29ff38322fff36302dff2a2421ff3a3531ff847e7bffd3cdcafffffcf9fffffffcfffffbf8
+fffcf6f3fffffffcfffffffcfffef9f6fffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fdf9fffbfffdfffbfffdfffbfffdfff6faf6fff6faf7fffdfffcfff7f9f6fff1f2effffffffdfffffffdfffffffdfffcfaf8fff4f2f0fffbf8f6fffffffdfff5f8f5fffafdfafffbfffbfffbfefbfffefffdfffefffdfffefffcfff2f3f0fffffffdfffefffcfffdfefbfffafbf8fff8f9f6fffefffcfffffffdfff7f7f4ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffcfffffffbfbff958c8cff3b2f2aff40342fff493a30ff4d3e34ff57463aff58473aff59473aff59483aff59483cff59493cff58493dff58493dff5e5142ff625445ff6b5e4fff7a6d5eff887b6cff8d8071ff887b6cff817465ff6c5f50ff635647ff594c3dff
+534636ff524535ff514435ff4f4233ff4d4031ff4f4131ff4c3e2eff493d2eff4d4132ff514538ff504538ff473d33ff3f352bff372f28ff2a221bff7b7571fffffffbfffef9f7fffffffdfffbf7f6fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffefffffffefeffe0d8d7ff4c3f3a
+ff3e312cff453429ff57463cff5e493cff644f42ff685144ff644d3fff5f483cff60493cff60493eff5f483dff5d4a36ff5e4a36ff5e4b37ff604d39ff65513dff6d5a46ff776450ff7f6b57ff8a7662ff8a7662ff87735fff806c59ff75614eff6b5743ff634f3bff5f4b37ff584a38ff584a38ff584837ff574736ff584536ff564435ff564235ff564235ff523f34ff513f34ff4b3d33ff47392fff3f352bff3a3027ff352e
+25ff332c23ff232323ff686868fffafafafffdfdfdfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff5f1fffbfffdfffafffcfff1f6f2fffdfffdfffdfffdfffffffdfffffffdfff9
+f6f4ffc8c5c2ff898381ff56504eff3d3433ff322a28ff322927ff342b2aff383231ff2e2927ff383432ff696563ffaeaaa8ffe4e0defffaf8f5fffdfcf9fffffffdffebece9fff7f8f5fffffffdfffdfffdfff6f9f5fffdfffdfffcfffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdfff3f8f5fff2f7f3fffafffcfffbfffbfffcfffcfffefffdfffefffdfffffffdfffffffdfffefdfafffcfaf8fffffefcfffffffdfffffffd
+fffdfaf8fffdfffdfffdfffdfffdfffdfffdfffdfff8faf7fff6f9f6fffffffdfffffffdfffffffdfff7f8f5fffffffdfffffffdfffcfdfafffdfefbfffffffdfffcfcf9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffcfffffffbfbff918888ff3b2f2aff3f332eff46362cff4d3e34ff5342
+35ff554437ff584639ff5a483bff5a493cff59493cff57483cff57473bff5a4d3dff5e5142ff6a5d4eff7b6e5fff8c7e6fff908374ff8b7e6fff837667ff6f6253ff665949ff5b4e3fff544738ff544738ff544738ff534636ff504334ff504232ff4c3f2fff4a3d2eff4d4031ff504438ff4f4336ff443a30ff3c3228ff383029ff2f2720ff7e7773fffffffbfffffaf8fffffffdfffaf5f4fffffdfcffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffefffffffefeffede5e5ff4f423dff40332eff402f25ff5a493fff5d483bff644f42ff675043ff634c3fff5e473bff5f483cff5f483dff5e473cff63503cff634f3cff624e3aff624e3bff64513dff6b5744ff73604cff7a6653ff7f6b57ff806c58ff7e6b57ff7a6753ff
+735f4cff6c5844ff675340ff65513dff594b39ff594b39ff594938ff584837ff584637ff574536ff574336ff564336ff524035ff524035ff4d3e34ff493a30ff3f352bff392f26ff332c23ff322b22ff292929ff7c7c7cfffffffffffcfcfcfffffffffffdfdfdfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffdffeaf0ecfff8fdfafffcfffdfff4f7f4fff7faf6fffffffdfff6f7f4fffffffdfffefbf8fffff9f7fffffcfafffdf4f3ffe4dcdaffc6bcbbffb1a7a6ffcdc8c6ffede8e6fffffffdfffffdfbfffdf9f7fffffffdfffffffdfffffffdfff8f9f6fffffffdfffdfefbfff6f7f4fffdfffdfffdfffdfff2f6f2fffdff
+fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffcfffefffcfffefffcfffdfffbfefcfffcfefcfffcfefcfffdfffdfffefffefffffffefffffffefff9fffefff9fffefff9fffefff8fffdfff9fffcfff9fffcfffafffcfffafffdfffdfffefffdfffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefdffa49d9cff463a34ff362b24ff46362aff524236ff564233ff5c4839ff604b3bff5e4938ff5e4838ff604b3bff614c3dff604b3bff63503dff675441ff715e4aff7e6b58ff8b7865ff8f7c69ff8c7965ff867360ff74614eff6b5845ff614e3bff5c4935ff5c4936ff5c4936ff5a4734ff574431
+ff574431ff523f2cff503d2cff554231ff554536ff504031ff46392eff43362bff393028ff352c24ff908a86fffffcf8fffffcfafffffffdfffffefefff8f5f6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff8f4f7fffcf5f5fffffdfdff756863ff3c2f2aff463429ff554339ff604a3cff6650
+42ff6a5243ff664e3eff62493aff634a3bff654c3eff654c3dff6a523cff68503bff674f39ff664e39ff69513bff6e5640ff735b45ff765e49ff775f4aff78604aff775f49ff765e48ff725a44ff6d5540ff69513bff664e38ff604f3aff5f4d38ff5f4b38ff5f4b38ff604a39ff5f4938ff5c4638ff594335ff523d32ff523e32ff56463dff48382eff3c3129ff41362dff322a23ff322b23ff202020ffbcbcbcfff5f5f5ffff
+fffffffffffffff5f5f5fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffefff9fffefffafffefffafffefffbfffefffbfffefffdfffefffdfffefffffffefffffffefffffffefffffffefffffffeff
+fffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffbfffefffbfffefffbfffefffbfffefffbfffefffcfffefffcfffefffdfffefffdfffefffdfffefffdfffefffefffefffcfefcfffcfcfafffbfbf9fff3fbf8fff4fcf9fff6fdfbfff8ff
+fcfffafffefffbfffefffcfffefffcfffefffdfffefffdfffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefeffb9b2b1ff392e27ff433731ff3e2e22ff4b3b2fff584435ff5e4a3bff624d3dff604b3aff5e4938ff60
+4b3bff614c3dff604b3cff63503dff665340ff6e5a47ff7a6653ff84715eff887562ff85715eff806d59ff715d4aff695643ff614e3bff5d4a37ff5d4a37ff5d4a37ff5b4835ff584532ff584532ff533f2dff503e2dff564432ff564637ff504032ff44372cff3f3227ff2c231bff312720ffa8a29efffffffbfffffcfafffffcfafffdfafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffefffffffcfbfffffefeffa69a94ff372a25ff463429ff4f3d32ff5e483aff644d3fff674f3fff644c3cff63493bff654c3dff664d3fff654c3eff69513bff68503aff674f39ff674f39ff68503bff6c543eff6f5741ff725a44ff725a45ff725a44ff715944ff705842ff6d5540ff6a523cff674f39ff654d37ff604f3a
+ff5f4d38ff5f4b38ff5f4c38ff614b3aff604a39ff5d4739ff5b4536ff5a463aff543f34ff53433aff48382fff3d3229ff392e26ff2a221aff342c24ff343434ffccccccfffffffffffffffffffffffffff8f8f8fffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffff9fffefff9fffefffafffefffafffefffbfffefffbfffefffdfffefffdfffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffdfffefffdfffefffdfffefffdfffefffdfffefffdfffeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcffffff
+fcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffff9fefefffafffffffbfffffffbfffffffbfffffffbfffffffbfefefffafdfdfffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffefffffdfdfefffffffdffd7d4d2ff362d25ff494038ff3d2e20ff493a2cff5c4836ff624e3cff68513eff644e3aff624b37ff644c38ff654e3aff654e3aff67503bff69523dff6e5642ff765e4aff7e6652ff806954ff7e6752ff7a634eff705944ff6b533fff654e39ff624b36ff634c37ff634b37ff604934ff5d4631ff5e4634ff58402eff543f2eff5b4534ff5948
+39ff524032ff42342aff3a2c22ff2c231cff382f28ffc4bfbdfffffffdfffdfcfcfffaf9f9fff9fafcfffefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f4f8fffffefffffffafbfffffcfdffdbd1cbff3a302aff403024ff49392dff5d4838ff614c3cff654d3bff634c3aff654c3aff684f3eff68
+503eff664d3bff6c523dff6c523cff6c513cff6c513cff6c523dff6e533eff6f543fff705540ff705540ff6f5540ff6e543fff6d533dff6c513cff6a503bff694f3aff694e39ff644f38ff634e37ff634c37ff644d37ff654d3aff654c39ff61493aff5f4738ff5e483cff5d483bff57463dff433228ff3a2f27ff3c3029ff2a211aff2f2720ff5e5e5effe3e3e3fffffffffffffffffffcfcfcfffcfcfcfffffffffff9f9f9ff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffafffffffafffffffbfffffffbfffffffcfffffffcfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffafefdfffbfefefffcfffefffdfffffffdfffffffdfffffffdfffffffdfffffffafffffffafffffffbfffffffafffefffafefefff9fdfdfff9fdfcfff9fcfbfffd
+fffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefffffdfcfefffffdfbfff7f3f1ff524a42ff3c342bff463729ff4c3d30ff5c4936ff64503eff6b5441ff67513dff644d39ff654d39ff664f3cff664f3cff68513cff68513cff
+6a533eff6f5743ff735c47ff755e49ff745c48ff715a45ff6b543fff68513cff664f3aff654d39ff654e39ff644d38ff624b36ff5f4833ff604836ff5a4330ff584231ff5d4736ff5a483aff503e30ff3e3026ff35271dff322a23ff524a43ffe0dcd9fffffffcfffbfafafffffffffffefefffffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff9f8fbfffffefffffbf6f7fffaf6f6fffff5eeff625852ff3b2b1fff49392dff5d4838ff614c3cff664e3dff654e3cff68503eff6c5341ff6b5240ff674e3cff6f543fff6f553fff6f5540ff705540ff705540ff6f5540ff6f553fff6f543fff705540ff6f543fff6e543eff6d523dff6c523dff6c523dff6d523dff6d533dff655039ff644f38ff644e38ff654e39ff674e3cff674e
+3bff634b3cff614939ff5b4539ff644f43ff5a493fff3b2a20ff392d25ff43372fff2d241dff2c241dff9a9a9afff4f4f4fffffffffffefefefffdfdfdfffdfdfdfffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffafffffffafffffffafffffffafffffffbfffffffbfffffffcfffffffcfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffffefffffffdfffffffdfffffffcfefefffafcfcfff8fbfbfff9fbfbfff9fcfcfffafdfcfffcfcfcfffbfbfbfffafafafffafafafffbfbfbfffdfdfdfffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffbfffffffbfffffff5f6f3fffffffdff847f75ff282319ff493d2dff473b2bff584632ff62503cff6d5741ff6b553fff68513aff685039ff6a523bff6a523bff6b523dff6b523dff6b523eff6d543fff6f5641ff6f5642ff6f5641ff6e5440ff6b523dff6a513cff69503bff684f3bff684f3bff674e3aff664d38ff644b36ff634938ff5f4634ff5d4636ff60493aff59463aff4d3a2dff392c23ff31241cff29211dff78
+706dfffbf8f9fffefcfcfff5f7fbfffdfefffffafefffff7fbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefffffbfefffffbfbfbfffcfcfcfffffffaffa29c95ff403326ff3f3225ff584635ff5f4d3cff68533fff6a5440ff6c5541ff6e5743ff6c5541ff68513dff6f5440ff705541ff715642ff
+715643ff715643ff715642ff705541ff6f5440ff715642ff705541ff6f5441ff6f5440ff6e533fff6f5440ff6f5440ff6f5441ff6b533aff695238ff695038ff6a5039ff6b503cff6a503bff664c3cff644a3aff624b3fff5e473aff4e3c33ff3e2c23ff40332cff382c25ff261d17ff443b34ffd5d5d5fffbfbfbfffffffffffdfdfdfffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffff4f5f1fffffffdffbdb8afff373228ff423626ff3d3021ff52402bff5f4d39ff6e5841ff6e5842ff6b543dff6a533cff6b543dff6b543dff6c533fff6d543fff6e5440ff6e5540ff6e5540ff6e5540ff6d543f
+ff6d543fff6c533eff6c523eff6b523dff6a513cff69503cff694f3bff684f3aff684e3aff644b39ff634a39ff624b3bff634c3cff564337ff473428ff352820ff31231bff2a231fffaaa29ffffffffffffffffffff7f8fcfffdfefffff8fcfffffafefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfe
+fffff7fafdfffdfdfdfffffffffffffffaffdcd6cfff605346ff322518ff503e2cff5c4a39ff6b5642ff6f5a46ff715a46ff715b46ff705945ff6d5642ff6e533fff6f5440ff705541ff715642ff725643ff725743ff725743ff725643ff735844ff735844ff725744ff725743ff715642ff705541ff705541ff6f5440ff6e563dff6c543bff6b523bff6b523bff6c513dff6b503cff664c3cff644a3aff6a5347ff4e372aff3c
+2a21ff45332aff443831ff241811ff29201aff827973fffafafafffcfcfcfff9f9f9fffdfdfdfffffffffffefefefffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcffffff
+fdfffffffdfffffffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffefefefffeff
+fffffefffffffdfffffffafcfcfff8fafafff6f8f8fffaf6f7fffcf8f9fffefbfbfffffdfefffffffffffffefffffefefefffdfdfdfffffffffffffffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fffffff8fffffff9fdf9fffdfffdffeb
+e8deff6f6d62ff392f1eff372d1cff493923ff5a4934ff6d5840ff705b43ff6e583fff6d563dff6e563eff6d563dff6f5541ff705642ff715743ff725844ff715743ff705642ff705642ff705642ff6f5541ff6f5541ff6e5440ff6c523eff6a503cff6a503cff6b513dff6b513dff654b3bff674d3dff674f41ff644d3fff523f34ff412e23ff32251eff31241dff5b5453ffe2dcdafffffefffffffefffffafefffff8fcffff
+f0f5fdfff7fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fefffff0f6f9fffbfdfdfffdfffffffefaf3fffdf9f2ffa69b8eff3c3123ff42311fff544431ff6a5641ff715e49ff735d48ff735e48ff735e48ff735d48ff705543ff715644ff725745ff735846ff755a48ff775c4aff785d4bff795e4c
+ff785d4bff795e4bff795e4bff785d4bff765b49ff745946ff725744ff705543ff72593eff70573dff6f553cff6e543bff6e523dff6c513bff674c3bff654939ff60483cff4c3528ff3c2920ff3f2d24ff3b2e27ff261a13ff504741ffd3cac5fffffffffffdfdfdfffdfdfdfffdfdfdfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff
+fefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff9fbfafff0f2f2ffe4e6e6ffd9dcdbffd2d4d4ffd5d1d2ffdcd8d9ffe7e4e4fff3eff0fffaf8f8fffefcfdfffefefefffdfdfdfffffffffffffffffffdfffffffdfffffffcfffffffcfffffffcfffffffcffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fdfcfff8fffffffdfffdfffafefafffffff7ffa9a79cff362c1bff3b3120ff45341fff574631ff6c583fff715c44ff705941ff6e583fff6f573fff6e573eff6f5541ff725844ff745a46ff755b47ff745a46ff725844ff725844ff725844ff715743ff705642ff6f5541ff6d53
+3fff6b513dff6a503cff6c523eff6d533fff654b3bff694f3fff6a5244ff654e3fff503d32ff3e2b20ff30231cff32251fff9b9492fffffffdfff4f3f6fff5f4f6fffafefffffafeffffedf3fbfff7fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff7fdfffffdfffffffdfffffffef9f2ffff
+fffaffede2d5ff594e40ff372715ff4e3e2bff695540ff725f4aff745f49ff745f49ff76604bff77624cff755a48ff755a48ff765b49ff785d4bff7a5f4dff7d6250ff806552ff816654ff7f6451ff7f6452ff806552ff7f6452ff7d624fff795e4cff755a48ff735846ff745b40ff72593eff70563dff6f553cff6e533eff6c513bff674c3bff644938ff4c3428ff553d30ff47352cff322016ff2c2019ff382b24ff7f7670ff
+fffffafffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffefffffffeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f5f5fffffffffffbfbfbfff9fbfbfffdfffffff6f9f9fffcfffffffdffffffeef1f0ffcececeff9d9d9dff696566ff403b3cff332c2dff35
+2d2fff262e2aff202824ff28312dff4c5551ff7f8984ffb3bdb8ffe0e9e5fff9fffdfffcfffdfff2f7f3fffffffdfffffffdfff8f0effffffffdfffffefdfffffefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffffcfffffffdfffff9f3f7fffffefeffe7e0e0ff695f59ff352b25ff3a2a1eff
+4a3a2eff634b3bff6b5343ff73533fff745440ff7d5843ff815c47ff745e46ff776149ff79614aff786049ff7d624bff80654eff81634dff7c5e47ff7d5f48ff7e6049ff7a5f48ff765a43ff705840ff6e563eff68533bff644e36ff764943ff81544eff6e4a43ff623e38ff4e3932ff301b14ff211a14ff4c453ffffdfefafffdfefafffbfefdfffcfefefffefefffffffefffffffefffffffeffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f7f4fffffffdfffffffdfff9faf7fffdfffdfffdfffdffeeefeaffcbcdc8ff3c352dff241d15ff5b483bff7b685bff755544ff7a5a49ff8f6753ff835a47ff79644dff79644eff7b664dff7b674eff7e694dff826e52ff897456ff8e795bff8d7759ff917b5dff927a5eff8e765bff8b71
+59ff8a6f58ff856a54ff7f644eff805a44ff7e5842ff785440ff795541ff7a5c4aff795a48ff604739ff4a3123ff3e2c22ff3e2c21ff382d25ff382d25ff1f1913ff605954ffe0dcd8fffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafff5f9f8fffcfffffff9fffffff9fffffff9fffffff9fffffffcfffffffbfffefffffffffffffffffffffffffff9f7f8fff9fffffff9fffffffafffffffafffffffbfffffff9fefdfff9fcfcfffbfefdfffffffffffbfbfbfff8f7f7fffffefefffffefffffdfafbfffdf9f9fffffeffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffefefffffffffffffffffffdfdfdfff9fbfafffdfffffffcffffffeef2f1ffaaadacff6a6d6cff282828ff111111ff252021ff353031ff322a2cff251d1fff202823ff2d3531ff313a36ff1e2722ff040e0aff111b16ff4e5652ff8a938effe4e9e5fffcfffdfff8f6f4fff3f2effffffffdfffffffdfff9eeedfffffcfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff9f3fafffaf4f9fffffbfffffffdfcfffffefeffcac0baff3d332dff453529ff3a2a1eff4b3323ff685040ff80614dff7a5a46ff7b5641ff825d48ff79644cff7e6951ff846c55ff866e57ff8e735cff927760ff92755eff8d6f59ff8d6f58ff866952ff7d624bff775c45ff715a42ff705841ff6f5941ff715b43ff70
+433dff936660ff6c4942ff4d2923ff46312aff301b14ff47403affc1b9b3fffdfefafffdfefafffbfefdfffcfefefffefefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffafbf8fffafefbfffdfffdfffffffbffeff0ecff837c74ff4a433bff
+3e2b1fff685549ff795847ff70503fff946c58ff8c634fff7b6650ff7d6851ff7e6a51ff816c54ff877256ff8f7b5fff998567ffa08c6dffa58e71ffa89274ffa99176ffa48c70ff9e846cff987e66ff90755fff886c57ff8c6751ff87614bff7f5b47ff795541ff6a4b39ff5c3d2bff4c3425ff4a3123ff48362bff231106ff3b3028ff251911ff37312bffc4beb8fffffffcfffffefaffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f7f8fff5f5f5fffffffffffcfffffffcfffffff2f8f7ffecf3f2fff5fbfafff8fffefffcfffffff6faf9fff2f2f2fff2f2
+f2fffdfbfcfffffffffff9fffffff2f9f8ffecf2f1fff1f7f6fffafffefffbfffffffdfffffffdfffffffffffffffcfcfcfffffffffffffffffff9f6f7fffffefffffffefffff8f3f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfbfbfffffffffff7f7f7fffffffffffcfffffff1f5f5ffcbd0cfff676d6cff262b2aff1f2423ff1f2121ff242626ff2e2c2cff313030ff383334ff3c3738ff282e2cff282e2cff29302eff2b322fff
+252d2bff1d2623ff19221fff1a2320ff434947ffb8bebcfff4f6f5fffdfffefffcf9f8fff3f0f0fffffefefffffefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffbf7fdfffffcfffffffefffff2eeeefffffffefffffffaff908983ff33271cff372a1fff4a3627ff5b4738ff6e5340ff735846
+ff7e5e4aff856551ff896b55ff91735dff9d7d67ffa5856fffb18d78ffb7947effb8927dffb38d78ffad8772ff9f7964ff916e58ff8c6953ff83634dff7c5c46ff795b45ff7e604aff825e57ff76524bff634741ff533730ff281912ff2c1d16ff837f79fffcf8f2fffdfefbfffdfefbfffcfefefffcfefefffefefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfffffffdfffbfcf9fff7faf7fffbfefcfffffffcfffffffcfff8f5edff5b5850ff3d2f23ff524539ff6b5342ff7e6655ff7a5b47ff7a5b47ff876752ff886854ff8b6c55ff90715aff9b7b61ffa8896fffb8987cffc2a286ffccac8fffd1b094ffd2af95ffcba88fffc29d87ffb7927cffaa8470ff9e7864ff8f6e5aff84
+634fff7c5e4bff7d5f4cff715746ff5c4231ff463224ff422e20ff37291fff423429ff1d150eff393029ffa8a39ffffefaf5fffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffdfbfbfffffefefffffffffffffffffff7fbfafff6faf9fff9fffffff9fffffff9fffffff8fffefff2f6f5ffdadedeffb1b1b1ff838383ff6e6c6cff6c6a6aff676e6dff757c7bff939a99ffbac0bfffdce1e0fff0f4f4fffdfffffffdfffffffafafafffffffffffcfcfcfff3f3f3fffffffffff8f6f6fff0eeeeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f4
+f4fff7f7f7ffffffffffedf1f0ffa5a9a8ff595f5eff040909ff1d2221ff222726ff303231ff3c3e3dff434141ff403e3fff423d3eff444041ff404643ff3b413eff353c3aff353c3aff313a38ff2a3230ff1e2724ff151e1cff0b110fff272e2bff777978ffeaeceafffffffefff9f6f6fffffafafffffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff6f2f8fffffdfffffffefffffffdfffffdf9f8fffaf6f6fffffffafffaf4eeff706359ff4b3f34ff392516ff443121ff6a4e3cff7d624fff876753ff886955ff90725cff9b7e67ffac8c76ffba9a84ffcba892ffd6b29dffd9b39effd4ae99ffc7a18cffb6907bffa5826cff9f7c66ff92725cff82624cff795b45ff7b5e47ff805c55ff613d37ff4f332cff41251fff31221bff
+7f7069ffe0dcd6fffffffafffefffbfffefffbfffcfefefffcfefefffefdfffffefefffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcf9fffffdfafffffffdfffffffdfffbfefbfff6f9f7fffafbf7fffffffcfffffff9ffe4e0d9ff635549ff3d3024ff725a4aff6e5646ff7e5e4b
+ff846451ff856551ff876752ff8b6b54ff92735cff9f8066ffb09177ffc3a387ffcfaf93ffdfbea2ffe4c3a7ffe6c4aaffe0bda3ffd5b19affc7a38cffb7917dffa9836fff94735fff8d6c58ff826350ff765845ff604635ff4b3121ff372215ff321d10ff25170dff45372cff322a23ff958d85fffffffbfffffdf9fff5f3f0fffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfffffffffffffffffffafafafffafefdfffcfffffff6fcfbffe4eae9ffbac1c0ff707776ff282c2bff101414ff1e1e1eff242424ff1f1d1eff181617ff191f1eff151b1aff10
+1615ff101716ff212625ff4d5251ff8f9291ffc2c5c4fffffffffff2f2f2fffffffffffffffffffcfafafffffffffffffffffff8f5f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffdfffffff4f6f6ff959a99ff383d3cff0e1514ff232b2aff2e3635ff262e2dff262b2bff2f3433ff3d3f3fff414343ff434343ff424242ff47494aff464849ff3e4243ff333838ff272e2eff232b2bff222c2bff242e2dff212b2b
+ff0f1919ff161d1dff626969ffe6e9eafffcffffffeeedeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffff9fffafdf4fff2f4ecfffffff9fffffff9fff0efe7fffffff9ffebe4ddff7f7871ff2a1b15ff291914ff5a433fff735b57ff7c605cff816461ff94725dffa17f6affb48f
+7bffc4a08cffd9b19dffe5beaaffebc0adffe7bdaaffd8ad9affc59b87ffb18975ffa67e6bff997460ff8a6651ff815f4aff815f4aff6a544eff655049ff34251eff261710ff766f68ffe4ded7fffffffbfffffffbfffcfffcfffcfffcfffcfffefffcfefefffefefffffefdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffefbfffffffdfffffffefffdfffefffcfffdfff9fdfafffcfffdfffefffafffdfff9ffeae5daff6c675cff372a1bff615545ff72604eff83725fff875f4dff89614fff8d6651ff946d59ffa17a62ffb18a73ffc39c82ffcea78dffdfb69cffe5bda3ffe9bea7ffe4b9a2ffdbae9bffcea18effbe907fffb08271ff866e5cff876f5eff7a6453ff5e4837ff402e20ff392618ff
+392b20ff403226ff282017ff2d241bff9b9891fff0ece6fffffffcfffffffcffeeefecfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffaf8f8fff5f5f5fffffffffffcffffffe7ebeaff9aa1a0ff5a605fff1a201fff181e1dff212524ff2a2e2eff2a2a2aff232323ff2e2c2cff413f3fff212726ff272d2cff2c3231ff262c2bff1b1f1fff161b1aff262929ff393c3cff717473ffcdd0cffffefefefffafafafffffffffffefefefff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffffffffffdffffff969898ff313736ff1b201fff14
+1b1aff333b3aff212928ff2b3231ff3b403fff444a49ff484a49ff484a4aff535353ff5f5f5fff4a4d4eff484b4cff454a4aff484c4dff4a5151ff454d4dff313b3aff1e2727ff1c2626ff232c2cff242b2bff091011ff616465fff0f3f4fffffffffffafafbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff9fff1f4ebfffffff9fffdfff7fffdfff8fffffff9fff9f8f1fffbfaf2fffffff9ffdfd7d1ff93837eff45352fff2f1814ff47302cff715451ff856865ff8f6d58ff997763ffa98571ffb7927effc9a18dffd5ad99ffdab09dffd7ad9affcda28fffbd9380ffa8806cff99715dff8e6a56ff8b6752ff86644fff83614cff604b44ff3c2720ff3a2b24ff85766fffd9d2ccfffffffafffffffbfff4f5f0fffcfffdfffcfffd
+fffdfffffffcfffefffefdfffffefdfefffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffefcfffafbf9fffdfdfbfffdfffefffdfffefffdfffdfffdfffdfff9fbf5fffffffbfffffef3ffe5e0d5ff877a6bff4a3e2eff6e5d4aff5d4c39ff835c4aff855e4cff89624eff8e67
+53ff977059ffa37c64ffb0886effb89177ffc49c82ffcba288ffd0a58effcda28bffc79a87ffbe917dffb18372ffa57766ff846c5bff755d4cff5e4838ff4c3626ff3f2d1fff3b291bff34261aff312318ff554c43ff9c948bfff7f3edfffffffafff6f6f2fffcfcf8fffffffdfffbfcf9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcfdfffffeffffffffffffffffffffc3c7c7ff6b6f6eff29302fff151b1aff292f2eff202625ff222626ff303433ff3d3d3dff373737ff2e2c2dff292727ff353b3aff303635ff2d3231ff2c3131ff292e2dff202524ff1b1f1eff
+1a1d1dff131615ff363838ff969696ffe7e7e7fff3f3f3fff6f6f6fffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f4f3fffffffeffb8bab8ff3c3d3bff141a17ff2c322fff28312eff1d2623ff37413dff2e3835ff2c3532ff363e3bff454b48ff4e5451ff555856ff585c5aff545355ff5b5a5cff575a5bff4a4c4eff373d3eff313738ff2d3738ff2d3737ff2f3a3bff051111ff0f191aff131c1dff1f2627ff8a91
+92fff0f5f6fff5fafbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafcfffff0f2f5fffcfffffffcfffffff0f4f3fffafefefffefffcfff4f7f3fff0f0e8fffffffafffcf6ecffa09a91ff4e4237ff392c22ff56463aff6e5e52ff7e6552ff856b59ff8e7260ff947966ffa08170ffa98a78ffac8b79ffa9
+8776ffa38270ff9f7e6cff917260ff836452ff7d6250ff806552ff785e4cff6b513fff433b35ff352d27ff807c76ffeeeae4fffffffbfffffffbfffdfffcfffdfffcfffcfffefffcfffefffdfffffffdfffefffffdfefffffdfdfffffcfefffffcfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfcff
+fffdfbfffcfbfafffaf9f7fff9fbfafffdfffffffcfffffffbfffffff8fcf8fffdfffdfff9fcf3fff0f3ebfffffff2ffa8a799ff44402fff696555ff7d5b4cff7f5d4eff81614eff846351ff886751ff8d6c56ff93725bff98775fff9e7c64ffa4826affa98570ffa7836effa47e6dff9f7867ff966e60ff8c6556ff706254ff514235ff382b1fff36291cff2f2519ff281d12ff2f2920ff463f36ffaca9a3fffffffafffffffc
+fffefffbfffdfffdfff4f7f4fffbfffefff7fcfafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f7f8fffffffffff1f1f1ffacacacff4b4f
+4eff101413ff0d1413ff262c2bff202625ff272e2dff323635ff353938ff373737ff383838ff3f3d3eff454344ff404645ff353b3aff2e3332ff303534ff323736ff2e3332ff272c2bff232726ff262a29ff0a0e0eff0d1110ff676b6affdee1e1fffcfffffffdfffffffbfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffd7d6d5ff525452ff202220ff2c3230ff212725ff252e2bff353e3bff2e3834ff353f3bff424a47ff
+4a524fff474d4aff3d4240ff383c39ff383c3aff3e3d3fff424144ff404244ff3c3f40ff3a4041ff3e4445ff394343ff333d3dff222d2dff2f3a3aff252f30ff182122ff010809ff2d3435ffb3b8b9fffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffffffeff2f3fffcfffffffcffff
+fff2f6f5fffefffcfffefffcfffffffafff9f9f1fffffdf4fffffef4ffccc0b5ff6d6156ff443428ff4f3e33ff785e4cff7b624fff7f6351ff7f6451ff866756ff8b6c5aff8d6b5aff886755ff856352ff8d6b5aff896a58ff80614fff7c604eff7e6250ff6c5340ff543b28ff59514cffc6bfb9fffffffafffffffafffffffbfffbfdf7fff1f6f1fffdfffcfffcfffefffcfffefffdfffffffdfffefffffdfefffffdfdfffffc
+fefffffbfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf8f7fffffffdfffffffefffffffefffcfefdfffdfffffffbfffefff5f9f9fffdfffdfff4f8f4fffffff9fffffff9fffcfaedfffcfbedffdcd8c7ff797565ff7e5c4dff805e4fff82614fff82614fff83624cff83624dff85644dff87664fff89
+664fff8e6c55ff936f5aff916d58ff906958ff8d6655ff865e50ff7f5748ff46382aff352619ff34271aff3d3024ff32271cff3c3227ff8d867dfff1ebe2fffffffafffffdf6fffffffcfff8f9f4fffbfefbfffdfffdfff1f5f3fffbfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0eeefff9f9f9fff373737ff0a0e0eff242827ff323938ff242b2aff2a3130ff333938ff3b3f3eff3d4140ff434343ff494949ff4b4a4aff494748ff404645ff3f4443ff3f4443ff3f4444ff393e3dff2e3332ff282c2cff272c2bff252928ff262a29ff151918ff0c0f0e
+ff494c4bffbbbebdfffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfc
+fcfffffffffffffffffffbfbfbfffffffffffffffffff7f7f7fffffffffffffffdff726e6cff3c3b38ff2e2d2aff202320ff2d312dff222a26ff2f3733ff303935ff343d39ff38413dff39423eff39403cff373e3aff3a3e3bff3b403cff3d3c3cff3c3b3bff383939ff373838ff343939ff363b3aff353e3dff36403eff343e3dff273130ff2b3433ff192221ff181f1eff111716ff444948ffeef2f2fffffffffffdfdfdffff
+fffffffffffffffbfbfbfffafafafffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfffdfffbfffdfffcfffbfffefffcfffffef9fffffef9fffffffafff7f1ebffb7ada7ff6f655fff403728ff3f3728ff4b4031ff5e5344ff6f6153ff716355ff726154ff726154ff7e6d60ff726153ff6b5d4eff6d5f51ff
+63594aff655a4cff857c6dffb0a899fffefffbfffefffbfffefffcfffffffcfffdfffdfffdfffefffdfffefffdfffefffcfffefffcfffefffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffff
+fffcfffffffcfffffffcfffffffcfffffffdfffcfffdfffcfffffff9fffffff9fffffff6fffffff6ffcfbfb2ffa6968aff7a6a5bff675749ff726250ff7c6c5bff786753ff6b5b47ff786652ff73624eff74604fff7a6756ff7f6a5cff735d4fff574135ff40291dff312a21ff292219ff262018ff433d35ff85817affd2cdc6fffbf9f3fffffffbfffffffcfffffffcfffefffefffefffefffcfffffffcfffffffbfffffffbff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffefefefffffffffffbfbfbfffdfdfdfffffffffffdfcfcff8d8b8bff2f2f2fff1d1d1dff212525ff242828ff272e2dff2d3433ff2f3635ff32
+3938ff3a3e3dff404444ff4a4a4aff4e4e4eff525051ff535252ff484c4cff454948ff404443ff3b3f3fff373c3bff323736ff2d3231ff292f2eff202625ff2d3332ff1f2625ff151c1bff070d0cff3a4140ffbbc1c0fff9fffffffefefefffcfcfcfffdfdfdfffffffffffffffffff2f2f2fffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffcfcfcfffffffffffffffffff9f9f9ffffffffffcfcbc9ff565250ff31302dff292826ff1d211dff2d312dff262e2aff313834ff2f3834ff313b37ff343d38ff343d39ff343b37ff343b37ff373c39ff3a3f3b
+ff3d3c3cff3c3b3bff383a3aff373939ff333938ff343a39ff323b3aff333c3bff303a38ff252f2dff2f3836ff202a28ff1c2221ff0f1615ff282d2cffa1a6a5fffffffffffefefefffbfbfbfffffffffffffffffff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfffdfffbfffdfffcfffafffeff
+fcfffffef9fffbf9f4fffffffafffffffafffffffafffbf1ebffccc3b4ffa59c8dff74695aff4c4133ff3b2c1eff382a1cff453527ff534234ff483729ff514032ff6c5e4fff958779ffb3a899ffcfc4b5fff1e9dafffffff3fffefffbfffefffbfffefffcfffffffcfffdfffdfffdfffefffdfffefffdfffefffcfffefffcfffefffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffcfffffffcfffffffcfffffffcfffffffdfffcfffdfffcfffffff9fffffff9fffffff6fffffff6fffffff4fffff4e7ffe6d6c7ffbbab9cff928270ff7a6a58ff776652ff7b6b57ff7b6a56ff7e6c59ff7d6a59ff715e4dff5e483aff
+4a3426ff3d261bff382115ff403930ff6a635affa19b92ffd2ccc4fff7f3ecfffffffafffffffbfffdfbf6fffffffcfffffffcfffefffefffefffefffcfffffffcfffffffbfffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffbfbfbfffffffffff5f5f5ffffffffffffffffffefefefffffffffff939192ff4a4849ff191919ff1c1c1cff262a29ff2b2f2eff303635ff353c3bff393f3eff3b4241ff414545ff474b4aff4f4f4fff535353ff575656ff595757ff575b5bff525756ff4b504fff444948ff3d4241ff363b3aff2f3534ff2b302fff2c3231ff1a1f1fff1c2221ff282e2dff171d1cff030908ff49504fffcbd1d0ffffff
+fffffffffffffffffffffbfbfbfffafafafffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffffffffffe
+fefefffdfdfdfffcfcfcff928886ff423936ff36302dff322c29ff252521ff353431ff30342fff363a35ff323934ff333a35ff343b36ff343b36ff353a35ff363b36ff393c38ff3b3f3aff3a3a37ff393937ff383936ff363734ff313733ff303532ff2d3531ff2d3431ff333b37ff282f2cff383d39ff2c312dff242522ff1c1c1aff1e1d1aff5a5856fff1f1f1fffffffffff8f8f8fffffffffffffffffff9f9f9fffefefeff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffcfffffffcfffffffbfffffffbfffffffcfffffffcfffffffffffffff8f8f8fff8f4f3fffcf8f7fffffdfdfffffefefffffff9fffbfef5ffecede4ffdedfd7ffd4d2caffc8c5bdffc1bcb4ffbdb8b1ffd2cec6ffd8d3cbffe3e1d9fff5f3eafffdfef5fffffff7fffdfff7fffffff9fffcfffe
+fffcfffefffdfffffffdfffffffdfffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffefffffffefffffdfffffffdfffffffdff
+fefffdfffefffdfffbfffdfffbfffdfff9fffdfff9fffbf9f2fffffffafffffff9fffffef5ffecebdeffd2d1c5ffbebcaeffb3b1a3ff8e8b7dff838072ff6f6a5eff5a5549ff575048ff716a62ffa09792ffc4bcb6ffd2cfcbffeae8e3fffffdf9fffffffcfffffffdfffffffdfffffffefffdfefcfffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffff9f9f9fffffffffffffffffff6f6f6ffc5c5c5ff413f40ff232121ff191919ff272727ff2a2e2eff2e3231ff343a39ff383f3eff3e4544ff3f4544ff424645ff434747ff494949ff4b4b4bff
+4f4d4dff504e4fff4f5251ff4c4f4eff484c4bff444848ff424746ff3f4443ff3a403fff373d3cff313837ff232a29ff232c2aff1c2423ff212a29ff091211ff020b0aff606a69ffe2e2e2fffffffffffefefefffcfcfcfffafafafffffffffff3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffefefefffcfcfcfffffffffffbfbfbffffffffffe5e5e5ff5f5653ff382f2dff3e3835ff3b3532ff2b2a26ff363531ff313530ff30342fff313833ff333934ff343b36ff363c37ff373c37ff383d38ff3a3d39ff3a3e39ff393936ff393936ff373835ff363734ff3035
+32ff2e332fff2a312dff28302cff2f3632ff252c28ff353936ff2a2e2bff21221fff262624ff252321ff353331ffc6c6c6fffffffffffcfcfcfffffffffffffffffffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffcfffffffcfffffffbfffffffbfffffffcfffffff9fcfcfffdfdfdfffffffffffffffefffffffefffe
+f7f7fffaf3f3fff7faf1fff9fcf3fffffff9fffffff9fffffff9fffffff9fffffff8fffefaf2fff4f0e8fff9f4ecfffbf9f1fffffdf5fffffff9fffffff9fffffff9fffcfff6fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffefffffffefffffdfffffffdfffffffdfffefffdfffefffdfffbfffdfffbfffdfff9fffdfff9fffffffafffffef8fffaf9f0fffffef5fffffff6fffffff6fffffff5fffdfbedfffffff2fffffff4fffffff6fffffff6fffffff9fffffff9fffffef9fffffbf5fffffffcfffffffc
+fffffffcfffffdf9fffbfaf6fffffefbfffffffefffffffdfffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffff9f9f9ffffff
+fffff3f3f3fffffffffff0f0f0ff5f5f5fff2d2b2cff242223ff282828ff303030ff2a2e2eff2f3332ff373e3dff3b4140ff3f4645ff3e4443ff3e4241ff3c403fff3e3e3eff3e3e3eff403f3fff413f40ff3b3e3eff3a3d3dff393d3dff3b3f3eff3d4141ff3e4342ff3d4342ff3c4241ff29302fff323a38ff2d3534ff17201eff212b29ff222b29ff081210ff192321ff8e8e8efffffffffff3f3f3fffffffffffffffffff5
+f5f5fffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffbfbfbfffffffffff9f9f9ffffffffffc1c1c1ff453633ff3c2d2aff
+483c39ff453a37ff342e2aff39332fff33332eff2e2d28ff2f322dff31342eff333731ff363a34ff3a3b36ff393b36ff383a34ff363833ff383a33ff373a33ff373932ff353731ff31362fff2e332cff2c312aff2a3029ff292b24ff252721ff36342eff2f2d27ff29221dff332d27ff372d28ff322823ff898989fffffffffffffffffffffffffff9f9f9fffffffffffffffffffefefeffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffefffffffefffffffcfffffffcfffffffcfffffff6fafafff7f7f9fffffefffffffefffffffefffffffdfffffffdfffffcfffffffcfffffffcfcfcfff5f5f5fff7f5f5fffcfafafffffefffffffefffffffefffffffefffffffffffffffdfefffcfcfcfffffffffffcfffffff8fcfbfffffffffffffffffffffffffffffefffffffffffffffe
+fffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffdfffffffdfffffffbffff
+fffbfffdfffffffdfffffffcfefcfff9fbf9fffafbf6fffcfdf8fffffffafffffffafffffff9fffbfbf4fff7f6f1fff8f7f2fffffcfbfffffffefffffefffffffdfefff3f3f3fff6f6f6fffafafafffffffffffffffffffffffffffffffffffefefefffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffff5f5f5fffffffffff8f8f8ffffffffff9f9f9fff292929ff282626ff242222ff2a2a2aff303030ff2b2f2fff343838ff3e4544ff3f4645ff3c4342ff3a4140ff3b3f3eff393d3cff3b3b3bff3c3c3cff3e3c3cff3e3c3dff393c3cff373a3aff363938
+ff353938ff353a39ff353a39ff323938ff303736ff252d2cff293231ff242e2dff2d3735ff1c2826ff091513ff15211fff101d1bff3d3d3dffcdcdcdfffdfdfdffffffffffffffffffecececfffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffbfbfbfffffffffffafafaffffffffff969696ff3c2d2aff423330ff4b403cff4b403cff3f3935ff413b37ff3e3e39ff363631ff2d302aff2d302bff2f322dff323530ff373833ff373934ff363732ff333530ff33352eff32342dff31332dff30322bff2c312aff2b3029ff2a2f28ff292f27ff292c25ff2d
+2f29ff3c3a34ff3d3c35ff39332dff3b342fff3c322eff322823ff555555fff9f9f9fffffffffffffffffff6f6f6fffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffefffffffefffffffcfffffffcfffffffcfffffffcfffffffffefffffbfafdfff7f4f7fff4f1f4fffbf4f9fffffcfffff7faf9fffbfefeffffffffff
+fffffffffffffffffffffffffffefffffffcfdfffdf8f9fffffbfcfffefcfcfffbf9f9fff8f8f8fffbfbfbfffbfefefffbfefefffffffffffffffffffffffffffffffffffffefffffffefffffffefefffffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffdfffffffdfffffffbfffffffbffeff1f1fff6f8f8fffefffefffefffefffffffcfffefffafffafcf5fff8fbf3fffffffafffffffafffffffcfffffffcfffffffefffffcfbfffef9fafffef9fafffffffffffffffffffffffffffdfdfdfff7f7f7fff6f6f6fffbfb
+fbfffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffafafafff9f9f9ffffffffffe6e6e6ff353535ff353535ff2c
+2a2aff252323ff2a2a2aff343434ff323636ff3a3e3dff3e4544ff3a4140ff323938ff323938ff353938ff353938ff3a3a3aff3b3b3bff3e3c3dff3f3d3eff3a3d3dff383b3bff363a39ff353938ff353a39ff343938ff313736ff2f3534ff303837ff2a3331ff1a2523ff2c3634ff1c2725ff0c1716ff202d2bff091513ff1c1c1cff7c7c7cfffffffffffbfbfbfffffffffffffffffffafafaffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffff9f9f9fffffffffffcfcfcfffcfcfcff6e6e6eff43302eff4b3936ff4b3d3aff4f413eff4a413dff4d4440ff4c4944
+ff45423dff3a3a35ff373832ff353731ff363832ff3c3c37ff3f3f3aff41403bff403f3aff373a30ff35392fff33382eff32372dff31362cff32372dff34372eff35382fff3a3b31ff3e3f36ff454037ff4b463eff4e433bff42372fff40312aff3b2c25ff3a3a3afff1f1f1fffafafafffffffffffafafafffffffffffdfdfdfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfffffffdfffffffefffffffefffffffffffffffffffdfffffffdfffffff4f6f8fffcfefffffffdfffffffdfffffffcfffffffdfffffffcfffffffcfffffcfbfffffffefffffffdfffffefafefffff9fefffffdfffffffcfffffffbfffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffff
+fffffffffffffffffffffffffffffffefffefffefffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffefffefffefffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffdfffffffdfffffdfffffffdfffff9f8fbfff5f4f7ff
+fafafafffffffffffffffdfffffffdfff8f6f4fffcfaf7fffffcfdfffffdfdfffffbfffffffcfffffffcfffffffcfffffafafbfffefdfffffffefffffffefffffffefffffbfafdfffbfafdfffcfbfefffffefffffffefffffffefffffffefffffffefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffefefefffafafaffffffffff989898ff1d1d1dff3f3f3fff393738ff2c2a2bff2d2d2dff383838ff363a39ff373b3aff363d3cff303635ff2d3332ff2e3433ff313535ff333737ff383838ff393939ff3b3939ff3b393aff383a3aff363938ff353837ff353838ff363b3aff363b3aff343b39ff3239
+38ff2f3836ff313b39ff202b29ff172221ff1e2b29ff24312fff1a2826ff041210ff1d1d1dff3c3c3cffcfcfcffffbfbfbfff8f8f8fffffffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffcfcfcfffffffffff9f9f9fffffffffffdfdfdfffafafaff565656ff443230ff4b3836ff453633ff493a38ff49403cff4c433fff4d4a45ff47443fff494944ff44443fff3e403aff3d3f3aff43433eff494944ff4e4d48ff4f4e49ff45483eff43473dff41453bff3f443aff3f453bff41473cff45483fff474a40ff45453cff45453cff403b32ff47423aff4f433cff3d312aff
+3a2a24ff3c2d26ff333333ffebebebfff1f1f1fffffffffffefefefffffffffff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffdfffffffdfffffffafcfefffbfdfffffbf9fdfff8f6fbfffffbfffffffdfffffffcfffffcf5fcfffbfafefffffefffffffdfffffffcfffffffafffffffdfffffffcfffffff9fe
+fffffcfffffff9fefffcf5fafffffbfffffffdfffffffcfffffcfbfffffefcfffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffcfefffffefffffffefffffffffffffffffffffffffffffffffffffefffefffefffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffefffeff
+fefffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffffffffffffffffffffdfffffffdfffdfbfffffdfbfffffefdfffffffefffffffffffffffffffffffffdfffffffcfffffffdfffffffdfffffcfcfffffcfdfffffdfffffffdfffffffbfffffdf6fcfffffefffffcfbfdfff7f6f8fffbfbfcfffffefffffffefffffefdfffff8f7fafffffefffffffefffffffeffffff
+fefffffffefffffffefffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdffffffffffe1e1e1ff484848ff474747ff2e2e2eff3f3d3eff2c2a2bff292929ff333333ff313534ff
+303434ff303736ff2d3332ff323938ff333a39ff363a3aff373b3bff3a3a3aff393939ff393738ff383636ff3a3c3cff383a3aff353838ff343737ff323736ff313635ff2d3433ff2b3231ff1f2827ff2a3331ff2b3635ff182321ff23302eff1c2927ff000b09ff202e2bff242424ff232323ff909090fffffffffff7f7f7fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffff9f9f9fffafafafffffffffffafafaffedededff575757ff47342fff4c3934ff4f3e36ff503f37ff4f4135ff514337ff504536ff504536ff564c3cff554b3bff55493cff5a4e
+41ff6a5b51ff796a60ff7e6e66ff7b6b63ff6e685eff5f594fff544c40ff50483cff53483bff524739ff524437ff524437ff4d3e33ff4a3c30ff4a3b33ff4d3f37ff493c38ff403430ff382d2cff362b2aff323232ffccccccfffffffffffefefefffbfbfbfffffffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffefafefffbfafdfffcfafefffbfbfefffafbfefffcfefffffcfefffffafffffffafefffff9fffffff9fffffff8ffffff
+f8fffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
+fffffffefffffffefffffffefffffffefffffffefffffffffffffcfafafffffffcfffffefbffc2b9b2ff423931ff42372cff483c32ff3b3e36ff30332bff30332bff393c34ff353933ff2a2d27ff292e2aff363b36ff2d3431ff2f3633ff303837ff313938ff2f3839ff2e3738ff2d3738ff2e3738ff2c382fff2e3a31ff303c33ff313c33ff303932ff2e372fff2e342fff2d342eff2e322eff2d312dff2d2e2cff2a2b29ff26
+2625ff222220ff1f1e1eff1d1c1cff322821ff3b3129ff47403bfffffffafffffffdfffffcfafffcfcfcfffffffffffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeff
+fffffffffbfbfbfffcfcfcfffffffffffdfdfdfff0f0f0ff555555ff493631ff4a3732ff4b3a32ff4e3d35ff514438ff54473bff54493aff534839ff574d3eff584d3eff5a4e40ff615547ff726459ff82746aff897971ff87776fff726c62ff635d53ff574f43ff52493eff54493bff514639ff514336ff514335ff504136ff4b3c31ff483a32ff4b3c35ff483b37ff413430ff392d2cff362a29ff313131ffd0d0d0fffcfcfc
+fffdfdfdfffffffffffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfffffffbfffffefbfefffffbfffffefdfffffffefffffefefffffefefffffbfdfffffcfefffffafffffffafffffff9fffffff9fffffff8fffffff6fdfffffffffffffdfdfdfff4f4f4fff3f3f3fff9f9f9fffefefefffefefefffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffdfbfbfffffdfdfffffffcfffffdf9ff999088ff3e352dff3c3126ff4a3e34ff3e4139ff383a32ff363831ff383b33ff32352fff272b24ff242824ff2a2f2aff2e3532ff303634
+ff303837ff313938ff30393aff303a3aff313a3bff313b3cff313e34ff323e35ff333e35ff313c34ff2f3831ff2b352dff2b312bff29302aff242824ff242824ff272825ff272826ff272826ff262725ff272626ff262525ff382e27ff3b3129ff3e3631ffe4dcd7fffffefcfffffdfbfffefefefffffffffffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffdfdfdfffffffffff5f5f5ff585858ff4f3c35ff4d3b33ff4e3c32ff524137ff58493bff5a4b3dff5a4c3bff584b39ff5a4c3aff5c4e3cff5f5141ff685949ff79695cff8b7a6dff938075ff927f74ff79
+7062ff6b6154ff5e5244ff574c3dff574939ff544536ff534233ff534333ff554436ff4e3d2fff49392fff4c3c32ff4a3c37ff443630ff3a2d2aff362926ff313131ffddddddfff6f6f6fffcfcfcfffffffffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffefffffffefffffffdfffffbfafdfff9f8fafff6f6f9fff6f6f9fffcfffffffbfefffff8fcfefff6fafcfff4fafcfff6fbfdfff9fffffff9fffffff5f5f5fffefefeffffffffffffffff
+fffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffeffffff
+fefffffbf9fafffffffffffdf8f4fffef9f6ff665d56ff3c332bff3b3025ff4b4035ff454439ff46453aff444339ff403f35ff393930ff33332aff2f3028ff2d2e27ff32342eff32342eff313430ff323531ff323733ff353936ff353a38ff373c39ff33392fff32392fff30372dff2e342bff2d3129ff2a2f27ff2a2c26ff292b24ff282823ff2a2a25ff2d2b28ff302e2aff332f2dff34312eff36312fff363130ff3e342cff
+3b312aff332b26ffb0a8a3fffffffdfffffdfbfffffffffffefefefffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffbfbfbffffffff
+fffafafaff686868ff523f38ff523f38ff55443aff5a493fff5c4d3fff5a4b3dff594c3aff5a4d3bff584b38ff5a4d3bff5e5040ff655646ff746457ff847366ff8b786eff8a776cff766c5fff685f51ff5e5244ff584c3dff574939ff534535ff534333ff544434ff554436ff4f3e30ff4b3b31ff504036ff4e403aff463832ff392c29ff322522ff353535ffeeeeeefffbfbfbfffbfbfbfffffffffff9f9f9fffcfcfcfffdfd
+fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefbfeffff
+fdfffffffefffffffefffffffefffffffefffffefefffffefefffffcfffffffcfffffffbfffffffbfffffffafffffff6fbfdfff5fbfdfff8fefffffffffffffefefefff9f9f9fffafafafffffffffffffffffffbfbfbfff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffff9f6fff3edeaff483f38ff3c332cff42372cff493e33ff444238ff4c4a40ff4d4c42ff47463cff43423aff45453cff42423bff3b3c35ff32332eff30322dff2e322dff2f332eff313632ff353936ff363b
+39ff373c3aff32392fff30372dff2e342bff2d332aff2f332bff2f342cff31332dff31332cff393934ff3a3a35ff3c3a36ff3d3b37ff3e3b38ff3e3a38ff3f3a38ff3e3937ff3e342dff3c322aff302823ff837b76fffffffdfffffcfafffffffffffdfdfdfffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffffffffffbfbfbffffffffffffffffff888888ff4e3d33ff513f35ff59483bff604f42ff614f3eff5b4938ff5c4b36ff62503cff5f4d37ff614f39ff64503cff67533fff715c4aff7b6654ff806959ff7d6757ff736352ff695947ff62503dff5e4d3aff5e4b37ff
+5b4733ff5b4632ff5c4734ff574332ff54402fff524033ff584639ff54453dff493a32ff3a2c27ff32241fff454545fff9f9f9fffffffffffbfbfbfffcfcfcfffafafafffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffcfcfdfffbfbfcfffcfbfdfffdfdfefffcfdfffffcfdfffff2f4f6fff2f4f5fff5f9fafffbfffffffbfffffffafefffffafffffffafffffffffffffffffffffffffffffffcfcfcfff8f8f8fffbfbfbffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffefcfdfffffefbffe1dbd8ff
+40372fff3c332bff4a3e34ff42362cff453e30ff50493bff544d3fff4f483aff4e473aff544e41ff534e42ff4c473bff423d32ff403b30ff3e3a31ff413d33ff464239ff4a473eff4c4940ff4c4941ff4d4b40ff48473cff444237ff424035ff454138ff464339ff49433bff48433bff4b443dff4b433dff4b423dff4a413cff493f3bff463c39ff453a37ff433936ff3b322aff3b3129ff342d27ff68615bfffffffdfffdfaf8
+fffffffffffefefefffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffdfdfdfffefefeffffffffffffffffffb3b3b3ff514036ff503f35ff5645
+38ff5e4d40ff604f3eff5c4a39ff5e4d38ff665440ff63513bff65533dff66533eff66523eff6b5644ff715c4aff735d4dff705a4aff6a5a48ff635341ff604e3bff604e3bff614d3aff5d4a36ff5d4835ff5f4a37ff584332ff574332ff584639ff5d4b3eff56463eff493931ff3a2d27ff342721ff707070fffbfbfbfffffffffffcfcfcfff9f9f9fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffdfcfefffafafbfffdfcfefffffefffffffeffff
+fdfffffff9fbfcfffdffffffe9ebecffc8cccdffb0b3b4ff9ca0a1ff8e9293ff8c9192ff939899ffbababaffd1d1d1ffedededfffffffffffffffffffbfbfbfff2f2f2ffecececffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffaf8f8fffffffcffd1ccc8ff3f362fff3c332bff493e33ff3e3228ff443d2fff4d4537ff4f483bff4c4537ff4b4437ff504a3dff504a3eff4c463aff4e493eff4c483dff4d493fff534f45ff5b584fff625f56ff646159ff646158ff636257ff5c5a4fff535146ff4d
+4b41ff4d4a40ff4e4a41ff4e4941ff4d473fff48403aff47403aff473f3aff463e38ff453b37ff423935ff413733ff403532ff3b322aff372d25ff38302bff5d5550fffffffdfffdf9f7fffffffffffefefefffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffbfbfbfffffffffffbfbfbffffffffffdededeff65574aff584a3eff554536ff5b4c3dff65523fff624f3cff66513aff6b563fff6a5239ff6c553cff6d543cff6c523aff6d543dff725842ff715843ff6e5540ff6c553fff68513bff685039ff6b523bff6b523aff674d36ff644b34ff654c36ff5f4734ff604835
+ff5e4a3bff604c3dff54443aff48372dff3d2f28ff3c2e27ffb1b1b1fffafafafffdfdfdfffffffffffbfbfbfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f6f6fff7f8f8fffefffffffefffffffdfffffff5f7f7ffd5d8d7ffbcbebeff555857ff393b3bff1c1f1eff101312ff0d1110ff101313ff1b1e1eff282b2bff1a1c1cff212322ff3f4141ff7d7f7effc6c8c7fff7f8f8fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffefcfcfffffffcffcfcac6ff3c332bff40372fff44392eff44392eff504232
+ff534534ff544636ff534635ff524534ff534636ff544737ff554838ff594c3cff594d3dff5d5142ff685c4dff75695aff7f7364ff837668ff827667ff786d60ff6e6356ff615649ff584d40ff55493dff54483cff52453bff4f4238ff4b3d35ff4b3d34ff4b3c35ff4a3b33ff483932ff463630ff44342eff43332dff40362eff322820ff362e29ff59514cfffffdfbfffefbf9fffffffffffcfcfcfffcfffffffcfffffffcff
+fffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffefefefffffffffff9f9f9fffffffffff8f8f8fffffffffff8f8f8ff7e7064ff66594cff58493aff5c4c3dff685542ff675541ff68533cff6a
+543dff685038ff6b533aff6c533bff6a5139ff6c523cff705640ff705642ff6d533fff6b533dff68513bff6a523bff6d553eff6e553dff684f38ff664c36ff664d36ff624b37ff634c38ff604c3dff5f4b3cff514136ff46352bff3f312aff42342dffe7e7e7fffbfbfbfff8f8f8fffffffffffefefefffffffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffbfcfcffdadcdcff999b9bff494b4aff101211ff292c2bff1d1f1fff1a1d1d
+ff272a29ff2f3332ff292d2cff232626ff222625ff242626ff252727ff1e201fff101212ff1a1c1cff555757ffb3b5b5fffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffcffd3cecaff382f27ff453c34ff40342aff4e4338ff564838ff554837ff564938ff574a39ff574939ff554838ff574a3aff5b4e3eff544738ff56493aff5d5041ff6b5e4fff7b6f60ff877b6cff8c7f71ff8b7f70ff7d7165ff716659ff63574bff594d41ff55493eff54473cff51443aff4e4137ff
+4e4037ff4d4037ff4d3e37ff4b3d35ff493a33ff463730ff44352fff43332dff453b33ff2f251dff322a25ff574f4afffefbf9fffffcfafffffffffffbfbfbfffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd1c9bcff554d41ff4f4233ff675a4bff5f4c39ff614e3bff6d553eff755d46ff73573eff73573dff73563cff73553cff72553dff73573eff735840ff755941ff74573fff74573fff74563dff72543bff6f5138ff6d4f36ff6b4f37ff6b4f37ff6a513dff634a36ff655142ff6f5b4cff514238ff413128ff3428
+21ff8a7d77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7f7f7fffffffffffffffffff4f4f4fffbfbfbfffffffffff7f7f7fffafdfdfffcfffffff6faf9ffabafaeff3b3e3eff151817ff262928ff272929ff2b2d2cff2f3131ff333535ff343535ff323333ff2f3030ff303131ff313232ff2e3131ff252828ff242726ff262929ff202322ff1b1e1eff2d3030ff494c4cffd5d8d8fffdfffffff6f9f8fffafdfcffeef1f1fffdfffffffdfffffffdffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfff7f7f7fffefefefffffffffffdfdfdfffdfdfdfffffffffff8fbfbfffafdfdfffcfffefffbfdfdfff6f9f8fff5f8f8fffcfffffffdfffffffcfffefffcfffefffcfffefffcfffe
+fffcfffefffcfefefffcfefefffbfefefffffffffffffffffffffffffffcfcfcfffafafafffffffffffffffffffffffffff9f9f9fffefefefffffffffffdfdfdfffffffffffffffffffffffffff8f8f8fffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffaf4f1ffe1dbd8ff4d443dff382f27ff52473cff4f4439ff5c4a38ff5d4a39ff5d4a39ff5c4937ff5b4836ff5b48
+36ff5e4b39ff614d3bff604d3aff614d3bff675340ff735f4cff836f5cff907c69ff95816eff96826eff887566ff7b6959ff6b594aff604e3fff5c4a3cff5c493bff5a483bff584639ff544236ff534034ff503e33ff503d32ff4f3c32ff4d3a31ff4a372eff47342bff413730ff362c25ff3a332eff645d57fffffffdfffdf9f7fffffffffffffffffffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdffff
+fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf4e8ff7f776aff584b3cff716556ff64523eff614e3bff7c644dff634b33ff765a41ff775b41ff795c42ff7a5d43ff
+7a5d44ff7a5d44ff785c45ff785c44ff795c43ff795b43ff785b42ff775940ff74573dff73553cff70543dff71553dff735a45ff6a513dff6a5647ff503c2dff57483eff47372eff4d403affe1d5cfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffefefefffffffffffffffffffcfcfcfffdfdfdfffffffffffcffffffe3e6e6ff858888ff2d3130ff202322ff282b2bff282b2aff2f3131ff323434ff353737ff383a3aff393b3bff373939ff353636ff333434ff3233
+33ff353838ff2e3131ff2b2e2dff2b2e2dff232626ff191c1cff1a1d1cff232625ff353838ffafb1b1fff0f2f2fffdfffffffdffffffeff1f1fffdfffffff6f9f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8ffff
+fffffffffffffffffffffffefefefff9f9f9fff9f9f9fffdfdfdfffdfffffff7faf9fff5f8f8fffdfffffffdfffffffdfffffff7faf9fff5f8f8fffdfffffffdfffffffdfffffffcfffffffcfffffffdfffffffdfffffffdfffffffffffffff4f4f4fff2f2f2fffffffffffffffffffbfbfbfff8f8f8fffefefefffffffffffffffffffffffffffafafafff8f8f8fffbfbfbfffdfdfdfffdfdfdfffffffffffffffffffffeffff
+fffefffffffefffffffefffffffefffffffefffffffefffffffffffffffaf6ffeae5e1ff4b423bff4a4139ff4f4439ff51463bff5e4b3aff5e4c3aff5f4c3aff5d4b39ff5c4937ff5c4937ff5e4b39ff604d3bff614e3bff614e3bff66523fff715d4aff7e6a57ff897562ff8d7966ff8d7966ff816f5fff776455ff695648ff604d3eff5d4a3cff5c4a3cff5b483bff594639ff564438ff554236ff524035ff523f34ff513e34
+ff4f3c33ff4c3930ff49362dff3c332bff392f27ff38302bff7d7570fffffefcfffffbf9fffffffffffefefefffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ffd1cfc5ff6a6255ff4f483bff6f5e4dff675745ff745b45ff6a513cff7b5c44ff7d5f46ff816248ff84654cff86684fff876950ff856951ff856951ff88674fff86654dff836249ff805f46ff7c5c44ff7b5c43ff785b44ff795b44ff69503dff7b6350ff564336ff5e4b3eff63564fff2d2019ff998f8cfffffffbffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fcfcfcfff9f9f9ffffffffffe0e6e3ff737976ff202523ff131816ff1d221fff2a2f2cff363937ff343735ff393c3aff3a3d3bff3e3f3dff414240ff434341ff41413fff3d3d3bff393938ff3b403fff373c3bff333736ff303434ff2e3231ff282d2cff1f2423ff181c1bff070c0bff363a39ff8e9292ffeff3f2fffbffffffe7ebeafffbfffffff8fdfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffffffffffbfbfbfff7f7f7fffcfcfcfffffffffffffffffff4f8f8fffbfffffffbfffffffbfffffff6fafafff6faf9fff8fcfcfff9fdfdfff5f9f9fff4f9f8fff4f8f8fff4f8f7fff5faf9fff7fcfbfffafefefffbfffffffcfc
+fcfffdfdfdfffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffdfdfdfffafafafffefefefffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffdfdfffffffffffffffbfff9f4f0ff564d46ff544b43ff4e4338ff54493eff624c3cff634e3dff644e3eff634d3cff614b39ff604a38ff624b38ff634c3aff674f3bff674e3bff6a
+513dff715844ff7c624dff836954ff866c56ff866c56ff7b6452ff745d4aff6a5442ff644e3cff624c3bff624b3bff5f4939ff5d4737ff5b4738ff5a4536ff574335ff564234ff554234ff534033ff4f3c30ff4d3a2dff40362eff3d332cff37302bffa7a09bfffefaf8fffffefcfffffffffffcfcfcfffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf9effffffff8ffa69e91ff524a3dff635341ff6c5c4aff755c47ff7a624cff7c5e45ff7f6148ff86674dff8e6f55ff95775eff9d8067ffa2866effa68a71ffa5846c
+ff9e7d64ff93735aff8a6950ff83644bff816148ff7e614aff7e614aff664e3bff836b58ff5f4c3fff665447ff4f423bff60534cfff6ece9fffff8f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffffffffff9f9f9fff7f7f7fffffffffffcfcfcffe3e3e3ff777d7aff202623ff111714ff353b38ff313633ff2a2f2dff3e413fff414542ff444744ff444745ff484947ff4d4d4cff515150ff50514fff4b4c4aff464645ff444847ff434747ff3d4141ff353939ff35
+3a39ff383c3cff313535ff242928ff2c3030ff0d1110ff232727ff8d9190fffbfffffffbfffffff6fafafffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff8f8f8fff7f7f7fffbfbfbffffffffff
+fffffffffffffffff4f8f7fffbfffffffbfffffff2f6f6fff2f6f6fff9fdfdffe8ecebffc8cdccff919695ff7f8383ff666a6aff555959ff585c5bff6e7271ff8b8f8eff9fa3a3ffe4e4e4fff2f2f2fff6f6f6fff0f0f0fff5f5f5fffffffffffffffffff2f2f2fffefefefffcfcfcfffefefefffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffeff
+fffdfbfcfffffffffffffefafffffffcff7b726aff473f37ff52473cff54493eff644f3eff665040ff685141ff675140ff654e3dff634c3bff634c39ff644c3aff69503dff68503cff6a513dff6e5440ff745a45ff785e49ff795f4aff785e49ff715a48ff6d5643ff68513fff654e3cff644e3dff634d3cff604b3bff5e4838ff5d4839ff5b4738ff584437ff574436ff564336ff544134ff513e31ff4e3b2eff493f37ff3f35
+2dff3c342fffd5cec9fffffdfbfffffffdfffffffffffcfcfcfffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffefffafff2f6eeffeeebe1ff9f9b91ff5a4b3dff625445ff7d6451ff735b48ff7d5e48ff81624cff8b6b53ff987860ffa78a72ffba9c84ffc7ac95ffd1b69effceac94ffc19e87ffad8b73ff9b7861ff8e6d56ff886750ff81644fff80634eff755e4eff6f5848ff6f5e54ff4c3c31ff514843ffe1d8d3fffffefefffdf7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffcfcfcfffffffffff8f8f8fff5f5f5ffffffffffe8e8e8ff888888ff18201cff262e2a
+ff232a26ff222925ff363c38ff3b413dff3e433fff505451ff4f514eff4f514eff50514eff545552ff585754ff565653ff52504eff4c4b48ff454a4aff4a4f4eff464c4bff3b403fff363b3aff373c3bff303534ff242928ff191e1eff2c3231ff111615ff222827ffa8adacfffbffffffe7edecfffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffafafafffffffffffffffffffbfbfbfff7f7f7fff9f9f9fffbfffffff2f8f7ffeef3f2ffe9eeedffb1b6b5ff555a59ff191e1dff0e1413ff0c1111ff101615ff171c1bff1c2120ff1d2222ff1a201fff161b1aff131817ff191919ff3a3a3aff858585ffdadadafffffffffffd
+fdfdfffffffffffffffffffffffffffafafafff8f8f8fffdfdfdfffffffffffffffffffcfcfcfffcfcfcfffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffcfafafffffffffffffaf6fffffffcffb1a8a0ff3b322aff574c41ff54483eff664f41ff685143ff6b5445ff6b5445ff6a5142ff674e3fff664d3cff664d3cff6c513fff6c513eff6d513dff6e523eff725540ff735641ff745641ff
+735640ff6d543fff6b523eff69513dff68503cff67503cff664f3bff634d3bff614b39ff5e4a38ff5d4837ff594635ff584535ff574535ff554333ff513f30ff4e3d2dff4b4139ff3b322aff4e4742fff5ede8fffffffdfffffffdfffcfcfcfffffffffffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffaffeef2ebfffffff8ffe4e1d7ff988a7cff6f6153ff654c39ff705845ff7e5f49ff82634dff8c6d55ff9c7c64ffae9078ffc5a890ffd7bca4ffe3c8b0ffe1bea7ffd1ae97ffb9977fffa4826aff94745cff8c6b
+54ff826550ff7e614cff765f4eff644d3cff54443aff7c6b61ffc1b7b3fffffffbfffdf7f6fffffefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffbfbfbfffdfdfdfffffffffffdfdfdffacacacff313131ff1c2420ff1f2723ff242b27ff2a312dff363c39ff444a46ff4b504cff474c48ff4b4d4aff4a4c49ff4a4b48ff4a4b48ff4a4947ff474644ff444240ff403e3cff3a403fff434948ff474c4bff414746ff3c4241ff3a3f3fff333938ff2a302fff242929ff
+232928ff1f2423ff111615ff363c3bffd2d8d7fffbfffffff9fefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffffffffffffffffffcfcfcfffffffffffffffffff3f8f7ffe2e7e6ff989e9d
+ff343a39ff0c1110ff232928ff323837ff222827ff2f3433ff2c3130ff272d2cff232928ff212726ff222827ff242a29ff262c2bff1d1d1dff2d2d2dff202020ff171717ff5c5c5cffcececeffffffffffecececfffffffffffffffffffdfdfdfff9f9f9fffbfbfbfffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffdfbfbfffffffffffef9f6fffffffcffe3da
+d2ff514841ff584d42ff554a3fff664f41ff695245ff6e5647ff6e5748ff6d5545ff6a5142ff69503eff684f3eff6e5340ff6e5340ff6f533fff6f533fff70533eff70543eff71543eff71543eff6b523dff6b523eff6b523eff6b523eff69513eff67503cff644e3cff634d3bff604b3aff5e4938ff5b4737ff5a4736ff584636ff564434ff524131ff503e2fff443a32ff423830ff7a736dfffffaf5fffffffdfffffefcfffb
+fbfbfffffffffffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4fcf7fffafffcfffffff9ff
+f8f8f0ffefe3d6ffab9e92ff77604eff7b6352ff7f604bff81624dff886852ff91725bff9d806affae917affbaa089ffc3a992ffc7a48effbb9781ffa98670ff9b7861ff8f6f59ff896852ff7e614eff795d49ff6d5748ff7a6455ff7b6c64ffdccdc5fffffffdfffff8f6fff3eff1fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff7f7f7ffffffffffffffffffc1c1c1ff5b5b5bff202020ff303935ff0c1510ff232b27ff434b47ff383e3aff3e4541ff4e53
+4fff383d39ff3e403dff3f413eff3f403dff3e3f3cff3c3b38ff3a3936ff3a3835ff3a3836ff343a39ff373d3cff3b403fff3c4241ff3e4443ff3e4443ff3d4241ff3a403fff454b4aff1a201fff1a201fff212726ff050b0aff6a6f6efff8fdfcfffafffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffff7f7f7fffbfbfbfffffffffffefefeffeaeaeaffb0b5b4ff4b504fff060c0bff161c1bff2d3332ff1e2423ff181d1cff2a2f2fff2a302fff2d3332ff303635ff323736ff2f3534ff292f2eff232827ff1e2423ff2d2d2dff191919ff1a1a1aff252525ff161616ff1a1a1aff757575ffe9e9e9ffefefefffffffffff
+fffffffffcfcfcfffafafafffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffefefffffffffffffefbfffffcf9fffff9f1ff8c837bff54493eff584d42ff664e42ff6a5246ff6f574aff71594cff705749ff6d5446ff6c5242ff6b5141ff6f5342ff705442ff725541ff725541ff735440ff72543fff74553fff745540ff6d543eff6e553fff6e553fff6d543f
+ff6a533eff69513cff66503cff66503cff624e3bff604c39ff5d4a38ff5c4a38ff5a4938ff584736ff544433ff524130ff41372fff5c524affbdb6b1fffffffafffffffdfffffffdfffcfcfcfffffffffffcfffffffcfffffffcfffffffcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffbfffafffcfff9f8f0fffffff9fffffff5ffede1d4ffc9b1a0ff846c5bff7f604bff7f604bff81624bff84644eff876a53ff8e715aff927861ff977c66ffa17d67ff99755fff8f6c56ff8a6750ff866550ff83634dff7a5e4aff755945ff755f50ff9c8677fffa
+ebe3fffffbf3fffffefcfffffefcfffffefffffffbfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffff7f7f7fffffffffff8f8f8fffffffffffdfdfdff848484ff222222ff3e3e3eff131c17ff29322dff2d3631ff28302cff333935ff3d4440ff3d413eff393e3aff383b37ff3b3d3aff3e3f3cff3c3d3aff3c3b38ff3c3b38ff403e3bff43413eff3c4140ff343938ff2e3333ff2f3434ff343938ff383d3cff3b4140ff3e4443ff2d3332ff494e4dff1d2322ff121817ff181e1dff1e2423
+ffb6bcbbfffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffffffffffffff7f7f7ffffffffffffffffffd8d8d8ff909090ff202524ff1d2222ff1f2424ff262c2bff2c3130ff2e3333ff313636ff363b
+3bff363c3bff363c3bff363c3bff363c3bff353a39ff333938ff323837ff313736ff2f2f2fff2a2a2aff2c2c2cff2f2f2fff222222ff151515ff1f1f1fff353535ffcbcbcbffeeeeeefffffffffffffffffff9f9f9fffffffffffffffffff6f6f6fffffffffffffffffffffefffffffefffffffefffffffefffffffefffffffefffffffffffffffffffffffffcfffbf5f2fffffff9ffc1b8b0ff4f443aff5c5146ff654e42ff6a
+5246ff6f574bff725a4dff72594bff6e5647ff6e5343ff6c5242ff705442ff715543ff745643ff735643ff745641ff745541ff755741ff775842ff6f553fff705640ff6f5741ff6e5640ff6b533eff69513dff67513dff67513dff64503dff624e3bff5f4c3aff5e4c3aff5c4b3aff5a4938ff564635ff544332ff453b33ff786e67fff4ece7fffffffafffffffdfffffffdfffdfdfdfffefefefffcfffffffcfffffffcffffff
+fcfffffffefffefffefffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefffff8fcfffff8fafcfffafcfffffffffefffdfcfbfff6f1ebffe9e5df
+ff928a7fff787065ff6a5d4eff6b5f4fff766754ff766754ff786752ff7b6a55ff776752ff766651ff786855ff796956ff6c6050ff665a4aff70685dff877e73ffddd9d3fff3eee9fffffffefffffffefff7f9fcfff7f9fbfff9fcfffffbfefffff8f5f8fffffefffffffefffffffefffffcf9fdfffffcfffffffefffffffcfffffefbfefffffefffffffefffffffefffffffdfffffffefffffffefffffffefffffffffffffefe
+fefffcfcfcfffbfbfbfffcfcfcfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffdfffffffdfffffff7f9fbfffdfffffffefefefffafafaffdcdad6ff3d3b37ff3d3933ff3b3631ff1b2120ff232928ff2d3232ff333938ff333938ff313736ff2f3534ff2f3434ff333837ff343a39ff353b3aff37
+3c3bff373d3cff363c3bff353b3aff343a39ff36393bff36393bff33393aff323839ff2e3837ff2d3636ff2b3735ff2a3634ff353e3dff242e2cff2b2f2eff151918ff1a1716ff22201fff605959fffff9f9fffffffffffbfbfbfffffffffffffffffffbfbfbfffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f9fafffefffffff7f8fafffcfefffffdffffffdfe1e4ff696b6dff1f2123ff181f18ff202720ff2c322bff343a34ff3a3e38ff393e38ff3a3b36ff393a35ff40403bff43433eff484641ff484641ff46423dff413d38ff3e3935ff3c3733ff2f3433ff2b3130ff292e2dff262c2bff262a29ff212525ff1c1f1eff161919ff212322ffa5a7a7fffffffffff4f4f4fffffffffff8f8f8fffdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffffffffffbfbfbfffffffffff1f1f1ff767676ff454545ff67543cff645038ff7d644cff826952ff75533eff785741ff855e49ff734d38ff7d5842ff7d5842ff775942ff7a5c45ff746047ff756048ff6e6046ff6c5e44ff795947ff765645ff745343ff735242ff755342ff765443ff745343ff735342ff7153
+42ff6b4e3cff5f4836ff664e3cff685643ff5b4a37ff50432fff5b4d3aff414141ffb6b6b6fffcfcfcfffbfbfbfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfefffff8fcfffff8fafcfffbfdfffffffffefffffffefffffdf7fffbf6f1fffffff6ffe2d9cfffb3a797ff8d8071ff786855ff6b5c49ff72614cff7d6d58ff84745fff756550ff6a5b48ff70614eff807465ffa49888ffd1c9befffbf3e8fff4f0eafffffbf5fffffffefffffffefffafcfffffbfdfffff9fdffff
+f8fbfffffffcfffffffefffffffcfffffcf9fcfffaf7fafffcf9fdfffdfafefffdfafefffffdfffffefcfffffdfafdfffcf9fcfffdfafdfffefcfffffefbfefffcf9fdfffdfdfdfffffffffffffffffffffffffffffffffffffffffffcfcfcfff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffdfffffffdfffffffafcfe
+fffcfefffffafafafffdfdfdff9b9895ff383532ff3c3732ff38342eff252b2aff2a2f2eff2e3433ff313635ff303635ff303534ff313635ff323837ff343938ff353a39ff363b3aff363c3bff363c3bff363b3bff353a3aff343a39ff323537ff323537ff2e3436ff2d3335ff293333ff283232ff263230ff25312fff2e3736ff222b2aff292d2cff151919ff1b1918ff1f1d1cff4b4443ffcec7c7fffffffffffbfbfbffffff
+fffffffffffffcfcfcfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffefffffff5f5f7fffdfffffffdffffffdfe1e3ff555759ff333538ff242629ff212822ff282f29ff323832ff3b413aff40443eff424640ff444640ff444641ff494943ff494944ff4c4a45ff4c4a45ff4d
+4944ff494641ff47423eff443f3bff3a403fff363b3bff303635ff2c3130ff292d2cff242827ff1e2221ff191d1cff1a1c1cff292b2bffa2a2a2fffcfcfcfffafafaffffffffffe0e0e0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffdfdfdffffffffffbfbfbfff595959ff6d5941ff725e46ff6a513aff6f563fff8e6d57ff84634dff
+77513cff855f4aff7f5a44ff805b45ff7d5f48ff81634cff7d6950ff7f6a52ff796a51ff77694fff836452ff80614fff7e5d4cff7b5a49ff7a5848ff785645ff745342ff715140ff664837ff7a5c4bff715a48ff604937ff5c4a37ff614f3cff584b37ff524431ff848484ffdadadafffffffffffdfdfdfffffffffffffffffffbfbfbfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffffbfdfffffbfcfefffbfdfefffffffffffffffffffffffcfffffffcfffffbf3fffffaf2fffffcf1fffffbf0fff2e7
+daffd3c8bbffbdb1a2ffb4a99affafa495ffb6ab9cffcbc0b3ffeadfd2fffdf5eafffffbf0fffffdf6fffffff9fffffffcfffffffcfffffffffffdfdfdfffdfffffffdfffffffcfefffff7fafdfffefdfffffbfafdfffbfafcfffefdfffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffdfdfdfffdfdfdfffdfdfdfffdfdfdfffefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffffffffffffffffffdfffffffdfffffffdfffffff5f6f8fffefefcfffbfaf9ff534f4bff3a3632ff413b35ff403b34ff303430ff303430ff303330ff2e312eff2e312eff303330ff343734ff383b38ff363935ff363936ff363a36ff373a37ff373a37ff363a36ff363936ff353835ff
+373938ff363837ff323636ff303433ff2b3231ff29302eff262e2dff252d2cff252c29ff202724ff282b29ff1a1c1aff23201eff24201fff352e2dff8d8685fffdfdfdfffdfdfdfffdfdfdfffffffffffffffffffdfdfdfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffff
+fffdfeffffececeeff6c6d6eff262728ff070809ff292a2cff252c28ff2c332eff363c38ff3e4540ff454a46ff494e49ff4d504cff4f524eff525450ff50514dff504f4cff50504cff54524fff53514eff504e4bff4d4a47ff434a4aff3f4646ff394040ff333939ff2e3334ff282d2eff232728ff1f2323ff232526ff000001ff323435ffafb0b1fffcfcfdfffffefffffffefffffffeffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafafffffffffff8f8f8fffefefefff7f7f7ffffffffffffffffff939393ff5a4c37ff71634eff6e5a45ff65513cff80634eff81644fff7d5944ff86624eff84604aff87624cff8a6951ff917158ff937a5fff977d63ff937f63ff927e62ff987762ff94735eff8e6d58ff886652ff83614eff7d5b48ff765644ff725240ff6d5140ff715544ff66503fff624c3bff605140ff5d
+4e3dff584d3cff615645ffd1d1d1fffdfdfdfffffffffffbfbfbfffffffffffffffffffafafafffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfefffffcfefffffdfefffffbfdfffffbfbfbfffcfcfcfffffffbfffffffcfffffff9fffffff9fffffff4fffffef3fffffaecfffff8ebfffffff1fffffff3fffffff3fffffff3fffffceefffffef1fffffff6fffffff6fffffff9fffffff9fffffffcfffffffbfffcfcfcfffbfbfbfffdfefffffdfffffffcfefffff9fcfffffffefffffcfbfefffefdfffffffeff
+fffffefffffefdfffffcfbfefffffefffffcfbfefffaf9fcfffaf9fcfffdfcfffffefdfffffdfcfefffcfbfefffefdfffffffffffffffffffffffffffffdfdfdfffcfcfcfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffffffffffffffffffdfffffffdfffffffdfffffff4f5f7fffffffeffdadad8ff2c2924ff3f3b
+37ff413b35ff49443dff353835ff333632ff2f332fff2c302cff2c2f2bff2e322eff323532ff353835ff353935ff363936ff363a36ff373a37ff373a37ff363936ff363936ff353835ff363838ff353736ff313534ff2e3231ff29302eff262d2cff232b29ff212928ff1f2523ff202725ff292b29ff212321ff2f2c2aff2f2c2aff2e2725ff5c5553fff2f2f2fffefefefffafafafffffffffffffffffffafafaffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffcfdfeff7d7e7fff353638ff262728ff141617ff28292bff242b27ff2c332eff363d38ff404641ff474b47ff4a4f4bff4d514dff4f524eff51524eff4c4d4aff494945ff4b4a47ff504e4bff52504dff4f4d4aff4b4946ff424949ff
+404747ff3e4445ff3a4040ff353a3bff2f3434ff2a2e2fff262a2bff282b2cff1a1d1eff080a0bff414243ffc8c8c9ffecebedfffffefffffbfbfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffff6f6f6fffffffffffcfcfcfff5f5f5ffffffffffdededeff887a65ff675944ff6b5742ff75614cff745743ff7a5e49ff8b6753ff7e5a46ff8b6650ff906b55ff96765d
+ffa3826affa99075ffb2987effb19d81ffb29d81ffb4937effac8b76ffa07f6aff94735eff8a6855ff82614eff7b5b49ff775745ff795c4bff654938ff5e4838ff735d4cff675847ff4f402fff6c604fffb6aa99fff9f9f9fffffffffffffffffff8f8f8fffefefefffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefffffefffffffffffffffffffffffdfdfdfffbfbfbfffdfcfbfffffdfcfffbf9f6fffcfaf7fffffefafffffffcfffffffbfffffffafffffbf6fffefaf5fffdf9f4ffff
+fbf5fffffffbfffffffbfffffffcfffffefafffbf9f6fffaf7f4fffdfcfbfffefcfbfffdfdfdfffffffffffffffffffefefefffdfefffffefffffffcfffffffcfffffffcfffffffcfffffff7fbfcfff3f7f8fff5f8f9fffafefffffafefffffafdfefffcfffffffcfffffffcfffffff9fcfdfffcfffffffcfffffff3f3f3fff6f6f6fff9f9f9fffdfdfdfffffffffffffffffffffffffffefefeffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffdfffffffdfffffffffffffff7f7f7fffffffdffa4a29fff2c2721ff413c36ff3d362dff4f483fff43433cff403f39ff3c3b35ff383731ff36352eff34342dff34332dff34332cff36352fff373730ff393932ff3b3a34ff3c3b34ff3b3a33ff393832ff383731ff312f2cff302f2bff2e2f2bff2e2e2aff2c2d29
+ff2b2c28ff292c28ff292b27ff2b2c28ff2f312dff33322eff302e2aff3c3734ff3c3634ff312927ff403836ffddddddfffefefefffafafafffefefefffffffffff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f2f2ffaaaaaaff3d3d3dff2b2b2bff212121ff2020
+20ff313131ff282f2dff2f3635ff383e3dff404645ff434847ff424847ff414645ff414544ff424444ff3c3f3fff393b3bff3a3c3bff404040ff424242ff404040ff3d3d3dff363d3fff384041ff3a4143ff3b4244ff383e40ff32393bff2e3335ff2b3032ff202426ff292d2fff191b1eff141719ff595a5dffebedf0fff4f5f7fff7f8fbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
+fefefffffffffffafafafffffffffffffffffff7f7f7fffbfbfbffffffffffe4dfceff7f7a69ff544837ff665a4aff76604eff725c4bff7f614dff7c5d4aff8b6852ff926f59ffa07d63ffb28f76ffc3a386ffd1b195ffd8ba9cffdbbe9fffd2b298ffc6a58cffb3927affa07f66ff906f5aff866550ff7d5f4cff7a5c49ff6f5545ff6f5545ff6a5849ff6a5849ff574b3eff5b5043ffa59d91fffffff6ffffffffffffffffff
+fcfcfcfff9f9f9fffefefefffefefefffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffbfcfdfffdfefffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffefbfffffcf8fffffefafffffffbfffffffbfffffffbfffffffbfffffffafffffffafffffef9fffffcf8fffffcf8fffffffbfffffffdfffffffdfffffdfcfffffefdfffffffffffffffffffffffffffcfcfcfffbfcfdfffefffffffcfffffffcfffffffafdfefff5f8f9fff5f9fafffcfffffffcfffffffcfffffffcff
+fffffcfffffffcfffffffcfffffff8fbfcfff3f6f7fff6fafbfffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffdfffffffdfffffffcfcfcfffffffffffffffdff777572ff3d3832ff423d37ff3f382fff524b42ff4f4e48ff4c4b44ff47
+4640ff43423cff403f38ff3c3b34ff373630ff34332cff2f2e28ff32312bff36362fff3a3933ff3b3b34ff3a3932ff373630ff35342eff32302dff33312dff32322fff343430ff343632ff363733ff353834ff363935ff383935ff3d3e3aff3d3b38ff3a3935ff423d3aff3d3735ff342c29ff322a28ffc3c3c3fffefefefffcfcfcfffefefefffffffffffafafafffffffffffdfdfdffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffebebebff525252ff393939ff1f1f1fff1c1c1cff2d2d2dff2e2e2eff323938ff363d3cff3c4241ff3f4544ff3e4342ff3a3f3eff373b3bff353939ff3c3f3fff393c3bff373939ff373939ff3c3c3cff3d3d3dff3b3b3bff393939ff2c3436ff30383aff353d3eff373e40ff363c3eff32383a
+ff2f3436ff2e3335ff25282bff24282aff25272aff16191bff1c1d20ff97999cfffdfefffffafbfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f2f2fffffffffffffffffff2f2f2fffffffffffffff3ffdcd7c6ff8b7f6eff574b3aff6a5543ff715b49ff745642ff826350ff88654fff8f6c56ff9d7a61ffb08d74ffc3a387ffd4b498ffdec1a2ffe3c6
+a7ffdabaa0ffccac92ffb8967effa28169ff91705aff866550ff7e5f4cff7b5c49ff6c5242ff7d6353ff685647ff513f31ff665a4dffaca094ffece5d9fffffff6fffefefefffcfcfcfffdfdfdfffffffffffefefefffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffffffffffffffffffffffffffbfcfefffcfdfffffdfffffffdfffffffdfffffffbfdfffff7f9fbfff2f4f7fffdfffffffdfffffffdfffffffdfffffffcfdfffffafcfdff
+fafbfcfff9fafbfffffffffffefefefffefefefffffffffffffffffffcfcfcfffcfcfcfffffffffff3f9f8fff9fffefff7fefdfff3f9f8fff9fffffff9fffffff9ffffffe7edecfff5fcfbffe0e6e5ffcdd3d2ffc6cdccffc4cac9ffbfc6c5ffc2c9c8ffcad0cfffe6e8e7ffebedecfff2f4f4fff9fbfafffdfffefffdfffffffbfdfdfff9fbfbfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdffff
+fffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffcf8ff64615cff443d34ff413a31ff473e32ff534a3eff554f45ff524c42ff4f493fff4e473dff4e473dff4b453bff484137ff443e34ff3e382eff433c32ff494339ff4f493fff514b41ff4f493fff4b453bff484238ff474139ff474239ff474239ff47423aff47423bff47423bff47423cff47433cff433e38ff4943
+3dff46403bff46403bff453d39ff3b332fff352c29ff2e2522ffa9a9a9fffcfcfcfffffffffffdfdfdfffffffffffcfcfcfffffffffffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefff6f5f3ff9b9998ff484744ff272523ff353330ff171411ff45433fff2b2825ff363c3bff383e3dff393f3eff39
+3e3eff363c3bff343a39ff353a39ff353a39ff3b3f3fff3a3f3eff3a3e3eff3a3e3dff3a3e3dff393d3cff393c3cff383c3bff2c3335ff2f3638ff31383aff313839ff2e3536ff2c3234ff2d3234ff2e3335ff2e3234ff292d2fff232628ff1d2022ff16171aff333537ffebeceffffdfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffafafafffbfbfbff
+fffffffffdfdfdfff9f9f9fff6f8edfffffff7ffdfdbcfff8a867aff6f6254ff695b4dff6f5848ff796151ff81624eff846652ff916f57ff9e7c64ffaf8c71ffbc9a7effc5a386ffc9a78affbea186ffb3977bffa4876dff94775eff886b54ff80634dff785d4bff755a48ff6f5a4cff715c4eff615248ff726459ffb1aaa1fff6eee6fffffffafffcf9f1fffffffffffcfcfcfffffffffffffffffffdfdfdfffefefeffffffff
+fffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfd
+fdfffffffffffffffffffffffffffffffffffdfefffffefffffffdfefffff9fbfcfff8f9fcfffbfcfffffdfffffffdfffffffafcfffffcfefffffcfefffffdfffffffdfffffffdfffffffefffffffbfcfefffffffffff9f9f9fff7f7f7fffcfcfcfffefefefffdfdfdfffefefefffffffffff3f9f8fff9fffffff9fffffff6fdfcfff9fffffff9ffffffd9e0dfffafb6b5ff636968ff414746ff212726ff161c1bff151b1aff12
+1918ff131a19ff181e1dff252727ff4b4d4cff878988ffc4c5c5ffeef0f0fffdfffffffdfffffffdfffefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffff7f3eeff5c5853ff3a332aff383128ff473e32ff4a4135ff4d473dff4b453bff4a443aff4c463cff504a40ff534c42ff524c42ff
+504a40ff534d43ff595349ff625b51ff696258ff6b655bff696258ff645e54ff605a50ff544e46ff534d45ff504b43ff4e4940ff4a453eff47433bff45413aff443f39ff403b35ff47413cff463f3aff49423dff443c38ff372f2bff362d29ff2e2522ff999999fffcfcfcfffffffffffdfdfdfffffffffffdfdfdfffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffefffffffefff2f0efff413f3eff282624ff413f3cff262320ff373431ff24221eff3e3b38ff323837ff323837ff323837ff313736ff303635ff333938ff373c3cff3b403fff363b3aff383c3cff393e3dff393d3cff373b3aff343838ff343838ff353838ff2f3739ff303839ff2f3638ff2c3335ff282e30ff272d2fff2a2f31ff2d3234ff292d2fff2a2e30ff282b
+2dff2c2e31ff0a0b0eff2c2e30ff8b8c8ffffdfefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f2f2fffffffffffffffffff6f6f6fff5f5f5fffffffffffffffffffffff7fffafcf0fffffff6fff1eee2ffa99b8eff6f6154ff745d4cff765f4fff80624eff80624eff87654dff8c6b52ff967458ff9e7b60ffa38163ffa58365ff9d8065ff977a5fff8e7158ff866950ff80
+634dff7c5f49ff765c4aff745948ff725c4eff665042ff786a5fffc8baaffffffef6fffffff8fffdfaf2fffffffafffffffffffbfbfbfffffffffffffffffffbfbfbfffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffefffffffefffffffcfefffffcfefffffbfefffffbfefffffafefffffafefffffafefffffafefffffafefffffafefffffafefffffafefffffbfefffffbfefffffcfefffffcfefffffefffffffefffffffefefe
+fffdfdfdfffdfdfdfffffffffffffffefffffffefff9fffffff9fffffff8fffefff3f9f8ffccd3d2ff6f7574ff212726ff111817ff171e1dff1b2221ff202726ff232928ff222928ff202726ff1f2625ff1f2524ff202322ff272a2aff181b1aff070a0aff343737ff969999ffe4e7e6fffdfffffffdfffffff2f5f4fffdfffffffdfffffff5f8f8fff7fafafffdfffffffcfffffffffffefffffffeffffffffffffffffffffff
+fffffffffffffffffffffffffffffefcf9fffffffdffede8e1ff635e57ff3e3529ff41382cff4a3f30ff564a3cff514436ff514537ff524638ff544739ff55483aff564a3cff574a3cff574b3dff615446ff675b4dff746759ff827567ff8a7d6fff84786aff776a5cff6a5e50ff5a5043ff564c3fff51473aff4e4437ff4e4237ff4d4236ff4c4036ff4b3f35ff473b33ff4d4038ff443731ff473b34ff4a3e39ff3d312cff38
+2d28ff372d28ff929292fffbfbfbfffffffffffcfcfcfffffffffff7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfdfefff6f7f8fffffffffffefefefffffffffff5f5f5fffffffefffdfbfaff9d9b97ff45423fff312d29ff413e39ff2b2721ff2a2520ff45403aff433e38ff353736ff323533ff313432ff323634ff363937ff373b39ff363a38ff343735ff
+393e3cff3a3e3cff393e3cff373c3aff353a38ff353a38ff363b39ff383d3bff303635ff303635ff2f3534ff2e3433ff2e3332ff2d3231ff2d3130ff2d3030ff2f3131ff353737ff282828ff2d2d2dff212121ff2f2f2fff424242ffeeeeeefffffffffff8f8f8fffffffffffffffffffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffbfff7fcf7
+fffcfcf6fffffffbfffff9f0ffd6d0c7ff9f9084ff6d5e52ff796354ff776151ff7c614eff7f6451ff886a54ff896b55ff86674fff81624aff79654dff7e6951ff816c56ff7f6a54ff786351ff745f4cff725d50ff746052ff706056ffae9e94ffeae0dafffffff9fffffffcfffffffcfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffefffffffefffffffc
+fefffffcfefffffbfefffffbfefffffafefffffafefffffafefffffafefffffafefffffafefffffafefffffafefffffbfefffffbfefffffcfefffffcfefffffefffffff4f5f7fffafafafffffffffffffffffffbfbfbfffffefcfffffffeffeef5f4fff9ffffffd7deddff757c7bff252c2bff0d1312ff181e1dff282f2eff232928ff252c2bff272e2dff282e2dff272d2cff262d2cff262d2cff272e2dff1e2121ff1d1f1fff
+282b2bff2f3232ff181b1bff101312ff4c4e4eff9da09ffff6f9f9fffdfffffffcffffffe9ecebfffdfffffffafdfdfff7fafafffdfffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffdfff8f3ecff5f5a53ff463c31ff483f33ff524739ff54483aff544739ff544739ff544739ff544739ff55483aff564a3cff574b3dff584c3eff615547ff6a5d4fff796c5eff887b6d
+ff8f8375ff897c6eff796c5eff6c5f51ff5b5144ff574e40ff53493cff504639ff504439ff4f4438ff4e4238ff4d4137ff463931ff4d4038ff4c3f39ff4c4039ff473b36ff3e322dff372d28ff2e231eff9b9b9bfffbfbfbfffffffffffcfcfcfffffffffff8f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffafbfcfffffffffffefefefffffffffffafa
+fafffffffefff7f6f4ff6a6764ff35322fff36322eff4c4843ff3b3731ff322e28ff403b35ff3e3933ff303331ff2f3130ff2e312fff303331ff333635ff353937ff353836ff333735ff333735ff353937ff363b39ff363b39ff353a37ff343937ff343937ff353a38ff313736ff303635ff2f3433ff2c3231ff2b2f2fff292d2dff282b2bff272a2aff353737ff3a3c3cff2a2a2aff303030ff242424ff2d2d2dff2d2d2dffb9
+b9b9fffffffffffbfbfbfffffffffffefefefffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffbfff9fef9fffffffafffffffbfffffff8fffffaf2fff0e1d5ffdacbbfff9b8576ff8d7768ff816653ff755a47ff785a44ff7d5f49ff85664eff886951ff816d55ff7b664eff705b45ff68533dff6a5442ff7a6553ff907c6effa38e80ffecdcd2ff
+fff6ecfffffff9fffffff9fffffcf8fffffcf8fffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffdfffffffdfffffffefffffffefffffffffffffff3f3f3fffcfcfcfffffffffffafafafff8f8f8fffffffeffffff
+fefffcfffeffafb3b1ff525754ff1f2321ff181c1aff262b29ff2e3230ff262a28ff313633ff323734ff333735ff323634ff303532ff313533ff323734ff343936ff3b403fff272b2aff1f2323ff262b2aff222626ff111615ff111514ff1f2322ff737877ffd7dbdafff8fcfbfffbfffffff3f7f6fffbfffffff3f7f7fffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffc
+f9f5fffffff7ff665f56ff4a3f31ff54493bff5c4e3dff564837ff5f4d3cff5e4c3aff5c4a38ff5a4837ff5b4837ff5c4a38ff5e4c3aff5f4d3bff655341ff6e5c4bff7e6c5bff8e7c6aff958271ff8d7b6aff7e6c5aff715e4dff615341ff5e503eff5b4b3aff584837ff594738ff584637ff584438ff564236ff4f3c32ff523e34ff55443cff4f3e36ff41332dff42342dff3b3029ff2c201affabababfffcfcfcffffffffff
+fcfcfcfffffffffff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffbfcfefffefffffffbfcfdfffffffffffcfcfcfffffffdffe3e1dfff3a3632ff2e2b26ff3e3932ff514c45ff49433bff3c362eff3e372eff40382fff2f2d29ff2e2c28ff2e2d28ff302f2bff34342fff373732ff373934ff373934ff353631ff373934ff393c37ff393d37ff363a35
+ff343833ff323731ff323731ff353733ff333632ff32342fff30312dff2d2e2aff2a2c27ff292925ff282824ff31302cff393834ff302e2aff3a3834ff35322eff3b3834ff2a2723ff888480fffbfbfbfffffffffffffffffffdfdfdfffdfdfdfffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffcfffffffffffefffffffefffffffdfffffffdffffff
+fafffffffafffff3eaffe7dbd3ffc8b9aeffa7978cff928073ff857265ff7f6b5dff7c685aff746b5cff7a7262ff877d6fff998f81ffb3a79cffd5c9befff5e8e1fffffef6fffff6f1fffffdf9fffffffcfffdf8f6fff6f6f6fffdfdfdfffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfeffff
+fcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffcfefffffdfffffffdfffffffefffffffefffffffffffffffdfdfdfffffffffffdfdfdfff0f0f0fffffffffffffffefff0f0eeff9ca09eff3a3f3cff090e0cff242926ff393d3bff353a37ff313533ff2d312fff343936ff363b38ff383c3aff383d3aff373c39ff373c39ff383d3bff3a3f3cff363a39ff3e4241ff363a3aff242928ff262a2aff323736ff2a2e2e
+ff121615ff0c100fff505454ffd7dbdafffbfffffffbffffffeaeeedfffbfffffff8fdfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcf9f6fffffff8ff7c756cff423729ff594e40ff584b39ff594b3aff645241ff62503eff5f4d3bff5c4a38ff5b4938ff5d4a39ff5f4d3bff604e3dff614f3dff695746ff776553ff837160ff897765ff83715fff776553ff6d5b49ff6053
+41ff5d503eff5b4c3bff594a39ff5a4839ff594738ff584538ff574337ff554238ff4e3a30ff53423aff493830ff3b2d26ff43352fff3c302aff31251fffc0c0c0fffcfcfcfffffffffffcfcfcfffffffffffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfdfffffbfdfefffcfdfefffafbfcfffffffffffafafafffffffdffbcbab8ff2e2a26ff383530ff43
+3e37ff49433dff4a443bff423c34ff40392fff463e35ff2f2e29ff2f2d29ff2f2d29ff302f2aff32322dff353530ff363732ff373934ff393b36ff3b3c37ff3a3d38ff393c37ff343933ff313530ff2f342fff2f342eff2e302cff2d302bff2d2f2aff2c2d29ff2b2c28ff292b26ff292a25ff292925ff2d2c28ff393834ff3c3935ff484541ff45423eff46433fff2d2925ff5e5b57ffefefeffffffffffffffffffffdfdfdff
+fffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffefffcfffffffffffefffdfefcfffbf8f5fffaf8f4fffffcf6fffffffafffffff8fffffff8fffffdf2fffff6ebfffff2e5ffffede0fffce8dafff8e3d6ffe2d9caffece3d3fff8eee1fffff9ebfffffcf1fffffdf2fffffcf4fffffcf4fffffef9fffffffbfffffffdfffffdfafffefefeffffffff
+fffafefdfff2f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffefffffffefffcfcfcfffffffffffffffffff7f7f7fffcfcfcffffffffffe9e9e9ff9c9c9cff292a27ff1f201dff2c2d2aff383936ff2c
+2d2aff2e2f2cff3d3d3bff3e3e3cff3c3d3aff40413eff444542ff474845ff474845ff464744ff464744ff464744ff3a3f3eff3d4241ff3c4140ff333837ff282e2dff232928ff242928ff252b2aff191e1dff0c1110ff414646ffcfd5d4ffebf1f0fffbfffffff3f8f7fffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffefafffffff7ffa69e94ff3d3121ff5a4e3eff
+524330ff60513dff6d5642ff6a5440ff67503cff644d39ff624c37ff634d38ff654e3aff66503cff654e3aff6a543fff725c48ff7a644fff7e6753ff7b6450ff745e4aff6f5944ff63523cff60503aff5f4c38ff5e4b36ff604937ff5f4836ff5e4536ff5c4334ff5d4439ff4e362aff564138ff4f3a31ff42322aff44342cff352921ff3d312affd7d7d7fffdfdfdfffffffffffdfdfdfffffffffffdfdfdffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fbfdfffdfffffffcfdfefffbfcfefffffffffffbfbfbfffaf7f4ff928f8cff36312bff443f3aff464038ff443d35ff4e463cff4e463cff4a4136ff4e453aff403a32ff3f3931ff3c372fff3a352dff37332bff37332bff37342cff38362dff3b3a32ff3c3b32ff3a3b32ff383930ff33362dff31342bff31342bff32352cff2d2d24ff2e2d
+24ff2f2e25ff302f26ff322f27ff333128ff343128ff353129ff3c382fff48443bff514b43ff58524aff4e473fff453f36ff2e271fff3e372fffdededefffffffffffffffffffdfdfdfffffffffffdfdfdfffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefdfffffffefffffffefffffffefffffefefffffdfcfefffcfcfcfffdfdfdfffdfbfafffffdfcfffffffdffff
+fffdfffffffcfffffcf9fffcf5f1fff6efebfffdfff9fffffffbfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffefffffffefffffffffffffcfcfcfff9fbfdfffcfffffffafffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffefffffffefffffffefffffffefff8f8f8fffffffffffefefefffdfdfdfffffffffffafafaff9d9d9dff383838ff222320ff2f302dff3d3e3bff3e3f3cff3c3d3aff464744ff4c4c4aff41423fff4b4c49ff50514eff555553ff585956ff575855ff565654ff545552ff535451ff4d5352ff434848ff3b403fff3a3f3eff383e3dff303534ff232828ff1a201fff2b3030ff0d1312ff101514ff4349
+48ffd5dad9fffbfffffffbfffffff4f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffff5ffd4ccc2ff4c3f30ff564a3aff51412eff635441ff6e5843ff6c5641ff6a533fff67503cff664f3bff664f3bff67503cff67513dff68513dff6a5440ff6e5743ff715b47ff725c48ff725b47ff705945ff6e5844ff62523cff60503aff604d38ff5f4c37ff614a39ff60
+4938ff5f4637ff5d4335ff5a4136ff4b3227ff564138ff554036ff4c3c34ff3d2d25ff2d2019ff5e514affedededfffefefefffffffffffdfdfdfffffffffffefefefffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fbfefffdfffffffdfefffffefffffffffffffffefefefff6f3f0ff706d6aff37332dff423e38ff463f37ff474138ff564e44ff595147ff52493eff
+4e453aff4e4840ff4d463fff48433bff433d35ff3c3830ff3a362eff39362eff3a382fff3c3b33ff3e3d34ff3d3e35ff3d3e35ff393c33ff373a31ff373a31ff373a31ff393930ff3a3930ff3c3b32ff3d3c33ff403e35ff423f37ff444038ff454139ff403c33ff47423aff514b43ff565047ff484239ff3c352dff322a22ff2f2820ffc8c8c8fffffffffffefefefffefefefffffffffffafafafffffffffffdfdfdffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefdfffffdfcfffffcfbfefffefdfffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffcfffffffcfffffffcfffffffcfffffffbfffffffbfffefffbfff9fbf6fffaf7f4fffbf8f5fffefaf8fffffcfafff8f4f5fffaf6f7fff9f9f9fff9f9f9fff7fafcfffbfefffffafffffffaffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffafffffffafffffffafffffffafffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffdfcfafffffffdfffbfbfbfffffffffffefefeffb0b0b0ff4a4a4aff191919ff252522ff363532ff42413eff484745ff494845ff42423fff434240ff504f4cff50504dff
+53524fff555552ff565653ff545451ff53524fff52514eff52514eff3a403fff494f4eff4f5554ff454a49ff3a3f3eff353b3aff2f3534ff262c2bff111716ff303635ff0d1312ff131818ff656b6affe2e7e7fffafffffff7fdfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffbfffffdf7fffffff4fffaf2e7ff706352ff544736ff5a4a36ff63533fff715842ff6f5741ff6e553f
+ff6d543eff6b523dff6b523cff6b523cff6b523cff6c533dff6d543fff6f5640ff705741ff6f5741ff6f5640ff6e5540ff6e5540ff65533bff645139ff644f39ff644e38ff664d3aff654c38ff644738ff624536ff5a3f32ff4b2f23ff533c32ff523b32ff4d3b33ff34231bff33261eff9d9088fffdfdfdfffefefefffffffffffdfdfdfffdfdfdfffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffafcfefffcfefffffbfcfefffdfefffffffffffffffffffff5f2efff5a5854ff36312bff3b3630ff453e34ff4c453cff574e43ff5b5247ff574d41ff4d4437ff544b41ff534b41ff51493fff4d453bff484137ff474136ff484439ff4c473cff504e42ff545146ff55554aff56564aff505246ff4a4c40ff45473bff424438ff4a473bff4a473bff4b473bff4b473bff4c483cff4c483cff4d
+483cff4d483cff433c31ff3e372cff463e33ff4d453aff433a2eff393025ff3e3429ff33291effb5b5b5fffffffffffffffffffffffffffffffffff7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffdfafffffaf8fcfff9f8fcfffafbfffffcfcfffffafdfffffafdfffffbfefffffbfefffffbfefffff6f9fcfff3f6f9fff4f7fafff7f9fcfff9fbfeff
+f1fbfcfff2fcfdfff6fdfffff8fffffffbfffffffbfffffffffefffffffefffffffefffffffefffffdfefffffdfefffffbfffffff9fdfffff2f8fbfff0f6f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffcfffffffcfffffffbfffffffbfffffffbfffffffbfffffffafffffffafffffffafffffffafffffffbfffffffbfffffffbfffffffbffffff
+fcfffffffcfffffffdfffffffdfffdfdfdffffffffffe1e1e1ff666666ff171717ff323232ff2f2e2bff494845ff4a4946ff41403dff4a4946ff4c4c49ff494845ff51504dff444340ff444441ff444340ff42413eff3f3e3bff3d3c39ff3d3d3aff3e3e3bff3b4140ff323736ff323837ff3f4544ff444a49ff393f3eff2c3131ff272c2cff232828ff1e2423ff1d2322ff070d0cff242928ff8c9191fff1f7f6fffaffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffbfffcf7f2fffffff6fffffff6ff908272ff524534ff655540ff62513dff705741ff705741ff6f5640ff6f5640ff6d543fff6d543eff6c533dff6b523dff6a513bff6c533dff6e553fff6e553fff6c543eff6b523cff6a523cff6a523cff67543dff65533bff66503aff66503aff694f3cff674e3aff66493aff634737ff5a3e32ff482d20ff
+4b342aff473027ff44332aff2c1b13ff40322bffd7cac2fffffffffffefefefffffffffffdfdfdfffdfdfdfffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fbfdfffcfefffff7f8fafff8fafbfffffffffffffffffff6f3f0ff504e4aff38342dff37322cff433c33ff4d453cff51483dff564d42ff564d40ff4c4236ff4e453bff50473dff50483eff50483e
+ff4f483eff534c42ff575348ff5d584eff676559ff6c695eff6f6f63ff6f6f63ff66685cff5b5d51ff505246ff4a4c40ff4b493cff4b483cff4a463aff484539ff474337ff464135ff454034ff453f33ff4b4439ff3c352aff3f372bff463e32ff3c3328ff352c21ff40362bff31271cffa9a9a9fffefefefffffffffffffffffffffffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffcfffffffcfffffefdfffffffefffffdfefffffdfefffffafdfffff9fcfffff5f9fcfff9fdfffffbfffffffbfffffffcfefffffcfefffffcfefffffcfdfffff6fffffff6fffffff8fffffff7fffffffbfefffffafdfffffcfbfefffaf9fcfffffdfffffbfafdfff8f9fcfff9fafdfff8fcfffff9fdfffff8fefffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffcfffefffcfffffffdfffffffdfffffffffffffffffffffdfffffffdfffffffefffffffafdffffffffffffffffff81817dff2b2c28ff3d4039ff1f221bff373e39ff3c433eff3f4541ff3c433eff3b413dff3b423dff39403bff353c37ff373e39ff373d39ff373d39ff373d39ff373e39ff383f3a
+ff39403bff3a403cff363439ff37353aff35373cff37393dff343b3eff343c3eff303c3dff303c3dff1e2b2bff2b3737ff222b2bff151e1eff080d0cff2b302fffd1d3d2fffbfcfcfffbfbfefffefefffffdfffffff9fbfdfffbfffffffbfffffff5fbf9fffbfffefffdfffdfff0f4f0fffffffbfffbfcf6ffd6d2ccff48443eff5c554eff564f49ff6e5942ff6d5841ff6d563dff6e563eff745b40ff765d42ff73573bff6a4e
+33ff72553bff765a40ff755a43ff72563fff6d5340ff6f5542ff6c5444ff6a5241ff70533aff6d5037ff6b4f37ff6d5139ff6b523dff6a513cff624e3cff604c3aff433225ff3a2a1cff392c23ff42362cff2d241dff322922ff635b55fffffaf4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefcffffff
+fdfffffbf7fafffffefffffffefcfffdf6f5fffbf1eaff5d534cff43362bff4b3e33ff524536ff524536ff564837ff5a4c3bff584a39ff524433ff574637ff594838ff5a4939ff584738ff584737ff5e4d3eff695849ff736252ff7d6c5cff877666ff907f70ff8f7e6eff806f60ff6e5d4eff615041ff5b4a3bff4d4839ff4c4739ff4e4637ff4c4435ff4e4332ff4c4130ff4d402fff4d3f2eff433525ff504232ff423428ff
+413327ff483c35ff3c3029ff332823ff362b26ffa2a2a2fffffffffffdfdfdfff9f9f9fffffffffff8f8f8fffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffcfffefffcfffffffdfffffffdfffffffffffffffffffffdfffffffdfffffffdfffffffefffff9f7f7ffd6
+d3d4ff494945ff353531ff2e3029ff262822ff282e2aff323834ff393f3bff373e39ff333a35ff333a35ff343a36ff333a35ff373d39ff363d38ff363d38ff363d38ff373d39ff383e3aff383f3aff393f3bff3a383dff39373cff34363bff333539ff2e3638ff2e3638ff2b3738ff2c3839ff2d3a3aff1e2a2bff1c2525ff1c2525ff181d1dff191e1dff808181fff5f6f6fffcfdfffffcfcfffffdfffffffcfefffffafffeff
+fbfffffff8fefcfffbfffefffbfffbfffcfffcfffdfef9fff7f8f2fffffff9ff8c8882ff433c36ff605952ff67523bff6b563fff755e46ff786048ff71573cff674d33ff71553aff81654aff74573dff785b41ff775b44ff745942ff715844ff745b47ff735b4aff715948ff76593fff75583fff71553dff6e523aff6e5540ff705742ff624d3cff543f2eff453427ff423225ff392d23ff2a1e14ff352b24ff322922ffb6aea8
+fffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfbfffffffdfffffef9fdfffffefffffffefcfffff9f7fffcf2ebff625851ff43372cff483c30ff4d3f30ff4f4233ff574938ff5d4f3eff5b4d3cff544635ff594839ff5b4a3aff5b4b3bff5a4939ff5a4939ff604f3fff6a5949ff736252ff8170
+61ff8b7a6aff938373ff918171ff847363ff736252ff665546ff615040ff4e483aff4d4839ff4e4737ff4d4536ff4e4332ff4d4231ff4e412fff4d402fff48392aff504232ff46382cff433529ff42362fff392d25ff322722ff332822ffacacacfffffffffffefefefffafafafffffffffff9f9f9fffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffffffffffffffffffffefffffffefffffffefffffffefffffdfaf9ff888584ff2c2b26ff3c3b36ff303029ff2d2d25ff212723ff2d3330ff363c39ff343a36ff2e3430ff2d3330ff303632ff323834ff363c38ff363c38ff363c38ff363c39ff373d39ff373d39ff373d3aff373d3aff3b3c3eff39393cff3336
+38ff2f3335ff2b3233ff2b3334ff2b3535ff2c3636ff36403eff1f2927ff232928ff222726ff252525ff171717ff333031ffd4d1d2fffffefffffaf9fbfffbfdfefffdfffffffafefefffafffefffbfffefff8fefcfff9fdf9fffcfffdfff2f4effffbfdf8fffffffbffdedad5ff5a544eff59524dff6c5743ff6e5945ff715a45ff705944ff735940ff745941ff7a5d42ff7e6046ff7e5f45ff836449ff84654dff83644cff82
+654fff856752ff836653ff7f624fff7c5e47ff7b5d46ff745843ff6f533eff6f5643ff6f5643ff5a4636ff453122ff36271bff342619ff2f251cff362c23ff1e1812ff7e7871fffffbf6fffffcf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafbfffffdfefffffefefffffffefffffffefdfffffdfcff
+fdf5efff6c645eff473b30ff483c32ff4d3e30ff514234ff5b4b3aff615040ff604e3dff594736ff5c4b3aff5e4c3bff5e4c3cff5d4b3bff5d4c3bff635140ff6b5949ff736150ff837161ff8b7969ff928070ff907e6dff847261ff756352ff6a5847ff655342ff53493aff52483aff534738ff524636ff534433ff514331ff524230ff51412fff4f3e2fff503f2fff4c3d31ff48382cff41332cff3e3028ff372b26ff352924
+ffbdbdbdfffffffffffffffffffbfbfbfffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffffffffffffffffffffefffffffefffffffefffffffdfffff2efeeff484544ff3c3b36ff36342fff3d3d35ff27271fff
+292f2cff313733ff343a37ff313733ff2d332fff2f3531ff323834ff333935ff353b37ff353b37ff353b38ff363c38ff363c38ff363c38ff353b38ff353b37ff3a3a3dff38383bff323638ff303335ff2b3233ff2b3233ff2a3434ff2b3434ff2a3331ff2b3533ff2e3332ff202625ff1e1e1eff252525ff1f1c1cff918e8ffffefdfffffcfbfdfffafcfdfffdfffffff9fdfcfff7fbfbfffbfffefff8fdfbfffcfffdfff5faf6
+fffbfdf8fffffffcfff7f3eefffffffbffb2aba5ff59534dff6a5541ff725d49ff725b46ff69523dff735940ff82684fff84674cff76593fff896a50ff907157ff95765eff987961ff997b66ff997c66ff937663ff8b6f5bff886a53ff81634cff795d48ff785c46ff705744ff634b38ff4d3929ff412d1dff342519ff38291dff31271eff2c2219ff4a443dffe3ddd6fffffffbfffffef8ffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fafefffdfefffffffefffffdfcfefffffefdfffffffdfffff9f3ff847c76ff493d32ff4b3f35ff524436ff57483aff5d4d3cff5f4e3eff5e4c3aff5a4836ff5d4c3bff5e4c3cff5f4d3cff5e4c3cff5f4d3cff635141ff695747ff6f5d4cff7d6b5aff837160ff887665ff867463ff7b6a59ff6f
+5d4dff665444ff625040ff544b3cff544a3bff554939ff534738ff544635ff534433ff534331ff534231ff534233ff4a3929ff4d3d32ff4a3b2fff44362fff453830ff3d302cff3f332effd2d2d2fffffffffffffffffffcfcfcfffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffffefffffffefffffffdfdfffefbfbffbab7b4ff2d2a27ff49463fff302d26ff454138ff27241aff313633ff313533ff2e3230ff292e2bff2c312eff323734ff353a37ff333835ff343936ff353937ff363a38ff363b38ff363b38ff353a37ff343936ff343836ff353836ff343735ff323634ff303432ff2d3230ff2a2f2dff282d2bff27
+2c29ff232624ff353836ff333231ff2e2d2bff221c1bff342e2eff372e2eff564d4dffedededfffffffffffefefefffffffffff9fcfcfff5f8f7fffbfffefff9fffcfffcfffdfff4f8f5fffffffcfffffffcffece9e5fffffffcfffef8f4ff8f8985ff645143ff695648ff715b4bff715b4aff725844ff755b46ff84654dff8e6f57ff98775dffa28167ffb08d74ffb9977effc09e86ffc09e86ffb7957fffac8a74ffa0826fff
+8f715fff846857ff836756ff6f5748ff523b2bff3e2d1fff413022ff392e23ff3f3429ff2f2a21ff262018ffbebcb6fffffff8fff1f3edfffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fcfefff9fffffffbfffffff9fdfdfffffffdfffffffefffffffaffa29e98ff43392fff483d34ff554537
+ff5b4a3dff614c3cff5f4a39ff614937ff624a38ff604c3aff614c3aff614c3aff614c3aff624d3bff65513fff695543ff6d5846ff766250ff7b6654ff7e6a58ff7c6856ff75614fff6c5846ff65513fff624e3cff5c4c3cff5c4b3bff5c4a39ff5a4938ff5b4735ff5a4633ff594432ff594432ff594535ff4a3626ff4f3c31ff4c392eff4a3a33ff493932ff3c2e2aff524541ffe5e5e5fffffffffffffffffffdfdfdffffff
+fffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffffefffffffefffffffffffffffefeff75716fff33302dff403d36ff39362fff413e35ff37332aff313633ff2e3330ff282d2aff242926ff292e2b
+ff323634ff343836ff303532ff333835ff343936ff353a37ff363a38ff353a37ff343936ff333734ff313633ff323533ff323432ff303331ff2e3230ff292e2cff262b28ff222725ff202522ff262927ff303331ff2e2c2bff3c3b3aff332d2cff322c2cff433a3aff342b2bffcacacafffffffffffffffffffffffffffbfefefff4f7f7fffbfffefffafffdfffcfffdfffcfffdfff7f8f4fffffffcfffffffafffbf8f4ffffff
+fbffe3ddd9ff978376ff715e50ff634e3dff745e4eff816652ff755b46ff81634bff9b7c64ffa48369ffb19076ffc3a187ffd3b197ffdfbda5ffe2c0a8ffd8b7a1ffccab95ffb59885ffa18471ff8e7361ff836856ff675040ff493222ff3a281bff423123ff2c2116ff2b2015ff373129ff9f9991fffbfaf3fffffef8fffffffbfff8faf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fefffff5fbfdfffbfffffff9fdfefffffffefffdfefcfffffffbffc9c5bfff463c32ff473c33ff514134ff58483bff5f4a3aff5e4a39ff624b39ff664e3cff614d3bff614d3bff614d3bff614d3bff634f3dff65513fff675341ff695543ff705b49ff725e4cff74604eff735f4dff6f5a48ff695543ff65513fff634f3dff5e4d3dff5d4d3dff
+5e4c3bff5c4a39ff5d4936ff5b4735ff5b4634ff5a4533ff5c4738ff4d3929ff503e32ff4a372cff4b3c35ff43332dff392b28ff776965fff5f5f5fffffffffffffffffffefefefffffffffffefefefffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff5f3f3ff55514dff3a3632ff413b32ff474138ff443c30ff4c4438ff3a3c38ff3a3b37ff363733ff30312eff30312dff333431ff333431ff2f312dff353733ff373834ff383936ff393a36ff383936ff373834ff343632ff333431ff31332cff30322bff2f322aff2e3029ff2e2f29ff2d2e28ff2f2d28ff2f2d28ff37322eff3b3632ff403735ff4a423fff
+4f4442ff3b2f2eff423433ff322424ffa09d9cfffefcfbfffffffefffdfefcfffdfffefff6f9f7fffbfffefffafffcfffbfffcfffcfffdfff6f7f4fffefffcfffffffdfffffffcfffffcf9fffffffdffe6d6cfffa5958eff725f55ff6c594fff7d6656ff7c6555ff826551ff8a6d59ff9e7d66ffaa8a72ffbd9a83ffceab93ffddbaa2ffe2bfa8ffdab8a1ffcfac96ffad9385ff9e8476ff836b5eff674f42ff4e3a2eff432f23
+ff382b21ff37291fff282118ff463f36ff898780fffffffafff5f6f1fffffffcfffcfffdffedf2eefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffeff9f7fff8fffffff7fffefffcfffffff6faf9fffffffcffe8e7e4ff5b524aff4f473fff514134ff554538ff644c3bff654e3dff6a4e3bff6b50
+3cff664f3cff664f3bff664f3bff664f3cff68513eff6a533fff6b5440ff6b5440ff6d5642ff6f5844ff705945ff705945ff6d5643ff6b5440ff69523eff68513dff664e3dff654e3cff654d3aff634b38ff634a36ff614834ff604734ff5f4633ff5d4636ff563f2fff574338ff4b382dff4e3e38ff403029ff413430ffafa29efffffffffffdfdfdfffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffefcfcffdfddddff54504bff332f2aff494239ff453e35ff413a2eff4e463aff454642ff484946ff464844ff3e3f3bff363734ff333430ff30312eff2d2e2aff353633ff3637
+34ff383935ff393a36ff383936ff363734ff343531ff323330ff2e3029ff2d2f28ff2c2f28ff2d2f28ff31312bff35362fff3b3934ff3d3c37ff3c3834ff47433fff554c4aff483f3dff5e5351ff453a38ff3a2d2cff342626ff807e7dfff9f7f6fffffffefffcfdfbfffdfffefff8fbf8fffbfffefff9fefbfffcfffdfff8fdfafffffffdfffffffdfff4f2effffffffdfff9f5f3fffffefbfffffff8ffebdbd4ffa8958aff6e
+5b51ff685141ff786151ff856854ff7d614cff8c6b54ff96755effa6836bffb49179ffc29f88ffc8a58effc19f89ffb7947eff9b8173ff947a6cff745c4eff4b3326ff392519ff422e23ff3c2e24ff2e2016ff473f37ffa49d94fffffffafffaf8f2fffffffcfffefffbfff3f8f4fffcfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7ffffffedf7f5fff8fffffff8fffffffcfffffff4f8f7fffffffcfffdfcf8ff756c64ff5e554eff554438ff564539ff67503fff6b5342ff6c513dff6a4f3bff69523eff68513dff67503dff68513eff6a533fff6c5541ff6b5440ff6b5440ff69523eff6a533fff6b5440ff6b5440ff6a533fff69523eff68513eff68513dff664f3dff664e3dff654d3bff644c39ff634a37ff624935ff604735
+ff604734ff5a4333ff5b4434ff5c493eff4e3b30ff52423cff41312bff4e413effded1cefffffffffffbfbfbfffffffffffffffffffffffffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffeffffff
+fefffffffffffdffc6c5c3ff403b34ff443f38ff42382dff463c31ff514436ff514536ff4a4640ff4b4741ff4c4842ff4c4841ff49453fff45413bff413d36ff3e3a33ff3d3932ff433f39ff48443dff48443eff49453eff49453fff45413aff3f3b34ff48463aff474639ff49453aff4a463bff4d473dff4c463cff4c423aff493f37ff4b3f39ff4b3f39ff51433fff584a46ff584946ff4c3d3aff3e2f2dff362725ff595552
+fffffffdfffefdfafffffffdfffffffdfff8f8f6fffcfffdfff8fdf9fffbfffefffbfffefffdfffefffdfffefffffffefffffffefffffffefffffffefffffcfafffffffcfffff2edffc7bab5ff8d7b71ff6a584eff6e5848ff796253ff7f6453ff7f6453ff836654ff896c59ff907361ff957866ff967968ff967968ff7f6c63ff534037ff3a2920ff423128ff3c2e27ff2c1f17ff382f28ff5d544dffeeeae5fff9f4efffffff
+fbfffffffcfffdfffdfffafefafff9fffcfffbfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fffefff8fffefff8fffffff8fffffffafffffffafffffffffffefffffffeffc9c3beff58524dff534439ff605246ff624c3aff6f5846ff745842ff725640ff6e543fff6d533dff6b513cff6b513cff6c
+523dff6e543eff6d533eff6d533dff6b523cff6f553fff705640ff6d533dff6c533dff6e543fff6d533dff694f39ff6e523dff6b503bff6a4e39ff694d38ff6a4e38ff694d38ff664b37ff644a35ff614a39ff5c4534ff4e3c31ff5c4a3eff3f322cff483a34ff837876fffcf1efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffefffffffefffffffffffdffc0c0bdff38342dff403b34ff41382cff453b30ff4d4132ff4f4334ff46423bff47433dff49453fff4b4741ff4c4841ff4b4741ff4a4640ff49453fff514d47ff59564fff615d57ff646059ff646059ff615d57ff59
+554fff514d46ff4a483bff48473aff494539ff49453aff4c453bff4b443aff4b4139ff483f37ff4a3d38ff493d37ff4e403cff554743ff544542ff493a37ff3d2e2cff362725ff55514ffffffffdfffffffdfffefdfafffffffdfff9f9f7fffcfffdfffbfffcfffbfffefffbfffefffdfffefffdfffefffffffefffffffefffffffefffffffefffffaf8fffffffcfffffffafffffbf6ffebd9cfffbeaca2ff947d6eff725b4cff
+836857ff806553ff806351ff836654ff876a58ff846755ff7a5d4cff705342ff49362dff48352bff45342bff413027ff3a2d25ff5d4f47ffafa69ffffff9f2fffaf5f0fffffbf5fffffffcfffffffcfffcfffcfffbfefbfffafffdfffbfffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fffefff8fffe
+fff8fffffff8fffffffafffffffafffffffffffefffffffefffffffaff66605aff56473cff5f5045ff654e3cff7b6452ff735842ff775b45ff735943ff715741ff6f5640ff6e553fff6f553fff705640ff705641ff705641ff6e553fff725842ff725842ff6f553fff6e543eff705640ff6f553fff6b513cff6e533eff6d513cff6c503bff6b4f3aff6c503aff6b4f39ff674d39ff654b36ff624b3aff5c4534ff544136ff5a47
+3cff564842ff40332dffcabfbcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffbffbdbebaff332e25ff3d382e
+ff483c2eff4a3e30ff503f2fff544332ff4c4237ff4e4438ff50453aff52483dff554b3fff574d42ff594f43ff5a4f44ff645a4fff70665bff7c7267ff81776cff81766bff7a7064ff6d6358ff61564bff554b3aff524938ff514536ff504435ff524336ff514235ff514035ff503e34ff4d3b33ff4c3932ff4d3c36ff52413bff4e3f3bff443531ff392c28ff342824ff524c48fffffffbfffffffcfffdfaf6fffffffcfffafc
+f7fffbfffcfffcfffdfffbfffefffbfffefffcfffffffcfffffffffffffffffffffffffffffffffffffffffefffffefbfbfffef8f7fffffbf9fffffff9fffff7f1ffeddfd6ffd5c7beff8d7b71ff827166ff78665cff746257ff726057ff69574fff594740ff4a3931ff302822ff2d2520ff3d3530ff716a64ffbdb7b2fff9f3effffffffcfffffcf9fffffffdfffffffdfffffffefffefefdfffefefefffefefefffdfffffffd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcfffcfffcfffbfffefffbfffefffafffffffafffffffcfffffffcfffffffffffcffbab8b4ff554b40ff5c5146ff6d5a47ff5c4936ff846c53ff715940ff7a5d46ff785c44ff765a42ff755840ff745840ff755841ff775a42ff785b44ff7a5d45ff
+7d6048ff7c6048ff795c44ff785b43ff795c45ff785b44ff745840ff73563eff72543dff70533bff70533bff6f533bff6e523aff694f39ff664d36ff5d4836ff644f3dff4e3f33ff5d4e42ff423933ff7a716bfff2edeafffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffffffcffc2c3bfff363027ff3d382fff4e4234ff504335ff524130ff584736ff52483cff52473cff52473cff53483dff544a3fff574c41ff594e43ff5a5045ff665b50ff73695eff82786dff897f74ff887e73ff7e7469ff6e6458ff5f554aff574e3dff544a3aff524637ff
+4f4334ff514235ff504134ff513f35ff4f3e33ff4b3931ff4a3730ff4a3933ff4d3c37ff483a35ff3f302cff362926ff342723ff504a46fffffffbfffffffcfffcfaf5fffffffcfffefffbfff7fbf8fffcfffdfffbfffefffbfffefffcfffffffcfffffffffffffffffffffffffffffffffffffffffcfdfffffdfdfffffefdfffffffdfffffffafffffffafffffdf4fffff7eefffff7ecfff7e6dbffe1cec4ffcbb9afffbba8a0
+ffab9990ff998881ff8e7c75ffc4bcb6ffe0d8d3fffbf4effffffff9fffffffbfffffffbfffffdfafff9f5f2fffffffdfffffffdfffdfefcfffdfdfcfffffffffffffffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcfffcfffcfffbfffefffbfffefffafffffffafffffffcff
+fffffcfffffff4f2eefffffffcff867b70ff574c41ff715e4bff5e4c38ff856d54ff6d553cff7c6048ff7c5f47ff7a5d45ff785b43ff775a42ff795c45ff7d6048ff80634cff82654eff866951ff866951ff82654eff80644cff80634cff7d6149ff785b44ff775a42ff765841ff74573fff73563eff72563eff70543cff6b513bff684f39ff634e3cff644f3dff5a4c40ff504135ff524942ffd8cfc9fffffaf8fffffdfbffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffdfffffffdfffffffbfffffffbfffffffdfffaffcdcfc9ff413b31ff403a2fff524434ff554737ff56422fff5d4937ff5b4b
+3bff5a4a3aff594939ff594839ff5a4a3aff5c4c3cff5e4e3eff604f40ff6d5d4dff7b6b5bff8a7a6aff918071ff8f7f6fff857565ff746454ff655545ff614f3cff5d4b38ff5b4735ff584432ff594233ff594132ff573f33ff563e31ff503a30ff4f382fff4b3932ff4d3b34ff433731ff3a2e28ff312823ff302822ff5d5651fffffbf6fffffffbfffffbf6fffffffcfffffffcfff5f9f5fffcfffdfffbfffefffbfffefffb
+fffffffbfffffffdfffffffdfffffffffefffffffefffff7fafdfffbfefffffefffffffefffffffffffdfffbf8f7fffdf8f4fffffaf6fffffffbfffffffbfffffbf9fffff9f7fffff9fafffffdfefffffefffffffefffffafcf9fff9fbf8fffafbf8fffafbf8fffdfefcfffffffefffffffefffffffefffffffffffefefefffdfbfbfffffdfdfffffffffffffffffffffffffffefbfcffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffefffffffefffbfffffffbfffffffafffffffafffffffffffdfffffffdffdbd5c9ff6e685dff5d4f3aff786a55ff6c583dff6f5c41ff82634aff82634aff816249ff806148ff806148ff84654cff8b6c53ff917259ff93745bff987960ff9b7c63ff987960ff95765dff917259
+ff8a6b52ff82634aff7f6148ff7c5e45ff785c42ff76593fff73583fff71563dff6b543cff69523aff675643ff554431ff5f5448ff4a3f32ffa6a29cfffffbf5fffffffdfff8f8f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefffffffefffffffffffffffffffffdfffffffdfffffffbfffffffbfffffffbfdf7ffdddfd9ff524c41ff423c31ff504132ff564738ff56422fff5e4937ff594939ff584838ff584838ff594839ff5a4a3aff5d4d3dff5f4f3fff615141ff6b5b4bff766656ff827262ff867666ff857565ff7e6e5eff706050ff645444ff614f3cff5e4c39ff5c4836ff5a4634ff5c4535ff5b4434ff594134ff573f32
+ff523c32ff513b31ff4e3c34ff4e3d35ff433730ff392d26ff302722ff302822ff7c7570fffff8f2fffffffafffffef9fffffffcfffffffcfff6faf6fffcfffdfffbfffefffbfffefffbfffffffbfffffffdfffffffdfffffffffefffffffefffffbfefffff7fafdfff5f6f7fff6f7f8fffdfbf9fffffffdfffffffcfffffffcfffffcf8fffffffbfffffffdfffffffdfffffcfdfffef9fafffdf9fcfffefafdfffdfffcfffeff
+fdfffffffdfffffffdfffffffefffafbf8fffbfcfafffffffefffdfdfdfffcfcfcfffdfbfcfffffefefffffffffffffffffffffefffffdfafbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffefffffffefffbfffffffbfffffffafffffffafffffffffffdfff0f1eefffffff6ffc5
+bfb3ff645641ff594b36ff705d42ff786549ff83644bff85654cff86674eff86674eff886950ff907158ff9b7b62ffa3846bffae8f76ffb6977effbc9d84ffbb9c83ffb6977effae8e75ffa18269ff95765dff876a50ff83654bff7c5f45ff775b41ff73583fff72573dff6c553eff6b543cff5e4d3aff5a4936ff504639ff8f8578ffeae6dffffffffafffffffdfffefefbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffcfffffffcfffffffbfffefffbfffefffbfdf7fff0f2ecff676155ff484136ff514131ff594939ff5b4532ff624c39ff5d4936ff5e4a37ff5e4a37ff5f4b38ff604c39ff62
+4e3bff634f3cff64503dff6a5643ff725e4bff796552ff7b6754ff7a6653ff76624fff6e5a47ff65513eff654e39ff634c37ff634a37ff624936ff644837ff624635ff5e4235ff5c3f32ff583f34ff573f34ff524038ff524038ff433931ff382d26ff2d2821ff2e2822ffa69f98fffffbf4fffffef8fffffffafffdfef9fffffffbfffafefafffdfffdfffbfffefffbfffefffbfffffffbfffffffdfffffffdfffffffefeffff
+fefefffff8fffffff6fdfffff9fefffffafffffffdfffffffdfffffff9f9f9fff4f4f4fffafafafffcfcfcfffdfefffffdfefffffafdfffffafdfffff8fdfffff8fdfffff8fffffff6fffdfff3fbfafff3fbfafff9fffefffafffffffdfffffffdfffffffffffffffefefefffffdfefffffefefffffefffffffefffffffcfffffffbfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffcfffffffcfffffffafffffffafffffff9fcfafff9fcfafffffff7fffffff6ffafa58fff5f543eff756649ff746447ff806047ff836349ff86664dff89694fff8d6d53ff98785effa6866cffb19177ffc5a58cffd0b096ffd9b99fffdabaa0ffd3b39affc7a78dffb4947affa5856bff8e7257ff886b50ff7f63
+48ff785c40ff72583eff71573cff6c563eff6b563dff5b4c38ff6b5c48ff7e7669ffe7dfd2fff7f6effffffffafff6f9f6fffdfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffff
+fffffffffffcfffffffcfffffffbfffefffbfffefffefff9fffefffaff767065ff4e473cff524232ff5c4c3cff5f4936ff66503cff614d3aff614d3aff614d3aff614e3bff614e3bff614e3bff614e3bff614e3bff695542ff6f5b48ff725e4bff725e4bff715d4aff705c49ff6b5744ff65513eff644d38ff634c37ff644b38ff644b38ff664a39ff644837ff604336ff5c4033ff5a4136ff5a4137ff55433aff55433aff453a
+33ff382e27ff2d2821ff2d2821ffc3bcb6fffffff8fffffef8fffffffafff9faf4fffefffafffdfffdfffdfffdfffbfffefffbfffefffbfffffffbfffffffdfffffffdfffffffefefffffefefffff8fffffff3fafefff4f9fbfff7fdfffffbfdfdfff8fbfbfffefefefffffffffffffffffffffffffff9fafdfff7f8fcfff7fafffff9fcfffff6fafffff4f8fffff0f9f7fff8fffffff9fffffff5fdfcfff6fbfafffafffffffd
+fffffff7f9f9fffffffffffffffffffffffffffffefffffffcfefffffcfefffffcfefffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffcfffffffcfffffffafffffffafffffffdfffefffcfffdfffffff5fffffff6ffffffedffbfb49eff615135ff6e5e41ff
+7a5a41ff7e5e45ff836349ff86664dff8c6c53ff99795fffa9896fffb5957bffcaaa90ffd6b69cffe1c1a7ffe3c3a9ffdcbca2ffccac92ffb6967cffa4846bff93765bff8b6f54ff816549ff785c41ff71583dff70573cff6c573eff6c573eff6e5f4bff71614effe8e1d3fffffff4fffffffafffffffafff9fcf9fffdfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffffffffffffffafefffffafefffff9fefffff9fefffff9fbfdfff7f8faffb7b1aaff4f4943ff4f4130ff524534ff6b5840ff58462eff66503cff664f3cff684e3cff674e3cff6b4e3dff6c4f3eff704f3fff715040ff735243ff745344ff
+745546ff755647ff715547ff6f5344ff6a5042ff684e40ff674f45ff644c42ff634a3eff62483cff65493aff644838ff624634ff5f4432ff644a39ff543b2aff675246ff533e31ff403028ff3d2e26ff281b17ff4d403cffefefeffff6f6f6fffefefefffffffffffffffffffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffefffcfefefffcfefefffdfffffffdfffffffdfffffffdfffffffbfefdfffdfffffffbfefdfff9fbfbfffafdfcfffdfffffffdfffffffdfffffff9fbfbfffffffffffdfdfdfff7f7f7fff7f7f7fffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffefefefff9f9f9fffffffffff3f3f3ffb0b0b0ff646464ff786352ff705a49ff6f5947ff78624fff806854ff836b57ff917760ffa1876fffb2967bffbb9e84ffc9aa8dffcfb093ffccac8cffbd9c7dffab8a6aff9e7d5dff8f725aff7f6149ff735842ff775c46ff745f4cff6f5a46ff655748ff69
+5b4cff8c857bffddd6ccfffffffafffffffafff4f9f6fffbfffdfff8fffffff6fefdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffffffffffffffafefffffafefffff9fefffff9fe
+fffff9fafcfffdffffffe2dcd5ff4a453eff625544ff5a4c3bff604d35ff64523aff67513dff67513eff6a513eff6a513eff6e513fff6e5140ff715040ff715141ff704f40ff715041ff705143ff715243ff6f5244ff6d5143ff6a5042ff694f41ff644c42ff634b42ff654b3fff644b3eff674b3bff664a3aff654a38ff644836ff5e4434ff715746ff5f4a3dff503b2eff4b3b33ff26170fff413430ff796d68fff4f4f4fffa
+fafafffffffffffffffffffefefefffcfcfcfffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffbfefdfffcfefefffdfffffffdfffffffcfefefffafcfcfffdfffffffdfffffffdffffff
+fdfffffffdfffffffdfffffffdfffffff8fafafffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfff8f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffefefefffcfcfcfffafafaffffffffffffffffffebebebffc2c2c2ff86715fff7b6654ff78624fff7c6653ff7e6651
+ff775f4bff7a6048ff80664eff96795fff9a7e63ffa28467ffa5876affa58566ff9d7d5eff957454ff8f6e4dff81634bff7f624aff7c624bff795f48ff6a5542ff695441ff786a5bff948576ffe8e2d7fffffef3fffffffafff8f8f2fff4faf6fffbfffdfff8fffffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfefffffbfefffff9fefffff9fefffffafbfdfffdfffffffffef8ff78736dff5c4f40ff5e5242ff594832ff675641ff65543dff66553dff69553eff6a563fff6d5540ff6d5540ff6f5440ff6f5440ff6f533fff6f533fff6e5340ff6e5440ff6c5441ff6c5541ff6b5541
+ff6b5541ff694e3fff6a4f40ff6c5040ff6b4f3fff6a4d3bff684b39ff674b38ff674b38ff644c3bff68503fff5d4a3eff523f33ff35261fff33251eff332824ffc7bdb9fffcfcfcfffffffffffffffffffffffffffdfdfdfffbfbfbfffcfcfcfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffbfefdfffbfdfdfffcfefefffcfefefffbfdfdfffafcfcfffcfefefffbfdfdfffafdfcfffbfdfdfffcfffefffdfffffffdfffffffdfffffff8f8f8fffafafafffbfbfbfffcfcfcfffbfbfbfffcfcfcfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffdfdfdfffafafafffefefeffffffffffffffffffffffffffffefe3ffbaaa9dff736254ff5d4c3eff725f50ff847162ff85715fff7d6957ff806954ff816a56ff856d55ff866d56ff876d54ff846a51ff83684eff81664cff755e4dff765f4dff735e4dff6d5848ff6a5a4bff8d7c6effcec3b7fffffff6fffffff8fffffff8fffcfdf7fffefef8ff
+fcfffdfffcfffdfff4fbf9fff9fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffbfefffffbfefffff9fefffff9fefffffdfffffff4f5f7fffffffaffd8d3ccff57
+4a3bff5f5343ff5e4d37ff685741ff65543dff66553eff6a5640ff6c5841ff6f5742ff6f5742ff715642ff715641ff745744ff745744ff725744ff725744ff6f5744ff705844ff6e5844ff6e5845ff6d5243ff6e5345ff705444ff6e5242ff6b4e3cff684b39ff664b38ff674b38ff725949ff5b4231ff5d4a3eff4d392dff30221bff31231cff5d524ffffff5f2fffffffffffffffffffffffffffffffffffdfdfdfffcfcfcff
+fdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffbfefdfffbfdfdfffcfffefffdfffffffdfffffffcfffefffdfffffffcfefefffafdfcfffafcfcfff9fbfbfff9fbfbfffdfffffffdffff
+fffffffffffffffffffffffffffefefefffcfcfcfffcfcfcfffcfcfcfffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffefefefff8f8f8fff5f5f5fffafafafffffffffffffef2fffff9edfff5e3d6ffc4b3a5ff887566ff625040ff6a5644ff816c5aff7b6450ff7b64
+50ff7d654dff7d644dff7e644bff7d634aff7d6248ff7d6247ff77604eff6c5543ff725d4dff9e8978ffd3c2b4fffcecddfffffbf0fffffef2fffcf7effffffcf4fffdfef8fffffffbfffcfffdfff7fcf8ffeff6f4fff9fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffbfefffffbfefffffbfefffffbfefffffefffffff6f7f8fffffffafffffffbff8a7f72ff5b5144ff584a38ff675947ff65563bff66573cff6a583dff6b593fff705a40ff715b41ff755b42ff755b42ff785c44ff795d44ff785e45ff795f46ff765f45ff755d44ff725c42ff715b41ff765841ff765841ff755740ff7354
+3eff6e513bff6d503aff694f3bff6a503cff6f5949ff6c5646ff493a2fff332319ff3a2f29ff291e19ffd0c8c6fffffdfbfffffffffffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffdfffffffcfffefffbfefdfffcfefefffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffff8fbfafff8fafafffcfefefff9f9f9fff9f9f9fffafafafffefefefffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffcfcfcfffbfbfbfffefefefffffffffffefefefff6f6f6fff8f8f8fffffffffffffff6fffffff3fffffbf0fffff9edfff4eadfffcec5baffa2968bff80756aff7a6c61ff76685eff736359ff705f55ff715f55ff756359ff7b685eff7f6c62ff91837bffb5a8a0ffe4d7d0fffff6effffffbf4fffff6effffff9f3fffffffafffffffbfffffffbfffffffcfffafcf7fff9fcf8fff6f9f5fff6faf7fffcfffdffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffbfefffffbfefffffbfefffffbfefffffbfcfefffefffffffffdf7fffffffbffdfd4c7ff72685bff514230ff675947ff67583dff
+67583dff6a583eff6c5a40ff725c42ff755e45ff7a6047ff7c6249ff7e624aff81664dff846a51ff876d54ff856e54ff826a51ff7c674dff796349ff7e5f49ff7a5b45ff765741ff73553eff735640ff745740ff715743ff705642ff634e3eff6b5545ff38281dff2c1c12ff251a15ff8a7f7afffef6f4fffffdfbfffefefefffefefefffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffefffcfefefffcfefefffdfffffffdfffffffdfffffffdfffffffcfefefffbfdfdfff7faf9fffafcfcfffdfffffffdfffffffdfffffffafdfcfffdfffffffffffffffffffffffdfdfdfffbfbfbfffcfc
+fcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffdfdfdfffffffffffffffffffcfcfcfffefefefffffffffffffff5fffffff3fffffef3fffffff6fffffff6fffffff6fffffcf1fffff6ebffe5d7cdffded0c6ffd7c6bcffd1c0b6ffd4c2b8ffddcbc1ffea
+d7cdfff2dfd5fffffff7fffffaf2fffff8f1fffffef7fffffff9fffffff9fffffffafffffffafffffffbfffffffbfffefffbfff6f8f3fffcfffcfffdfffdfff9fefafff8fdf9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffefffffffefffffffcfefffffcfefffffcfefffffcfefffff9f9f9fffffffffffffef9fff7f3effffffff7ffb7afa5ff64594cff63584aff6e5a40ff6e5a40ff715940ff725b41ff7a5e44ff7f6349ff87674dff8a6a50ff947257ff9a785effa38166ffaa886dffaa8a6effa5866aff9d8063ff987b5eff917155ff88684cff7c5d43ff78593fff765a43ff775c45ff705946ff6d5643ff57
+4638ff402f21ff32261eff342820ff4a443ffff5eeeaffefebe9fffffffdfffefefefffefefefffdfdfdfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefefffcfefeff
+fcfffefffdfffffffdfffffffcfefefff8fafafff4f7f6fffdfffffff8fbfaffebeeedffe9ecebffe9ecebffe7eae9ffedefeffff6f9f8fff6f8f7fffdfffffffdfffffffdfffffffcfefefff7f9f9fffafcfbfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffefefe
+fffdfdfdfffcfcfcfffdfdfdfffffffffffdfdfdfffffffffffffffffffffdfefff8f6f5fff8f6f5fffffdfafffffffdfffffffcfffffffcfffffaf5fffcf7f2fffef8f2fffffef8fffffffafffffffafffefafafffffefefffffefffffffcfdfffbf8f8fffbf7f8fffefcfbfffffffefffaf9f7fffefdfbfffafbf8fffcfdfafffffffdfffffffdfff9fbf7fff9faf6ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffcfefffffcfefffffcfefffffcfefffffffffffffefefefffffffbfffffffbfffffff7fffffdf3ff8f8477ff675c4eff715d43ff705c42ff735b41ff745c43ff7c6046ff82664c
+ff8c6c52ff907056ffa58368ffad8b70ffb9977cffc3a186ffc4a589ffc0a084ffb6997cffb09376ffa18165ff947358ff83644aff7b5c42ff785c45ff785c45ff6e5744ff68513eff564436ff261407ff382c24ff3c3128ffbfb8b4fffffefafffffffdfffffdfbfffefefefffefefefffefefefffffffffffffffffffffffffffdfdfdfffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefefffcfefefffcfffefffdfffffffcfffefff8fbfafff3f5f5ffeef0f0ffa3a5a5ff808282ff5a5c5cff444646ff3b3d3dff3a3c3cff464948ff565858ff757777ff9ea09fffd2d4d4fff5f7f7fffdfffffffdfffffffdfffffffdfffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffefefefffffffffffffffffffffffffffffffffffffffffffefefefffffffffffefefefffefcfdfffffefffffffffefffffffefffffdfbfff7f4f2fffffcf8fffffefafffffffbfffffffbfffffffafffffff9fffffcf5fffffaf3fffffefffffffefffffffeffff
+fffefffffffefefffffefffffffffefffffffefffffffdfffffffdfffdfefbfffffffdfffffffdfff5f7f3fff6f7f3fffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffd
+fffffffdfffffffdfffffffdfffffffdfffffffbfbfbfffffffffffffffdfffbf9f6fffffef7fffffffaffe8e1d9ffa09991ff735945ff715843ff755843ff775a45ff7d5a45ff815f4aff916a54ff9e7862ffab826affc0967fffd8af96ffe8bfa6ffeec6acffe8c0a6ffd4ae93ffc19a7fffa6886cffa28469ff957a61ff886d54ff7a644fff755e4aff655444ff5a4a3aff40352aff24190eff423c36ffb1aaa4fffffdfaff
+fffffcfffbf9f7fffffefcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffbfbfbfffffffffffffffffffbfbfbfffefefefffffffffffffffffffdfffffff7faf9fffafdfcfffdfffffff4f6f6ffb5b7b7ff606262
+ff242626ff1b1d1dff1d1f1fff1f2121ff202322ff212323ff1f2221ff1e2020ff1c1f1eff1b1e1dff0e1110ff171a1aff505353ffa6a9a9ffeaedecfffdfffffffdfffffffafdfdfff9fcfcfffbfdfdfffdfffffffdfffffff7fafafff6f9f9fffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbff
+fffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffffefffffffefffffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffefefefffcfcfcfffffefafffffdfafffffffafffffffafffffff8ffe5ded6ffa38974ff8b715cff7e614cff80634eff87644fff815f49ff86604aff8f6852ffad836cffba9079ffc89f
+86ffd3aa91ffdab298ffdbb499ffd2ac91ffc7a186ffbb9d81ffa08367ff82674eff7b6047ff7a6450ff715b47ff4e3d2eff322112ff140900ff5e5349ffb8b1abfff7f0eafffffffcfffffffcfffffefcfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbfffffffffffefefefff8f8f8fffffffffffffffffffafafafff9f9f9fff5f7f7fffdfffffff5f7f7ffa9acabff505252ff1e2020ff191b1bff232625ff292b2bff2a2d2cff2c2f2eff2d302fff2c2f2eff2a2c2cff262928ff242726ff252827ff272a29ff252828ff1c1f1fff181b1bff414443ff9ea1a1fff4f7f6fffdfffffffcfffffffdfffffffcfefefff2f5f5fffcffffff
+fdfffffff2f4f4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffffdfefffffdfefffffdfefffffdfefffffdfefffffdfefffffffefffffffeff
+fffffffffffffffffffffffefffffffefffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffffffeffffffffffffffffffffff
+fffffffff8f8f8fffbfaf8fffffffefffffffcfffffffdfffffffcfffffffcfffff8ebffbba89bff796154ff6d5649ff7e6153ff7d6052ff815f50ff896757ff8d6856ff9a7563ffac8773ffba9581ffc39f8affc4a08bffbb9882ffb18e78ff8d765eff866f57ff806c58ff816d59ff706253ff584a3bff3d342bff352b22ff615d58ffb7b2adfffffdfafffffffdfffefdfbfffffffcfffffffdfffcfdfaffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafff8f8f8fffffffffffefefefff5f5f5fffffffffffdffffffd2d4d4ff7b7d7dff383b3aff212323ff252827ff2c2e2eff2b2d2dff313333ff333535ff363838ff383a
+3aff373939ff343736ff303332ff2e3030ff2e3231ff222625ff1e2222ff202524ff191d1cff161a19ff333737ff5b605fffc3c7c7fffbfffffffbffffffeaeeeefffbfffffffbfffffff3f7f7fffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffb
+fffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffdfefffffdfefffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffff8f8f8fffffefcfffffffefffefcf9fff8f5f2fffcf9f6fffffcf8fffffdf1fffffff2ffe6cfc2ff917a6dff6a4e3fff775b4dff896757ff7f5c4dff916c5aff906b59ff8e6955ff8d6854ff8e6a55ff916d57ff916e58ff90
+6d57ff836c55ff836c55ff7e6a57ff705c48ff4a3c2dff372819ff423930ff635a51ffece8e2fffcf8f2fffffffcfffcfaf7fff9f9f6fffffffdfffffffdfffbfcf9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfffafafafffffffffffffffffffafafafffefefeffffffffffd3d5d5ff767978ff232525ff161818ff2b2d2dff323434ff2e3130ff2f3131ff323434ff353737ff393b3bff3d3f3fff3e4040ff3c3f3eff393c3bff373939ff3b3f3eff2e3332ff2b2f2eff313535ff2d3131ff1d2120ff131716ff141817ff474c4bffc7cccbfffbfffffff2f7f6fffbfffffffbffffffedf2f1fffbffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffdfefffffdfefffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffffcfefffffdfffffffdfffffffffffffffffffffffffffffffffffffffdfdfdfffafafaffffffffffffffffffffffff
+fffefefefffffffffffafafafffffffbfff4f2ecfff7f1ebfffbf6efffcdc2baff7b7068ff65544aff7d6c62ff746053ff745f53ff776253ff7b6758ff7f6b5aff7e6a59ff7c6957ff7b6855ff7c6d5dff726252ff5d5144ff4a3e32ff3d362fff665f57ffbebcbafffffffdfffefffffffefffffffdfffffffbfdfcfffcfdfafffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffffffffffffffffff8f8f8ffffffffffffffffffc8c8c8ff545656ff2e3030ff181b1aff252727ff2f3231ff2a2c2cff2d302fff3d3f3fff3d3f3fff3f4241ff434545ff464848ff474949ff454847ff434545ff414343ff48
+4e4dff404645ff323736ff242929ff202524ff222726ff212626ff1d2221ff0d1312ff3e4443ffaeb4b3fffbfffffff9fefdfff6fcfbfffbfffffff4f9f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffcfffefffcfffefffbfffefffbfffeff
+fbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffcfefffffcfefffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffcfcfcfffffffffffffffffffdfdfdfffffff9fffffffbfffffef8fffef8f2fffffbf3fffdf1eaffd3c2b8ff9e8d83ff7e695dff796559ff786455ff7a6657ff7a6755ff776352ff75624fff756250ff6b5c4cff5a4b3bff5f5346ff988b7fff
+d9d2cafffffbf4fffffffcfff7f5f3fff5f7f6fffefffffffdfffffffcfefefffcfdfafffffffdfffffffcfffbfcf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffffffffffdfdfdfff9f9f9ffffffff
+ffdadadaff626262ff1c1e1eff1b1d1dff1d1f1fff2a2c2cff3f4141ff4f5151ff4e5150ff464848ff4d4f4fff4e5050ff4f5151ff4f5151ff4e5050ff4b4e4dff494b4bff474949ff4a504fff454b4aff383d3cff2d3232ff323837ff3b403fff313635ff1d2221ff1d2322ff020706ff444a49ffbfc5c4fffbfffffffbfffffffbfffffff8fdfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffcfffefffcfffefffbfffefffbfffefffbfffffffbfffffffbfffffffbfffffffbfffffffbfffffffffffefffffffefffffffefffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffffcfefffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffefffdfcfbfffdfdfdfffefefefff9f9f9fffcfcfcfffdfffffffbfcfefff1fffdfff2ff
+fffff6fffefff4fffcfffafffafffcfffcfffffffafffffef8fffcf8efffe3dfd6ffc6c1b5ffb0ab9effa6a193ffa6a293ffb1ae9effbebbabffdbd0c5fff3e8ddfffffff8fffffff9fff9f7f5fff4f2effff9fcfdfffcfffffffafffffffafffffff9fefdfff4f9f8fffafdf9fffefffdfffffffbfff7f9f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffbfbfbfffdfdfdffdfdfdfff838383ff262626ff1c1f1eff2a2c2cff313433ff2f3231ff343636ff414343ff464848ff414443ff4d4f4fff4d4f4fff4b4e4dff4a4c4cff484a4aff464848ff444746ff434645ff424847ff484d4cff484d4cff3d4242ff323837ff
+313736ff373d3cff3c4241ff2c3231ff1b2020ff0d1312ff555b5affd1d7d6fffafffffff3f8f8fffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffbfffffffbfffffffbfffffffbfffefffcfffefffcfffdfffcfffdfffcfffcfffdfffcfffdfffcfffdfffcfffdfffbfffd
+fffbfffdfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffcfefffffcfefffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffefff6f5f4fffafafafffffffffffffffffffafafafffdfffffffdfffffff0fffdfff1fffefff6fffefff6fffefffcfffcfff9fef9fffffff9fffffffafffffff8fffffff6fffffff3fffffff6fffffff4fffffff2ffffffeffffffff0fffffaeffffffff4fffffff9fffffff9fffffffdfffffffdfffcfefffff6f9fafffaffff
+fff5fafdfff4f9f8fffbfffffffefffdfff8faf7fffafcf5fffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffff6f6f6ffffffffffffffffffa1a1a1ff363636ff212121ff262828ff222524ff2729
+29ff333535ff3d3f3fff404242ff454847ff4c4f4eff404342ff3f4241ff3e4140ff3d3f3fff3c3e3eff3c3e3eff3c3e3eff3c3e3eff3e4443ff343a39ff333938ff3e4342ff434847ff3b4140ff333938ff303635ff292f2eff2a302fff0f1514ff181d1cff7a807fffe7edecfffafffffff2f8f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffafffffffafffffffbfffffffbfffffffbfffffffbfffefffcfffefffcfffdfffcfffdfffcfffcfffdfffcfffdfffcfffdfffcfffdfffbfffdfffbfffdfffffffbfffffffbfffffffbfffffffbfffffffcfffffffcfffffffdfffffffdfffffffefffffffefffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffcfffffffcfffffffdfffffffdfffffffffffffffffffdfffffffdfffffffdfffffff7f8fafffffffffffdfdfdffe7e4e1ff43413dff403c36ff29251fff232a27ff282f2cff2f3532ff353b38ff373e3bff373e3bff373e3aff363d3aff353b38ff353c38ff353c39ff363d39ff363d3aff373e3aff373e3bff373e3bff323b3cff313a3bff31393aff313839ff33393aff363c3cff3a3f3eff3c4140ff393b3bff2f3231
+ff262626ff050505ff373836ffb6b7b5fffdfcfafffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffffffffffffffdfffffffdfffffff9fafcfffcfdfffffffffffffcfcfcff969390ff35322fff37332dff2d2923ff222825ff2a302dff323936ff363d39ff333a37ff313835ff323936ff35
+3c39ff343b38ff353b38ff353c39ff363c39ff363d3aff373d3aff373d3aff373d3aff313a3bff30393aff303839ff2f3738ff323839ff343a3bff383d3cff3a3f3eff353737ff323434ff333333ff121212ff212220ff6d6d6bffe9e8e6fffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffeffffffff
+fffffffffffdfffffffdfffffffafbfdfffdfffffffdfcfbffe3e2e1ff44403cff34302cff38332cff332e27ff242b27ff2d3430ff363c38ff363d38ff303732ff2d342fff313733ff363d38ff343b36ff343b37ff353c38ff363d38ff363d39ff363d39ff363d38ff363c38ff313736ff303635ff2f3534ff2e3433ff2f3433ff313534ff333636ff353737ff3c3c3bff383837ff3b3c3aff20201fff1b1917ff2d2b29ffc5c3
+c1fffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffffffffffffffffffdfffffffdfffffffdfffffffdfffffff5f4f3ffa7a6a5ff2a2722ff413e39ff423d36ff38322cff2c332eff2f3632ff323934ff303733ff2d342fff2d342fff313834ff373d39ff333a35ff343b36ff353c37ff363d38ff
+363d38ff353c38ff343b37ff343a36ff333938ff313837ff303635ff2e3433ff2e3232ff2d3231ff2f3131ff2f3131ff3c3c3bff333332ff2d2e2cff212220ff23211fff201e1cff888684fff9f6f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffdfffffffdfffffffcfcfcffffff
+fffff4f1efff666461ff3c3731ff423d37ff4a433aff423a32ff353b34ff313630ff2c312bff292f28ff2b312aff2f352eff333932ff363b34ff343a33ff353b34ff373c35ff383d36ff383d36ff363c35ff353a33ff343932ff393a36ff383935ff363733ff333430ff31322eff2f302cff2f2f2bff2e2e2aff2c2b27ff2b2a26ff23201dff23211dff2e2a28ff302c29ff44403effe8e4e1ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffefffffffefffffffffffffffffffdfffffffdfffffff7f7f7ffffffffffe9e7e4ff3c3a38ff48433dff343029ff474037ff4a433aff3a4039ff333832ff2b3029ff282e27ff2b312aff2f352eff31362fff30362fff333932ff353a33ff373c35ff383d36ff373d36ff363b34ff333932ff323730ff30312d
+ff2f312dff2e302cff2d2e2aff2b2d29ff2a2b27ff2a2a26ff292925ff22211eff2d2c28ff2c2926ff302d2aff35312fff393532ff211d1affcfcbc8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffefefeffc9c5c0ff322e2aff453e35ff373027ff4c
+4237ff4f463bff43453bff3f4238ff3b3d33ff383a30ff36382eff35372dff33352bff32342aff37392fff383a30ff3a3c32ff3c3e34ff3b3d33ff393b31ff36382eff34362cff302d25ff312e25ff312f26ff322f27ff333028ff333028ff343029ff343029ff36312bff39342eff3d3732ff403b36ff3c3632ff342e2aff28211dffa6a09cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffa29f9aff34302cff3b342bff463f36ff52493eff4e453aff484a40ff4a4c42ff494c42ff46483eff3e4037ff383a30ff34362cff33352bff36382eff383a30ff3a3c32ff3b3e34ff3b3d33ff383b31ff35382eff33352cff36342bff38352dff3a382fff3d3b32ff403d35ff423f
+37ff444039ff444039ff49453fff3b3630ff3b3631ff423c37ff3b3530ff27211dff352f2bff79736effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffdfdfdfffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffaf8f6ff8f8982ff302b24ff3e3529ff4a4136ff3c3122ff524739ff474236ff464235ff474236ff
+4b463aff4e4a3dff4f4a3eff4b463aff464236ff484337ff4c483bff524e41ff575246ff575246ff534e42ff4d483cff494438ff524a3cff50483aff4e4639ff4d4538ff4d4539ff4c4438ff4a4137ff483f35ff443c33ff433b32ff3c332cff483f38ff39302aff39312bff3b322dff675e59fff8f8f8fffafafafffdfdfdfffffffffffffffffffffffffffefefefffdfdfdffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffffffffffffffffffffffffffefefefffefefefffffffffffffffffffdfdfdfffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffbfaf7ff8c8780ff332d26ff42392dff4a4135ff433729ff4f4435ff4a4539ff494438ff494438ff4a4639ff4d483cff4e4a3dff4e493dff4d493cff575347ff5f5b4eff6a6659ff726d61ff726d61ff6a6559ff5f5a4eff575246ff524b3dff50483bff4e4639ff4d4538ff4c4438ff4b4337ff494036ff463e34ff463e35ff453d34ff3b
+332cff423a33ff352c27ff372f29ff352c27ff605752fff9f9f9fffafafafffdfdfdfffffffffffffffffffffffffffefefefffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffafafafff9f9f9fffafafafffcfcfcfffefefeff
+fefefefffefefefffefefefffefefefffefefefffffffffffffffffffffffffffdfdfdfffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefbfffefbf7ff8e877eff373027ff483d2fff4b4032ff504231ff4e412fff544738ff544739ff544738ff544738ff534638ff56493aff594c3eff5d5041
+ff675a4bff726557ff837567ff8e8172ff8d8072ff817365ff706354ff635648ff594c3aff574a38ff544736ff524634ff514435ff4f4333ff4b3f32ff493d30ff4a3e33ff493d32ff3f342bff41352cff382d25ff3d322bff332821ff61564ffffafafafffbfbfbfffdfdfdfffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefafffffcf8ff938c83ff383128ff483d2fff483d2fff5a4c3bff4f4130ff524537ff554839ff56493bff56493aff544739ff56493aff5a4d3fff5f5243ff66594bff736557ff847768ff908374ff8f8273ff817465ff6e6153ff615445ff5a4d3bff584b39ff544836ff524634ff514434ff4f4233ff4b3f31ff483c2fff473b30ff483c31ff42372eff41362dff3c3129ff433831ff322720ff
+6a5f59fffbfbfbfffcfcfcfffefefefffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffefefefffffffffffffffffffefefefffbfbfbfff8f8f8ffffffffffffffffffffffff
+fffefefefffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffdf8ffa79f95ff3d352bff493c2cff483c2cff61523fff554633ff594434ff5c4737ff5f4a3aff604b3bff5e4939ff5e4939ff614c3cff644f3fff705b4bff7a6555ff887363ff917c6cff907b
+6bff857060ff756051ff6a5546ff604f39ff5d4c37ff5a4934ff584732ff554633ff534431ff4f4030ff4c3d2dff4a3c2fff4a3b2eff493b31ff45382dff40332bff44382fff31241dff7d716afffdfdfdfffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffcfcfcfffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffdf8ff
+c5bdb3ff494137ff4a3d2dff4d4131ff61523eff5c4d39ff5c4737ff5e4939ff604b3bff614c3cff604b3bff604b3bff604b3cff624d3dff6e5949ff755f50ff7e6959ff846f5fff836e5eff7c6757ff725d4dff6b5546ff604f3aff5e4d37ff5a4a35ff594834ff574734ff554633ff514232ff4f4030ff4e4033ff4a3c2fff4c3f34ff46392eff3f322aff3f332aff32251eff9c8f88fffffffffffefefefffefefeffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff6f6f6fff6f6f6fffcfcfcfffffffffff7f7f7fffbfbfbfffffffffffffffffffefefefffdfdfdfffdfdfdfffefe
+fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffbfffffef9ffe7ded3ff5b5247ff504332ff574938ff60503bff63533eff694e3eff674c3cff654a3aff644a3aff664b3bff674d3dff684d3dff674d3dff6c5242ff705646ff765b4bff7a5f4fff7a5f4fff755b4bff705545ff6b5141ff635038ff60
+4e36ff5d4b34ff5c4a33ff5b4935ff5a4834ff564534ff534331ff554537ff4c3c2eff4f4135ff4a3b30ff41332aff41332aff41332bffcabdb5fffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfff9f9f9ffecececffd8d8d8ffc3c3c3ffbbbbbbffbfbfbfffc7c7c7ffe9e9e9fff1f1f1fffafafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffbfffffef9fffdf4e9ff675f53ff564837ff5e503fff5d4d38
+ff665642ff705646ff6b5040ff654a3aff634838ff654b3bff694e3eff6a4f3fff6a4f3fff694f3eff6c5242ff705646ff745949ff745949ff715646ff6d5342ff6a503fff635038ff614e36ff5e4c35ff5d4b34ff5c4a36ff5b4a35ff574735ff554533ff57483aff4b3b2dff504136ff4b3c31ff44362dff473930ff51443cfff1e3dbfffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffeffeff3f0fffcfffefffcfffeffeff4f2fff8fefbfffafffeffe3e9e7ff9aa29fff6b7370ff3c4542ff29322fff202a27ff18221fff182320ff212c28ff2d2e2bff525350ff8d908dffcbcfcbfff0f8f4fff9fffdfff7fffdfff4fefafff8fffdfff8fffdfff6faf7fffcfffdffff
+fffdfff6f4f1fffffffdfffff9f7fffffffafffffffafffffffdfffffffdfffcfefffffcfefffffafefffffafefffffdfffffffafcfefffffffbff9c9893ff55493bff473b2cff65543fff6c5c47ff6c5949ff675444ff644f3eff624d3cff674f3eff695140ff6b513fff6a503eff6f5542ff6a503dff69513cff6d5540ff6a5640ff65513bff63513aff67563fff6c573dff675238ff654d35ff634c33ff674d38ff684e38ff
+654a39ff624735ff574132ff5a4334ff534336ff534436ff3e362aff484034ff6a675cfffffff5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ebe9fffcfffefffcfffefff1f5f3fffbfffeffe6ebe9ff8b928fff444a48ff232b29ff18201e
+ff151e1bff1f2825ff26302dff232d2aff202a27ff212c29ff31322fff222320ff141814ff2b2f2bff6d7571ffbfc6c2ffecf6f2fff7fffdffe5eee9fff8fffdfffcfffdffe5e9e5fffffffdfffffffdfff3edebfffffffdfffffffafffffffafffffffdfffffffdfffcfefffffcfefffffafefffffafefffffcfefffffdfffffffffcf7ffd0ccc7ff655a4bff584c3eff6b5b46ff60503bff6d5a4aff695645ff675241ff6550
+3fff695140ff6b5342ff6d5241ff6c5140ff6e5441ff6b513eff6a523eff6f5742ff6c5842ff67533dff64533cff68563fff665137ff654f35ff654d35ff654d35ff684e39ff674d38ff644937ff614634ff594334ff624c3dff504133ff534437ff40382cff41392dffcbc8bdfffdfaefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefff9f5f4fffffcfbfffffffeffcdcbcaff63615fff21201fff1f1e1dff292927ff2d2e2cff313331ff353735ff333634ff303331ff2b2e2cff282b29ff222422ff222423ff252a28ff202523ff0c1512ff242c29ff88928ffff4fffcfff8fffefff2fbf8fffbfffefff7fbf9fffffffefffffffefff2eeedfffffffefffffffbff
+fffffbfffffffdfffffffdfffcfefffffcfefffffafefffffafefffffbfdfffffdfefffffcf8f3fffffbf6ff92887aff544a3cff675845ff60513eff6e5b48ff6b5845ff6b5542ff6a5441ff6f5541ff705642ff735541ff725441ff735540ff72533eff72553fff765842ff745942ff71563eff6e563dff70573fff6c5338ff6d5439ff6f543bff6f543bff6e523dff6b4f3aff664b3aff634837ff624c3fff5a4437ff4c3d32
+ff5e4f45ff3d352dff564e46fffffef6fffffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffcf9f8ffb1aeacff464443ff131110ff222220ff3d3c3aff3c3d3bff424341ff414341ff3a3c3aff373a37ff3d3f3dff3e41
+3fff3a3d3bff454846ff2a2c2aff212623ff2e3331ff212927ff0d1512ff222c29ff525d5affe5eeebfff6fffcfff5faf7fffbfffefffffffefff0f1effffffffefffffbfbfffffffbfffffffbfffffffdfffffffdfffcfefffffcfefffffafefffffafefffffdffffffedeff1fffffffbfffffffbffd7cdbfff5e5346ff5e4e3bff6d5e4bff6d5a47ff6c5946ff6d5744ff6c5743ff715744ff725844ff765844ff765845ff79
+5a45ff785a45ff785b44ff7a5c46ff775c45ff755b43ff735a42ff735b42ff72593fff73593fff72583fff71563eff6e523cff6b4f3aff664c3bff654b3aff624c3eff5e483aff594a3fff524339ff3f382fffb0a8a0fffbf8f1fffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff7f6fffffffdffaca5a3ff342d2cff201918ff2e2726ff332e2cff4b4644ff413d3bff4a4644ff4c4947ff494744ff4c4b48ff545350ff51504eff474643ff313536ff3f4444ff3f4546ff2d3434ff1b2323ff161e1eff121b1bff0b1414ff585f5fffdde5e5fffbffffffedf2f2fffdfefffffefffffffffefffffdfbfdfffffffbfffffffbfffffffefffffffefffdfffffffdffff
+fffbfefffffbfefffffdfffffff4f5f7fffffffcfffffffcfffffdf2ffa2998eff5c5040ff645748ff6c5a44ff6c5a44ff6f5943ff6f5943ff745943ff775b45ff7e5d46ff805f49ff89654eff8b6750ff8d6850ff8d6850ff8b674eff8b674eff88654cff866349ff7c5e43ff795b40ff74563eff71533bff6d503cff6d4f3bff684e3fff684e3fff59443aff685349ff554741ff30221cff706966fffffffcfffbf8f7fffefb
+faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffada5a4ff3c3533ff1f1816ff352f2dff37312fff36312fff4c4745ff5b5755ff5c5856ff565452ff514f4cff52504eff565452ff504f4dff454442ff4a4f50ff494e4eff3d4344ff2f
+3535ff2c3434ff2f3838ff242d2dff111a1aff020909ff6c7474ffecf1f1fffbfffffff9fafbfffefffffff9f8f9fffffefffffffffbfffffffbfffffffefffffffefffdfffffffdfffffffbfefffffbfefffff7f9fafffdfffffffffcf8fffaf6f2fffffff6fff8f0e5ff7f7363ff5a4e3eff6d5a44ff6d5b45ff705a44ff705a44ff765a44ff7a5e48ff85634dff896852ff97725bff9e7962ffa58068ffa7826affa6836aff
+a58168ff9e7c62ff98755cff896b51ff82644aff795b43ff75573fff735642ff745743ff6f5545ff6d5344ff5f4a40ff4f3a30ff372a24ff4b3d37ffd2cbc9fffffffcfffffcfbfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5d3cf
+ff5f5d59ff23211dff282623ff24231fff33322eff454742ff393a36ff4a4b47ff464743ff3f423dff3c3f3aff3e423dff424642ff444844ff434743ff42494aff394041ff373e3fff3b4243ff333a3bff22292aff1c2224ff222829ff121719ff101517ff9b9ea0fffbfffffff8fafcfff7f8fafffbfafcfffdfcfffffffffcfffffffcfffffffefffffffefffefffffffefffffffcfefffffcfefffff4f5f6fffefffffffbf8
+f6fffbf8f5fffffcf4fffffff9ffc7beb3ff82796eff6d5d46ff6d5d47ff715d47ff715c46ff785d47ff7e634dff8d6b55ff94725cffa47e67ffb28c75ffc39b84ffcca38cffcea68effcba38affbf987fffb38b72ff9b7b62ff907057ff82634dff7b5c46ff765b49ff735745ff654e41ff5d463aff54423bff2f1e17ff514643ffb1a6a4fffffefffffaf4f5fffaf8fbfffffeffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff767470ff42403cff21201cff2d2b27ff353531ff292925ff2a2c27ff40413dff3b3d39ff3b3d39ff3d403bff40433fff3f433eff3a3e39ff363a36ff353a35ff282f30ff353c3dff3a4142ff353c3dff333b3cff353d3eff2e3536ff202728ff
+1f2425ff111718ff3c4042ffbfc2c4fffdfffffff6f7f9fffffefffff9f9fbfffffffcfffffffcfffffffefffffffefffefffffffefffffffcfefffffcfefffffefffffffafbfdfffffffdfffffffdfffffff9fffef8f0fffffff6ffc8c0b5ff6f5f48ff706049ff735f48ff735f48ff7a5f49ff826751ff92705aff9a7962ffaa846dffbe9881ffd7ae97ffe4bca4ffe9c1a8ffe4bca3ffd3ac93ffc39b82ffa3826aff95755c
+ff83644eff7a5b45ff725644ff694d3bff533c30ff462f22ff382720ff392821ffa69b98fffffefcfff9f4f5fffffefffffffefffffaf7fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff4f4f4fffffffffffbfbfbffffffffffc1c1c1ff353c36ff2c332cff242b25ff242c25ff2c352eff323b
+34ff303a33ff2c3630ff333e38ff343f38ff333f38ff313d36ff2f3c35ff2e3c34ff2f3d36ff313f37ff313938ff2f3635ff2e3433ff303635ff343837ff353938ff333635ff303232ff333333ff111111ff282828ff676767fffefefefffffffffffffffffff9f9f9fffffffdfffffffdfffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffefffffffefffffffcfffffffcfffffffaffff
+fffaffccc1afff837865ff5c4d3bff70614eff836d5bff6f5947ff765947ff927563ffa07f6cffb79583ffcca996ffd6b29fffe0bda9ffe5c2aeffd4b29dffba9883ff9b7e6bff907260ff785d4cff5f4534ff473224ff3e281aff35251bff35251bff3e332effb0a6a1fffffcfcfffffefefffffbfefffffefffffffdfffffcfaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff8f8f8fffffffffffffffffff9f9f9ffffffffffffffffffefefefff838383ff343b35ff2d342eff262d27ff262d27ff2c342eff323b34ff333c36ff323b35ff2f3a33ff303b34ff303c35ff313d36ff2f3c35ff2f3c35ff2f3c35ff2f3d35ff333a39ff2f3736ff2d3332ff2a302fff2c3030ff2d3130ff2f3131ff2f3131ff323232ff141414ff222222ff474747ffcacaca
+fffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffffffffffffffffffefffffffefffffffffffffffffffffffffffefffffffefffffffcfffffffcfffffffafffffffafffffff1fff2e7d4ffa69684ff635441ff624c3aff816b59ff8f7260ff7c5f4dff83614fff967462ffac8875ffb79380ffba9783ffb28f7aff987561ff7e5b46ff725442ff503320ff381d0cff3f2413ff402b1dff3e281aff402f
+26ff514137ffcfc4bffff9efeafffffefefffff9f9fffcf8fbfffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffffffffffffffbfbfbffffffffffffffffffcececeff474747ff353d35ff313831ff2c342cff29312aff2b342cff2e372fff2f3a32ff303b33ff2d3830ff2e3a32ff2f
+3c33ff313d35ff313e36ff303e36ff2f3d35ff2f3d34ff363c39ff343936ff313431ff2c2f2cff2c2b29ff2d2d2aff35302fff393433ff36312fff241f1dff292423ff312d2bff8e8b89fffefbf9fffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefff6f2e7fffffff7fff5ece2ffada49aff
+6c5e54ff504238ff544036ff554137ff685146ff624b40ff5c4539ff584134ff553f32ff513b2eff4b3628ff473224ff392318ff3d281cff412f24ff3d2b20ff291d14ff3d3128ff88817affdcd5cffffffffcfffffffcfffffdfdfffbf9f9fffffefffffffefffffcf9fdfffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffefefefffffffffffbfbfbfffafafaffffffffffb0b0b0ff323232ff363d36ff353d35ff333b34ff313931ff2c352eff2a332cff29332bff29332bff2f3a32ff2e3a32ff2d3a32ff2f3c33ff303d35ff303d35ff2e3d34ff2d3b33ff2f3531ff2e3431ff2f322fff2a2d2aff2a2a27ff2c2b29ff35312fff3b3735ff3a3533ff363130ff3a3634ff2b2625ff605d5bfffdfaf8fffffefcfffffffdffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffff7fffffff7fffffff7fffffff7ffded0c6ff928479ff5b473dff422f24ff462f24ff3c261bff3a2316ff3f281bff402a1dff3d271aff3d281aff422d20ff422d21ff392318ff342117ff4f3c32ff897c73ffd4c7befffffbf4fffffffafff8f5f1fffefbf7fffdfafbffff
+fffffffffefffffffdfffff8f5f9fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafff9f9f9fffffffffff8f8f8fffefefeff8c8c8cff323232ff3e3a34ff413e37ff44413aff44413aff3f3d36ff3a3831ff36352eff34332cff373830ff35362fff33352eff33362eff363831ff363831ff34372fff
+32342dff282c25ff2b2e27ff30302aff302f29ff332e28ff342f29ff3d332eff413833ff4a3f3aff4f443fff4c433eff322924ff423d37fff6f0eafffffff9fffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffafafafff7f7f7fff7f6f5fffffefdfffffffdfffffffdffe9e0deffc0b7b5ff6e6461
+ff5c524fff4c433fff463d39ff3e3832ff36302aff38332dff423d37ff4d403dff7e716dffb7aeaaffe5dcd8fffbf8f4fffffffcfffffffcfff5f6f2fff4f8f5fffdfffdfffdfffefffbfefbfffffffefffffffefffffdfefffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfff9f9f9fffffffffffbfb
+fbfff6f6f6ff656565ff303030ff3c3932ff413e37ff47443dff4b4841ff494740ff46443dff414039ff3f3e37ff373830ff373730ff363931ff3a3c34ff3e4038ff3c3f37ff383a33ff33352dff30342dff33372fff393932ff3b3b34ff3f3a34ff403b35ff453b36ff463d38ff524843ff554a45ff483f3aff312823ff2c2721ffded9d3fffffffafffffffaffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfdfdfffffffffffffffefffcfbfafff9f3f1fffef8f6fffffcfafffffaf8fffffffcfffffaf7ffeae1dcffd8cfcaffcbc4bfffc8c2bcffd1cdc6ffdfdbd4fffff8f4fffff4f0fffff9f5fffffffbfffffffcfffaf7f3fffafbf7fffffffcfffdfffdfffdfffdfffdfffefff4f7f4fffdfdfcfffffffefffffdfefffefafbff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffbfbfbfffffffffffdfdfdfff8f8f8ff4d4d4dff323232ff483833ff4a3b36ff4e3f3aff53443fff554742ff554742ff534640ff51443eff4a3f39ff4e423cff544943ff5d534dff625852ff5f5650ff554c46ff4c433dff44463cff43453bff45433aff46443b
+ff4c443cff4b433bff4d4039ff4b3e37ff51433cff50413bff40342dff382c25ff2b231bffcbc3bbfffffff9fffffff9fffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffffffffffffefffffffefffffffcfefffffcfefffffbfefffffbfefffff6fcfffff0f6fafff5f7fcfffbfefffffefefffffcfcfffffefcfffffffefffff6f4f6fff8f6f8fffafafafffffffffffbfffffffbff
+fffff9fffffff9fffffffffefffffffcfdfffffefffffffefffffdfffffffafcfcfff2f9f7fff7fffcfff5fdf9fff9fffdfff7fcf8fff5faf7fffffffdfffffffdfffdfaf6fff8f6f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffcfcfcfffffffffffbfbfbffffffffff494949ff3a3a3aff4b3b36ff4a
+3b36ff4b3c37ff4e3f3aff51433eff534540ff52453fff50433eff564b45ff5d514cff685e58ff766c66ff7d746eff796f69ff6a615bff5e554fff4b4d44ff47493fff46443bff444239ff494039ff473f37ff473a33ff443730ff463730ff44362fff382c25ff40342dff322b23ffc0b8b0fffffff9fffffdf5fffffffffffffffffffffffffffffffffffffffefffffffefffffffefffffffefffffffffffffffffffeffffff
+fefffffffcfefffffcfefffffbfefffffbfefffff7fdfffff9fefffffbfefffff7fafffff9f9fdfffefefffffffefffffffdfffffffefffffffefffffffffffffdfdfdfff7fcfbfffafefdfff9fffffff9fffffffffafbfffffefffffffdfdfff5f2f2fff4f6f6fffdfffffff9fffefff4fbf8fff9fffdfff9fffdfffbfffcfffcfffdfffffffdfffffffcfffffcf8fffffffcffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffefefefffdfdfdfffffffffffefcfdfffcfafaffffffffff4a4747ff3c393aff4b3c30ff524337ff584739ff584738ff5c4a38ff604e3cff604c38ff5a4632ff5f4c38ff695641ff786754ff8b7a68ff928473ff8b7d6cff75695aff645749ff514b41ff504a3fff4f473bff4c4438ff4d4233ff4b4031ff4b3f2fff4b3e2eff463a
+2dff4c4033ff393129ff292119ff3b3735ffb9b5b3fff6f6f8fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffbfbfbfffffdfefffffffffffffdfdffffffffff605c5dff403d3eff4a3b2fff514135ff564537ff564536ff594735ff5e4c3aff
+614e3aff5f4b37ff614e3aff695641ff746351ff857461ff8b7c6cff857666ff716557ff625648ff504a40ff4f493fff50483cff4d4539ff4e4334ff4c4132ff4b3f2fff4a3e2eff413528ff463a2dff342c24ff3c332cff292523ffd2ceccfffdfcfefffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdff
+fffffdfffffffdfffffffffffffffffffffffffffffff9f9f9fffefcfdfffffffffffffffffffbf8f9ff858283ff413e3fff513f32ff574538ff5c493aff5a4738ff5c4734ff604a38ff654e39ff664f3aff67503aff6c543fff735d49ff7e6954ff826f5dff7e6c59ff705f4eff655443ff584a3bff584a3bff584939ff564737ff564534ff534331ff514130ff4f3f2eff48392cff483a2dff362c25ff483f37ff262120fff0
+ebeafffffefffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffcfcfcfffffdfdfffffffffffffffffffcfafaffb1aeaeff423f3fff574538ff5c4a3eff624e3fff614d3eff614b39ff614b39ff654e39ff68503bff69523cff6a533dff6c5742
+ff725d48ff74614fff725f4dff695847ff625040ff594b3cff594b3cff5a4b3aff594a39ff584837ff564634ff534332ff524231ff55473aff4f4134ff3e352dff393028ff4b4645fffef9f8fffffefffffdfafdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffc
+fcfcfffffffffffffffffffcfbfbfffffdfdffffffffffd8d5d6ff514e4fff594538ff5d483bff644e3eff675041ff69503dff674e3bff6b4f39ff6d523bff6f533bff6e523aff6e523cff70543eff725743ff715642ff6c5340ff684f3cff674e38ff674e38ff664d37ff654c36ff634b36ff614934ff5c4735ff5b4634ff5f4f42ff534336ff443933ff261a15ff8f888afffef7f9fffffdfffffffbffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffcfcfcfffffffffffffffffffffdfdfffaf8f8fffffffffff4f0f1ff7e7b7cff5b473aff5a4639ff5f4939ff654f3fff6c523fff6a513eff6e523cff70553eff72553dff70543cff6e523cff6f533dff6e5440ff6e5440ff6b523fff6950
+3dff6b523cff6a513bff684f3aff674e38ff654d38ff644c38ff614c3aff614c3aff5d4c40ff4f3e32ff423631ff372c26ffd0c8cafffdf5f7fffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffefefefffffdfdfffffffffff7f4f5ff
+fffffffffffeffffbfbcbcff6a5649ff614d41ff604a3bff654e3fff6e5340ff6e5340ff73553eff755740ff795840ff78573fff78563eff78563fff775640ff775640ff755540ff74543fff79573bff775439ff725238ff6f4f35ff6b4e38ff6c4f39ff68503fff695140ff5b4a3fff4f3d33ff403531ff796d69fff7f0f1fffffbfdfffffdfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffafafafffcfbfbfffffffffff6f3f3fffffffffffffeffffefececff7d695cff6e5a4dff664f40ff675041ff6f5441ff6f5441ff74553fff765841ff7b5b43ff7b5b42ff7b5a42ff7b5a42ff7a5a44ff7a5943ff785843ff775742ff7b593eff79563bff735339ff705036ff6b
+4e38ff6d503aff6a5241ff6c5544ff5f4d42ff544238ff423633ffb8ada9fffffefffffffefffffffdfffffdf9fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffd9cac0ff706157
+ff544134ff705e51ff715a49ff6c5544ff7c604aff725640ff806048ff84644cff88664eff8a6850ff916f58ff96735cff8e6c56ff82604aff825c40ff856044ff7e5c43ff77553cff725642ff785c48ff6d574aff624c3fff5e4f48ff382922ff8a817ffffffaf8fffffefffff8f4f5fffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffffffffffffffffffafafafffcfcfcfffefefefffffffffffefefefffdfdfdfffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffff6ffb9a9a0ff6c594cff604e41ff705847ff6c5544ff785b46ff896d58ff83634bff97775fffab8971ffb18e77ffae8b75ffab8872ffa7856fffa4816cff926d51ff876246ff7d5b42ff7d5b42ff745743ff6d503dff655042ff6c5649ff483932ff
+7f7069ffd1c8c6fffffffcfffffefffffffefefffffefffff8f6f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f3f3fff8f8f8fffffffffffffffffffffffffffffffffffcfcfcfff8f8f8fffffffffffffffffffdfdfd
+fffbfbfbfffafafafffafafafffafafafff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffbf4eefff8f0eaffb0a59cff645950ff6a594bff705f51ff6c55
+42ff725b48ff896d58ff977a65ffae8f79ffc5a58fffd6b6a1ffd9b8a3ffcba995ffba9985ffb6947cff9e7d65ff846652ff7c5e4aff715b4cff6a5345ff5b4c44ff594a42ff69605dffd1c9c5fffffffefffffdfcfffffffffffffffffffbfbfbfff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdffffff
+fdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffff8f1ebfffffffafffcf2e9ff9a9087ff776759ff705f52ff755e4bff826b59ff8c705bff927661ffa68771ffc3a38dffddbda8ffe2c1acffcfae9affb99884ff93715aff94735bff8b6e59ff81634fff715a4cff715a4cff6b5c53ff6c5c54ffcfc7c3fffffcf9fffffffefffbf7f6ffffffffffffffff
+fff9f9f9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fff9f9f9fffdfdfdfffffffffffffffffffffffffffefefefffdfdfdfffefefefffffffffffffffffffffffffffffffffffdfdfdfffafafafff7f7
+f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffefffefffefffefffffffbffeae8e3ffb8afa5ff7b7268ff6c5c4dff756556ff735d4bff7e6755ff927764ffa0
+8572ffa68a77ffa38673ff9d7f6dff997c6aff9e8371ff7d6250ff70594bff7d6759ff695a52ff5d4e46ff8d8683ffe2dbd8fffffffffffffffffff6f9f8fff8fafafffcfffffffcfffefffbfffcfffdfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffefefefffdfdfdfffcfcfcfffdfdfdfffefefefffffffffffffffffff9f9f9fffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffefffffffefffffafcfaffe5e7e5fffcfaf5fffffffbfffffaf0ffd0c7bdffa59586ff79695aff826b59ff7d6754ff806552ff846a56ff896d5aff896c59ff886a58ff886b59ff745948ff8b715fff826c5eff6b5547ff7d6e66ffc9bab2fffbf3f0fffffffcfffffffffff9f8f8fffafcfcfffdfffffffafefdfffcfffffffdfffefff8fcf9ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffefefefffefefefffefefefffffffffffffffffffffffffffafafafff5f5f5fff4f4f4fff6f6f6fff9f9f9ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffff8fffffff8fffffffcfffdfffcfffdfffffff9fffffff9fffff6eaffd8ccbfffa18e7eff8a7867ff796250ff745d4cff7b6150ff7c6352ff7b6150ff7a5f4fff
+7a6558ff6c5649ff87776dffd5c4bbfffdf4f0fffcf3effff6f4f4ffffffffffeff3f5fffafdfffff9fffffff9fffffffafffffffafffffff9fefafff8fdf9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffdfdfd
+fffffffffffcfcfcfff3f3f3ffe5e5e5ffd6d6d6ffcdcdcdffecececffeeeeeefff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffdfffffffdfffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefffffffeffffeff7f8fff7fffffffcfffdfffafdfbfffffff7fffffef6fffffff2fffffff5fffffff1fffff5e5fff5deccffdec7b5ffcbb1a0ffc0a796ffc8ad9dffd5bbaaffe9d3c6ffffefe2fffffff5fffff9f0fffff9f5fffffffbfffffffffff8f6f6fff9fcfffffbfffffff7fdfefff1f7f8fffafffffff8fdfdfff0f6f2fffbfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffd5d5d5ff989898ff5a5a5aff2f2f2fff1d1d1dff1e1e1eff232323ff1a1a1aff2f2f2fff5c5c5cff999999ffd4d4d4fff7f7f7fffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfff3f4f2fffffffdfffefffdffe8ebe8fffdfffdffc3c7c4ff5d625fff3c413eff1d231fff171d1aff202724ff252c29ff222a
+26ff1f2623ff29242aff272228ff1d1b20ff19181cff2b2f32ff6b6f72ffbec7c7fff7fffffff5fffdffedf7f5fffafffdfff6fdf9fffdfffafffefffcfffaf9f4fffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffff6f7f5fffcfdfafffffffdfff8f9f7fffefffdfff9fbf9ff919492ff414542ff222724ff1b201dff1b211dff282e2bff353c39ff383f3bff343c38ff313935ff383339ff2d272eff2a292dff2d2c30ff191e20ff15191cff424b4bff848d8dfff7fffffff4fefcfff1f9f4fffafffdfff7faf5fff4f7f2fffffffbfff5f5f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffff4f5f5fffeffffffdcdfdeff868988ff2b2f2eff111414ff262b2aff292e2eff303635ff383e3dff383f3eff343b3aff323938ff343c3aff3c3940ff3a383fff34373bff2c
+2f33ff1c2225ff12181bff121c1cff1b2425ff767f7effe5efedfffbfffffffbfffffffefffcfffbfbf9fffffffdfffbf9f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefefefff8fafafff8fafaff7a7d7cff151717ff1b1f1eff323535ff2a2f2eff333837ff3d4342ff434948ff414847ff3f4745ff434b49ff48504fff434148ff46444aff3e4045ff35383cff33393cff343a3dff242d2eff0f1919ff050e0dff7e8786ffeef4f3fff5fafafffffffdfffffffdffeeebe9fffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff2f3f3fffdffffff898b8bff2a2e2dff232626ff222726ff303433ff272d2cff343939ff424847ff4a5150ff4b5351ff49504fff454d4cff434b49ff474c52ff3d4248ff3e4549ff484e53ff3b4347ff21292cff1a2224ff252d30ff
+1f2627ff0a1011ff868889fff2f5f6fffffffffffcfbfbfffbf6f7fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfcfcfffeffffffbcbfbeff303232ff242727ff2c2f
+2fff323635ff2b302fff3d4242ff404544ff3f4644ff3c4241ff394140ff39403fff363e3dff313a38ff3c4147ff393e43ff394044ff3d4448ff3a4245ff2f373aff252d2fff1f282aff212829ff060d0eff2f3232ffb7babafffffffffffdfbfcfffffefffffef9faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f0f0ff5a5a5aff292929ff333535ff191b1bff3d4040ff3a3d3dff383c3cff383c3cff323837ff2c3231ff2d3332ff363d3cff3b4341ff3c4342ff2c3437ff343d3fff31393bff293133ff343b3dff434b4dff393e40ff1d2224ff080a0dff313336ff1a191cff5b5a5cffe3dfe2
+fffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1a1a1ff343434ff303030ff2a2c2cff343635ff343837ff343737ff2f3433ff383c3bff3b
+4140ff383e3dff363c3bff363d3cff323938ff2b3331ff31393cff2e3639ff2f373aff31393cff2a3133ff1e2628ff212729ff2b3032ff282a2cff212426ff101012ff232224ffaba7aafffffefffff5f0f2fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffcf9f8ff5c5958ff363332ff353331ff383735ff353432ff3a3a38ff3b3c3aff313230ff383837ff3a3c3aff383a38ff353836ff373a38ff373b39ff363a37ff313736ff313736ff313635ff2f3333ff2d2f2fff2a2c2cff2b2b2bff2b2b2bff272525ff262324ff1f1b1cff282425ff4b4749fffffefffffdf9fbfffffcfeffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefeffffffffffffffffffffffffffd1ceccff4a4746ff393635ff3e3c3aff41403eff3a3837ff343533ff2e2e2dff30312fff363635ff373937ff363836ff353836ff383b39ff393d3aff
+373b39ff343a39ff333938ff323736ff2f3433ff2d2f2fff2a2d2cff2b2b2bff2a2a2aff252323ff252223ff252122ff282525ff3f3b3dffdfdadcfffcf7fafffffafcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffefefefffefefeffffffffffa39c97ff3e3631ff423b36ff47403bff4b453fff443e38ff3c3732ff322d28ff35322cff39352fff383630ff36342eff36352fff3a3933ff3a3a33ff383731ff36362eff35342dff35322cff33302aff342d29ff332c28ff332b28ff332b27ff322927ff312826ff342d2cff342d2cff332f2effa9a5a4fffefcfbfffffdfcffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffdfdfdfffdfdfdff847d77ff37302aff453e39ff423b36ff47413bff48423cff46423cff423d37ff3b3731ff3b3832ff393730ff36342eff373630ff3b3a33ff393932ff35342eff36352eff34332cff35322bff35322c
+ff39332eff3b3530ff3d3531ff3d3532ff403735ff3a312fff403938ff3c3534ff2f2b2aff7d7978fffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffefefefffcfcfcfffbfbfbff766a61ff3b
+2f25ff4c4137ff44382fff493f35ff4f453bff51483eff534a40ff494137ff494137ff464035ff474136ff4c473cff524d42ff504b41ff4a453aff4e4438ff4b4135ff4a3e33ff493e33ff4e4036ff514239ff51423aff51413aff4d403aff42352fff433b36ff3e3630ff2b2924ff63615cfffffffcfffdfffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefffffffffffffffffffffffffffdfdfdfffbfbfbfffafafaff6b5f56ff3a2e24ff4e4239ff453a30ff4d4339ff50463cff4e443aff52493fff50483eff51493fff524b41ff585247ff655f54ff6f695fff6e685eff666156ff5c5246ff564d40ff52463bff4f4439ff52443aff53443bff51423aff4f3f38ff4a3d
+37ff40322cff3e3631ff362e29ff272520ff5a5853fffffffbfff8f9f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffefefefffffffffffffffffffffffffffdfdfdfffafafafff9f9f9ff726357ff413326ff534538ff4a3c30ff55483bff54473aff
+4d4134ff55493cff54493cff564b3eff595043ff655c4eff766e60ff847b6eff827a6dff7a7264ff665747ff5f5040ff594739ff554335ff564236ff564235ff523e33ff4f3a30ff493930ff44332bff41382fff352c24ff292820ff606058fff9fdf5fffafef6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfffefefefffffffffffffffffffffffffffdfdfdfffafafafff8f8f8ff7c6e61ff483a2dff544639ff493b2fff56493cff53463aff4d4135ff594d40ff514639ff53493cff584f41ff655c4fff787062ff867d70ff837b6eff7a7264ff685949ff615142ff5a483aff564436ff584438ff584438ff554136ff513d33ff48382fff493830ff473e36ff382f27ff2e2d25ff6c
+6b63fff9fdf6fffefffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7fffffffffffffffffff5f5f5fffffffffffffffffff6f6f6fffcfcfcfffefefefffdfdfdfffdfdfdfffffffffffffffffffffffffff5f5f5fffffefffffffefffffefbfffffcfafdfffffefffffdfbfefff5f5f6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeff938a7bff463d2eff5c4d3cff554635ff66503dff624c39ff5e432eff644834ff684d38ff684d38ff67503d
+ff715a47ff766655ff7d6d5cff776d5dff74695aff675a4cff5f5244ff584a3aff544635ff574634ff574734ff554331ff513f2dff4b3a2bff574637ff3c2f26ff493c33ff382f2cff8f8683fffdf7f8fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffdfdfdfffffffffffffffffff7f7f7fff5f5f5fffffffffffffffffffffffffffffffffffffffffffdfdfdfff1f1f1fffafafafffffffffffffefffff3f0f4fffffdfffffffefffffefcfefff6f4f7fffdfdfefffcfcfdffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffbfb6a7ff473e2eff5a4c3bff615242ff604936ff68523fff624732ff6d513dff674c37ff674c37ff654e3bff6a5440ff6a5b4aff6e5e4dff685e4eff665c4cff5f5344ff5a4e3fff584939ff564737ff594836ff594836ff584633ff554331ff544334ff4f3e2fff43362dff493c33ff39302effc5bcbafffffefffffffdfeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfdfefffefffffff7f8faffeff0f1fffefffffffeffff
+fff4f5f6fffbfcfdfff1f2f4fffafbfcfffcfdfefff5f6f7fff0f1f3ffeeeff0ffe5e6e7ffd9dadbffe9ecedfffcfffffff9fcfdffebeeeffff8fafbfffdfffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e2d5ff534c3fff504435ff675b4cff5c4735ff6c5745ff644834ff6d513cff6c4d38ff6d4e38ff6c4f3aff6e523cff6b533fff6c5440ff685442ff6854
+41ff644e3cff634d3cff634d3aff634c39ff624b38ff614a36ff5d4835ff5c4734ff574536ff4a3829ff4b3f36ff463930ff443d3bfff3eceafffffbfdfffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfefffffefffffffafbfcfff4f5f6fffefffffffefffffffbfcfdfffefffffffefffffff7f8f9ffc6c7c9ff7e7f80ff434445ff2c2d2fff2c2d2eff2f3032ff444647ff505354ffaeb1b2fffdfffffffbfdfefff4f6f7fffefffffff1f2f2ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffaedff857f72ff4c3f30ff66594aff675240ff735e4cff6b4f3aff684c37ff70523cff72543eff715540ff715540ff6c5440ff6b5440ff695542ff6a5643ff644f3dff66513fff695340ff68523fff654f3bff624c38ff5f4937ff5e4936ff564435ff524032ff4f433aff473a32ff736c6afffffefbfff8f4f6fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfefffff2f4f7fffcfefffffcfefffffbfdfffff3f5f8fffafdfffffbfdffffcbcdcfff6b6e70ff1f21
+24ff1c1e21ff2e3032ff26282bff1e2123ff26282aff1e2725ff1f2826ff0b1312ff2b3432ff9fa6a5fff5fcfbfffbfffffffbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8ffc9c6bdff584f43ff574e42ff6e5c4bff726050ff775b47ff6c503cff75543dff77563fff7b5740ff7b5740ff78553eff77543dff75543eff76553fff72503aff74523cff74533dff73523cff6d
+4f3aff6b4d37ff654b39ff654b39ff5a483aff5c4a3cff473b33ff554a42ffbdb8b6fffffffdfff6f5f7fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafcfffff8fafdfffcfefffffafcfefff5f7fafffcfefffff1f3f6ffa3a5a8ff292b2eff1e2023ff26282aff3d3f42ff3f4144ff303234ff333538ff474a4cff283130ff37403eff353d3cff141d1bff181f1eff717877ffdbdfdffffbfffffffdfffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5fffbf8ee
+ff867d71ff544b3fff6a5847ff6a5847ff795d49ff715642ff76553eff785640ff7c5941ff7f5b44ff7f5d46ff7e5c45ff7b5a44ff7a5943ff795741ff77553fff74533dff72513bff6e503bff6e4f3aff684f3cff684e3cff5d4b3dff584538ff483d35ff80746cfff6f1f0fffffffdfff9f8fafffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8fafdfffcfefffffcfeffffebedeffff7f9fcfffcfeffffabadb0ff37393cff222426ff3b3d40ff4b4d50ff47494bff454749ff4c4e51ff4a4c4fff3e
+4043ff394741ff37453fff202d27ff24312bff2b3530ff0d1713ff505854ffeef5f2fffcfffefffcfffefffffffffffffffffffffffffffffffffffffffffffffffffff9faf5fffffffbffcec9c0ff706b62ff655749ff635547ff6e5643ff715845ff7b5a44ff7d5c46ff88624aff916a53ff9c735bff9f765fff9e745eff9b715aff956c53ff8e654cff835c45ff7c563eff75543fff74533eff6b5140ff694f3eff5d4c40ff
+524135ff756c66ffccc3bcfffffffefffffffefffbfbfbfffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffafcfffffcfefffffbfdfffffcfefffffcfeffffb3b5b7ff47494cff141619ff282a2dff353739ff404245ff444649ff45474aff47494cff47494cff45474aff3c4943ff43504aff2d3a34ff25312cff2e3833ff17211cff29302dff747b78fffcfffefffcfffefffffffffffffffffffffffffffffffffffffffffffffffffffbfcf6fffffffbfffffff8ff9d988fff716355ff6d5f51ff6b53
+40ff745c49ff82614bff85644eff946d55ffa37c64ffb48b74ffbd947cffbd937cffb98f79ffac836affa0775eff8e6850ff845d46ff7a5944ff775641ff6b5141ff684d3dff625045ff5b493effb3a9a3fffffffafffffdfbfffffefdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffffffffff0f0f0ff545454ff2c2c2cff2b2b2bff323232ff313131ff333333ff393939ff3e3e3eff3e3e3eff3d3d3dff3c3c3cff323e35ff323d34ff333d35ff343e36ff
+343c36ff2c352eff232924ff1a201bffbfc2c0fffafdfafffffffffff9f9f9fffcfcfcfffffffffffffdfffffffefffffefffefffefffefffffffbffefede8ffb5aca1ff6c6358ff614f3fff766453ff785e4aff856b57ff9b7964ffaa8873ffc59f8bffdbb5a1ffe5bca9ffdfb7a3ffc8a28affae8770ff8f6c57ff84614cff7c5f4eff795c4bff6b564aff685246ff62554dffb6a9a1fff8f2edfffffffbfffcfbf8fffffffd
+fffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7
+f7fffdfdfdffffffffffafafafff454545ff2e2e2eff252525ff373737ff363636ff363636ff383838ff3a3a3aff383838ff363636ff353535ff343f37ff313c33ff2f3931ff2d372fff2e3630ff2a322cff252b26ff1f2520ff727573ffeef1eefffffffffffafafafffffffffffdfdfdfffffdfefffdfbfcfffafdfbfffdfffdfffffffbfffffffbfff0e7dcffb6ada2ff857362ff625040ff866b57ff846a56ff8d6c57ff9b
+7965ffb8927dffcfa994ffd8b09cffd6ad9affbe9881ffad8770ff906d58ff7b5843ff6f5241ff725645ff6c574bff6a5549ffc4b7affff4e7dffffffffbfffffffbfffcfaf8fffffffdfffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffcf9f5fffefbf7fffdfaf6ff686561ff3a3733ff3a3733ff2b2824ff373430ff383531ff383532ff3a3733ff3b3835ff3d3a37ff3e3b37ff3e3b37ff393d32ff34382dff2f3228ff2d3127ff30322aff32352dff31332eff30322cff2c2d2a
+ffd8d9d6fffffffffff9f9f9fffffffffff8f7f9fffffefffffbfafdfffbfdfcfffdfefefffefefbfffffffdfffffff9fff8f4ecffc9bfb3ff92897cff706051ff675748ff6d5748ff806a5bff9c8274ffa68c7effa4877bff9d8074ff8d7462ff7a604fff786253ff866f61ff6f5e53ff5e4d43ff877c76ffd2c7c1fffff9f6fffffffcfffffffdfffffefcfffbf9f6fffffffdfffffffcfffffffbffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf9fffffdf9fffffdf9ffe4e1ddff403d3aff383531ff45
+423eff393632ff34312dff35322fff36332fff35322fff383531ff3d3a36ff3e3b38ff3d3a37ff35382eff303429ff2d3026ff2d3127ff34372fff3a3d35ff3e3f3aff3f403bff1e1e1cffb0b1aefffffffffff9f9f9fffffffffff9f9fafffffefffffffefffffcfefefffefffffffcfbf8fff6f6f3fffffff8fffffff9fffffbefffebe2d5ffa9998aff857667ff685344ff5c4738ff644a3cff6b5043ff75584cff7e6155ff
+775d4cff715746ff5c4637ff553f30ff736258ffb7a69cffece1dbfffffcf6fffffffcfffffcf9fffcf9f6fffbf8f5fffffdfafffffffdfffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f1fffffff9fffffff8ffc8c2baff413b32ff3d372eff4b453cff474139ff433c34ff433d35ff413a32ff3d362eff3f3830ff443d35ff423c34ff3c362eff423b30ff3f382cff3c362bff3e382dff433e35ff48433aff48443eff47433eff32302dff7e7c78fffffffffffefefefff6f7f8fffeff
+fffffdfffffffbfdfffffcfbfdfffffefffffffffefffffffefffffffbfffffffbfffffff9fffffff7fffffff7ffdfdcd2ffb3aca3ff8d857dff71655fff594d47ff524440ff544643ff5c5349ff5c5248ff7d776fffc3bcb5fff3f0ecfffffdf9fffffffffffffffffffffffffffcfbfdfffafafafffefefefffffffcfffffffcfffffff9fffffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf3fffffff9fffffff9ffb7b0a8ff453e36ff3e372fff453f37ff484139ff4d463eff4d473fff4b453cff
+4b443cff544e46ff5f5950ff5d564eff524c44ff4d453aff4a4237ff463f35ff474036ff474239ff47423aff423f39ff3f3b35ff393734ff595754fffffffffffffffffff8f9fafffefffffffafcfffff7f9fbfffefdfffffbfbfcfffdfdfcfffffffefffffffbfffffff9fffffff6fffffff8fffffff7fffffff7fffffff8fffffff8fffffbf5fff8ece6ffeee1ddffebddd9ffe5dcd2fffffff7fffffff9fffcf5eeffefece9
+fffffffcfffffffffff1f1f1fffffffffffffffffffffffffffffffffffffffcfffffefafffffff9fffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffff5fffffff4ffc0b7acff423a2fff433a2fff4a4136ff4b4237ff51483dff524a3fff52493eff585045ff6c6358ff7e756aff7c7368ff6d655aff5b4c41ff56483cff514439ff4e4137ff4b4038ff483d35ff3f3832ff3a332dff35312eff5f5c59fffcfcfcfffefefefffdfffffffdfffffff9fcfefff7fafcfffffefffffdfbfdfff8
+f8f8fff9f9f9fffdfffbfffefffcfffdfffbfffdfffbfffbfff8fffdfffafffffffcfffbfcf8fff9f8f7fffdfcfbfffffefffffffffffffffffbfffbfdf8fff3f7f4fffcfffefff9fffffff9fffffff8fffffff8fffffff7fdfffff9fefffffefffffffcfdfdfffffdf9fffffffafffffff9fffffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffff8edfffffdf2ffcec6bbff3a3126ff483f34ff50473cff4f463bff51493dff52493eff51483dff584f44ff6e665bff82796eff7d7469ff6b6257
+ff5c4d42ff57483dff504338ff4c3f35ff483e35ff453b32ff3c352fff38302aff302c29ff777370fffafafafff6f6f6fffdfffffff9fbfcfffafdfffffbfffffffffdfffffffefffffffffffffefefefffcfffafffefffcfffdfffbfff7fcf5fff7fcf5fffdfffafffffffcfffcfef9fffefdfcfffffffefffffffffffffdfefffdfff9fffefffafffcfffefffcfffefff7fdfffff3f9fbfff3fafefff8fffffff4fafdfff9ff
+fffffefffffffefffffffffffafffffffbfffffff9fffffdf6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffcfffafbf7fffffff9ffdfdbd3ff54493bff4d4133ff513e2aff6a5743ff654b35ff654c36ff6c4f3aff6b4e39ff725442ff876957ff896c5bff755747ff6d4b3aff704d3dff654838ff5e4031ff564134ff523d2fff44382dff45382dff2a241dffa6a099fffffffcfffffffcfff5f5f5fffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfcf8fffffffcfffffff9ffe9e5ddff786c5eff54483aff5d4936ff5e4a36ff694f3aff634a34ff6b4e39ff70533eff6f523fff735643ff725444ff664838ff6f4d3cff62402fff614434ff694b3cff5d48
+3bff5d483bff53463bff44382dff2a251dffc5bfb8fffffffbfffffdf9fffffffffffefefefffdfdfdfff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f9f8fffdffffff
+fffffbfff9f7f2ffaaa196ff564c41ff604f3eff604e3eff6a533eff604834ff6a4e39ff755944ff725541ff6e513dff715341ff705340ff745445ff6a4a3bff6a4f41ff684d3fff534034ff5c493cff574c42ff3e3329ff544f48fff0ebe4fffffdfafff8f6f3fffffffffffbfbfbfffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfdfdfff9fbfbfffffffbfffffffbffded4c9ff6d6459ff604f3eff6b5a49ff715945ff6a523eff725742ff765b46ff715440ff725541ff785a48ff765846ff755545ff79594aff6e5344ff64493aff604d40ff645044ff4c4137ff362b21ffaaa59effff
+fffafffffffcfff7f5f1fffffffffffcfcfcfffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffecf1f4fffffffffffefefefffef9f2ffaba59fff6f6155
+ff5d5043ff6c5847ff705d4bff7d6450ff7c634fff7c614bff886c57ff8b6e59ff7c5f4aff74594cff795e51ff624c40ff644d41ff716156ff594a3fff40382fff5d554cfff4f0ebfffffef8fffffffdfffefdfbfff8f8f8fffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffff1f6f9fffffffffff2f2f2fffffffafff6f0eaffa4978aff615447ff64503fff6e5a49ff836a56ff8e7561ffa18570ffbca08bffc2a590ffac8f7aff8d7265ff896e61ff70594dff685246ff59493fff3a2a1fff5d554cffcdc4bcfffffffbfff4f1ebfffffffdfffffffdfffbfbfbffffffffff
+fffffffffbfafcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fdfffff8fefffffbfefffff1f4f7fffffffefffffffeffe2d9d2ffa19991ff75675aff6d5e52ff786453ff8975
+64ffa78f7bffc5ad99ffd1b7a1ffc3a993ff98847aff846f66ff6d5c53ff5b4a41ff463b33ff61564effb5b0aafffffffafffffffcfffffdf9fff9f9f7fffffffefffffffffffdfdfdfffffefffffafafbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fcfffff8fefffff3f6f9fffbfefffffffffefffaf9f7fffffff9fff8efe8ffa6978aff817266ff725e4dff776352ff8a725eff9a836effa58b75ff9f856fff917d73ff69544aff544339ff4f3e35ff685d55ffd2c7bffffffffafffffcf6fff6f5f1fffffffcfff2f3f1fffafaf8fffffffffff3f3f3fffffefffffefeffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fefffff9fefffffbfefffffbfefffffffefffffffefffffffffdfffffffdfffffcf5ffdbd2cbffa99b8fff7e7165ff746251ff746251ff7a6653ff7b6753ff55
+4741ff493b35ff685d57ffbbb0aafff7f1ecfffffffafffefdf9fffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffefffffffffffff8f8f8fff8f8f8fffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffafafafffafafafffffffffffffffffffffffffffffffffffefefefffafafafffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff9fefffff9fefffffbfefffffbfefffffffefffffffefffffffffdfffffffdfffffff9fffffef6fffff6e9fff7eaddffebd9c8ffd2c0b0ffbaa693ffa79380ffd5c7c1ffe2d4cefff8eee8fffffffafffffffbfffef8f3fffcfbf7fffffffcfffffffdfffffffdfffffffffffffffffffffffffffffffffffffefffffffefffff8f8f8fffcfcfcfffffffffffffffffffffffffffbfbfbfff9f9f9fff9f9
+f9fff4f4f4fff8f8f8fffffffffffffffffffffffffff5f5f5fff3f3f3fffafafafff5f5f5fffffffffffffffffffffffffffffffffff4f4f4fff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfefffffdfefffffdfefffffdfefffffffefffffffefffffffffefffffffefffffffafffffffafffffff5fffffff4fffffff2fffffff4fffaf3f0fffffffcfffffffcfffffffcfffffffdff
+fffffdfffdfffefffdfffefffcfffffffcfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffafafafffffffffffffffffff7f7f7fffbfbfbfffffffffffdfdfdfffffffffffffffffffffffffff9f9f9fffcfcfcfffffffffffffffffffffffffffcfcfcfffdfdfdfffefefefff9f9f9fff3f3f3fff9f9f9fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffefffffffdfe
+fffffdfefffffdfefffffdfefffffffefffffffefffffdfbf9fffffefcfffffffafffffff9fffffef3fffffff4fffffff4fffffff4fffffffcfffffffcfffdf8f5fff8f3f0fffdfcfafffffffdfffdfffefff1f3f1fffcfffffffcfffffffdfffffffdfffffffffefffffffefffffffefffffffefffffffffffffffffffff9f9f9fff2f2f2fffefefefffffffffffafafafffdfdfdffebebebfffffffffffffffffff6f6f6ffdc
+dcdcffdcdcdcffeaeaeafff1f1f1fffbfbfbfffffffffffffffffffafafafffcfcfcfffffffffffffffffff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffdfefffffdfefffffbfefffffbfefffffbfefffffbfefffffffffffffffffffffffffbfffffef9fffffbf3fffbf7effffffefffffffefffffffffffffffffffffcfffefffbfdfdfffafffffffbfffffffafffffffaffff
+fffcfffffffcfffffffffefffffffefffffffefffffffefffffffffffffffffffffffffffffffffffffffffffffcfcfcfff7f7f7fffafafaffffffffffe9e9e9ffb3b3b3ff787878ff4b4b4bff383838ff3a3a3aff434343ff7a7a7affabababffe9e9e9fffffffffffffffffff2f2f2fff3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffffffffffffffdfefffffdfefffffbfefffffb
+fefffffbfefffff9fcfffff9f9f9fff8f8f8fffffffafffffffbfffffff9fffffff9fffaf6f7fff8f5f5fffafafafffffffffffdfffffff7f9f9fff9fefdfffbfffffffafffffffafffffffcfffffffcfffffffffefffffffefffffffefffffffefffffafafafffafafafffffffffffffffffffafafafffefefeffffffffffffffffffcececeff6f6f6fff202020ff1d1d1dff353535ff373737ff303030ff323232ff1c1c1cff
+272727ff656565ffc5c5c5fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffdfffffffdfffefffffffefffffff9fefffff9fefffff4fafffff6fcfffffafffffffafffffffdfffffffcfffefff8f9f5fff2f3effffffffffffefefefff9fcfbfffdfffffffbfffffffbfffffff4fbfbfff2f9f9fff9fffffff9fffffffcfffffffcfffffffffefffffffefffffffe
+fffffffefffffffffffff9f9f9fffffffffffffffffff2f2f2ffffffffffffffffffc6c6c6ff3a3a3aff222222ff202020ff3c3c3cff4e4e4eff424242ff393939ff3e3e3eff434343ff232323ff1d1d1dff5a5a5affbcbcbcfffffffffffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffafffffffdfffffffdfffefffffffefffffff9fefffff9fefffff8fefffff8fefffffafffffff8fdffff
+fafcfcfffcfefefffffffcfffffffcfffcfcfcfffffffffffdfffffffdfffffffafffffffbfffffff9fffffff7fdfefff9fffffff9fffffffcfffffffcfffffffffefffffffefffffffefffffffefffffffffffff7f7f7fffffffffffffffffff9f9f9ffffffffffd0d0d0ff4f4f4fff1d1d1dff323232ff424242ff424242ff434343ff4b4b4bff4c4c4cff464646ff3d3d3dff404040ff232323ff101010ff545454ffcbcbcb
+fffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef8f9fffffbfcfffffeffffff
+fcfdfffffffffffaf8f8ff636364ff313032ff303334ff36383aff363b3dff353a3cff32393cff353c3eff343c3fff323a3cff373c37ff373d37ff252b28ff2a302dff151c1bff5f6665fff5fcfefff8fffffffafffffffafffffffefffffffefffffffffffefffffffefffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffafbfffffefefffffefffffffeffffcac8c9ff4d4d4eff2f2f30ff2a2d2fff333638ff383d3fff393e40ff363e40ff383f41ff363e41ff343c3eff2e332eff2d322cff272d29ff1f2522ff151d1cff3f4645ffc5cbcefff4fbfdfffafffffffafffffffeff
+fffffefffffffffffefffffffefffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffef8f9fffffbfcfffffefffffefaf9ff908c8bff3d3a38ff383533ff
+312f2cff373532ff393934ff383733ff363732ff383933ff373833ff343530ff303026ff303025ff31322aff24261eff232622ff2a2d29ff8b8f8ffff7fbfafffcfffffffcfffffffffffffffffffffffffffefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffef9fafffffcfdfffffefffff7f3f2ff666261ff393634ff423f3dff42403dff3e3c39ff363631ff32322dff353631ff3b3b36ff373933ff30322cff38392eff3a3a2fff34362eff33352dff313430ff282b27ff5e6261fffcfffffffcfffffffcfffffffffffffffffffffffffffefffffffefffffffdffff
+fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef9f8fffffcfbfffffffdfffffdfbfff2ece8ff5a5450ff413a32ff49433bff574f44ff4f473cff494032ff4d4436ff5d5443
+ff665c4bff5d5341ff4d4331ff4d4533ff504836ff3b3526ff4a4435ff3b382fff343128ff494945fffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffef9f8fffffefdfffffffdfffffaf8ffefeae5ff625c58ff423b33ff474038ff51493eff4e463bff51483aff605749ff786e5eff807666ff716755ff5b513fff524a38ff534b39ff3a3426ff494335ff37342bff312e25ff4a4a46fff7f6f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffefbfafffffffcfffffffcfff8f2eaff79736cff483e32ff50463aff534635ff534635ff5c4b36ff695943ff7f6c53ff857259ff79654aff665236ff594a34ff5647
+31ff4e4230ff4a3d2bff443b2fff342c20ff716d66fffcf8f1fffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefff9f7f5fffffefafffffffcfffffdf5ff8c867fff4d4337ff5a5145ff5c4f3eff5b4e3dff5e4d38ff61513bff6e5b42ff736047ff6d593eff614d32ff584933ff53442eff5e513fff473a28ff50483bff372f22ff96928cfffffffafffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffffffffffffffffffbfbfbffffff
+fffffffffffff7f7f7fffffffffff7f7f7fffffffffffffffffffefefefffcfcfcfffffffffffffffffffcfcfcfffffffffffafafafffffffffffffffffffffffffff9f9f9fffcfcfcfffffffffffffffefffafbf9fffffffcfffcfaf6fffffff9ffd1cbc4ff5c5245ff5b5145ff625341ff615240ff66523bff65523aff6c5539ff6e573bff72593cff735b3dff695641ff6a5741ff483826ff685847ff43382cff53483cffe1
+dbd5fff5efe9fffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefff1f1f1fff9f9f9fffffffffffffffffffbfbfbfffffffffffffffffffffffffffcfcfcfffffffffffefefefff9f9f9fffcfcfcfffffffffffffffffffbfbfbfff7f7f7fffafafafffbfbfbfffffffffffffffffffffffffffffffefff9f9f8fffffffcfff9f7f3
+fffffef7fff7f2ebff978d81ff4d4337ff746553ff6b5c4aff69563eff6c5941ff796246ff7b6449ff755c3fff6b5235ff56432eff65523dff625241ff5c4c3aff4b4034ff8e8377fff7f1ebfffffffafffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffffffffffffffffffffffffff8f8f8fff9f9f9fffffffffffbfbfbfff8f8f8fff5
+f5f5fffafafafffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffcfcfcfff7f7f7fffbfbfbfffffffffffffffffffcfcfcfffcfffffff2f6f6fffffffefffcfdfbfffcfaf4fffffffbffddd6ccff70695fff5e5142ff615546ff72604cff84725fff97826bff97826bff8b745bff7d654cff7b6959ff645242ff625246ff504134ff776c64ffdfd5cdfffffcf9fffffffcffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffcfcfcfffffffffffcfcfcffffffffffffffffffedededfffffffffffffffffffffffffff9f9f9fff9f9f9fffefefefffffffffffcfcfcfff5f5f5fffefefefffffffffffffffffffffffffffffffffffbfbfbfffdfdfdfffcfffffff6faf9fff8f9f7fffffffefffefcf7fffffef9fffffff7ffcac3b9ff7468
+59ff6c5f50ff756350ff8f7e6affb7a28bffc9b39cffc1aa91ffb0987fff857363ff5d4b3bff655549ff7e6f62ffc9beb6fffffff8fffdf8f5fffffdfafffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fff8f8f8fffffffffffafafafff9f9f9fffffffffffffffffff1f1f1ffe0e0e0ffd4d4d4ffd5d5d5ffdcdcdcffe6e6e6ff
+f9f9f9fffffffffffefefefffffffffffbfbfbfffbfbfbfffffffffffefefefff9f9f9fffffffffff6fdfffff8fffffff1f6f7fffbfffffffffffefff4f4f2fffffffbfffffdf8ffcec5bcff9e958cff726458ff695c50ff867566ff998879ff8f7d6cff7a6757ff5f5048ff6f6058ff9c908affd6c9c4fffffdfbfffffffdfffbf7f8fffffefffffffefffffffefffffffffffffffffffffffffefffffffefffffffdfffffffd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff8f8f8fffffffffffffffffffdfdfdfffcfcfcfffffffffff2f2f2ffc9c9c9ff8b8b8bff565656ff2d2d2dff2b2b2bff353535ff4d4d4dff8a8a8affccccccfffffffffffffffffffefefefff5f5f5fffffffffffffffffffafafaffffffffffeff5f7fff8fffffff4f9f9fff3f8f8fffffffefffcfdfbfffffffbfffffef8fffffff7ffe9e0d7ffc0b3a6ff9c8e82ff8f7e6fff89
+796aff897665ff857362ff9e8f87ffcbbcb4ffede1dbfffffdf8fffffffdfffffdfbfffffdfefffffefffffffefffffffefffffffffffffffffffffffffefffffffefffffffdfffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fff2f2f2fffffffffffbfbfbffa0a0a0ff3f3f3fff2b2b2bff282828ff2e2e2eff393939ff333333ff232323ff232323ff303030ffa4a4a4ffe8e8e8ffffffff
+fffafafafffffffffffffffffffbfbfbfffffffffff0f9fcfff6fffffff5fcfefff1f8fafffcfffffffcfffffffffefcfff9f8f6fffffffbfffffffbfffffff9fffff9f1fff2e5dcffebded4fff5e6dcfffff3e8fffff4f1fffffefbfffffefdfffffdfcfffef8f9fffffcfdfffdfcfffffbfafefffefefffffefefffffffffffffffffffffffffefffffffefffffffcfffffffcffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
+fefefff8f8f8fffefefefffffffffff4f4f4ff868686ff2c2c2cff1f1f1fff282828ff4a4a4aff595959ff494949ff3f3f3fff454545ff3c3c3cff252525ff1b1b1bffa5a5a5fffdfdfdfffefefefffcfcfcfffffffffffdfdfdfffffffffff6fffffff0f9fcfff7fefffff8fffffffafefdfff6fafafffffffdfffffffdfffffffbfffffef9fffffbf4fffffef6fffffff7fffffff7fffffff6fffffef3fffffefcfffff4f1ff
+fffefdfffffbfafffaf5f6fffffefffff9f7fbfffffefffffefefffffefefffffffffffffffffffffffffefffffffefffffffcfffffffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffcfffffffcfffffffafefffffafefffffafefffff5f9fffffcfefffffcfeffffa5a4a7ff333235ff272525ff3c3a3aff303d42ff364348ff3a454aff364145ff343b3fff323a3dff33383aff303537ff262b2aff191e1effb7bebdfff9fffffff7fffdfff7fffdffeefaf5fff5ff
+fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffcfffffffcfffffffafefffffafefffffafefffff2f6fcfff8f9feffe0e2e6ff646366ff
+302f32ff302d2dff363334ff263438ff2c393eff333d42ff333e43ff373e42ff373e42ff34393bff2d3234ff2c3130ff1e2323ff6a7170ffd6dddcfff6fffcfff7fffdfff3fffafff4fffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffcfffffffcfffffffbfefffffbfefffffdfefffff5f6f9fffcfbfbffbab9b9ff2d2826ff3c3836ff3e3733ff362f2bff323633ff343835ff373835ff363734ff393835ff393835ff34322fff2c2a27ff33322fff32312eff2d2e2affb3b4b1fffbfffcfff8fffafff8fffcfff8fffcffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffcfffffffcfffffffbfefffffbfefffffdfefffff9fafdffffffffff949293ff24201eff494543ff433c38ff3a332fff343835ff373b38
+ff393a37ff343432ff32312eff333230ff353230ff33302eff312f2cff403f3bff232421ff929390fffbfffcfff2f9f4fff4fdf8fff8fffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffdfdfffffffaff756f6bff40362eff534a41ff483c30ff504338ff43392aff504637ff5a4e40ff564a3cff4d4035ff4a3d32ff4c3f36ff4e4137ff3e342dff473d36ff36312aff736e68fffffffbfffafbf5fff8fcf7fffdfffcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffefefffdf7f3ff67615cff4c423aff4d433bff493c31ff5b4e43ff504637ff655a4cff766a5dff73675aff63564aff55483cff4e41
+38ff4c3f36ff483f37ff3c322aff37322cff5f5a53fffffffafffffffbfffdfffbfffcfffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdffffff
+fdfffffffdfffffffffffffffffffffffffffbfffffffcfffffaf1ff817970ff504235ff524437ff574636ff604f3fff675139ff79644cff88725cff846d57ff725b48ff624b38ff564031ff513b2cff524136ff423126ff3f352cff7e746cfffffffafffffff9fffffffbfffcfcf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffbf8fffffffcfffffff8ffa29a91ff4e4134ff584a3dff625241ff594838ff604a33ff6d573fff76604aff735d47ff695340ff634c39ff5d4839ff5b4637ff4d3c31ff4b3a2fff493f37ffaa
+a097fffffffafffbf7f1fffffffbfffdfdf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffc
+fffffefafffffff8ffe5ddd4ff534638ff594c3fff6d5c4cff554434ff695035ff755b41ff765d44ff6c523aff664c37ff6a503bff674f3fff604838ff665348ff352217ff6b5f57ffdfd3cbfffffcf6fffffffbfffffffcfffbfaf6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffffffffffffffffcfff8f5f1fffffff8fffaf2e9ffa19386ff5f5144ff625141ff736252ff6e543aff72593eff745a41ff71573fff705641ff725843ff6d5545ff674f3fff5c493eff523f33ff9b9087fffff9f1fffffffbfffbf6f1fffbfbf7fffffffcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffffffff7f5f5fffffffbfffffbf7ffefe5dcff7c72
+69ff5b4e43ff685b50ff836e58ff8d7962ff9a8570ff9d8873ff8d7766ff75604eff645043ff624e41ff4c3d34ff908177ffe0d7d1fffffffafffefcf8fffffdfafffefffdfffafcfaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffdfffffffdfffdfffffffdfffffffdfffffffdfffffffdfffffffdfffffffffefefffffdfdfffffffbfffef8f4fffffff8ffc8beb6ff8f8377ff675b4fff7c6751ff98836dffbfaa95ffcfb9a5ffb29c8bff846e5dff695548ff695548ff88786fffddcdc4fffffffafffffaf4fff3f1edfffffffcfffefffdfffafcfaffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffffffcfffffffefffffffefffcfffffffcfffffffbfefffffbfefffff9fafdfffdfefffffffffffffdfcfcfffffffdfffffffdffe0d9d5ffa39c98ff75695aff726657ff77
+6a5cff7a6d60ff716358ff6b5d53ff7e726aff9d9088ffebe2ddfffffbf6fffffffcfffffffcfffdfffefff7faf8fff1f7f6fffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfffffffcfffffffefffffffefffcfffffffcfffffffbfefffffbfefffffdfefffffbfdfffffdfcfcfffffffffff9f4f2fffffffdfffffffbfff3ece8ffe7dbcdffc6baacffa89b8dffa09386ffab9d93ffc4b6abffe6d9d1fffff9f1fffffffafffffffafffffcf9fffefaf7fffdfffefffdfffefff4faf9fff3f9f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffcfffffffcfffffffafefffffafefffffafefffffafefffff8f9fefffcfefffff4f3f6fffbfafcfffffdfdfffffffffffffff8fffffaf0fffcf6eefffffdf5fffffffafffffffafffffdf9ff
+fffbf6fffcf7f5fffffffdfffcfcfcfff2f2f2fff3f9f8fffafffffff7ffffffedf7f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffbfffffffdfffffffdfffcff
+fffffcfffffffafefffffafefffff5f8fefffafefffff9fafffffcfdfffffffefffffdfcfffff6f3f4fffffffffffffff6fffffff8fffffff9fffffff9fffffdf6fffffbf4fffffefafffffffbfffffffdfffef9f7fffefefefffffffffff9fffefff2f7f6fff5fefefff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0e00000014000000000000001000000014000000}}
+\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\qc\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs28\b\par
+\fs32 GENIVI TrafficIncidentService API's\par
+\fs28\par
+\b0 Release: 1.0.1\par
+Status: Approved\par
+\par
+\fs20 20 February 2014\par
+\par
+\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\cf2\fs20\b Accepted for release by:\par
+\cf0\b0 This document has been accepted for release by the Expert Group Location Based Services (EG-LBS)\lang1033\hich\f5\dbch\f5\loch\f5\strike\par
+\lang3081\hich\f5\dbch\f5\loch\f5\strike0\par
+\b Abstract:\par
+\ltrpar\ql\plain\f0\fs24\lang1033\hich\f6\dbch\f6\loch\f6\cf2\ltrch This document describes the API\u8217 \'92s of the TrafficIncidentsService Abstract Component.\plain\f6\fs24\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs24\par
+\lang3081\hich\f5\dbch\f5\loch\f5\cf0\fs20\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\cf2\fs20\b Keywords:\par
+\cf0\b0 NavigationAPIs, NavigationCore.\lang1033\hich\f5\dbch\f5\loch\f5\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\fs28\par
+\qc\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs28\page\ql\plain\f0\fs24\lang3081\hich\f7\dbch\f7\loch\f7\cf2 SPDX-License-Identifier: CC-BY-SA-4.0\lang1033\hich\f7\dbch\f7\loch\f7\par
+\lang3081\hich\f7\dbch\f7\loch\f7\par
+Copyright (C) 201\lang1033\hich\f7\dbch\f7\loch\f7 4\lang3081\hich\f7\dbch\f7\loch\f7 , \lang1033\hich\f7\dbch\f7\loch\f7 TomTom International B.V.\par
+\lang3081\hich\f7\dbch\f7\loch\f7\par
+This work is licensed under a Creative Commons\lang1033\hich\f7\dbch\f7\loch\f7 \lang3081\hich\f7\dbch\f7\loch\f7 Attribution-ShareAlike\lang1033\hich\f7\dbch\f7\loch\f7 \lang3081\hich\f7\dbch\f7\loch\f7 4.0 International License\lang1033\hich\f7\dbch\f7\loch\f7\par
+\lang3081\hich\f7\dbch\f7\loch\f7\par
+To view a copy of this license, visit\lang1033\hich\f7\dbch\f7\loch\f7 \lang3081\hich\f7\dbch\f7\loch\f7 http://creativecommons.org/licenses/by-sa/4.0/\lang1033\hich\f7\dbch\f7\loch\f7\par
+\lang3081\hich\f7\dbch\f7\loch\f7 or send a letter to Creative Commons, 444 Castro Street, Suite 900,\par
+Mountain View, California, 94041, USA.\lang1033\hich\f6\dbch\f6\loch\f6\ltrch\par
+\ltrpar\ql\plain\f0\fs24\lang1033\hich\f6\dbch\f6\loch\f6\cf2\ltrch\par
+\qc\plain\f0\fs24\lang1033\hich\f6\dbch\f6\loch\f6\cf2\ltrch\page\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs28\par
+\qc\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\cf2\fs28\par
+\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\qc\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs28\b Table of Contents\par
+\lang3081\hich\f5\dbch\f5\loch\f5\cf0\fs20\b0\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\outlinelevel0\plain\f0\fs24\hich\f11\dbch\f11\loch\f11\cf2\fs28\b{\field{\*\fldinst TOC \\o "1-9"}{\fldrslt Change History\tab 9\par
+Introduction\tab 10\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\outlinelevel1\fs24 Document overview\tab 10\par
+Overview of handling Traffic Information\tab 10\par
+References\tab 12\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\fs28 Overview of the provided functionality\tab 13\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\outlinelevel1\fs24 Traffic Incident Data Model\tab 13\par
+TrafficIncidents Interface\tab 13\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2\b0 Version Information\tab 13\par
+Configuration\tab 13\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Language and Units\tab 13\par
+Applicability\tab 13\par
+Categories and Icons\tab 15\par
+Boolean expressions\tab 15\par
+\pard\ssparaaux0\s6\tqr\tldot\tx9270\li720\ql\outlinelevel4 Introduction by examples\tab 15\par
+Definition of Boolean Expressions\tab 19\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Status Information\tab 22\par
+Information on Traffic Incidents\tab 22\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\outlinelevel1\b TrafficIncidentFeed Interface\tab 22\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\fs28 Modeling Concepts\tab 24\par
+TrafficIncidentService UML Description \tab 25\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\fs24 Package trafficincidentsservice\tab 25\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2\b0 Package common\tab 25\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class Coordinate\tab 25\par
+Class LocalizedString\tab 26\par
+Class RectangularArea\tab 26\par
+Class Version\tab 26\par
+PrimitiveType TimeInMinutes\tab 26\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package iconset\tab 27\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Overview\tab 27\par
+Enumeration ColorType\tab 28\par
+Class IconDefinition\tab 29\par
+Class IconData\tab 29\par
+Class IconDescriptor\tab 29\par
+Enumeration IconDimension\tab 29\par
+Class IconInfo\tab 29\par
+Class IconSet\tab 30\par
+Class IconSize\tab 30\par
+PrimitiveType IconId\tab 31\par
+PrimitiveType IconSetId\tab 31\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package location\tab 31\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class AreaLocation\tab 32\par
+Class AreaLocationInfo\tab 32\par
+Class LinearLocation\tab 32\par
+Class LinearLocationInfo\tab 33\par
+Class Location\tab 33\par
+Class LocationInfo\tab 33\par
+Class PointLocation\tab 33\par
+Class PointLocationInfo\tab 34\par
+Enumeration PointLocationType\tab 34\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package status\tab 34\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Enumeration TrafficIncidentFeedStatus\tab 34\par
+Enumeration TrafficIncidentsStatus\tab 34\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package trafficincidenttables\tab 35\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Enumeration Accident\tab 38\par
+Enumeration AdviceCode\tab 39\par
+Enumeration AnimalsOnRoadway\tab 40\par
+Enumeration BrokenDownVehicles\tab 40\par
+Enumeration CauseCode\tab 40\par
+Enumeration DangerOfFire\tab 42\par
+Enumeration DangerousEndOfQueue\tab 42\par
+Enumeration DoNotLeaveYourVehicle\tab 42\par
+Enumeration DriveCarefully\tab 42\par
+Enumeration DrivingNotAllowed\tab 43\par
+Enumeration EffectCode\tab 43\par
+Enumeration ExtremeWeatherConditions\tab 43\par
+Enumeration Fire\tab 44\par
+Enumeration FollowDiversion\tab 44\par
+Enumeration GivingPathVehiclesFromBehind\tab 44\par
+Enumeration HazardousDrivingConditions\tab 44\par
+Enumeration Impassibility\tab 45\par
+Enumeration LaneRestrictionType\tab 45\par
+Enumeration MajorEvent\tab 46\par
+Enumeration MalfunctioningRoadsideEquipment\tab 46\par
+Enumeration NarrowLanes\tab 46\par
+Enumeration ObjectsOnTheRoad\tab 47\par
+Enumeration OvertakingNotAllowed\tab 47\par
+Enumeration PeopleOnRoadway\tab 48\par
+Enumeration PoliceCheckpoint\tab 48\par
+Enumeration Precipitation\tab 48\par
+Enumeration RecklessPersons\tab 48\par
+Enumeration RegulatoryMeasure\tab 49\par
+Enumeration RescueAndRecoveryWorkInProgress\tab 49\par
+Enumeration RestrictionType\tab 49\par
+Enumeration RiskOfFire\tab 51\par
+Enumeration RoadWorks\tab 51\par
+Enumeration ServiceNotOperating\tab 51\par
+Enumeration ServiceNotUsable\tab 52\par
+Enumeration SlipperyRoad\tab 52\par
+Enumeration SlowMovingVehicles\tab 52\par
+Enumeration Tendency\tab 53\par
+Enumeration TimeDelay\tab 53\par
+Enumeration TrafficCongestion\tab 54\par
+Enumeration UseTollLanes\tab 54\par
+Enumeration VehicleType\tab 54\par
+Enumeration VisibilityReduced\tab 55\par
+Enumeration WarningLevel\tab 55\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package trafficincidents\tab 55\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class Advice\tab 58\par
+Class Applicability\tab 59\par
+Class CategoryDefinition\tab 59\par
+Class Cause\tab 59\par
+Class DirectCause\tab 59\par
+Class FeedInformation\tab 60\par
+Class LaneRestrictions\tab 60\par
+Enumeration LengthUnit\tab 60\par
+Class LinkedCause\tab 61\par
+Class LocalisedString\tab 61\par
+Class TemporarySpeedLimit\tab 61\par
+Class TemporarySpeedLimitSection\tab 61\par
+Enumeration TextDetailLevel\tab 62\par
+Class TrafficIncident\tab 62\par
+Enumeration TrafficIncidentField\tab 63\par
+Class VehicleRelatedRestriction\tab 64\par
+Enumeration WeightUnit\tab 64\par
+Interface TrafficIncidents\tab 64\par
+Interface TrafficIncidentsListener\tab 71\par
+PrimitiveType CategoryId\tab 75\par
+PrimitiveType TrafficIncidentId\tab 75\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package trafficincidentfeed\tab 75\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class Advice\tab 77\par
+Class Applicability\tab 78\par
+Class Cause\tab 78\par
+Class DirectCause\tab 78\par
+Class LaneRestrictions\tab 78\par
+Class LinkedCause\tab 79\par
+Class LocationReference\tab 79\par
+Class TemporarySpeedLimit\tab 79\par
+Class TemporarySpeedLimitSection\tab 79\par
+Class TrafficIncident\tab 80\par
+Class VehicleRelatedRestriction\tab 80\par
+Interface TrafficIncidentFeed\tab 81\par
+Interface TrafficIncidentFeedListener\tab 82\par
+PrimitiveType FeedId\tab 83\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\fs28\b Sequence Diagrams\tab 84\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\fs24 Package SequenceDiagrams\tab 84\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\fs28 TrafficIncidentService D-Bus UML Description \tab 88\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\fs24 Package trafficincidentsservice\tab 88\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2\b0 Package common\tab 88\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class Coordinate\tab 88\par
+Class LocalizedString\tab 88\par
+Class RectangularArea\tab 89\par
+Class Version\tab 89\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package iconset\tab 89\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Enumeration ColorType\tab 90\par
+Class IconData\tab 91\par
+Class IconDefinition\tab 91\par
+Class IconDescriptor\tab 91\par
+Enumeration IconDimension\tab 91\par
+Class IconInfo\tab 92\par
+Class IconSet\tab 92\par
+Class IconSize\tab 92\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package location\tab 93\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class AreaLocation\tab 93\par
+Class AreaLocationInfo\tab 93\par
+Class Coordinate\tab 94\par
+Class LinearLocation\tab 94\par
+Class LinearLocationInfo\tab 94\par
+Class Location\tab 94\par
+Class LocationDiscriminatedUnion\tab 94\par
+Class LocationInfo\tab 95\par
+Class LocationInfoDiscriminatedUnion\tab 95\par
+Enumeration LocationInfoType\tab 95\par
+Class LocationInfoUnion\tab 95\par
+Enumeration LocationType\tab 96\par
+Class LocationUnion\tab 96\par
+Class PointLocation\tab 96\par
+Class PointLocationInfo\tab 96\par
+Enumeration PointLocationType\tab 96\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package status\tab 97\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Enumeration TrafficIncidentFeedStatus\tab 97\par
+Enumeration TrafficIncidentsStatus\tab 97\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package trafficincidenttables\tab 97\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Enumeration Accident\tab 102\par
+Enumeration AdviceCode\tab 102\par
+Enumeration AnimalsOnRoadway\tab 103\par
+Enumeration BrokenDownVehicles\tab 103\par
+Enumeration CauseCode\tab 103\par
+Enumeration DangerousEndOfQueue\tab 105\par
+Enumeration DoNotLeaveYourVehicle\tab 105\par
+Enumeration DriveCarefully\tab 105\par
+Enumeration DrivingNotAllowed\tab 106\par
+Enumeration EffectCode\tab 106\par
+Enumeration ExtremeWeatherConditions\tab 106\par
+Enumeration Fire\tab 107\par
+Enumeration FollowDiversion\tab 107\par
+Enumeration GivingPathVehiclesFromBehind\tab 107\par
+Enumeration HazardousDrivingConditions\tab 108\par
+Enumeration Impassibility\tab 108\par
+Enumeration LaneRestrictionType\tab 109\par
+Enumeration MajorEvent\tab 109\par
+Enumeration MalfunctioningRoadsideEquipment\tab 109\par
+Enumeration NarrowLanes\tab 110\par
+Enumeration ObjectsOnTheRoad\tab 110\par
+Enumeration OvertakingNotAllowed\tab 111\par
+Enumeration PeopleOnRoadway\tab 111\par
+Enumeration PoliceCheckpoint\tab 111\par
+Enumeration Precipitation\tab 112\par
+Enumeration RecklessPersons\tab 112\par
+Enumeration RegulatoryMeasure\tab 112\par
+Enumeration RescueAndRecoveryWorkInProgress\tab 113\par
+Enumeration RestrictionType\tab 113\par
+Enumeration RiskOfFire\tab 114\par
+Enumeration RoadWorks\tab 115\par
+Enumeration ServiceNotOperating\tab 115\par
+Enumeration ServiceNotUsable\tab 115\par
+Enumeration SlipperyRoad\tab 116\par
+Enumeration SlowMovingVehicles\tab 116\par
+Enumeration Tendency\tab 117\par
+Enumeration TimeDelay\tab 117\par
+Enumeration TrafficCongestion\tab 117\par
+Enumeration UseTollLanes\tab 118\par
+Enumeration VehicleType\tab 118\par
+Enumeration VisibilityReduced\tab 119\par
+Enumeration WarningLevel\tab 119\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package trafficincidents\tab 120\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class Advice\tab 123\par
+Class Applicability\tab 124\par
+Class CategoryDefinition\tab 124\par
+Class Cause\tab 124\par
+Class CauseDiscriminatedVariant\tab 124\par
+Enumeration CauseType\tab 125\par
+Class CauseUnion\tab 125\par
+Class DirectCause\tab 125\par
+Class FeedInformation\tab 125\par
+Class LaneRestrictions\tab 126\par
+Enumeration LengthUnit\tab 126\par
+Class LinkedCause\tab 126\par
+Class TemporarySpeedLimit\tab 126\par
+Class TemporarySpeedLimitSection\tab 127\par
+Enumeration TextDetailLevel\tab 127\par
+Class TrafficIncident\tab 127\par
+Enumeration TrafficIncidentField\tab 128\par
+Class VehicleRelatedRestriction\tab 129\par
+Enumeration WeightUnit\tab 129\par
+Interface TrafficIncidents\tab 130\par
+Interface TrafficIncidentsListener\tab 132\par
+\pard\ssparaaux0\s4\tqr\tldot\tx9270\li360\ql\outlinelevel2 Package trafficincidentfeed\tab 135\par
+\pard\ssparaaux0\s5\tqr\tldot\tx9270\li540\ql\outlinelevel3 Class Advice\tab 137\par
+Class Applicability\tab 137\par
+Class Cause\tab 138\par
+Class CauseDiscriminatedVariant\tab 138\par
+Enumeration CauseType\tab 138\par
+Class CauseUnion\tab 138\par
+Class DirectCause\tab 139\par
+Class LaneRestrictions\tab 139\par
+Class LinkedCause\tab 139\par
+Class LocationReference\tab 139\par
+Class TemporarySpeedLimit\tab 140\par
+Class TemporarySpeedLimitSection\tab 140\par
+Class TrafficIncident\tab 140\par
+Class VehicleRelatedRestriction\tab 141\par
+Interface TrafficIncidentFeed\tab 141\par
+Interface TrafficIncidentFeedListener\tab 142\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\fs28\b D-Bus Interface Specifications (reading format)\tab 143\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\outlinelevel1\fs24 TrafficIncidentFeed Interface\tab 143\par
+TrafficIncidents Interface\tab 147\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\fs28 D-Bus Interface Specifications in D-Bus Introspection format\tab 168\par
+\pard\ssparaaux0\s3\tqr\tldot\tx9270\li180\ql\outlinelevel1\fs24 TrafficIncidentFeed Interface\tab 168\par
+TrafficIncidents Interface\tab 174\par
+\pard\ssparaaux0\s2\tqr\tldot\tx9270\ql\outlinelevel0}}\lang3081\hich\f5\dbch\f5\loch\f5\cf3\fs32\page\pard\ssparaaux0\s11\sb240\sa60\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\pard\ssparaaux0\s11\sb240\sa60\ql\outlinelevel0\par
+\cf3\fs32\b Change History\par
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\clcbpat10\cellx990
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\clcbpat10\cellx2880
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\clcbpat10\cellx5580
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\clcbpat10\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24{\*\bkmkstart Introduction}{\*\bkmkend Introduction}{\*\bkmkstart BKM_51BF6A06_0BD1_49cd_8CEF_B9D10CAB042B}{\*\bkmkend BKM_51BF6A06_0BD1_49cd_8CEF_B9D10CAB042B}{\*\bkmkstart FirstChapters}{\*\bkmkend
+FirstChapters}{\*\bkmkstart BKM_C7F00803_FDE4_40fc_8CD7_D84D086D1173}{\*\bkmkend BKM_C7F00803_FDE4_40fc_8CD7_D84D086D1173}\lang1033\hich\f5\dbch\f5\loch\f5\cf1\fs20\b Version\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf1\fs20\b Date\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf1\fs20\b Author\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf1\fs20\b Change\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx990
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx2880
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx5580
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 0.1\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 6 August 2013\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Peter Goedegebure (TomTom International B.V.)\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Initial version\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 1.0.0\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 20 December 2013\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Peter Goedegebure\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Approved version\cell
+\intbl\row
+\trowd\trgaph60\trleft0\trrh230
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx990
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx2880
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx5580
+\clvertalt\clbrdrt\brdrs\brdrw2\brdrcf10\clbrdrb\brdrs\brdrw2\brdrcf10\clbrdrl\brdrs\brdrw2\brdrcf10\clbrdrr\brdrs\brdrw2\brdrcf10\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 1.0.1\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 20 February 2014\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Peter Goedegebure\cell
+\pard\intbl\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 D-Bus method names adapted to naming conventions.\par
+Link to obsolete data model page removed.\par
+Definition of the altitude of a Coordinate improved.\line Reference to TPEG-TEC specification added.\line Typos corrected.\cell
+\intbl\row
+\pard\ssparaaux0\s0\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\outlinelevel0\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page Introduction\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This document specifies the TrafficIncidentsService.\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b Document overview\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 After this introduction, this document contains the following chapters:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls1\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls1\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Overview of the provided functionality\line An overview of the
+provided functionality, and an introduction of the concepts used in the interfaces.\par
+Modeling Concepts\line This chapter explains the way the interfaces are modeled in this document (in the following two chapters).\par
+TrafficIncidentsService UML Description\line An implementation independent UML description of the interfaces.\par
+TrafficIncidentsService D-Bus UML Description\line A UML description, tailored to the D-Bus implementation of the interfaces.\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls2\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls2\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 D-Bus Interface Specifications\line The D-Bus Interface specifications
+in a readable format.\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls3\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls3\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Interface Specifications in D-Bus Introspection format\line
+The actual D-Bus interface specifications.\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b Overview of handling Traffic Information\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This section provides a global overview of how Traffic Incidents are handled.\par
+\par
+\lang3081\hich\f0\dbch\f0\loch\f0\cf0\fs24
+{\pict\pngblip0\picw825\pich498\picwgoal12375\pichgoal7470\picscalex73\picscaley73\sspicalign0 89504e470d0a1a0a0000000d4948445200000339000001f2080200000047c09710000000097048597300000ec400000ec401952b0e1b000020004944415478daecdd7b5854d5c23ff0c5ccc05cb80dc8654045b014342f639ac2490b14136f3598bd5cec02757e19473d897652ec94f89e53d8c54b65a1e7
+cdb03a099e34a6ac1c5301d30e489223790131074c110561246106e6f6fb63e56e3703c3708799efe799c767d8b3f79abdd76c9c2f6badbdb693c9642200000000302071500500000000c86a0000000080ac0600000080ac0600000000c86a00000000c86a0000000080ac0600000000c86a00000000c86a0000000080ac0600000080ac0600000000c86a0000000080ac06000000600778a80200b04b52a9f4f4e9d3a8070018
+f8264e9ca8542adb7bd5c96432a18e00c0fe383939353636a21e0060e0f3f0f0b092c7d0070a000000307021ab0100000020ab0100000000b21a00000000b21a0000000020ab0100000020ab0100000000b21a0000000020ab0100000020ab0100000000b21a00000000b21a0000000020ab0100000000b21a00000000b21a0000000020ab0100000020ab0100000000b21a0000000020ab0100000020ab0100000000b21a0000
+0080e3e1a10a00001c9cc96432994cf4096a63c0727272a2ffd22780ac0600008e12d40c06c3534fedbb78b11eb531c0dd7597d7c71f2fe672b9886bc86a0000e040414da7d35dbc582f97cb5021039c4c26d7e9748410c4358782f16a00008e9ed59a9b9b511583457373b3c160406f35b21a0000380aa3d1a8d56a510f838556ab351a8da8076435000070082693c96834eaf57a54c560a1d7eb8d4623dad590d50000c0b1e2
+1aea61b04050435603000000006435000000004056030000004056030000000064350000000064350000000040560300000080819dd57272729cdaf1f0c30ff7cdf48c741f3efcf0c3f656282e2ee6f3f9ab57afc6e90200603b8d46b368d1a2fbeebbefca952bbd54784a4a8ac160603fefa5b7c0a7098e9bd5acd8bf7fff5d77dd853b9f00000c52151515172e5c686c6c3c71e2c460d9e777df7d372a2aaaa5a5051f1f20ab
+fdc1ce9d3b4d7fd4d4d474efbdf75ebe7cf9a5975eeaed778f8f8f37994c4f3ffd34ce0600801eb463c70e5f5fdfe9d3a76fdbb6ad57d38f5028fcfcf3cf333333b95c6e378b2a2b2beb8d6201067d56b3241289140a85ababebdebd7bd1b4060030e8d4d7d77ffffdf773e6cc59b468517575f5575f7d853a01b0abac46087175750d0d0d657e4c4f4f1f3162c4e5cb97dddcdc9c9c9cbcbdbd552a157dc96cd0dbf1e3c799ad
+e84b9643cdd2d3d399352dc7abd5d6d6d27769735b8a0e626bf34dadef2d008023f8f4d34f351acdecd9b32322228442e1e1c387cd467d2d5bb68cf6362e5bb62c3434343434d4acf3b1c315189603cbeaebeba552697b5b7dfdf5d7a12cfbf6ed630a397cf8707575f5840913366edc68592c5dc26c68f9524a4acaa953a7c68d1bc72e19c06eb35a5353537979f9c48913793c1eb3f0d9679f6d6a6a22844c9f3e7df8f0e1cd
+cdcd93274f4e4848606f3863c60c2660cd9a35cbb271aeb6b6f6adb7de0a0a0a9a32654a9b216cd8b061f45d08219b376fdebe7dbbd93ab1b1b1d3a64d6b6d6d6df34ddbdb5b9c6d00e020341a4d7e7e7e6060e0b871e3bcbdbdefbffffebcbc3ca55269b9e65ffef297c3870fd3e7d5d5d5d3a74f37bb10a1c3152c9596963ef0c0031a8d86d92a262686896befbefbeeaa55abd8ebaf5bb7ce9650555a5a7adf7df79d3d7b96
+59929797171d1dcd0e82797979f1f1f13a9dae5325030ccaac565b5b1b1212d2d4d42493c998ac76f9f2e5e2e2e24b972e994ca62fbffc92c7e3bdf1c61b3ffef8a39797175d6832994e9c38e1e2e2b279f366da4ee6ebebfbc20b2f5cbe7cf9e4c9934ce1478e1c696a6a5abf7ebd4020307bdfe6e6e6949494d6d6d655ab56d102b3b3b3b3b2b2d8b12c2727472e9707050569341af6e8bacd9b37b35bd72cf716671b003888
+bcbcbcb367cf2e5fbe9ccfe71342962e5deaecec7ce8d021b3d5aaabab4b4b4b8f1c39525e5e5e5e5e1e1d1dddd8d8f8ef7fffdbf615da8c89e9e9e93a9deeb5d75ea35b2d5fbebcbabafacc99338490fafafa9d3b77060606969696d2570b0b0b69b39f8b8bcbe79f7f1e1d1d4d5f5dbb76ad59c93b76ecd0e974c9c9c9e5774447475757576fd9b285bd1ab3c2f2e5cb0921151515381fc01eb2da33cf3c633661879f9f5f53
+53535050506262227bcdb7de7a2b242484c955fbf7eff7f2f22a292961164e9d3af5d8b1632e2e2e72b99c4ef9316fde3c171797dcdc5ca6903d7bf678797945454559eec9993367ce9c39b370e1c2d75f7f9d2e898f8f5fbf7e3d7b1dba7941410113f598d175ec7731db5b0000c7f1cd37df7878784c9b368dfe386ad4a8d1a347efdbb7cfac49ccc3c323373777d8b061ccff99f7dc73cfc183079996aa0e576833ab5dba74
+293939f9d1471fa54b56ac58515e5e3e79f2644288b7b7b752a9cccfcfe7f3f9b4d7322222826981b3820ebf9b3973e6dffef637f67ff266fb131818989a9a4a9f2f59b244281456555561ca0fb087acd6a69d3b7756555599357d8d1e3d9a794e3b492dbb17c78d1b376edcb8d3a74fd3ac467f64ba416b6b6b0f1d3ad45ea7e4a54b975a5b5b478d1ac56e06a3698f0988972f5f6e6868183972a465b8aca8a860cf09c7de5b
+00000741634d6363e3ac59b3e8b02da9547af6ec59cbc93bdcdcdc7c7d7d991f8542615454d4eddbb76b6b6b6d5cc1d2952b57f47afda851a3da5ba1b4b4948e27a37b65e341d162a3a3a3d9d7845aee4f585818f3f521140a478e1c89f301ec24ab59ced9d1fd49347efdf5d76bd7ae11424422d1c2850b996e50da01caee5ab574cf3df7b4f7120d88edbdca044400008745af2a68f3a5de9ebcc3961cf9e4934fd2f164b493
+94f681e2530364b57ee0eeee1e1010409f2f5bb6ccd5d5f58d37ded0ebf57bf6ecb1ec5a3563e52f2d7a752a7bb01a9b65432000804361ae2a600684998deea2e3c628b31632ba2dbb2dadc3152c0d1b368cc7e3b5374aacb0b050a3d1ecdebdbbbcbc9ce924b5052dd6ec6a565bf607c0a1b31a8d4dc78f1fffe5975fd8cbe99833f605a4bebebeb367cf3e7efcf8679f7df6cd37df2c5ebcb8bd443572e448171717b3aecc6f
+bef986b9b6402412050505995dac00000014bdaa60ce9c39f4aa02367a85c1071f7cc0c49dc6c6c6279e788269697be18517ccb6ed70054bb4e7312b2baba4a4842ea19d9e1b376e64d661ae72a8afaf9f3973a6592b609b7dacccd5ac6fbef926b3d096fd0170e8ac463b371b1a1a264f9ecccc5e565c5c3c63c68cd6d656b35eceb8b8b8868686828282d6d6d6d8d8d8f6ca9c3a75eabc79f3f6efdfbf66cd1aa6c08c8c0cf6
+3a7171718490193366b0affaa413b6e19ea100e0e0e855058f3ffeb8e54b13264c78f0c107d99377787878080482091326d0616d870f1f668fcdb7658536b35a7a7abab3b373626222ddeab1c71e130a857497e8646f595959f425e6c282b2b232fa277a5858181d69c7ce76d43ffef10ff6b6747fda3b580064b5df13924c26638ff4a7d39e2d5cb8f0c9279f64af49275afbd7bffed5deb46a8cb4b4343aeb0753e092254b98
+6b0b0821f1f1f132998cc635e6da820d1b36040505bdfaeaab38a500c061d1ab0a1e7df451e6ca4d33f3e6cd23ac662d3737b7ecec6c6688f0cc99330f1f3ecc6ea3ea7085364d9830e1bbefbe6346a10506061e3f7e9cee92b7b7775e5e1e7b80daeeddbba3a3a399b6347af12621c4f2fa4d6f6fefc2c242f680e6e4e4e41f7ef8a1bd8305e829837ed2afdcdcdc9c9c1cf674b8c78e1d9b3e7dbad96a74a2b50d1b36b439ad
+1adbd4a9531b1a1a66cc98f1e38f3f124256ad5a151717f7e9a79f5a7fd355ab566ddab409e7130038323a23869515e6cf9f3f7ffe7cf6127acf4d2b9bb4b7027bb9e53a56f6c4f2253a9d479baf9a156b656f2d5feaf0d0006ce4643299500b006087ffbb3939353636a21eac33180c1a8da6b6b6363e5e2197cbfaf2ad972d5b76eedc398542d15e3b59872b3820994c9e9313e3ebeb2b140a7147797be2e1e161258f715041
+000000000316b21a000000c0c0859b540200403f78efbdf7bab902808340bb1a00000000b21a0000000020ab0100000020ab0100000000b21a00000000b21a0000000020ab0100000000b21a00000080bdc05cb800008ecec9c94928e4ca64727b3aa8d6d65a0e47c0e3b9dbd34109855c2727279cb1c86a0000e040381c0e97cbddb469727d7dbd46a331180cf6715c1f7cf0556868e88c19a3ece370b85cae5028f4f6f6e672
+b91c0efac490d50000c031383939393939f1f97c57575783c120140aed26abb9b8b8b8b9b9797b7bdb4d56737171717575e5f3f9f453c3d98bac0600000e91d5783c9e5028148bc5028140afd71b8d46fb38349148e4e9e9191010601f87c3e170783c9e4020100a853c1e0f590d590d00001c0597cbe5f3f95c2e572412198d4693c9641fc73576ecd8912347fafafada4daaa6718dc7e371b95c9cb78ef53795ddfc5a020098
+7db7353636a21e3a64ba83b6a8e14b61c09ecf84100e87e37407eac49e78787858f9d543bb1a0080a3870027272793c98411eb8328b4814341560300003b4c00a5a5a523468cf0f4f4c4870b831dfe8a0200003b949696565a5a8a7a00643500000000e8457dd1074a47ad120c59ed1db4e702434d01000090d5ba98d2ae5c512f5efcf1eddbada8ee5e326ad4907dfb9ee27271ef110080df8c1f3f1e83d50059cd26068341a5
+aabdeb2eaf0d1b2250ddbd442693b7b6b6bab8b820ae0100501b376e4425807de8c5f16a74b61e9d4ea7d56a51d1bdadb9b9d96030a0971900000059ad138c46a35eaf6f69694145f736ad566b3777f10300e8bed2d2d25bb76ea11e0059ad63068341afd7a3a27b9b4ea7b3a79bc300007413e6ec00bbd117d716d8cd9d80073204350080ebd7af7ff8e187f4795555d54f3ffd449ffbfbfb8f1e3d1af5038e9ed52c67e5a029
+8d99b0030000a057f9fbfb7ffdf5d74c73dadab56be993ddbb7723ab81a3673593c9a4d1b47efcf1c9d6d63f0c6f37180c3a9daeaaea664dcded9c9c325477978584784e9b16807a0000b02e393939353595bd243a3a7ac18205a81918bc7a60bc9ac96432180c252597f7ec51aad5ea5b2cb76fdf6e69699148dca2a286a3aebb2323e3042a0100a0434b962cf1f7f7672f494f4f47b5c0a0d603ed6a2693895eec2991b8c5c7
+87a14e7b035a2501006c21100852535399decf050b164c983001d502835a77dbd530891a00000c284f3ffd34d3b4c6843600c7cd6ae44e1fa84ea7436d020040bfa34d6b048d6a80acc6ce6a46a3111373000040ff62268a4a4a4af2f7f75fb3660da623003bd0c37376000000f47d44a3ff5ebd7aebe8515551f1555dab71d2bd2bdecfac24a472dad4c0071f0c090ef6e270388410dc3419ec39ab317f9a984da26630183011
+2b0000f45750331a8de5e5b5ef67fe70f997c6690f8c9e1b1fe1eccc6556501657ae5977c485e7f4fc5fa74d99320c890dec36abd14cb678f1c7172ed459594d2693a34ebbcccf4fb4654b94abab33aa0200c0c6160483c1f07f1f941cfbfe4a624aa4745a88e56a632605252c7da0b2e2c6ffbd7324575ef6f2df1f140a5d10d7c0deb21afd65686d6dbd70a14e2e97a1d67ac9b3cf7edbd4a443560300b031a8a9d5cd2fbf92
+3772427046563221c4d07e07cff0bbfdfefe4ec27f8f9cffcbf2af37bff590582ce27038886b606f59adb9b919f50500000321a8198d46bd5ebf66ede1e8b8f0293346196c1b86336de61849d090d4d5df6c7b27c6d55580b8068382add7811a0c06cca00600000324abe9f5fa6defff3076daddd2fb47e98dc4f6c7d0917ed1ff33ed1faf1ed3ebf518690df693d598096f515f0000d0ef41cd60309c3f7fbdf864cd9cc40883
+8974f631256a8cc6c0cdcbbb687b5cababab9348241e6d193b76aced6d1919191974ab4f3ef98479be69d3268944525858d8a97ad8bb776f505050555555672b901e4b7b6fd7e56299cd3b7b20d033598d896ba82f0000e8dfa046db0eded976f2b165b3ba10d4e8e3e13f3f98f5f14f4d4d5a83c1604b5cf3f1f1a9a9a9696c6c6c6c6ccccfcff7f7f7ffe9a79fe88fe7ce9d1308043686a4b7df7efbbdf7de6b6c6c9c3b772e
+f37cf5ead53535351111117d5387f4587ae3edeaeaea962f5f8eb3b4dfb21a0000c040c86a7abdfee2c55a75a3eeee89415dce6a7ec38778fa78fef0c32f7ddf137af7dd77b7f91c00590d0000067d50a31da0878f5c9a1439a6cb418d3e263e38e6487e955eafefe614a175757563c78e7de38d37d8fda18989894c2729ed132c2929090b0b6b6e6e9e33678e8787c7c89123e9f3b163c75eb972c5ac5392e91ef5f0f058b76e
+5d873b209148befcf24ba697d67a51967da0cc3a414141972e5d6217cedefc934f3eb1f28eec038c8b8bd3ebf52525253e3e3e66f500c86a000060cf6807e8b9b286a0b0c06e66b5116302cbcb1b5a5b5bbb3fc2a7bebebea4a4a4bebe9ef687262626060707d31ed2b4b4b4b8b8b8aaaaaac993279795958944a283070f3636365eba74893eb7ec42cdc8c8c8cccca47dac972e5dfaf0c30f999064c5f2e5cb4f9c38c17e471b
+8b4a4c4cfce4934f6edcb8d1d8d8b879f3e67ffef39f6dee497e7e7e6a6a2a7b73b377f4f1f1610e70cf9e3da74f9f9e3367cefefdfb693d7cf8e18773e6cc415c43560300007b4607abb5b6b6aa1bb422b16ba72effb47c88bcdcd40d9ad6d6561b87ac59b760c1021e8f4708a9abab532a954b972ea5cb1f7ae8a1e6e6e6eaea6a1bcba163da5e7df5d5112346903b63cb9e78e2890e37643661ded196a24a4a4abefdf6db9d
+3b77d2bcb878f1e2050b16b4b92793274fdebe7d7b464606732185e53bb24b56a9547e7e7e93264da23f2e5ebcb8b1b1b1cfc6e421ab010000f40fdaaef6ebaf3a572fd76eb6abb988f89a665d4f8d5763469ef9f8f89c3b778e8698bd7bf7464545b5b6b6da5e4e5555955eafefc238366693112346d0d4684b5166898a10b268d122faa4a0a0c0c5c5e581071e605e0a0909b971e3c6a953a7da7b47b6c8c8c8fafafa7befbd
+17137e21ab010080a3a0e3d58c46235fc0f9f557adde44baf3d0b4e89d9db974b05acf5e5ec08cf17ae595570e1c38e0e2e2d2a9cdbdbcbc0203037b644f3a2caaa2a2c2caab6ab57afcf8f1cc80b34ee54e1f1f1f954a3564c8103f3f3f8c574356030000078a6b46a3d1ddddf9d6cda66ef681aa6f36b97bba74f3c2024b2525259b366da283d26c9fce83ada1a1c1f63ed36e16356ad4282baf8ac562666a1286edfd9842a1
+f0d8b16374ab050b1630a3e800590d0000ec969393939393d3b040fed59f6f74b35dedeacf3702878a68813db88766bd8a2a95aa537da0b43ff1e2c58bdddf135b8a32ebd624ac96b6c8c8c8d6d6d69e4a8defbcf34e0f9686ac06000030a0b39a74a2f8627185ce44baf3a8385131719c5b8fdf12949d7e98b9616dcf5e3e3e3ecf3ffffc4b2fbd449ba0341acd8c19333a9cb6a3cb454d9e3c79f5ead54c8bd7debd7b333232
+d89bb31bc31213136db9a5013d58b3fb1fd0d16f3dd5b7eb6878a8020000182c418d10e2ecec3c76acf7071f5eba55dfe4eae5dab5a2f4adfaf2e28ac7d32770b9dc9e6d5aa3e967ce9c398410b1587ce2c489b4b4b4975e7ae981071e7075b5696fd3d2d20821e3c78fa73f2e5fbefcb5d75eebdaceb459545d5d5d7beb88c5e2bffffdefdbb66d6b73f361c3865db8704120109895c04e873367ce5cb66cd9575f7df5e9a79f
+b2b7158bc5c78e1da3975c40a7cf7c5bfae90d06437373f38d1b37162edc2797cb7a6f6fbefefaeb55ab56595961f7eedd93274fee6cb1f5f5f53367ced468344c09ec253b77eedcbc79b3bfbfffb66ddbb85c6e3f7e18cf3efbed3fff39ddcf4f64f9924c26b752f332997cfffe47fdfcfc4422519f1d02331a17373fee832fa71eefa67190aa6b6c6c443dd81393c9a4d3e96edfbe5d5b5b7be44845f105febcb4455d2bead8
+ce3c3fe32f8f2e0af3f5f5f5f0f0707676e670d0d104fdc6c3c3c3ca97a943b4abbdfcf2cb3496797878f8fbfbb7b9043afb3fa6c16058bcf8e30b17ea501bbd6dd4a821fbf63d45fffa476d8083e37038cecece42a1f0befbfc0b8e5fa82cbd3c6c7c50a7ff80bf72b3f264d9ffa4de25140af97c7e8f778302f4ac8195d5e6cf9f3f7ffe7cfa5ca3d12c59b2a4fbcd5d1a8de6dab56b8181810a8582cfe7b7b9e4f3cf3fc7a9
+d0d9a0d6dada7ae1425dafb6b3022593c95b5b5b5d5c5c10d7c0c139393971381c1e8f2710084422d1d34f066ccbfc2ae695251e7e9eb617d2dad4a2c8f8ece9c7fdc56277a15088163518047fa238c87186858599cdd467b9043a95d59a9b9b51157da6b9b9b947a65607b083b8c6e3f18442a1878787afafe7ffc8bcbe7ee5df977fba6ce3b59fb5bfdcdcfff2c78f3dec317cb897bbbbbb5028e4f17868570364b59ea4d168
+162d5ab471e3c677df7d373434f4befbeebb72e50a21e4ebafbf0e65d9b76f1f5dffebafbf964aa567cf9ecdcbcb1b3b76ecc68d1b2d97d0325352520c0603ddaabebe5e2a95d2a2a2a2a25a5a5a70a29831180c988aba2f69b55ae6fc0470f0acc6e5725d5c5c5c5d5d3d3d3d43437d9f7bc65799f55551565e63439395ab3eb52dfa92ff7cffdda6ff2c9e2f1a3dda472c16bbb9b9f1f9fcfe1da60c608b41d9b0545c5c7ce1
+c20542c8942953020202de7df75de6a2158a5e93fce8a38f76a1f0d2d2d2c4c4449d4e477facaeae8e8989617a4b81dc998b92a922e8033a9daec767ec0418bc718d36ad797a7ad2df8b679fe6161cad50ac3b2fb92744327954a03484ebf2fbb75bb552557db2e2979317268c757e7ac9103f3fb1b7b7b78787874824e2f178b8700790d57ac5d9b3675f7bed351ac5eaebeb77eedcc91e7c46aff13c7cf8b04c269b3f7ffecc
+9933cdc6bd992da11719501a8d263d3d5da7d331e5d32078e6cc992e5c7f6af7710df5d06710d400d8598d5e61e0eaea6a329968749b1ded3c6572d34f3f5d2effb2f2bbadcddae69b6af5495fdfd984901177b986dec579e8094f3f3f77777777b158ece9e9e9e6e68631a080acd68b020303172c58409f7b7b7b2b954a26692d59b2e4ecd9b35d2e59a3d15cba742939399969935bb162c58a152b70a200000ca8b8467b42dd
+dddd391c8e8b8b0b9fcf17080462b168ead416bd5e7ff66c436eeed575eb026992a3afbab9b9b9bbbbbbbbbbbbbaba3a3b3b23a801b25a2f32bb2cc0acd7b23bae5cb9a2d7ebaddf1f0d000006485c2384b8b9b9393b3bd3116c4d4d4dadadadadadad1a8d66e8d0a143860ca12d707c3e5f74079fcf47500364b53e555f5fffe4934fd2a0463b2e691f283e5a000047886b4c1b9b48247273736b6d6d35180c5e5e5e22912820
+2080cbe5f2783c1ad75c5c5c783c1e97cbc5859f80acd6a70a0b0b351a4dd7ee676069d8b0613c1e8fb9732d00000cf0b8c6b983f6751a8d46a3d148aff1f4f5f565e739e67652086a30b8d8c9fc6a870e1da24fd8378fea02a1503872e4c8acacac929212baa4b4b474dcb8711b376ec4b902003030e31a33472e1db826140aaf5fbf1e1212221289e89d0968bf278d74086a30e80cfa76b5888808a150989595959595c55e5e
+5656a6d7eb3b3b718e50284c4f4f4f4c4c4c4c4c64167a78783cfef8e33857000006726263fea517873203da10ce60b01bf4ed6adedede79797942a19059b27bf7eee8e8687a73df2e143861c284efbefb8e29303030f0f8f1e3c3860dc3b902003058721b1b2a0406bb81dbae26140a2d6fd3d9e642f6b41d147bec9ae526664b2c57b02c1000000691cb972f4f9f3e1df500f60137ac050000004056030000e82b2d2d2db831
+2020ab0100000c50d7af5ff7f7f7473d00b21a0000000020abc1e0f4f5d75f87b665dfbe7d7dbc2798240fc0d168b55a8140807a00643580ae58b76e9dbdc6a677df7d372a2aaaa5a5059f3240ff421f28d8131eaa007a95d9edbfe88d25f6eddbf7f8e38fdbdfac75656565f8c4615030994c2693893eb1d76334180c0683c12e0f8d99f817b3c721ab01f43c6f6fef575f7d75d5aa55274e9cc00cc300fd15d40c06c35349b9
+172beaecf5186fdcd03ff6582e972bb4d703bcebee211f7fb488dee114a734b25a4fa26d2af1f1f16bd7aeed66511a8d66c99225fefefedbb66d6bf34652a5a5a58989898f3ffe78f7df0b7a43707030f3394e9d3ad5d5d575dbb66d1e1e1eb9b9b9c3860da3cbcf9e3d4b579e3973a6d907fdf5d75faf5ab58af9f1b5d75e7bf4d147cdce347a5bd8e4e4e479f3e6b5792ad215020303150a05fbf27eeb852f5bb6ecf0e1c3f4
+39b32d7b87274c98909c9c4c4f3cb3036117d5deb1e3dc803e086a3a9dee6245dd17852fdaef81be68df9fe323116fe8743a4208e29a23c078359b601c520fe6f5975e7a29303070dcb871ccc2e2e2e21d3b761042a64c99121010505a5a7adf7df731f98610929797171d1dcdd4ffbbefbecbce52849075ebd631972c9496963ef0c00334871142b2b2b2d2d3d3cd723c7b85eaeaea9898181b0b670735baedf4e9d3af5cb9d2
+e6c15a1e88e5583db363c719027d93d59a9b9b092126131e83f54108696e6e36180c76dc8b0d833eabd11b4365666676f6eeec5de3c8e390d46a7565656597374f4c4c645f041a1111a1d168de7aeb2d763bd6d9b367376cd8505e5e4e3fd01d3b76e874bae4e4e4f23ba2a3a3abababb76cd942d3dece9d3b0303034b4b4be9ab85858542a1f0f0e1c3068341a3d1a4a7a7eb74bad75e7b8dbefad9679f5db87081fe014a5bb3
+cc5658be7c797575f59933673a2cbcbebefefbefbf67efd8e6cd9b1b1b1b4f9c38414fc8e8e868baeddab56b2ddf881e485656564949497bc78eff92a00f188d46ad564b0831e231681f8410ad566b341a713e3b028c57830e0804823163c668b5daf0f07089443271e2c4d1a3478bc5e2d0d0d02e9779e8d021f605078181810b162c601adebefffefb993367feed6f7f635678ebadb7962c5972f0e0c1d4d454f6dd5acd7a18
+0921151515172e5c484e4e66ba1a274c98f0faebaf334d651a8de6d2a54bec1556ac58b162c50afadc7ae14c435d555515ed939d3f7ffefcf9f3db3c46cb3d610e847df8ec636fcfd5abbb972cf97cf2e4c93e3e3e4e4e4ee1e1e10281402a958ac5629c9fd0857635a3d1a8d7eb69bb1a0c5e7abdde6834a25d0d59ad773163ce9e7df6d9279e7882b67c581978c41e5764395eadc3214a1d8e1c6a734fda1b87d4e6a0a5beac
+bdd656c3850b0d7d93d5626262e4727951511121442e97d3e51e1e1e43862477b8b9d975a0849077df7d77dbb66da3468d62ea3f2c2c8cc7fbed54bc72e58a5eaf8f8e8e6637320985c2a8a8a88f3ffeb8b6b676d8b061743022d3546669d4a851ec1f232222844221bb7cb315d8ac14eeededfdcc3302e2b66a0000200049444154cf6cdbb62d2f2f6fecd8b17421734ab4292b2b2b2b2bcb6ca1bfbf3f73791afbd8dbd3d474
+e1c409cd891327cc96878787474646ce993327323212ff974167e31a21045ff2831a821ab25adfc9cbcbcbcbcb637e5cb76e1d21847e8b9b7d6bd271456da622b335b3b2b28a8b8bad7f01af5bb7aea2a282fd2ddbe69e58663ed2cea0a5de1e182e93c9d93f3a3b73860f171042381ccea449437af5e2ed471e7984896894a7a7e7bffffdef175f3cd785d2fefce73fe7e7e71f3e7c5826937561f3fafafa279f7c929da7694c
+ef9123edb0f0152b562c59b284f9ab80fcb199cdc677292b2ba3ad1a361a36ecc9d75e7b4028142a954a2727a7ebd7af2b95caa23b366edc281008222323e3e2e2e2e3e331ff277422b4a10a0090d56cc4b44cd016978a8a0af2c7714534bad157cf9c3963d64e63b9a65932b35c81e6adacacacd9b367b34bb3dc133a0e69d9b265e7ce9da3319119b4c4e43c7ad9606f4f42f1f2cbc3b95c2e87f38721865c2e5728140e1932
+84c7e3f55256cbc9c9494b4b632f118bc55f7df595442221e45c978b6d2faf0c1b368cc7e3d124c7a41f8d46939f9fefe6e6e6ebeb7bf8f0618d4663d95cc7464f214661612113ad68f9662b98ad69bd70763f294d72274f9ebc76ed5a9b9fbe593bb1d9796b635d894423a74d9be6e7e7f7f0c30f3375a2d56a150ac5d1a347150a4559599942a1502814a9a9a9cf3df7dcd2a54be965b6001d6435843580c1a0ffaf2d080c0c
+4c4d4da5cf972c5922140aabaaaae82071cb7145e5e5e5965fa2ed0d51b2b20221e4adb7debae79e7b0e1d3ad4e19eb4b9db595959292929f4d5f9f3e7979797b7f795dc533c3c3c860c19e2e3e3e3ebebeb7787afafef9021433c3c3c0402418f5fb95d56563677eedc8484849a9a1a76503b72e4c8840913ba5cec071f7c70f6ecd93973e6b4d96beceded7dfffdf7e7e5e5bdf9e69bccc2175e78c16c13e68363f77dd38ffe
+c1071fcccaca625f16ba66cd1aa628a1503872e448f6007fcb3b50b557b8e59ab434f6fedfbe7dbbb6b69610326ad4a8d1a347af5bb78e7d2501bdef568fdcb6412010c864b22d5bb69c3f7ffedab56b595959e1e1e16ab57ae3c68d212121b1b1b10a8502ffc14107590d8f41fb00b4abf529f6781df6375f87e38acc5819a2c4a42bdb470e597e07b3c34467072df5082f2f2f4f4f4f171717a6698df67bf2783c814020140a
+7bb6694da95446444468b55ab158bc65cb16ad569b929222168bf3f3f3c78f1f4f2ff8b7456262629bb9f3f1c71f6f6f937ffce31fdf7fffbdd9e7c56c423f59cb4f9336d471b9dca54b971e3d7a74ddba75b4179b10f2e8a38f7ef9e597cc279b9e9e9e9898c8de311b0b6782a0d9abc9c9c9b4512d2c2cecf0e1c3b366cda2e783e51b7578ec5d2391489292929292928a8a8a76ecd89193932397cbe572b9542addb2650b46
+b38195ac060068571be83a3b728869e1a35339b4d9ccd67bed6adedede668d6a3e3e3edededeeeeeee028180c3e1f45456532a955151515aad363e3e5ea552252525c964321ad4a45269370b9f39736651519195fe626f6fefc2c2c27beeb9871d867ef8e107ba89b7b7775e5e1ebbf277efde1d1d1dcd34684d9830e1871f7e60364f4e4e8e8f8f67973f61c284efbefb8e29213030f0f8f1e33616fede7bef2d5fbe9c5ddaee
+ddbb99984e9b630921b445d66c4f6c39f66e0a0f0fcfcaca52a954191919c1c1c1f473346b1905f83dab61a2b2c13cbf1aa05dadff591f5764c9ca1025aa47460eb1f384ed83967a049fcf170a852291c8720cbbd31d3df24695959573e7ce55abd54949494c03924422397ffebc4422b1bd1c2bf35930e87040db975b563e65d6336eb9399d3ecd4a09b617ce9ee3a3c36dad1c88f563ec6633dbdab56b57ae5cb975ebd60d1b
+36e4e4e428148a356bd6e01e1e6006737301a05dad5b6c1957c43493581fa2d42323879896155b062df5ca47c5e170dbd1832d6a353535515151353535f1f1f1663d7d9d0a6ad0ef0402c1dab56b552a954c2653abd569696963c68c29282840cd00dad5d0ae066857ebb1ac66655c91992e0c51229d193964360ec9faa0a5ee282faffff1c7eb6a751b37b3ea9b3bbea5a6a65656564646465a8eed83c1482291e4e6e6d24b44
+cbcacaa2a2a2d6af5f6f76d32d70dcac862a00180c06f478352be38a2cd7ec70885277460e998d43b23e68a9eb1f0687f39fff9c3979f2527575757575f5b56bd7ae5dbb56535373f3e6cd152beee9c1c6b3f6e4e4e4e4e4e488c5e2ecec6c4cd3654f6262624e9d3a9591914108d9b061435454945aad46b5409b0d36073fcf99e2eb64e571aae87817da81eaeb6a678c706397c05ef2dfbc838fcf9a9cfaf8c37a9dbeb3656e
+796575f79ba934cdcdd677e04c4971c4507e8fbc17dad5a0b3fab45dcd6c348fe5781dcb25ed8d2bb2655bb3214a9d1a3964b6c47237ac0c5aea8e471ff5f1f111b07b36b95cae4020108bc57c3ebfc767e560aba9a9a153966cd9b205dd9df6877689464646c6c6c61614148c1933263737373c3c1c35e3c8da1cafd6610c307569a0dbabab9ed534371142dcc55e3e01438d164b4c7776c9a993fb6fea898177c63b07dede0e
+f4e07b1142feefcdf4afb2b33e2b2c77e1e3af621860590d3ae4e6e6e6e323767171a1718d6635676767575757a150d8ab592d3535b5a6a6262626262929091f84bd0a0f0f3f7ffe3c8d6b5151511919192b57ae44b538ac369b67a265f1d1b2dffa25b49ae6a50fcff0950c7d3deb732eeb66689d6dd7d16a9a6bae5e960c0dfacf9d74a269365ff2d1a1924e176efa6dfdeeb733f105a28e77a0e7dab42ace9c266821039b71
+5005038a8787879f9f5f008bbfbfbfafafaf582ca6b3ddf6d2fbd6d4d4c8e572814080616a768fcebdb27efd7aad569b9a9a9a9090a0d56a512d0e9ad56c9e73b547e66ebdfb9e891c2ecfca922e4f09db97d3cf622e5c40567374aeaeae62b1d8cbcbcbcbcb4b2c168bc5624f4f4f777777a150e8ececdc7b43d65e7ffd753a9b1a7a3f1d447a7afa810307c462714e4e4e6c6c2ce29a8366355bc64599ccd7d4343727454f7e
+67fdea0fde4c8ff0777a68b4f7d52a95c9440ee5e644f83b318ffdbb3fa4eb1fcacd890a762d2ffdf1f8b7fba70f757e67fd6acb25b4ccbf3df1fb70b186bada99216eb428d9bd235ab45a2bc3b6d83bf6b7271e2e2dfeef03c3f866bb61bd58eb3bf0cefad566efc56c6279bcd6f784bef4dd01f9f5ab971f0c12d2924d26b226299629cacaf162bc1ab21af43f1e8fc7e7f30502814020e0f3f92e77f078bcde0b6a5aad76fb
+f6ed8490e79f7f1e1f81e3a0171c0407072b140a5c6de0988c363c4c770669992dfcf1bf473f7e3b83103261da74dfc0e11fbc95feca7309ecc25f4b7d667ff687468b015ea67696b0dfe8cca9e247a4c3e8683642c8f5ab97e3fe14aa6dd176b87b26428e7fbb7fe9c2fb75ba56cbddb05eac951dc8debef9cd357f217f5c61ce68aff29f7e641fef3be9ab6dd91393c5b1af498efdee809c5978fdeae5851302af5e5659f95c
+00590d7ac58d1bcd67ced4b5f9d8b7ef424e4ed9eddbad9cb6f4ec54b796b66fdfaed56a653259f7ef4900834b7070707e7e7e585858515111e21adad53a6cb8622f2c2f2d59fd7ae6b16ba68d1f7dd9a86ed8fdfe5bfe43838e546a8e5d331dbb66da7fe68640e4fadd01b95ea79ff548fca14b4da3c7df7bff430b0b7ed12d5bbfc97209fb8d34cdcd6fbd98a2d3b5aeddbc939696bc7afdf5ab97cf2b4fb6b97b967b1bb774
+15b32121e452d9595b8ab5b203fffae6c4a5f33fe974ad4cb399d90ac7ae9966c4c872b66f3e7de2b8f53de10b443bbf2d991123a3d5b56cfda686bada1f8e1e62d63c76cd949e99fdebad8692e3f9685783dfda7150053de5ca955fd5ea1695ea5653934eaf375554fcf6b577e1429d46632084787bbb88c56d577860a0b340e03c7bb6c4db5bd837f3a8b17df4d1478490a79e7a0a1fa263c6b5c2c2c2a8a828a5523969d2a4
+fcfcfce0e060548ba364359b57301bb04508f11f1a14bd28913ef71ce2fbedcfb7e9ab1a4df3f247665cb8d3e0d4e6602fd2d6f02fe6474d73d3e59fcbe396ae9a97f0345d9efc427af20be9963b6cb64bcc8efdbfb457e9f3d8e465d9996f5d5155e8f57aebc5b28bba547646557686bd66d8a4a9ebdef968434a427b2b10425e7effd3e58fccf8ee9bdcf153a75bdf13e62a0df6b1efd9b1f98aaae29f3b3fe7f2783365f133
+65f104e3d20059ad9bb1ecead5db2ad5ad9b375b6edc68be7af5565d9dd6cf8fefe6c6f5f3e3b9b8101ecf69e2443e6d0c9b376f9850f8fb35014e2ccc120e87231008bcbcbc5c5d057d308f1a5b4d4d8d52a9140804313131f8641d13bdda80b93814710d598d586420cbac76d79dcb02a8f3a78a573c3283e9ef33cb2296e598da5fa1fab2caa0d30587ded3a9dd6b73c7f822d7a0bb426d29d6720fcdd6bc77c62c81c8d52c
+5dedd9b1d9ac1c9f80a17abddefa9e98e554cf21bef1292fecdab4e1fb6ff7470d77a62ffdcfd255cbd237e1140564355bb5b61a2e5c6850a96e5557375557379d3e7dddcf8f3f6408cfd7972b16f3a452e799337dbdbc9c69e4a27782629ed04937cc229a595ca34f5c5c5cdcdcdc8442218fc7ebd51e4f330a85821012191989c96f1d3cae1d3870203636968e5d435c7394ac66b26d058bfe50b385ea9bb52b17cfa441edc5
+cd3be7c53fadbe591b3f2d8498f5d9fdb1e392bda48d156cdf3dd276996d2f69a7d80ed734eb0e6ecfcf674febf5fa8e8ff78f4525ad4e97252d8b9f16a2bd3342ee3f3b365fb954f18f9d7f982a0590d5e00f9a9a7467ced45554a8cf9ebd79f162fdf0e1023f3f9eb73777d224fea24521348d71b95c1e8f47ff65c219f323339f2d33e68cc3e1108b7635e65f2e97ebe2e2c264b53e3bd283070f1242e6cc99830fddc10904
+82dcdc5c1ad7626363f3f3f3c56231aac5ceb39acdeb982c46c4b317961c3fa26d6e7a477e6cfcd4e9c46aa7a7a9ad8e4bb3152441215c676755f95953e7f7cdca920e8b35db0db335e931b2f7f6c5cd3be7c63fdd66512d9a665b8e97fdaae710df03177feb4756dfac4d9816f253f1f1ebd5bf040485e0440564b53fe4b31f7fbc7eee5cfdd9b3376b6b6f8784082512ee9ffe244c4808a6c1cbd9d9997787d98f4c3e63b7ab
+595e1cc0eef7247fbcc5278d6b3d7b23765bd07635994c861300685c8b8888502a95090909b9b9b9686d75f0ac66a50fd4b243f3d881dc7153a7d3a891382d8449369ded0315885c87df15fad98ecdd3e7c6d2f05776aaf8afb219b14f2f4f59bfa9cdfd3759dd315b8a65af193a696af8ac799fedd81c1c7a0f4d6365a78a33fefa14f35ec161e342c2c6bdb1ea99a12347d3a20821795fe4fc3325e1b1a5abcc4a6b6fdf34b7
+7fadbb7e2d2028c4f2e8e8aed65c56612a354056fbcd9933754a65eda95337aaab1befbe5b387cb8f3c285ae12890f8fc7737676a6818c3e7171716196302d6a96ed67ed757412abf75f67f787f6e5e1abd56ab1588c0e2f60e25a7e7efea44993140a45727272767636eac49eb35a673a19cdfb40590b27dd3f4b2072fd6cc7e6cffe387eebe773a7f57a3d87cbb3dcc4f20a53e647178168e5c6cce765339e97cd608a72f7f4
+92252d37db6193c95a99664bac176bb66dc28ab4a223dfbcb9ea9937573d4397c7c4251ffefc53fa6a9b455929cd72df468e9d785c215f123e72f1b3ab52d66f9a366b9e65ed2d7e76956478082ef904c7cd6a6a754b4949cdc993374e9ebc367cb82038d879f66cd7a143bd692ca3539ad1277c3e9f3e6137a1598633a67fd3b2b5cc32900d1c9595958410cc7f0b6cf452838888889c9c1c8944b265cb16d489bd32dab682e9
+8f77c9b45ce831c4f7df45aac7c37f1f6eb525f7d8de1d9b4e171eadbb7e4d121462b989d912b31f474ba7e6945c610af41b1a9475acdc852fb09c988dbd4b1dbe8b95622dd7949f6f488d9d51f1d38f34363df848dce1cf3f65ca345b8110123e7b61fa079f73793ca30d7bf270d2b2ff6c7f4bdbdc744555a1d3ebd377e67ebc29fd93cd1b9843db927b6cdcd4e998470d7e0b0f261b42bbc160686e6ebe71e3c6c285fbe4f2
+41dc59a652ddfaf1c7ebfffdefb51b377ebdfb6ee1e8d182d0503781c099c967349c3193d0b25bd1ac4c7866f964b0282a2a8a8888888c8ccccfcfb77d2bbb391f060b994cbe7fffa37e7e7e2291a8f7ee336646a95446444468b5da8c8c8cb56bd70ecaffdd9c9c1a1b1b71fe58fefe6a349adadadaf878c5db875e44850c52cfcf7e232727c6d7d797de2a1a1532d879787858c9630ed1ae76ead48de2e29a1f7ea876712123
+47f267cf761d366c0893cff82c4c44336b3f6b6fc0d96047e73e45bb1a58924aa5f45283b4b4b4f0f0f0c8c848d489fd41f71ac0a060b759edca955fcf9ca93b7fbee1bfffbd121c2c18358affc413be3e3e02269fd19b38090402a6458d46343afe8c766bda5f383353535383ac06ed898989c9c8c8a0f7773f75ea14ce133bcc6a086b00c86a7d4ca5ba75e64cddb973f567cfde100ab9e5e599f5f555fffbbfff1b1a3adcd9
+d999b69c31b7daa4298df672b2af0fb0fb7cc646c7abf9fbfb77615b27272791882793c9f15bd4db44225e7f9d8a2b57ae3c7af4a85c2e4f4848e85447390c0a180e056057598db6334d9dea2b93c983823cfdfc4477dfed3974a89b9f9f2834d47b20e433a5b2c6cbcb3928c865c408fef4e9016231fff1c72fb7b4685a5a347e7e7e6637446747342b5706d8bdf2f2724248172e02a55393bcfffef49b376f6a341a83c180df
+a5dec0e5728542e1902143e8df12fdb20f5959594aa5b2a0a060ebd6ad2b57aec487624fd0ae06606f598dcbe52e5b362e2eaeaeaa4a7df366cb2fbf549f3d6bbc75cb70f9b2e6aebbbcfcfc442346b8fbfa0afdfd5d5d5d9d43423c7b63779b9a742ad52d95ea566dada6aaead70b17ea987c161939cccdcd857d21a748246a6e6e6e6c6c0c0808605fce69d984e650f98ca1d56a999b16746a43e6a6586e6e6e068341241221
+abf55e56a337b41008fafae6630cb1589c95951515154507ae858787e373b19fac862a00b09bac46839a402070777737180c0281a0b5b5552ad5ebf57a83c160341aababb50d0dadd5d5d5e5e5a65bb70c5aadb1ba5a4b089938d19f10326284bb48c423840c1deae6e5f5fbd49a66918ee630f6fb9add07fdc2853a42484000dfcf8fe7e1c1914af9f3e70f777575663063d1e8bf010101757575858585afbcf20a13d12ce73c
+735872b95cad56c7c4c474761c929393138fc7130a855e5e5e028140afd71b8de84be9151c0e875675dfdfd0822d323272fdfaf51b366ca003d7703f03bb61445803b0a7acc6e3f1442291c964e2f3f92d2d2d2d2d2d3a9d4ea7d3190c06bd5e2f16eb291add8c46a3c96432994c2a95c664325dbb56a7561b092167cf1a9b9a7eff5267221d2514720302f8ecf765df079dc3e1cc9b374c24faedf600cca59aecb9369849d1e8
+ab5151513ffdf4537171714b4b8babab2bf2199b56abddb061032164e9d2a55d6bef1108045c2e572412d18f1b55da1b6813266d2deedfcbf2d3d3d38f1e3d5a5050909292820972ed067e6f01ec2aab71381c3e9f4f47cfe8f57a26a531687463c735a3d1e8e56530180ce3c7ff21c0b1b5f776cc04b3cc5d9bd8684433bb9700fb2a4edac54987cceb74ba575f7d15f3799ad9be7d7b595999542aedc2dda568dea5b54d5bd4
+90d57a2fab11422ca7f4eb17d9d9d993264dcac9c979e49147e2e3e3f1e9d801b4ab01d84f5663be2d381c8eb3b33313bc8c46234d664c6e63073583c14097d37fe94242083bb459c96a667743b7fcd7f2469c665f697ffad39fe89e6fddba352e2e0ee36c184545456969698490acacac2e670827272793c9d45f03de1d33b4f52f8944929191919c9c9c9a9a1a1313839e503b3010a2daf1fd399b5724303fba797abdf95589
+fff05eb961798ba6f9a5c7660c910c7d71fbe75c1e6eb1087697d5c89d516b269389fe4b5b53184c7a637e6427b636dbd5da6c8f61df16931dc2cc6ebbd9de6dd1d95f69349c71381ca3d19890905058588809a208213535350909095aad76e5ca9552a974b00708e84b4949497bf6ec512814a9a9a95d0efa3070f47bbbda1b4b638bbffdc3bc3fb76f35a4cc18b9f0cfab9e7a69532f1dafc9448c8438a14d11ec32ab9965a9
+dffe2cbb13b6ccb297658c337bc9963762b3bc2ca0c359d0040281542a552a9577df7df7c58b17636363f3f3f3050281237fde6ab57aeedcb9959595e1e1e1191919f80580cecacccc1c3366ccae5dbb9e7aea29dccc60b0ebdfb8f2fdfe9ce26fe553662d7c61c7e75cee6f5f46174f17bffcd88cfd1f6c9e3a27366ccaf49e7d4717a1e8f5fd2503e1d8013aa5bb1d58ec2cc56efda2dd9474181933b71925140a4536100a85
+6633a231d7725a5ed1d91efa5d327ffe7c8944525454141b1babd56a1d39a84545452995cae0e0e0ecec6c078fadd035c1c1c1ebd7af2784a4a4a438f26f937d309afaf371e5e732574fafa75e79db89c363168e9c3075c37f8ef19c5dae5ebad0bfbb37c01f80acd65d66ed61ec18d759edf575dae8c1071f24849c3e7dfac0810362b158a150c4c6c6d29b603a9acacaca8888081ad4f2f3f3bb30ff2d00b576ed5aa9545a56
+56462f2586419cd5faf56122a4e956c3cdeb57cd968f9c38f593f296071f7b9a59a2d134af7d7872dc4827fac8fbec43b3973e7e75f57fde4e675658367d444b8bd66c9dd7ffdfc34db71be9139d414f5f52d7d73e39ceadcdadacbf6fbf3f0059cd7ec4c4c4080482a2a2228944525858181c1cac5028686471a88fb9a0a060d2a449656565616161086ad07d74b0dad6ad5b1ded57c9ce984cfdf9903e388fe7ec92fe3f3312
+463a7df2eaeaf656bba82cfeb3d44b75e64766b777ac7986bd3e319173278e7ef17e0621e4de590b65cb5eaaabbefc73e94966855fcacffc527e66ca6c991387474cbf1ff84565f1b288612dcd4db4d8baeacbab6685b66ab536be6fff3e0059cd7e080482a4a424ad56bb6bd72e1a53c2c3c3cbcaca222222b66fdfee081fb056ab4d4b4b8b8a8a52abd532998c06569cf7d04d52a974e5ca95f4ec426da05dad6b8f9089535f
+de738ce7ec4208f966e7e6c4bb9ce8e393d75633eb6835cd3b5f4ed1eb5affdfc69dfffed9441f9367cbbed9b9f9fcc9e3b471ce4488ea4c49f23f32fffdb369d5bfbe7c28e979bec8b5f8db5ca6107966065fe43a263cca7467985a9b252ffaebfabaeacb177f3a69cbfba25d0d90d57ad2534f3d4508d9b16307218476ffd1ef98949494888888a2a2223b3e768542111212b271e34642c8faf5eb73737331cf02f4948c8c0c
+8944a25028e472396a63b066b5fe1e74153261ea87e75b3ebe689a3cfbf7891e0fecdcbcf45eefebbfa88c2672b9fccc950b67629e5e3563f1d3cc56299b3f0dbee7de1f0ee63223b7860406852f4ca43fba79f98ebb7f76f181bd2d5aadd1446eddac3d73fcd0e8c9d3c501c37fbf0ed44434cd4dd72e95b34b96fd35fde38ba65193a7dbf8be18af06c86a3d263c3c5c2a95565656161414d096b62d5bb61c3870203838b8a8
+a8282222222525a5a6a6c6ce8ebaa6a666eedcb973e7ceada9a9090f0f2f2c2c4c4f4fc7e90e3d482010ac59b3861082516b839769c03cfe9a99fbd145d347174ddb8a6ff085ae4db71a0e7dbc8d6906537cb8f9c9bb9d98c79fc7bb569efdf17a6585dea0a72b04854d74e2f198d2a6ce8fbb597df9d24f274d849cf9ef91164dd3bc675fe4707926d681dff84565d0eb868ebaa7bd5deaf07dfbf701c86af6d9b4f6f6db6f33
+4b626262ce9f3f9f9191211008b66fdf3e66cc18daf86407b45aedc68d1b434242140a85582ccecccc2c2c2cc43cc0d01b9e7bee398944a2542ad1b43658dbd5faf571f174f17fde5a67b6d0d5dbf79de21b23eeb9f707c55e3ad2bf3d97cb4eebf57a232bbe30858cf9d32cbed0f5e4b7b946424e7cbd674860d088f153980b1a9895c91fb7b2b19391795ff48102b25a4f4a4a4a12080472b99c3d0e5a2010ac5dbb56a552c5
+c7c7abd5eab4b4b4909090eddbb70fde69086a6a6ad2d3d3434242d2d2d2b45a6d5252d2f9f3e79f7bee399ce5d0db4d6ba9a9a998bf6350b6abf5dfd0f8c69bb56f3c3eb3e8cb4f99b1fc9603e79927c9193b3fac30993dde3c5ac57311b057661e6e5ebe317f7ee1a4626fddd5cb678f1f9a12b398aec95ed967580897e77cb5e2ac9591fbd6df17d71600b25a4f128bc534b25876d6482492ecececc2c242da4f9a92921210
+1090929252565636880eb0a8a828393939202060c3860d35353552a9b4b0b0302b2b0bf769803e685aa3bf3b0e72b10edad57aeae1eaed3b76faec9bd59753ef0fbc7145c5be9820236146d5d91f27c72ce6f20501a3c60d1d3d2e2bed9972d688fea2af729e1ee59493b1dad87ef3d8b8c879b76a6bf667bedaa26992ce8e653747d1959d85ae9291a1073fdccc94fc7369f1b363f9b4585bde17ed6ad0679c1ce4aedb6ab57a
+cc9831353535f9f9f9ed4db6ae5028de7efb6d8542417f0c0f0f5fba74695252d2403eae5dbb76edd8b183b942223e3efef9e79f478f27f425b95c1e1b1b2b9148542ad5809a60d9c9c9a9b1b1111f901983c1a0d1686a6b6be3e315abbe7cb11ff7a455d3fc7ac28ccb677fb47c69e2cc857f79ff730e974708519516bf113f43af6b65af20f2f47a595ee2332c8416e2e53f9459dfac707651662b5b96cc14dbe1fbf6fbe7b8
+f9e1377272627c7d7d85422197cbc5893dd879787858c9638e72e36db158cc74d6b4b74e4c4ccc810307542ad5dab56bc56231d3589592922297cb074e178f56abcdc9c9494e4ef6f2f24a4e4e2e2a2a128bc56bd7aebd76ed5a767636821af431994c26954a6b6a6ad0b436e8f4ef958c3c81e8a5dc923f6fc936dbabbf651ffbcbf62fc99d9b198c183f75cbc986a07bee6556983073e1a6a21bde4343982b224da48dc227cc
+5c480899182d23acfb22b0571e317eeac66357f842575aac7760d01bc7ab99623b7c5f5c070a7df797a7c961fabdb55a6d4848484d4d4d7676767c7cbc2d7988dd6445c3dc9c3973626262c2c2c2fa7eff6b6a6ae472f9c18307d9e3b8c3c2c2d6ac59131f1f8f1b46413f1a984d6b68576b13bb5dedf92f5e44850c526f3f827635bb62bd5dcd81b21a2164ebd6ada9a9a91289e4d4a953368ee5522a950a85e28b2fbe6087b6
+e0e0609adb828383a55269efed706565655959595151d1175f7cc1be30223c3c3c2e2eaebf522380a54993262995cacccccc8173390bb25a87596d851c596db07a5786ac86ac66bfa2a2a20a0a0a687767a73654abd50a85e2e0c1830a85c26c3eb6f0f0f0e0e0e0d0d0d0c8c8c8e0e0e02edf1840abd51615152995caf2f2f2b2b2323a211c432c16c7c449ef77f00000200049444154c43cf2c82331313198d216069a5dbb76
+2527274ba5d253a74e21ab0d96acb61c596dd0da86ac86ac66c72a2b2bc78c19a3d56abbd300505454a450288e1e3d5a595959595969f6aa4020600f1a0b0b0bf3f7f7b72ca4a5a58569aba329cd729de0e0e0b0b0b069d3a6454646b6774904c040c08c31c8cdcd95c964c86a8322abfd2517596db07a3f1659cd81b21acfd1aa233838383333333939393535353232b26b7d88e1e1e1ec3456505040431b93ded84d6266cd63
+d6d15d0a0d0d954aa5e1e1e118850683059d6b2d3535f5a38f3e1a20590d3a8411ea008302cf018f392929e98b2fbe90cbe5c9c9c9f9f9f9ddcf43962d5e353535cc0c6d6ab59a3dd48cfdddc6043eb3a63880c1283e3e3e2d2d8d4e3addabe338a1a7e072420064b5812b3333b3a8a888ceca919d9ddde3e54b2412f6b50b686600472091489e7beeb9ad5bb7eed8b123333313153208b21aaa006030e038e6614b2492dcdc5c
+81409093936337770205e877cf3fff3c2164d7ae5d66d7dfc0c0d4ef374ac203f7980264356bc2c3c3b3b2b20821b4d706a70240f7050707cb64323a3d216a63e033e231681f80ace628e2e3e3d7af5f4f0849484868f3324c00e8aca79e7a8a10b267cf1e54c520c86a263c06eb0390d51c487a7a7a7c7cbc56ab9d3b776e9b57000040a7d0f9ff8a8a8a98cb6b60c032e131681f80ace658b2b2b2626262d46a75545414e21a
+40370904027a31cd471f7d84da40bb1a1e68570364b59ef96ac9cdcd455c03e829b41b1443d6d0ae8607dad5a04738dc7d0bdaa3d56a636363150a85582ccecfcfc7ec5000dd111010505353939f9fdf8ff7dbc07d0bda44ef5b505757f754d221ad466faf87d9d0502410040a854176dbca20e47db46bb68f8f0fee5b601f70df02dbce7b8120373797c6b5a8a8a8dcdc5cdcd309a0cb929292366edcf8d1471fe1f76800e270
+385c2e77f3a67bebebeb351a8dc160b0bf63fce083bad0d021336648ecefd0b85cae5028f4f6f6e672b91c0e3ac71c02dad5fe80695d1308045bb66ce9f20d43011c5c515151444484582cbe76ed5a7fdd2a0ded6a6d321a8d2d2d2dbffefa6b7d7d7d6363636b6bab5d66b5ad5bb78e1f3f7ed6ac597699d55c5c5c3c3c3cbcbdbdddddddf97c3e129b1d40bb5a2708048203070ea4a6a66eddba352525e5f4e9d3987e1da00b
+c2c3c3c3c2c2cacaca140a05eedb31b0fe407772e2f17842a1502c160b0402bd5e6f34dae1745d2291c8d3d3332020c0fe0e8dc3e1f0783c814020140a793c9e939313ce6abb87acd6862d5bb6848686a6a6a66edfbebdacac2c3737572c16a35a003a252e2e6ec3860d5f7cf105b2da40c3e572f97c3e97cb15894446a3d12e7b57040281bbbbbbafafaf5da66d1ad7783c1e46aa21ab39b4e79e7b2e2c2c2c3636b6a0a060d2
+a449070e1c080b0b43b500d82e323272c3860d050505a88a81f64d4f08a15ff3cecece8410bbcc6a3c1e8fcfe7bbbabadaeb27c8e1709ceec0598dace6d0df34a74e9d9a3b776e5959d9a44993d6af5fbf76ed5a540b80edbf4162b1b8b2b252a954e2c2ea81f665efe4e4643299ec789cd3afbffeeaeded4dc3a87dc76e70041890684d70707061616152529256ab4d4b4b9b3b772eee480d60bb98981842089ad6067262b357
+b76edd128bc5f67d8c388791d5e03762b1382b2b2b2b2b4b2c162b148a3163c660864f001bcd99338710f2c5175fa02a000090d57a575252d2f9f3e7c3c3c3d56a754242427272321ad8003a44dbd58a8a8ab45a2d6a03000059ad77492492c2c2c28c8c0c42c8ae5dbbc68c19b375eb56540b80f5df1aa954aad56a150a056a03000059ad2fac5dbbf6d4a953b4812d353575d2a449188b0360c5238f3c42083978f020aa0200
+0059ad8f48a5d2c2c2c2ecec6c8944a2542aa3a2a2121212d0250ad0267a8f29fc49037decd6ad5b9e9e9ea80740567368f1f1f12a956afdfaf5028120272727242424353515890dc04c7878b84020282b2b53abd5a80de8336ab51a739803b21a108140909e9eae52a9e2e3e3b55aedd6ad5b0302029293932b2b2b513900ccaf099d475aa954a236000090d5fa814422c9cece56a95449494984905dbb7685848420b1013068
+3768515111aa02000059addf0407076765659925b6b973e76232368089132712424e9c3881aa000040561b40894d201028148a848484808080b4b43434b381c3a23798421f28f43693c96432998c46a3d1682484d02774212a070635279cc4bd44ad56e7e4e4bcfdf6db65656574494c4c4c5c5c9c4c26c3885770345e5e5e6ab5baa1a1a12f4f7e2727a7c6c64654be234434faefd5abb78e1e5515155fd5b51a1507fe3e73d6
+3a1717d1b4a9810f3e18121cec456f7e8a5b33c1c0e4e1e161258f21abf53aa552b963c78e9c9c1ce63ab8c8c8c8b8b8b8989898e0e060d40f3882a8a8a8828282dcdc5c994c86ac063d1bd48c46637979edfb993f5cfea571da03a3a5e121cecedcdfff072eae2cfeee820bcfe9f9bf4e9b326518121b20ab41bbb45aad5c2effe28b2fe4723973bf1da9541a13133367ce1c3aaf016a09ec556a6aead6ad5bd7af5f9f9e9e8e
+ac063d95d24c2693c160f8bf0f4a8e7d7f253125523a2da4bd952b2b6e7cf4ce111fb1f3cb7f7f502874c1bdcf01590d6c0a6d0a85823de394542a0d0f0f9f366d5a7878389de300c06ec8e5f2d8d858994c969b9b8bac667b1021773af8ec064d48dd8f4ab47ed4eae6975fc91b3921f8d1e4fb6dd9eabf47ce1fdc7362f35b0f89c5220e8783b806c86a60d317d8d1a3478b8a8acca633100804e1e1e11289243434342c2c4c
+2291a0e10d0635a5523969d224a9547aead42964355b8288c16078eaa97d172fd6dbdfc970d75d5e1f7fbc98cbe576392ad17e4fbd5ebf7cc581e8b8f0293346d9be6dd5c51bbbdef866db3b31aeae02c435405683ce292828282a2a3a7dfa74515191958b462d439b582ca673223010ef60a051abd55e5e5e62b1b8a1a10159cd96a0a6d3e9222377c9e532fb3b19643279414192b3b37397e39ad168d4e974dbdeff81e3219e
+b724a2b39b9fc83bffd3d133fffcdf286767673a7c0d608067351e2a6880888c8ca4538632d14dad562b95caaaaaaacaca4aa552493b4cdb9c50542e97b759a6582c964aa5c1c1c123468c080f0f974aa5128904550d7d4f2c168bc562b55a8d3bffd898d59a9b9bedf8189b9b9bdddcdcbad6ac45ebe7fcf9ebc5276bd67f30d7d0f9d6862951638af3cee7e55d9c356b94b3b373ef35add5d5d58d1b37aecd8f72d8b0613ffe
+f8a38d7f4e6764646464641042de7befbd2b57aed0e7ebd7af7ff3cd3773737323223a9156f7eeddbb6ad5aa63c78e8d1831a20bc7d2dedb75b95866f3a1438776ea401c0db2dac08d6e8490362f9a33bb0d368d74ec25e5e5e53535354545456ab5da6c65dade4647c5b1a321406f0b0e0e562a9595959574ba35b0c26834325720d925ad562b1289ba166469a3da3bdb4e3eb66c96a1abdd420ffff9c10f367c1e1e3edcdd9d
+d39dde58eb7c7c7c989b44979494c4c7c71f3e7cb80b21e9edb7df7eefbdf79e78e2091a98e87342c8ead5abfbec23631f4b8f27dae5cb97f7e548566435e8bb18c7d6de3c0834c6555656565656d2ded59a9a1ab95cceb4c349a5d2471e79243e3e1e573300b2da00c10cc6b2e363d4ebf57496da2e548e5eafbf78b156dda8bb7b625097b39adff0219e3e9e3ffcf0cb030fdc352846addd7df7dd6d3e070781ae7a7b26168b
+232323939292d2d3d3737373af5dbba652a9b2b3b357ae5c191e1e4e08512a951b366c1833664c4848486a6aaa59231c40cf663542482ffd696e9771cd8e0fb0cb418d76801e3e726952e418838974e731f1c13147f2abba9c1abba9aeae6eecd8b16fbcf1868787c7d8b16369336a6262a2c71d8585858490929292b0b0b0e6e6e63973e67878788c1c39923e1f3b76ec952b572412095d8dcac8c860365fb76e5d873b209148
+befcf24b8944c27ec7f68aa2ebb7b94e5050d0a54b97d885b337ffe4934facbc23fb00e3e2e2ecfb4f146435e8c4f7657c7cfc962d5b0a0b0b4d26d38103079e7bee398944525959b975ebd6a8a8a8808080949414e65e0b003d8576fd545555a12aa03b214fa7d39d2b6b080a0bec66561b3126b0bcbca1b5b5b5bf62717d7d7d4949497d7dfdb973e70402416262627070706363636363635a5a5a5c5c5c5555d5e4c993cbca
+ca4422d1c183071b1b1b2f5dba449fd34dcce2516666e64f3ffd4457fbf0c30f999064c5f2e5cb4f9c38c17e471b8b4a4c4cfce4934f6edcb8d1d8d8b879f3e67ffef39f6dee497e7e7e6a6a2a7b73b377f4f1f1610e70cf9e3d3c1efafa90d5c0424c4c4c6666e6b56bd70a0b0b57ae5c191c1c5c5353b37dfbf63163c6444444ecdab5cbbe07cd401fff9d4008c18d71a1cb6873636b6babba412b12bbea8da43b0f91979bba
+41d3dada6a3018fa6b3e84050b16d074525757a7542a972e5d4a973ff4d043cdcdcdd5d5d5369643c7b4bdfaeaabf42f223ab68c8e69b38ed98479475b8a2a2929f9f6db6f77eedc49f3e2e2c58b172c58d0e69e4c9e3c79fbf6ed191919cc5789e53be2c44656035b8587876fd9b245a5529d3a75eab9e79e138bc5454545c9c9c96866036435183868bbdaafbfea5cbd5cbbd9aee622e26b9a757abdbe1f27ae62469ef9f8f8
+9c3b778e8698bd7bf7464545b5b6b6da5e4e5555955eafefc238366693112346d0d4684b512a95cacfcf6fd2a449cc92458b16d1270505052e2e2e0f3cf000f3524848c88d1b379889152ddf1190d5a0d3a452696666664343437676764c4c8c5aada6cd6cf47e8ea81fe8323a5507c6ab4197d1f16a46a3912fe0fcfaab566f22dd79685af4cece5c3a586d20cc33ca8cf17ae595570e1c38e0e2e2d2a9cdbdbcbc0203037b64
+4f3a2caaa2a2c2caab6ab57afcf8f1cc78b5cee64e4056834e888f8f3f70e0804aa55abb76ad4422292828888a8a8a8a8a6a6f2e3700eb303333f4485c331a8deeeeceb76e3675b30f547db3c9ddd3a55f2e2cb0545252b269d3263a28cd722c9a2d1a1a1a7aaa3fb1c3a2468d1a65fdaf323a588d0d73a721ab412f0a0e0ecec8c850a9545bb66ca1892d363676d2a449486cd059741e668c8084eea037121d16c8bffaf38d6e
+b6ab5dfdf946e050d100b989bb59afa24aa5ea545b14ed4fbc78f162f7f7c496a2ccba3509aba52d3232b2b5b515a3d090d5a07f5a4456ae5cc92436a55249135b9b375100b0027da0d0fdac269d28be585ca13391ee3c2a4e544c1ce73640265763a71f3a372c21c4f6ece5e3e3f3fcf3cfbff4d24bf4424e8d463363c68c0ea7ede8725193274f5ebd7a3573dde8debd7be9ad1498cd999708218989894141411d5e00de2341
+13590da08dc4161111919090806f5f00e89ba046087176761e3bd6bb4675fd567d53971bd5b42dfaf2e28a2953fce84d0bfa3daed1f4432751bbf7de7b4f9c38b160c1022630d9222d2d2d2525850e14f3f7f79f3163c66bafbdd6b59db1a528f63aab56adfafbdfffdee64b1e1e1e4aa5f2c2850b56eed6e0e3e33373e6cc65cb96617e356b273feedd0e5da056ab5f7ffdf5ad5bb76ab55ab158bc66cd9a952b5762401258e7
+e5e5a556abfbecff9c417aef7683c1a0d1686a6b6be3e315f67aeff69c9c185f5f5fa150c8e5726ddfd06432e974badbb76fd7d6d61e3952517c813f2f6d51d7f6e1d8ce3c3fe32f8f2e0af3f5f5f5f0f0c04ddca1df59bf773bce4ee80ab1589c919171fefc797aad685a5a1aba44c196d38660da0ef8ffec9d7b585357bef757c875275c4204039122d002562ec52a2aa7320ac27841e7052f531ab40af8b65a652ad44e45e7
+4c716614a6b55a1fb1e83c451c5b514f4538a350d40832e28b052f48c5c3c522a205411b149504727bff58e33e7b9210b98490cbeff3f8f884bdd7be64ad9dbdbffbb77e9711606767c764320982080d15f67675b5d6b50dde9626ed7a70e756ad5283baeefdd27aa561ce6c378220d86cb645d498026cfdca872e00868d9797d7f7df7ffffdf7df4f9a34a9a1a1212c2c2c3d3d1d9cc70100180d68349a9d9d1d83c1e070385c
+2e37e95df77fe69c963e7832d8d84f0dfaecb7616bfd689f2dfd0fb6ddf757aefcd0d1d1011635c022804c74c048993f7ffefcf9f3333232b66ddb96959555545454585808c5e0016034904aa591919132998c5ce2e8e8585858e8e1e1a1bb2a313171f3e6cd7ab7158944a5a5a56c369bbaf3f5ebd74b2412ad23262626bef7de7b7843722b7257d4fd141717a7a5a5e1adf4ee7f24c8e5f29a9a1a84904aa5eaefef7ff6ec59
+777777e81b4f8bfff8ed5beb178b023d5fba07ee38b7a931ab2f9fdcffb8bbe9ecd9a6b3674f2384d86c766868685e5e9e502884ab0b305be07d02300e1919195555555e5e5e0d0d0d53a64cc9caca823e01b4c0693b600e74e424262636363636363656555529148aeddbb7ab542aad55df7df7ddb7df7e4bfe126532d99a356b9c9d9debeaeaaaaaaababbbb376edc486e85d9b76f5f6363636d6d6d4040406464e4ad5bb71a
+1b1ba96a0ffb8a2184eedfbfcfe3f17c7c7cc8557bf7ee4d4b4bcbcfcfc77b7076769e356bd6fdfbf78df27d376fde3c7efcf8989898989898dffce637cb962d5bbd7a756a6aeae3c777d726bbd6e69dbe9c57d6d3fddc40d4a7bc4f79f5bf2ed1bbbd984c2675cf7d7d7dc1c1c120d400d06a80ad3073e6ccebd7afaf5ebd5a2e97a7a7a74744443c7efc18ba052081e813a3231008de7aebad2b57ae74747468ad0a0e0e9e3d
+7b76414101164c3299aca5a565debc796c365b2010d4d6d6e6e4e40cc9b57ffaf4e96e6e6e9d9d9d08a17bf7eef9f8f8903582a452696e6e6e6262e2d4a953114204419c3c79b2a6a6c6c3c3c3285f33353555f7e2993163c6ba75eb8442e7f792842eb2e6d22d87aaf695dcb9dcdc275752a73edbaeddb9fcb7b32737ec67ff7c736d923759b912336bd62c78b10440ab01b6059fcfcfcbcbcbcbcbe3f3f9172e5c9832654a6d
+6d2d740b008c090b172eece9e9c1ea0a73e6cc99bebebee1edcddede7ec28409d82cdad2d2e2e3e343daa8aaaaaa6432597474f4287d11a1504835ef21849c9c9cb2b3b3f97cfeb871e30402417494fb7bab05de9cb6b67f9c3bb6facbc3cb3f23ff351f2bf1d0fc94bcd2296681d0dd7ddcdab56bc999590e87b37fff7eb84e00d06a802db27af5eaebd7af4f9a34a9b5b515ca520124780e1412f21911a9547ae9d2a569d3a6
+b9bbbb0fd406ab2b8140b07dfbf6f6f6f6e0e0e075ebd669cd7e0e92499326e10cf50d0d0dd4f2de2d2d2da3fd4d3ff8e003ea4c656666e6abafbeeae0e0e0ecececeaeaeae2e2e2ee3e2e3cdc7de53b2ee99f88b66c11a5a7bb6fd922daba75c2ea152e73e6b87b7ababab8b8b8b8b8bcf6da6b91919158a81517177b7a7a5afa3520168b1df551555565ac439c38716230f96c01d06a8085e1e5e5555555151b1bfbf8f1e3b8
+b8b82fbffc12fa04c0d35810293c72f2f2f2fcfdfdfdfdfdc3c2c2c2c2c2b2b3b307339b191313d3d8d81815155556563679f2e461ccfd797b7bdfbd7bf7d9b3671d1d1ddedede26f8a67575754d4d4df8e2494d4dc50b972d5bb662c50a3a9dce6432edededf97cbe8b8b8b50287475751d3f7ebc8b8bcbb817b8b8b8b8bababababae2b50281c0dede1e9be8323232424343f10e33323270e08285b260c102a9540a253841ab
+01c090e1f3f98585851b376e4408a5a6a6262626c2431a008c020e20c09588264e9c6858a879797951ffdcb76f1f8e1e205dd9068fa7a7e74f3ffdd4d3d3d3d7d7171818482ea70619188bcecece75ebd62d5dbab4aeae0e2f494a4af2f3f3130a85b8a2118d46c3728dcbe5e2c950a15028140a452f707777c7ff0b85421717173e9fcfe572592c564848c8c183073ff8e003f258d3a64d138bc5b9b9b9706901a0d5005b64f7
+eedd478f1ee57038870e1d8a8b8b03b966cbc01ca87159b3664d4040405e5e5e414181de06252525b84c90d6728220222222b02b5b5d5d5d6060a0bfbfff6026467d7d7d274c98505454e4e9e94906162084c2c2c208823877ee9cb1be5a5d5dddb469d33c3d3daf5cb9b26cd932bc90c3e1646464e4e4e490df88ccb8c662b1b85caea3a3a34020c0e6346c51c3de6c8e8e8e5c2e97cd6633180c9cf996dc2766d1a245c5c5c5
+393939645d4b6b223333939c18fde69b6f86bacad3d3d30473dc806120bf1a30eac4c7c77b79792d58b0a0b4b4342e2eaeb0b010e2016d13ecd30d7add58100491919121168bb3b3b3b5c21bb1dca9a8a858b162050ec6c4c9cf70c635994c565e5e2e1289020303d96cf6cd9b37077f442e97bb67cf9ec4c444aa314f20102427276767674747474f9d3a552693252424dcbb770f277e1bd29792cbe51c0e273838f8ca952bba
+2a53f76be29203767676767676743a1d57e9d168341a8d06afa2bd806cac173f3fbff3e7cf3f79f2c4fa845a4e4ece8f3ffe3871e2c4ab57afce9b370f21b472e54ac3abc462716d6d6d57571787c33971e2445252122e3a028c156057034cc1cc9933cbcbcbf97c3e966bf0b40600a3801373b4b7b7efdebd1b2f215dd9962f5fbe62c50a327c32262666c3860d786d4848c8bd7bf7bef9e69b61e4aac569ae7d7d7db596a7a4
+a4ecdab54b2c16e3fd7777775756560e49a81d3972243030904cc63ba49c67588d61b986ff673018f417605bda4b0b49393939e1500332efaea5f3e8d1a33d7bf66cdfbe1d974e9f3a75eafefdfb333333e572b9815557af5e3d7bf66c6e6e2e7ea95eb66c99ae44064c0cd8d50013111212525e5e1e111101d6359b05bf9a535348004305a746a32ed9b76f1ff9d9708a9c949494949494971e0267471be8a0d49d6835c3b96a
+87f1a5eaeaea3ef8e0032727a7bcbc3cd2df7fd88cbcb8675b5b9b582c5eb76e1d5986c1ccf9fefbef05020175c9993367c2c2c22e5cb8c062b17ef5ab5f91cbbdbdbdbbbabaae5fbffef3cf3f1b58357efcf82953a690ab962c5952595909bf3ed06a00c835c0fac12619a85b006881d3a7998ff1c6cfcfafb2b2522c165fb972252727c7c9c9c9cc3b70c18205478e1ca17a10923c7efc38282848ef5603adc2695900b302e6
+408131906b7832948cc0076c041c90085a0d4008ddbb772f3939191b598542a1b9cdb20985c2e2e2e2a0a0202396341d13f87cfe8f3ffea8379dc740ab7427b801d06a802dca356c51dbbf7f3fe45d03ad06d81a2a95ecf3cf3f5fbc7871505090399bac381c4e7a7aba4527059c33674e7f7f7f7b7bfb90569193a1e412b0b48156036c913973e6e4e4e420845253534b4b4ba1436c040e87e3e6e62697cb216d872dd3d37303
+21f4cf7ffe73e3c68d96e20521168bb58a5c59042e2e2e1f7ef8e1db6fbf4d961c108bc5b80281815553a74efde8a38fc855274e9cb0ca54269605f8ab0163c3ead5ab1b1b1bb3b2b2e2e2e2aaaaaa424242a04f6c012f2faf070f1e3c78f000e75a036c1067e7991f7f3cdfd1d1d182ce392f2f2f3131312626263f3fdffcddd7a8a4a7a7238448bf340f0f8fa6a6262c9107b98acfe7ffe10f7fc8cece864b770ca1e16c3400
+3026c4c5c51515154d9a34e9faf5eb1067600bbcf3ce3bc78e1d2b2c2c8c8d8d1df5bb1b8dd6d3d363715da452a96432d9c3870fe3e34b8b8a86d94b52a93432325226935117e6e7e74f9d3a75d82786b3a67577779796968ec48b2b36b6e8d8b1f9aeaeae04410ca63496f9909999d9d5d545a647010023e2e8e868408f815d0d184b8e1e3d3a65ca94868686d4d4543c2b0a5837e0b2664a22232307592a14180cd8da0400a6
+07fcd580b184c3e1e4e5e52184f6efdf0f8e6bb6004ebc49bac8008025d2d4d4949a9a0a39bd01d06a80ad3073e6cc4f3ffd1421949898082ee7560fd8d5c61ca9541a1212826b1b506b800eb49c2c189a959505bd87110a854f9e3c898a8a6a6b6b83de0040ab0136c1e6cd9b67ce9cf9e0c18375ebd6416f58bd3447085dbe7c19ba62ac845a6464645858d8ad5bb7aaaaaaaaaaaa366cd8a052a90c2c7ff7dd77c3c3c36fdd
+bab574e9d2a6a626e84384909393d3c18307131313e7ce9d0b720d3001c6f1570b0909b971e306f42630428a8a8a465e1fc6fc79e38d370cd702b262f87cbe9797576b6b6b6b6b2bb6b101a3475959d9e4c993f167ecbb5655552593c9a2a2a2e8743a2eb87ef8f0e18e8e8e1b376ebc74b9afafaf9f9f5f777737742c263939393c3c1c971005000bd06a376edcb0c4782bc0acd8b56b574646467070b0d5179eb3ac6c054627
+2424a4b5b5b5b6b616b4da68a31b5bd0d2d28210dab265cb962d5bc8859d9d9d8697c3480d849f9f1ffe50535313141404c1ecc0280173a080b9f0c1071f0885c2bababad3a74f436f5831b367cf46085554544057981e1f1f1f84d08e1d3b1a294c9d3ad5f072f02f7c29128964d6ac5930470c805603ac1c0e87832b844280957583f31edbec2cf0d81216164610844422c159dc962c59121111d1d7d73798e5656565f5f5f5
+d0877a494f4fdfbc79734c4ccc891327a03700d06a803593949424140a3b3b3b0f1e3c08bd015a0d303a0281a0acacacaaaa6af2e4c921212164625b03cb0f1f3e7cf1e2c5c99327575757070404401f0ec4b265cb0a0a0afafafaa02b00a3639cba05169a1f1c30434e9f3e2d168b8542a115570b369c9fda1678fdf5d71b1a1aae5fbf3eaab5c56cb96e813963b9750b86845c2e07f735c058cf05b0ab01e6c5a2458b3c3d3d
+3b3b3b251209f486b502a635c0ba696b6b0b0a0aaaa9a981ae008c026835c0ec484a4a4208e5e7e74357582b3366cc4008fdf0c30fd0158055e2e9e979f0e041b158fcd5575f416f00a0d5002b24212181c3e19c3e7dbab3b3137ac32a9933670e4208aa8a01564c7878f8f9f3e70b0a0a20381400ad06582142a1302a2a4a2e97171414406f582521212138236e434303f40660ad787a7a9e3f7f9eccc10600a0d500ab024f83
+8256b362c0b406d814999999172f5e847e0040ab01d64354541487c3a9a9a979f2e409f48655326fde3c84d07ffff77f435700b6c0ac59b3929292c07d0d00ad06581541414108a1baba3ae80aab64fefcf908a1cb972f43de63c016080f0fafacac2c2828d8bc7933f406005a0db0069a9a9a8442214228272767c99225900ddcfae0f3f973e6cc91cbe5300d0ad80842a1b0b8b8f8830f3e80ae0040ab01964d4d4dcdf8f1e3
+a74d9b86ab829e3e7d5a2291d4d4d42c5ab4083ac7cac08541cf9c39035d01d8081c0ec7d3d313212497cb218524005a0db0544243437155502a8b162d820ce0d6079e0605bb1a60837475756ddcb811e64301d06a80a5929a9a1a1c1c4c5d22168ba15bac8f993367bab9b9b5b6b6420103c0d6f0f4f4bc74e9d28f3ffe181313031154006835c0f2e070385f7df51569487372729a356b16748b55121b1b8be88b7eb8000020
+004944415410fafbdfff0e5d01d81a4e4e4ec5c5c570730340ab01964a707030393b0013a056ccaa55ab1042c78e1d83ae006c93f4f4742727278410044403a0d500cb232d2d2d343414c104a8553373e64c2f2faf070f1e80d71a60e3a4a6a6a6a6a682620340ab0116464e4e8ea7a767787838748515131f1f8f103a7efc387405603e68341ab55aad56ab55a6e28b2fbee8eeee5eb870e19d3b775426077f598d4603436f9e
+304c70c5e3e1878bc028d06834fc3ffe60dd03f1eaabaf9e387142a552d9c200d92cab56adcacaca3a76ec584e4e0e4c76036622d4542ad5aa5505b76f4b4d7be41952a9e257bf4a1689968fc5fdd6f9f0e165743a1dee5d36a7d5c6ee8ab76686f18bb2f08128b7fa01b265264d9a141212525b5b7becd8b1d5ab57438700e620d4140ac5eddbd2a2a258931f3f76acbe786c6c9142a14008c1bdcbb6b4da585ff156cb507f51
+301070cb3373de7efbeddadadae3c78f835623a1d16804418f8d2d32c1b1a4d24a81c074d1880461d6bf0b7cc3ecededb5c1abaeb7b7d7dededecece0e6e5c36a7d56cf38a37ab5f140c04dcf2cc9cd5ab57a7a7a79796963e78f0c0cdcd0d3ac4cece8e4ea77ff1c554a9542a93c946d50de0bbefbebb7dfbcc679f2d33c1f7a2d3e904410804023a9d6e6767beded26ab5da367dfce5723997cb851fa06d69355bbee2cded17
+050301b73c73c6cdcd2d3636b6a8a868cf9e3d99999936de1bd8d991cd66f3783c954a4510c4e869b5fcfc7c5cccadb7b7d7c3c3c3045a8dc562f1783c369b6db63e9d38aa40a954dae0b5a7542a21c2c0e6b49a2d5ff166f58b8281805b9ef9b36ad5aaa2a2a243870e7dfae9a7361e6140a3d1180c0641107c3e9fc3e1e06b699484dad1a347f1e7e7cf9fbbbbbb8ff657b3b3b36330181c0e872008068361b656677ccfb4c1
+6b0fee5ab6a8d56cf98a37b75f140c04dcf2cc9cd8d8581c6170e8d0a1b56bd7da786fd0e974369b4da7d3b95cee285d4bdf7df7ddae5dbbc83f1f3e7ce8eaea6a02198ae51a83c1a0d3e970d9038059683500008041f2e1871f2626261e3870c0c6b51ab6366135c36432d128e4d9292929d9b4691375495353138fc733cd57c37e9c90d70600ac47ab151717a7a5a51968909f9f3f75ead4819a454646666767932f7086f796
+989848d635c248a5d2c8c848994c66a08d16e426f8c4a8ab6432594242c2bd7bf70a0b0b4de01a62231d3ec2131ee82875757562b118877322844422516969299bcd865bc6e8111f1f9f9e9e5e5b5b5b545484eb84dab25ca3d1681a8d66341cf0dbdadafef0873f682dbc7dfb36d685a6d4a300000c122baf5b5056563673e6ccfbf7ef0f63dbf5ebd787858551750342282f2f2f3434d4c00e0502c1e1c387994ce6a64d9bfa
+fafaa8ab366dda545f5fbf7fff7eb3156a96d8e1464726932d59b264f9f2e5a4504308b5b7b7070707171414c02d63f4e070389f7cf2098252eeffaed88ccec489136fdebc595959896bb8619a9b9b6926040617008684b9dbd5626262626262c887684242825028a45a6e742d285a8f7f8944f2edb7df52ad26bacdf4ea068944a2db182f5fb972a5012b4b7070f0fbefbf9f9d9dbd7bf76ef2b8c5c5c51289243131f1a58786
+0e1f52878ff08475c1925acb9086cd725959593366ccb062a93de660d35a5151516d6d6d48480874c8e8111c1c8c5f26b3b2b210420505054d4d4d7e7e7ed03300608658b95d6de7ce9d01010177efde1d52d07b5d5d5d4545854824aaababd37ab4efdbb76fc3860dededed376fde34b087356bd6040404e4e5e55dbd7a15eff0934f3e898c8cfcf8e38fa1c347a3c38d0596d49191911289842a0d63626276eddad5d3d3f3ed
+b7dfc25d63f4707373c3ce6a070e1c80de1855dadadaeaeaea381c4e5252d2071f7c70fefc79106a00005a6d6c2008c2ddddbda1a16148192b2a2a2a140ac5ce9d3bf51a721212125e7bedb5c0c040c3c7fdfaebaf0982d8b469d3e3c78f3332320882d8ba75abd5873e8d55871b8b929212474747bd23151919f997bffcc5b0f31c30723ef9e4130e8773e8d0a1868606e88dd1e3dcb97308a1a8a828a8c10a00a0d5c618994c
+d6d1d13169d224068331f84dcacbcb232323079a82110804c5c5c52f7533170804dbb76f6f6f6f9f316386d5bba99943871bebe4a74d9ba637d1144110cb972f875bc668834d6b72b93c3d3d1d7a63f4282e2e460891fe0300009833569eb303fb1e25242450cd2462b158b7a5a3a3230ecf94c9642d2d2dd3a74f1fb90d2c2626a6a4a4c422dcd4aca3c35f8af99c0960804f3ef964fffefde0b5367ac8e5f2caca4a84505454
+14f40600805633297a9fc4229168d1a24523dcb36e2e09ade4147ac16e5808a1828282152b56589f5dcddc3a1cb00eb069edcb2fbfdcb66d5b6161217488d191482472b93c3434542814426f000068b531466f762ec3c1800441f8f8f860eff8972a03adac5d3b76ec58ba7429fe2c93c9b09bda071f7cb067cf1ec3a1a3d0e123eff0c160c433014615d2b406b9d646033c010a46350000ad36060c2623c34bc1def1d5d5d51d
+1d1da4254c2010d4d6d692222c2121e1a5fbc1b381584ca8542aad141ed0e146eff091a3f74ca8ac5fbfbebabada9c53195b0d6e6e6e999999a9a9a9dbb66d03ad6674707e1c70560300d06a16ccfbefbf5f5151b17dfbf6974eba51937b69bdb6e2d40ff831b366cd9af2f2f2bcbcbce8e8681b715c3371879be04cf08c767878b8094a5c0308a1b56bd7fef5af7f85320646a7a6a6a6b3b3d3d3d3333838187a637890f920a9
+242626bef7de7b5ace1ba43bac562914ea2aa4532845afcbc740075db870a1813d53e722a0fe8ae562075da04b7070f0ecd9b3cbcaca264f9e8c13a4511fd8a1a1a1f5f5f50636974aa55bb76ea5a67e200822232383c964ae5dbbd69429f86da4c347e34cb4aa2fecddbb17573258b3660d4c8f9a06b28c417a7aba5c2e870e31167802343a3a1aba62d8ecdbb7afb1b1b1b6b6362020203232f2d6ad5b8d8d8de4b409b9a4aa
+aa4aa150c4c5c5913793c4c4c4c617d4d4d490726af9f2e5dbb66dc3cbbffbeebb8b172f6ed8b0412b4ba5e183eaddf3debd7bd3d2d2f2f3f3f186cececeb366cd82679025628b7635bd1ef15aef1cfbf6edc32f3103b9cf7ff9e5977a9fd932996ccd9a3532992c3737973a53461633188cf5083a7cf01d6ef433d9b973674242427d7dfddcb973b59aedd8b103cca2a664eddab5070e1c686868d8b66d5b666626748851387d
+fa3482095093201008929393b3b3b33b3b3b072ab78adfedc94918fcb0304aea6fa9549a9b9b4b66212008e2e4c9933028160ad8d50cbd39e13718ad877a5d5d5d7979f94066e4afbffebabebe5e6f920e5ccca0acacaca8a808bad7581d6e74f01d6dd7ae5dbaa731a4380660e470389c9c9c1c84d0975f7e49fa2f0223a1adadada9a9c9c9c969d6ac59d01be6405555954c268b8a8a32fa0b3cde331850ad034bb2ab19782d
+18a41bd350bd9d86f12292929292929262acbd41879bf88487dd1e1825e6cc99b37af5ea43870ead5bb7aeaaaa0a3a648460a35a747434942b3001d8b22512890203031b1b1b1142797979797979782d764a6b696941087979798df05803ed1900ad06000030ea6466669696965ebe7c79fffefdb85a28306cb0b39aeefc3e6044b0eb2dfeece8e8f8cd37df90d3027ab31a91e09877ec9e4b8d0f180c86f70c583a30070a0080
+59e3e6e6b67bf76e84507a7afa83070fa04386cd93274f6a6a6a104223cf560d188074fca7baf90f848f8f0f42a8b5b515bd9819686c6c344aea3bbc6700b41a00008029888f8f9f3f7ffee3c78f535353a13786cdb973e7e472797878b8939313f486991016164610844422d18afac4d4d5d5050606fafbfbaf5bb74e6f8397eef9dcb973d0c9a0d50000004c414e4e0e87c33976ec58696929f4c6f0387ffe3c820950334320
+106cdfbebdacacecf3cf3fc74bf6eedd4be651c331a18d8d8d393939430d3ec051a87979793811924c265bb26449686828e4ecb044c05f0d00000bc0cbcbebd34f3f4d4f4f4f4c4cbc7efdba9b9b1bf4c950c1810530013a86502300d08bd22f313131616161919191d455fbf7ef1f527d14bd7b4e4949f1f1f12173158944a2caca4ac8850b5a0d000060b4d8bc79f39933672e5cb8f0ce3bef94979743870c898b172f3e79f2
+c4d3d3d3cfcf0f7ac328e8069e538be36961386b9a810d5f7a50c37b869076eb00e6400100b0188e1e3deae6e676e1c2858c8c0ce88d21812340c1a80600a0d500000046113737b7a3478f2284b66ddb76e1c205e890c103e50a0000b49aa95f10fd298caab324f6c71c460c8e0dbeb5c3a0002660ce9c399f7efa2942e89d77de81141e83a4a9a9a9adadcdc9c9293434147a030040ab8d3aebd7af4f4b4ba32ee9e9e9993b77
+6e5656160c270c0a600b646464cc9933e7c18307efbcf30ef4c66020a30aa05c0100582216165b505c5c2c914870010d3280b9aeae4e2c16e7e5e54547471bbdb436d4bb854101cc90a3478f4e9932e5c2850be9e9e96352d65da3d168341afcc1fcbb0be780888c8cb41453348d46c3ffe30f00005acd92686969717474dcba752b35d34c7070707e7ebe582c6e6d6d35ba2c0060500033043bae2d58b0202b2b6be2c48926ae
+3da5d168542ad5aa5505b76f4b2da4c316bff28adf5fff7a6fe7cebf59ca10bffaaaf3e1c3cbe874baa5cb35a9541a19192993c9a80b714e8d61ef1357a3eaeeee2e2d2d851c1ca0d5cc919e9e9ecece4eadc433ba41cbd4c26a08a11d3b762c5dba94ba6afaf4e93c1e2f3b3b1b2f148944d48b1eb7110a859f7ffef9bbefbe2b140a49a311f587a7b595e1e35a31302880e9993367ced1a347e3e2e2d6ad5be7e5e5357ffe7c
+530a35854271fbb6b4a82816066294888d2d52281408212b906be8453df5a1e6b305008c85f9abcd9e3d9bc9648ac5627f7f7f03be50757575a1a1a1e4b31921b465cb16adf6d5d5d5070e1cc03fa175ebd6b5b7b7538545737373535353545494d64fabaeaeee57bffa15f986d4dede3e7ffefcbebebec11fd7fa804101c6ee711e8b4b85c6c5c55dbe7cd9945aadb7b717fa7fb4e9eded55a9541631cb0c00a0d5fecd54939f
+9fcf6432114279797964d421f5d12b93c9323232140ac58e1d3b1a5f1015154596dac0d4d7d76fdbb60dd7ee78f7dd77b5eaa61d3870802088193366689985b4f6bc61c306524f0cf2b8d6070c0a30866cdcb871e3c68d72b97cc18205b800b60950abd572b91c3a7fb491cbe56ab5da8abfa0542a0d0909c1374c6a60fb40cbc9f2a0f0b6095acd029401ae8f161515452ecccbcb23934460eb4b626222759e6be7ce9d010101
+d407bf482422d3420a0482b7de7aebcc9933d81823954a2f5dba346dda347777772d59d0d2d242dd734a4a4a636323763b18e471ad55aec1a00063c5eeddbb6363631f3f7e1c1111f1f8f1e3d13e9c46a351abd54aa5127a7eb4512a956ab5da5aed6ad873232c2cecd6ad5b5555555555551b366c50a9540696bffbeebbe1e1e1b76edd5aba74695353135c21b68305d798dab76f1ff58aefe9e9f9f6db6f376fde4c0a056a71
+348c5028245f50264d9ac460fcefd75fb870a14422b979f3e6d4a953abaaaa6432d99a356bb4e6daeedfbfaf542a7d7d7d0d9c9581e3da82a7020c0a30261c3d7a342222e2f2e5cb111111e5e5e57c3edf04726d489b1417176be5b521d172a01ca865626222f95332b0674747c7c2c24203a5240d9c0906bbbdaf5fbf5e2291e87a7f228a03a8aeeb270e00c77e66489ff3e890b026a15656563679f264fc19fbaee17b1a76ea
+c075d60f1f3edcd1d171e3c68d972ef7f5f5f5f3f3ebeeee86dfbe8d606176b5bababa5dbb76692d140804555555010101a40d66201a1a1a067a1b0e0b0b2367dc4a4a4a4422516060a0b14edbc071ad00181460cce17038df7fff7d4848486d6ded9429534c36196a1406e940493554938c766a432d9f510c36576b2dc419aa972f5f4e0a35bc797070704141015ca2919191b76eddc26e18393939743abda5a5058f3e9eebcc
+cecec6415a86977b79794167da20966457c316606767e7f5ebd7bff445cd40ac9f56ec34a92d9293934f9e3cf9eebbef5eba74293e3e5ef7101e1e1e0c06a3b9b97978c7b54a6050003381cfe7979797474444d4d6d64644447cfffdf7667892ba991ab005baa0a060c58a155463986e4b6ce85ab9722569a91a5e6a436a316f32b65a6f88a2a3a3a38b8bcbb973e7b4f6535151e1e7e7a725d7366dda545f5faf6548c336bcac
+acac1933661830f5d9263e3e3e7aef4eb81ac740cb210b926d62497635ecc0d4dede3e6bd62ceacb2569909f376f1e9bcdc6c6e12d5bb6509dc7710524c3ef9ab367cf7ef8f0e1fefdfb6532597474b46e0382207c7c7ca86ee9d8d313ef76d8c7b568605000b3926b555555f3e7cf6f6d6d0d0b0bb3945fd0f6eddbb1e1c470cb7dfbf6454545b5b7b7e32204c8606a4326933972e3a2bdbd7d6464a496695c2693959797cf9b
+378feaae40aa468944427da18a8989d9b56b17f68580eb530b3c6f209148542a15b64a464444f4f5f50d667959591935b61db07a2ccc5f6de7ce9d5801cc9d3b576b556464e4c71f7f8c1fde19191962b1582c166bbd23ae58b1c2c0cef173fdf8f1e39191912121217a6581ee9ec9dd0efbb8960e0c0a603e70389cc2c2c2c4c4c463c78e21842e5ebc181e1e6e35dfeecf7ffef3a54b97a856e441a6361c3673e6cc292a2a7a
+f8f0217988e6e6e6cecece993367e6e4e490cd4a4a4a7455237913f8cb5ffeb27cf972b83875657a595959646424f663234d926c367ba0e5870f1f168bc593274f8e8f8f0f0808007f35dbc1c2fcd57071215defa8fcfc7cec0140deaa6a6a6a020202a8f78bcb972f1b36c213041111118110d2cde045bd09fef39fff240802ff2912892a2b2bc9dd0eefb8960e0c0a606e72ede8d1a3ab57af46082d5dbaf4c48913e67cb675
+75759f7cf289a3a3a350281ccc6fcdc7c7e7eeddbb381c6790a90d4782afafaf5028fce1871fc825151515c1c1c1d4706c994cd6d1d1a11ba34d9eb38d0b358140505b5b4bbd196aadc24e6ce5e5e5a44972a0e564c4fdb66ddb4e9e3c495d0558371619074af5b7302c2086ba2a2525252525c57063fc2b1ac671ad1b1814c0acc8cbcb3b74e8905c2e4f4a4aba74e9526666a639942dd7b2ef926cdbb66d302f0f0441b8bbbb
+dfba754ba954d2e974b2929b42a1a0063b0f14313abc37b18888088944121b1b4ba7d3f104e8f4e9d3a913a0386fcef4e9d321aa1a0046093be8020000ac95fcfc7c2727a7dcdcdc989898b6b636b33dc961c7bebc34b5e1c8f1f1f1b972e54a4747077a1101aad773140000d06a0000004366d1a245e7cf9fc7f3e06fbdf516e9953f86b20c4f6cd5d6d6e279f91d3b760c3eac0fcf366aa521c4ecdbb70fefb9aaaa8a2008d2
+9d1f47d2900c237d4658589842a1c0d3a0151515aeaeae5aa973b46666010000ad0600003004fcfcfc2412494242c293274fc462714646863994872208e2c891230101015bb66c19bc7ec266ad891327e2d9c611a6361c2438d61b871f363434e0c86eadefe2eeee4edade7459bf7ebd11ed7c00005a0d0000c0dae07038393939bb77efe67038bb76ed9a356b9644223107b9f6f5d75f130491959535481d73e0c001854281a7
+20716ac353a74e1916643131318d148637d9ba70e1c22b57aedcbc79f3d2a54b7a2740df7fff7d994cb67dfb765dd35a5d5d5d4545c540910700008056030000f817c9c9c91289243434b4a9a969c992254b962c19730f3632b99a5e95a305ce854b26af19646a43a39c279e062d2828707676d65b3b24383878f6ecd96565653367cea49eccdebd7b712503ddea7000000c1e067401000036427070f0f9f3e773737333323224
+12c9b469d3525353535353c73044342626a6a4a4442291141515518d5e7a2346b572980d26b5a1b134e55b6fbd75fcf8f1c4c4c481f49f819319924f1e0000ba805d4d3f9a7f073a0400ac86e4e4e49b376f262727cbe5f2cccccc69d3a6e5e6e63e79f264accee7cf7ffef360664277ecd8515353434ded31c8d4864661d2a44908210311a07a4f462412d5d5d541853700182134a308111a8dd6d3d3a3b510d7c778f4e8d1ea
+d5676532cb8a0fd220a4d1681087c3ecebc375886994ffc71882a01f3af46b171717822006733bb6d881a05e99340bba7a5e3a408e8e8ef002608abb9bbefb12959a9a9acd9b37d7d4d42084381c4e4242c2ba75ebfcfcfc749b5dbc78912c918e7f500f1f3e8c8f2f2d2a8a857e1e2562638b8e1d9befeaea3ac81b9db1b0d9f11dab0e0706f35c18dd39503b3b3b3a9dfec51753a552a94c2633ff886edc536ab5fae2c5de1b
+37e4ab5605fee31fb7c78d53cf99c325083a8d46a3d1c65234d0e97482200402019d4eb7b3b3b3ee81d06834d5d5b2de5ecd9c395cdced63dbf9a33a40c098101a1a7afefc798944f2d5575f492492dcdcdcdcdcdcf0f0f0c4c4c4458b169113a34d4d4d191919c5c5c5393939ba4a0e000060b41945ad86950d9bcde6f1782a958a2008339708581f7474f416153d7276e6e5e4fc8acf6747467a1e3bd670e8d09d254bc64f9a
+e4801fc063251ae8743a8bc5e2f1786c367bf0c2d1b20602cb65954a75fefc2fadad343e9f535c2c7bfb6d37369b61fe726d7803048c2d5151515151516d6d6d5f7df5d59123472e5ebc78f1e245ace4c2c3c3a74d9b86eb6fd6d4d4cc9a356bf3e6cd1f7ef821741a0000d6a3d5180c0641107c3e9fc3e128954ab55a6dce2a4dad569f3ad55a56d6b972e5e4b97327e2552c16fddd770382825cf7ecb9dad565171bebc5e130
+c7ea316c6767c76030381c0e41100c0663f05acdb20642a552fdfdef4d77ef2ab66f0f6732edf6efbf71fcf8c3949400826099b9001ade0001e680a7a7675656564646464141c1c183076b5e406d2397cb3332324e9f3ebd6bd72e272727e83400002c5eab6133039bcda6d3e95c2e57ad569ba78f0e56698f1e3dcfccaca2d1685f7e19c9e76b073a4d99327edfbea883076ffee94fb51f7e3875f264573a9d6efa27318d46c3
+6a80c1600cc99fc0520642a3d12895caddbb6b9e3ed56cdf1ecee3311142bffbdd9b7bf75effe28bfa6ddb6639391176767666ab81863d40809980bdd61212121042172f5eacacacaca9a9a9acaca4a6cfbd72e54a7474f4dab56b1112418f010060d95a0d3f50f1438bc964a217d35b6628d4ce9e6ddeb3a79ac9b49b3fdfbbb1513a63869e9c8d376f3e727525eedf67fdfef7152b57062525bd697ab9860f87c5ca90e6402d
+652064b2fe1d3b2afbfb559b374f67b1fe57eba4a44c3978f0e6d6ad17bffc72be39cbb5e10d10609e8487878787872384a64d9bd6d4d4442e7772729a3f7fbebfbfffd9b34fa1970000b06cad865e784a69341ab3f5b356abd50a85e2e9d3be850bbdfafafaa452e9b1630d7a637f32337f888e76f5f5e5060509f01c22f61f1f93e7f1500f6ae60381855a5f9ff20f7f286332edb4841a262929f0f8f1c60d1bbeffecb3684f
+4f81395bd7902584410083a7b3b3137f58b468d192254b162e5ca856ab1f3e7cb8776f29740e000016afd5ccfcb945baa945477b3e7efcf8f1e3c74f9f3e3d7bb66ba0f6bffa952386cfe7e39944cbb29d98e7a96223df9327b2b4b4ef274cb04f49993250cbb7dff647086ddc58ba67cf024f4f0118ae0013f0e4c9133f3f3fb158bc68d122a150885ee474809e0100c0aab49a4588180683c162b1f014e140b0582cdc06d231
+1857ab2995ca3ffef17c43c32f2c16fd8f7ffc7fa1a1c2c58b5fd56a76ead44f35359d08a167cffa3ffcf0fbefbe7b1b0f16c83560547172723a7ffe3cf4030000a0d5c60c9c788c20086c2433ecc8852d6a5c2e1747f98162338a50c3819f494981d1d16e4f9f3efde9a7ee9a9a4e5dad5653d32912297d7cf8f3e7bbb9b909944a259d4e07ff7dc0ea292e2e26d3f0ea253f3f1f2a388dc60b3c41d063638b6ce72be31ca230
+f4a0d5ccf1d78810c2b915b0f3597f7fbf81f65c2ed7c1c181cbe53299cc317456b33eb9a656ab45221e8fa77cf2842693c97efe59a1b7e58409849f1f9e837634db68560000ace31d7eac9287937736933d5f20893768350b906b7676765875b1d96cc373a04c2693cd66b3582c1c010a42cd884340a6eae5709e20a45fabb1d96c0707077b7b7b9c7f04fa1fb005626262626262f067994c96909020140ab3b3b3c1a83c7a77
+a4b14a1e8e555a4d4df79327aab973c799ec290349bc41ab59c62f13bf48610cbf6c0da61930d4db224ed58b0782c3f90521fda9100882707272e2f1781c0e07bc06010018a59bd298240fc70e210f1e3c2b2969b6b76705060adf78c3c534b33790c41bb41a00bcfcce481ac9944aa501d32693c9c477132cd4e0fd0f00903e631b75497f7f3ffefcde7befad5cb952a150208476ecd8b174e952ad3dd4d7d7e33fa96bf1aae9
+d3a7f378bcecec6c4747c7c2c2420f0f0febee52d3270fc7ae200a85e22f7fb9feeebb011e1e0e3b77d664677bf2f95c13cc2140126fd06a00f0f2db0469da347c5722dd0ac1b4090043a2acacacacac8cfc73cb962d08212cc8eaeaeac46231d670e4dae6e6e6cd9b37934baaabab7136e069d3a6b9bbbb5bfd1d09993c79b85aad562a95df7e7bd3c1813d7fbe3742282acaebc081ba3ffe7136768f36c1578624dea0d50060
+508acdf06d62306d0000d04b626222965f7bf7eecdcecec605e965325946468642a1a0dad2d6af5f9f9797171d1d4d8697d6d7d76b99e26ce17664b2e4e1386f5153d3a3d2d23bbb7747e085bffdaddfe6cd17bfffbe393636d0642eff706b355bc03801000060e58844a2d4d454fc392121812088bb77efaa54aae6e6e6a6a6a6c4c444aa0edbb973674040c0b973e7a89b2f5ab4c8965f20470facd57a7bfbb66faf4c4a0a24
+ab51b358f4949429070fdee8ececc1863dd39c0c609e805d0d0000c0ca9934691283f1afbb3d41103e3e3ed4b57979797979795a9b08854232fe91ba39605cb0512d27a79ac7633a3b73a8abfafb554141ae7ffa53c5debd319022cac601bb1a000000a04d43438352a9847e186da1863dd5944a258da6debebdeae6cd47785563a33423e35257d7534747a642a150a9549051d2968157250000002b9156641c684b4b0bae5e3a
+180cf8a241e55313c835a552b972a57f5757d7975f3690cb150ab548c459b7cedbd5d515841a007635c07a3871e284a341aaaaaa5eda0c87c851b97af5aa8b8b0bd960f2e4c972b91c7a1b301308827077776f6f6f3f7dfa3456576bd6ac19a4c6f2f5f5f5f3f3dbb265cbd5ab57c985c5c5c5fefefe595959d0b7a601a7ccd08d82c799de20e119005a0d000c2193c9c2c3c3232222a8c5c7eedfbf3f7efcf86fbef906fa0730
+13162e5c8810dab2658bbfbf7f48a9297908000020004944415448088fc7f3f3f31ba4cecbc8c860329962b1d8ff056969698e8e8e2b56ac808e35c533d8ce8ecc1ca9abd5b85c2e87c3c1c572a0af40ab018035b06cd9b29e17747676bef1c61b0b162c904aa5e4c2b0b030b2f19933677af4b163c70eb24d7272f28d1b373c3c3cbababac806070f1e44086dddbaf5eeddbbd0e78039101313b361c306fc393232322727c770
+b93c2ac1c1c1353535010101e492c8c8c8cb972f5b7dc25b7380b4a8b1d96cbd5a8d20085c4b00620b6c1cf0570300fd9c3871e2f4e9d30b162c3872e40835086ed9b26508a1a4a4a403070e50851d008c3604419c3c7952efaa949494949414f24fb299ee2683593298558011e59adeb94e1a8dc6643241a801a0d50060404e9e3cc9e7f33ffbec33dd6c053131317bf7ee5db56a15f412000023976b03a53783cc670006e640
+01400f3299ecdebd7b61616113264cd06b6c00a1060000009806b0ab0136cabc79f37417f2f9fc8b172f4e9c38f1f9f3e7cdcdcde1e1e1900214000000185bc0ae06000000000060be80cd00187b70f26e92819a51db8cdcd9f6cc9933d4b0502d783c9eafafef4f3ffda4542ac1b4060000008056036c5aa8a954aaf5eb4fd5d63ec04b66ce14e9361b3f9e9b95559b95558b1012088853a756e8a68e34220441bcf2ca2b9595
+953ffffcf3c48913751b88c5e2caca4a3c610a836883d0683482a0c7c61641578cda6f900e3ef500005a0d300ba1a656ab150ac57bef856cd9529e9c1c141eae3fabd3860d211b3684dcb9f3e40f7fa85cbd3a48a150e058f7d1bb9b7ff4d14767cf9efdfdef7faf95b3032174f5ead5b367cfce9d3b576fe40160f5e09c585f7c31552a95ca6432b2c6396014e8743a41100281804ea7dbd981a30e0080567ba1184806d90c5e
+f88c855aad56a954eeeeecd4d4c0acacebfdfdaab973f55baa6ede7cf4f9e7d5efbde7ffd65b42854281d30e8dde894d9d3af5d7bffef5e9d3a77d7c7ca8f6b3cccccccccc4c84d0c68d1b617ad406c13914d86c368fc753a9540441805633ba5663b1583c1e8fcd6643c60a0000adf62ff9555171a7b1f1a152a9eceded35d0f8c489db04f13393c9f4f6164447bf063711633df9f04088449c8d1b7d0e1ca8572a35f3e67969
+35bb7ebdebb3cf7e108b27bcfebaa351ca18eb8d0345087978785cbb768dc3e120847273737ffdeb5fdfb87123282848abd9be7dfb0cb8bb01d67dc532180c8220f87c3e87c3512a95069c2c81618073c3e2b24b500d130040abfdcb59eac28596d2d2dbe1e11e1326d8272707e96d999c1cf4fcb9e2d1a3e7a5a5774242dc2223bd718136b88f8cfcc947965871777758bdda2d2faffef1e3beb7dff6a70ab55dbbaa57ad124e
+9a24e070386c369bc9649a60728420888b172f9e387122292949af98036c137cc5d2e9742e97ab56ab8df2f20050ef09642a7fa8830900b6aed5b0514da9546edc38edd55779478e347879392e5efcaadec68b17bf7afd7ad7e79f57c7c5bdf67fffef9b4aa5128b0cb886467e536632995c2e57a552a9d56a4f4ff5dab5b443875a104258ae9595b5fded6fb5ab5609fdfc5c9c9c9c1c1d1db95cee4bebae6099a577d5b265cb
+709da84132d4f680d55fb408212c2370d94dd06aa3d1c3f8070ed3170080c0ae867ddbfbfbfbc3c25c5f79c52e27a7b1a6a673f3e6e97c3e9bdaecf973455e5efd8f3f3e58b7eeb5e060f7fefe7e369b0dbe4ac6ba2fe3679ebdbd3db964f56a9497f75377b7dccfcff99b6f7e5cbb56e4e929707676767676767070c0260db883036378d1d268348d46039eef26106d0000d8badac0761d1c6de4e4c45ab7cef3ecd98edffd4e
+b26a5520e9e17efd7ad7eedd35c1c1dcf5eb5f1108ec716328a66bdc51c0c2d7c1c1817c937eff7d7a7efe831f7eb8bf7ab51b166a7c3e9f146af08c04404900566638d0bb10acb6c0986935f2fa1bf3ab50ad56d36834269349108442a150281473e78e7fedb5c78585b72e5d6a5fbbf68db367ef9696de8e89710a0c747674b4e7f1780441e0e8246c93836bc8884f3e1cab4f66c44d4a626a341a1e8fe7e4e4e4e4e4c4e3f1
+b0a4c35e86a67f2ac3740c0000a3f1343c7fbea5b1f1c1a34772eaaa478fe4c78f377a79b9fc9fff1300d601d06a637069aa54aa55ab0a6edf969ac32f0521a4d1a8351a9546a350a9e46a759f5a2d53abfbefde1d7fed5a27423dcf9e751c3c48b7b3e3d0e91c3b3bb69d1d8b4663d068d8ae033f9ed1b871a9349a7eb5ba4fadee4708d168cc17dd4ea7d1ecc6aacf5f7dd5f9f0e16530f70a008091ef772ad5f7df374ba5b2
+e8686f6f6f27bccadbdb293adabbb1512a91dc5bb4681284b281561b03a1a650286edf961615c59acf0f066764edefefefeded7dfaf4e9b367cf7a7b7b954a259dee421001f6f6f60e0e0e5c2e978c4004138b09c642a1502084984c2693c964b15863fb66191b5b84cf07e41a0000c642ad562b95caf7de0b4a4d2d9f356b028fc7c4cb793ce6e2c5af9e3f7f3735f54d5ce90e42d940ab995aab194e63667ac868443a9d4ea7
+d3190c069bcde672b90a850287e573b95c8220582c16f6948247b509c682c160e0894ebb178c79b7f7f6f6dadbdbc305000080719f89cececc254b3cb2b36bfff4a7ff60b1fea5c9f2f2ea03031d7d7d1d700e3fd06ab6cc183868abd56ab95c6e9e12814ea773381c1e8fc7e7f3c78d1be7eaeaeae2e2c2e7f3ededed391cce4bf34400c61d0b6c51339f6e97cbe5e0a1080080d1ef78341a2d2ccc954eef2f2cbc8d175ebc78
+bfaeae63d12277485c02a031b1ab6193afd9fe60341a0d8bc56230182c160bd79282c0cf31190b647ece19f8ed16c2b20000301638eb2f4e061e17e7b6674f734888ab50c83b74e8c7dffe56e8e0c0c5cf23887c07ad666acc3c7c121b75b05d076b35f3d40d80e901a1060080d11f37b8649983838348245fbcf8697676edf8f1dc37dee04d9eec8afda4994c2698d640ab017a7e3f20ce0000b056cc276b12f0af27318381dd
+6f4243858d8dad0f1f3e898ff7b1b7b7270802d7c6801745133ffdcd4d008056030000b02da1664e599300849006218d5aad54abfb54aa5eb55a8e10faddef5ae874ae9d1d874663d26834c80f6532cc333d136835000000db126ae6963509c0e3d2d7d7f7fcf973994ca6d168b0998dc3e140991613639ee99940ab010000d8962630b7ac4900765c63b1580821fc3f8e6f03a1362698617a26d06a000000368479664d0270ce
+019c6e1dbdc82b096ed363825c2ee772b966754a36aad56432594242427d7dfd4b5b2626266edebc592a95464646ca6432bd6d1c1d1d0b0b0b3d3c3cc82586db0fb415497171715a5a9ad6c2fcfcfca953a70ee6dbd5d5d589c5625757d7d2d252369b0d3f3c000030e69c3509b41a061bd220c46d0c31c3f44c605c35023d3d3d73e7cecdcaca1af9ae8a8b8bfdfdfd75851a42482c16878686debf7f1f3a1c008011ca35e807
+b3556ca4450d84da58618651b7366a572308e2e4c993d425d812e6ecec6cc016251289f4aec566b0bcbc3c5f5fdfa54b97beb4fd40ecddbb373b3b5bef86d854d6d3d31317173790350e0000000000eb03ec6a4620262666c3860d08218944824b580e83bababa03070e208476ecd8515e5eaea5f08283836fdebc191515d5d3d3f3edb7df429fdb201a7d40b758dcf0e15776183e000040ab999ad9b3673399cc868686e13982
+c864b28c8c0c854291989848b5cc69f1fefbef3399cc82820223ce84d6d5d5050606fa5328282820d7eeddbbd7dfdf7fddba75ba1a14afa2cefcca64b2254b9690fb898888e8ebeba36e8267780b0a0af007ccd5ab5775b785d95eada7bb4aa552abd5972fb7e6e75fddbefddcca9547f2f3af427a4ccb1acaf2f29fd6ae2dcaccbc70e4c8f59a9a7b32593f1e5652bd41470100a0178803350b9a9b9b9b9a9a4422516a6aaa81
+66d8ba66c4e3ae5fbf5e2291682ddcb2658b4422c9cecea6d3e9090909b9b9b957ae5ce9e8e8a04ebcca64b2f2f2728450747434a9c3b4dcecdadbdb838383754322ae5ebdfa8f7ffc037f168944818181788617a7b4c16017c01d3b761850aed6f738a77ed068343ffffca4a5e597baba8efff99fced6d6eebb771fbff1865024e289443c6f6ffbdada9f972d0b623018743a1d7e41e63fb84aa5b2a1a16bdc38b648c4b97bf7
+978a8a3b0d0dbf383b733c3d9d020385bebee3bcbc9cbdbc9cb53ccac163090000d06a46a3a2a242a1504c9a3489c1600c7bf379f3e699326cb3b8b8180b35aa9cc23e73656565b5b5b553a74e1508046fbdf5964422f9e1871fa85a0d8bcbc8c8c89090108490542addba752b7a11364bddd5dab56bb51cec0a0a0a222323b116c44b0e1c38806d8a5adb6667672f5ab4c85a4359a9e20c7faeae6e6b69f9e5ce1d694343d7cd
+9b9d0201e1e1e1f0da6b4efff11fe3972ff7f1f07020b73d7ffe6e63e3131c580e81fde63fd06ab5babfbfbfafafcfd595983fdf9b5cd5d5d5fbf3cfcf1a1ba5a74efdcffdfb4fefddeb79e30de1c489fc8913f97e7e2e41416e2c169daade6c7ca0217e1f00ad060c1f322660cd9a35542307362c19be9be0cf0d0d0d08215f5f5f539e764949094268c78e1dd45bc99a356bcacbcbebebeb5b5b5bf1f2850b174a2412894412
+1b1b4b7e3b2c2ea3a2a2f09223478ec86432ea374208a5a4a42084b2b3b3bffdf65bea724747c7ad5bb792bb924aa5972e5d7274745cb16285ee69dcbc797390773a0b52660821954af5f0e1b396965fae5cb9ffd34f8feedc91debe2d25cd664b96f86cde3c95c532643053281472b99cc5628156338039043c62a35a5f5f9f42a1c0a9b348c68fe78e1fcf9d32653cb9e4e6cd47f7ef3fd535bcf9f9b94c9cc807c39b11c1c6
+7badbbd6b0df7bf506ef2384c462b101790700a0d58c8f61eda5257a46f53dd2289383fbf6ed1b4cb3b0b0308220a8d3a07802d4d1d171c68c19d43fa9620b337bf6ec03070edcbd7b57a55291e2ccdededed5d5956c4310848f8f4f7d7dfdca952bc9174add405d8b1667f8f3cd9b9d77ee48dbda9e04057d1c16b697c5a2bff28ae3ebaf3b0707f3172e7cc5dbdb6948fbbf76adf377bf2b81b4e606080afa78edda2233b918
+d46af58307cfa2a2bc0cb70c0c74090c7421ff240d6ffff8c72dd2f086274c274ee44f9d3a01fdbbc9cdbaa51bc4ef03a0d580e133d06f7ba8bff9b165205d484e8392e6b1b2b2b2fafafac8c848777777bc614b4b8b4c269b3b77aede3de3900b52ab69cd141304919c9c9c96964695c216e7a9a6eb6df6cb2fbdadadddd7aeb5b7b676b7b53df9e9a7ee4993c6797838b8bb73333262bdbd9d783ce6b00f171eee2114f2e0a7
+6798254b7ccced9486aac8f51adeeedc79525fdf71f66c734a4ab1a7a7d32baf38faf9b904060a274ee48b448e60781b243131312d2d2dd9d9d95a930643821abfaf7bcbc21ec6d82d586b7a010040ab995a938d9c499326492492e6e6e697be47ea8d061836064cf754de7ffffd8a8a8a3367cea4a6a6b2d96c3c794a4e801ae5a6f9ca2baf50c30bb66cd9b265cb162db736b3156754b3d9bd7b3d3ffef8e0f66d29369b4d9e
+2c78f34d97dffcc67ba80f69c3b05874aaf505b01db40c6ff7ef3ffdf9e76777ee3cc9cfafbd7fff6977b7fcf5d75d740d6fa0d8f4820dff5a2f93437abf1d64fc7e4545454141c18a152b8c655ad38dc7a28a456cead37bffc4aba833bf5a6fe9ba8f39fc98d8b1630787c3219f17d80f4f6b5b98ed05ad6613b70c520c99e6a05a420dff44d56ab5ae75cdd7d7d7cfcf0f7b8f797b7b5fba744924122d5ab488da6684bf5232
+c4957a566565659f7ffeb9f9bc8ce2992cec02459acdeede7d7cf7ee63aad96cf972df119acd006090787838787838cc98e18effecef573535751b30bc0985bc17d730a408192910bf0ff1fba0d56c0b520c9d3e7dda3457b94c26cbcdcd453a614a7a63a00882888888a8afaf3f77ee5c5050904c268b8f8f273525e970d6d9d939f237aa989898989818f2fdcfc4fad5804a4348535dfda0bdfd5e43c32f54b3d99429e3162f
+f632aed90c00860736b81a36bcf9fb0b264c20341aa456ab6ddce406f1fb10bf6f298057b25940104446460693c9dcb2650b3515ad163864d2585aada5a505bf1ee9be29eab6c7c97ecf9c3983e764c9d7327cf2d871edebafbfd64a998b73deea4da54b8293f1ea26cec547349301c229696fdd925ebfde71e346a750c80b0a729d3c591018e81214e40a420d305b3c3c1cb07a9b3c591014e4eae3c3fff1c787b76e49b95cba
+8de752361cbfef3f00d4ecdf6615bf1f101080106a6d6dc54b162e5c88744ae90c327e7fc3860dba05720619bf1f1010d0dede6e5c3b2280c0ae663e040707bffffefbd9d9d9d8554bcbdc45b53693019823a7bdbd7df7eedd5a6f457a5b9296bff6f6765d85871d32cacaca366cd840be7891d675c39e6de49e376edc486e4b3a8298f89d7560a1a64148b36489078fc753abd52d2d8fefddeb696f7f72f870fb8307328542ed
+eb3bcecfcfd9dd9debe1e1e0ef2f80eb191843eedc7982cd69b76e49efde7ddcdfaf7ae515dec4895c91883b6d9ac8c7c7bfb7b73725e5ff29954a2693a9d168acdbb406f1fb10bf0f5a0d18fe3d02fdbbe519bfd0cc9e3d1b6b32b1583c984d8677742c04939393b3b3b3f3f2f2f2f2f2c855919191fefefe3939395a810e64b4264248573f050707fff5af7f4d4b4b2b2b2b9b3c79b2d6091bbe3d619ba2582cd6ddf6a58e20
+a6d76cb8289048c41108d0ebaf7366cf76522814cf9ef5fffcb3ecdebd9f9b9b3552a9eade3db98f0fdfc3c34124e20506ba787838f0f9301d008c16cf9f2beedc79d2d828ede8e8bd7fff6943c32feeeeec71e3187c3e2d28881d15e5cae7b3994c2683c160b3d90c0643a954627f351baf6a05f1fb10bf0f5a0d1826d80b556ffa6ca3ff0c5252527c7c7ca88ea558c31517172384b45eaac81735994c469d0025898989898c
+8cd4ba6b0c3267777070704d4d8dd6b646c951692c68341a42342693c9e17068341a3648285e40104a6767dea4494a8c4aa57af0a0ffe1c3c76d6dbffcf0c3dd478f144aa5c6e886b7c646a942a1869f8c656194e85daad9acb5b5bbbf5fe5eece1e3f9e2610d04343997171ee743a9d4ea733180c2693497e6032992c168b4ea7633b318d46a7d3e9b6e0ac06f1fb10bf0f5acd7a100804b5b5b5c35b3bf2f6c6dd7cf06147a4
+23ff4b172284eedfbfaf542a49bf545d5e6a001f68cfc8bc8de72f1256d9b1582c1e8f87a78d140a059665589ff5f7f72b954a2cdd944aa59393f2b5d7540a8542a552a9542a994cd5d1d1d7de7ebfa949d3ddadbe774ffeeaabce3868747886b71f7ee8c8cebeeaeaca825fae01dadadacc2a7dc0e3c7caa54b5f5fbcf8d5216d458676b6b73ffff9e76775755deeee6c8180eee484264f66cd9eedece0c0b0b3b363e8c07c01
+fe934ea733994c1a8da65028341a0d8dc6c45a0dd2790c1b88dfb788f87dd06a806da1e5976a5360bb1a9d4e67b158d8b486fdb271fa0352b191ea4da15090ea0d2f1f3f5e1510f0af362b56ac58bbf69baeaee7eded8fababdb1e3eec572a357e7e2eafbfee3c6182bd8787c34b83159e3deb7fed3562f162671b318d0c8fe5cb533efef8b0399c09be542a2b9f3d7fae7869633272b3b9f9716b6b774f8fc2c3833d6e1c4d20
+a00704306262dcedececb0b50c2b30529931180c168b451567e4075cdf8246a369341ab95c2e93c968343ba84e3642207e5ff73ddcace2f741ab013687542acdcdcdd57d2db329c1666767871f93782209bd083b20451bfe806d695a8637fc27167008a1c993dd7c7dffd540a552f5f62adbdbe5adad1df5f5aa5f7e51b6b7cb5f7fddc5c3c3c1cd8df0f717e8cdd646a7d3f97c3e9ed58227ee4050bda1c756a829140a26b34f
+77adaed96cfc78b640401708908f0f6bfa7447676726d56c46156754b319157c95d26834acc6f0fff82251abd54aa512bf7bc0653342485fdb2d5bb6208406926b631bbf8f2d7f78a256377ebfbebefeebafbf0e0909a1be81632399e1a9cc812acde323c2b5015a0d3035544f8bfffccfffb4f157251a05f249acf53f29daa8d28d6a754308b9bbbb93b6378c50a80c0afad767b55addd626ebea7a72e78ef4d2a5d68e8e3e26
+d3cedb5b401ade10424c26d3c5c505cfc9c2437720442291396835a5522993c9d8ecc7c6329be11706f23329cea8ca4c6fb1291cf509178cb180f87db38ddf07ad06d816d87f160d22a2d366d51bf589a8d168703175aae14d4bbd21848442a1f2dfc1be6ea47ae3f395a4654ea552f5f428babafa5a5b3b6edd523f7aa4686f97fffad71e7c3edfc9c989c56241f97673b6ab61a3dab367cf9c9c8863c71acacaee60b399b737
+3334d441206061a5450a2fc36633724213438a33f4efb5a4408d8d440941fcbe15c5ef8356036c83949494949414e887214937aa190321a435678a5fb2d52fa01ade06926ecececa09139441414a954a45a3d1b85ceeb871e3b85c2e97cb05ad66f889620e5a8dc964aa54aa9818ef19331c7a7b7b552a959d9d1d19a4498a33168b45066f0ecf6c068c0910bf3f0c550a8056030033956ea47ac3c1a448c7f0a61baca0a5def0
+7c0a8bc5b2b7b7e77038e4b31cba5a2fe61007833dfad96c368fc7532a95044168341aaaf18c34a7912a0dcc668304e2f70d2f44361cbf0f5a0d008091aa37f2b9abd7f0468d57d0f57853abd5743a9dc3e170381c082cb08811c711c40e0e0e0c06035b46a9e1025459066633c0b8d872fc3e683500008c29dd908ee10d0de0f1863fe0c73fb6c7c053dcfc8718cf78dad9d9b1d96cd2bb9f2ace1098cd805100e2f741ab0100
+600af5a66b7823d742409f058d299ed924abf480d90c1855207e1fb49a71ee5c04418f8d2d8201002c0582181b0b163ccead46ae61c7351847c00440fc3e68b59182639abef862aa542a95c9642a950a86013067e8743a41100281c00abcf88f1d3bf6ce3bef186870f1e2c559b3660dd46cf1e2c5274f9e248d4386f7969696f6c5175f50973c7cf8d0dbdbfbf9f3e706da58bd62831f146002207e1fb49a115e2e7148944aa5
+220802b41a60fe5a0d570265b3d9363eed78ead4a9f1e3c75fbd7ad5dbdb7ba8dbc6c5c51515699bd277edda95979737bc1d02000080561b2dadc660300882e0f3f91c0e07a768876100cc19ec66c4e170088260301816add5e2e3e3e3e3e3f1e7dededef0f0f0091326504d6554b08d4d576f656767538d61bacd0c0835adc678f99c39731a1b1b391c0e5c6c00000063afd5b09582cd66d3e9742e978b83da60180073869a61
+c1c6e3de8f1c39121e1ededcdcac542af5ca3bbd545757979494787a7aea0ab2c2c2c28c8c8c6ddbb65db972e5a5820f000000b49a891e7b0821fccc6332998812d7060066abd510425a89af6c132e97ebe9e979eddab52169b5929292fefefe23478ee8b59cad5fbffebbefbe9b366d1a5c6900000066a1d510251e0a92ad039628da6c99dededeb6b6b637de7863f042adb7b7f7d4a9538b172f9e3973a6de06aeaeaed41a35
+000000c0d86b3578ec01808592909070eddab5f5ebd753b55a7878b86e4b6767671c31f0fcf9f3c6c6c63973e60c5ede0126b8fd42d62400d0cb58a5673253ad06008099a35784797a7a8ac5e211ee5937798756361060f480ac4900a017734ecf0477460000068bde746886e340793c9ebfbfff50c311805102b226018001ad66b6e9998c73ebe4f3f98e8e8e30d20030c8df8b459ce7609271bc141c8e50515171efde3d3289
+9aababebb367cff0679c3a04ae0a936935c89a04007a31e7f44cc6d16adddddd30cc0000e8253d3dbda4a4e4c30f3f84594e33311e40d62400d0fb2663b6e999e0be0900c0e8327dfaf4850b1716151531994c2d5b5d7575757878787f7fff840913a0a34cf334429035090006fe7598677a26d06a00008c88816630a9c96f0b0b0b71898281e215feebbffe0b4c6e267b2041d6240078a968332be0e608008029282c2cc4ae69
+d7ae5dd3abe7001b7f1a010030e00f160ce0000058ab1ce9e9e9817e0000c0fc71747434a0c7c0060e000000000060be805603000000000000ad0600000000000080561b557a7b7ba74e9d4a33c86f7ef31ba55279ecd831c30dc87d1a68893978f0a0ee99c4c5c56935abacac1cd27779f8f0a1bdbd3d750f1f7df4110c31000000008056b3754e9d3af5eaabafcae5f2e16d9e919141a3d18a8ab48b2e8787874f9c387190bb
+cdc8c8183f7e3cb51a234268d7ae5dc3d07c000000000080563317b85ceed5ab57352fe8eaeae2f1788b172f562814e4c27ffce31f649aa8dcdc5ccdbff3fcf9f337df7cb3adad6debd6add43debb624494a4aa26aac6ddbb62184d2d2d2a86d7ef8e107168bd5d6d6f6dbdffe966ab4d34b75757566662642e8e2c58bd49dc4c6c6228412121286ad23010000000000ad66f16aafb4b494c7e39d387162a892e8e1c3873b77ee
+c41a4bab7ef6f4e9d3bbbbbbdf7cf3cdcacaca7bf7ee19de4f4949497f7f7f6e6eae56a9c7c2c2c2d8d8d8b6b6b62b57aec048010000000068351b85c7e3f9fbfb0f63c37dfbf63d7ffe5c5763912af0e38f3f9e356bd62bafbc32ec732b2c2cd468345afbafaeae66b3d90339c66564644c9c38b1adad0d7bbf090482bffce52f7abddff0ec2d75f3a1eef9ce9d3b70fd00000000a0d580d1e5f9f3e78d8d8d6fbcf1c6902aea
+f4f6f69e3a75cad9d939222262a036f1f1f1d419d88158b870218bc54a4e4e1e4c30415c5cdc8c1933fafbfbc925e1e1e1ba1bbef7de7bd8fb6dd6ac59494949ba86436c14f4f4f49c366ddab0f73c12196a6568c95c530a591c61a3152263748e1d3b86fd2f71100cf5c218281c67b44f09000000b49a4df0f0e1436f6fefe7cf9fc7c6c65245557272b2dec70f192e80159e51f4caf4e9d3d3d3d3d18b600203cfb963c78e15
+1515797a7aca6432aabfddae5dbba836b0b6b6b6eaeaea969616ecae271289366ddaa435977afefcf9e7cf9f7ffae9a7b89ad0f0f60cf5220792b9dddddd3e3e3e662256b0419454ea5a7f0e92e3c78f2f5bb66c48b5a74e9d3a357efc7830be020060856880e1a237b60073f4e851037d4ed528836c39d0b13efdf453ad4db4c20e06026b23dd2352030e6263639d9d9db154d2fad6e451f00968c546e05807ea9968ed6ad87b
+0670088856efe10e1ffce88f047ce5e8bdecc933a45ee15a7f0efe1078e8b5ae0af227a3151943f60cb5259fcf873b3c000016019fcf37705704bb9aa9c9cdcdbd7bf7ae96c1602045a2dbd25850635ac9273d42283c3c1c5bb67a7b7bdbdadab0c1866aeac3c93e9a9b9ba9261c3f3f3feace030303030303c969d0870f1f9e3b778e340a8e64cf364e7575754949c9e2c58bbbbababcbdbda9b6521c5ca26598b4506edebcd9
+dede6e60ba5f2f478e1c79f3cd37a9d74f777737887b00002c82eeee6e03f737d06aa3bfe5772800000971494441542bcb0ce7e0183c38224137cc33232343d7b83254a64f9fded7d7479ab23efbec33a55289675d07dae4c68d1b06a6dbb85ceee2c58bc969503c014a4efb8e64cf364e6666268fc7dbb3678fee743097cbcdc9c961b158858585d8a54c6be651cbcf4c2bb13335e5325ef5d1471fe17090819ce1bababac874
+ca7873bc615151515b5b1b41106bd7aea5fe897dcee2e2e2f08991f99c7567484b4a4a424343873addcfe5723d3d3de1fa0100c0fa00ad661960f5d3dddd5d5e5e3e92fd604fed811c9bd6af5fcfe3f1f0d30eabc38166af5e6af0c3bbc2b2eff8f1e39e9e9e62b198aa3b87bd679b05db230df82c6273667373338bc5a26a65d25875f3e64dac98ababab9d9d9daf5dbb46aed58d35a9a8a8c079f8f41ef1e9d3a7f3e7cf27d3
+29272727eb2db03110b1b1b1643ee7b6b6369148449583376edcf0f5f51daa7b22ee9fa146ed0000008056038c068edfdcb469d348bca7b14e3a75ead4e5cb9775d7deb97347a150e0a71db6520c3bdd9aabab6b7474746565e577df7d57525242f5131fe19e6d166c8f342062a88625ac950b0b0bc9b5d826171111d1dbdbbb6edd3a9c638feaeca5357f7af5ead59c9c9c81a23a2e5cb8e0e5e5855dd6b003597d7d3d9e5827
+1dd4f6efdf4ffd934c0a480d19c187eeeeeececece265f27ce9d3b17171737d4fe494848b876ed9a56d40e0000006835c0744c9f3efdef7fffbbde883f6c2dd38a0d1ce871fef1c71f237d0932aaababc3c3c3fbfbfbc9a7dddb6fbf8d281e6c183c2f36987c1f6fbffd767777f7850b17fafbfbb51ebd23dc333048adacd765101bd8d2d2d2a8d3f1d8d98baaeda8a6505d9c9d9dc9a9d8b973e7f2783c2d474303383b3b5fbd
+7a95f4b7c387264ff5ce9d3b0e0e0e13264c30bc93f0f070ada0691c596ce09c01000040ab01c367a09c1d5ad934e2e3e3b10de3d4a9534c2653cb2b1f21949b9bab55d24097f8f878ec9746cdd941a3d1b0d4a33ec2e3e3e3716c1df5b9b86ddb364f4fcfeddbb7bff44be147f8dffef6376a5a35a3ecd936c136510392486b12f0edb7dfd67219fcfdef7f4fda9cb4469fc7e35dbb768dba73c39389d489d1a1a67776707070
+7777a7be3f2c5ebcf8e9d3a71d1d1d68b8ce6a08a1b4b4349840070000b41a30f6c4c7c7eb4dd581e7b30619b8909191a19bb303a781d0927a8585855a594506ff44747575ddb4691342884cab66ac3ddb26788ad34019316c30232749b156c6a632ec32a8a598751973c77c9cf37930f398ba393b5efa9602000060a940a02c00580a38d4576f6e33527c5345cca79f7eeae9e979f7ee5d6a8a32bc130389eb0c6750d35dabb5
+c4707e35ddd47a7873dc066753a37e85c1e757030000b056c0ae060016c3f4e9d3172e5ca89ba09f8ceb4c4b4ba396735db870e183070fb66fdffefcf973d26510878b262727539d0571e12663390b92139a7affeceeee9e33670e99a703c704e0e893f3e7cf8f1b37eea5f63f0000009b02b41a0058128585853870929a4918fb1a2e5ebcf8af7ffd2bb53196657ffbdbdf162f5e3c73e64cbc90ccc4f6ffdbbb639036da388e
+e3ff80a4c9c50e270805698a4269a142208a5d92a1149740a48a60e366eb22648a10704a1c4428e8a43869c76628580874e8e2608636d440c1424269c5942e06bd411225087987078f708969b4ed8b26dfcf96e72ecf735c86fc78fecf3d57bd5830140ae9ba1e0e87fffc0a3d1e8fba3c95fc2c1f4544d7754dd39c4e67f533016a9d62369b65d30d0020ab01373eae59f63d5655c5dacd35d4b27d11b1ac0033df7360b6d4be
+0be1cad4762122a29e54b07c1491dbb76fa7522973f46030f8fdfb7787c3d1fc623500682bb64aa5c25d00f0ff181d1dcd6432b95c8e874800a049ccab01000090d500000040560300006825ac57030000b8be985703000020ab01000080ac060000405603000000590d000080ac06000000b21a000000c86a008056944ea76fddba65bbc0c6c6c6bf1b3a1e8fdb6cb6d9d9597e0590d50000b88a972f5f767575ededed712bd0
+62786f0100e06648a7d37ebfffce9d3bb95ccee170541f2a140abdbdbdc56251d7f59d9d9ddede5e6e175a06f36a00801bafbbbbfbe0e0c0ebf51a86b1b2b2c20d01590d0080eb45d3b4b5b535bbddfefaf56b4b25b4542a0d0c0c982bdbeeddbb777a7aaa0e150a85cececebac553b53c4e9d5c77bd9a65fd5c2a95aabdaa064303643500407b191a1a0a040286616c6d6d998d8944c2e572653219b3259fcf3b9d4e15adbabb
+bb8787872d5f51debf7f5f2e97c7c7c72df556251e8f3f7efcb85c2e9b2d7ebfdff27c43e3a101b21a00a0ed783c1e11f9faf5abfa582814a6a7a74524128954cec562311119191951736913131322f2eeddbbb3b333b39f52a9944c2645647474b47694743abdb8b82822ebebebd57dcecfcf57cfd8fd766880ac0600682f0f1f3e14916fdfbea9e0b5baba5a2c162391c8d2d292794e3c1e8fc562e6cab6a74f9fba5cae542a
+f5f3e74ff39cdddddddddd5db7db3d3838583b8a9a728b44222f5ebc502dd168d4ebf5e6f3f9cf9f3fab96668606c86a0080f6a5e6c6745d0f87c396438140c06eb7ab4857b70cdaa0005a77ca4dd3b49d9d9d4aa5e2f3f99a1f9adf08643500403bba7fff7e474747b158cce5728661f4f5f55936ce554bcdbe7cf9a202d3dcdc9cdd6e37cba00d929688a86e755defe9e9b9e8029a1f1a20ab0100da48369bbdc2b7fafbfbfb
+fbfb93c9e4c78f1fe5bc00eaf3f9eedebdcb2d05590d0080bfc3ac4e3e7af4c86cd475fdc78f1f957af6f7f7558953d3b4603028229b9b9b725e007df6ec594747c79f5c4f33430364350040bb50f361baae3f79f244445c2ed783070f0cc3f8f5ebd76fbfab9691bd7dfbf6f0f05015405527b59ae9f652430364350040eb2b954a333333e572796a6a4abd634ad334b7db2d22af5ebdb22c0e4b2412369b6d6464c46c577bb3
+1d1f1f7ff8f0a17101d4ec564dc299aaf7cbbdd4d000590d00d0e2d2e9b4aeeb994cc6ed762f2c2c98edeaa18164323936366666a34422110a8544c452e59c9898300c637272b25c2e47a3d1060550d5edf2f2b2b9f9adb9e39af970e8a586061aa9000070137cfaf4c96eb737f847abbb3eeccd9b37754faedea25639383870b95c22e276bb4f4e4eaa0fa93d6c6b77b56ddc67f343030d30af06006805dbdbdb474747aafa59
+edf9f3e7c562d1ebf55a4eaedea256511bad89c845ef95aa168fc72dd9b1b6cfe687061ab0552a15ee020000c0f5c4bc1a000000590d0000006435000000b21a000000c86a000000643500000090d5000000405603000020ab01000080ac060000405603000000590d0000006435000000b21a000000fea5ff00173d2a3d4a57d9720000000049454e44ae426082}
+\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\par
+\par
+\ql\shading1500\plain\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notation\b0\par
+\hich\f5\dbch\f5\loch\f5 As this section is meant to provide an overview, different notations are used in a single picture:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls1\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls1\ilvl0\fi-360\li360\ql\shading1500\plain\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Just to show where information is coming from,
+curved arrows are used as 'data flows'.\par
+Where protocols are important, block arrows are used to represent protocols.\par
+UML is used to identify the interfaces realized by the Traffic Incidents Service (the blue items in the picture). \par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+On the top left, there's a \b Provider\b0 who has traffic information. This traffic information consists of a set of Traffic Incidents.\par
+The \b Application \b0 on the top right represents any application on a Device (like a route planner, a map display or the User Interface) that makes use of the traffic incidents. The picture shows some of the many different ways that traffic incidents
+can be received by a Device. To avoid that an Application has to deal with all kinds of different formats and protocols, the following solution is chosen:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls4\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls4\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 A common part, the \b Traffic Incidents Service\b0 , manages \b
+Traffic Incidents \b0 in a generic format. This generic format covers all the requirements of the Applications (so there will be information in the supported protocols, which is not part of the generic format).\par
+An Application can access the Traffic Incidents via the generic interface Traffic Incidents API.\par
+The different mechanism for receiving traffic incidents are referred to as Feeds. Each Feed handles a specific protocol and communication channel. The received Traffic Incidents are translated into the generic format and passed on to the Traffic Incidents
+Service via the Traffic Incident Feed API.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\hich\f3\dbch\f3\loch\f3\fs24\b Feeds\hich\f6\dbch\f6\loch\f6\b0\par
+\hich\f5\dbch\f5\loch\f5\fs20 Many different Feeds are possible, where each Feed is related to a communication channel (which can be a one way or a two way channel) and a protocol (or a specific variant of a protocol). As this section is only giving an
+overview, we'll shortly describe the following Feeds as examples.\par
+\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls5\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls5\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 RDS-TMC\line An FM broadcast channel, using the RDS-TMC protocol.
+This one is described as it is a simple (one way channel) and widely used.\par
+TPEG-TEC using TPEG over HTTP/IP\line TPEG-TEC has a rich data model and therefore it is used as a 'reference' for the GENIVI traffic information solution. TPEG data can be received via many different channels. Here we show TPEG over HTTP/IP, as this
+is a client/server solution (two way communication) in contrast to the one way RDS-TMC solution.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\fs24\b RDS-TMC\fs20\b0\par
+For this Feed a Broadcaster obtains the traffic information from the Provider and broadcasts the information via FM (RDS-TMC). On the Device side the information is received by an RDS-TMC Tuner. This tuner extracts the RDS-TMC information from the FM
+signal and transfers this information to the RDS-TMC Feed. The RDS-TMC Feed decodes the RDS-TMC data and translates it into the generic format for Traffic Incidents. These incidents are then handed over to the Traffic Incidents Service via the Traffic
+Incidents Update API.\par
+\par
+\fs24\b TPEG-TEC using TPEG over HTTP/IP\fs20\b0\par
+In this case there are TPEG layers, both on Device and Server side, which handle the common part of the TPEG framework. On the server side there may be any number of TPEG services available. The figure shows the TPEG-TEC Service for traffic incidents
+and the TPEG-X Service as a place holder for any other service. \par
+The TPEG-TEC Service obtains the complete set of Traffic Incidents from a Provider. The Device regularly sends a request for traffic information to the server. This request also contains information on e.g. where the Device currently is and where it's
+going to. Therefore the service can respond with a tailored set of Traffic Incidents. \par
+The reply from the server is received by the TPEG Layers on the Device. From any incoming data, these layers extract the traffic incidents information and passes that information on to the TPEG-TEC Feed. This TPEG-TEC Feed is very similar to the RDS-TMC
+Feed: it decodes the TPEG-TEC data and translates it into the generic format for Traffic Incidents. These incidents are then handed over to the Traffic Incidents Service via the Traffic Incidents Update API.\par
+The TPEG Layers consist of:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls6\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls6\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 TPEG Layer\line This layer handles the TPEG Service Framework.\par
+TPEG over HTTP/IP Layer\line This is an adaptation layer for communication via HTTP/IP.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\fs24\b Control\fs20\b0\par
+The description so far focused on the data (the Traffic Incidents), besides that there's also a control part. This control part will, to a large extent, be channel/protocol specific).\par
+\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls7\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls7\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 RDS-TMC\line In this case the tuner should be able to provide
+a list of receivable radio stations with RDS-TMC information and the name of the related providers. This information may be presented to the user. A controller may automatically pick a station and/or the user can manually select a station.\par
+TPEG-TEC using TPEG over HTTP/IP\line This is a client/server solution, where the Device is the client. This means it has to send requests to the server. These requests have to contain several parameters, which have to be gathered from different parts
+of the system.\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b References\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 [R-1] SP13001, Intelligent Transport Systems (ITS) \u8212 \'97 Traffic and Travel Information (TTI) via Transport Protocol Experts Group, Generation 2 (TPEG2) - Part 15: Traffic
+Event Compact (TPEG2-TEC_3.2/002), TISA, 20-12-2013 \lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart Overview_of_the_provided_functionality}{\*\bkmkend Overview_of_the_provided_functionality}{\*\bkmkstart BKM_543EFCE5_3A77_497a_82D9_6F3867F6C42B}{\*\bkmkend BKM_543EFCE5_3A77_497a_82D9_6F3867F6C42B}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page
+Overview of the provided functionality\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b Traffic Incident Data Model\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The data model is 'based on' the TPEG-TEC specification ([R-1]). There are different reasons why the TPEG-TEC specification can not be used 'as is':\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls23\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls23\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Different interfaces require different information\line Examples:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls24\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls24\ilvl0\fi-360\li720\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Transport protocols use location references to specify locations,
+while in the interface to the application names, coordinates and map segment references will be used.\par
+Applications are not interested in message management information, like an expiration time.\par
+Applications need the information in a textual format.\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls22\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls22\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Different protocols have to be supported\line Besides the
+TPEG-TEC protocol also RDS-TMC and VICS have to be supported. The data models of these protocols may have relevant attributes, which cannot be mapped to the TPEG-TEC data model.\line This means that the TEC model may have to be extended.\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b TrafficIncidents Interface\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This is an interface via which clients can obtain Traffic Incidents from the TrafficIncidentsService.\par
+The functionality of this interface can be grouped as follows:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls8\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls8\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Version information\line To know whether the API can be used
+and how.\par
+Configuration\line To customize the behavior of the service\par
+Status information\line To know the reception status of the Traffic Incidents\par
+Information on Traffic Incidents\line The core of this interface; obtaining Traffic Incidents and being informed about changes.\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf5\fs28\b Version Information\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 With the method getVersion(), a client can obtain the API version which is implemented by the service.\par
+This information shall be used by the client to determine whether it is compatible with this interface, and to take specific behavior of this interface version into account.\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf5\fs28\b Configuration\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The behavior of the service can be customized.\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b Language and Units\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The TrafficIncidents interface provides the information on Traffic Incidents in 2 ways:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls9\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls9\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 via a data model\par
+as text\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The data model provides the information in a language independent format, and uses standard ISO units.\par
+For the texts, the following can be configured:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls10\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls10\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Language\par
+Data and Time formats\par
+Length and Weight units\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Note: Also the data model supports 'free text' elements. So even if only the data model is used, it still makes sense to set the right language.\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b Applicability\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Not all Traffic Incidents are applicable to all drivers. For example, if you drive in a passenger car, a road closure for heavy trucks is not applicable.\par
+Therefore it is possible to set an Applicability Filter. This filter is based on a Boolean Expression (see section 'Boolean Expressions' below).\par
+\par
+\pard\ssparaaux0\s28\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b How to handle unknown car parameters?\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 For example, how to set the Applicability Filter if the car type or weight is unknown. In this case the application has to chose between:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls18\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls18\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 false positives\line Incidents which aren't applicable are
+treated as applicable.\line This is achieved by defining the test related to an unknown parameter to always be true.\par
+false negatives\line Incidents which are applicable aren't treated as applicable.\line This is achieved by defining the test related to an unknown parameter to always be false.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 In general it is advised to go for false positives; it's better to see some incidents which aren't applicable, then to miss incidents which are applicable.\par
+\par
+\pard\ssparaaux0\s28\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Specifying the Applicability\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 When is a Traffic Incident applicable?\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls13\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls13\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 If there is no Applicability specified in an incident, it
+is applicable to all cars.\par
+If there is one Applicability specified in an incident, it is applicable to cars matching this Applicability.\par
+If there is more than one Applicability specified in an incident, this should be interpreted as:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls13\ilvl1\pnhang\pnf0{\pntxtb \'b7}}\ls13\ilvl1\fi-360\li720\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 for cars matching Applicability-1\par
+and for cars matching Applicability-2\par
+and ....\par
+and for cars matching Applicability-n.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+In a logical expression this is:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls14\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls14\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 there is no Applicability specified\par
+OR\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls12\ilvl1\pnhang\pnf0{\pntxtb \'b7}}\ls12\ilvl1\fi-360\li720\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 vehicle parameters match Applicability-1\par
+OR vehicle parameters match Applicability-2\par
+OR ..\par
+OR vehicle parameters match Applicability-n.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+More compact, a Traffic Incident is applicable if:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls15\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls15\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 there is no Applicability specified\par
+OR ANY Applicability 'matches the vehicle parameters'\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+An Applicability 'matches the vehicle parameters' if:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls27\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls27\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 the Applicability doesn't contain a vehicleType\line OR\line
+the Applicability contains a vehicleType\line AND this vehicleType matches the vehicle type of the car.\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls16\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls16\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 AND the 'VehicleRelatedRestrictions match'\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+'VehicleRelatedRestrictions match' if:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls17\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls17\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 there are no VehicleRelatedRestrictions\par
+OR each VehicleRelatedRestriction matches the related car parameter\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The expression for the VehicleRelatedRestrictions is simpler if you specify when they don't match. Therefore it is decided that the Applicability is specified in terms of the incidents that are not applicable\par
+ (so the expression for the incidents to be filtered out).\par
+\par
+When is a Traffic Incident not applicable?\par
+A Traffic Incident 'is not applicable' if:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls19\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls19\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 there is at least one Applicability specified\par
+AND ALL Applicabilities don't match the vehicle parameters.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+An Applicability doesn't match the vehicle parameters:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls20\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls20\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 if Applicability contains a vehicleType AND\line vehicleType
+doesn't match the carVehicleType\par
+OR the VehicleRelatedRestrictions don't match\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+VehicleRelatedRestrictions don't match if:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls21\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls21\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 ANY VehicleRelatedRestriction doesn't match the related car
+parameter\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+This is quite a complex expression. The Boolean Expression, which is used to specify the Applicability Filter expression, is designed to support these kinds of expressions. The section on Boolean Expressions also provides a complete example of an Applicability
+Expression.\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b Categories and Icons\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 In the presentation to the user, Traffic Incidents are usually grouped in categories, where each category is represented by an icon. Via the interface it is possible to define
+icons and categories. A category has a name, an expression which defines which incidents are part of the category and a set of icons.\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b Boolean expressions\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 A Boolean Expression is a powerful way to apply filtering on any type of object (data model).\par
+Why these expressions are needed and how they work can best be described by some examples.\par
+Therefore in this section Boolean Expressions are first introduced by a number of examples. After that the more formal definition is given.\par
+\pard\ssparaaux0\s15\sb240\sa60\ql\outlinelevel4\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b\i Introduction by examples\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\b Example: Defining a category based on the effectCode\b0\par
+Here we want to state that a Traffic Incident is in the category 'Stationary Traffic' if the effectCode is equal to STATIONARY_TRAFFIC. This means we want to have a boolean expression which evaluates to true if the effectCode is equal to STATIONARY_TRAFFIC.\par
+For this we need to:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls11\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls11\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 identify the attribute effectCode, which is done by its name.\par
+have Comparison Operators. In this case 'equals'.\par
+be able to specify values (or literals). In this case the numerical value for STATIONARY_TRAFFIC (which is 6).\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This functionality is available via the Comparison Predicate.\par
+Notation for this example:\par
+\hich\f3\dbch\f3\loch\f3\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 @effectCode == 6\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+Note that the '@' sign is used to mark the word behind it as an attribute name.\par
+\par
+\b Example: Defining a category based on the mainCause\b0\par
+Here we want to state that a Traffic Incident is in the category 'Visibility Reduced' if there is a Cause with mainCause set to VISIBILITY_REDUCED (value is 18).\par
+The check on the mainCause is again a Comparison Predicate:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\tab @mainCause == 18\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+But mainCause is an attribute of the sub class Cause and a Traffic Incident has a list of causes. So any of the causes should fulfill the Comparison Predicate. This functionality is available via the Multiplicity Predicate.\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Notation for this example:\par
+\par
+\pard\ssparaaux0\s33\ql\keepn\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 #any @causes (\par
+ @mainCause == 18\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 )\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+Note that a '#' sign is used to mark the word behind it as a Multiplicity Operator.\par
+\par
+\b Example: Defining a category based on the effectCode and a subCause\b0\par
+The tests on the effectCode, mainCause and subCause are again Comparison Predicates, and the test on the causes is again a Multiplicity Predicate. But we need two more things:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls26\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls26\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Combining predicates\line We need to state 'mainCause is 18
+AND subCause is 6'. This is a Dyadic Expression, which simply has the form 'expression operator expression'.\line Notation within this example:\line\hich\f3\dbch\f3\loch\f3\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\tab (\line\tab @mainCause == 18\line\tab ) and (\line\tab @subCause == 6\line\tab )\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls25\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls25\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Downcasting\line In the Traffic Incident data model, a Cause
+only has a mainCause. There are two classes extending a Cause: DirectCause and LinkedCause. It's the DirectCause which adds, amongst others, the subCause. So we need to be able to specify that we're talking about a DirectCause before we can refer to the
+subCause attribute. Like in Object Oriented programming languages, this is referred to as downcasting. A Downcast Predicate has the form: [downcast to class] (expression)\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The complete expression is:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 (\par
+ @effectCode == 3\par
+) and (\par
+ #any @causes (\par
+ [DirectCause] (\par
+ (\par
+ @mainCause == 18\par
+ ) and (\par
+ @subCause == 6\par
+ )\par
+ )\par
+ )\par
+)\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\b Example: Filter on categoryIds\b0\par
+Now suppose you only want to show Traffic Incidents that are in specific categories; the categories with the Ids 1 and 3. A Traffic Incident has a list of categoryIds. If any of these is in our 'specific categories', it shall pass the filter. So this
+is again a Multiplicity Predicate. \par
+The Comparison Predicate checks an attribute against a specific value. Quite often, like here, you want to check against a list of values. For this there is the In Predicate, which checks whether a value is, or isn't, in a list of values. The In Predicate
+looks like: attribute in [a, c, ..., w].\line In this example the In Predicate will be used in the expression of a Multiplicity Predicate on an attribute with a simple data type. This means that the attribute of the In Predicate is by definition the same
+as the attribute of the Multiplicity Predicate. In this case the attribute is simply referred to as '@', an Implicit Class Attribute.\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Notation for this example:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18 #any @categoryIds (\lang1033\hich\f7\dbch\f7\loch\f7 @\lang3081\hich\f8\dbch\f8\loch\f8 in [1, 3])\lang1033\hich\f7\dbch\f7\loch\f7\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s0\ql\keepn\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\b Example: Defining the Applicability for a vehicle with an axle load of 7 tons\b0\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 In order to make the example not too complex, the Applicability is only based on a single car parameter; the axle load.\par
+The filter expression, as described in the section 'Applicability', will be derived bottom up.\par
+\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 There are two RestrictionTypes related to the axle load: AXLE_LOAD_LESS_THAN (value 17) and AXLE_LOAD_GREATER_THAN (value 18).\par
+Remember that we specify the incidents to be filtered out. So if the incident is applicable to vehicles with an 'axle load less than' the restrictionValue, we have to filter out the incidents where our axle load is 'greater or equal than' that restrictionValue.
+Which again can be translated to the restrictionValue being less or equal to our axle load. This leads to the following partial expression:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 (\par
+ @restrictionType == 17\par
+ ) and (\par
+ @restrictionValue <= 7000\par
+ )\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+Combining this with the check on AXLE_LOAD_GREATER_THAN gives:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 (\par
+ (\par
+ @restrictionType == 17\par
+ ) and (\par
+ @restrictionValue <= 7000\par
+ )\par
+ ) or (\par
+ (\par
+ @restrictionType == 18\par
+ ) and (\par
+ @restrictionValue >= 7000\par
+ )\par
+ )\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+Actually we should only check on the restrictionType, if a restrictionType is specified. The Is Set Predicate is meant for this. It has the following structure: isSet attribute.\par
+Adding this check gives:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 (\par
+ isSet @restrictionType\par
+ ) and (\par
+ (\par
+ (\par
+ @restrictionType == 17\par
+ ) and (\par
+ @restrictionValue <= 7000\par
+ )\par
+ ) or (\par
+ (\par
+ @restrictionType == 18\par
+ ) and (\par
+ @restrictionValue >= 7000\par
+ )\par
+ )\par
+ )\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+We have to iterate over all vehicleRelatedRestrictions in all Applicabilities. This gives:\par
+\par
+\pard\ssparaaux0\s33\ql\keepn\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 #all @applicability (\par
+ #any @vehicleRelatedRestrictions (\par
+ (\par
+ isSet @restrictionType\par
+ ) and (\par
+ (\par
+ (\par
+ @restrictionType == 17\par
+ ) and (\par
+ @restrictionValue <= 7000\par
+ )\par
+ ) or (\par
+ (\par
+ @restrictionType == 18\par
+ ) and (\par
+ @restrictionValue >= 7000\par
+ )\par
+ )\par
+ )\par
+ )\par
+ )\par
+\pard\ssparaaux0\s33\ql\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 We also have to check that at least one Applicability is specified. This can be done with a Meta Class Attribute. In this case not the value of the attribute is used, but some meta information
+related to that value. Currently 'size', the number of elements in the value, is the only piece of meta information supported. Notation: @attribute^size.\par
+So checking on 'at least one Applicability specified' is done by:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 @applicability^size > 0\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+Combining this with the part we already had, gives the complete Boolean Expression:\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 (\par
+ @applicability^size > 0\par
+) and (\par
+ #all @applicability (\par
+ #any @vehicleRelatedRestrictions (\par
+ (\par
+ isSet @restrictionType\par
+ ) and (\par
+ (\par
+ (\par
+ @restrictionType == 17\par
+ ) and (\par
+ @restrictionValue <= 7000\par
+ )\par
+ ) or (\par
+ (\par
+ @restrictionType == 18\par
+ ) and (\par
+ @restrictionValue >= 7000\par
+ )\par
+ )\par
+ )\par
+ )\par
+ )\par
+)\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s15\sb240\sa60\ql\keepn\outlinelevel4\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b\i Definition of Boolean Expressions\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This section defines the Boolean Expressions in a semi-formal way.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <boolean-expression> ::=\par
+\tab\tab <predicate>\par
+\tab\tab | <unary-expression>\par
+\tab\tab | <dyadic-expression>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A <boolean-expression> is either a <predicate>, a <unary-expression>, or a <dyadic-expression>. The boolean result of <boolean-expression> is the result of the <predicate>, the <unary-expression> or the <dyadic-expression>.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <predicate> ::=\par
+\tab\tab <is-set-predicate>\par
+\tab\tab | <comparison-predicate>\par
+\tab\tab | <in-predicate>\par
+\tab\tab | <sub-class-predicate>\par
+\tab\tab | <downcast-predicate>\par
+\tab\tab\v\v \'1c\v0\v0 | <multiplicity-predicate>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <is-set-predicate> ::=\par
+\tab\tab <is-set-operator> <class-attribute>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The <is-set-predicate> checks whether an attribute of a class is set, i.e. that a value has been assigned to it.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <comparison-predicate> ::=\par
+\tab\tab <class-attribute> <space> <comparison-operator> <space> <literal>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The <comparison-predicate> checks the value of an attribute against a specified value. It supports the usual comparison operators.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <in-predicate> ::=\par
+\tab\tab <class-attribute> <space> <in-operator> <space> <literal-list>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The <in-predicate> checks whether the value of an attribute appears in, or doesn't appear in, a list of specified values.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <sub-class-predicate> ::=\par
+\tab\tab <class-attribute> <space>\par
+\tab\tab <left-parenthesis> <boolean-expression> <right-parenthesis>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A <sub-class-predicate> applies a <boolean-expression> on a sub class of a class. The sub class is identified by its attribute name. This predicate makes it possible to work with hierarchical data models.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <downcast-predicate> ::=\par
+\tab\tab <left-square-bracket> <class-name> <right-square-bracket>\par
+\tab\tab <left-parenthesis> <boolean-expression> <right-parenthesis>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The <downcast-predicate> provides the same functionality as downcasting in Object Oriented programming languages. It makes it possible to use the attributes of an object which extends a class mentioned in the data model.\line As an example: A data model
+contains the attribute 'person' of type 'Person'. Type 'Person' has one attribute: 'name'. Type 'Employee' extends type 'Person' and adds the attribute 'jobTitle'. In an expression you can refer to this attribute after downcasting an element of type 'Person'
+to type 'Employee'.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <multiplicity-predicate> ::=\par
+\tab\tab <hash-sign> <multiplicity-operator> <space> <class-attribute> <space>\par
+\tab\tab <left-parenthesis> <boolean-expression> <right-parenthesis>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A <multiplicity-predicate> can be applied to a list of values (i.e. where the upper bound of the multiplicity of an attribute in the UML model is greater than 1). The boolean result of a <multiplicity-predicate> is the result of the <multiplicity-operator>
+applied to all values related to the attribute identified by the <class-attribute>.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <unary-expression> ::=\par
+\tab\tab <unary-logical-operator> <space> <boolean-expression>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The result of a <unary-expression> is the <unary-logical-operator> applied to the result of the <boolean-expression>.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <dyadic-expression> ::=\par
+\tab\tab <left-parenthesis> <boolean-expression> <right-parenthesis>\par
+\tab\tab <space> <dyadic-logical-operator> <space>\par
+\tab\tab <left-parenthesis> <boolean-expression> <right-parenthesis>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The result of a <dyadic-expression> is the <dyadic-logical-operator> applied to the results of the two <boolean-expression>'s.\par
+\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <class-attribute> ::==\par
+\tab\tab <implicit-class-attribute>\par
+\tab\tab | <plain-class-attribute>\par
+\tab\tab | <meta-class-attribute>\par
+\tab\tab | <indexed-class-attribute>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <implicit-class-attribute>::==\par
+\tab\tab <at-sign>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+An <implicit-class-attribute> doesn't specify an attribute name. It can only be used where the attribute is defined by the context. Currently this is within the <boolean-expression>, of a <multiplicity-predicate>.\par
+Example: assume a class has an attribute 'names' of type String, with a multiplicity of 1 .. *. To check on specific names you can use the expression: #any @names (@ in ["Jim", "John"])\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <plain-class-attribute>::==\par
+\tab\tab <at-sign> <class-attribute-name>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A <plain-class-attribute> identifies an attribute of the current class in a data model. The attribute is identified by its name.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <class-attribute-name> ::= name of an attribute of a class\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <meta-class-attribute> ::=\par
+\tab\tab <at-sign> <class-attribute-name> <caret-sign> <meta-operator>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A <meta-class-attribute> refers to some meta information of an attribute. At the moment this is only the 'size', the number of elements of an attribute.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <indexed-class-attribute> ::=\par
+\tab\tab <at-sign> <class-attribute-name>\par
+\tab\tab <left-square-bracket> <unsigned-integer-literal>\line\tab\tab <right-square-bracket>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+An <indexed-class-attribute> refers to a specific element of the elements of an attribute. This only makes sense for attributes for which the upper bound of the multiplicity is greater than 1.\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <literal-list> ::=\par
+\tab\tab <left-square-bracket> <literals> <right-square-bracket>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A <literal-list> is a list of constants. For example: ["Monday", "Tuesday"].\par
+\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <literals> ::=\par
+\tab\tab <literal>\par
+\tab\tab | <literal> <comma> <literals> \par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <literal> ::==\par
+\tab\tab <signed-integer-literal>\par
+\tab\tab | <string-literal>\par
+\tab\tab | <boolean-literal>\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <unsigned-integer-literal> ::= an unsigned integer value // For example: 11\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <signed-integer-literal> ::= a signed or unsigned integer value\par
+ // For example: -3457\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <string-literal> ::= a string value // For example: "GENIVI".\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <boolean-literal> ::= 'true' | 'false'\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <unary-logical-operator> :: 'not'\tab // Negation\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <dyadic-logical-operator> ::\par
+\tab\tab 'and'\tab\tab\tab // Logical AND operation\par
+\tab\tab | 'or'\tab\tab\tab\tab // Logical OR operation\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <comparison-operator> ::=\par
+\tab\tab '=='\tab\tab\tab\tab // Equal\par
+\tab\tab | '!='\tab\tab\tab\tab // Not equal\par
+\tab\tab | '>'\tab\tab\tab\tab // Greater than\par
+\tab\tab | '>='\tab\tab\tab\tab // Greater or equal than\par
+\tab\tab | '<'\tab\tab\tab\tab // Less than\par
+\tab\tab | '<='\tab\tab\tab\tab // Less or equal than\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <multiplicity-operator> ::=\par
+\tab\tab 'any'\tab\tab\tab // Any value satisfies the expression\par
+\tab\tab | 'all'\tab\tab\tab // All values satisfy the expression\par
+\tab\tab | 'none'\tab\tab\tab // None of the values satisfies the\line\tab\tab\tab\tab\tab\tab // expression\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <in-operator> ::=\par
+\tab\tab 'in'\tab\tab\tab\tab // Value appears in set of values\par
+\tab\tab | 'not_in'\tab\tab\tab // Value doesn't appear in set of values\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <is-set-operator> ::=\par
+\tab\tab 'isSet'\tab\tab\tab // To check whether an attribute has a value\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <meta-operator> ::=\par
+\tab\tab 'size'\tab\tab\tab // The number of elements of the value of an\line\tab\tab\tab\tab\tab\tab // attribute\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <space> ::= ' '\tab\tab\tab\tab // A white space character.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <comma> ::= ','\tab\tab\tab\tab // A comma character.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <left-parenthesis> ::= '('\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <right-parenthesis> ::= ')'\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <left-square-bracket> ::= '['\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <right-square-bracket> ::= ']'\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <hash-sign> ::= '#'\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <at-sign> ::= '@'\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s33\ql\shading1000\plain\plain\f0\fs24\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18 <caret-sign> ::= '^'\par
+\pard\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf5\fs28\b Status Information\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The following status information is provided via the interface:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls28\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls28\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The status of the Traffic Incidents\line This is the most
+important information for the user. It provides information on whether Traffic Incidents are (partly) available in the system or not.\par
+The status of the Feeds via which the Traffic Incidents are received\line This provides background information on the reception status of the traffic information.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+A client can register itself as a listener for this status information.\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf5\fs28\b Information on Traffic Incidents\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This is the core functionality of this interface.\par
+\par
+Getting information on Traffic Incidents is always done in two steps:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f5\fs20 1.\tab}{\*\pn\pnlvlbody\pnstart1\ls32\ilvl0\pnhang{\pntxta \'2e}}\ls32\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Obtaining the Ids of the relevant Traffic Incidents\par
+Obtaining the actual information of the Traffic Incidents, based on their Ids\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+This approach is used for 2 reasons:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f5\fs20 1.\tab}{\*\pn\pnlvlbody\pnstart1\ls31\ilvl0\pnhang{\pntxta \'2e}}\ls31\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Because the content of the Traffic Incidents can be quite
+big.\line A client that wants to show a list of Traffic Incidents can ask for all the relevant Ids of the incidents and then first ask for the texts of the first 10 Traffic Incidents, assuming it can only show 10 incidents at once on the screen.\par
+Exchanging information with other components\line For example, a map display can show Traffic Incidents. If the user selects a Traffic Incident on the map, the Id of the incident is passed on to the Navigation Application. This application can then request
+the details from the TrafficIncidentsService and show them on the screen.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+It is possible to:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls29\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls29\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Request Traffic Incidents\par
+Register for changes in the Traffic Incidents\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 With both options it is possible to filter on Warning Level, CategoryId and area.\par
+\par
+For a Traffic Incident it is possible to obtain the complete data model (as described in the beginning of this chapter), or specific parts of the data model.\par
+Also the whole incident, and specific parts of the incident, can be obtained as text.\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b TrafficIncidentFeed Interface\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 This is the interface via which Traffic Incident Feeds can provide Traffic Incidents to the TrafficIncidentsService.\par
+The following functionality is provided:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls30\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls30\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Version information\line For version information this interface
+offers the same functionality as the TrafficIncidents interface.\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls30\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls30\ilvl0\fi-360\li360\ql\keepn\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Language information\line A client can request the currently
+used language, or it can register for changes in the language.\line In a client/server solution, a Feed may send the language to the server. This makes it possible for the server to provide any 'free text' in the right language.\par
+Registration and Status Information\line A Feed which will provide traffic incident updates has to register itself and provide status information. In this way the TrafficIncidentsService can provide (the combined) status information to its clients.\par
+Updates\line There is a single method, updateIncidents(), via which the Feed can inject changes in the Traffic Incidents into the TrafficIncidentsService.\line Only full updates of Traffic Incidents are supported, therefore new and updated incidents are
+passed in as a single list. \lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart Modeling_Concepts}{\*\bkmkend Modeling_Concepts}{\*\bkmkstart BKM_AF109388_7722_4b89_8DA1_A4B7925AD73D}{\*\bkmkend BKM_AF109388_7722_4b89_8DA1_A4B7925AD73D}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page
+Modeling Concepts\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 The actual provided interfaces are D-Bus interfaces, as this is currently the GENIVI standard. However:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls33\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls33\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 In the future also other IPC mechanisms may have to be supported\par
+The D-Bus Introspection format is not well suited to explain the interface\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+Therefore the interface is first modeled in an implementation independent UML model; chapter 'TrafficIncidentsService UML Description'. Main characteristics of this model:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls34\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls34\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 multiplicity\line Used to indicate optional values and list/arrays\par
+No implementation specific types like 'unsigned 16 bit integer' are used. Instead the type Integer is used with a value range.\par
+Attribute order and Aggregation relations\line The attributes of a class are not ordered. Also aggregation relations are used, where there is no ordering between an aggregation relation and an attribute.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+In the next chapter, 'TrafficIncidentsService D-Bus UML Description', the UML model is transferred into a D-Bus specific UML model. Main characteristics:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls35\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls35\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 multiplicity\line D-Bus doesn't support optional values. To
+handle this, the following solutions are chosen:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls36\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls36\ilvl0\fi-360\li720\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Simple data types\line For simple data types, the value set
+is extended with an extra value; 'Not Specified'.\par
+Structures\line An optional attribute which is a structure, is represented as an array with 0 or 1 elements.\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls35\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls35\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Based on the value range, attributes of type Integer are replaced
+by an implementation specific data type, like INT32.\par
+Attribute order and Aggregation relations\line The attributes of a class are now ordered. Aggregation relations are replaced by attributes.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+The actual D-Bus Introspection interface definition is given in the chapter 'Interface Specifications in D-Bus Introspection format'. These interfaces are directly derived from the D-Bus specific UML model.\par
+Main characteristics:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls37\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls37\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 An interface with corresponding listener interface, becomes
+a single D-Bus interface.\par
+As D-Bus has no type definitions, the used type is translated to its signature wherever it's used.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+As the D-Bus Introspection format is not very well readable, the chapter 'D-Bus Interface Specifications (reading format)' contains the same text as the chapter 'Interface Specifications in D-Bus Introspection format', but in a more readable format.
+ \lang3081\hich\f5\dbch\f5\loch\f5\par
+\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart TrafficIncidentsService_UML_Description}{\*\bkmkend TrafficIncidentsService_UML_Description}{\*\bkmkstart BKM_0251F055_9E1D_43bc_8A14_61187ED19DF9}{\*\bkmkend BKM_0251F055_9E1D_43bc_8A14_61187ED19DF9}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page
+TrafficIncidentService UML Description \lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart trafficincidentsservice}{\*\bkmkend trafficincidentsservice}{\*\bkmkstart BKM_EB251C94_FA9C_48b6_85CD_0E6FB75EFF58}{\*\bkmkend BKM_EB251C94_FA9C_48b6_85CD_0E6FB75EFF58}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentsservice}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart common}{\*\bkmkend common}{\*\bkmkstart BKM_A3FB5B0B_E6EA_4446_B007_966088AAD14C}{\*\bkmkend BKM_A3FB5B0B_E6EA_4446_B007_966088AAD14C}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 common}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_870DFE3B_219A_41de_9E62_391BB1ADFFDE}{\*\bkmkend BKM_870DFE3B_219A_41de_9E62_391BB1ADFFDE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 common}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw17373\pich14206\picwgoal9855\pichgoal8055\picscalex95\picscaley95\sspicalign0 010000006c000000f8fffffffffffffff60100009d0100000000000000000000dd4300007f37000020454d4600000100bcac0000a3070000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c
+00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff0840010334000000
+280000000210c0db05000000004000000100ffff01006efeeb016efeeb01ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000001000000380000000000000038000000000000000001010001000000000000000000000000000000000000
+0000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffed01000094010000050000001000100010002019b01e2019b01e100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c40
+00c02c00000020000000ffffffff060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000003400000001000000010000005d000000140000000600000010
+00400100054001d0056000d00510001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff
+0d400060280000001c000000060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffffff
+ffffffffff5f00000016000000060000001000400100054001d0056000d00510001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000
+000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76b8911a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b5ca3400cc859e1028300f80089360000dc59e102188d1701
+cf350ac4b8911a248400d6008936000037bb4000cf350ac470374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bb8901a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126883600008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5ae1
+026476000800000000250000000c00000002000000180000000c00000000000000540000005400000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000010048000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+0000540000009400000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000063006c00610073007300200063006f006d006d006f006e000600000003000000060000000600000006000000030000000600000006000000090000000900000006000000060000001b00000010000000000000000000000016
+0000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000054c2000010c20a4000c01c00000010000000c0bfc0ff010000005801c9febc006100280000000c000000010000002100000008000000
+620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c00000008000080560000003000000023010000b2000000df01000013010000050000003012200b30123011f01d3011f01d200b3012200b250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005801c9febc0061003a0000000c0000000a00000024000000240000000000
+803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000c0100009b000000f60100002a0100000400000030123011f01d3011f01d200b3012200b250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080aa4300009ac300003c430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcff
+bed7e8ff0a4000401c0000001000000002000000010000005501ccfebc006100250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c00000008000080560000003000000020010000af0000008201000010010000050000002001af0020011001820110018201af002001af00250000000c00000008000080250000000c00000000000080280000
+000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c00000008000080560000003000000082010000af0000008701000010010000050000008201af0082011001870110018701af008201af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df00000000002500
+00000c00000002000000250000000c00000008000080560000003000000087010000af0000008c01000010010000050000008701af00870110018c0110018c01af008701af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c0000000800008056000000300000008c010000af
+0000009201000010010000050000008c01af008c011001920110019201af008c01af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c00000008000080560000003000000092010000af0000009701000010010000050000009201af0092011001970110019701af009201af00
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c00000008000080560000003000000097010000af0000009c01000010010000050000009701af00970110019c0110019c01af009701af00250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c0000000800008056000000300000009c010000af000000a101000010010000050000009c01af009c011001a1011001a101af009c01af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c0000000200
+0000250000000c000000080000805600000030000000a1010000af000000a60100001001000005000000a101af00a1011001a6011001a601af00a101af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000a6010000af000000ac01000010
+01000005000000a601af00a6011001ac011001ac01af00a601af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000805600000030000000ac010000af000000b10100001001000005000000ac01af00ac011001b1011001b101af00ac01af00250000000c000000
+08000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c000000080000805600000030000000b1010000af000000b50100001001000005000000b101af00b1011001b5011001b501af00b101af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000
+000200000000000000f1e2ce0000000000250000000c00000002000000250000000c000000080000805600000030000000b5010000af000000b80100001001000005000000b501af00b5011001b8011001b801af00b501af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c00
+0000080000805600000030000000b8010000af000000bd0100001001000005000000b801af00b8011001bd011001bd01af00b801af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c000000080000805600000030000000bd010000af000000c10100001001000005000000bd
+01af00bd011001c1011001c101af00bd01af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00000002000000250000000c000000080000805600000030000000c1010000af000000c70100001001000005000000c101af00c1011001c7011001c701af00c101af00250000000c0000000800008025000000
+0c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c000000080000805600000030000000c7010000af000000cc0100001001000005000000c701af00c7011001cc011001cc01af00c701af00250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000000000
+00ecdbc40000000000250000000c00000002000000250000000c000000080000805600000030000000cc010000af000000d20100001001000005000000cc01af00cc011001d2011001d201af00cc01af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c000000080000805600
+000030000000d2010000af000000d70100001001000005000000d201af00d2011001d7011001d701af00d201af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030000000d7010000af000000db0100001001000005000000d701af00d7011001db
+011001db01af00d701af00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000db010000af000000dc0100001001000005000000db01af00db011001dc011001dc01af00db01af00250000000c00000008000080250000000c00000000000080
+280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005501ccfebc0061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000
+005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000901000098000000f3010000270100000400000000120011c01d0011c01df00a0012f00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e102969619012d3b0aec9c58530bb29619010000000068921a248ce3c577738c172646e0c5779401300b0000300b188d17012d3b0aec78000e018b360000c457e10237bb40002d3b0aec68921a2479000c018b3600009087a1263c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b68921a
+24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000060921a24dc57e10223e0c57768921a243a6c2e760865450160921a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000005f01000027ffffff080200001affffff1600
+00000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000065010000b500000098010000c10000000100000000400d4200040dc29a01000027ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300000006
+0000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000
+010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e7668921a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bb2a3d00e1c58e1027900f6008d3600003058e102188d17012d3b0aed68921a247a00
+d6008d36000037bb40002d3b0aed70374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0bb8901a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a1268c3600008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e102647600080000000025
+0000000c00000003000000180000000c0000000000000054000000780000006b010000c200000091010000cd0000000100000000400d4200040dc2a00100001affffff070000004c000000000000000000000000000000ffffffffffffffff5c000000560065007200730069006f006e000000070000000600000004000000060000000300000006000000060000000a0000001000000035000000dcffffff0c00000010000000
+0000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000550108ff110208ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000
+001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000009010000bd000000f3010000eb0000000200
+00000012400dc01d400d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000
+25010000d80000002e010000e40000000100000000400d4200040dc25a01000004ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+00000001000036010000d8000000d8010000e40000000100000000400d4200040dc26b01000004ffffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d0061006a006f007200200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d00620065007200090000000600000003000000060000000300000003000000030000000300000007
+0000000600000006000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b000000540000005800000025010000e50000002e010000f10000000100000000400d4200040dc25a010000f7feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b000000540000000001000036010000e5000000d8010000f10000000100000000400d4200040dc26b010000f7feffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d0069006e006f007200200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d006200650072000900000003000000060000000600000003000000
+030000000300000003000000070000000600000006000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b000000540000005800000025010000f20000002e010000fe0000000100000000400d4200040dc25a010000eafeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b000000540000000001000036010000f2000000d7010000fe0000000100000000400d4200040dc26b010000eafeffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d006900630072006f00200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d0062006500720009000000030000
+00050000000300000006000000030000000300000003000000070000000600000006000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000025010000ff0000002e0100000b0100000100000000400d4200040dc25a010000ddfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c00000036010000ff000000700100000b0100000100000000400d4200040dc26b010000ddfeffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006400610074006500200020003a0053007400720069006e00670000000600000006000000030000000600000003000000030000000300
+00000700000003000000030000000300000006000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000047005dff680054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000
+0000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000120000002b0000007a0000007f000000050000002001b0022001f007a007f007a007b0022001b002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000047005dff680054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000
+00c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff140000009100000096000000040000002001f007a007f007a007b0022001b002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00
+0000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000008842000020c30000d0420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000440060ff68005400250000000c0000000800008027000000180000000400000000000000fcf2e30000
+000000250000000c00000004000000250000000c0000000800008056000000300000000f00000028000000440000007c000000050000000f0028000f007c0044007c00440028000f002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c000000080000805600000030000000
+4400000028000000450000007c000000050000004400280044007c0045007c004500280044002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000004500000028000000470000007c000000050000004500280045007c0047007c00470028
+0045002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000004700000028000000480000007c000000050000004700280047007c0048007c004800280047002800250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000004800000028000000490000007c000000050000004800280048007c0049007c004900280048002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c
+00000004000000250000000c00000008000080560000003000000049000000280000004b0000007c000000050000004900280049007c004b007c004b00280049002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000004b00000028000000
+4c0000007c000000050000004b0028004b007c004c007c004c0028004b002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000004c000000280000004d0000007c000000050000004c0028004c007c004d007c004d0028004c002800250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000004d000000280000004e0000007c000000050000004d0028004d007c004e007c004e0028004d002800250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000004e000000280000004f0000007c000000050000004e0028004e007c004f007c004f0028004e002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c0000000400000025
+0000000c0000000800008056000000300000004f00000028000000500000007c000000050000004f0028004f007c0050007c00500028004f002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000005000000028000000510000007c000000
+050000005000280050007c0051007c005100280050002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000005100000028000000520000007c000000050000005100280051007c0052007c005200280051002800250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000005200000028000000540000007c000000050000005200280052007c0054007c005400280052002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000005400000028000000550000007c000000050000005400280054007c0055007c005500280054002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008
+00008056000000300000005500000028000000560000007c000000050000005500280055007c0056007c005600280055002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000005600000028000000580000007c0000000500000056002800
+56007c0058007c005800280056002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000005800000028000000590000007c000000050000005800280058007c0059007c005900280058002800250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000059000000280000005a0000007c000000050000005900280059007c005a007c005a00280059002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6
+d30000000000250000000c00000004000000250000000c0000000800008056000000300000005a000000280000005b0000007c000000050000005a0028005a007c005b007c005b0028005a002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030
+0000005b000000280000005c0000007c000000050000005b0028005b007c005c007c005c0028005b002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c0000000800008056000000300000005c000000280000005d0000007c000000050000005c0028005c007c005d007c00
+5d0028005c002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000005d000000280000005e0000007c000000050000005d0028005d007c005e007c005e0028005d002800250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000005e000000280000005f0000007c000000050000005e0028005e007c005f007c005f0028005e002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf00000000002500
+00000c00000004000000250000000c0000000800008056000000300000005f00000028000000600000007c000000050000005f0028005f007c0060007c00600028005f002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006000000028
+000000610000007c000000050000006000280060007c0061007c006100280060002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006100000028000000620000007c000000050000006100280061007c0062007c006200280061002800
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000006200000028000000630000007c000000050000006200280062007c0063007c006300280062002800250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006300000028000000650000007c000000050000006300280063007c0065007c006500280063002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c0000000400
+0000250000000c0000000800008056000000300000006500000028000000660000007c000000050000006500280065007c0066007c006600280065002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000006600000028000000670000007c
+000000050000006600280066007c0067007c006700280066002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000006700000028000000690000007c000000050000006700280067007c0069007c006900280067002800250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080560000003000000069000000280000006a0000007c000000050000006900280069007c006a007c006a00280069002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000006a000000280000006b0000007c000000050000006a0028006a007c006b007c006b0028006a002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00
+00000800008056000000300000006b000000280000006c0000007c000000050000006b0028006b007c006c007c006c0028006b002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000006c000000280000006d0000007c000000050000006c
+0028006c007c006d007c006d0028006c002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000006d000000280000006f0000007c000000050000006d0028006d007c006f007c006f0028006d002800250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000006f00000028000000700000007c000000050000006f0028006f007c0070007c00700028006f002800250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000007000000028000000720000007c000000050000007000280070007c0072007c007200280070002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600
+0000300000007200000028000000730000007c000000050000007200280072007c0073007c007300280072002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000007300000028000000740000007c000000050000007300280073007c0074
+007c007400280073002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000007400000028000000760000007c000000050000007400280074007c0076007c007600280074002800250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000007600000028000000770000007c000000050000007600280076007c0077007c007700280076002800250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c000000070000804600000060000000540000
+00454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000440060ff680054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000
+00000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffff110000008e0000009300000004000000f000c0077007c00770078002f0008002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c
+0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004e000000aeffffffa3000000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000002a0000002e0000005d0000
+003a0000000100000000400d4200040dc25f000000aeffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b00000010000000000000000500
+00000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000290000003b0000005e000000460000000100000000400d4200040dc25e000000a1ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000043006f00
+6f007200640069006e00610074006500070000000600000006000000040000000600000003000000060000000600000003000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000
+00180000000210c0db020000000040000044008fffac008fff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000
+000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff360000008e0000006400000002000000f000d0047007d004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c
+0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000510000001d0000005d0000000100000000400d4200040dc2490000008bffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000
+0035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000002500000051000000670000005d0000000100000000400d4200040dc25a0000008bffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000006c006100740069007400750064
+006500200020003a0066006c006f0061007400030000000600000003000000030000000300000006000000060000000600000003000000030000000300000003000000030000000600000006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+005400000058000000140000005e0000001d0000006a0000000100000000400d4200040dc2490000007effffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b00000054000000b4000000250000005e000000700000006a0000000100000000400d4200040dc25a0000007effffff110000004c000000000000000000000000000000ffffffffffffffff700000006c006f006e00670069007400750064006500200020003a0066006c006f00610074000000030000000600000006000000060000000300000003000000060000000600000006000000030000000300000003000000
+03000000030000000600000006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000006b0000001d000000770000000100000000400d4200040dc24900000071ffffff020000004c00000000000000000000000000
+0000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000250000006b00000073000000770000000100000000400d4200040dc25a00000071ffffff120000004c00000000000000
+0000000000000000ffffffffffffffff7000000061006c00740069007400750064006500200020003a0049006e00740065006700650072000600000003000000030000000300000003000000060000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000002c0000
+0020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000031017bff8a0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000fc0000001c000000860100006100
+000005000000c00fc001c00f1006601810066018c001c00fc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c
+0000000100000031017bff8a0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e5000000050000009d01000078000000
+04000000c00f1006601810066018c001c00fc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000009743000002c300000a4300008a42bed7e8
+ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002e017eff8a004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000f900000019000000410100005e00000005000000f9001900f9005e004101
+5e0041011900f9001900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000004101000019000000450100005e000000050000004101190041015e0045015e004501190041011900250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000004501000019000000480100005e000000050000004501190045015e0048015e004801190045011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000
+250000000c00000004000000250000000c00000008000080560000003000000048010000190000004b0100005e000000050000004801190048015e004b015e004b01190048011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000004b0100
+00190000004f0100005e000000050000004b0119004b015e004f015e004f0119004b011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000004f01000019000000520100005e000000050000004f0119004f015e0052015e00520119004f01
+1900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000005201000019000000560100005e000000050000005201190052015e0056015e005601190052011900250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000005601000019000000590100005e000000050000005601190056015e0059015e005901190056011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c000000
+04000000250000000c00000008000080560000003000000059010000190000005d0100005e000000050000005901190059015e005d015e005d01190059011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000005d01000019000000600100
+005e000000050000005d0119005d015e0060015e00600119005d011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000006001000019000000640100005e000000050000006001190060015e0064015e006401190060011900250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006401000019000000670100005e000000050000006401190064015e0067015e006701190064011900250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000067010000190000006b0100005e000000050000006701190067015e006b015e006b01190067011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c0000000400000025000000
+0c0000000800008056000000300000006b010000190000006e0100005e000000050000006b0119006b015e006e015e006e0119006b011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000006e01000019000000710100005e000000050000
+006e0119006e015e0071015e00710119006e011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000007101000019000000760100005e000000050000007101190071015e0076015e007601190071011900250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000076010000190000007a0100005e000000050000007601190076015e007a015e007a01190076011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000007a010000190000007d0100005e000000050000007a0119007a015e007d015e007d0119007a011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080
+56000000300000007d01000019000000810100005e000000050000007d0119007d015e0081015e00810119007d011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000008101000019000000830100005e000000050000008101190081015e
+0083015e008301190081011900250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002e017eff8a0045003a0000000c0000000a00
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e2000000020000009a0100007500000004000000900fe0053018e00530189001900f9001250000000c
+00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000038010000bdffffffaf010000b0ffff
+ff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000250100001f000000580100002b0000000100000000400d4200040dc25a010000bdffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300
+0000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a8000000
+150100002c00000067010000370000000100000000400d4200040dc24a010000b0ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000520065006300740061006e00670075006c0061007200410072006500610000000700000006000000060000000300000006000000060000000600000006000000030000000600000004000000070000000400000006000000060000000a000000100000
+0035000000dcffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002e019effb8019eff00010101154001001000000004000000000000002100000008000000620000000c0000000100
+0000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000e2
+000000270000009a0100005500000002000000900fe0033018e003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b0000005400000058000000fe00000042000000070100004e0000000100000000400d4200040dc2330100009affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000d80000000f010000420000007f0100004e0000000100000000400d4200040dc2440100009affffff170000004c000000000000000000000000000000ffffffffffffffff7c00000062006f00740074006f006d004c00650066007400200020003a0043006f006f007200640069006e00610074006500000006000000060000000300000003000000060000000900000006000000
+060000000300000003000000030000000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000fe0000004f0000000701
+00005b0000000100000000400d4200040dc2330100008dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000000f010000
+4f000000740100005b0000000100000000400d4200040dc2440100008dffffff150000004c000000000000000000000000000000ffffffffffffffff7800000074006f00700052006900670068007400200020003a0043006f006f007200640069006e0061007400650000000300000006000000060000000700000003000000060000000600000003000000030000000300000003000000070000000600000006000000030000
+000600000003000000060000000600000003000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005b00cafe950045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000000000
+00000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000026000000cd000000bb00000012010000050000006002d00c60022011b00b2011b00bd00c6002d00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08
+400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005b00cafe950045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000
+c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000f000000b6000000d2000000290100000400000060022011b00b2011b00bd00c6002d00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000
+00460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b042008099c30000154300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000005800cdfe95004500250000000c0000000800008027000000180000000400000000000000fcf2e3000000
+0000250000000c00000004000000250000000c00000008000080560000003000000023000000ca000000710000000f010000050000002300ca0023000f0171000f017100ca002300ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000071
+000000ca000000750000000f010000050000007100ca0071000f0175000f017500ca007100ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000075000000ca000000790000000f010000050000007500ca0075000f0179000f017900ca00
+7500ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000079000000ca0000007d0000000f010000050000007900ca0079000f017d000f017d00ca007900ca00250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000007d000000ca000000820000000f010000050000007d00ca007d000f0182000f018200ca007d00ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00
+000004000000250000000c00000008000080560000003000000082000000ca000000850000000f010000050000008200ca0082000f0185000f018500ca008200ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000085000000ca00000089
+0000000f010000050000008500ca0085000f0189000f018900ca008500ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000089000000ca0000008d0000000f010000050000008900ca0089000f018d000f018d00ca008900ca0025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000008d000000ca000000920000000f010000050000008d00ca008d000f0192000f019200ca008d00ca00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000092000000ca000000960000000f010000050000009200ca0092000f0196000f019600ca009200ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c000000040000002500
+00000c00000008000080560000003000000096000000ca000000990000000f010000050000009600ca0096000f0199000f019900ca009600ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000099000000ca0000009c0000000f01000005
+0000009900ca0099000f019c000f019c00ca009900ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000009c000000ca0000009f0000000f010000050000009c00ca009c000f019f000f019f00ca009c00ca00250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000009f000000ca000000a30000000f010000050000009f00ca009f000f01a3000f01a300ca009f00ca00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000a3000000ca000000a70000000f01000005000000a300ca00a3000f01a7000f01a700ca00a300ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800
+00805600000030000000a7000000ca000000ac0000000f01000005000000a700ca00a7000f01ac000f01ac00ca00a700ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ac000000ca000000b00000000f01000005000000ac00ca00ac
+000f01b0000f01b000ca00ac00ca00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000b0000000ca000000b40000000f01000005000000b000ca00b0000f01b4000f01b400ca00b000ca00250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b4000000ca000000b80000000f01000005000000b400ca00b4000f01b8000f01b800ca00b400ca00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700008046000000600000
+0054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005800cdfe950045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021
+0100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000c000000b3000000cf00000026010000040000003002f010800bf010800ba00c3002a00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a
+0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a800000048000000d300000094000000de0000000100000000400d4200040dc27d00000009ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004c006f00630061006c0069007a0065
+00640053007400720069006e00670000000600000006000000060000000600000003000000030000000500000006000000060000000700000003000000040000000300000006000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005800f7feed00f7fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038
+000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000c000000ce000000cf000000fc000000020000003002500e800b500e250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000028000000e900000031000000f50000000100000000400d4200040dc25d000000f3feffff020000004c000000000000000000000000000000ffffffffffffffff5000
+00002b00200006000000030000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc00000039000000e9000000a4000000f50000000100000000400d4200040dc26e000000f3feffff150000004c000000000000000000000000000000ffffffff
+ffffffff780000006c0061006e006700750061006700650043006f0064006500200020003a0053007400720069006e006700ffff0300000006000000060000000600000006000000060000000600000006000000070000000600000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a0000001000000035000000dcffffff0c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbff
+ffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000028000000f600000031000000020100000100000000400d4200040dc25d000000e6feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f000000039000000f6000000b4000000020100000100000000400d4200040dc26e000000e6feffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000063006f0075006e0074007200790043006f0064006500200020003a00530074
+00720069006e00670020005b0030002e002e0031005d0000000500000006000000060000000600000003000000030000000500000007000000060000000600000006000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a0000001000000035000000dcffffff0c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdc
+ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002800000003010000310000000f0100000100000000400d4200040dc25d000000d9feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000035000000dcffffff0c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000003900000003010000770000000f0100000100000000400d4200040dc26e000000d9feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000073007400720069006e006700200020003a0053007400720069006e006700ffff0400
+000003000000030000000300000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005c0056fe59003b002100000008000000620000000c00000001000000110000000c000000010000000a
+00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000270000004b0100008000000086010000050000007002b01470026018000860180008b0147002b014250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005c0056fe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000
+000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001000000034010000970000009d0100000400000070026018000860180008b0147002b014250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b2420080d3c30000b24200006c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000590059fe59003b0025
+0000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000024000000480100005200000083010000050000002400480124008301520083015200480124004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000
+250000000c00000004000000250000000c00000008000080560000003000000052000000480100005300000083010000050000005200480152008301530083015300480152004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000530000
+00480100005400000083010000050000005300480153008301540083015400480153004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000005400000048010000550000008301000005000000540048015400830155008301550048015400
+4801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000055000000480100005600000083010000050000005500480155008301560083015600480155004801250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000056000000480100005700000083010000050000005600480156008301570083015700480156004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c000000
+04000000250000000c00000008000080560000003000000057000000480100005900000083010000050000005700480157008301590083015900480157004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000059000000480100005a0000
+00830100000500000059004801590083015a0083015a00480159004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000005a000000480100005b00000083010000050000005a0048015a0083015b0083015b0048015a004801250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000005b000000480100005d00000083010000050000005b0048015b0083015d0083015d0048015b004801250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000005d000000480100005e00000083010000050000005d0048015d0083015e0083015e0048015d004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c0000000400000025000000
+0c0000000800008056000000300000005e000000480100005f00000083010000050000005e0048015e0083015f0083015f0048015e004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000005f000000480100006000000083010000050000
+005f0048015f00830160008301600048015f004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000060000000480100006100000083010000050000006000480160008301610083016100480160004801250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000061000000480100006200000083010000050000006100480161008301620083016200480161004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000062000000480100006300000083010000050000006200480162008301630083016300480162004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080
+560000003000000063000000480100006400000083010000050000006300480163008301640083016400480163004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000640000004801000065000000830100000500000064004801640083
+01650083016500480164004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000065000000480100006600000083010000050000006500480165008301660083016600480165004801250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000066000000480100006700000083010000050000006600480166008301670083016700480166004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000
+000000250000000c00000004000000250000000c00000008000080560000003000000067000000480100006800000083010000050000006700480167008301680083016800480167004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000
+68000000480100006900000083010000050000006800480168008301690083016900480168004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000069000000480100006a000000830100000500000069004801690083016a0083016a0048
+0169004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006a000000480100006b00000083010000050000006a0048016a0083016b0083016b0048016a004801250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000006b000000480100006c00000083010000050000006b0048016b0083016c0083016c0048016b004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c
+00000004000000250000000c0000000800008056000000300000006c000000480100006d00000083010000050000006c0048016c0083016d0083016d0048016c004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000006d00000048010000
+6e00000083010000050000006d0048016d0083016e0083016e0048016d004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000006e000000480100007000000083010000050000006e0048016e00830170008301700048016e004801250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000070000000480100007100000083010000050000007000480170008301710083017100480170004801250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080560000003000000071000000480100007200000083010000050000007100480171008301720083017200480171004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c0000000400000025
+0000000c00000008000080560000003000000072000000480100007300000083010000050000007200480172008301730083017300480172004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000073000000480100007400000083010000
+050000007300480173008301740083017400480173004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000074000000480100007600000083010000050000007400480174008301760083017600480174004801250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000076000000480100007700000083010000050000007600480176008301770083017700480176004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000077000000480100007900000083010000050000007700480177008301790083017900480177004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008
+000080560000003000000079000000480100007a000000830100000500000079004801790083017a0083017a00480179004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000007a000000480100007b00000083010000050000007a004801
+7a0083017b0083017b0048017a004801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000007b000000480100007c00000083010000050000007b0048017b0083017c0083017c0048017b004801250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c0000000800008056000000300000007c000000480100007d00000083010000050000007c0048017c0083017d0083017d0048017c004801250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000590059fe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000d00000031010000940000009a0100000400000040023018d0073018d007801440028014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000006300000092feffffa900000085feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000360000004a01
+00006b000000560100000100000000400d4200040dc26b00000092feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007000720069006d0069007400690076006500bb00696106000000060000000300000003000000090000000300000003000000030000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000
+000000050000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000cbffffffdcffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c0000002d0000005a01000074000000650100000100000000400d4200040dc26200000082feffff0d0000004c000000000000000000000000000000ffffffffffffffff680000
+00540069006d00650049006e004d0069006e0075007400650073000000050000000300000009000000060000000300000006000000090000000300000006000000060000000300000006000000060000000a0000001000000035000000dcffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100
+0000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000620076fea90076fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000160000004f0100008b0000007d01000002000000d002601640076016250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a00000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db1800000000400000ad008fffb4008fffb8008fffbf0090ffc30090ffca0091ffce0091ffd50092ffd90092ffe00093ffe40093
+ffeb0094ffef0094fff60095fffa0095ff010196ff050196ff0c0197ff100197ff170198ff1b0198ff220198ff260199ff2d0199ff0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000
+000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000b00000007600000041000000fa0000004f0000000c000000180000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000008007d004f007d0043008d004a008c004e008c0045009b0049009b004000aa004400aa004b00a9004f00a900460
+0b8004a00b8004100c7004500c7004c00c6004000d6004700d5004b00d5004200e4004600e4004d00e4004100f3004800f3004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e00000000000000
+0000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000ad008fffbc0095ffad008fffbc008bff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000
+0000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000076000000450000008900000053000000020000000400000002000000020000008007d004700870048007d00470081005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400
+0000280000000c00000002000000280000000c000000030000004c000000640000000000000000000000ec010000930100000000000000000000ed010000940100002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e
+00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 1\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4CF9BFDB_274C_45d4_840E_25B594FCC045}{\*\bkmkend BKM_4CF9BFDB_274C_45d4_840E_25B594FCC045}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Coordinate}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 This data type represents a 3D WGS84 coordinate.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1E8248D4_9E33_4225_9A30_8603F5FF7002}{\*\bkmkend BKM_1E8248D4_9E33_4225_9A30_8603F5FF7002}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b latitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD Att.Type}{\fldrslt float}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Latitude.\ql\par
+Value range: >= -90 and <= 90\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_674B5C00_2085_4d2b_8F04_DCE4E81689A1}{\*\bkmkend BKM_674B5C00_2085_4d2b_8F04_DCE4E81689A1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+longitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt float}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Longitude.\ql\par
+Value range: >= -180 and <= 180\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AB921E4D_180C_4343_87A7_D94BBBF6F5AC}{\*\bkmkend BKM_AB921E4D_180C_4343_87A7_D94BBBF6F5AC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+altitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Altitude relative to WGS84 ellipsoid. Specified in meters.\ql\par
+Value range: -32767, .. , 32767 (0f7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A1239A09_12EF_4b27_AB34_645755408926}{\*\bkmkend BKM_A1239A09_12EF_4b27_AB34_645755408926}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocalizedString}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 A string in a specified language.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7FC7F2C5_3D34_485b_9F03_F31ED9D2E931}{\*\bkmkend BKM_7FC7F2C5_3D34_485b_9F03_F31ED9D2E931}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b languageCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 A language, specified as ISO 639-3 language code (lower case).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3AB5C90B_4535_47ed_B6E4_AE6D20683F95}{\*\bkmkend BKM_3AB5C90B_4535_47ed_B6E4_AE6D20683F95}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+countryCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The country specific variant for the language, specified as
+ISO 3166-1 alpha 3 country code (upper case)}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2AE385A7_B0BF_42df_AB78_0D804FA22DC3}{\*\bkmkend BKM_2AE385A7_B0BF_42df_AB78_0D804FA22DC3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+string}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 A string in the specified language.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1E47F8C8_496A_4c64_9308_48C9540710CE}{\*\bkmkend BKM_1E47F8C8_496A_4c64_9308_48C9540710CE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RectangularArea}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This datatype represents a rectangular area. The area is defined by
+the WGS84 coordinates \ql\par
+of its bottomLeft and topRight corners.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4F6AD107_D3BE_4e74_A940_8472C87942FF}{\*\bkmkend BKM_4F6AD107_D3BE_4e74_A940_8472C87942FF}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b bottomLeft}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Coordinate}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The bottom-left corner of the area.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EB063BDB_B8D8_46dc_8915_8A4C28089CCC}{\*\bkmkend BKM_EB063BDB_B8D8_46dc_8915_8A4C28089CCC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+topRight}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Coordinate}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The top-right corner of the area.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_191EB8FF_A6B6_4c16_B512_0B67D31BD76E}{\*\bkmkend BKM_191EB8FF_A6B6_4c16_B512_0B67D31BD76E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Version}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The API version of an interface implemented by the service.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_30194652_B91F_49cb_831F_36AE2CF5CF1C}{\*\bkmkend BKM_30194652_B91F_49cb_831F_36AE2CF5CF1C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b major}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UnboundedNaturalNumber}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The major version number.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C4B708C5_CB4C_44b9_8502_236C09134AA6}{\*\bkmkend BKM_C4B708C5_CB4C_44b9_8502_236C09134AA6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+minor}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UnboundedNaturalNumber}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The minor version number.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FEBB48B3_AC86_48b9_9B57_64D3F9F40D9D}{\*\bkmkend BKM_FEBB48B3_AC86_48b9_9B57_64D3F9F40D9D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+micro}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UnboundedNaturalNumber}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The micro version number.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_19648514_D4D8_478c_ADD6_B27B5663743D}{\*\bkmkend BKM_19648514_D4D8_478c_ADD6_B27B5663743D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+date}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The date of this version.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_6C79F722_69BB_4840_ACDB_428CD5C207CB}{\*\bkmkend BKM_6C79F722_69BB_4840_ACDB_428CD5C207CB}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b PrimitiveType}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TimeInMinutes}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Time in minutes since the standard base time known as 'the epoch',
+namely January 1, 1970, 00:00:00 GMT.\ql\par
+Value range -1, 0, .. , 2147483647 (0x7fffffff)\par
+Where -1 indicates not valid or not specified.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart iconset}{\*\bkmkend iconset}{\*\bkmkstart BKM_1DA87DE5_499D_4e43_B757_FCA82435E0E8}{\*\bkmkend BKM_1DA87DE5_499D_4e43_B757_FCA82435E0E8}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 iconset}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf3\b Overview\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Categories of Traffic Incidents can be represented by icons.\lang3081\hich\f5\dbch\f5\loch\f5\par
+\lang1033\hich\f5\dbch\f5\loch\f5 As each category can have its own icon, there is a set of icons, called an IconSet.\par
+However in different situations, different icons are needed, so it shall be possible to have several IconSets. An IconSet consists of:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls38\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls38\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 Meta data\line A description of the properties of the icons
+in the set.\par
+Definitions of the icons\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\par
+\lang3081\hich\f0\dbch\f0\loch\f0\cf0\fs24
+{\pict\pngblip0\picw806\pich736\picwgoal12090\pichgoal11040\picscalex71\picscaley70\sspicalign0 89504e470d0a1a0a0000000d4948445200000326000002e00802000000ee93f478000020004944415478daecdd7f6c1555fefff143a918b221da45fef8263631fa871fc827469346e346f3856897d41adca0f88ba40696a0065aad1a106a4ba5ae26cd7691146895ca0757519166ff60f915d1b82001a1
+18a4fb818f56eb57022b9b18ee55bb9f102de0f78f23b38799b9e79e9939339db9f7f98831d3f971ceed85fbe63567ce9d1997cbe504000000e254c15b00000040e4020000207201000080c805000040e4020000207201000080c8050000907e9586fb555555f166654e3e9fe74d0000200d18e5020000207201000010b9000000603372d5d4d458e9b24661d8a3ef9ee6870300008cad4af35d0f1f3e6c256fa9edb87eb488bc
+050000d223e42897778cca3b7025974d46b37c5b700ef7dd4d9faee24b7200000021548638c60934de8542cb853290e6a8c3870f7b8f521bf436a25903000090b1c8659e6c7cc3903e2d9977cda54300005016912b7a50730d6ef1e7010000885c16686659713510000094aa48f7e58a695ccaa45986c4000040868419e572e65139e352eacc2afd6055a1b95c855a708d8aa95dabdf6d64840c0000a4d9b85c2e67b21f8fb5ce
+221e6b0d00404af0c01f0000002217000000910b000000442e0000002217000000910b000000d1d9bffbbce15db27cef651ac7edb50addee4bdf75a107759bfc8e86b72803000044aed869024d4cf9cf7b5755fd9ece1a75d9246f25f3ab0100800c097661b1a6a6c6353e547391667f75ab5cd6ecefbba749bfde360bddb91e000020610146b99c04e35d10c5aebe4519fb31ecd7a4cdd0634ece40170357000020dec8153db8
+143ddc37d9588938def955ae112fdf0ce77a192679cbfc7193000080c89576412f113ac3639a8c15ba71d7b1cce50200002512b92c4619eff055a1913000008070c2dc972bd620e20d40faee345b5df3e54dc69c98710f0000e2106094cbc91faee94dceb226f144199432ecd7375119be068bf3e299cb050000bcc6e5723993fdaaaaaa127b4d4c87b2259fcff32600009006a99bcb95958c95d8ddf30100400948e328176c61
+940b008094a8e42d281ff1e5e6fffaaffffaddef7e9770a77ffce31f7ffffbdffb6e9a3061424c9d7674742c5dbad477d3575f7d1553a7bdbdbd9d9d9dbe9b76ecd81153a7fdfdfd1b366cf0ddf4a73ffd29a64efff6b7bf6dddba958f2a00221732efd4a953c977faf1c71f27dfe9ce9d3b93eff4a38f3e4abed323478e24dfe9175f7cc1a7090002a9e02d0000002072010000645ec80b8bbe4f988e95958e0a3d57d1e490a2
+0f67040000b01cb9920f1cb63a72ddd75edf6ca13b84056a04000020d885c59a9a1ad7188ff3a35c5077f0ddd9b5d27b947ecf40ed147d564fd1e7f99864291e0a0400008a0a30caa55e4c34d9c175e5b1d088917707fddde7cddb61f0090000a44498e9f385a28ceb81d0115bb3db4e445c3d04000051247a5f2ec30b703c191a000010b9c20b31649586e12586b800004044612e2c469f2dae6f21b1d9e826592ad0b71a0100
+00a2462e79bd2f74c2700e2fda827e4ff3767ca35b8dc2246f89025f90346f242baaabab356bbc5badb8f5d65b0badb9f522eb9dce9933a7d09a391759efb4b9b959bfc6bb43745d5d5d85d67429ec76ba79f3e6426b365f44e5055086825d58f4de98caf7565526cbb6f6d46cd5ef16e8f78dd24846f396f9568b794bdd74e0c001ef721c794bddb465cb16ef721c792be80e56f296cbd34f3f6dbd534d9cdabc79f3030f3ce0
+5d068032c1037f84b874d4ca3ba655f2aaabab4f9e3c5968a5ef562b79cb1ba49c95163356a150e55d693163b9e2d4aa55ab4c56dacd5bde44e5acf4dd6a256f798394ef4af216803254c95b20cafe7b91fa441547de8a2f54e9c514aaf48a462b19bfec0e74154d54ce1898c5ec6512a4e43018910b00910b4817bb57154dc82b8f6312ce92e424ad9846bc0ae52d19b6b8b008a00c716111b8c4962d5bb66cd912c70c7a5f71
+5f61d4e7ad8411b30010b980344a7e886b4c343737cbab8a714ca2070010b9905e314d990f14b092c95bae6f292696b19c91ad55170983595f51a81710addf18a2102e20028023e45cae40f7a3f27d5eb5f57ef58dfb6ed53f51dbbab17ad3b248de3fc2b98b4432635deaf5c4d29ecbf5f4d34fc7317d5eef81071e706e21410e0340e48a57acd1c14ae3290c3789bd247558cb3bc495c0f7160b2dc711ad7c97634d5aea0896
+ef68561c435c6a9c7245abf892961aa75cd18aa405a09c05bbb0e87bc32ad78dacbc776917ca6ddcd57d5c47b95af6bde7bb33f0e33d44d3afefeb773562eb15a6ed4d03000069106094cb95785c2b45814b60f2f93cfa8b7ae2e2588eefd534c36b82fad7e93d447d61b65e61d146c6f64d0300006325ccf4f9a2cfde71c66334ffeaeb1b09f41a0cf789f2b49fe8f1250d6f1a0000182b16e672c574192bfd57c7a2bcc2b27d
+d30000207285fc375ebd9865f195a57f1427f42b2ce7370d0080f214e6c262a149e2ea3ffc16e712995c71337f9d7130e9684cde34000090120146b99cf946ce42a195be09205098707511e857327c49ae1766e5157a1bc9ca9b06000062352e97cb99ec57555515a8dd947c632e5b5fdcb3fe6af3f9bceb0ff1d4a95371bcf2ddbb77ffee77bf2bf437e7e38f3f8ea3d37dfbf6fdfef7bff7dd3461c2849d3b77c6d1e9e1c387
+972e5deabbe9abafbefae8a38fe2e8f4d8b1639d9d9dbe9b76ecd871e4c891383a1d1e1edeb06183efa63ffde94f5f7cf1451c9dfee31fffd8ba752b751940498ae556a8631b745c57ebca366f15ca46c9ff6afbf6ed4bbed331f9a33f76ec58f29d0e0f0f27dfe93ffef10faa27000412d72817d2c035ca050000c60a8fb5060000207201000010b900000040e4020000187b211f6b1debd7c1f44f742e74885c50f7e126552e
+b5b5b5229e2f2d2e5fbe7c6060c0b765eb9d0e0d0df5f5f5c9ef06de7cf3cd4f3cf1c495575e1977a7274e9c58bb76adec74ead4a98b172fbee69a6b92797b4746461e79e49191919164dede919191d9b367ab6bbc8dc7f19beedab56bd3a64db95caebababaa9a969dab4697c6001946fe44a2dd7f373bcb9305b77e78a4f1c61ebe4c993dddddd9a5b4359efb4b3b3f3f4e9d3ebd6ad3b7ffefca38f3e3a3a3afac20b2fc4dd
+e9c68d1b8f1d3bb66ad5aa4993263534342c5bb6ecedb7df4ee0ed1542f4f7f78f8c8c24f6f60e0e0e0a21a64f9fded2d29258a71f7df4515757575b5bdbb5d75ebb70e1c2d75e7badabab8b0f2c80328d5cdea7ee38f74f77ed233c776357f73439cadbaf6b7fef1ddef98334e10c4e5cb87061fdfaf53b77ee1c1d1d9d3a75ead2a54ba74c99228478e59557b66fdffef3cf3fdf73cf3d0b162c700e696f6f7ff7dd774f9f3e
+ddd8d878fbedb7ab6dce9f3ffffaebaf4fb2d3bebe3eb970e1c20521846fdab3dee98a152be4c2a143878410b29104dede6fbffd76efdebd49bebd43434342881b6fbc31c94e77ecd83161c204b966fbf6ed7c54019424d3b95c32d6b8b294fa8419678deb2136ea9ee64715ea858065c5860d1bfafbfb1b1b1b7b7b7b8f1e3dfafcf3cf0b21de7cf3cdfefefe850b172e5ab468f3e6cd6fbdf596facf705353533e9f5fb76e9d
+aba9db6ebbeda5975e4ab85369dbb66d4288c9932727d6694343434b4bcbd5575fbd72e5ca643a7dfdf5d71b1a1a927c7be58d557b7b7bebeaea962c59f2dd77df25d0e9e0e0e0f8f1e39f79e699bababae5cb97eb3b0580128f5cbe092ce89ea1d392e181ea009813f2b8aae8f5fefbef0b2166cc98515d5dbd7bf7ee356bd638a30b3367cebce38e3b8410ea73571e7ef8e1ebaebb4e08e1fdb770c58a1593264d4ab85321c4
+a79f7edad3d32387d912eb74e3c68d4f3ef9e4a953a7d6ae5d9b40a7274e9c181e1e9e316346926f6f4545455555555f5fdf92254b8e1c39b27af5ea043afde9a79fce9e3d7befbdf73ef7dc73030303dddddd7c4801941e9b73b98a3e43dae25181e217a9cbe5cc9933f21f5775a5fc57f0b2cb2e933f7efffdf7cea6cb2fbf5c2e9c3b772e0d9d7ef6d9676d6d6de7ce9d6b6c6c9c3e7d7a62bf694545455d5dddcb2fbfbc7f
+fffe043a5dbf7efde38f3f9ef0dbeb0ce04d9932e5c5175f94175293797b6fb9e516b910d3433901a0742257b858632b0c91abcc4d9e3cf9cc9933a3a3a3cebf8b42882baeb842ae943f5e75d555e9ecf4871f7e686b6babacacecececbce9a69bc6e4379d387162029d1e3c78f0e0c183ce8fb5b5b59a79eb31fda66a6bf1753a71e2c4b367cfaad1960f2980d2134b69b33edc55b441f2562077de79a710e2c30f3ffcfaebaf
+6b6b6b172f5e2c84b8ebaebb8410efbdf7de071f7ce0fc98c24edf78e30d21c4ead5ab8be62d8b9d3ef6d863f5f5f5c3c3c372327b7d7d7d029deebec8f931814e172d5a545f5f3f343474e0c00121c4dd77df9d40a7b366cd9287c82f43185e4b05806c0936caa54936ea24f74033bd3447a9df7674cdb8f70632573be15e4f9998376fdee8e8a89ca6535353f3d4534f0921e6ce9dfbe38f3ff6f6f6cae5871e7a289d9deed9
+b3279fcfab53b83459c456a72d2d2ddddddd4d4d4d151515f7df7fffbc79f34af5ed7df6d967bbbbbb9b9b9bc78f1f3f7bf6ec647ed3050b16545656ca1b7fcc9c39d3fc722a0064c8b85c2e67b25f5555156f56e6e4f379de040000d2803913000000442e0000002217000000885c000000442e0000002217000000a28b7af7f9e8f720f5bd7b56b85b6a596c0a0000c0a231be2f97ef9310c33d1ed162532583fb7201009012
+81ef3e2f175c39c6f5401e27eef8eeecddd345138c34112a6853000000698c5c2671473fbc143d00c978e7fc9f3f3f0000506a91cb157d2cbe08e7418a9a90977c530000006310b98a3e28da156b5c571b8b0638c354a41fe20ad414000040ea2297d0ceca329ca765ae506c324f72459b020000484680fb7285c83a450f2cb4491f92bc13f643370500009080603789b0fe8dc542bb795bf3b6e03bd266de5439e02611000064
+327281c805000042e0813f000000442e0000002217000000885c000000442e0000002217000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000207201000010b90000004a43a5e17ef97c9e370b0000201c46b9000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000207201000024c0f4eef3555555bc
+5999c3330350e6285c142e203d18e5020000207201000010b9000000603372d5d4d458e9b24661d8a3ef9efac30dbb0050da3254b86a2ec59f1d50622acd773d7cf8b095b2a5b6e3fad16291759a8da90b009990a1c2e5ea823f3ba0c4841ce5f29e8479cfcce4b2f9e99aab05e770dfddf4678d642c00992b5c71473a0063ab32c4314e39f02e145a2e544134471d3e7cd87b94da20010b40e9152ef21640e4129aba63be83ac
+47d1d392ab1d4e1601944ce10240e4b25fef5ce788fc7900487f50a37001c840e4d20c3b591f8e62880b40b60a17550b286191eecb15d3e99de115432a1780122b5c004a5898512e673a829369d4090afaa053684a44a1165cc949ed5afd8a9077b2aa5addc85e00d25fb80094b671b95cce643f9e0e9b453c1d16658ec245e102d28307fe00000010b9000000885c000000207201000010b9000000885c00000088cefedde70d
+6f36e37b4b40ebf771d6b75fe8863a850ed1ef5f742580d44a4fe132af4ebe35cdf791db26bf23550bc85ee432a4a90b71f4a2af47defb167a0ff1dddf7c25801290cc47dbb03af9eee9ac51974df216550b885b45d042e03acdaab948b3bfbad5755f78cd19a4baa749bf819ea451e8ded0004a4fb60a17d50928550146b9bca338e683d8514ea10cfb8d785ac6591d50aa792beb852b74757206ba18b8023216b96ca513cde1
+be05224a779a8959de7dd46ae83dc4f7616ae62b018cad0c152ec3ea24fc2e747a5f8649dea26a01298d5c2939730d54253545c73901f5adadcce5029070e132a94ebee373515e18550b2072d9396165681d40e60a57a09a5668240c404a84b92f57ac9f676f1dd17717eec5b866a492c680929795c215a23a31e31ec88400a35ccec7d870d292adc90186fd162d4cbe531c7c5f1e73b9809291c5c265f81a2c0ede53b580048c
+cbe57226fb555555257932caac022bf2f93c6f02ca19858bc205a447eae67251aa00644e560a576277cf07e095c6512e70b2085841e1a27001e951c95b503e7ebd2fb67f7e36adc9f5ccf5dd326b5f5c8f4e3fb1e90f477b96f96eeadcb73fa64ef76e7a735bcf3adf4dfbf775c6d4e99b9bf6aeebd9e6bba962dfac983afdc3a613cb7a8efae7987dbf8ea9d3359bc4dc9e1c1f5500442e64dfc0df93ef3337b02bf94ebf1c38
+947ca78706be4cbed35d03639051fe3ec0670969f1bffffbbf9aadbffad5afe2e8f4f3cf3fd76cbdfefaebe3e8f4830f3ed06cbde38e3be2e8f4f5d75fd76c7de491476239e5fbc31f345b5b5a5ae2e8f4f1c71fd76cede9e921720100085b45f6b118bcf4614bddc762f0d2872d751f8bc14b1fb6d47d2c062f7dd852f7b118bcf4614bdd2762f0227201004a306c590f5e2661cb7af032095bd6839749d8b21ebc4cc296f5e0
+6512b62c06af90f36c9cafbd2476c33d2b1dd55c2ad021511a01900614aed2285c41f356f40343e4ade80786c85bd10f0c91b7a21f18226f453f3044de8a7e60d451aec4be5d6cab23dfe7276aca96ef8d76023502206d285cd92d5c5162933c3cc4585794d8240f0f31d6152536c9c3438c7545894df2f010635d5162933c3cc45857e8d8e41c1e62ac2bd82897f7f4c875d6a8eee0bbb3f7c42bd09e81da297a2657f4b11826
+2589676b002947e12a99c215316f856b2462de0ad748c4bc15ae9188792b5c2311f356b84622e6add08d54062a5bdec7da6b7670965d0b85968beea93f81f31ecee013000a57c9b092b79ca60cc7baace42da729c3b12e2b79cb69ca70accb4ade729a321cebb292b79ca60cc7baace42da7a940635d61e67215aa08becfb40fdd9add766c556d001945e10230b62a92eccc70e6a61cf166723a8034a070a581c5212ef3062d0e
+719937687188cbbc418b435ce60d5a1ce2326fd0e21057880613bd49448833bf349ca571a60894330a17002b2ac27d92a3d78258dbb75892027d3908406a51b8b25bb8ac0f7199346b7d88cba459eb435c26cd5a1fe23269d6fa109749b3d687b882361b6094cbf9864bb8afbaa847159d06a1d9d3bc1ddf9aa2be7293b2a51ea29ec28638034eb58e1b7e59681dbc64a5f3a3ba6cc9f18e07e5c2b4d677d495f247dfadd1f577
+ac940bf7b5b6a92be58fbe5ba35bd9d12f17da5aef53576a7e8ceec18ee372e19dd669ea4af9a3b3d5b543443774fcb230d87ac94af9a3efd6b851b84ab570555757ab3f9e3c79d259efbb6cc5adb7deaafe78e0c00167bd5c76767036453767ce1cf5c72d5bb638ebe5b2b383b329bae6e666f5c755ab5639eb9d65ef8f11757575a93f3efdf4d3ce7ab9aceee06c8d68f3e6cdea8f0f3cf080b35e2e3b3b389b42ab0c5a7d8a
+2e182edbda53b355bf5ba0df374a23d9c85bfa68e50432ab79cbc952eab2c9d62879cbc952eab2c9d62879cbc95285729593c92ce62d2748a9cb2a8b49cb15ad5ccb265be34e5d14aed22b5c6a9672c52fcdca88d420e58a5f6af0722d47a4062957fc5283976b392257ae328965d1a929ca15bfac272d6fc6f2c62f3578b99693885ca5caf7dcb78c2e17fa0e5f39d94b2ed84e5dbe29ca49577647b61cbe29ca49577647b61c
+853296dd312d9338a50e7159cf5b85c6ae7cd35592798bc255f27c87b5e4421ca94b93ae2c8e6cf9f24d571647b60ae5aa42435cf17186b5c4a5435cd6f356a07495f42857a9623256e040067b64fcb23ed0a5e77bd93101f2da22918bc21547de52d9bd9ea8c95b89b13882152e6ff96eb23ed0a58f56ced097f5eca51fc192a35f442e5815c384ada2f4d70d2d5e555469ae1bcae95c718c78c53db255285ae9af2ac631e255
+e8baa13aa98bd48512967c2693171c93cf6409f30e7d25409dd415317555f0d90054f7b5b6ddd7dae6cca38fdb98e4b08447b61cc42c20265bb66cd9b2658b77a6574c12bbc2e89bb712167d708bc8050f86b8c6285aadece8975715639d449f1846b09018eb5f48345174042b8e21aeb45d55945be55545bbd716931cbe72441fbe22722142de4a247eb91295fec798f296eb5b8ac9e42df5c7b6d6fbe47fa2c0447b5b79cbf5
+1dc664f216f10be596c092b9a4e89a479f7c025b7591b8f4bb8dd6b9e6d1673d81859ccb15e8367abe8f7db5deafbef142b7bad13c98d6bab17ad38cf29628706bae38f396287cf32dfdd628794b14bef9967a3dd1e230986b042b99cb883254159a23ff4eebb438a6cfcba9f1856ebe35d83a36f7e5a270956ce14a1f79db88386ecda5a15e4f2cedb95c4f3ffd747cd3e70b79e081072cde976b5c2e9733d9afaaaa2afa8730
+e10f7f88ca95c2721f453e9f577ffcf5be2a31f0f7587eb7a13db99eb9be5b66edabc80dec8aa3cf91a14f8ef62cf3ddd4b96fff970387e2e8f49ba1a16d3deb7c37eddfd77968e0cb58dedda16fd6f56cf3dd54b16fd6ae815c1c9d7e3234b2ace7a87f35d8f7ebbf0fc4f2f768cf9098db63f3d7a1709540e192e2b801fdaf7ef52bfd0e71dc80fefaebafd7ef10c70de8efb8e30efd0e71dc80fe91471ed1ef10c70de85b5a
+5af43bc47103fa9e9e1ec33d2b827ef6bc7782713dc955ddc159efba1bb2f3a3bac6d5b2f701b16aa1f11ea2e9d7f7f5bb1ab1f50ad3f6a601a07051b88034a80c54b6d4c2e13da7f13dbf918fb9d09fa8898b3798f13d7b0b7a9ee7fb3abd87a82fccd62b2cdac8d8be694079e62d0a570914ae5ffdea577607ba8a0e71c91129bb035d4587b8e48894dd81aea2435c7244caee4057d1212e39226577a0abe810971c91b23bd0
+653ec425c24d9f2ffa080be7b446f3afbebe9140afc1709f280fcd881e5fd2f0a601e58cc245e1023233caa539898ce9dc34fd67cfbc69404651b832f7a6591ce83219e2922c0e74990c71491607ba4c86b8248b035d26435c92c5812e93212ec9e24057a0212e0b91cb35261cd32969fa4f9a79d3806ce52d0a5716df342ba9cb3c6f594c5de679cb62ea32cf5b16539779deb298baccf396c5d415346f897017160bcdb5543f
+3f76bfec23424d4e4aec74d3a4a33179d30050b84aac70050d4c560e0f1a98ac1c1e343059393c6860b27278d0c064e5f0108129fae1012297fc68b93e5dbe2ba31711a7d9101f66c397e47a61565ea1b791acbc6940a9a270955ee10a9dbaa2c4b5d0a92b4a5c0b9dbaa2c4b5d0a92b4a5c0b9dbaa2c4b5d0a92bf48121efcb655211d2f0af7eb6c287f557cb7db9ace3be5c22cbf7e5a27065b17069985f648c3836a632bfc8
+18716c4c657e9131e2d898cafc2263c4b13195f945c68863632af38b8c11c7c62a4baf5eb806bdcbb66c15ca46c9ff6a23439f24dfe9374343c9773a34f44df29d7e3234927ca77b8644e9a17065ee4d93414a1fbc2c862d3548e98397c5b0a506297df0b218b6d420a50f5e16c3961aa4f4c1cb62d85283943e78450c5b525ca35c4803f39345a02451b8285c407af0586b0000002217000000910b000000442e000080b117f2
+b1d6b17e4545ff60d44287c805751fdf95e5acb6b65608b17bf76eeb2d2f5fbe7c6060c0b765eb9d0e0d0df5f5f51d3b764c0871f3cd373ff1c413575e7965dc9d9e387162eddab5b2d3a953a72e5ebcf89a6bae49e6ed1d191979e4914746464692797b47464666cf9eadaef1361ec76fba6bd7ae4d9b36e572b9eaeaeaa6a6a669d3a659af27292c5c110fa47051b8285cd92a5c9525f081f47d10bde1d3e9cb4a1c35ebe4c9
+93dddddd478e1c49acd3cececed3a74faf5bb7eefcf9f38f3efae8e8e8e80b2fbc1077a71b376e3c76ecd8aa55ab264d9ad4d0d0b06cd9b2b7df7e3b81b75708d1dfdf3f323292d8db3b38382884983e7dbae66bd8d63bfde8a38fbababadadadaaebdf6da850b17bef6da6b5d5d5d65f2a92c7a7b7750b8285c2553b82a03d505ef0d8bf5a34a727f754f93a3bcfdbaf677ed499c0a7ab278e1c285f5ebd7efdcb973747474ea
+d4a94b972e9d32658a10e295575ed9be7dfbcf3fff7ccf3df72c58b0c039a4bdbdfddd77df3d7dfa746363e3edb7dfaeb6397ffe7cfd1d68ac77dad7d727172e5cb82084f02d9ad63b5db162855c3874e89010423692c0dbfbedb7dfeeddbb37c9b7776868480871e38d3726d9e98e1d3b264c9820d76cdfbedd7aa04967e102858bc2556e85cb742e972c16ae92e45425758dbad2b5a7f951857a216059b161c386fefefec6c6
+c6dededea3478f3efffcf3428837df7cb3bfbf7fe1c2858b162ddabc79f35b6fbda5fe6d6e6a6acae7f3ebd6b96fbc7edb6db7bdf4d24b09772a6ddbb64d083179f2e4c43a6d6868686969b9faeaab57ae5c994ca7afbffe7a434343926feff0f0b010a2b7b7b7aeae6ec99225df7df75d029d0e0e0e8e1f3ffe99679ea9abab5bbe7cb9bed340525eb8b8a448e1a2709555e1aa8852c882ee19ba8e181ea8962a1e38a8f1fefb
+ef0b2166cc98515d5dbd7bf7ee356bd638217de6cc99f216c65bb76e75f67ff8e187afbbee3a2184f7afd48a152b264d9a9470a742884f3ffd54de0b78fefcf98975ba71e3c6279f7cf2d4a9536bd7ae4da0d313274e0c0f0fcf983123c9b7b7a2a2a2aaaaaaafaf6fc99225478e1c59bd7a75029dfef4d34f67cf9ebdf7de7b9f7beeb9818181eeeeee98fee6a7b37081c245e12a93c265732e57b8f90731cd5a602e97c69933
+67e4df5175a5fccb74d96597c91fbffffe7b67d3e5975f2e17ce9d3b97864e3ffbecb3b6b6b673e7ce3536364e9f3e3db1dfb4a2a2a2aeaeeee5975fdebf7f7f029dae5fbfdefcc95fb63a75ce83a74c99f2e28b2fcaeb11c9bcbdb7dc728b5cf8f8e38f93fc388c55e162888bc245e12ab7c265337285ab14b6ea0ba5cadce4c993cf9c39333a3aeafcf512425c71c51572a5fcf1aaabae4a67a73ffcf0435b5b5b6565656767
+e74d37dd3426bfe9c4891313e8f4e0c183070f1e747eacadadd54cff8ce937555b8bafd38913279e3d7b56fd1722c98fc318162ed7954acd4a50b8285c2550b862296dd6cf1a8b36486d0ae4ce3bef14427cf8e1875f7ffd756d6dede2c58b851077dd759710e2bdf7de934f4e953fa6b0d337de784308b17af5eaa265cb62a78f3df6587d7dfdf0f0b09c135a5f5f9f40a7bb2f727e4ca0d3458b16d5d7d70f0d0d1d38704008
+71f7dd7727d0e9ac59b3e421724eb1e12589ac172e6736981ae07c5782c245e12a8dc25519b4b814aa02ea5cd14013263447a95f1ad29cf9395f4a52db09f77acac4bc79f3464747e5d5ee9a9a9aa79e7a4a083177eedc1f7ffcb1b7b7572e3ff4d028e91bd3000020004944415443e9ec74cf9e3df97c5e9d09a1f948dbeab4a5a5a5bbbbbba9a9a9a2a2e2fefbef9f376f5ea9bebdcf3efb6c7777777373f3f8f1e367cf9e9d
+cc6fba60c182caca4af9fdf99933679a5f95c874e102858bc2556e856b5c2e9733795faaaaaaf8c0674e3e9fe74d4039a37051b880f4e0813f000000442e0000002217000000885c000000442e0000002217000000a28b7af7f9e8379bf1bdbd4db85b6a596c0a4009a3700148de18df97cbf74988e11e8f68b1a992c1ed6d50e6285c142e203d02df7dde75e225cb81ebb9164ed5f0ddd9bba78ba6be682a51d0a60094090a17
+808c452e93aaa13f4b8b5e47649574fecf9f1f000a1780528b5cf19d8439cf23d3d4cae49b025062285c00b211b98a3effd5551d5c83f645eba06171d19f29066a0a4039c42c0a17808c452ea19ddc6038dd21d0695fa1fa68ab29006592ba285c00c65c45a0cf7fe81a147493bed678e7bd866e0a4069a370014889603789b0fec59f42bb153ae9d47f773a5053e580ef5aa3cc51b8285c40562317a85c40e62217285c401af0
+c01f0000002217000000910b000000442e0000002217000000910b000000442e0000002217000000885c000000442e0000002217000000885c000000442e0000002217000000885c000000442e00000010b9000000885c000000a5615c2e97e35d0000008815a35c000000442e0000002217000000885c000000442e0000002217000000885c000000442e00000010b90000001250a9d9565555c51b5432f2f93c6f02ca0d458c
+6205a407a35c000000442e0000002217000000a246ae9a9a1a2bddd4280c7bf4dd537fb8611700ca07450c404a54ea371f3e7cd84aa952db71fd68b1b03acdc6d40580cca18801488900a35cde732fef09995c363f4b73b5e01ceebb9bfe4c91f20420d3450c4069ab0c7afae55d28b45ce82c4d73d4e1c387bd47a90d12b00084ce5e14310019885ce665c2bb83ac41d10b8dab1dcd192db50c40e68a98ba95220610b92cd438
+d779611c1d310d0240e68a1873b9002297cd3a12f4741300c61c450c407481efcb15d3944f93668b7eb99a3f4e00d92d62004a9be9289733c9c039a5339f7650681a44a1165c27946ad7ead7825c9d320d0200450c406a8dcbe57285b6f144d852c2936251862862142b203d78e00f000000910b000080c8050000002217000000910b000080c805000080e8ecdc7ddef0d914beb7018ce3f63385ee94a3ef5affb40dfdefc8dd
+74804c4b4f1133a95445eb9befa6702b01a42b72194ae6f1619ae4543463396bd46593bcc593d1807290cc27ddf06c5053df9c4dbefb9baf046051f10b8b353535aef3a79a8b34fbab5be5b2667fdf3d4dfaf5b659e8a6cf00ca56b68a98e1f924f50dc89c4ac34fb8e19990e1d9987965d1f76bd266e8733567a08b133e20d3792beb452c8efa06207591cbd6075b73b86fb2b15247bcf3120a4d7728743dd1306ff1643420fd
+3254c43413b30ceb9bfe2990e62b018c41e44ac9d96a8812e95b867c4f6da39f460be64000885cc44cea89a6be09e6720144aeb13d49f53d2bf5ad71fcb500908622c6c406a09498de972bd620e22d2bfaee345b5df3494daa153352817290952256b49740f50d407a541a7ec20daff7db9a0d60d8af6fc5317c0d164f1f990301a456168b98a652695e1e73b980941b97cbe50a6dabaaaa4af204946904b1cae7f3bc09283714
+318a15901ea998cb9595f294d8ddf301640b190b40516919e502278e807514318a15901e95bc05e5e937bff94d4c2d7ffbedb75f7cf185efa6f9f3e7c7d4e9fffccfff1c3870c077536767674c9deeddbb77dbb66dbe9bb66edd1a53a77ff9cb5f366edce8bb69686828a64e5f7df5d53ffef18fbe9b2a2a2a62eaf40f7ff8c3b265cbf8a802207221f3fef5af7f25dfe93ffff9cfe43bfdf2cb2f93eff4d34f3f4dbed37dfbf6
+25dfe9ae5dbbf834610cfd7ad529cdd65cf3d571747adbaaf7749fc4e6dfc6d1e9c2552feb4e8d9a9f8ca3d397572dd46c7db2f9d5383a7d6fd56d9aadbf6d8ea5d09d5af56bcdd6ab9b73442e000061abc83e1683973e6ca9fb580c5efab0a5ee633178e9c396ba8fc5e0a50f5bea3e1683973e6ca9fb440c5e442e004009862debc1cb246c590f5e2661cb7af032095bd6839749d8b21ebc4cc296c5e015601e86f37dbdc4ee
+146aa5a39a4b053a244a2300d28622561a452c68de8a7e6088bc15fdc010792bfa8121f256f40343e4ade80786c85bd10f0c33ca95d877a16d75e4fbe8314da9f2bdb94ea04600a419452cbb452c4a6c92878718eb8a129be4e121c6baa2c426797888b1ae28b1491e1e62ac2b4a6c92878718eb0a1d9b9cc3438c75151fe5f29e12b9ce14d51d7c77f69e6c05da33503b45cfde8a3ecfc7a40cf15020204328622553c422e6ad
+708d44cc5be11a8998b7c23512316f856b2462de0ad748c4bc15ba91caa2a5cafbbc7acd0eae27d2173ad9f2eea0bf71b3793b0c3e01a08895242b79cb69ca70accb4ade729a321cebb292b79ca60cc7baace42da729c3b12e2b79cb69ca70accb4ade729a0a34d6653a97ab5015703d103a626b76dbb155a90194008a1880b15511770786b335e5283793d301a40d452c0d2c0e719937687188cbbc418b435ce60d5a1ce2326f
+d0e2109779831687b8423418fb4d22429ceda5e1cc8cb343001431001655987f7aa37ffe636ddf62190af4852000994011cb6e11b33ec465d2acf5212e9366ad0f7199346b7d88cba459eb435c26cd5a1fe20ada6c65d19336674a698882a21e5574ea83664ff3767ceb88faca4d4a957a887ada1ae2ac378b4e9e3c2917aaababd595ce8feab22dce13126fbdf55675a5fcd1776b745bb66c910b73e6cc5157ca1f7db746b76a
+d52ab9d0dcdcacaed4fc18ddd34f3f2d17bababad495f24767ab6b87881e78e001b9b079f36675a5fcd1776b1c2862a55cc43a6ef865a175f09295ce8feab225c73b1e940bd35adf5157ca1f7db746d7dfb1522edcd7daa6ae943ffa6e8d6e6547bf5c686bbd4f5da9f931ba073b8ecb85775aa7a92be58fce56d70e11ddd0f1cbc260eb252be58fbe5bc3a934a93845170c976deda9d9aadfcdb0c21aae2cd5bca58f564e20b3
+9bb79c2ca52e9b6c8d92b79c2ca52e9b6c8d92b79c2c5528573999cc62de728294baacb298b45cd1cab56cb2358ed445112bc12256345a3981cc6ade72b294ba6cb2354ade72b294ba6cb2354ade72b254a15ce564328b79cb0952eab2ca62d272452bd7b2c956fb91ab54f99eef72b9d077f8cac95e72c17aeaf24d514ebab23bb2e5f04d514ebab23bb2e52894b1ec8e6999c4297588cb7ade2a3476e59baee2ce5b14b1f2e2
+642fb91043ead2e430bb235b8639cceec896790e4b8c3ac4653d6f99e4304712a35ca58a74652b90c12219bfac0f74e9f95e764c80bcb648e4a288c5c2f6f544f8c62feb035d45e3975c482c7b39098cc885b8c871ac8403969cb0a519d3b27855d121276c151ad3d26f8d92ab448111afb87395feaaa2f5112f4da852277591ba103254f9cee58ad3b4d6774c666b59bcaa2884b8afb5ade86c2db983c5112f354e2536b2f54e
+eb347da82a7ad93184c1d622b3b5d4495d5c58847dea65c4c43a7566cac77425d1973353de3757e9b78626c396f77a62ac57180b5d468c75644b13aa8859882ae669f245b394dd5ca561325bcb99479fcc5cae98ae30eae772c534b25574b656f4c12d47051f5b6442c2516cacac5ab54a8e81257c6d11401cb1ac84adece897c360095f5bcc3422172ee19d1a9fc05897730f8842012bbe4b8aae35eab714634a54de35cec856
+f345c2ea6547f51e10ce1af562621cbfa9730f08750d235b885752635d9a80954cde728d7b2596b19c91adb6d6fbe47f22e6cb8eae71af647ed3e817100b09706131d0adf37c1ff51a8ea6057de3856e6fa379186d7cb2f252d52f24267655f1d65b6fd5dc794b6eb27e6bae3973e668eebca5df1a9a3a353eb1b95c5d5d5d9a09f2faada16ddebc5973e72dfdd6b1fa1852c452f5a61597beb95c7293f55b73e9e77299ccf40a
+218573b98acef40a473f97abe84caf40c6e572051f825d555515fd8397f0073e44b54a83045e6a3e9f577ffccd6f7ef3af7ffd2b8edfe5ecd9b35f7cf185efa6f9f3e7fff39fff8ca3d37c3eef1d2a933a3b3bbffcf2cb383afde69b6fb66ddbe6bb69ebd6ad9f7efa691c9d7ef5d5571b376ef4dd343434b46fdfbe58cee38f1fffe31fffe8bba9a2a262d7ae5d7174fac9279f2c5bb62c622314b1b18a5c168b9514c70de873
+cd57eb7788e306f4fb9a7fabdf218e1bd0bfdafca47e87386e40ff64f3abfa1de2b801fd6f9b8bd4c0386e407f7573ce70cf0a938f90f7ee2faea7b7aa3b38eb5d7740767e54d7b85af63e14562d2ede4334fdfabe7e5723b65ea1f7cd49e74b05ca13452c68111bf3370d28499586a72cbe15a4d0398d7cb485fee44c5cbca98cef195bd0733bdfd7e93d447d61b65ea1ef295d3a5f2a509e798b2216b488a5ea4d7346a4ec0e
+74151de29223527607ba8a0e71c91129bb035d4587b8e48894dd81aea2435c7244caee4057d1212e39226577a0cb7c884b984f9f2ffad80ae75446f3afbbbe9140afc1709f280fca88125332f45281324111cbe89b0694cb2897e6c431a6f3d1f49f3167e8e49ebfdf0045cce22b1cdb37cde24097c910976471a0cb64884bb238d06532c425591ce83219e2922c0e74990c71491607ba020d71858c5cae71e0984e43d37fa2cc
+4b05b29bb72862597cd3aca42ef3bc65317599e72d8ba9cb3c6f594c5de679cb62ea32cf5b165357d0bc25cc2f2c169a5fa97e66ec7ec147849a8494d82966f48e32f45281d2885914b1a01d8dc99b66373059393c6860b27278d0c064e5f0a081c9cae141039395c34304a6e88757143df9905f24715d8cf7ae8c5e389c66437c800d5f92eb85597985a11b49fea50265882216a288a5fc4d0b9dbaa2c4b5d0a92b4a5c0b9dba
+a2c4b5d0a92b4a5c0b9dbaa2c4b5d0a92bf48101eecb655205d2f0af7b864246922f95fb7259c77db944d6eecb4511cbc4abf5bd2f972ff38b8c11c7c654e61719238e8da9cc2f32461c1b53995f648c3836a632bfc818716c4c657e9131e2d8586569d408d74077cacb534a5eead9b36793efd4bc98dacd46c977fad5575f25dfe9f1e3c793eff4934f3e1125812296b9374d06297df0b218b6d420a50f5e16c3961aa4f4c1cb
+62d85283943e78590c5b6a90d2072f8b614b0d52fae015316c493647b9906663927580b14511a35801e9c163ad010000885c000000442e00000010b9000000c65e80c75ac7fab514fdc3500b1d2217d47d7c57c2abb6b65608b17bf76eeb2d2f5fbe7c6060c0b765eb9d0e0d0df5f5f51d3b764c0871f3cd373ff1c413575e7965dc9d9e387162eddab5b2d3a953a72e5ebcf89a6bae49e6ed1d191979e4914746464692797b47
+464666cf9eadaef1361ec76fba6bd7ae4d9b36e572b9eaeaeaa6a6a669d3a659a92d292c62110fa45851ac2856d92a569519fd10fa3e7cdef089f488a97e9d3c79b2bbbbfbc891238975dad9d979faf4e975ebd69d3f7ffed1471f1d1d1d7de18517e2ee74e3c68dc78e1d5bb56ad5a449931a1a1a962d5bf6f6db6f27f0f60a21fafbfb474646127b7b0707078510d3a74f6f696949acd38f3efaa8abababadadedda6baf5db8
+70e16bafbdd6d5d555c29fc4a2b77707c58a625532c5aab2682df0dea4583faa24f757f73439cadbaf6b7fd79ec4295b278e172e5c58bf7efdce9d3b474747a74e9dba74e9d22953a608215e79e595eddbb7fffcf3cff7dc73cf82050b9c43dadbdbdf7df7ddd3a74f373636de7efbed6a9bf3e7cfbffefaeb93ecb4afaf4f2e5cb8704108e15b40ad77ba62c50ab970e8d02121846c2481b7f7db6fbfddbb776f926fefd0d090
+10e2c61b6f4cb2d31d3b764c983041aed9be7dbb954093ce22068a15c5aadc8a956e2e972c10ae32e45422758dbad2b5a7f951857a2160c56ac3860dfdfdfd8d8d8dbdbdbd478f1e7dfef9e785106fbef9667f7fffc2850b172d5ab479f3e6b7de7a4bfd9bddd4d494cfe7d7ad5be76aeab6db6e7be9a59712ee549277819f3c7972629d363434b4b4b45c7df5d52b57ae4ca6d3d75f7fbda1a121c9b77778785808d1dbdb5b57
+57b764c992efbefb2e814e070707c78f1fffcc33cfd4d5d52d5fbe5cdf6951292f625c52a45851accaaa5855042d5e41f70c5d3b0c0f54cb130f160ce1fdf7df1742cc9831a3baba7af7eedd6bd6ac7102fbcc9933efb8e30e21c4d6ad5b9dfd1f7ef8e1ebaebb4e08e1fdebb562c58a49932625dca910e2d34f3fede9e99167ae8975ba71e3c6279f7cf2d4a9536bd7ae4da0d313274e0c0f0fcf983123c9b7b7a2a2a2aaaaaa
+afaf6fc99225478e1c59bd7a75029dfef4d34f67cf9ebdf7de7b9f7beeb9818181eeee6e8b7fdbd359c440b1a2589549b18a3a972bdc9c8398662a30972b843367cec8bfafea4af917ebb2cb2e933f7efffdf7cea6cb2fbf5c2e9c3b772e0d9d7ef6d9676d6d6de7ce9d6b6c6c9c3e7d7a62bf694545455d5dddcb2fbfbc7ffffe043a5dbf7efde38f3f9ef0dbeb9c134f9932e5c5175f94d72692797b6fb9e516b9f0f1c71fc7
+fd1118ab22c61017c58a62556ec52a6ae40a571d6cd514ca537493274f3e73e6cce8e8a8f3574d0871c51557c895f2c7abaeba2a9d9dfef0c30f6d6d6d9595959d9d9d37dd74d398fca613274e4ca0d383070f1e3c78d0f9b1b6b656331534a6df546d2dbe4e274e9ca83efdd35516e3308645cc75a552b312142b8a5509142b6be5ccfa9962d106a94756dc79e79d42880f3ffcf0ebafbfaeadad5dbc78b110e2aebbee1242bc
+f7de7b1f7cf081f3630a3b7de38d378410ab57af2e5ac22c76fad8638fd5d7d70f0f0fcbf9a1f5f5f50974bafb22e7c7043a5db468517d7dfdd0d0d0810307841077df7d77029dce9a354b1e22e7171b5e9ec86211736683a901ce7725285614abd22856952605a5d0275f9d1f1a689284e628f58b429ab33de78b486a3be15e4f999b376fdee8e8a8bcf25d5353f3d4534f0921e6ce9dfbe38f3ff6f6f6cae5871e7a289d9dee
+d9b3279fcfabb322341f6f5b9db6b4b4747777373535555454dc7ffffdf3e6cd2bd5b7f7d9679fedeeee6e6e6e1e3f7efcecd9b393f94d172c5850595929bf4b3f73e64cf32b14992b62a05851accaad588dcbe57285b6555555f1212f19f97c9e3701e5862246b102d28307fe00000010b9000000885c000000207201000010b9000000885c000000882eccdde7a3df60c6f79636e16ea965b1290065822206207963705f2edf
+2721867b3ca2c5a64a1eb7ba4119a28851ac80f430bafbbceb644b9600d7b32c9c4ae1bbb3774f174d4dd1549fa04d01284314310019885c2695427f6616bd76c8cae8fc9f3f330081f216450c400622577c275ece33c834f531f9a60094308a1880f446aea2cf7c755504d7407dd1da675850f46787819a02506e318b22062003914b682734184e710874aa57a826da6a0a4019a62e8a1880315751f4331fbaee04dda4af2fde
+b9aea19b02503e28620052a2f84d22ac7fd9a7d06e854e34f5df970ed45439e37bd7284314318a1590a5c805aa1890e9c8058a1590063cf007000080c805000040e402000000910b000080c805000040e402000000910b000080c8050000002217000000910b000080c8050000002217000000910b000080c8050000002217000000910b000000442e0000002217000040691897cbe5781700000062c52817000000910b000080
+c8050000002217000000910b000080c8050000002217000000910b000000442e00008004546ab6555555f106958c7c3ecf9b807240e1a27001e9c42817000000910b000080c805000080a891aba6a6c64a37350ac31e7df734793db65e33808cca56e132ec0240d655ea371f3e7cd84ad952db71fd98ce520b20bb3254b8d46663ad8d00c65c80512eef7998f7e44c2e9b9fb1b95a700ef7dd8d680520e8a917850b404a54063d
+15f32e145a2e74c6a639eaf0e1c3dea3d406f567b1724f8a1a800c152e00442e7f454b867707570c0a5d7488530042578f94172e8a1b40e4b25fef5ce788d64f6701202b85cb09649c520244ae78c390dd90a44ead207e01c844e1a258016522f07db9623a0f8b3ef07ef8224a1880ac142e46b680f2613acaa58e7ebbd6148d3885a644146ac17572e93bf0ce38168012285ce6af0740d68dcbe57285b6f174d852c2d3615126
+285c142e209d78e00f000000910b000080c8050000002217000000910b000080c805000080e8ecdc7ddef02e59be37fd8be906f485da2f74439d4287e8f72fba12406aa5a770995727df9ae6fbc86d93df91aa05642f7219d2d485387ad1d723ef7d0bbd87f8ee6fbe12400948e6a36d589d7cf774d6a8cb26798baa0524a9c2a410b84eb36a2ed2ecaf6e95cb9afd7df734e937d0b3320add1b1a40e9c956e1a23a01e5a0d230
+a6180ee7180e2999c7237dbf114fcb38ab034a356f65bd7085ae4ece4017035740c62297ad74a239dcb74044e94e3331cbbb8f5a0dbd87f83efecc7c2580b195a1c265589d84df854eefcb30c95b542d20a5912b2567ae81aaa4a6e83827a0beb595b95c00122e5c26d5c9777c2eca0ba36a01442e3b27ac0cad03c85ce10a54d30a8d84014821d3fb72c5fa79f6d6117d77e15e8c6b462a690c287959295c21aa1333ee81cca9
+348c298693966c4d0e30ecb76861f29de2e0fbf298cb05948c2c162ec3d76071f09eaa05246c5c2e972bb4adaaaa2ac993516615c42a9fcff326a01c50b8285c403aa5622e17a50a40e664a5702576f77c007a6919e502278b8015142e0a17904e95bc0565facfd2c0ec985afeeb9fffdf6ddd470a74faa7983a5df7e7bf3dd4bdd577d38481433175daf1e73f2fed5ee3bbe9d0c084983afdf39f3bd6742ff5ddf4a781b8a2c6
+dffebc6e6bf743be9b66c7d6e9fffbf35f8f74dfc6471500910bd977f04cf27d1e3ff845f29dee3c78700cdedd833b93eff48b83c793eff4cc413e4b488b1b6eb841b3757070308e4eefbaeb2ecdd61d3b76c4d1e9c2850b355b5f7df5d5383a5db972a5666b5b5b5b1c9d6ed8b041b375fefcf97174fade7bef69b6fef6b7bf25720100085b45f6b118bcf4614bddc762f0d2872d751f8bc14b1fb6d47d2c062f7dd852f7b118
+bcf4614bdd2744f0227201004a3c6c590f5e2661cb7af032095bd6839749d8b21ebc4cc296f5e06512b62206af0af35d9dafbd2476c33d2b1dd55c2ad021511a01900614aed22e5c41f356f40343e4ade80786c85bd10f0c91b7a21f18226f453f3044de0a77609851aec4be5d6cab23dfe7276aca96ef8d76023502206d285ca557b8a2c426797888b1ae28b1491e1e62ac2b4a6c92878718eb8a129be4e121c6baa2c4267978
+88b1aed079cb39dc70acabf82897f7f4c875d6a8eee0bbb3f7c42bd09e81da297a2657f4b118262589676b002947e12af9c215316f856b2462de0ad748c4bc15ae9188792b5c2311f356b84622e6ad408d54162d5bdec7da6b7670965d0b85968beea93f81f31ecee013000a57c9b392b79ca60cc7baace42da729c3b12e2b79cb69ca70accb4ade729a321cebb292b79ca60cc7baace42da7a9a2635da673b90a5504df67da87
+6ecd6e3bb6aa36808ca27001488f8ab83b309cb92947bc999c0e200d285c69667188cbbc418b435ce60d5a1ce2326fd0e2109779831687b8cc1bb438c465d860ec37890871e69786b334ce14817246e102605d85f927397a2d88b57d8b2529d0978300a41685abf40a97f5212e9366ad0f7199346b7d88cba459eb435c26cd5a1fe23269d6fa109749b395454fe09ce9a5218a8b7a54d169109a3dcddbf1ad29ea2b37295bea21
+ea296c8833e00c6b1d141d37f8ffe8da64cfb4d6778e773ce8fd715aeb3b728dbad596fb5adbfa3b567a7fbcaff597299fea565bda5aef5bd9d16ff8a32defb44e7bb0e3b8f7c7775aa7392bd51dac186c153774f8fc38d87af19fba0efb7f91285c6558b84e9e3c2917aaababd595ce8feab22d070e1c900bb7de7aabba52fee8bb35ba2d5bb6c8853973e6a82be58fbe5ba35bb56a955c686e6e56576a7e8ceee9a79f960b5d
+5d5dea4af9a3b3d5b543440f3cf0805cd8bc79b3ba52fee8bbd55ca549f529ba60b86c6b4fcd56fd6e86d5d6706589e7ad109b22e7ada239cc95c9ace4ada239cc95c9ace4add05ba3e42dcd56eb49cb09584573982b93594c5d14aef2295c45a39513c8ece62d274ba9cb265ba3e42d274ba9cb265ba3e42d274b15ca554e26b398b79c20a52eab2c262d57b4722d9b6cb513b94a95efb92f970b8b8c78c985d852976fd28a63
+64abe888571c235b86235ec95087b862ca5b4547bce21be5a27041cd5e72218ed4a5c9617647b60c7398dd912df31c96187588cb7ade32c9618eb846b94a1545aa48c0f2cd55f15c4f740256a181ae580356a181ae580356a1a12cfdd68801abd04097b3de6ef69201abd04097b8380646e4a270c5cdfaf544f8c62feb035d45e3975c482c7b39098cc885d267fdaaa2492613c98e788d0927698dc988574c1716519e9219ca72
+71e66c15da1ac788973367abd0a63846bc120e55ae68e552f4b263f45ce5bbde99d415227555f011c525629b1a9faa2c25cc6668f577acb43b0ca6bf8698ccacf942792ba6445508310b16c9eb86714c90d7b8f5d65b0f1c381053a22a64ce9c395bb66cd1cfd39a33678edccd56a772044b338b2b8e2b8c5d5d5d4f3ffd7462b3b8a4cd9b373ff0c0039a38156e70cbc12817fc5257e2f1cbb9a458287ec511cb9c2c657d82bc
+3e756902967e6b94d46512bfaca72ec3f80558495dc9775a346cc511c8929cb0a5a62ecd5667f4cb6efc4af88aa19550a5c728172ed571c32fff0971c994f9381def7850fe272e4e962f74b7088be408963a59def52dc5387ed3951dfdf23fb9ec8a56dead563cd8715cfe272e8e69a9c14bff4dc6d06ee8f8e53f21b88088d879af272630e2e5bd9ee80a5871e42defd895eb5b8a71fca6deeb896ab46abea868320bc47b3dd1
+f51dc6387e53eff5c47017100b0930ca15e8367abe8f7d0d47d382bef142b7bad13c98363e197aa9692307c062bd35976f208bf5be5ce9a14eab4f6c004c9d561f770ea3709543e152bf9098d87097bcb0e82cfb0632ebb7e652af187a87bbf45b4353a7c627f62d457961d1590eb435347961d1590eb4d5c4b85c2e57685b555555f4ca9570c50c510ed22081979acfe72ff9c31d982d0e9e89e377f9ebe73fdcd67dc4ff6fd4
+c09f8e1ffc228e4efff6f93f1eeadeeabb69c2c0a19d070fc6d1e9e1cf3f5fdabdc677d3a18109070fee8ca3d3cf3f3fbca67ba9efa63f0d547d713096ccf48fcfffb6b5fb21df4db307aacec4f2ee8a1f3effeb91eedb421c48e12ae1c2f54b4c8fe106f4838345ee7d13c70de877ecd8a1df218e1bd0c478bac60000200049444154bffaeaabfa1de2b8017d5b5b91eb0671dc807efefcf9fa1de2b801fd6f7ffb5bcdd60a93
+0f95f74e30ae27b9aa3b38eb5d7743767e54d7b85af63e2056fdf47a0fd1f4ebfbfa5d8dd87a85de37279d2f15281f142e0a17903695862731bed5a4d0798c7ccc85feec475cbcc18cef2951d09327dfd7e93d447d61b65ea1ef695c3a5f2a503e798bc255c2856b7070d0ee4057d1212e39226577a0abe810971c91b23bd05574884b8e48d91de82a3ac42547a4ec0e74151de29223527607baf4435cc27cfa7cd1475838a72f
+9a7fddf58d047a0d86fb44796846949892a1970a94300a17850bc8cc2897e62432a673d3f49f3d67e8449fbfdf0085ab240b97c5812e93212ec9e24097c910976471a0cb64884bb238d06532c425591ce83219e2922c0e74151de20a19b95c63bf319d92a6ffa499970a642b6f51b84aa97059495de679cb62ea32cf5b16539779deb298baccf396c5d4659eb72ca62e93bc25cc2f2cfa56287565a16910514e74423498d8c95c
+f48e32f45281ecc62c0a570917aea081c9cae141039395c38306262b87070d4c560e0f1a98ac1c6e1898a21f5e51f484437e79c47501debb32fa27d3693644c1327c49ae1766e515866e24f9970a94090a57f914aed0a92b4a5c0b9dbaa2c4b5d0a92b4a5c0b9dbaa2c4b5d0a92b4a5c0b9dba021d18e0be5c261fb334fceb9ea19091e44be5be5cf6ff5de7be5c59b82f1785ab940a9786f945c68863632af38b8c11c7c654e6
+1719238e8da9cc2f32461c1b53995f648c3836a632bfc81822a5559646bd705d294879b54ac94bfdebe73f24dfe9df3effc7188c797cfe79f29d7efef918fce1fee3f3bf25dfe90f9fff55641685ab645eaa0c52fae065316ca9414a1fbc2c862d3548e98397c5b0a506297df0b218b6d420a50f5e16c3961aa4f4c12bf49098cd512ea499f9c9229069142e0a17904e3cd61a000080c805000040e402000000910b000060ec05
+78ac75acdf52d13f00b5d0217241ddc77725bc6a6b6b8510bb77efb6def2f2e5cb0706067c5bb6dee9d0d0505f5fdfb163c7841037df7cf3134f3c71e59557c6dde9891327d6ae5d2b3b9d3a75eae2c58bafb9e69a64dede919191471e796464642499b777646464f6ecd9ea1a6fe371fca6bb76eddab469532e97abaeae6e6a6a9a366d5ae87a92c2c215f1400a17858bc295ddc25599d10f9eef03e70d9f428f986ad6c99327
+bbbbbb8f1c399258a79d9d9da74f9f5eb76eddf9f3e71f7df4d1d1d1d1175e7821ee4e376edc78ecd8b155ab564d9a34a9a1a161d9b2656fbffd76026faf10a2bfbf7f646424b1b7577ea37efaf4e92d2d2d8975fad1471f757575b5b5b55d7bedb50b172e7cedb5d7bababa4aecd357f49ef8a07051b84ab2705516ad0bde1b16eb4795e4feea9e264779fb75ed1ff1f1f52894f12f5cb8b07efdfa9d3b778e8e8e4e9d3a75e9
+d2a553a64c1142bcf2ca2bdbb76ffff9e79fefb9e79e050b163887b4b7b7bffbeebba74f9f6e6c6cbcfdf6dbd536e7cf9f7ffdf5d727d9695f5f9f5cb870e18210c2b7685aef74c58a1572e1d0a1434208d948026fefb7df7ebb77efde24dfdea1a12121c48d37de9864a73b76ec983061825cb37dfbf6d081269d850b142e0a5739172edd5c2e592c5c25c9a94aea1a75a56b4ff3a30af542c08ad5860d1bfafbfb1b1b1b7b7b
+7b8f1e3dfafcf3cf0b21de7cf3cdfefefe850b172e5ab468f3e6cd6fbdf596fab7b9a9a9299fcfaf5bb7ced5d46db7ddf6d24b2f25dca9b46ddb3621c4e4c99313ebb4a1a1a1a5a5e5eaabafd6df1bd062a7afbffe7a434343926feff0f0b010a2b7b7b7aeae6ec99225df7df75d029d0e0e0e8e1f3ffe99679ea9abab5bbe7cb9bed32c162e2e2952b8285c655bb82a8216b2a07b86ae238607aaa58a070b86f0fefbef0b2166
+cc98515d5dbd7bf7ee356bd638217de6cc9977dc71871062ebd67f3f4be7e1871fbeeebaeb8410debf522b56ac98346952c29d0a213efdf4d39e9e1e51ec36c4763bddb871e3934f3e79ead4a9b56bd726d0e989132786878767cc9891e4db5b5151515555d5d7d7b764c99223478eac5ebd3a814e7ffae9a7b367cfde7befbdcf3df7dcc0c040777777c4bfe1e92c5ca07051b8cab070459dcb156efe414cb31698cb15c29933
+67e4df5175a5fccb74d96597c91fbffffe7b67d3e5975f2e17ce9d3b97864e3ffbecb3b6b6b673e7ce3536364e9f3e3db1dfb4a2a2a2aeaeeee5975fdebf7f7f029dae5fbffef1c71f4ff8ed75ce83a74c99f2e28b2fcaeb11c9bcbdb7dc728b5cf8f8e38f63aa156352b818e2a27051b8cab970458d5ce12a85adfa42a98a6ef2e4c967ce9c191d1d75fe7a0921aeb8e20ab952fe78d55557a5b3d31f7ef8a1adadadb2b2b2b3
+b3f3a69b6e1a93df74e2c48909747af0e0c183cac3b96b6b6b35d33f63fa4dd5d6e2eb74e2c48967cf9e55ff8588e3affd18162ed7954acd4a50b8285c2556b8ac9533eb678d451ba4365971e79d770a213efcf0c3afbffebab6b676f1e2c5e2e2535adf7befbd0f3ef840147b68eb1876fac61b6f082156af5e5db46c59ecf4b1c71eabafaf1f1e1e967342ebebeb13e874f745ce8f0974ba68d1a2fafafaa1a1a103070e0821
+eebefbee043a9d356b963c44ce2936bc249195c2e5cc0653039cef4a50b8285ca557b82a4d8a4ba12aa0ce150d3461427394faa521cd999ff3a524b59d70afa7cccd9b376f7474545eedaea9a979eaa9a7841073e7cefdf1c71f7b7b7be5f2430f3d94ce4ef7ecd993cfe7d599109a8fb4ad4e5b5a5ababbbb9b9a9a2a2a2aeebffffe79f3e695eadbfbecb3cf7677773737378f1f3f7ef6ecd9c9fca60b162ca8acac94df9f9f
+3973a6f955894c142e50b8285ce55cb8c6e572b9424d545555f1c12e19f97c9e3701e580c245e102d28907fe00000010b9000000885c000000207201000010b9000000885c000000882eccdde7a3df6cc6f7f636e16ea965b12900258cc205606c8dc17db97c9f8418eef188169b2a79dcde066582c245e102d2c9e8eef3ae132f590e5ccfb570aa86efcede3d5d34f5455389823605a04c50b800642c7299540dfd595af43a22
+aba4f37ffecc0050b800945ae48aef24cc791e99a65626df14801243e102908dc855f4f9afaeeae01ab42f5a070d8b8bfe4c31505300ca216651b800642c7209ede406c3e90e814efb0ad5475b4d012893d445e102902a15453fffa16b50d04dfa5ae39df71aba2900a58dc20520858adf24c2fa177f0aed56e8a453ffdde9404d9533be6b8d3241e1a27001598d5ca07201998b5ca0700169c3037f000000885c000000442e00
+000010b9000000885c000000442e00000010b9000000885c000000207201000010b9000000885c000000207201000010b9000000885c000000207201000010b900000040e40200002072010000948671b95c8e7701000020568c7201000010b9000000885c000000207201000010b9000000885c000000207201000010b900000040e40200004840a5e17e555555bc599993cfe77913506e28561431209d18e502000020720100
+0010b9000000603372d5d4d458e9b24661d8a3ef9efac3cd7b015062b255ac7c77a07c01a5a7d27cd7c3870f5b29616a3bae1fed8aaf65006996ad62e59bb79cbe622d920092147294cb7bfae53d2793cbe6276aae169cc37d77332f5800ca0dc50a400a558638c6a911de8542cb85ca8ae6a8c3870f7b8f521bd49fd13a3b50ce8072ce5e292f56142880c865a468b1f0ad2f45d39261d7faf35186e50164a2580120722551fb
+5ce78b899557004843b10240e48a8b66cc899c04203d285600ec8a745fae984ef54c9a2d7a8708fe6801a4bf5801281f6146b99ca909cea99e3a59417ffe57687a44a1165c279a6ad7ead7855c9d9abf1e00252cfdc5aa68d75430a0648ccbe57226fbf1a4d82ce289b02843142b8a18904e3cf007000080c805000040e402000000910b000080c805000040e40200004074f6ef3e6f78e319dfdb03dabd038db70bef7367bdeb
+5d47f96e0ab71240aa50ac285640b62397a1641e3bed2d5bbefd7aef61e83dc4777ff39500328a6205c08a6017166b6a6a5ce755351769f657b7ca65cdfebe7b9af41be8a91a85ee130da03450ac00a44d65884fbee11992e1599aad7e239e9f717a079452dea25801c870e4b2f581d71c2e4fe09cff47ef4e33d7c1bb8f5a19bd87f83ef5cc7c2580e451ac285640b623574ace6203554ccdd9aa7332ea5bec981e01806205a0
+7c2357d0d2e03a1905008a15802485b92f57ac9337bde546df5db817e39a824a81034a12c50a407a5486f8e41bce03b0354bc0b0dfa295c83beba2d0cb637a049069142b8a159042e372b99cc97e555555499e9832bdc08a7c3ecf9b807243b1a28801e994ba07fe50b6006402c50a4020691ce50227884068142b8a18904e95bc05e5e3d7fb62fba768d39a5ccf5cdf2db3f6c535927a62d31f8ef62cf3ddd4b96f7f4c9deedd
+f4e6b69e75be9bf6efeb8ca9d33737ed5dd7b3cd7753c5be593175fa874d2796f51cf5cf34fb7e1d53a76b3689b93d393eaa00885cc8be81bf27df676e6057f29d7e397028f94e0f0d7c997ca7bb06c620a3fc7d80cf12d2a86acdffd56ccd2fde1347a7a7d73caed9fa7f16f7c4d1e9076bba355bef58dc1847a7dd6b3ed06c6d5c7c471c9d3ebee6b4666bcfe2ff1347a7ff778d6e8462cfe29083af442e004089872d751f8b
+c14b1fb6d47d2c062f7dd852f7b118bcf4614bddc762f0d2872d751f8bc14b1fb6d47d42042f221700a0c4c396f5e06512b6ac072f93b0653d7899842debc1cb246c590f5e26612b62f00a19b97c9f17112b2b1d993cc5acd0214577f6de2027447700622a1d6558accaa10405cd5bea81a15357d0bca51e183a7505cd5bea81a15357d0bca51e183a7505cd5bea81a15357d0bca51e689ebaa28e7225f619b6d591ef23c94c4a
+a74919f5bdc5a2dd420c8062655eac4abb0485ce5b515257e8bc15257585ce5b515257e8bc15257585ce5b515257e8bc15347505fb36594d4d8debb4c9f9512ea83bf8eeec5ae93d4abf67a0768a3e5ec3f5248d28a5d33090c5faf8110014abf2294111f356b84622e6ad708d44cc5be11a8998b7c23512316f856b2462de0ad44880512e757cde6407d7607ea19330ef0efab125f376123e9fe3b919407af216c5aab459c95b
+4e5386635d56f296d394e1589795bce5346538d665256f394d198e7559c95b4e5386635d56f296d354d1b1ae30f74c2a541dd4f5e615a4e8b3c6acb463ab82eb5f80c450169012142b00e991e837160db348169fb45a3235ae7dfc5ffebd7c7eb6b3d277d996fbc77fe62cbf7bfe3f9c9572d9d9ea6cb2e23fc7fffb7ce3bfcf5f7056ca6567abb3c98a8af1ffe92c5f38ffdfce4a67d9fb63749f8dbfdf59fe8ff3ef3a2be5b2
+efd6e8fe32bedd599e7dbedd5929979dadcea6b429e16255022c0e71390d161de8b238c4e5345874a0cbe21097d360d1812e8b435c4e834507ba2c0e71390d161de8b238c4e534a81fe84a347285380b4cc3195bf99c3516ca5bbe3bc49db75c0bef9eff0f2784c597b75c0bff7dfe8213c2e2cb5b85f689356f69b6c697b75c0bb3cfb73b212cbb2751142b00a6ff0ac477fe17ba85c42ecc999427c31266f29a535e0d35794b
+fe9870de92194bcd5bb63ad5e42d99b1d4bc65ed9356386f158a5fb1e6adff38ff6ef2794b66ac24f316c5aaf40299f5212e9366ad0f7199346b7d88cba459eb435c26cd5a1fe23269d6fa109749b30146b99c21f470d395cc47e0f57b9ab7e35b5fbc77cf2a5a4f4dba2bf4aa027537963a6e70fee96b6f6fffe5ea61c70da2bdddd9e1dfcb961cef7850ed540e621def785076e46c9dd6fa8ec5bcd5dfb1b25fe9540e62f577
+acfccff67675eb7dad6d16f3d6ca8e7e21fa9d4ee5a5c3951dfdededffa9eea3fe18dd831dc78568773a9557121fec382eff187db746eff4860ea1362b43d50d1dbffcdd71b60eb65e92ccaca358f9de9aabf407c05a0745c70dee354e05f3ddcd7b4840d35adf39def1a06b8d53e2bcbbf96e0deabed6b6fe8e95ae354e89f3eee6bb35a8b6d6fb5676f4bbd62825ce7f37ef5181bcd33aedc18ee3ae354a8973efe66c75ed10
+c860ab2c5697ac514a9c7b37dfad512397fa89d52c182edbda53b355bf5ba0df37dcced92a70ed4aa26a3f3fbb7dfc5fda95409640a77228abfde2fa4b0a537bbbb037974bed540e65f55f5caf162619c26c5d55543bbd70febf2bc6ffa713c25c052ba6b7f7e2b056bb66ab95d4a5367b7158abfd97287f71d30dededededf10e7451ac44b94d2f73d29579b4f21e123c6f6912986f1ad36c35cf5b9a04e69bc6345bcdf39626
+8115ca55dea382e62d4d02f3a6b18849cb95ae7c13986f1ad36c8d14b94a95ef79b06fb532df334b3a6ef0c95b17ff816c6f6f8f7e22e83fc4e5cd5b4aa7ef9eb7ff8bf677acf4e62db55357c0b232976b6547bf376fa9f9230e0f761cf7262af537f54b631686b8bc79cbf7376d6f6f572f32228e62555e648d3289504e35333f443bbee54d5d9a91b028235b6a66f2a62ecd485894912d355199e4a788635ade74e54d5d9a91
+b042212ce8f8963775998c84d91fe52a5529f976772a86b85a075d73b6dadbdbdbcfc7dba9c9a543eb435c9a4b8772dccbe25c2ea7d3b6d6fbbc13b66426537389952f2d3a0dbed33acd9ba8f45ba3775ae8d2a1dc21ee0b8b14abb213e29c30f26964f4fc14eebc31f94ec3a528f3a056e8bc315c508b7278d1cca44960442e0439479437806877cfd9b27e4b08f5cc4f0871fff8cfdadb1f7475ea042c391866f1f610f2ec50
+0e6efde7a59dcad12c399dcbee5c2e59742e0e6e5d12b97ca395959b44c8d2f3d9f8fb1ff41b50d36f8d728e2884f8cbf8f61bfc9a7592e50df18ef1016917faaa62c4d23726892d49452f3bc6419dd4a54f5d15fcd5c7bff3566ce94a93b74ce2d4fde33f93ffd9ca5b9a6b857246975398a2cfe572f2966f90725d76b4c54954bed3b37cb7469fc8e5e4ad42d3b3e46faa6e4ded7db98012d3dfb1d2f08aa4adf3cc98a6a89a
+e4ad84998f8d11b9209cbce55c52fcf74d223c21cc622c9379cb7ba753d71097b3bf95b12e99b7bc773a75ee80eabb352299b79c4b8a4ef6920b974c9bb334c4e5242ae7a2a193a89c3ba0fa6e8d48e62def9d4ed585f4df071588fb84734c2e4a26acadf53e79c21971127d29217241888e1bdc79abe386f6f6f658f3d6f18e075d79cb750d318ebcd5dfb1d295a8e4847ae792621c796b6547bf2b6fc9912d19ad64559225c9
+5969e56ccf95a8e4847a19adbc5b6d9deab912959c504fde425ac4f04da0a0012b99bce5fa96626219cb19d95ad9d12fff13b17d235b727d873199dfb4e805c44242cee50a744b3ddf47c05aef57df78a1dbde681e526bdd58bd698665a8dd592e90aeec5e769475a7fde2b22b57c992a4ceafb75886fa2f2d434eb4f2dd6aaf0cf5ab677bf14de1bab40cb5ab65c88956be5bed95a176a17cd1da8956be5b1340b18aefdd4bd5
+4bf53d99f4bf2f579cd4ef307aa395dc64e5d65cae9349cd9db7f45ba39c4cfade972b56ea7718bd9711f55ba39c4c6aeebca5dfea322e97cb997459555515bd8a255c3d4394861496fe28f2f94b1ef6f4eb7d5562e0efb1fc6e437b723d737db7ccda57911bd815479f23439f1ced59e6bba973dffe2f070ec5d1e9374343db7ad6f96edabfaff3d0c097b1bcbb43dfacebd9e6bba962dfac5d03b9383afd64686459cf51ff6a
+b0efd77f1f88e5efd19e2131b727eaaf43b11adb386bf7a5ba8ad82f7fc431dc803ef9672c0a21927fc6a21022f9672c0a21927fc6a21022f9672c0a21f4cf58ac08fa01f3de15a6e622e747effeae3b233b3faa6b5c2dbb9a757d92bd8768faf57dfdae466cbdc2b4bd694079a258052d56a97da940c9a80c54c2d422e23dcbf13da7918fbcd09f09898b379bf13d3d0a7a22e5fb3abd87a82fccd62b2cdac8d8be6940f9e42d
+8a55d06295da97ea3b226577a0abe810971c91b23bd05574884b8e48d91de82a3ac42547a4ec0e74151de29223527607ba8a0e71c91129bb035dfa212e116efa7cd1c75938a732fa87126a1a09f41a0cf789f2008de8f1250d6f1a506e2856a55d5781921de5d29c50c6749e9afe3369de342043285625f3676471a0cb64884bb238d06532c425591ce83219e2922c0e74990c71491607ba4c86b8248b035d4587b82c442ed738
+704ca7a7e93f81e64d03d2ff6f39c52afdcc5faa95d4659eb72ca62ef3bc65317599e72d8ba9cb3c6f594c5de679cb62ea32c95b22dc85c54293c4d5cf8cdd2ffe88509393123bb133e9684cde34809845b1b2db51aa5e6ad0c064e5f0a081c9cae141039395c38306262b87070d4c560e370c4cd10f0f10b9646d725513df95d13fa54eb3218a97e14b72bd302bafd0db4856de34a09450ac4214abd4bed498525794b8163a75
+45896ba1535794b8163a7545896ba1535794b8163a75053a30e47db94c3e7269f8573f5be1c3faabe5be5cd6715f2e91b5fb7251ac32fd527defcbe5ffe76e7c9131e2d898cafc2263c4b13195f945c68863632af38b8c11c7c654e61719238e8da9cc2f3286486995a5573b5c570dca366f15ca46c9ff6a23439f24dfe9374343c9773a34f44df29d7e3234927ca77b864469a05895cc4b95414a1fbc2c862d3548e98397c5b0
+a506297df0b218b6d420a50f5e16c3961aa4f4c1cb62d85283943e78851e128b6b940ba9a841f93c6f02ca0dc58a2206a4138fb5060000207201000010b900000040e4020000187b211f6b1deb3756f40f432d74885c50f7f15d59ce6a6b6b8510bb77efb6def2f2e5cb0706067c5bb6dee9d0d0505f5fdfb163c7841037df7cf3134f3c71e59557c6dde9891327d6ae5d2b3b9d3a75eae2c58bafb9e69a64dede919191471e79
+6464642499b777646464f6ecd9ea1a6fe371fca6bb76eddab469532e97abaeae6e6a6a9a366d9a951a92c26215f1408a18458c2296dd225659021f42df87cf1b3e91beacc451a74e9e3cd9dddd7de4c891c43aedecec3c7dfaf4ba75ebce9f3fffe8a38f8e8e8ebef0c20b7177ba71e3c663c78ead5ab56ad2a4490d0d0dcb962d7bfbedb713787b8510fdfdfd23232389bdbd8383834288e9d3a7b7b4b424d6e9471f7dd4d5d5
+d5d6d676edb5d72e5cb8f0b5d75eebeaea2ae14f62d17be2832246112bc9225619a846786f5eac1f5592fbab7b9a1ce5edd7b57fc447d9738278e1c285f5ebd7efdcb973747474ead4a94b972e9d32658a10e295575ed9be7dfbcf3fff7ccf3df72c58b0c039a4bdbdfddd77df3d7dfa746363e3edb7dfaeb6397ffefcebafbf3ec94efbfafae4c2850b178410be85d27aa72b56ac900b870e1d1242c84612787bbffdf6dbbd7b
+f726f9f60e0d0d09216ebcf1c6243bddb163c7840913e49aeddbb75b0934e92c56a08851c4cab98899cee59285c3559e9c0aa5ae5157baf6343faa502f042c2b366cd8d0dfdfdfd8d8d8dbdb7bf4e8d1e79f7f5e08f1e69b6ff6f7f72f5cb870d1a2459b376f7eebadb7d4bfc14d4d4df97c7edd3af78dd76fbbedb6975e7a29e14ea56ddbb60921264f9e9c58a70d0d0d2d2d2d575f7df5ca952b93e9f4f5d75f6f686848f2ed
+1d1e1e1642f4f6f6d6d5d52d59b2e4bbefbe4ba0d3c1c1c1f1e3c73ff3cc33757575cb972fd7779af562c525458a1845ac6c8b584594a21674cfd035c5f040b56cf1c0418df7df7f5f083163c68ceaeaeaddbb77af59b3c609e63367cebce38e3b84105bb76e75f67ff8e187afbbee3a2184f7afd18a152b264d9a9470a742884f3ffdb4a7a7479ea126d6e9c68d1b9f7cf2c953a74ead5dbb36814e4f9c38313c3c3c63c68c24
+dfde8a8a8aaaaaaabebebe254b961c397264f5ead50974fad34f3f9d3d7bf6de7bef7deeb9e7060606babbbb2dfe6d4f67b102458c22568645cce65cae707311629ac1c05c2e8d3367cec8bf97ea4af917e8b2cb2e933f7efffdf7cea6cb2fbf5c2e9c3b772e0d9d7ef6d9676d6d6de7ce9d6b6c6c9c3e7d7a62bf694545455d5dddcb2fbfbc7ffffe043a5dbf7efde38f3f9ef0dbeb9cfb4e9932e5c5175f94d72092797b6fb9
+e516b9f0f1c71fc7fd1118ab62c51017458c2256ce45cc66e40a57356cd51aca96b9c993279f3973667474d4f92b2584b8e28a2be44af9e355575d95ce4e7ff8e187b6b6b6cacacacecece9b6eba694c7ed389132726d0e9c183070f1e3ce8fc585b5bab99f219d36faab6165fa713274e3c7bf6acfaaf42dc1f81312c56ae2b959a95a08851c44aac88c552daac9f41166d903a15c89d77de2984f8f0c30fbffefaebdadadac5
+8b170b21eebaeb2e21c47befbdf7c1071f383fa6b0d337de784308b17af5eaa2a5ca62a78f3df6587d7dfdf0f0b09c075a5f5f9f40a7bb2f727e4ca0d3458b16d5d7d70f0d0d1d3870400871f7dd7727d0e9ac59b3e421721eb1e165882c162b6736981ae07c57822246112bbd225619b4d014aa08eabcd14093273447a95f20d29c053a5f5052db09f77acac4bc79f3464747e515ee9a9a9aa79e7a4a083177eedc1f7ffcb1b7
+b7572e3ff4d043e9ec74cf9e3df97c5e9dfda0f918dbeab4a5a5a5bbbbbba9a9a9a2a2e2fefbef9f376f5ea9bebdcf3efb6c7777777373f3f8f1e367cf9e9dcc6fba60c182caca4af99df99933679a5f89c85cb102458c2256ce456c5c2e9733792faaaaaaf890674e3e9fe74d40b9a15851c48074e2813f000000442e0000002217000000885c000000442e0000002217000000a28b7af7f9e8379ef1bdd54db85b6a596c0a40
+89a15801185b637c5f2edf2721867b3ca2c5a64a06b7b44119a25851c480740a7cf779d749982c0dae675c3815c47767ef9e2e9a5aa3a94a419b0250c2285600321cb94c2a88fe8c2d7a4d9115d3f93f7f7e002856004a2d72c57742e63c9b4c5337936f0a4009a05801c85ee42afa2c5857a5700de017ad898685467fd618a82900a51ab3285600321cb98476a283e1d48740a780856aa5ada6009470eaa25801489500f7e50a
+513e8a1e586893beee78e7c0866e0a40e9a1580148a1603789b0fe25a042bb153a01d57f8f3a5053e580ef57a30c51ac28624029442e50ad804c442e50c480b4e1813f000000442e0000002217000000885c000000442e0000002217000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000207201000010b90000004ac3b85c2ec7bb000000102b
+46b9000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000207201000024a052b3adaaaa8a37a864e4f379de040000c60aa35c000000442e0000002217000000a246ae9a9a1a2bddd4280c7bf4dd537fb8611700000009abd46f3e7cf8b095bca5b6e3fad116b5d998ba0000000827c028977700c93baa2497cd879ad88d002800001033494441545c2d3887fbee56e885c59414010000
+6ca934dccf1937f22e145a2e34d4a439eaf0e1c3dea3d4068b862ab90f910b000064327215cd3a9a1d6490326f41d372d1b95cfab4070000908dc8153a2d798391b0373d3f6298030000c87ce4d28c39119200004039087c5fae986ec160d22c777f00000019653acae5cca372c6a5d49955fac1aa4273b90ab5e01a1553bb56bfdbe8ead4fcf5000000246c5c2e972bb48dc75a97121e6b0d00c018e2813f000000442e000000
+2217000000885c000000442ee0ffb777b7a17114711cc7a7d758e98ba247ed3b0ba22f24118a42d037155a3494185148a3b40a914aa94a9bf880b4da78776e4e140aad966b63a4516a7c8a36be69ad15ab5815d4eb15a207895e4ad0a2a52f24396d5e144d4d7d31cd76b23bb7b777fb700ff97e90b2b7b3b7ffcda6697ececccd020040e40200008077feac3eeff29986dab54cfd5d43cb5ec2fe906cfb7ecbbbb44de5ed0400
+0010a13d63d19245027decb43d6369ebda175cb5bf457bbcfb9d00000052f181c5e6e6664b2750f31c87e3d556b9ed70bcf64837754b7a0450a145ed01000082d6e032a6b8ecce71d9a5e43e1e39d7f5d899445f140000a88ac8e5573a7178bbec6d32fff45ece616296fd1835c6d9dfa27d6ea3fb9d000000a545ae6ae0721cd04dd79ad973a64d66cce50200000b3772959a632c3d6700000095e2765dae40679adbb39173b9
+f22ec6325f9e3406000042d3e032a6b89cb4e4d7942697758bc626fb14b14297c75c2e0000109c4553535385daa2d16868d7c15ca8a0e5f3796e0200009552150ffc2163010080fa562dbd5c081abd5c0000545003b760618a66da033af391c15f57a7460a14dd1350d1bec1131b5387b54d4b3227032a9a1c1cdc91daa76d3a99591250d1c1c1e4bed40e6dd39e4c50ff8f7462b0ef706aa3b6a93db0a2bf0e1e1949ade64715
+00910bb52f3d197ecdb1f4e9f08b1e4ba72b7077d3c7c22f7a3a3d167ed1c9343f4b00505c845b00000040e4020000a879250c2c6a1f6e13285f0ab979e462a1b7143dd8be9a5719e5000000914b23b418e15721edf313dde43c37994fbb1eacbfa9110000d4bae2038bcdcdcd969e1bf3a5dc500fd01e6cd9697f97f391259da7e8b3802c8ffdf192f35c06b2409f950400006a4283cb54512837580eb08c3c16ea31b21fe0dc
+b7e4fe3c217729f1901f0000e086dbe9f3852285badf7dec28fa60445fcee33d4eb9e9c492e8ca0200000e025f97cb6516a9c5c742d77dcf9631bb5e6e24221fab3bcd97eab65f0ecd36ca8d07223fab3be54b6dab77a3b397e4c62d9145ea4ef952dbeadda5d951b9b128728bbad3e1a5778db387e4c6cf9107d49df2a5d96a39c0a3f5b386dcf838925077ca97da5600a83f812f12714ae1f2c86ae83162dabb9ab7cc6d73c3
+b21d44de32b7ed1b6aabbf79cbdcb66fa8adfee62d73dbdcd0bef4376f99dbf68de0f296b96ddf505b016041472eef31c8f90ca1c52c3759ca65de7273cd351add2c794b7665c99dea76a0794bedd6523356a0794bedd6523356a0794bf663c99d669f56d0794bedd6521358a0794bedd6523396da0a00f5aac8c0a2d9e7545ee793fbe142e723dd9f471b71ecab67150d526eca15baaa92ca55a358f6f2afbee4aa2bd12a9615
+86a1d9f649536c48161d4b6e301355536c4816d2b67ad7118b77082184184ef69a89aa23161f358c42addec5631d427408217a93c366ae8ac73a0c63543d467de9dd50ac49888410624372cc4c5743b126f96d345b851086619881cca36c4cc8d3ae4a5ec95ed9d8e5bf3bda560058b8914b0d0d0e1b2eb7fd3ad2a1d5f9309731d1cbc1353f1c19cb1a73712a91c80ac3b8dcd1a51ce07bcda6d8905274481886ecca4a5cde93
+184b6eb08430ef73b93a6271a56862d430645756c7dc9ee164af2584799fcb158f75a8450d63746e60b1637e26f3d350acc92c3a94481886d9ad75e5bb6a28195aed06f392b7cc73661309c330bbb512735fbba6958e2e000b3a72d52b6da79d3630b93fb2ce1866de9afb0599482444725510a94b2d7a396fcd15350ce38148e05fa9cc5b6a514bc052471efd2a2af3969a3f42f89eca44a57e4fed79cbf7a2325169bf52b395
+7f8e0110b9ea53952c45519d12898410f30716af84b0608bba193af4f1e38ab2a8c3d0a1ecf7f2772e972caa0e2c9a6437d8e5fb2f84f0ef438bf29ceac0a2f5db5da0d57bd1424387cead0040e442fde7adb9fe0feb9c2ddf9784d0151db2143503961c7ff4376f993d3da3f38bcade2c399dcbdfb95cf3bb97e6452e6db4f22b6fc9a27260d16243724c08d1387b48dbeabd6856775ae75600a83f116e012c2e0782c0d29543
+513771ead06ca3fccfafa20e638586610c277b3b62713587f952541ba4d4995e41dc5eedf42c336fa9adbe4c9f97450b4dcfb2b732910b00910b0b8eba169799bdec21ccdf58665909c2b2a14eb117fe8d2d5a56825037e4ccad20d64155d7e232b397dc48241272b84dfee9e33aa8ea242d3351994b45685bbdb3ac0461df601d5400442e90b7e642552c2be7d18799b72c6388e1e42df919467348319cbc257bb664b4ea4d0e
+cbffc4dce4fa80f296fc0ca38c5643b1a670f296fc0c23790bc08255c25cae9256f5d43eafba3c0e67703e79a135ba1c9ea81d9c9ab9d4e42a755dae42e9cadfbc3596dca0aebc65c9554db121a14cf1360ff0488e189a2b6f59a295b6d5bbdee4b0ba2e9719bcb4c9ccafa21b9263eaba5c9668a56df56e5572deca5b9668a56d05002297278146045f4e1ece07126be852cda4a57fa9dde347ea2af4d2af8ca54d5dee5ffa98
+ba1c5e3aecf498badcbff43175b97f090075aff8c0627373b37d61aae639e64bfbf19665dccd97ea1ecb992da715f33b78ec6f71a8abbd7ecb49fcba42fbcda9ce4b05000095d250346fa989c7b2531418ea924fc2711e2913737d36da513397036dced7697f8b7a617e5d61a1d553abf052010040a5b89d3e5ff4d93b66bf8bf343091d4e52d235b83cc6cbd37ebcc4941aba540000108232e77205345c55fda36035344ec790
+220000b51db92c83563e5e4df5f7d6d4507f125d5f0000540fb7038bda68a5ee2c347fab3c6e8629dd5f6710bc17aaa14b050000c1462e19a42cd147bbd3fb6f7af3b465242d979764b9305faeb0ec93847fa90000a052164d4d4d156a8b46a3259dab4a7ebbd750c808f352f3f9fcbc6f6ea65da42783287424777e756a44ff372ab3672c7d3a88a227726737a60e6b9b96644e1e4ba783287a2a97db91daa76d3a9959924e1f
+0ba2682e776a5f6a87b6694f267a3a1dc80a5b6773270ea7366a9bda33d1c940eeae389f3b32925acdbfd100ea866f4ba15636e8588638ab3c6655c9a51ec99d0fbfe889dcd9f08b9ecae5c22f9acb55e09b7b367722fca2e77347f89714008af2b3970bd5ccd2cb050000c2c463ad010000885c000000442e00000010b90000002aaf84c75a07faf13ae72737177a8bdc508fd1ee845d4b4b8b10e2f8f1e3be9f79e7ce9d994c
+467b66df8b8e8f8f0f0c0c8c8e8e0a216ebffdf6279f7cf2da6baf0dbae8993367f6efdf2f8b3636366edbb6ed861b6e08e7f64e4f4f3ff2c823d3d3d3e1dcdee9e9e9f6f676758ffde4417ca59f7df6d97befbd373535b572e5caeeeeeea6a6267e6001d47fe4aa5a96c548edb99025409d0511b67efffdf7542a353232125ad15dbb769d3b77aeafafefbffffe7becb1c76666665e7ae9a5a08b1e3c78707474f4d5575f5db6
+6c596767e7f3cf3fffc1071f84707b8510c3c3c3d3d3d3a1ddde6c362b8458b3664d4f4f4f6845bffdf6dbddbb77c7e3f11b6fbc71cb962d6fbef9e6eeddbbf9810550e791cbfed41db9c7b957491eaf1ee9e65df6ba96e32d4712a73c323b276667670f1c3870ecd8b1999999c6c6c61d3b76ac58b14208f1c61b6f1c3d7af4d2a54bf7df7fffe6cd9bcdb7bcf8e28b1f7df4d1b973e7bababaeebcf34ef59c8f3efae8cd37df
+1c66d1818101b9313b3b2b84d0a63ddf8b261209b971f2e44921843c4908b7f7cf3ffffce69b6fc2bcbde3e3e342885b6fbd35cca29f7efae992254be49ea3478ff2a30aa06e38cde592b1c692a5cc38a5ee51775a8e74ffae42550858817aebadb7868787bbbabafafbfb7ffae927c3308410efbefbeef0f0f0962d5bb66eddfae1871fbefffefbeaafe1eeeeee7c3edfd7d76739d5ead5ab5f79e595908b4a9f7cf2891062f9
+f2e5a115edececece9e9b9fefaeb7b7b7bc329faf6db6f77767686797b2726268410fdfdfdadadaddbb76fffebafbf42289acd66172f5efcecb3cfb6b6b6eedcb9d3b92800d449e4d226b0528f2c3b2db97ca3da01c68305cbf0c5175f0821d6ae5dbb72e5cae3c78fefdbb7cfec5d58b76edd5d77dd2584387cf8cab3741e7ae8a19b6eba490861ff5d984824962d5b16725121c48f3ffef8faebafcb6eb6d08a1e3c78f0a9a7
+9efae38f3ff6efdf1f42d13367ce4c4c4cac5dbb36ccdb1b8944a2d1e8c0c0c0f6eddb474646f6eedd1b42d17ffffdf7c2850bebd7af7fe1851732994c2a95e28714407df03a97abd4c72d7b795749f18bd4e5d2e4e4a4fce5aaee94bf05afbaea2af9f2efbfff369baebefa6ab971f1e2c56a28facb2fbfc4e3f18b172f767575ad59b326b4af341289b4b6b6bef6da6bdf7df75d08450f1c38f0c4134f847c7bcd0ebc152b56
+bcfcf2cb7220359cdb7bc71d77c88d1f7ef8811f520044aef23bb1fc0a43e42aef962f5f3e393939333363fe5e14425c73cd3572a77c79dd75d75567d1f3e7cfc7e3f18686865dbb76dd76db6d15f94a972e5d1a42d1743a9d561eceddd2d2e2306f3da0af543d5b7045972e5d7ae1c20535daf2430aa03ef8f6cf99efdd5d454f48def2c5dd77df2d84f8eaabaf7efbedb79696966ddbb60921eeb9e71e21c4e79f7ffee5975f
+9a2fabb0e83befbc2384d8bb776fd1bce563d1c71f7fbcadad6d6262424e666f6b6b0ba1e8f139e6cb108a6eddbab5adad6d7c7cfcfbefbf1742dc7befbd2114bdefbefbe45be487215c8ea50240f52bdecbe5906cd449ee25cdf4727897fa6947cb8c7b7b20b39ca7bceb59e0366dda34333323a7e93437373ff3cc334288871f7ef89f7ffee9efef97db1b376eaccea25f7ffd753e9f57a770396411bf8af6f4f4a452a9eeee
+ee4824f2e0830f6edab4a95e6fef73cf3d974aa59e7efae9c58b17b7b7b787f3956edebcb9a1a1412efcb16edd3af7c3a90050e5164d4d4d156a8b46a3dca0ba91cfe7b9090000540af324000000885c000000442e00000010b9000000885c000000442e0000007857ceeaf3ded720d5ae9e55de925a3e9e0a000020201558974bfb24c4f21e8fe8e3a9ea1eeb7201005041ae569f971b961c6379208f1977b407db8fb4700846
+0e11aad4530100005463e47213779cbb97bc072019efcc3ff99e0100807a8b5c96e8e36361f3418a0e212ffc53010000542072157d50b425d658461b8b063897a9c8b98baba453010000545de4128eb3b25cced372af506c729fe48a9e0a0000207c91a2c1a5ecf0546a937348b24fd82ffb54000000212bbe4884ef9f582c7498fd6cf633687bdadc9f6a216391080000aa3a7281c80500003ce2813f000000442e0000002217
+000000885c000000442e0000002217000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000442e00000010b9000000885c000000207201000010b9000000ea4383435b3e9fe70601000078472f17000000910b000080c8050000002217000000910b00006001f81f86a6d40031cfad5c0000000049454e44ae426082}
+\lang3081\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+{\*\bkmkstart BKM_4D0F7763_B057_4841_A621_3D2D10925E5C}{\*\bkmkend BKM_4D0F7763_B057_4841_A621_3D2D10925E5C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 IconSet}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw21574\pich20165\picwgoal12225\pichgoal11430\picscalex77\picscaley77\sspicalign0 010000006c000000f8ffffffffffffff6d02000046020000000000000000000047540000c54e000020454d4600000100849601001e120000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100c5fd6202c5fd6202ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff640200003d02000005000000100010001000b0232026b0232026100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff4b00ecff5800faff5800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000580000001400000006000000
+10004001b004400180056000800510001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff4b00ecff5800faff5800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff5a000000160000000600000010004001b004400180056000800510001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7648971a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bf4a3700bc859e1022a00aa01853a0000dc59e102188d17
+014c3f0ab748971a242b00e000853a000037bb40004c3f0ab770374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b08911a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126843a00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000490000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000dd9443000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+000000540000009c0000000600000004000000490000000f0000000100000000400d4200040dc206000000fcffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000063006c006100730073002000490063006f006e005300650074000e0f060000000300000006000000060000000600000003000000030000000600000006000000060000000700000006000000030000001b00000010000000
+0000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000e0400000e0400a4000c01c00000010000000c0bfc0ff010000008a005effb5008b00280000000c000000010000
+002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000910000001e00000046010000a9000000050000001009e0011009900a6014900a6014e0011009e0012500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008a005effb5008b003a0000000c0000000a00000024
+000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000007a000000070000005d010000c0000000040000001009900a6014900a6014e0011009e001250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000074300001fc30000354300000b43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f000080
+3fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000870061ffb5008b00250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000008e0000001b000000ec000000a6000000050000008e001b008e00a600ec00a600ec001b008e001b00250000000c00000008000080250000000c00
+000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000ec0000001b000000f1000000a600000005000000ec001b00ec00a600f100a600f1001b00ec001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fb
+f0df0000000000250000000c00000002000000250000000c000000080000805600000030000000f10000001b000000f6000000a600000005000000f1001b00f100a600f600a600f6001b00f1001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c0000000800008056000000
+30000000f60000001b000000fb000000a600000005000000f6001b00f600a600fb00a600fb001b00f6001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c000000080000805600000030000000fb0000001b00000001010000a600000005000000fb001b00fb00a6000101a6
+0001011b00fb001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c000000080000805600000030000000010100001b00000005010000a60000000500000001011b000101a6000501a60005011b0001011b00250000000c00000008000080250000000c000000000000802800
+00000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c000000080000805600000030000000050100001b0000000a010000a60000000500000005011b000501a6000a01a6000a011b0005011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d5000000000025
+0000000c00000002000000250000000c0000000800008056000000300000000a0100001b0000000f010000a6000000050000000a011b000a01a6000f01a6000f011b000a011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c0000000800008056000000300000000f010000
+1b00000014010000a6000000050000000f011b000f01a6001401a60014011b000f011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c000000080000805600000030000000140100001b00000017010000a60000000500000014011b001401a6001701a60017011b0014011b
+00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d00000000000250000000c00000002000000250000000c000000080000805600000030000000170100001b0000001b010000a60000000500000017011b001701a6001b01a6001b011b0017011b00250000000c00000008000080250000000c00000000000080280000000c0000000200
+000027000000180000000200000000000000f1e3cf0000000000250000000c00000002000000250000000c0000000800008056000000300000001b0100001b0000001e010000a6000000050000001b011b001b01a6001e01a6001e011b001b011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2cd0000000000250000000c00000002
+000000250000000c0000000800008056000000300000001e0100001b00000023010000a6000000050000001e011b001e01a6002301a60023011b001e011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c000000080000805600000030000000230100001b00000027010000
+a60000000500000023011b002301a6002701a60027011b0023011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c000000080000805600000030000000270100001b0000002c010000a60000000500000027011b002701a6002c01a6002c011b0027011b00250000000c0000
+0008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c0000000800008056000000300000002c0100001b00000031010000a6000000050000002c011b002c01a6003101a60031011b002c011b00250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800
+00000200000000000000ecdcc50000000000250000000c00000002000000250000000c000000080000805600000030000000310100001b00000037010000a60000000500000031011b003101a6003701a60037011b0031011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c
+000000080000805600000030000000370100001b0000003c010000a60000000500000037011b003701a6003c01a6003c011b0037011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c0000000800008056000000300000003c0100001b00000040010000a600000005000000
+3c011b003c01a6004001a60040011b003c011b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000400100001b00000043010000a60000000500000040011b004001a6004301a60043011b0040011b00250000000c00000008000080250000
+000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000870061ffb5008b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000
+000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c00000077000000040000005a010000bd00000004000000e008600a3014600a3014b001e008b001250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76f8971a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bfea3f0061c58e1022000a801893a00003058e102188d1701ea3f0a6ff8971a242100e000893a000037bb4000ea3f0a6f70374b0ba8d56b0008000000a05ae102000000001098bf234800
+4b0b5c014b0b08911a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126883a00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000002000000180000000c000000000000005400000078000000d600000024000000fb
+0000002f0000000100000000400d4200040dc2cf000000e3ffffff070000004c000000000000000000000000000000ffffffffffffffff5c000000490063006f006e0053006500740011a7030000000600000006000000060000000700000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008700d1ff3c01d1ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805700000024000000770000001f0000005a0100004d00000002000000e008600330146003250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901ea3f0a6e9c58530bb296190100000000f8971a248ce3c577738c172646e0c5779401300b0000300b188d1701ea3f0a6e1f00c001873a0000c457e10237bb4000ea3f0a6ef8971a242000be01873a00009087a1263c5ce10270374b0b000000000800000000000000000000001098bf
+2348004b0b5c014b0bf8971a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000f0971a24dc57e10223e0c577f8971a243a6c2e7608654501f0971a24f057e102ad148b756476000800000000250000000c00000003000000180000000c0000008b0000005400000058000000930000003a00
+00009c000000460000000100000000400d4200040dc28c000000cdffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000cc000000
+a40000003a00000007010000460000000100000000400d4200040dc29d000000cdffffff150000004c000000000000000000000000000000ffffffffffffffff78000000690063006f006e0053006500740049006400200020003a00490063006f006e0053006500740049006400002003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000003000000050000
+00060000000600000007000000060000000300000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000093000000470000009c000000530000000100000000400d4200040dc28c000000c0ffffff020000004c00000000
+0000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000f4000000a40000004700000028010000530000000100000000400d4200040dc29d000000c0ffffff1c0000
+004c000000000000000000000000000000ffffffffffffffff8400000063006f006c006f0072005400790070006500200020003a0043006f006c006f007200540079007000650020005b0030002e002e0031005d0005000000060000000300000006000000030000000700000005000000060000000600000003000000030000000300000007000000060000000300000006000000030000000700000005000000060000000600
+0000030000000300000006000000030000000300000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000093000000540000009c000000600000000100000000400d4200040dc28c000000b3ffffff020000004c000000
+000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000000c010000a4000000540000003f010000600000000100000000400d4200040dc29d000000b3ffffff2000
+00004c000000000000000000000000000000ffffffffffffffff8c000000640069006d0065006e00730069006f006e00200020003a00490063006f006e00440069006d0065006e00730069006f006e0020005b0030002e002e0031005d0006000000030000000900000006000000060000000400000003000000060000000600000003000000030000000300000003000000050000000600000006000000070000000300000009
+000000060000000600000004000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000093000000610000009c0000006d000000010000
+0000400d4200040dc28c000000a6ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000d0000000a400000061000000030100006d
+0000000100000000400d4200040dc29d000000a6ffffff160000004c000000000000000000000000000000ffffffffffffffff78000000730069007a006500200020003a00490063006f006e00530069007a00650020005b0030002e002e0031005d000400000003000000050000000600000003000000030000000300000003000000050000000600000006000000070000000300000005000000060000000300000003000000
+06000000030000000300000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000930000006e0000009c0000007a0000000100000000400d4200040dc28c00000099ffffff020000004c00000000000000000000000000
+0000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000cc000000a40000006e000000120100007a0000000100000000400d4200040dc29d00000099ffffff150000004c00000000000000
+0000000000000000ffffffffffffffff78000000640061007900540069006d006500490063006f006e00200020003a0062006f006f006c00650061006e000ae70600000006000000050000000700000003000000090000000600000003000000050000000600000006000000030000000300000003000000060000000600000006000000030000000600000006000000060000000a00000010000000f9ffffff070000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000930000007b0000009c000000870000000100000000400d4200040dc28c0000008cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff07
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000b4000000a40000007b000000f5000000870000000100000000400d4200040dc29d0000008cffffff110000004c000000000000000000000000000000ffffffffffffffff700000007400680065006d00650049006400200020003a
+0049006e007400650067006500720055c203000000060000000600000009000000060000000300000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b
+000000540000005800000093000000880000009c000000940000000100000000400d4200040dc28c0000007fffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000
+000c0000008b00000054000000c0000000a40000008800000008010000940000000100000000400d4200040dc29d0000007fffffff130000004c000000000000000000000000000000ffffffffffffffff740000006d0065006400690075006d005400790070006500200020003a0053007400720069006e00670075a5090000000600000006000000030000000600000009000000070000000500000006000000060000000300
+000003000000030000000700000003000000030000000300000006000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000a60170ff90007b002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000000000240000002400000000
+00803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ad0100001c0000003d0200009700000005000000d01ac001d01a7009d0237009d023c001d01ac001250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060000000
+54000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000a60170ff90007b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101
+001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000960100000500000054020000ae00000004000000d01a7009d0237009d023c001d01ac001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a00
+00000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080d14300000dc3000010430000f642bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000a30173ff90007b00250000000c0000000800008027000000180000000400000000
+000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000aa01000019000000f50100009400000005000000aa011900aa019400f5019400f5011900aa011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080
+5600000030000000f501000019000000f90100009400000005000000f5011900f5019400f9019400f9011900f5011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000f901000019000000fd0100009400000005000000f9011900f90194
+00fd019400fd011900f9011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000fd01000019000000010200009400000005000000fd011900fd0194000102940001021900fd011900250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000001020000190000000502000094000000050000000102190001029400050294000502190001021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000
+000000250000000c00000004000000250000000c00000008000080560000003000000005020000190000000902000094000000050000000502190005029400090294000902190005021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000
+09020000190000000d020000940000000500000009021900090294000d0294000d02190009021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000000d020000190000001102000094000000050000000d0219000d02940011029400110219
+000d021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000011020000190000001502000094000000050000001102190011029400150294001502190011021900250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000015020000190000001902000094000000050000001502190015029400190294001902190015021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c
+00000004000000250000000c00000008000080560000003000000019020000190000001c020000940000000500000019021900190294001c0294001c02190019021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000001c02000019000000
+1f02000094000000050000001c0219001c0294001f0294001f0219001c021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000001f020000190000002202000094000000050000001f0219001f02940022029400220219001f021900250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000022020000190000002602000094000000050000002202190022029400260294002602190022021900250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000026020000190000002a020000940000000500000026021900260294002a0294002a02190026021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c0000000400000025
+0000000c0000000800008056000000300000002a020000190000002e02000094000000050000002a0219002a0294002e0294002e0219002a021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000002e020000190000003202000094000000
+050000002e0219002e02940032029400320219002e021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000032020000190000003602000094000000050000003202190032029400360294003602190032021900250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000036020000190000003a020000940000000500000036021900360294003a0294003a02190036021900250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700
+0080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000a30173ff90007b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000930100000200000051020000ab00000004000000a01a4009a0234009a0239001a01a9001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000001e00000018000000ad010000e8ffffff2a020000dbffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00
+0000ce0100001f000000160200002b0000000100000000400d4200040dc2c7010000e8ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b00000010000000000000000000000016
+0000000c000000000000004b0000001000000000000000050000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000005400000084000000da0100002c0000000a020000370000000100000000400d4200040dc2d3010000dbffffff090000004c000000000000
+000000000000000000ffffffffffffffff6000000043006f006c006f007200540079007000650000000700000006000000030000000600000004000000050000000500000006000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a301c9ff3302c9ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038
+000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000009301000027000000510200005500000002000000a01ae003a023e003250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000af01000042000000b20100004e0000000100000000400d4200040dc2a8010000c5ffffff010000004c000000000000000000000000000000ffffffffffffffff5000
+000020000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000c0000000c001000042000000360200004e0000000100000000400d4200040dc2b9010000c5ffffff130000004c000000000000000000000000000000ffffffffffffffff
+7400000042004c00410043004b005f0041004e0044005f005700480049005400450020003d00200031006e63070000000600000007000000070000000700000006000000070000000700000007000000060000000900000007000000030000000700000007000000030000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000af0100004f000000b20100005b0000000100000000400d4200040dc2a8010000b8ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000088000000c00100004f000000fb0100005b0000000100000000400d4200040dc2b9010000b8ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000047005200410059005f00340020003d002000320008000000070000000700000007000000060000000600000003000000060000
+0003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000af0100005c000000b2010000680000000100000000400d4200040dc2a8010000abffffff010000004c000000000000000000000000000000ffffffffffffffff50
+00000020000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000088000000c00100005c000000fb010000680000000100000000400d4200040dc2b9010000abffffff0a0000004c000000000000000000000000000000ffffffffffffff
+ff6000000047005200410059005f00380020003d0020003300080000000700000007000000070000000600000006000000030000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000af01000069000000b2
+010000750000000100000000400d4200040dc2a80100009effffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000088000000c0010000690000
+00fa010000750000000100000000400d4200040dc2b90100009effffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000052004700420035003500350020003d0020003400070000000800000007000000060000000600000006000000030000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000af01000076000000b2010000820000000100000000400d4200040dc2a801000091ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000088000000c001000076000000fa010000820000000100000000400d4200040dc2b901000091ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000052004700420035003600350020003d0020003500070000000800000007000000060000000600000006000000030000000600
+000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000af01000083000000b20100008f0000000100000000400d4200040dc2a801000084ffffff010000004c000000000000000000000000000000ffffffffffffffff
+5000000020000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000088000000c001000083000000fa0100008f0000000100000000400d4200040dc2b901000084ffffff0a0000004c000000000000000000000000000000ffffffffffff
+ffff6000000052004700420038003800380020003d0020003600070000000800000007000000060000000600000006000000030000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d601fffe790045002100000008000000620000000c00000001000000110000000c
+000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000dd010000c3000000560200000801000005000000d01d300cd01d8010602580106025300cd01d300c250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d601fffe790045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000
+005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c6010000ac0000006d0200001f01000004000000d01d8010602580106025300cd01d300c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080e94300007ec30000f24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d3
+0102ff79004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000da010000c0000000180200000501000005000000da01c000da010501180205011802c000da01c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+fcf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000018020000c00000001902000005010000050000001802c00018020501190205011902c0001802c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000
+003000000019020000c00000001b02000005010000050000001902c000190205011b0205011b02c0001902c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000001b020000c00000001c02000005010000050000001b02c0001b0205011c02
+05011c02c0001b02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000001c020000c00000001d02000005010000050000001c02c0001c0205011d0205011d02c0001c02c000250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c0000000800008056000000300000001d020000c00000001e02000005010000050000001d02c0001d0205011e0205011e02c0001d02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000
+250000000c00000004000000250000000c0000000800008056000000300000001e020000c00000002002000005010000050000001e02c0001e020501200205012002c0001e02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000200200
+00c00000002102000005010000050000002002c00020020501210205012102c0002002c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000021020000c00000002202000005010000050000002102c00021020501220205012202c0002102
+c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000022020000c00000002302000005010000050000002202c00022020501230205012302c0002202c000250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000023020000c00000002502000005010000050000002302c00023020501250205012502c0002302c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c000000
+04000000250000000c00000008000080560000003000000025020000c00000002702000005010000050000002502c00025020501270205012702c0002502c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c00000008000080560000003000000027020000c0000000280200
+0005010000050000002702c00027020501280205012802c0002702c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000028020000c00000002a02000005010000050000002802c000280205012a0205012a02c0002802c000250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000002a020000c00000002b02000005010000050000002a02c0002a0205012b0205012b02c0002a02c000250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000002b020000c00000002c02000005010000050000002b02c0002b0205012c0205012c02c0002b02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c0000000400000025000000
+0c0000000800008056000000300000002c020000c00000002d02000005010000050000002c02c0002c0205012d0205012d02c0002c02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000002d020000c00000002f02000005010000050000
+002d02c0002d0205012f0205012f02c0002d02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000002f020000c00000003102000005010000050000002f02c0002f020501310205013102c0002f02c000250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000031020000c00000003202000005010000050000003102c00031020501320205013202c0003102c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000032020000c00000003402000005010000050000003202c00032020501340205013402c0003202c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080
+560000003000000034020000c00000003602000005010000050000003402c00034020501360205013602c0003402c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000036020000c00000003702000005010000050000003602c000360205
+01370205013702c0003602c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000037020000c00000003802000005010000050000003702c00037020501380205013802c0003702c000250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000038020000c00000003902000005010000050000003802c00038020501390205013902c0003802c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000
+000000250000000c00000004000000250000000c00000008000080560000003000000039020000c00000003a02000005010000050000003902c000390205013a0205013a02c0003902c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000
+3a020000c00000003b02000005010000050000003a02c0003a0205013b0205013b02c0003a02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000003b020000c00000003c02000005010000050000003b02c0003b0205013c0205013c02c0
+003b02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000003c020000c00000003e02000005010000050000003c02c0003c0205013e0205013e02c0003c02c000250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000003e020000c00000003f02000005010000050000003e02c0003e0205013f0205013f02c0003e02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c
+00000004000000250000000c0000000800008056000000300000003f020000c00000004102000005010000050000003f02c0003f020501410205014102c0003f02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000041020000c0000000
+4202000005010000050000004102c00041020501420205014202c0004102c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000042020000c00000004302000005010000050000004202c00042020501430205014302c0004202c000250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080560000003000000043020000c00000004402000005010000050000004302c00043020501440205014402c0004302c000250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000044020000c00000004502000005010000050000004402c00044020501450205014502c0004402c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c0000000400000025
+0000000c00000008000080560000003000000045020000c00000004602000005010000050000004502c00045020501460205014602c0004502c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c00000008000080560000003000000046020000c00000004702000005010000
+050000004602c00046020501470205014702c0004602c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000047020000c00000004902000005010000050000004702c00047020501490205014902c0004702c000250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000049020000c00000004a02000005010000050000004902c000490205014a0205014a02c0004902c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000004a020000c00000004b02000005010000050000004a02c0004a0205014b0205014b02c0004a02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008
+00008056000000300000004b020000c00000004d02000005010000050000004b02c0004b0205014d0205014d02c0004b02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000004d020000c00000004e02000005010000050000004d02c000
+4d0205014e0205014e02c0004d02c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000004e020000c00000005002000005010000050000004e02c0004e020501500205015002c0004e02c000250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000050020000c00000005102000005010000050000005002c00050020501510205015102c0005002c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8
+bf0000000000250000000c00000004000000250000000c00000008000080560000003000000051020000c00000005202000005010000050000005102c00051020501520205015202c0005102c000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030
+00000052020000c00000005302000005010000050000005202c00052020501530205015302c0005202c000250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040
+180000000c00000001000000d30102ff790045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c3010000a90000006a0200
+001c01000004000000a01d5010302550103025000ca01d000c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c
+000000000000001e00000018000000dd01000041ffffff4302000034ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000f3010000c60000003b020000d20000000100000000400d4200040dc2ec01000041ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e007500
+6d00650072006100740069006f006e00bb003827060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c00000000000000540000009c000000f2010000d30000003b020000de0000000100000000400d4200040dc2eb01000034ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e00440069006d0065006e00730069006f006e0000000300000006000000060000000600000007000000030000000900000006
+00000006000000060000000300000006000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d30122ff4c0222ff0001010115400100
+1000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000
+000c00000004000000250000000c000000050000805700000024000000c3010000ce0000006a020000fc00000002000000a01d500e3025500e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000df010000e9000000e2010000f50000000100000000400d4200040dc2d80100001effffff010000004c000000000000000000000000000000ffffffffffffffff5000000020003827030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000007c000000f0010000e90000001c020000f50000000100000000400d4200040dc2e90100001effffff080000004c000000000000000000000000000000ffffffffffffffff5c00000044005f003200440020003d002000310007000000060000000600000007000000030000000600000003000000060000000a00
+000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000054000000df010000f6000000e2010000020100000100000000400d4200040dc2d801000011ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003000000
+0a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000088000000f0010000f600000028020000020100000100000000400d4200040dc2e901000011ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000044005f003200
+5f003500440020003d0020003200070000000600000006000000060000000600000007000000030000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005401b6fe6e0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010
+000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000005b0100000c010000c90100005101000005000000b015c010b0151015901c1015901cc010b015c010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041
+000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005401b6fe6e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000
+0038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000044010000f5000000e00100006801000004000000b0151015901c1015901cc010b015c010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080a8430080a3c30000dc4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000005101b9fe6e004500250000000c
+0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000005801000009010000900100004e010000050000005801090158014e0190014e019001090158010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e2000000000025000000
+0c00000004000000250000000c0000000800008056000000300000009001000009010000910100004e010000050000009001090190014e0191014e019101090190010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000091010000090100
+00920100004e010000050000009101090191014e0192014e019201090191010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000009201000009010000930100004e010000050000009201090192014e0193014e0193010901920109012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000009301000009010000940100004e010000050000009301090193014e0194014e019401090193010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009401000009010000950100004e010000050000009401090194014e0195014e019501090194010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000
+250000000c0000000800008056000000300000009501000009010000960100004e010000050000009501090195014e0196014e019601090195010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000009601000009010000970100004e0100
+00050000009601090196014e0197014e019701090196010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009701000009010000980100004e010000050000009701090197014e0198014e019801090197010901250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009801000009010000990100004e010000050000009801090198014e0199014e019901090198010901250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f9eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000099010000090100009a0100004e010000050000009901090199014e019a014e019a01090199010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000
+0800008056000000300000009a010000090100009b0100004e010000050000009a0109019a014e019b014e019b0109019a010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000009b010000090100009c0100004e010000050000009b0109
+019b014e019c014e019c0109019b010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000009c010000090100009e0100004e010000050000009c0109019c014e019e014e019e0109019c010901250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000009e010000090100009f0100004e010000050000009e0109019e014e019f014e019f0109019e010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6
+ead80000000000250000000c00000004000000250000000c0000000800008056000000300000009f01000009010000a10100004e010000050000009f0109019f014e01a1014e01a10109019f010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000
+30000000a101000009010000a20100004e01000005000000a1010901a1014e01a2014e01a2010901a1010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a201000009010000a30100004e01000005000000a2010901a2014e01a3014e
+01a3010901a2010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a301000009010000a50100004e01000005000000a3010901a3014e01a5014e01a5010901a3010901250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000a501000009010000a70100004e01000005000000a5010901a5014e01a7014e01a7010901a5010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d3000000000025
+0000000c00000004000000250000000c000000080000805600000030000000a701000009010000a80100004e01000005000000a7010901a7014e01a8014e01a8010901a7010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000a8010000
+09010000aa0100004e01000005000000a8010901a8014e01aa014e01aa010901a8010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000aa01000009010000ac0100004e01000005000000aa010901aa014e01ac014e01ac010901aa0109
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000009010000ad0100004e01000005000000ac010901ac014e01ad014e01ad010901ac010901250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ad01000009010000ae0100004e01000005000000ad010901ad014e01ae014e01ae010901ad010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004
+000000250000000c000000080000805600000030000000ae01000009010000af0100004e01000005000000ae010901ae014e01af014e01af010901ae010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000af01000009010000b0010000
+4e01000005000000af010901af014e01b0014e01b0010901af010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000b001000009010000b10100004e01000005000000b0010901b0014e01b1014e01b1010901b0010901250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000b101000009010000b30100004e01000005000000b1010901b1014e01b3014e01b3010901b1010901250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000b301000009010000b40100004e01000005000000b3010901b3014e01b4014e01b4010901b3010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c
+000000080000805600000030000000b401000009010000b50100004e01000005000000b4010901b4014e01b5014e01b5010901b4010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000b501000009010000b70100004e01000005000000
+b5010901b5014e01b7014e01b7010901b5010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000b701000009010000b80100004e01000005000000b7010901b7014e01b8014e01b8010901b7010901250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000b801000009010000ba0100004e01000005000000b8010901b8014e01ba014e01ba010901b8010901250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000ba01000009010000bb0100004e01000005000000ba010901ba014e01bb014e01bb010901ba010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056
+00000030000000bb01000009010000bd0100004e01000005000000bb010901bb014e01bd014e01bd010901bb010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000bd01000009010000be0100004e01000005000000bd010901bd014e01
+be014e01be010901bd010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000be01000009010000bf0100004e01000005000000be010901be014e01bf014e01bf010901be010901250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000bf01000009010000c00100004e01000005000000bf010901bf014e01c0014e01c0010901bf010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac2000000
+0000250000000c00000004000000250000000c000000080000805600000030000000c001000009010000c10100004e01000005000000c0010901c0014e01c1014e01c1010901c0010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000c1
+01000009010000c20100004e01000005000000c1010901c1014e01c2014e01c2010901c1010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000c201000009010000c30100004e01000005000000c2010901c2014e01c3014e01c3010901
+c2010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000c301000009010000c40100004e01000005000000c3010901c3014e01c4014e01c4010901c3010901250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000c401000009010000c50100004e01000005000000c4010901c4014e01c5014e01c5010901c4010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00
+000004000000250000000c000000080000805600000030000000c501000009010000c60100004e01000005000000c5010901c5014e01c6014e01c6010901c5010901250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001
+000000000000000210c0db00000000000000ff0b400040180000000c000000010000005101b9fe6e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000
+05000080560000002c00000041010000f2000000dd01000065010000040000008015e014601ce014601c901080159010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c00000000000000540000007c0000007a01000012010000a40100001d0100000100000000400d4200040dc273010000f5feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000490063006f006e00530069007a00650003000000060000000600000006000000070000000300000005000000060000000a00000010000000f9ffffff07
+0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005101e3febf01e3fe00010101154001001000000004000000000000002100000008000000620000000c0000000100000011000000
+0c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000410100000d0100
+00dd0100003b0100000200000080154012601c4012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b
+00000054000000580000005d0100002801000066010000340100000100000000400d4200040dc256010000dffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000
+000c0000008b00000054000000a80000006e01000028010000b1010000340100000100000000400d4200040dc267010000dffeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000077006900640074006800200020003a0049006e007400650067006500720000000700000003000000060000000300000006000000030000000300000003000000030000000600000003000000060000000600
+000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000005d0100003501000066010000410100000100000000400d4200040dc256010000d2feffff020000004c000000000000000000000000000000ffffffffffffffff
+500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000ac0000006e01000035010000b6010000410100000100000000400d4200040dc267010000d2feffff100000004c000000000000000000000000000000ffff
+ffffffffffff6c000000680065006900670068007400200020003a0049006e0074006500670065007200060000000600000003000000060000000600000003000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000003000000180000000c0000008b00000054000000580000005d01000042010000660100004e0100000100000000400d4200040dc256010000c5feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000003000000180000000c0000008b00000054000000c40000006e01000042010000c20100004e0100000100000000400d4200040dc267010000c5feffff140000004c000000000000000000000000000000ffffffffffffffff74000000640070006900200020003a0049006e007400650067006500720020005b0030002e002e0031005d00060000000600000003000000030000000300000003
+00000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000ac00bbfe660045002100000008000000620000000c00000001000000110000000c00000001000000
+0a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000b300000007010000190100004c01000005000000300b7010300bc0149011c01490117010300b7010250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000ac00bbfe660045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800
+00000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000009c000000f0000000300100006301000004000000300bc0149011c01490117010300b7010250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100
+0000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000029430000a1c30000cc4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000a900befe66004500
+250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000b000000004010000e40000004901000005000000b0000401b0004901e4004901e4000401b0000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e200000000
+00250000000c00000004000000250000000c000000080000805600000030000000e400000004010000e50000004901000005000000e4000401e4004901e5004901e5000401e4000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000e500
+000004010000e70000004901000005000000e5000401e5004901e7004901e7000401e5000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000e700000004010000e80000004901000005000000e7000401e7004901e8004901e8000401e7
+000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e800000004010000e90000004901000005000000e8000401e8004901e9004901e9000401e8000401250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000e900000004010000eb0000004901000005000000e9000401e9004901eb004901eb000401e9000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c0000
+0004000000250000000c000000080000805600000030000000eb00000004010000ec0000004901000005000000eb000401eb004901ec004901ec000401eb000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ec00000004010000ed00
+00004901000005000000ec000401ec004901ed004901ed000401ec000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ed00000004010000ee0000004901000005000000ed000401ed004901ee004901ee000401ed000401250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000ee00000004010000ef0000004901000005000000ee000401ee004901ef004901ef000401ee000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000ef00000004010000f10000004901000005000000ef000401ef004901f1004901f1000401ef000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000
+000c000000080000805600000030000000f100000004010000f20000004901000005000000f1000401f1004901f2004901f2000401f1000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000f200000004010000f3000000490100000500
+0000f2000401f2004901f3004901f3000401f2000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000f300000004010000f50000004901000005000000f3000401f3004901f5004901f5000401f3000401250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000f500000004010000f60000004901000005000000f5000401f5004901f6004901f6000401f5000401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000f600000004010000f70000004901000005000000f6000401f6004901f7004901f7000401f6000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000
+805600000030000000f700000004010000f80000004901000005000000f7000401f7004901f8004901f8000401f7000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000f800000004010000f90000004901000005000000f8000401f800
+4901f9004901f9000401f8000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000f900000004010000fa0000004901000005000000f9000401f9004901fa004901fa000401f9000401250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000fa00000004010000fb0000004901000005000000fa000401fa004901fb004901fb000401fa000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d200
+00000000250000000c00000004000000250000000c000000080000805600000030000000fb00000004010000fc0000004901000005000000fb000401fb004901fc004901fc000401fb000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000
+00fc00000004010000fe0000004901000005000000fc000401fc004901fe004901fe000401fc000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000fe00000004010000ff0000004901000005000000fe000401fe004901ff004901ff00
+0401fe000401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ff00000004010000000100004901000005000000ff000401ff0049010001490100010401ff000401250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000000010000040100000101000049010000050000000001040100014901010149010101040100010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd000000000025000000
+0c00000004000000250000000c00000008000080560000003000000001010000040100000201000049010000050000000101040101014901020149010201040101010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000002010000040100
+000301000049010000050000000201040102014901030149010301040102010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000030100000401000004010000490100000500000003010401030149010401490104010401030104012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c00000008000080560000003000000004010000040100000501000049010000050000000401040104014901050149010501040104010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000005010000040100000701000049010000050000000501040105014901070149010701040105010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000
+250000000c00000008000080560000003000000007010000040100000801000049010000050000000701040107014901080149010801040107010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000080100000401000009010000490100
+00050000000801040108014901090149010901040108010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000009010000040100000b010000490100000500000009010401090149010b0149010b01040109010401250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000b010000040100000c01000049010000050000000b0104010b0149010c0149010c0104010b010401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000000c010000040100000e01000049010000050000000c0104010c0149010e0149010e0104010c010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000
+0800008056000000300000000e010000040100000f01000049010000050000000e0104010e0149010f0149010f0104010e010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000000f010000040100001101000049010000050000000f0104
+010f01490111014901110104010f010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000011010000040100001201000049010000050000001101040111014901120149011201040111010401250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000012010000040100001301000049010000050000001201040112014901130149011301040112010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9
+d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000013010000040100001501000049010000050000001301040113014901150149011501040113010401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000
+3000000015010000040100001601000049010000050000001501040115014901160149011601040115010401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000
+40180000000c00000001000000a900befe660045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000099000000ed0000002d01
+00006001000004000000000b90146011901460114010000b4010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000000000000054000000a0000000bf0000000d01000007010000180100000100000000400d4200040dc2b8000000fafeffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e00440065007300630072006900700074006f00720003000000060000000600000006000000070000000600000006000000060000000400000003000000060000000300000006000000040000
+000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a900e8fe0f01e8fe000101011540010010000000040000000000000021000000080000006200
+00000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057
+0000002400000099000000080100002d0100003601000002000000000bf0116011f011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0003000000180000000c0000008b0000005400000058000000b500000023010000be0000002f0100000100000000400d4200040dc2ae000000e4feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000003000000180000000c0000008b00000054000000c0000000c600000023010000120100002f0100000100000000400d4200040dc2bf000000e4feffff130000004c000000000000000000000000000000ffffffffffffffff74000000750072006c00200020003a0053007400720069006e00670020005b0030002e002e0031005d00000006000000030000000300000003000000030000000300000007000000
+0300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000b500000030010000be0000003c0100000100000000400d420004
+0dc2ae000000d7feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000ac000000c6000000300100000d0100003c01000001000000
+00400d4200040dc2bf000000d7feffff100000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e0049006400200020003a0049006e0074006500670065007200030000000500000006000000060000000300000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000f9ffffff070000000c000000100000
+000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000c701d8fd650045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000
+0000ce010000ea010000330200002f02000005000000e01ca01ee01cf0223023f0223023a01ee01ca01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000c0bfc0ff0b400040180000000c00000001000000c701d8fd650045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000
+b7010000d30100004a0200004602000004000000e01cf0223023f0223023a01ee01ca01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000e2
+43004009c40000ca4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000c401dbfd65004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000cb010000e7010000ff0100002c02
+000005000000cb01e701cb012c02ff012c02ff01e701cb01e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000ff010000e7010000000200002c02000005000000ff01e701ff012c0200022c020002e701ff01e701250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000000020000e7010000010200002c020000050000000002e70100022c0201022c020102e7010002e701250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000001020000e7010000020200002c020000050000000102e70101022c0202022c020202e7010102e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000
+0008000080560000003000000002020000e7010000030200002c020000050000000202e70102022c0203022c020302e7010202e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c00000008000080560000003000000003020000e7010000040200002c020000050000000302
+e70103022c0204022c020402e7010302e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000004020000e7010000050200002c020000050000000402e70104022c0205022c020502e7010402e701250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000005020000e7010000070200002c020000050000000502e70105022c0207022c020702e7010502e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000007020000e7010000080200002c020000050000000702e70107022c0208022c020802e7010702e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000
+003000000008020000e70100000a0200002c020000050000000802e70108022c020a022c020a02e7010802e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000000a020000e70100000b0200002c020000050000000a02e7010a022c020b02
+2c020b02e7010a02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000000b020000e70100000c0200002c020000050000000b02e7010b022c020c022c020c02e7010b02e701250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000000c020000e70100000d0200002c020000050000000c02e7010c022c020d022c020d02e7010c02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000
+250000000c00000004000000250000000c0000000800008056000000300000000d020000e70100000e0200002c020000050000000d02e7010d022c020e022c020e02e7010d02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000000e0200
+00e70100000f0200002c020000050000000e02e7010e022c020f022c020f02e7010e02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000000f020000e7010000100200002c020000050000000f02e7010f022c0210022c021002e7010f02
+e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000010020000e7010000120200002c020000050000001002e70110022c0212022c021202e7011002e701250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000012020000e7010000130200002c020000050000001202e70112022c0213022c021302e7011202e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c000000
+04000000250000000c00000008000080560000003000000013020000e7010000140200002c020000050000001302e70113022c0214022c021402e7011302e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000014020000e7010000150200
+002c020000050000001402e70114022c0215022c021502e7011402e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000015020000e7010000160200002c020000050000001502e70115022c0216022c021602e7011502e701250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000016020000e7010000180200002c020000050000001602e70116022c0218022c021802e7011602e701250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000018020000e7010000190200002c020000050000001802e70118022c0219022c021902e7011802e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c0000000400000025000000
+0c00000008000080560000003000000019020000e70100001a0200002c020000050000001902e70119022c021a022c021a02e7011902e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000001a020000e70100001b0200002c020000050000
+001a02e7011a022c021b022c021b02e7011a02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000001b020000e70100001c0200002c020000050000001b02e7011b022c021c022c021c02e7011b02e701250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000001c020000e70100001d0200002c020000050000001c02e7011c022c021d022c021d02e7011c02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000001d020000e70100001e0200002c020000050000001d02e7011d022c021e022c021e02e7011d02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080
+56000000300000001e020000e70100001f0200002c020000050000001e02e7011e022c021f022c021f02e7011e02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000001f020000e7010000210200002c020000050000001f02e7011f022c
+0221022c022102e7011f02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000021020000e7010000220200002c020000050000002102e70121022c0222022c022202e7012102e701250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000022020000e7010000230200002c020000050000002202e70122022c0223022c022302e7012202e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000
+000000250000000c00000004000000250000000c00000008000080560000003000000023020000e7010000250200002c020000050000002302e70123022c0225022c022502e7012302e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000
+25020000e7010000260200002c020000050000002502e70125022c0226022c022602e7012502e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000026020000e7010000280200002c020000050000002602e70126022c0228022c022802e7
+012602e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000028020000e7010000290200002c020000050000002802e70128022c0229022c022902e7012802e701250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000029020000e70100002b0200002c020000050000002902e70129022c022b022c022b02e7012902e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c
+00000004000000250000000c0000000800008056000000300000002b020000e70100002c0200002c020000050000002b02e7012b022c022c022c022c02e7012b02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000002c020000e7010000
+2d0200002c020000050000002c02e7012c022c022d022c022d02e7012c02e701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000002d020000e70100002f0200002c020000050000002d02e7012d022c022f022c022f02e7012d02e701250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000002f020000e7010000300200002c020000050000002f02e7012f022c0230022c023002e7012f02e701250000000c00000008000080250000000c00000000000080280000000c000000040000002500
+00000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000c401dbfd650045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b4010000d0010000470200004302000004000000b01cc0220023c0220023701eb01c701e250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000540000007c000000e8010000f001000013020000fb0100000100000000400d4200040dc2e101000017feffff080000004c000000000000000000000000000000ffffffffffffffff5c00
+0000490063006f006e00440061007400610003000000060000000600000006000000070000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000001800000002
+10c0db0200000000400000c40105fe290205fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000b4010000eb010000470200001902000002000000b01c202000232020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000
+00220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000d001000006020000d9010000120200000100000000400d4200040dc2c901000001feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff07
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000b8000000e1010000060200002c020000120200000100000000400d4200040dc2da01000001feffff120000004c000000000000000000000000000000ffffffffffffffff700000006400610074006100200020003a006200790074
+00650020005b0031002e002e002a005d000600000006000000030000000600000003000000030000000300000006000000050000000300000006000000030000000300000006000000030000000300000004000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000c200dbfd7d0045002100
+000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000c9000000e7010000460100002c02000005000000900c701e900cc0226014c0226014701e900c701e250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000c200dbfd7d0045003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b2000000d00100005d0100004302000004000000900cc0226014c0226014701e900c701e250000000c00000007000080250000000c0000
+0000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000003f43008008c40000fa4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7
+e8ff0a4000401c000000100000000200000001000000bf00defd7d004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000c6000000e4010000060100002902000005000000c600e401c6002902060129020601e401c600e401250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000006010000e40100000701000029020000050000000601e40106012902070129020701e4010601e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e1000000000025000000
+0c00000004000000250000000c00000008000080560000003000000007010000e40100000901000029020000050000000701e40107012902090129020901e4010701e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000009010000e40100
+000a01000029020000050000000901e401090129020a0129020a01e4010901e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000000a010000e40100000b01000029020000050000000a01e4010a0129020b0129020b01e4010a01e4012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000000b010000e40100000c01000029020000050000000b01e4010b0129020c0129020c01e4010b01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000000c010000e40100000e01000029020000050000000c01e4010c0129020e0129020e01e4010c01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000
+250000000c0000000800008056000000300000000e010000e40100001001000029020000050000000e01e4010e012902100129021001e4010e01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000010010000e401000011010000290200
+00050000001001e40110012902110129021101e4011001e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000011010000e40100001201000029020000050000001101e40111012902120129021201e4011101e401250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000012010000e40100001301000029020000050000001201e40112012902130129021301e4011201e401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f7ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000013010000e40100001401000029020000050000001301e40113012902140129021401e4011301e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000
+08000080560000003000000014010000e40100001501000029020000050000001401e40114012902150129021501e4011401e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000015010000e40100001601000029020000050000001501e4
+0115012902160129021601e4011501e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c00000008000080560000003000000016010000e40100001701000029020000050000001601e40116012902170129021701e4011601e401250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000017010000e40100001901000029020000050000001701e40117012902190129021901e4011701e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6
+e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000019010000e40100001a01000029020000050000001901e401190129021a0129021a01e4011901e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000
+300000001a010000e40100001b01000029020000050000001a01e4011a0129021b0129021b01e4011a01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c0000000800008056000000300000001b010000e40100001c01000029020000050000001b01e4011b0129021c0129
+021c01e4011b01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000001c010000e40100001d01000029020000050000001c01e4011c0129021d0129021d01e4011c01e401250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000001d010000e40100001e01000029020000050000001d01e4011d0129021e0129021e01e4011d01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d4000000000025
+0000000c00000004000000250000000c0000000800008056000000300000001e010000e40100001f01000029020000050000001e01e4011e0129021f0129021f01e4011e01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000001f010000
+e40100002001000029020000050000001f01e4011f012902200129022001e4011f01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000020010000e40100002101000029020000050000002001e40120012902210129022101e4012001e4
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000021010000e40100002301000029020000050000002101e40121012902230129022301e4012101e401250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000023010000e40100002501000029020000050000002301e40123012902250129022501e4012301e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004
+000000250000000c00000008000080560000003000000025010000e40100002601000029020000050000002501e40125012902260129022601e4012501e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000026010000e401000027010000
+29020000050000002601e40126012902270129022701e4012601e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000027010000e40100002801000029020000050000002701e40127012902280129022801e4012701e401250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000028010000e40100002901000029020000050000002801e40128012902290129022901e4012801e401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000029010000e40100002a01000029020000050000002901e401290129022a0129022a01e4012901e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c
+0000000800008056000000300000002a010000e40100002b01000029020000050000002a01e4012a0129022b0129022b01e4012a01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000002b010000e40100002d0100002902000005000000
+2b01e4012b0129022d0129022d01e4012b01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000002d010000e40100002e01000029020000050000002d01e4012d0129022e0129022e01e4012d01e401250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000002e010000e40100003001000029020000050000002e01e4012e012902300129023001e4012e01e401250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000030010000e40100003201000029020000050000003001e40130012902320129023201e4013001e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056
+0000003000000032010000e40100003301000029020000050000003201e40132012902330129023301e4013201e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000033010000e40100003501000029020000050000003301e40133012902
+350129023501e4013301e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000035010000e40100003601000029020000050000003501e40135012902360129023601e4013501e401250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c00000008000080560000003000000036010000e40100003701000029020000050000003601e40136012902370129023701e4013601e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc5000000
+0000250000000c00000004000000250000000c00000008000080560000003000000037010000e40100003901000029020000050000003701e40137012902390129023901e4013701e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000039
+010000e40100003a01000029020000050000003901e401390129023a0129023a01e4013901e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000003a010000e40100003b01000029020000050000003a01e4013a0129023b0129023b01e401
+3a01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000003b010000e40100003c01000029020000050000003b01e4013b0129023c0129023c01e4013b01e401250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000003c010000e40100003d01000029020000050000003c01e4013c0129023d0129023d01e4013c01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00
+000004000000250000000c0000000800008056000000300000003d010000e40100003e01000029020000050000003d01e4013d0129023e0129023e01e4013d01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000003e010000e401000040
+01000029020000050000003e01e4013e012902400129024001e4013e01e401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000040010000e40100004101000029020000050000004001e40140012902410129024101e4014001e40125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000041010000e40100004201000029020000050000004101e40141012902420129024201e4014101e401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000042010000e40100004301000029020000050000004201e40142012902430129024301e4014201e401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000bf00defd7d0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000000000000000
+00000000000000250000000c00000004000000250000000c00000005000080560000002c000000af000000cd0100005a0100004002000004000000600c9022301490223014401e600c401e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000
+ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000540000007c000000f1000000ed01000018010000f80100000100000000400d4200040dc2ea0000001afeffff080000004c000000000000000000000000000000ffffffffffffffff5c000000490063006f006e0049006e0066006f00030000000600000006000000060000000300
+00000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000bf0008fe3c0108fe0001010115400100100000000400000000
+0000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000
+250000000c000000050000805700000024000000af000000e80100005a0100001602000002000000600cf01f3014f01f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000cb00000003020000d40000000f0200000100000000400d4200040dc2c400000004feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000cc000000dc000000030200003f0100000f0200000100000000400d4200040dc2d500000004feffff150000004c000000000000000000000000000000ffffffffffffffff78000000690063006f006e0053006500740049006400200020003a00490063006f006e005300650074004900640000000300000005000000060000
+000600000007000000060000000300000003000000060000000300000003000000030000000300000005000000060000000600000007000000060000000300000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000cb
+00000010020000d40000001c0200000100000000400d4200040dc2c4000000f7fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000
+00a8000000dc000000100200001f0100001c0200000100000000400d4200040dc2d5000000f7fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e0049006400200020003a00490063006f006e004900640000000300000005000000060000000600000003000000060000000300000003000000030000000300000005000000060000000600000003000000060000000a00
+000010000000f9ffffff070000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000055014bfe590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001
+000000250000000c0000000800008056000000300000005c01000077010000b5010000bc01000005000000c0157017c015c01b501bc01b501b7017c0157017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000055014bfe590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000040000
+00250000000c00000005000080560000002c0000004501000060010000cc010000d301000004000000c015c01b501bc01b501b7017c0157017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c00
+00000210c0db0400000004000000000000000000a9430000d9c30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000052014efe59004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056
+00000030000000590100007401000087010000b901000005000000590174015901b9018701b9018701740159017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000870100007401000088010000b901000005000000870174018701b901
+8801b9018801740187017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000880100007401000089010000b901000005000000880174018801b9018901b9018901740188017401250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000089010000740100008a010000b901000005000000890174018901b9018a01b9018a01740189017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df000000
+0000250000000c00000004000000250000000c0000000800008056000000300000008a010000740100008b010000b9010000050000008a0174018a01b9018b01b9018b0174018a017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000008b
+010000740100008c010000b9010000050000008b0174018b01b9018c01b9018c0174018b017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000008c010000740100008e010000b9010000050000008c0174018c01b9018e01b9018e017401
+8c017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000008e010000740100008f010000b9010000050000008e0174018e01b9018f01b9018f0174018e017401250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000008f0100007401000090010000b9010000050000008f0174018f01b9019001b901900174018f017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00
+000004000000250000000c000000080000805600000030000000900100007401000092010000b901000005000000900174019001b9019201b9019201740190017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000920100007401000093
+010000b901000005000000920174019201b9019301b9019301740192017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000930100007401000094010000b901000005000000930174019301b9019401b901940174019301740125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000940100007401000095010000b901000005000000940174019401b9019501b9019501740194017401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000950100007401000096010000b901000005000000950174019501b9019601b9019601740195017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c000000040000002500
+00000c000000080000805600000030000000960100007401000097010000b901000005000000960174019601b9019701b9019701740196017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000970100007401000098010000b901000005
+000000970174019701b9019801b9019801740197017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000980100007401000099010000b901000005000000980174019801b9019901b9019901740198017401250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000099010000740100009a010000b901000005000000990174019901b9019a01b9019a01740199017401250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000009a010000740100009b010000b9010000050000009a0174019a01b9019b01b9019b0174019a017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c0000000800
+008056000000300000009b010000740100009c010000b9010000050000009b0174019b01b9019c01b9019c0174019b017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000009c010000740100009d010000b9010000050000009c0174019c
+01b9019d01b9019d0174019c017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000009d010000740100009e010000b9010000050000009d0174019d01b9019e01b9019e0174019d017401250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000009e010000740100009f010000b9010000050000009e0174019e01b9019f01b9019f0174019e017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce
+0000000000250000000c00000004000000250000000c0000000800008056000000300000009f01000074010000a0010000b9010000050000009f0174019f01b901a001b901a00174019f017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000a001000074010000a1010000b901000005000000a0017401a001b901a101b901a1017401a0017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000a101000074010000a2010000b901000005000000a1017401a101b901a201b901a2
+017401a1017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000a201000074010000a3010000b901000005000000a2017401a201b901a301b901a3017401a2017401250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000a301000074010000a5010000b901000005000000a3017401a301b901a501b901a5017401a3017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000
+000c00000004000000250000000c000000080000805600000030000000a501000074010000a6010000b901000005000000a5017401a501b901a601b901a6017401a5017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000a60100007401
+0000a7010000b901000005000000a6017401a601b901a701b901a7017401a6017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000a701000074010000a8010000b901000005000000a7017401a701b901a801b901a8017401a701740125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000a801000074010000a9010000b901000005000000a8017401a801b901a901b901a9017401a8017401250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000a901000074010000ab010000b901000005000000a9017401a901b901ab01b901ab017401a9017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c000000040000
+00250000000c000000080000805600000030000000ab01000074010000ac010000b901000005000000ab017401ab01b901ac01b901ac017401ab017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000074010000ae010000b901
+000005000000ac017401ac01b901ae01b901ae017401ac017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000ae01000074010000af010000b901000005000000ae017401ae01b901af01b901af017401ae017401250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000af01000074010000b0010000b901000005000000af017401af01b901b001b901b0017401af017401250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000b001000074010000b1010000b901000005000000b0017401b001b901b101b901b1017401b0017401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000b101000074010000b2010000b901000005000000b1017401b101b901b201b901b2017401b1017401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0b400040180000000c0000000100000052014efe590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000042
+0100005d010000c9010000d0010000040000009015901b201b901b201b401790154017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000000000000054000000a0000000640100007d010000a7010000880100000100000000400d4200040dc25d0100008afeffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e0044006500660069006e006900740069006f006e0003000000060000000600000006000000070000000600000003000000030000000600000003000000030000000300
+000006000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000520178feab0178fe000101011540010010000000040000000000000021
+00000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000000400000025000000
+0c0000000500008057000000240000004201000078010000c9010000a6010000020000009015f018201bf018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000000b00f9
+fe59003b0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000d30000006b0000000e010000050000002001300d2001e010b006e010b006300d2001300d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000b00f9fe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000
+0000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffffbc0000008200000025010000040000002001e010b006e010b006300d2001300d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000
+280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000000041000082c30000b24200006c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000800fcfe59003b00250000000c000000080000
+8027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f000000d00000003d0000000b010000050000000f00d0000f000b013d000b013d00d0000f00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c0000000400
+0000250000000c0000000800008056000000300000003d000000d00000003e0000000b010000050000003d00d0003d000b013e000b013e00d0003d00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000003e000000d00000003f0000000b
+010000050000003e00d0003e000b013f000b013f00d0003e00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000003f000000d0000000400000000b010000050000003f00d0003f000b0140000b014000d0003f00d000250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000040000000d0000000410000000b010000050000004000d00040000b0141000b014100d0004000d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000041000000d0000000420000000b010000050000004100d00041000b0142000b014200d0004100d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00
+000008000080560000003000000042000000d0000000440000000b010000050000004200d00042000b0144000b014400d0004200d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000044000000d0000000450000000b0100000500000044
+00d00044000b0145000b014500d0004400d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000045000000d0000000460000000b010000050000004500d00045000b0146000b014600d0004500d000250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000046000000d0000000480000000b010000050000004600d00046000b0148000b014800d0004600d000250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f7ead90000000000250000000c00000004000000250000000c00000008000080560000003000000048000000d0000000490000000b010000050000004800d00048000b0149000b014900d0004800d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600
+00003000000049000000d00000004a0000000b010000050000004900d00049000b014a000b014a00d0004900d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000004a000000d00000004b0000000b010000050000004a00d0004a000b014b
+000b014b00d0004a00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000004b000000d00000004c0000000b010000050000004b00d0004b000b014c000b014c00d0004b00d000250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000004c000000d00000004d0000000b010000050000004c00d0004c000b014d000b014d00d0004c00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d400000000
+00250000000c00000004000000250000000c0000000800008056000000300000004d000000d00000004e0000000b010000050000004d00d0004d000b014e000b014e00d0004d00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000004e00
+0000d00000004f0000000b010000050000004e00d0004e000b014f000b014f00d0004e00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000004f000000d0000000500000000b010000050000004f00d0004f000b0150000b015000d0004f
+00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000050000000d0000000510000000b010000050000005000d00050000b0151000b015100d0005000d000250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000051000000d0000000520000000b010000050000005100d00051000b0152000b015200d0005100d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c0000
+0004000000250000000c00000008000080560000003000000052000000d0000000530000000b010000050000005200d00052000b0153000b015300d0005200d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000053000000d00000005400
+00000b010000050000005300d00053000b0154000b015400d0005300d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000054000000d0000000550000000b010000050000005400d00054000b0155000b015500d0005400d000250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000055000000d0000000560000000b010000050000005500d00055000b0156000b015600d0005500d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000056000000d0000000570000000b010000050000005600d00056000b0157000b015700d0005600d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000
+000c00000008000080560000003000000057000000d0000000580000000b010000050000005700d00057000b0158000b015800d0005700d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000058000000d0000000590000000b0100000500
+00005800d00058000b0159000b015900d0005800d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000059000000d00000005b0000000b010000050000005900d00059000b015b000b015b00d0005900d000250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000005b000000d00000005c0000000b010000050000005b00d0005b000b015c000b015c00d0005b00d000250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000eddec80000000000250000000c00000004000000250000000c0000000800008056000000300000005c000000d00000005d0000000b010000050000005c00d0005c000b015d000b015d00d0005c00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000
+8056000000300000005d000000d00000005e0000000b010000050000005d00d0005d000b015e000b015e00d0005d00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000005e000000d00000005f0000000b010000050000005e00d0005e00
+0b015f000b015f00d0005e00d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000005f000000d0000000610000000b010000050000005f00d0005f000b0161000b016100d0005f00d000250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000061000000d0000000620000000b010000050000006100d00061000b0162000b016200d0006100d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac300
+00000000250000000c00000004000000250000000c00000008000080560000003000000062000000d0000000640000000b010000050000006200d00062000b0164000b016400d0006200d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000
+0064000000d0000000650000000b010000050000006400d00064000b0165000b016500d0006400d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000065000000d0000000660000000b010000050000006500d00065000b0166000b016600
+d0006500d000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000066000000d0000000670000000b010000050000006600d00066000b0167000b016700d0006600d000250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000067000000d0000000680000000b010000050000006700d00067000b0168000b016800d0006700d000250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000800fcfe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000
+0000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffffb90000007f0000002201000004000000f000b0108006b0108006000df000000d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00
+0000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000001e000000180000001200000035ffffff5800000028ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000021000000d200000056000000de000000
+0100000000400d4200040dc21a00000035ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007000720069006d0069007400690076006500bb00000006000000060000000300000003000000090000000300000003000000030000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000
+0010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000540000008400000025000000e200000053000000ed0000000100000000400d4200040dc21e00000025ffffff090000004c000000000000000000000000000000ffffffffffffffff60000000490063006f006e0053
+00650074004900640000000300000006000000060000000600000007000000060000000300000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db
+02000000004000001e0019ff4c0019ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000
+000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000e000000d70000006a00000005010000020000005002e00e3005e00e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000004600
+00002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001b00fdfd59003b0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000022000000cf0100007b0000000a020000050000002002f01c2002a020b007a020b007f01c2002f01c250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001b00fdfd59003b003a0000000c0000000a00000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000b000000b80100009200000021020000040000002002a020b007a020b007f01c2002f01c250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c041000000c40000b24200006c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a40
+00401c000000100000000200000001000000180000fe59003b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001f000000cc0100004d00000007020000050000001f00cc011f0007024d0007024d00cc011f00cc01250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000004d000000cc0100004e00000007020000050000004d00cc014d0007024e0007024e00cc014d00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c000000
+04000000250000000c0000000800008056000000300000004e000000cc0100004f00000007020000050000004e00cc014e0007024f0007024f00cc014e00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000004f000000cc010000500000
+0007020000050000004f00cc014f000702500007025000cc014f00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000050000000cc0100005100000007020000050000005000cc0150000702510007025100cc015000cc01250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000051000000cc0100005200000007020000050000005100cc0151000702520007025200cc015100cc01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000052000000cc0100005400000007020000050000005200cc0152000702540007025400cc015200cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c0000000400000025000000
+0c00000008000080560000003000000054000000cc0100005500000007020000050000005400cc0154000702550007025500cc015400cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000055000000cc0100005600000007020000050000
+005500cc0155000702560007025600cc015500cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000056000000cc0100005800000007020000050000005600cc0156000702580007025800cc015600cc01250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c00000008000080560000003000000058000000cc0100005900000007020000050000005800cc0158000702590007025900cc015800cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000059000000cc0100005a00000007020000050000005900cc01590007025a0007025a00cc015900cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080
+56000000300000005a000000cc0100005b00000007020000050000005a00cc015a0007025b0007025b00cc015a00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000005b000000cc0100005c00000007020000050000005b00cc015b0007
+025c0007025c00cc015b00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000005c000000cc0100005d00000007020000050000005c00cc015c0007025d0007025d00cc015c00cc01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000005d000000cc0100005e00000007020000050000005d00cc015d0007025e0007025e00cc015d00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000
+000000250000000c00000004000000250000000c0000000800008056000000300000005e000000cc0100005f00000007020000050000005e00cc015e0007025f0007025f00cc015e00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000
+5f000000cc0100006000000007020000050000005f00cc015f000702600007026000cc015f00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000060000000cc0100006100000007020000050000006000cc0160000702610007026100cc
+016000cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000061000000cc0100006200000007020000050000006100cc0161000702620007026200cc016100cc01250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000062000000cc0100006300000007020000050000006200cc0162000702630007026300cc016200cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c
+00000004000000250000000c00000008000080560000003000000063000000cc0100006400000007020000050000006300cc0163000702640007026400cc016300cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000064000000cc010000
+6500000007020000050000006400cc0164000702650007026500cc016400cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000065000000cc0100006600000007020000050000006500cc0165000702660007026600cc016500cc01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000066000000cc0100006700000007020000050000006600cc0166000702670007026700cc016600cc01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000067000000cc0100006800000007020000050000006700cc0167000702680007026800cc016700cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c0000000400000025
+0000000c00000008000080560000003000000068000000cc0100006900000007020000050000006800cc0168000702690007026900cc016800cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000069000000cc0100006b00000007020000
+050000006900cc01690007026b0007026b00cc016900cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000006b000000cc0100006c00000007020000050000006b00cc016b0007026c0007026c00cc016b00cc01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c0000000800008056000000300000006c000000cc0100006d00000007020000050000006c00cc016c0007026d0007026d00cc016c00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000006d000000cc0100006e00000007020000050000006d00cc016d0007026e0007026e00cc016d00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008
+00008056000000300000006e000000cc0100006f00000007020000050000006e00cc016e0007026f0007026f00cc016e00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000006f000000cc0100007100000007020000050000006f00cc01
+6f000702710007027100cc016f00cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000071000000cc0100007200000007020000050000007100cc0171000702720007027200cc017100cc01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000072000000cc0100007400000007020000050000007200cc0172000702740007027400cc017200cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9
+c20000000000250000000c00000004000000250000000c00000008000080560000003000000074000000cc0100007500000007020000050000007400cc0174000702750007027500cc017400cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030
+00000075000000cc0100007600000007020000050000007500cc0175000702760007027600cc017500cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000076000000cc0100007700000007020000050000007600cc017600070277000702
+7700cc017600cc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000077000000cc0100007800000007020000050000007700cc0177000702780007027800cc017700cc01250000000c00000008000080250000000c00000000000080280000
+000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000180000fe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000008000000b50100008f0000001e02000004000000f0017020800770208007c01cf001c01c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000001e000000180000002200000039feffff680000002cfeffff160000000c00000001000000120000000c000000010000001b0000001000000000000000000000
+00160000000c00000000000000540000009000000031000000ce01000066000000da0100000100000000400d4200040dc22a00000039feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007000720069006d0069007400690076006500bb00000006000000060000000300000003000000090000000300000003000000030000000500000006000000060000001b000000100000000000
+000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000000000054000000700000003d000000de0100005b000000e90100000100000000400d4200040dc23600000029feffff06000000
+4c000000000000000000000000000000ffffffffffffffff58000000490063006f006e00490064000300000006000000060000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000
+ff0840010324000000180000000210c0db020000000040000036001dfe54001dfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000026000000d3010000720000000102000002000000d003a01eb005a01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+0000003a0000000c0000000a00000046000000d0000000c4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001037c000000700000000210c0db1400000000400000a301aeff9c01aeff9801aeff9101aeff8d01aeff8601adff8201adff7b01adff7701adff7001acff6c01acff6501acff6101acff5a01acff5601abff
+4f01abff4b01abff4401abff4001abff3d01aaff00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000
+00050000805a000000980000004201000057000000ac0100005f0000000a0000001400000002000000020000000200000002000000020000000200000002000000020000000200000002000000a01a9005301a9005f01990058019900540199005d018a0059018a0052018a005e017a0057017b0053017b005c016b0058016b0051016b005d015c0056015c0052015c005b014c0057014c0054014d005250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000a301aeff94
+01a8ffa301aeff9401b2ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009901000053000000ac010000
+6100000002000000040000000200000002000000a01a9005b019f005a01a9005b0195005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000f8000000ec000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0
+db00000000000000ff08400103a4000000980000000210c0db1c00000000400000d3013fffcc0141ffc80143ffc10146ffbd0148ffb6014bffb2014dffab0150ffa70151ffa00154ff9c0156ff950159ff91015bff8a015eff86015fff7f0162ff7b0164ff740167ff700169ff69016cff65016dff5e0170ff5a0172ff530175ff4f0177ff48017aff44017cff3d017fff00010001000100010001000100010001000100010001
+0001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000c80000004201000086000000dc010000ca0000000e0000001c
+0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000a01d800c301d600cf01c400c801c100c401cf00bd01bc00b901ba00b201b700be01a600b701a300b301a100bc019e00a8019c00a1019900ad018800a6018500a2018300ab017000a7017e0090017b009c016a0095016700910165009a015200960150009f014d008b014b008
+40148008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0
+db0400000000400000d3013fffc30140ffd3013fffc70149ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800
+0000c8010000bc000000dc010000ca00000002000000040000000200000002000000a01d800ca01c700ca01d800ce01ce00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000c8000000bc000000454d462b0840000234000000280000000210c0db00000000880000000000000000
+00803f02000000000000000210c0db00000000000000ff0840010374000000680000000210c0db12000000004000006b01fefe660105ff630109ff5d0110ff5a0114ff54011bff51011fff4b0126ff48012aff420131ff3f0135ff39013cff360140ff300147ff2d014bff270152ff240156ff1e015dff00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000008c00000023010000a8000000740100000b010000090000001200000002000000020000000200000002000000020000000200000002000000020000
+000200000020179010d0162010a016e00f4016700f1016300fb015c00e8015800e2015100ef014d00d9014600d6014200d0014b00cd013700c7013000c4013c00be012500bb012100b5012a00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b0840
+00023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006b01fefe5e0106ff6b01fefe65010dff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000063010000f8000000740100000b01000002000000040000000200000002000000201790105016101020179010c016a00f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c0000000400000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a00000000400000590037ff60003cff64003fff6b0045ff6f0048ff76004eff7a0051ff810057ff85005aff8c0060ff00010001000100
+01000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005c0000005e000000a500000095000000d2000000050000000a00
+000002000000020000000200000002000000020000000006000d7006b00cb006800c2007200c6007f00bd007900b1008600b8008000bc008d00a3009700a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db00
+0000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000590037ff620044ff590037ff68003dff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+00100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000005e000000c100000071000000d2000000020000000400000002000000020000000006000d9006300c0006000df006a00c250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000dd0003ffdf0060ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000
+000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000e2000000a5000000e80000000601000002000000400e4010600e700a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000e40056ffdf0060ffda0056ffdf004cff280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000
+130000000c00000001000000250000000c00000008000080560000002c000000e1000000a7000000eb000000bb00000004000000b00e100b600e700a100e100b600eb00b250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000
+000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000e40056ffdf0060ffda0056ffdf004cff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000
+000000000000250000000c00000004000000250000000c00000005000080560000002c000000df000000a5000000ed000000bd00000004000000b00e100b600e700a100e100b600eb00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000070000000700000012000000
+0c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d007337600000000d007337680013376601b97
+1c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276343f21fa44006401253b0000093b212d1900b00175322f760100093b45006601253b00008ce3c577b389172670374b0b9401300b08000000bc79ba26000000001098bf2348004b0b5c014b0b38951a24f0374b0b8ce3c5774051e102243b00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000007877ba265c014b0b093b212dea3f
+0a6f307aba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000e7000000f3000000f7000000ff0000000100000000400d4200040dc2e000000014ffffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a000600000003
+00000003000000040000000a00000010000000f9ffffff070000000c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000e102000000000000300bc803ec26f8200c03ac90a6013c03cf0f337d00000100093bac90a601343f21fa8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7644006401263b000018000000093b212dd86400008051e10245006601263b0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b3895
+1a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000d478ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c0000000000000054000000a8000000c2000000c800000008010000d400000001
+00000000400d4200040dc2bb0000003fffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e00440065007300630072006900700074006f007200730000000300000005000000060000000600000007000000060000000400000005000000030000000300000006000000030000000600000003000000040000000a00000010000000f9ffffff070000000c00000010000000
+0000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d20120fea3014dfe00010001154001001000000004000000000000002100000008000000620000000c000000010000
+00110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000a8010000b8010000db010000e901
+000002000000901d701ea01aa01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000ae014afea3014dfea70142feb1013ffe24000000240000000000803d00000000000000000000803d0000000000
+00000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000aa010000ba010000b8010000c801000004000000501bd01ba01aa01be01a501c801b801c250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c000000
+60000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000ae014afea3014dfea70142feb1013ffe24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001
+00100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a8010000b8010000ba010000ca01000004000000501bd01ba01aa01be01a501c801b801c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000002200
+00000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+000000100000000700000007000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000
+d007337600000000d007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276343f21fa4c0074013a3b0000093b212d1900b00175322f760100093b4d0076013a3b00008ce3c577b389172670374b0b9401300b08000000c484ba26000000001098bf2348004b0b5c014b0bb8951a24f0374b0b8ce3c5774051e102393b00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5
+7700000000dc83ba265c014b0b093b212dea3f0a6f3885ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000007c000000ad010000d3010000d7010000df0100000100000000400d4200040dc2a601000034feffff080000004c000000000000000000000000000000ffffffffffff
+ffff5c000000690063006f006e00440061007400610003000000050000000600000006000000070000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00
+000000000000ff0840010324000000180000000210c0db0200000000400000260123fe56014dfe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000
+0000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002b010000b80100005f010000e601000002000000d012401ed015a01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000
+003400000028000000454d462b0c4000c02400000018000000000000ff04000000520143fe56014dfe4b014afe470140fe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000004e010000ba0100005d010000c7010000040000009015401cd015a01b2015d01be014701c2500
+00000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000520143fe56
+014dfe4b014afe470140fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000004c010000b80100005f010000c9010000040000009015401cd015a01b2015d01b
+e014701c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000700000007000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d007337600000000d007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276343f21fa540084014e3b0000093b212d1900b00175322f760100093b550086014e3b00008ce3c577b389172670
+374b0b9401300b08000000cc8fba26000000001098bf2348004b0b5c014b0b38961a24f0374b0b8ce3c5774051e1024d3b00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000e48eba265c014b0b093b212dea3f0a6f4090ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c0000000400000018000000
+0c00000000000000540000007c0000002f010000cd01000055010000d90100000100000000400d4200040dc2280100003afeffff080000004c000000000000000000000000000000ffffffffffffffff5c000000690063006f006e0049006e0066006f0003000000050000000600000006000000030000000600000003000000060000000a00000010000000f9ffffff070000000c000000100000000000000000000000280000
+000c00000004000000460000003401000028010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103e0000000d40000000210c0db28000000004000004a00fbfe4e00f4fe5100f0fe5600e9fe5900e5fe5e00defe6100dafe6600d3fe6900cffe6e00c8fe7100c4fe7600bdfe7900b9fe7e00b2fe8000aefe8500a7fe8800
+a3fe8d009cfe900098fe950091fe98008dfe9d0086fea00082fea5007bfea80077fead0070feaf006cfeb40065feb70061febc005afebf0056fec4004ffec7004bfecc0044fecf0040fed40039fed70035fedc002efedf002afee40023fe00010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001
+000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000100100004f0000000a010000ed000000
+e6010000140000002800000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000001005c0105005301180057011d005e01100062012500690128006d012d0064013000780135007f01380073014d007a0140008e0145008501570089015c0080016f00840164009b0167009f0
+16c0096017f009a017400a1018700a5018c00ac018f00a0019400b7019600bb019b00b201ae00b601a300cd01a600c101bb00c801be00cc01b300d301c600d701cb00de01ce00d201d300e901d600ed01db00e401e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c00
+0000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000004a00fbfe5700f2fe4a00fbfe4f00ecfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038
+000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000004f0000000a010000600000001d010000020000000400000002000000020000001005c010e00550111005c0106005b011250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c0000000400000046000000b4000000a8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010360000000540000000210c0db0e00000000400000720016fe790015fe7d0015fe840014fe880013fe8f0012fe930011fe9a0010fe9e0010fea5000f
+fea9000efeb0000dfeb4000cfebb000bfe000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00
+00007400000077000000ef010000c4000000fe010000070000000e000000020000000200000002000000020000000200000002000000020000009007101f0008201f4008201fb008301ff008401f6009501fa009601f100a701f500a701fc00a801f000b901f700ba01fb00bb01f200cc01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000720016fe820019fe720016fe80000ffe000100011540010010000000040000000000000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000077000000ec0100008b000000fa010000020000000400000002000000020000009007101f9008e01e9007101f7008801f250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c00000003000000280000000c000000020000004c000000640000000000000000000000630200003c0200000000000000000000640200003d0200002900aa0000000000000000000000803f00000000000000000000803f00000000000000000000
+00000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 2\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_62FA3582_84DF_44eb_8E81_0BB2BA77BDA1}{\*\bkmkend BKM_62FA3582_84DF_44eb_8E81_0BB2BA77BDA1}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ColorType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 This enumeration type provides values that indicate how colorful
+an icon is.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_368764E9_2995_4206_AD20_9043754C7DD2}{\*\bkmkend BKM_368764E9_2995_4206_AD20_9043754C7DD2}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b BLACK_AND_WHITE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Black and white image.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B0BFBB8D_C9C1_4cca_B8FE_DFF3C207232B}{\*\bkmkend BKM_B0BFBB8D_C9C1_4cca_B8FE_DFF3C207232B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GRAY_4}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Image with 4 gray scale levels.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D0D328C1_661C_4185_993C_770AB32B6FC7}{\*\bkmkend BKM_D0D328C1_661C_4185_993C_770AB32B6FC7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GRAY_8}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Image with 8 gray scale levels.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C46F1770_CFA4_4d5d_8E3C_95099242FB43}{\*\bkmkend BKM_C46F1770_CFA4_4d5d_8E3C_95099242FB43}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RGB555}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 RGB image with 5 bits for each color.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6CDC783D_6715_4500_BECE_7855784EF307}{\*\bkmkend BKM_6CDC783D_6715_4500_BECE_7855784EF307}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RGB565}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 RGB image with 5 bits for red, 6 bits for green and 5 bits
+for blue.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5116F13E_FE8A_4ded_B4A0_437188EA5D5D}{\*\bkmkend BKM_5116F13E_FE8A_4ded_B4A0_437188EA5D5D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RGB888}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 RGB image with 8 bits for each color.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9C4B82A7_6208_436b_BC9E_AC09F8661DE9}{\*\bkmkend BKM_9C4B82A7_6208_436b_BC9E_AC09F8661DE9}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconDefinition}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Icon Definition.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8A74F3BA_3AC8_40b5_9A11_7198F7011007}{\*\bkmkend BKM_8A74F3BA_3AC8_40b5_9A11_7198F7011007}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconData}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The binary icon data.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_9AD42C45_8017_4cac_8586_439D6D3987B6}{\*\bkmkend BKM_9AD42C45_8017_4cac_8586_439D6D3987B6}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b data}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [1..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The binary icon data.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F852B1B1_1299_4b41_80E7_C27758C5F6FD}{\*\bkmkend BKM_F852B1B1_1299_4b41_80E7_C27758C5F6FD}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconDescriptor}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Icon Descriptor.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_95DDB76E_BD4F_4939_A827_8D2645BF9810}{\*\bkmkend BKM_95DDB76E_BD4F_4939_A827_8D2645BF9810}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b url}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Location of the icon data.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_34488137_1466_443c_BE17_3F6218494869}{\*\bkmkend BKM_34488137_1466_443c_BE17_3F6218494869}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+iconId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Unique Id, within an IconSet, of the icon.\ql\par
+Value range: 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9EA11441_25B7_4629_B96E_5E6D4CE0F264}{\*\bkmkend BKM_9EA11441_25B7_4629_B96E_5E6D4CE0F264}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconDimension}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Icons are simply images, so 2-dimensional. However they can have a
+3D look.\ql\par
+In the future there may also be real 3D icons.\par
+This enumeration type provides values to specify this dimensionality of the icons.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C96941F6_6EDD_4900_86F4_9956C1F7793E}{\*\bkmkend BKM_C96941F6_6EDD_4900_86F4_9956C1F7793E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b D_2D}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Two-dimensional icon.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E24FE1BB_4E0F_4f38_8725_02F70475991B}{\*\bkmkend BKM_E24FE1BB_4E0F_4f38_8725_02F70475991B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+D_2_5D}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Two-dimensional icon with a 3D look.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_D1C1B83A_DB50_4498_8404_1C5489DF26C8}{\*\bkmkend BKM_D1C1B83A_DB50_4498_8404_1C5489DF26C8}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 A reference to an icon: an IconSetId/IconId pair.\ql\par
+An IconId is unique within an Icon Set, so an IconSetId combined with an IconId uniquely identifies an icon across all sets.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A86DF43F_0FCB_4cec_AD29_214B3F41B623}{\*\bkmkend BKM_A86DF43F_0FCB_4cec_AD29_214B3F41B623}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b iconSetId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconSetId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 IconSet Id.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C87330DB_DD6D_4649_A9FF_E751A1D6CE53}{\*\bkmkend BKM_C87330DB_DD6D_4649_A9FF_E751A1D6CE53}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+iconId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the icon within the IconSet specified by the iconSetId.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1E4957C8_4FAA_48e3_A3A2_5A3FEDE8364C}{\*\bkmkend BKM_1E4957C8_4FAA_48e3_A3A2_5A3FEDE8364C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconSet}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Specifies the characteristics of a set of icons.\ql\par
+Description of a set of icons. This specification consists of:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f2\fs22 \'b7\tab}{\*\pn\pnlvlblt\ls39\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls39\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 A unique identification of the set\line Attribute: iconSetId\par
+Meta data\line A description of the properties of the icons in the set.\line Attributes: colorType, dimension, size, daytimeIcon, themeId and mediumType.\par
+Information on the icons themselves\line Relation: iconDescriptors\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1D9BD52C_2ADB_433e_81DB_225CA55FAE68}{\*\bkmkend BKM_1D9BD52C_2ADB_433e_81DB_225CA55FAE68}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b iconSetId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconSetId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Unique Id of the IconSet.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C827E171_3971_462d_8BE1_5E08BEEFA1AA}{\*\bkmkend BKM_C827E171_3971_462d_8BE1_5E08BEEFA1AA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+colorType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt ColorType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Color Type.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_03BFBEC0_5474_466b_BB53_78E052F9ABF9}{\*\bkmkend BKM_03BFBEC0_5474_466b_BB53_78E052F9ABF9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+dimension}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconDimension}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Dimensionality.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_59366BA9_0D86_4c9a_9D21_E147839FAC9B}{\*\bkmkend BKM_59366BA9_0D86_4c9a_9D21_E147839FAC9B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+size}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconSize}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Size of the Icon.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7C2B0E36_04D6_48ab_BD57_EF02559D051D}{\*\bkmkend BKM_7C2B0E36_04D6_48ab_BD57_EF02559D051D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+dayTimeIcon}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt boolean}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Daytime (true) or nighttime (false) indication. Nighttime
+icons can e.g. use darker colors than daytime icons.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B484587B_C92A_45f9_8297_35CFF1D4AC65}{\*\bkmkend BKM_B484587B_C92A_45f9_8297_35CFF1D4AC65}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+themeId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Theme Identifier.\ql\par
+A theme is the general look, or design of the set of icons.\par
+A theme can be something like simple style, round icons. Or detailed square icons. \par
+Value range: 0, .., 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8542039F_4004_4076_8BCA_C8C3C64E867E}{\*\bkmkend BKM_8542039F_4004_4076_8BCA_C8C3C64E867E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+mediumType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Medium type for the icons in this set, e.g. 'image/png'. Media Types
+are defined by RFC2046 (see http://tools.ietf.org/html/rfc2046).\ql\par
+As this is an image, the medium type is of course also 'image'.\par
+The following subtypes are allowed:\par
+jpeg\par
+png\par
+gif\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_79F1B283_7FA2_4f43_B2B1_DF2F0B3653A9}{\*\bkmkend BKM_79F1B283_7FA2_4f43_B2B1_DF2F0B3653A9}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconSize}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 This type specifies the size of an icon.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_CB7DAC6F_A9AD_48ca_9A45_106179E008BA}{\*\bkmkend BKM_CB7DAC6F_A9AD_48ca_9A45_106179E008BA}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b width}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Width of the icon in pixels.\ql\par
+Value range: 1, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DC89B709_5AD5_4c96_874C_F78911F7A157}{\*\bkmkend BKM_DC89B709_5AD5_4c96_874C_F78911F7A157}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+height}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Height of the icon in pixels.\ql\par
+Value range: 1, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6C8813EF_3AE2_4691_91DE_EC609747C336}{\*\bkmkend BKM_6C8813EF_3AE2_4691_91DE_EC609747C336}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+dpi}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Dots per inch.\par
+Value range: 1, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_92404786_BED6_43c6_B3C1_EED16774DD85}{\*\bkmkend BKM_92404786_BED6_43c6_B3C1_EED16774DD85}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b PrimitiveType}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconId}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Unique identification of an icon within an icon set.\ql\par
+Value range: 0, .. , 32767\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_55A6A09A_2001_480e_B1CD_BA44479A26A0}{\*\bkmkend BKM_55A6A09A_2001_480e_B1CD_BA44479A26A0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b PrimitiveType}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconSetId}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Unique Id for an IconSet.\ql\par
+Value range: 0, .., 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart location}{\*\bkmkend location}{\*\bkmkstart BKM_31A285D9_516C_41c8_B5DE_C70F3EC740B4}{\*\bkmkend BKM_31A285D9_516C_41c8_B5DE_C70F3EC740B4}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 location}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_D41E7E4A_D85F_4fd5_8361_653B4C51BE50}{\*\bkmkend BKM_D41E7E4A_D85F_4fd5_8361_653B4C51BE50}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 Location}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw26696\pich23583\picwgoal15135\pichgoal13365\picscalex62\picscaley62\sspicalign0 010000006c000000f8fffffffffffffffe0200009e020000000000000000000048680000205c000020454d46000001001c5c0100360f0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff010064fdf30264fdf302ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000fffffffffffffffff50200009e02000005000000100010001000c029302fc029302f100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000003400000001000000010000005d0000001400000006000000
+1000400100054001d0056000d00510001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff5f00000016000000060000001000400100054001d0056000d00510001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7698931a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bb1a3200cc859e1022a003001d7410000dc59e102188d17
+01103b0ac298931a242b00f000d741000037bb4000103b0ac270374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b88911a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126d64100008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c00000000000000540000005400000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000dd9448000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000a000000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000063006c0061007300730020004c006f0063006100740069006f006e0006000000030000000600000006000000060000000300000006000000060000000600000006000000030000000300000006000000060000001b000000
+100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000034c2000040400a4000c01c00000010000000c0bfc0ff010000002b01a2ff59004500280000000c0000
+00010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000fe0000001c000000570100006100000005000000e00fc001e00f1006701510067015c001e00f
+c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002b01a2ff590045003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000e7000000050000006e0100007800000004000000e00f1006701510067015c001e00fc00125000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000094430000b6c20000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000000000000000
+3f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002801a5ff59004500250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c000000080000805600000030000000fb00000019000000290100005e00000005000000fb001900fb005e0029015e0029011900fb001900250000000c000000080000802500
+00000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e20000000000250000000c00000002000000250000000c00000008000080560000003000000029010000190000002a0100005e000000050000002901190029015e002a015e002a01190029011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000fbf1e10000000000250000000c00000002000000250000000c0000000800008056000000300000002a010000190000002b0100005e000000050000002a0119002a015e002b015e002b0119002a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000250000000c00000008000080
+56000000300000002b010000190000002c0100005e000000050000002b0119002b015e002c015e002c0119002b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df0000000000250000000c00000002000000250000000c0000000800008056000000300000002c010000190000002d0100005e000000050000002c0119002c015e
+002d015e002d0119002c011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faefde0000000000250000000c00000002000000250000000c0000000800008056000000300000002d010000190000002e0100005e000000050000002d0119002d015e002e015e002e0119002d011900250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c0000000800008056000000300000002e01000019000000300100005e000000050000002e0119002e015e0030015e00300119002e011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000
+000000250000000c00000002000000250000000c0000000800008056000000300000003001000019000000310100005e000000050000003001190030015e0031015e003101190030011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c000000080000805600000030000000
+3101000019000000320100005e000000050000003101190031015e0032015e003201190031011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c0000000800008056000000300000003201000019000000340100005e000000050000003201190032015e0034015e00340119
+0032011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ead90000000000250000000c00000002000000250000000c0000000800008056000000300000003401000019000000350100005e000000050000003401190034015e0035015e003501190034011900250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c0000000800008056000000300000003501000019000000360100005e000000050000003501190035015e0036015e003601190035011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c
+00000002000000250000000c0000000800008056000000300000003601000019000000370100005e000000050000003601190036015e0037015e003701190036011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d60000000000250000000c00000002000000250000000c0000000800008056000000300000003701000019000000
+380100005e000000050000003701190037015e0038015e003801190037011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c0000000800008056000000300000003801000019000000390100005e000000050000003801190038015e0039015e003901190038011900250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c00000008000080560000003000000039010000190000003a0100005e000000050000003901190039015e003a015e003a01190039011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000003a010000190000003b0100005e000000050000003a0119003a015e003b015e003b0119003a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c0000000200000025
+0000000c0000000800008056000000300000003b010000190000003c0100005e000000050000003b0119003b015e003c015e003c0119003b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c0000000800008056000000300000003c010000190000003d0100005e000000
+050000003c0119003c015e003d015e003d0119003c011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c0000000800008056000000300000003d010000190000003e0100005e000000050000003d0119003d015e003e015e003e0119003d011900250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c0000000800008056000000300000003e010000190000003f0100005e000000050000003e0119003e015e003f015e003f0119003e011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200
+000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000003f01000019000000400100005e000000050000003f0119003f015e0040015e00400119003f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c00000002000000250000000c00000008
+00008056000000300000004001000019000000410100005e000000050000004001190040015e0041015e004101190040011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c0000000800008056000000300000004101000019000000420100005e0000000500000041011900
+41015e0042015e004201190041011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c0000000800008056000000300000004201000019000000430100005e000000050000004201190042015e0043015e004301190042011900250000000c00000008000080250000000c0000
+0000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c0000000800008056000000300000004301000019000000440100005e000000050000004301190043015e0044015e004401190043011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1
+cb0000000000250000000c00000002000000250000000c0000000800008056000000300000004401000019000000450100005e000000050000004401190044015e0045015e004501190044011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c000000080000805600000030
+0000004501000019000000470100005e000000050000004501190045015e0047015e004701190045011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000004701000019000000480100005e000000050000004701190047015e0048015e00
+4801190047011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec80000000000250000000c00000002000000250000000c0000000800008056000000300000004801000019000000490100005e000000050000004801190048015e0049015e004901190048011900250000000c00000008000080250000000c00000000000080280000
+000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c00000008000080560000003000000049010000190000004a0100005e000000050000004901190049015e004a015e004a01190049011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc600000000002500
+00000c00000002000000250000000c0000000800008056000000300000004a010000190000004b0100005e000000050000004a0119004a015e004b015e004b0119004a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c0000000800008056000000300000004b01000019
+0000004d0100005e000000050000004b0119004b015e004d015e004d0119004b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000004d010000190000004e0100005e000000050000004d0119004d015e004e015e004e0119004d011900
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c0000000800008056000000300000004e01000019000000500100005e000000050000004e0119004e015e0050015e00500119004e011900250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000ead9c20000000000250000000c00000002000000250000000c0000000800008056000000300000005001000019000000510100005e000000050000005001190050015e0051015e005101190050011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c0000000200
+0000250000000c0000000800008056000000300000005101000019000000520100005e000000050000005101190051015e0052015e005201190051011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c0000000800008056000000300000005201000019000000530100005e
+000000050000005201190052015e0053015e005301190052011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8bf0000000000250000000c00000002000000250000000c0000000800008056000000300000005301000019000000540100005e000000050000005301190053015e0054015e005401190053011900250000000c000000
+08000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002801a5ff590045003a0000000c0000000a00000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000e4000000020000006b0100007500000004000000b00fe0054015e00540159001b00f9001250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e102969619018f370a3f9c58530bb296190100000000e8921a248ce3c577738c172646e0c5779401300b0000300b188d17018f370a3f1f001a01d9410000c457e10237bb40008f370a3fe8921a2420001c01d94100009087a1263c5ce10270374b0b000000000800000000000000000000
+001098bf2348004b0b5c014b0be8921a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000e0921a24dc57e10223e0c577e8921a243a6c2e7608654501e0921a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000003201
+0000e4ffffff78010000d7ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000000e0100001f000000410100002b0000000100000000400d4200040dc23b010000e4ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00743d06
+000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000
+000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76e8921a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b78a300041c58e10220003201db4100003058
+e102188d17018f370a40e8921a242100f000db41000037bb40008f370a4070374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b88911a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126da4100008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c
+030200d058e1026476000800000000250000000c00000003000000180000000c00000000000000540000007c000000130100002c0000003d010000370000000100000000400d4200040dc240010000d7ffffff080000004c000000000000000000000000000000ffffffffffffffff5c0000004c006f0063006100740069006f006e0006000000060000000600000006000000030000000300000006000000060000000a000000
+100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002801c5ff8101c5ff00010101154001001000000004000000000000002100000008000000620000000c0000
+0001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400
+0000e4000000270000006b0100005500000002000000b00fe0034015e003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007c002aff59004500240000002400000000
+00803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000004f00000094000000a8000000d900000005000000f0044009f004900d800a900d800a4009f0044009250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060000000
+54000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007c002aff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101
+001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000380000007d000000bf000000f000000004000000f004900d800a900d800a4009f0044009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a00
+00000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f242000053c30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000079002dff59004500250000000c0000000800008027000000180000000400000000
+000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000004c000000910000007a000000d6000000050000004c0091004c00d6007a00d6007a0091004c009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c00000008000080
+56000000300000007a000000910000007b000000d6000000050000007a0091007a00d6007b00d6007b0091007a009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000007b000000910000007c000000d6000000050000007b0091007b00d6
+007c00d6007c0091007b009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000007c000000910000007d000000d6000000050000007c0091007c00d6007d00d6007d0091007c009100250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007d000000910000007e000000d6000000050000007d0091007d00d6007e00d6007e0091007d009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000
+000000250000000c00000004000000250000000c0000000800008056000000300000007e000000910000007f000000d6000000050000007e0091007e00d6007f00d6007f0091007e009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000
+7f0000009100000081000000d6000000050000007f0091007f00d6008100d600810091007f009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000810000009100000082000000d600000005000000810091008100d6008200d600820091
+0081009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000820000009100000083000000d600000005000000820091008200d6008300d6008300910082009100250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000830000009100000085000000d600000005000000830091008300d6008500d6008500910083009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c
+00000004000000250000000c000000080000805600000030000000850000009100000086000000d600000005000000850091008500d6008600d6008600910085009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000008600000091000000
+87000000d600000005000000860091008600d6008700d6008700910086009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000870000009100000088000000d600000005000000870091008700d6008800d6008800910087009100250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000880000009100000089000000d600000005000000880091008800d6008900d6008900910088009100250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000089000000910000008a000000d600000005000000890091008900d6008a00d6008a00910089009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c0000000400000025
+0000000c0000000800008056000000300000008a000000910000008b000000d6000000050000008a0091008a00d6008b00d6008b0091008a009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000008b000000910000008c000000d6000000
+050000008b0091008b00d6008c00d6008c0091008b009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000008c000000910000008d000000d6000000050000008c0091008c00d6008d00d6008d0091008c009100250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000008d000000910000008e000000d6000000050000008d0091008d00d6008e00d6008e0091008d009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f2e5d20000000000250000000c00000004000000250000000c0000000800008056000000300000008e000000910000008f000000d6000000050000008e0091008e00d6008f00d6008f0091008e009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008
+00008056000000300000008f0000009100000090000000d6000000050000008f0091008f00d6009000d600900091008f009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000900000009100000091000000d60000000500000090009100
+9000d6009100d6009100910090009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000910000009100000092000000d600000005000000910091009100d6009200d6009200910091009100250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000920000009100000093000000d600000005000000920091009200d6009300d6009300910092009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2
+cd0000000000250000000c00000004000000250000000c000000080000805600000030000000930000009100000094000000d600000005000000930091009300d6009400d6009400910093009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030
+000000940000009100000095000000d600000005000000940091009400d6009500d6009500910094009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000950000009100000096000000d600000005000000950091009500d6009600d600
+9600910095009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000960000009100000098000000d600000005000000960091009600d6009800d6009800910096009100250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000980000009100000099000000d600000005000000980091009800d6009900d6009900910098009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec800000000002500
+00000c00000004000000250000000c00000008000080560000003000000099000000910000009a000000d600000005000000990091009900d6009a00d6009a00910099009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000009a00000091
+0000009b000000d6000000050000009a0091009a00d6009b00d6009b0091009a009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000910000009c000000d6000000050000009b0091009b00d6009c00d6009c0091009b009100
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000009c000000910000009e000000d6000000050000009c0091009c00d6009e00d6009e0091009c009100250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000009e000000910000009f000000d6000000050000009e0091009e00d6009f00d6009f0091009e009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c0000000400
+0000250000000c0000000800008056000000300000009f00000091000000a1000000d6000000050000009f0091009f00d600a100d600a10091009f009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000a100000091000000a2000000d6
+00000005000000a1009100a100d600a200d600a2009100a1009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000a200000091000000a3000000d600000005000000a2009100a200d600a300d600a3009100a2009100250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000a300000091000000a4000000d600000005000000a3009100a300d600a400d600a4009100a3009100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000a400000091000000a5000000d600000005000000a4009100a400d600a500d600a5009100a4009100250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000079002dff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000
+000000250000000c00000004000000250000000c00000005000080560000002c000000350000007a000000bc000000ed00000004000000c004600d500a600d500a1009c0041009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffff
+ff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000830000006cffffffc90000005fffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000005f0000009700000092000000a30000000100000000400d4200040dc28c00
+00006cffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000002d000000030000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c00000057000000a40000009a000000af0000000100000000400d4200040dc2840000005fffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000050006f0069006e0074004c006f0063006100740069006f
+006e000000070000000600000003000000060000000300000006000000060000000600000006000000030000000300000006000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff084001032400
+0000180000000210c0db020000000040000079004dffd2004dff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000
+00000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000350000009f000000bc000000cd00000002000000c004600b500a600b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a000000
+0c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000008011fff8700540024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000db0000009000000062010000e400000005000000b00d0009b00d400e2016400e20160009b00d0009250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000008011fff870054003a0000000c0000000a000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c40000007900000079010000fb00000004000000b00d400e2016400e20160009b00d0009250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080824300005ec3000007430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcff
+e3f2fcffbed7e8ff0a4000401c000000100000000200000001000000050122ff87005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000d80000008d0000001f010000e100000005000000d8008d00d800e1001f01e1001f018d00d8008d00250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000001f0100008d00000022010000e1000000050000001f018d001f01e1002201e10022018d001f018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df000000
+0000250000000c00000004000000250000000c000000080000805600000030000000220100008d00000026010000e10000000500000022018d002201e1002601e10026018d0022018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000026
+0100008d0000002a010000e10000000500000026018d002601e1002a01e1002a018d0026018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000002a0100008d0000002e010000e1000000050000002a018d002a01e1002e01e1002e018d00
+2a018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000002e0100008d00000031010000e1000000050000002e018d002e01e1003101e10031018d002e018d00250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000310100008d00000034010000e10000000500000031018d003101e1003401e10034018d0031018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00
+000004000000250000000c000000080000805600000030000000340100008d00000039010000e10000000500000034018d003401e1003901e10039018d0034018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000390100008d0000003c
+010000e10000000500000039018d003901e1003c01e1003c018d0039018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c0000000800008056000000300000003c0100008d0000003f010000e1000000050000003c018d003c01e1003f01e1003f018d003c018d0025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000003f0100008d00000042010000e1000000050000003f018d003f01e1004201e10042018d003f018d00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000420100008d00000045010000e10000000500000042018d004201e1004501e10045018d0042018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c000000040000002500
+00000c000000080000805600000030000000450100008d00000049010000e10000000500000045018d004501e1004901e10049018d0045018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000490100008d0000004c010000e100000005
+00000049018d004901e1004c01e1004c018d0049018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000004c0100008d00000050010000e1000000050000004c018d004c01e1005001e10050018d004c018d00250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000500100008d00000054010000e10000000500000050018d005001e1005401e10054018d0050018d00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000540100008d00000058010000e10000000500000054018d005401e1005801e10058018d0054018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800
+00805600000030000000580100008d0000005b010000e10000000500000058018d005801e1005b01e1005b018d0058018d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000005b0100008d0000005f010000e1000000050000005b018d005b
+01e1005f01e1005f018d005b018d00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000050122ff870054003a0000000c000000
+0a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c10000007600000076010000f800000004000000800d100ef015100ef015d008800dd008250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000000f01000070ffffff8301000063
+ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000000201000093000000350100009f0000000100000000400d4200040dc22f01000070ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb000000060000000400000003000000
+03000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a000
+0000f7000000a000000040010000ab0000000100000000400d4200040dc22401000063ffffff0e0000004c000000000000000000000000000000ffffffffffffffff680000004c0069006e006500610072004c006f0063006100740069006f006e0006000000030000000600000006000000060000000400000006000000060000000600000006000000030000000300000006000000060000000a000000100000002d00000003
+0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000050151ff8c0151ff00010101154001001000000004000000000000002100000008000000620000000c0000000100000011000000
+0c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000c10000009b0000
+0076010000c900000002000000800d200bf015200b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+0000005400000058000000dd000000b6000000e6000000c20000000100000000400d4200040dc20a0100004dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000d0000000ee000000b600000054010000c20000000100000000400d4200040dc21b0100004dffffff160000004c000000000000000000000000000000ffffffffffffffff780000007300650067006d0065006e0074007300200020003a004c006f006e00670020005b0031002e002e002a005d000400000006000000060000000900000006000000060000000300000004000000030000000300
+00000300000006000000060000000600000006000000030000000300000006000000030000000300000004000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+00000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000dd000000c3000000e6000000cf0000000100000000400d42
+00040dc20a01000040ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000ee000000c300000057010000cf0000000100
+000000400d4200040dc21b01000040ffffff180000004c000000000000000000000000000000ffffffffffffffff7c00000070006f007300690074006900760065004f0066006600730065007400200020003a0049006e0074006500670065007200060000000600000004000000030000000300000003000000050000000600000008000000030000000300000004000000060000000300000003000000030000000300000003
+0000000600000003000000060000000600000006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000dd000000d0000000e6000000dc0000000100000000400d4200040dc20a01000033ffffff020000004c000000000000
+000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000ee000000d00000005c010000dc0000000100000000400d4200040dc21b01000033ffffff180000004c
+000000000000000000000000000000ffffffffffffffff7c0000006e0065006700610074006900760065004f0066006600730065007400200020003a0049006e00740065006700650072000600000006000000060000000600000003000000030000000500000006000000080000000300000003000000040000000600000003000000030000000300000003000000030000000600000003000000060000000600000006000000
+030000000a000000100000002d000000030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d20124ff590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000
+000c00000001000000250000000c000000080000805600000030000000a50100009a000000fe010000df00000005000000501aa009501af00de01ff00de01fa009501aa009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d20124ff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c
+00000004000000250000000c00000005000080560000002c0000008e0100008300000015020000f600000004000000501af00de01ff00de01fa009501aa009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201
+580000004c0000000210c0db0400000004000000000000000080e743000059c30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000cf0127ff59004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000
+00080000805600000030000000a201000097000000d0010000dc00000005000000a2019700a201dc00d001dc00d0019700a2019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000d001000097000000d1010000dc00000005000000d001
+9700d001dc00d101dc00d1019700d0019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000d101000097000000d2010000dc00000005000000d1019700d101dc00d201dc00d2019700d1019700250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000d201000097000000d3010000dc00000005000000d2019700d201dc00d301dc00d3019700d2019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000d301000097000000d4010000dc00000005000000d3019700d301dc00d401dc00d4019700d3019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000
+0030000000d401000097000000d5010000dc00000005000000d4019700d401dc00d501dc00d5019700d4019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d501000097000000d7010000dc00000005000000d5019700d501dc00d701
+dc00d7019700d5019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d701000097000000d8010000dc00000005000000d7019700d701dc00d801dc00d8019700d7019700250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000d801000097000000d9010000dc00000005000000d8019700d801dc00d901dc00d9019700d8019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000
+250000000c00000004000000250000000c000000080000805600000030000000d901000097000000db010000dc00000005000000d9019700d901dc00db01dc00db019700d9019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000db0100
+0097000000dc010000dc00000005000000db019700db01dc00dc01dc00dc019700db019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000dc01000097000000dd010000dc00000005000000dc019700dc01dc00dd01dc00dd019700dc01
+9700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000dd01000097000000de010000dc00000005000000dd019700dd01dc00de01dc00de019700dd019700250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000de01000097000000df010000dc00000005000000de019700de01dc00df01dc00df019700de019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c000000
+04000000250000000c000000080000805600000030000000df01000097000000e0010000dc00000005000000df019700df01dc00e001dc00e0019700df019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000e001000097000000e10100
+00dc00000005000000e0019700e001dc00e101dc00e1019700e0019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000e101000097000000e2010000dc00000005000000e1019700e101dc00e201dc00e2019700e1019700250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e201000097000000e3010000dc00000005000000e2019700e201dc00e301dc00e3019700e2019700250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e301000097000000e4010000dc00000005000000e3019700e301dc00e401dc00e4019700e3019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c0000000400000025000000
+0c000000080000805600000030000000e401000097000000e5010000dc00000005000000e4019700e401dc00e501dc00e5019700e4019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e501000097000000e6010000dc000000050000
+00e5019700e501dc00e601dc00e6019700e5019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000e601000097000000e7010000dc00000005000000e6019700e601dc00e701dc00e7019700e6019700250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000e701000097000000e8010000dc00000005000000e7019700e701dc00e801dc00e8019700e7019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e801000097000000e9010000dc00000005000000e8019700e801dc00e901dc00e9019700e8019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080
+5600000030000000e901000097000000ea010000dc00000005000000e9019700e901dc00ea01dc00ea019700e9019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ea01000097000000eb010000dc00000005000000ea019700ea01dc
+00eb01dc00eb019700ea019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000eb01000097000000ec010000dc00000005000000eb019700eb01dc00ec01dc00ec019700eb019700250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ec01000097000000ee010000dc00000005000000ec019700ec01dc00ee01dc00ee019700ec019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000
+000000250000000c00000004000000250000000c000000080000805600000030000000ee01000097000000ef010000dc00000005000000ee019700ee01dc00ef01dc00ef019700ee019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000
+ef01000097000000f0010000dc00000005000000ef019700ef01dc00f001dc00f0019700ef019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f001000097000000f1010000dc00000005000000f0019700f001dc00f101dc00f10197
+00f0019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f101000097000000f2010000dc00000005000000f1019700f101dc00f201dc00f2019700f1019700250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f201000097000000f4010000dc00000005000000f2019700f201dc00f401dc00f4019700f2019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c
+00000004000000250000000c000000080000805600000030000000f401000097000000f5010000dc00000005000000f4019700f401dc00f501dc00f5019700f4019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000f501000097000000
+f7010000dc00000005000000f5019700f501dc00f701dc00f7019700f5019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000f701000097000000f8010000dc00000005000000f7019700f701dc00f801dc00f8019700f7019700250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000f801000097000000f9010000dc00000005000000f8019700f801dc00f901dc00f9019700f8019700250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000f901000097000000fa010000dc00000005000000f9019700f901dc00fa01dc00fa019700f9019700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c0000000400000025
+0000000c000000080000805600000030000000fa01000097000000fb010000dc00000005000000fa019700fa01dc00fb01dc00fb019700fa019700250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000000000
+0210c0db00000000000000ff0b400040180000000c00000001000000cf0127ff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000
+002c0000008b0100008000000012020000f300000004000000201ac00db01fc00db01f7009201a7009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c000000000000001e00000018000000d901000066ffffff1f02000059ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000b50100009d000000e8010000a90000000100000000400d4200040dc2e201000066ffffff0b0000004c000000000000000000000000000000ffffffff
+ffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000094000000ae010000aa000000ef010000b50000000100000000400d4200040dc2db01000059ffffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000041007200650061004c006f0063006100740069006f006e000700000004000000060000000600000006000000060000000600000006
+000000030000000300000006000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000cf0147ff280247ff000101011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000
+0004000000250000000c0000000500008057000000240000008b010000a500000012020000d300000002000000201ac00bb01fc00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bf
+c0ff010000002201b2fe9800450024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f50000000c0100008d0100005101000005000000500fc010500f1015d0181015d018c010500fc010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002201b2fe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+0400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000de000000f5000000a40100006801000004000000500f1015d0181015d018c010500fc010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000808f430080a5c30000184300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001f01b5fe980045002500
+00000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000f200000009010000410100004e01000005000000f2000901f2004e0141014e0141010901f2000901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e1000000000025
+0000000c00000004000000250000000c0000000800008056000000300000004101000009010000450100004e010000050000004101090141014e0145014e014501090141010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000045010000
+09010000490100004e010000050000004501090145014e0149014e014901090145010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000049010000090100004d0100004e010000050000004901090149014e014d014e014d010901490109
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000004d01000009010000500100004e010000050000004d0109014d014e0150014e01500109014d010901250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000005001000009010000540100004e010000050000005001090150014e0154014e015401090150010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004
+000000250000000c0000000800008056000000300000005401000009010000580100004e010000050000005401090154014e0158014e015801090154010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000058010000090100005c010000
+4e010000050000005801090158014e015c014e015c01090158010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000005c01000009010000600100004e010000050000005c0109015c014e0160014e01600109015c010901250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000006001000009010000630100004e010000050000006001090160014e0163014e016301090160010901250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000006301000009010000670100004e010000050000006301090163014e0167014e016701090163010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c
+00000008000080560000003000000067010000090100006a0100004e010000050000006701090167014e016a014e016a01090167010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006a010000090100006d0100004e01000005000000
+6a0109016a014e016d014e016d0109016a010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006d01000009010000710100004e010000050000006d0109016d014e0171014e01710109016d010901250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000007101000009010000750100004e010000050000007101090171014e0175014e017501090171010901250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000007501000009010000790100004e010000050000007501090175014e0179014e017901090175010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056
+0000003000000079010000090100007d0100004e010000050000007901090179014e017d014e017d01090179010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007d01000009010000820100004e010000050000007d0109017d014e01
+82014e01820109017d010901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000008201000009010000860100004e010000050000008201090182014e0186014e018601090182010901250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000086010000090100008a0100004e010000050000008601090186014e018a014e018a01090186010901250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700008046000000600000005400
+0000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001f01b5fe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010
+0000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000db000000f2000000a10100006501000004000000200fe014a018e014a0189010200f9010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a000000
+0c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000029010000f4feffffae010000e7feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000250100000f0100005801
+00001b0100000100000000400d4200040dc252010000f4feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000000000000005
+0000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000094000000200100001c0100005c010000270100000100000000400d4200040dc24d010000e7feffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004c006f
+0063006100740069006f006e0049006e0066006f000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0840010324000000180000000210c0db02000000004000001f01d5feb701d5fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000db00000017010000a10100004501000002000000200fe012a018e012250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f700000032010000000100003e0100000100000000400d4200040dc224010000d1feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600
+0000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000000801000032010000480100003e0100000100000000400d4200040dc235010000d1feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000
+6e0061006d006500200020003a0053007400720069006e0067002600060000000600000009000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001f0189fd680054002100000008000000620000
+000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f2000000260200005a0100007a02000005000000200f6022200fa027a015a027a0156022200f6022250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001f0189fd680054003a0000000c0000000a00000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000db0000000f020000710100009102000004000000200fa027a015a027a0156022200f6022250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000008e4300001dc40000d0420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000
+001000000002000000010000001c018cfd68005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000ef00000023020000240100007702000005000000ef002302ef0077022401770224012302ef002302250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c00000008000080560000003000000024010000230200002501000077020000050000002401230224017702250177022501230224012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c0000000400000025
+0000000c00000008000080560000003000000025010000230200002701000077020000050000002501230225017702270177022701230225012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000027010000230200002801000077020000
+050000002701230227017702280177022801230227012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000028010000230200002901000077020000050000002801230228017702290177022901230228012302250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000029010000230200002b010000770200000500000029012302290177022b0177022b01230229012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000002b010000230200002c01000077020000050000002b0123022b0177022c0177022c0123022b012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c00000008
+00008056000000300000002c010000230200002d01000077020000050000002c0123022c0177022d0177022d0123022c012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000002d010000230200002e01000077020000050000002d012302
+2d0177022e0177022e0123022d012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000002e010000230200002f01000077020000050000002e0123022e0177022f0177022f0123022e012302250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000002f010000230200003001000077020000050000002f0123022f01770230017702300123022f012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7eb
+da0000000000250000000c00000004000000250000000c00000008000080560000003000000030010000230200003101000077020000050000003001230230017702310177023101230230012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030
+00000031010000230200003201000077020000050000003101230231017702320177023201230231012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000003201000023020000340100007702000005000000320123023201770234017702
+3401230232012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000034010000230200003501000077020000050000003401230234017702350177023501230234012302250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000035010000230200003601000077020000050000003501230235017702360177023601230235012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d500000000002500
+00000c00000004000000250000000c00000008000080560000003000000036010000230200003801000077020000050000003601230236017702380177023801230236012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000003801000023
+0200003901000077020000050000003801230238017702390177023901230238012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000039010000230200003a010000770200000500000039012302390177023a0177023a01230239012302
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000003a010000230200003b01000077020000050000003a0123023a0177023b0177023b0123023a012302250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000003b010000230200003c01000077020000050000003b0123023b0177023c0177023c0123023b012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c0000000400
+0000250000000c0000000800008056000000300000003c010000230200003d01000077020000050000003c0123023c0177023d0177023d0123023c012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000003d010000230200003e01000077
+020000050000003d0123023d0177023e0177023e0123023d012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000003e010000230200003f01000077020000050000003e0123023e0177023f0177023f0123023e012302250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000003f010000230200004001000077020000050000003f0123023f01770240017702400123023f012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000040010000230200004101000077020000050000004001230240017702410177024101230240012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00
+000008000080560000003000000041010000230200004201000077020000050000004101230241017702420177024201230241012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000420100002302000043010000770200000500000042
+01230242017702430177024301230242012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000043010000230200004501000077020000050000004301230243017702450177024501230243012302250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c00000008000080560000003000000045010000230200004601000077020000050000004501230245017702460177024601230245012302250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000046010000230200004701000077020000050000004601230246017702470177024701230246012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600
+00003000000047010000230200004901000077020000050000004701230247017702490177024901230247012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080560000003000000049010000230200004a010000770200000500000049012302490177024a
+0177024a01230249012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000004a010000230200004b01000077020000050000004a0123024a0177024b0177024b0123024a012302250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000004b010000230200004c01000077020000050000004b0123024b0177024c0177024c0123024b012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc600000000
+00250000000c00000004000000250000000c0000000800008056000000300000004c010000230200004d01000077020000050000004c0123024c0177024d0177024d0123024c012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000004d01
+0000230200004f01000077020000050000004d0123024d0177024f0177024f0123024d012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000004f010000230200005001000077020000050000004f0123024f01770250017702500123024f
+012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000050010000230200005201000077020000050000005001230250017702520177025201230250012302250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000052010000230200005301000077020000050000005201230252017702530177025301230252012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c0000
+0004000000250000000c00000008000080560000003000000053010000230200005401000077020000050000005301230253017702540177025401230253012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000054010000230200005601
+000077020000050000005401230254017702560177025601230254012302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000056010000230200005701000077020000050000005601230256017702570177025701230256012302250000000c
+00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001c018cfd680054003a0000000c0000000a00000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000d80000000c0200006e0100008e02000004000000f00e70277015702770153022f00e3022250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000026010000dafdffff7b010000cdfdffff160000000c00000001000000120000000c
+000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000000a010000290200003d010000350200000100000000400d4200040dc237010000dafdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300000006000000050000000300000006000000
+0300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b8000000f10000003602000056010000410200000100
+000000400d4200040dc21e010000cdfdffff120000004c000000000000000000000000000000ffffffffffffffff7000000063006f006d006d006f006e003a003a0043006f006f007200640069006e006100740065000600000006000000090000000900000006000000060000000300000003000000070000000600000006000000040000000600000003000000060000000600000003000000060000000a000000100000002d
+000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001c01bbfd8401bbfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000
+110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000d80000
+00310200006e0100005f02000002000000f00e802470158024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000058000000f40000004c020000fd000000580200000100000000400d4200040dc221010000b7fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b00000054000000ac000000050100004c02000047010000580200000100000000400d4200040dc232010000b7fdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000006c006100740069007400750064006500200020003a0066006c006f006100740003000000060000000300000003000000030000000600000006000000060000000300000003000000030000000300
+0000030000000600000006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f400000059020000fd000000650200000100000000400d4200040dc221010000aafdffff020000004c000000000000000000000000000000
+ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000050100005902000050010000650200000100000000400d4200040dc232010000aafdffff110000004c000000000000000000
+000000000000ffffffffffffffff700000006c006f006e00670069007400750064006500200020003a0066006c006f0061007400000003000000060000000600000006000000030000000300000006000000060000000600000003000000030000000300000003000000030000000600000006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f400000066020000fd000000720200000100000000400d4200040dc2210100009dfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff030000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000050100006602000053010000720200000100000000400d4200040dc2320100009dfdffff120000004c000000000000000000000000000000ffffffffffffffff7000000061006c00740069007400750064006500200020003a0049006e0074006500670065007200060000000300000003
+0000000300000003000000060000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003f0032febb0054002100000008000000620000000c00000001000000110000000c000000
+010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000120000007d010000cd000000d1010000050000002001d0172001101dd00c101dd00cd0172001d017250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003f0032febb0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+0000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff66010000e4000000e8010000040000002001101dd00c101dd00cd0172001d017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000070420080e5c300003b430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003c0035fe
+bb005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f0000007a01000071000000ce010000050000000f007a010f00ce017100ce0171007a010f007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e1
+0000000000250000000c00000004000000250000000c000000080000805600000030000000710000007a01000075000000ce0100000500000071007a017100ce017500ce0175007a0171007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000750000007a0100007a000000ce0100000500000075007a017500ce017a00ce017a007a0175007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007a0000007a0100007f000000ce010000050000007a007a017a00ce017f00ce017f
+007a017a007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007f0000007a01000083000000ce010000050000007f007a017f00ce018300ce0183007a017f007a01250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000830000007a01000088000000ce0100000500000083007a018300ce018800ce0188007a0183007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000
+000c00000004000000250000000c000000080000805600000030000000880000007a0100008d000000ce0100000500000088007a018800ce018d00ce018d007a0188007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000008d0000007a01
+000092000000ce010000050000008d007a018d00ce019200ce0192007a018d007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000920000007a01000097000000ce0100000500000092007a019200ce019700ce0197007a0192007a0125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000970000007a0100009d000000ce0100000500000097007a019700ce019d00ce019d007a0197007a01250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000009d0000007a010000a2000000ce010000050000009d007a019d00ce01a200ce01a2007a019d007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c000000040000
+00250000000c000000080000805600000030000000a20000007a010000a6000000ce01000005000000a2007a01a200ce01a600ce01a6007a01a2007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000a60000007a010000ab000000ce01
+000005000000a6007a01a600ce01ab00ce01ab007a01a6007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ab0000007a010000b0000000ce01000005000000ab007a01ab00ce01b000ce01b0007a01ab007a01250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000b00000007a010000b5000000ce01000005000000b0007a01b000ce01b500ce01b5007a01b0007a01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b50000007a010000ba000000ce01000005000000b5007a01b500ce01ba00ce01ba007a01b5007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000
+00080000805600000030000000ba0000007a010000c0000000ce01000005000000ba007a01ba00ce01c000ce01c0007a01ba007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000c00000007a010000c5000000ce01000005000000c000
+7a01c000ce01c500ce01c5007a01c0007a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000c50000007a010000c9000000ce01000005000000c5007a01c500ce01c900ce01c9007a01c5007a01250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000c90000007a010000ca000000ce01000005000000c9007a01c900ce01ca00ce01ca007a01c9007a01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700008046000000
+6000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003c0035febb0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000
+0000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffff63010000e1000000e501000004000000f000e01ca00ce01ca00ca017f000a017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400
+00003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004600000083feffffee00000076feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000053000000
+80010000860000008c0100000100000000400d4200040dc28000000083feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000
+0000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b4000000420000008d01000097000000980100000100000000400d4200040dc26f00000076feffff110000004c000000000000000000000000000000ffffffffffffffff70
+00000050006f0069006e0074004c006f0063006100740069006f006e0049006e0066006f00000007000000060000000300000006000000030000000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c000000
+0210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003c0064fef70064fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff88010000e1000000b601000002000000f000f019a00cf019250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000a30100001d000000af0100000100000000400d4200040dc24100000060feffff
+020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+00520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c01000025000000a3010000c6000000af0100000100000000400d4200040dc25200
+000060feffff200000004c000000000000000000000000000000ffffffffffffffff8c0000006c006f0063006100740069006f006e005400790070006500200020003a0050006f0069006e0074004c006f0063006100740069006f006e0054007900700065000300000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000300000003000000030000000700000006
+0000000300000006000000030000000600000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004500a4fda60072002100000008000000620000000c00000001000000110000000c000000
+010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000018000000ed010000be0000005f020000050000008001d01e8001f025e00bf025e00bd01e8001d01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004500a4fda60072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+0000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000001000000d6010000d500000076020000040000008001f025e00bf025e00bd01e8001d01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000008442004016c4000026430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000004200a7fd
+a6007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000015000000ea0100006c0000005c020000050000001500ea0115005c026c005c026c00ea011500ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e1
+0000000000250000000c00000004000000250000000c0000000800008056000000300000006c000000ea010000700000005c020000050000006c00ea016c005c0270005c027000ea016c00ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000
+000070000000ea010000740000005c020000050000007000ea0170005c0274005c027400ea017000ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000074000000ea010000780000005c020000050000007400ea0174005c0278005c0278
+00ea017400ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000078000000ea0100007c0000005c020000050000007800ea0178005c027c005c027c00ea017800ea01250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000007c000000ea010000800000005c020000050000007c00ea017c005c0280005c028000ea017c00ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000
+000c00000004000000250000000c00000008000080560000003000000080000000ea010000850000005c020000050000008000ea0180005c0285005c028500ea018000ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000085000000ea01
+0000890000005c020000050000008500ea0185005c0289005c028900ea018500ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000089000000ea0100008e0000005c020000050000008900ea0189005c028e005c028e00ea018900ea0125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000008e000000ea010000930000005c020000050000008e00ea018e005c0293005c029300ea018e00ea01250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000093000000ea010000970000005c020000050000009300ea0193005c0297005c029700ea019300ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c000000040000
+00250000000c00000008000080560000003000000097000000ea0100009b0000005c020000050000009700ea0197005c029b005c029b00ea019700ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000ea0100009f0000005c02
+0000050000009b00ea019b005c029f005c029f00ea019b00ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000009f000000ea010000a40000005c020000050000009f00ea019f005c02a4005c02a400ea019f00ea01250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000a4000000ea010000a80000005c02000005000000a400ea01a4005c02a8005c02a800ea01a400ea01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000a8000000ea010000ad0000005c02000005000000a800ea01a8005c02ad005c02ad00ea01a800ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000
+00080000805600000030000000ad000000ea010000b20000005c02000005000000ad00ea01ad005c02b2005c02b200ea01ad00ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000b2000000ea010000b60000005c02000005000000b200
+ea01b2005c02b6005c02b600ea01b200ea01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000b6000000ea010000ba0000005c02000005000000b600ea01b6005c02ba005c02ba00ea01b600ea01250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000ba000000ea010000bb0000005c02000005000000ba00ea01ba005c02bb005c02bb00ea01ba00ea01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700008046000000
+6000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004200a7fda60072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000
+0000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000feffffffd3010000d200000073020000040000005001c025b00bc025b00ba01e5001a01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400
+00003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004c00000013feffffdf00000006feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000044000000
+f00100008c000000fc0100000100000000400d4200040dc27100000013feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c0000
+00000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000003c000000fd01000095000000080200000100000000400d4200040dc26900000006feffff110000004c000000000000000000000000
+000000ffffffffffffffff7000000050006f0069006e0074004c006f0063006100740069006f006e005400790070006500000007000000060000000300000006000000030000000600000006000000060000000600000003000000030000000600000006000000050000000500000006000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004200f4fde800f4fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000fefffffff8010000d200000026020000020000005001f020b00bf020250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+00000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001a000000130200001d0000001f0200000100000000400d42
+00040dc247000000f0fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000002b00000013020000990000001f020000010000000040
+0d4200040dc258000000f0fdffff110000004c000000000000000000000000000000ffffffffffffffff700000004d004f0054004f0052005700410059005f00450058004900540020003d0020003000008009000000080000000700000008000000070000000900000007000000070000000600000007000000070000000300000007000000030000000600000003000000060000000a000000100000002d000000030000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001a000000200200001d0000002c0200000100000000400d4200040dc247000000e3fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000002d000000030000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000002b00000020020000b50000002c0200000100000000400d4200040dc258000000e3fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004d004f0054004f0052005700410059005f00540052
+00490041004e0047004c00450020003d002000310000000900000008000000070000000800000007000000090000000700000007000000060000000700000007000000030000000700000007000000080000000600000007000000030000000600000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b00000054000000540000001a0000002d0200001d000000390200000100000000400d4200040dc247000000d6fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b00000054000000cc0000002b0000002d020000b7000000390200000100000000400d4200040dc258000000d6fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004d004f0054004f0052005700410059005f00430052004f005300530049004e00470020003d002000320000000900000008000000070000000800000007000000
+090000000700000007000000060000000700000007000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001a0000003a0200001d00
+0000460200000100000000400d4200040dc247000000c9fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000002b0000003a020000
+a4000000460200000100000000400d4200040dc258000000c9fdffff120000004c000000000000000000000000000000ffffffffffffffff700000004d004f0054004f0052005700410059005f0045004e0054005200590020003d00200033000900000008000000070000000800000007000000090000000700000007000000060000000700000007000000070000000700000007000000030000000600000003000000060000
+000a000000100000002d000000030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007c028bfe980045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00
+000001000000250000000c0000000800008056000000300000004f02000033010000e70200007801000005000000f0243013f0248017702e8017702e3013f0243013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007c028bfe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000
+04000000250000000c00000005000080560000002c000000380200001c010000fe0200008f01000004000000f0248017702e8017702e3013f0243013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000
+004c0000000210c0db04000000040000000000000000401e440000b9c30000184300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000079028efe98004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800
+008056000000300000004c020000300100009b02000075010000050000004c0230014c0275019b0275019b0230014c023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000009b020000300100009f02000075010000050000009b0230019b
+0275019f0275019f0230019b023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009f02000030010000a302000075010000050000009f0230019f027501a3027501a30230019f023001250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a302000030010000a70200007501000005000000a3023001a3027501a7027501a7023001a3023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc
+0000000000250000000c00000004000000250000000c000000080000805600000030000000a702000030010000aa0200007501000005000000a7023001a7027501aa027501aa023001a7023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000aa02000030010000ae0200007501000005000000aa023001aa027501ae027501ae023001aa023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000ae02000030010000b20200007501000005000000ae023001ae027501b2027501b2
+023001ae023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000b202000030010000b60200007501000005000000b2023001b2027501b6027501b6023001b2023001250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b602000030010000ba0200007501000005000000b6023001b6027501ba027501ba023001b6023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000
+000c00000004000000250000000c000000080000805600000030000000ba02000030010000bd0200007501000005000000ba023001ba027501bd027501bd023001ba023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000bd0200003001
+0000c10200007501000005000000bd023001bd027501c1027501c1023001bd023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c102000030010000c40200007501000005000000c1023001c1027501c4027501c4023001c102300125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c402000030010000c70200007501000005000000c4023001c4027501c7027501c7023001c4023001250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c702000030010000cb0200007501000005000000c7023001c7027501cb027501cb023001c7023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c000000040000
+00250000000c000000080000805600000030000000cb02000030010000cf0200007501000005000000cb023001cb027501cf027501cf023001cb023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000030010000d30200007501
+000005000000cf023001cf027501d3027501d3023001cf023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000d302000030010000d70200007501000005000000d3023001d3027501d7027501d7023001d3023001250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d702000030010000dc0200007501000005000000d7023001d7027501dc027501dc023001d7023001250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000dc02000030010000e00200007501000005000000dc023001dc027501e0027501e0023001dc023001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000e002000030010000e40200007501000005000000e0023001e0027501e4027501e4023001e0023001250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0b400040180000000c0000000100000079028efe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000035
+02000019010000fb0200008c01000004000000c0245017402e5017402e0013c0240013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c000000000000001e0000001800000083020000cdfeffff08030000c0feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000007f02000036010000b2020000420100000100000000400d4200040dc2ac020000cdfeffff0b0000004c000000000000000000000000000000ffffffffffffffff6400
+0000ab00730074007200750063007400750072006500bb00ffff06000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac0000006f02000043010000c20200004e0100000100000000400d4200040dc29c020000c0feffff100000004c000000000000000000000000000000ffffffffffffffff6c00000041007200650061004c006f0063006100740069006f006e0049006e0066006f00070000000400000006000000060000000600000006000000060000
+000600000003000000030000000600000006000000030000000600000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007902
+aefe1103aefe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000
+0000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000350200003e010000fb0200006c01000002000000c0245015402e5015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000
+454d462b0a4000c01c00000010000000c0bfc0ff01000000960113fed300680024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000069010000880100003c020000f001000005000000901680189016001fc023001fc023801890168018250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000960113fed30068003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000
+000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000052010000710100005302000007020000040000009016001fc023001fc023801890168018250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080c9430000f5c3000053430000d042bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000
+0200000001000000930116fed3006800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000006601000085010000d4010000ed01000005000000660185016601ed01d401ed01d401850166018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000d401000085010000d9010000ed01000005000000d4018501d401ed01d901ed01d9018501d4018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000d901000085010000df010000ed01000005000000d9018501d901ed01df01ed01df018501d9018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000df01000085010000e5010000ed01000005000000df
+018501df01ed01e501ed01e5018501df018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000e501000085010000ec010000ed01000005000000e5018501e501ed01ec01ed01ec018501e5018501250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000ec01000085010000f1010000ed01000005000000ec018501ec01ed01f101ed01f1018501ec018501250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000f101000085010000f6010000ed01000005000000f1018501f101ed01f601ed01f6018501f1018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600
+000030000000f601000085010000fd010000ed01000005000000f6018501f601ed01fd01ed01fd018501f6018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000fd0100008501000003020000ed01000005000000fd018501fd01ed0103
+02ed0103028501fd018501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000030200008501000009020000ed01000005000000030285010302ed010902ed010902850103028501250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000000009020000850100000d020000ed01000005000000090285010902ed010d02ed010d02850109028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce00000000
+00250000000c00000004000000250000000c0000000800008056000000300000000d0200008501000011020000ed010000050000000d0285010d02ed011102ed01110285010d028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000001102
+00008501000016020000ed01000005000000110285011102ed011602ed011602850111028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000016020000850100001b020000ed01000005000000160285011602ed011b02ed011b02850116
+028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000001b0200008501000021020000ed010000050000001b0285011b02ed012102ed01210285011b028501250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000210200008501000027020000ed01000005000000210285012102ed012702ed012702850121028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c0000
+0004000000250000000c00000008000080560000003000000027020000850100002e020000ed01000005000000270285012702ed012e02ed012e02850127028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000002e020000850100003302
+0000ed010000050000002e0285012e02ed013302ed01330285012e028501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000330200008501000038020000ed01000005000000330285013302ed013802ed013802850133028501250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000380200008501000039020000ed01000005000000380285013802ed013902ed013902850138028501250000000c00000008000080250000000c00000000000080280000000c0000000400000025000000
+0c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000930116fed30068003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000
+0000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000004f0100006e0100005002000004020000040000006016d01e9023d01e9023501860165018250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009d01000078feffff5d0200006bfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000
+5400000090000000b60100008b010000e9010000970100000100000000400d4200040dc2e301000078feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c0000
+00000000004b0000001000000000000000050000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b8000000a201000098010000fd010000a30100000100000000400d4200040dc2cf0100006bfeffff120000004c000000000000000000000000
+000000ffffffffffffffff700000004c0069006e006500610072004c006f0063006100740069006f006e0049006e0066006f000600000003000000060000000600000006000000040000000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000460000007c00000070000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000930159fe660259fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000
+000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000004f0100009301000050020000c1010000020000006016a01a9023a01a250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000006b010000ae01000074010000ba01000001000000
+00400d4200040dc29801000055feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c0100007c010000ae01000016020000ba01
+00000100000000400d4200040dc2a901000055feffff200000004c000000000000000000000000000000ffffffffffffffff8c000000660072006f006d004c006f0063006100740069006f006e004e0061006d006500200020003a0053007400720069006e00670020005b0030002e002e0031005d0003000000030000000600000009000000060000000600000005000000060000000300000003000000060000000600000007
+000000060000000900000006000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00580000006b010000bb01000074010000c70100000100000000400d4200040dc29801000048feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000300100007c010000bb01000035020000c70100000100000000400d4200040dc2a901000048feffff260000004c000000000000000000000000000000ffffffffffffffff98000000660072006f006d004c006f0063006100740069006f006e0050006100720065006e0074004e0061006d006500200020003a0053007400720069006e00670020005b0030002e002e0031005d00030000000300000006000000
+09000000060000000600000005000000060000000300000003000000060000000600000007000000060000000300000006000000060000000300000007000000060000000900000006000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a000000100000002d000000030000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000006b010000c801000074010000d40100000100000000400d4200040dc2980100003bfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000002d000000030000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000000100007c010000c80100000a020000d40100000100000000400d4200040dc2a90100003bfeffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000074006f004c006f0063006100740069006f006e004e0061006d0065
+00200020003a0053007400720069006e00670020005b0030002e002e0031005d000300000006000000060000000600000005000000060000000300000003000000060000000600000007000000060000000900000006000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a000000100000002d0000000300
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000006b010000d501000074010000e10100000100000000400d4200040dc2980100002efeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000
+2d000000030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000240100007c010000d501000029020000e10100000100000000400d4200040dc2a90100002efeffff240000004c000000000000000000000000000000ffffffffffffffff9400000074006f004c006f00630061007400
+69006f006e0050006100720065006e0074004e0061006d006500200020003a0053007400720069006e00670020005b0030002e002e0031005d0003000000060000000600000006000000050000000600000003000000030000000600000006000000070000000600000003000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000003000000030000000300000006
+00000006000000030000000300000006000000030000000300000006000000030000000a000000100000002d000000030000000c000000100000000000000000000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000
+d3006eff2801a9ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000000000000000000000000000
+00250000000c00000004000000250000000c000000050000805700000024000000a400000058000000fd0000009700000002000000600a5009b00fa005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff0300
+00001e019bff1701a5ff2801a9ff280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000ea0000005a000000fb0000006800000003000000100f8006a00ee005b00fa005250000000c
+00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000001e019bff1701a5ff
+2801a9ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805600000028000000e800000058000000fd0000006a00000003000000100f8006a00ee005b00fa005250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004d01
+76ff5101a4ff000101011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001e0100005d000000260100008f00000002
+0000000012d0084012f005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000560194ff4a0195ff5101a4ff24000000240000000000803d00000000000000000000803d000000000000000002000000
+250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000001d0100005f000000290100006f000000030000009012f006d011e0064012f005250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000
+023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000560194ff4a0195ff5101a4ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000000000
+00000000000000000000250000000c00000004000000250000000c0000000500008056000000280000001b0100005d0000002b01000071000000030000009012f006d011e0064012f005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c
+000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000cf016bff8201a6ff000101011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000
+0000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000530100005b000000a40100009a00000002000000201a80095015d005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000
+003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000009201a1ff8b0198ff8201a6ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000550100005d000000650100006b0000000300000050162006e015b0065015d005250000000c0000000700
+0080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000009201a1ff8b0198ff8201a6ff24
+000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805600000028000000530100005b000000670100006d0000000300000050162006e015b0065015d005250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005301e0fd6701b4
+fe000101011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000240100004d0100003c01000025020000020000006012
+3022a013f014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000006b01aafe6701b4fe6101abfe6501a0fe280000000c0000000100000024000000240000000000803d00000000000000000000803d00
+0000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000340100004f0100003e0100006301000004000000e0139015a013f0144013801580133016250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000006b01aafe6701b4fe6101abfe6501a0fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000
+0038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000320100004d010000400100006501000004000000e0139015a013f0144013801580133016250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000
+8041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000041004c0000000000000000000000000000000000000064063376000000006406337680013376001b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276e33b21443c00860163420000244221eb1900b00175322f76010024423d008401634200008ce3c577b389172670374b0b9401300b08000000b46eba26000000001098bf2348004b0b5c014b0b28961a24f0374b0b8ce3c5774051e102624200
+003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000706cba265c014b0b244221eb8f370a40286fba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006400000029010000120200003b0100001e0200000100000000400d4200040dc256010000f1fd
+ffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e003100060000000300000003000000060000000a000000100000002d000000030000000c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff0000000000000000000000000000000000000001
+0000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bc0deeb26f8200c03ac90a60170030b0b2c9a000001002442ac90a601e33b21448ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f763c0086016442000018000000244221eb7c5400008051e1023d0084
+0164420000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b28961a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000cc6dba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e10264760008000000002500
+00000c00000004000000180000000c00000000000000540000009400000010010000ab01000051010000b70100000100000000400d4200040dc23d01000058feffff0c0000004c000000000000000000000000000000ffffffffffffffff640000006d00610069006e004c006f0063006100740069006f006e00090000000600000003000000060000000600000006000000050000000600000003000000030000000600000006
+0000000a000000100000002d000000030000000c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008101e0fdbf0115fe000101011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000
+0005000080570000002400000052010000ec010000940100002502000002000000401530222019e01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000bb010bfebf0115feb40112feb00108fe2400
+0000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000083010000ee01000092010000fb01000004000000e018801f2019e01e7018101f3018b01f250000000c00000007000080130000000c00000001000000250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000bb010bfebf0115feb40112feb00108fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+38000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000081010000ec01000094010000fd01000004000000e018801f2019e01e7018101f3018b01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000041004c0000000000000000000000000000000000000064063376000000006406337680013376001b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276e33b21444400760178420000244221eb1900b00175322f760100244245007401784200008ce3c577b389172670374b0b9401300b08000000bc79ba26000000001098bf2348004b0b5c014b0ba8951a24f0374b0b8ce3c5774051e10277420000
+3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000007877ba265c014b0b244221eb8f370a40307aba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000620100000e020000720100001a0200000100000000400d4200040dc28f010000f5fdff
+ff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a000000100000002d000000030000000c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000d3ffffff03000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff000000000000000000000000000000000000000100
+00050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bc0deeb26f8200c03ac90a60170030b0b3c9a000001002442ac90a601e33b21448ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f76440076017942000018000000244221ebac6500008051e10245007401
+79420000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0ba8951a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000d478ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000
+000c00000004000000180000000c00000000000000540000009000000058010000fb0100008e010000070200000100000000400d4200040dc28501000008feffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000063006f006f007200640069006e006100740065007300000005000000060000000600000003000000060000000300000006000000060000000300000006000000040000000a00
+0000100000002d000000030000000c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e30089fe2e01b4fe0001010115400100100000000400000000
+0000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+5700000024000000b40000004d010000030100007c01000002000000600ba0171010f014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000002301a7fe1d01b1fe2e01b4fe280000000c000000010000
+0024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000f00000004f010000010100005c01000003000000600fc015000f20151010f014250000000c00000007000080130000000c00000001000000250000000c00
+00000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000002301a7fe1d01b1fe2e01b4fe24000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805600000028000000ee0000004d010000030100005e01000003000000600fc015000f20151010f014250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008c00000080000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103380000002c0000000210c0db0600000000400000970019fe970020fe970024fe97002bfe97002ffe980034fe0001000100010001154001
+0010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000004400000068000000cd0100006d000000ec0100000300000006000000020000000200
+000002000000a006a01ea006301ea006f01da006801da006401db006f01c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000000002
+10c0db00000000000000ff084001032c000000200000000210c0db0400000000400000970019fe930028fe970019fe9d0028fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000000000000000000000000000000000000025000000
+0c00000004000000250000000c000000050000805a0000003800000064000000d901000072000000ec01000002000000040000000200000002000000a006a01e6006b01da006a01e0007b01d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000
+023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007902b9feb801cffe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800
+00000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000089010000320100004e0200004c01000002000000c024a014b0184013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046
+0000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000c901d3fec701c7feb801cffe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000008b010000300100009c0100003c01000003000000c0190013a019c013b0184013250000000c000000
+07000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000c901d3fec701c7feb801cf
+fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805600000028000000890100002e0100009e0100003e01000003000000c0190013a019c013b0184013250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c7017efe8f
+01b4fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000600100004d0100009c0100008701000002000000
+a01950182016f014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000009f01adfe9601a5fe8f01b4fe24000000240000000000803d00000000000000000000803d000000000000000002000000250000
+000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000620100004f010000720100005e01000003000000201760159016e0152016f014250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c00
+0000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000009f01adfe9601a5fe8f01b4fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000000000000000
+00000000000000250000000c00000004000000250000000c000000050000805600000028000000600100004d010000740100006001000003000000201760159016e0152016f014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c00000002000000280000000c00000003000000
+4c000000640000000000000000000000f40200009d0200000000000000000000f50200009e0200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 3\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_6C32CCE7_3603_401d_8F4D_E85C7109F49E}{\*\bkmkend BKM_6C32CCE7_3603_401d_8F4D_E85C7109F49E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AreaLocation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Area Location.\ql\par
+The location is an area, e.g. an area with fog.\par
+This type is only a place holder for the real type, which is to be defined when needed.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4B5E07AD_193C_4014_B311_B408A3C7D0E9}{\*\bkmkend BKM_4B5E07AD_193C_4014_B311_B408A3C7D0E9}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AreaLocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Area Location specific Location Information.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_DFB268FC_16BF_40d4_8C37_AC82E7D06985}{\*\bkmkend BKM_DFB268FC_16BF_40d4_8C37_AC82E7D06985}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinearLocation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Linear Location.\ql\par
+The location is a road stretch, e.g. the road stretch where there is a \par
+traffic jam.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_67563D0B_BE47_4069_92E0_E708AAA5A711}{\*\bkmkend BKM_67563D0B_BE47_4069_92E0_E708AAA5A711}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b segments}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Long}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [1..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The database segments of the location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EEF0B4CC_B9CC_4a86_B5BF_709C50FEB3D4}{\*\bkmkend BKM_EEF0B4CC_B9CC_4a86_B5BF_709C50FEB3D4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+positiveOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The positive offset is the distance (in meters) between the begin
+node of the first segment and the \ql\par
+\par
+start point of the actual location.\par
+value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E644146A_A22C_4751_B0AA_901037AAEB80}{\*\bkmkend BKM_E644146A_A22C_4751_B0AA_901037AAEB80}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+negativeOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The negative offset is the distance (in meters) between the end
+point of the actual location and \ql\par
+the end node of the last segment.\par
+value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_3836291B_BF50_4a72_B03B_FAF95366EA64}{\*\bkmkend BKM_3836291B_BF50_4a72_B03B_FAF95366EA64}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinearLocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Linear Location Information.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_18D91CBE_8121_477d_BDC4_DA037FD3C50C}{\*\bkmkend BKM_18D91CBE_8121_477d_BDC4_DA037FD3C50C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b fromLocationName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Name of the 'from' location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AAAAB5DC_BFC3_45a9_8154_BD8E487A5D00}{\*\bkmkend BKM_AAAAB5DC_BFC3_45a9_8154_BD8E487A5D00}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+fromLocationParentName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Name of parent of the 'from' location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5F13D413_A8EF_426d_B61A_5AD377B3705B}{\*\bkmkend BKM_5F13D413_A8EF_426d_B61A_5AD377B3705B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+toLocationName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Name of the 'to' location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DDB59A47_9D5A_4149_B0DB_F9487F9F7815}{\*\bkmkend BKM_DDB59A47_9D5A_4149_B0DB_F9487F9F7815}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+toLocationParentName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Name of the parent of the 'to' location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_0F91BDD0_DBB8_43a5_A75C_CE96D013083E}{\*\bkmkend BKM_0F91BDD0_DBB8_43a5_A75C_CE96D013083E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Location}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 A location.\ql\par
+Note: This class is currently not usable in the GENIVI context, as it uses segment Ids of segments in a map database, and there is no map data access interface specified.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_7004E138_C173_4ad6_BB32_39D877EAADF1}{\*\bkmkend BKM_7004E138_C173_4ad6_BB32_39D877EAADF1}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Information about a location.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A26EE676_2839_4558_9AC9_05FDD5380CF9}{\*\bkmkend BKM_A26EE676_2839_4558_9AC9_05FDD5380CF9}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b name}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Name of the location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_66406122_0404_46d2_994D_CF55FB778899}{\*\bkmkend BKM_66406122_0404_46d2_994D_CF55FB778899}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PointLocation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Point Location.\ql\par
+The location is a single point (along the road), e.g. the location of a broken down vehicle.\par
+This type is only a place holder for the real type, which is to be defined when needed.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_25AC8F79_6851_4583_8F6D_5FA6DF44893B}{\*\bkmkend BKM_25AC8F79_6851_4583_8F6D_5FA6DF44893B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PointLocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Point Location specific Location Information.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_821773C5_E5DA_4a32_A273_05E7B6D4CD24}{\*\bkmkend BKM_821773C5_E5DA_4a32_A273_05E7B6D4CD24}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b locationType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt PointLocationType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The type of point location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_79D71073_084F_4daa_A33F_E2854EC4F4FC}{\*\bkmkend BKM_79D71073_084F_4daa_A33F_E2854EC4F4FC}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PointLocationType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_29506102_5CE6_4f09_B147_6943F2FF2C49}{\*\bkmkend BKM_29506102_5CE6_4f09_B147_6943F2FF2C49}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b MOTORWAY_EXIT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E60D67F1_F8CF_456d_ADBD_F245F12E014F}{\*\bkmkend BKM_E60D67F1_F8CF_456d_ADBD_F245F12E014F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTORWAY_TRIANGLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_258AA2F8_0D6E_42d3_9FA2_502C057C9730}{\*\bkmkend BKM_258AA2F8_0D6E_42d3_9FA2_502C057C9730}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTORWAY_CROSSING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0DE052BD_A318_4557_A321_BB291B5F748B}{\*\bkmkend BKM_0DE052BD_A318_4557_A321_BB291B5F748B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTORWAY_ENTRY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart status}{\*\bkmkend status}{\*\bkmkstart BKM_1F10F660_3A68_447c_94EF_5922E3C6F870}{\*\bkmkend BKM_1F10F660_3A68_447c_94EF_5922E3C6F870}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 status}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_DBC756E2_38F1_43b0_90D7_E7C623D5B614}{\*\bkmkend BKM_DBC756E2_38F1_43b0_90D7_E7C623D5B614}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentFeedStatus}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4788882D_9CC2_4f80_A029_32586FC753A2}{\*\bkmkend BKM_4788882D_9CC2_4f80_A029_32586FC753A2}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UNAVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_65F96CCD_282D_4720_84CD_E5280708366D}{\*\bkmkend BKM_65F96CCD_282D_4720_84CD_E5280708366D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONNECTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B3A398B1_5FA8_48ba_AE16_72B5209AB064}{\*\bkmkend BKM_B3A398B1_5FA8_48ba_AE16_72B5209AB064}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DISCONNECTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F4AE9D67_4D30_4419_A4A3_ED8521DF441A}{\*\bkmkend BKM_F4AE9D67_4D30_4419_A4A3_ED8521DF441A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentsStatus}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_23E00616_7408_40f2_B9D5_81D9C72BC9B9}{\*\bkmkend BKM_23E00616_7408_40f2_B9D5_81D9C72BC9B9}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UNAVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A7BBF78F_B64F_48c7_B110_3D0D85E9CA37}{\*\bkmkend BKM_A7BBF78F_B64F_48c7_B110_3D0D85E9CA37}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARTLY_AVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1C84EC72_B136_4cad_8624_73B4ECEF1502}{\*\bkmkend BKM_1C84EC72_B136_4cad_8624_73B4ECEF1502}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\tab}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart trafficincidenttables}{\*\bkmkend trafficincidenttables}{\*\bkmkstart BKM_0D3CBE2B_219C_44ca_9579_661A78634635}{\*\bkmkend BKM_0D3CBE2B_219C_44ca_9579_661A78634635}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidenttables}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Pkg.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 These tables are based on the TPEG-TEC tables.\ql\par
+It is the intention that these tables will follow changes in the TPEG-TEC specification.\par
+Differences:\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f2\fs22 \'b7\tab}{\*\pn\pnlvlblt\ls40\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls40\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 To make the differences clear, these tables use consecutive
+numbering, starting from 1.\par
+Non TPEG-TEC values are marked as such.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+{\*\bkmkstart BKM_BB0E0360_2DB2_4e75_8BDD_9770213147CE}{\*\bkmkend BKM_BB0E0360_2DB2_4e75_8BDD_9770213147CE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentTables}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw28850\pich38215\picwgoal16350\pichgoal21660\picscalex57\picscaley57\sspicalign0 010000006c000000f8ffffffffffffff3b030000460400000000000000000000b27000004795000020454d4600000100f02a0200fa160000060000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100c5fb3003c5fb3003ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff320300003d04000005000000100010001000b0430033b0430033100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff8b00ecff9800faff9800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000980000001400000006000000
+10004001b008400180096000800910001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff8b00ecff9800faff9800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff9a000000160000000600000010004001b008400180096000800910001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7688941a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bc4a24007c859e10256005201e9480000dc59e102188d17
+01452c0a7488941a245700fe00e948000037bb4000452c0a7470374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bf8911a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126e84800008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000870000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000081000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000f00000000600000004000000890000000f0000000100000000400d4200040dc206000000fcffffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e0074005400610062006c006500730000000600000003000000060000000600000006000000030000000500000004000000
+060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000500000006000000060000000300000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c0000000200000046000000500000
+0044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000040c0000000410a4000c01c00000010000000c0bfc0ff01000000150053ffb4009900280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000002700000018000000010000000000
+0000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000c6000000b5000000050000002001c0012001500b600c500b600cc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000150053ffb40099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc00000000000
+0000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff05000000dd000000cc000000040000002001500b600c500b600cc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a00000046000000840000
+0078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000904100002ac30000344300001943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000120056ffb4009900250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00
+000002000000250000000c0000000800008056000000300000000f000000190000006d000000b2000000050000000f0019000f00b2006d00b2006d0019000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c0000000800008056000000300000006d0000001900000071
+000000b2000000050000006d0019006d00b2007100b200710019006d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000710000001900000076000000b200000005000000710019007100b2007600b200760019007100190025000000
+0c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c00000008000080560000003000000076000000190000007a000000b200000005000000760019007600b2007a00b2007a00190076001900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000
+00180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000007a000000190000007f000000b2000000050000007a0019007a00b2007f00b2007f0019007a001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c000000020000002500
+00000c0000000800008056000000300000007f0000001900000083000000b2000000050000007f0019007f00b2008300b200830019007f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c000000080000805600000030000000830000001900000088000000b200000005
+000000830019008300b2008800b2008800190083001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d60000000000250000000c00000002000000250000000c00000008000080560000003000000088000000190000008d000000b200000005000000880019008800b2008d00b2008d00190088001900250000000c00000008000080
+250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000008d0000001900000092000000b2000000050000008d0019008d00b2009200b200920019008d001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000
+0000000000f3e6d20000000000250000000c00000002000000250000000c000000080000805600000030000000920000001900000098000000b200000005000000920019009200b2009800b2009800190092001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800
+0080560000003000000098000000190000009c000000b200000005000000980019009800b2009c00b2009c00190098001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c0000000800008056000000300000009c00000019000000a0000000b2000000050000009c0019009c
+00b200a000b200a00019009c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c00000002000000250000000c000000080000805600000030000000a000000019000000a3000000b200000005000000a0001900a000b200a300b200a3001900a0001900250000000c00000008000080250000000c000000
+00000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c000000080000805600000030000000a300000019000000a7000000b200000005000000a3001900a300b200a700b200a7001900a3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc9
+0000000000250000000c00000002000000250000000c000000080000805600000030000000a700000019000000ac000000b200000005000000a7001900a700b200ac00b200ac001900a7001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c00000008000080560000003000
+0000ac00000019000000b1000000b200000005000000ac001900ac00b200b100b200b1001900ac001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c000000080000805600000030000000b100000019000000b7000000b200000005000000b1001900b100b200b700b200b7
+001900b1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000b700000019000000bc000000b200000005000000b7001900b700b200bc00b200bc001900b7001900250000000c00000008000080250000000c0000000000008028000000
+0c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000bc00000019000000c0000000b200000005000000bc001900bc00b200c000b200c0001900bc001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000
+000c00000002000000250000000c000000080000805600000030000000c000000019000000c3000000b200000005000000c0001900c000b200c300b200c3001900c0001900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100
+000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000120056ffb40099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c
+00000005000080560000002c000000f8ffffff02000000da000000c900000004000000f000200b300c200b300c9001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000
+000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e1029696190178380a919c58530bb29619010000000038951a248ce3c577738c172646e0
+c5779401300b0000300b188d170178380a914b006801eb480000c457e10237bb400078380a9138951a244c006601eb4800009087a1263c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b38951a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000030
+951a24dc57e10223e0c57738951a243a6c2e760865450130951a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000001c000000e9ffffffbd000000dcffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000450000001f0000008d0000002b000000
+0100000000400d4200040dc248000000e9ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000
+0000000000050000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000001a013ada21883a6c2e7638951a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b87a320091c58e1024c005001ed4800003058e102188d170178380a9238951a244d00fe00ed48000037bb400078380a9270374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0bf8911a24f0374b0b00000000fc57e102
+00000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126ec4800008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000880000004f0000002c00000084000000370000000100000000400d4200040dc2520000
+00dcffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000045006600660065006300740043006f0064006500070000000300000003000000060000000600000003000000070000000600000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001200caffc600caff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff27000000da0000005500000002000000f000e003300ce003250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000042000000170000004e0000000100000000400d4200040dc217000000c6ffffff010000004c0000000000
+00000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000002500000042000000bf0000004e0000000100000000400d4200040dc228000000c6ffffff180000004c000000
+000000000000000000000000ffffffffffffffff7c00000054005200410046004600490043005f0046004c004f0057005f0055004e004b004e004f0057004e0020003d00200031000700000007000000070000000600000006000000030000000700000006000000060000000600000008000000090000000600000007000000070000000700000007000000080000000900000007000000030000000600000003000000060000
+000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000004f000000170000005b0000000100000000400d4200040dc217000000b9ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003
+0000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000250000004f000000a60000005b0000000100000000400d4200040dc228000000b9ffffff150000004c000000000000000000000000000000ffffffffffffffff78000000460052
+00450045005f0054005200410046004600490043005f0046004c004f00570020003d002000320000000600000007000000070000000700000006000000070000000700000007000000060000000600000003000000070000000600000006000000060000000800000009000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000005c00000017000000680000000100000000400d4200040dc217000000acffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000250000005c0000008b000000680000000100000000400d4200040dc228000000acffffff110000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f00540052004100460046004900430020003d0020003300000007000000070000000700
+000007000000070000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000690000001700000075000000
+0100000000400d4200040dc2170000009fffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000002500000069000000860000007500
+00000100000000400d4200040dc2280000009fffffff100000004c000000000000000000000000000000ffffffffffffffff6c00000053004c004f0057005f00540052004100460046004900430020003d0020003400070000000600000008000000090000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a0000001000000003000000080000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000007600000017000000820000000100000000400d4200040dc21700000092ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000250000007600000097000000820000000100000000400d4200040dc22800000092ffffff130000004c000000000000000000000000000000ffffffffffffffff74000000510055004500550049004e0047005f005400520041
+00460046004900430020003d00200035000000080000000700000007000000070000000300000007000000080000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b00000054000000540000001400000083000000170000008f0000000100000000400d4200040dc21700000085ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000d00000002500000083000000ab0000008f0000000100000000400d4200040dc22800000085ffffff160000004c000000000000000000000000000000ffffffffffffffff78000000530054004100540049004f004e004100520059005f00540052004100460046004900430020003d00200036000700000007000000070000000700000003000000080000000700000007000000
+07000000070000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000090000000170000009c0000000100
+000000400d4200040dc21700000078ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000025000000900000009a0000009c000000
+0100000000400d4200040dc22800000078ffffff130000004c000000000000000000000000000000ffffffffffffffff740000004e004f005f0054005200410046004600490043005f0046004c004f00570020003d00200037000000070000000800000006000000070000000700000007000000060000000600000003000000070000000600000006000000060000000800000009000000030000000600000003000000060000
+000a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000eb0051ffaa0099002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00
+000001000000250000000c000000080000805600000030000000e80000001e00000092010000b700000005000000800ee001800e700b2019700b2019e001800ee001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000eb0051ffaa0099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000
+04000000250000000c00000005000080560000002c000000d100000007000000a9010000ce00000004000000800e700b2019700b2019e001800ee001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000
+004c0000000210c0db0400000004000000000000000000684300002cc300002a4300001943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000e80054ffaa009900250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800
+00805600000030000000e50000001b0000003e010000b400000005000000e5001b00e500b4003e01b4003e011b00e5001b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000003e0100001b00000042010000b4000000050000003e011b003e
+01b4004201b40042011b003e011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000420100001b00000046010000b40000000500000042011b004201b4004601b40046011b0042011b00250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000460100001b0000004a010000b40000000500000046011b004601b4004a01b4004a011b0046011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc
+0000000000250000000c00000004000000250000000c0000000800008056000000300000004a0100001b0000004e010000b4000000050000004a011b004a01b4004e01b4004e011b004a011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000
+00004e0100001b00000053010000b4000000050000004e011b004e01b4005301b40053011b004e011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000530100001b00000057010000b40000000500000053011b005301b4005701b40057
+011b0053011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000570100001b0000005c010000b40000000500000057011b005701b4005c01b4005c011b0057011b00250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000005c0100001b00000061010000b4000000050000005c011b005c01b4006101b40061011b005c011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000
+000c00000004000000250000000c000000080000805600000030000000610100001b00000066010000b40000000500000061011b006101b4006601b40066011b0061011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000660100001b00
+00006a010000b40000000500000066011b006601b4006a01b4006a011b0066011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006a0100001b0000006e010000b4000000050000006a011b006a01b4006e01b4006e011b006a011b0025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cd0000000000250000000c00000004000000250000000c0000000800008056000000300000006e0100001b00000071010000b4000000050000006e011b006e01b4007101b40071011b006e011b00250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000710100001b00000075010000b40000000500000071011b007101b4007501b40075011b0071011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c000000040000
+00250000000c000000080000805600000030000000750100001b00000079010000b40000000500000075011b007501b4007901b40079011b0075011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000790100001b0000007e010000b400
+00000500000079011b007901b4007e01b4007e011b0079011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000007e0100001b00000084010000b4000000050000007e011b007e01b4008401b40084011b007e011b00250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000840100001b00000088010000b40000000500000084011b008401b4008801b40088011b0084011b00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000880100001b0000008c010000b40000000500000088011b008801b4008c01b4008c011b0088011b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000
+000800008056000000300000008c0100001b0000008f010000b4000000050000008c011b008c01b4008f01b4008f011b008c011b00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0b400040180000000c00000001000000e80054ffaa0099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ce
+00000004000000a6010000cb00000004000000500e400bf018400bf018b001500eb001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c000000000000001e00000018000000f2000000e7ffffff89010000daffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000016010000210000005e0100002d0000000100000000400d4200040dc219010000e7ffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800
+0000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c000000230100002e00000051010000390000000100000000400d4200040dc226010000daffffff080000004c000000000000000000000000000000ffffffffffffffff5c000000540065006e00640065006e006300790005000000060000000600000006000000060000000600000006000000050000
+000a0000001000000003000000080000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e800c8ff9201c8ff000101011540010010000000040000000000000021000000080000006200
+00000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057
+00000024000000ce00000029000000a60100005700000002000000500e0004f0180004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b0000005400000054000000ea00000044000000ed000000500000000100000000400d4200040dc2ed000000c4ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b00000054000000d8000000fb0000004400000085010000500000000100000000400d4200040dc2fe000000c4ffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000053004c0049004700480054004c0059005f0049004e004300520045004100530049004e00470020003d00200031000000070000000600000003000000080000000700000007000000
+06000000070000000600000003000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ea0000005100
+0000ed0000005d0000000100000000400d4200040dc2ed000000b7ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a0000000fb000000
+510000004c0100005d0000000100000000400d4200040dc2fe000000b7ffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000049004e004300520045004100530049004e00470020003d002000320003000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000003000000080000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ea0000005e000000ed0000006a0000000100000000400d4200040dc2ed000000aaffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000fb0000005e0000008b0100006a0000000100000000400d4200040dc2fe000000aaffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000005300540052004f004e0047004c0059005f0049004e0043
+00520045004100530049004e00470020003d0020003300000007000000070000000700000008000000070000000800000006000000070000000600000003000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ea0000006b000000ed000000770000000100000000400d4200040dc2ed0000009dffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000fb0000006b00000089010000770000000100000000400d4200040dc2fe0000009dffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000053004c0049004700480054004c0059005f00440045004300520045004100530049004e00470020003d00200034000000070000000600
+00000300000008000000070000000700000006000000070000000600000007000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000054000000ea00000078000000ed000000840000000100000000400d4200040dc2ed00000090ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000a0000000fb0000007800000050010000840000000100000000400d4200040dc2fe00000090ffffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000440045004300520045004100530049004e00470020003d002000350007000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a
+0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ea00000085000000ed000000910000000100000000400d4200040dc2ed00000083ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000
+000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000fb000000850000008f010000910000000100000000400d4200040dc2fe00000083ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000005300540052
+004f004e0047004c0059005f00440045004300520045004100530049004e00470020003d0020003600000007000000070000000700000008000000070000000800000006000000070000000600000007000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffff
+ff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ea00000092000000ed0000009e0000000100000000400d4200040dc2ed00000076ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fd
+ffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000094000000fb00000092000000460100009e0000000100000000400d4200040dc2fe00000076ffffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000043004f004e005300540041004e00540020003d0020003700070000000800000007000000
+0700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000360033fd4e0105022100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000
+000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000033000000d000000081010000d5020000050000003003000d3003502d1018502d1018000d3003000d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000360033fd4e0105023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+2101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001c000000b900000098010000ec020000040000003003502d1018502d1018000d3003000d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000004c42008032c40000a74300400144bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000330036fd4e010502250000000c000000080000802700000018000000040000
+0000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000030000000cd000000de000000d2020000050000003000cd003000d202de00d202de00cd003000cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800
+00805600000030000000de000000cd000000e6000000d202000005000000de00cd00de00d202e600d202e600cd00de00cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e6000000cd000000ef000000d202000005000000e600cd00e6
+00d202ef00d202ef00cd00e600cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ef000000cd000000f7000000d202000005000000ef00cd00ef00d202f700d202f700cd00ef00cd00250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000f7000000cd000000ff000000d202000005000000f700cd00f700d202ff00d202ff00cd00f700cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda
+0000000000250000000c00000004000000250000000c000000080000805600000030000000ff000000cd00000008010000d202000005000000ff00cd00ff00d2020801d2020801cd00ff00cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000
+000008010000cd00000010010000d2020000050000000801cd000801d2021001d2021001cd000801cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000010010000cd00000019010000d2020000050000001001cd001001d2021901d20219
+01cd001001cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000019010000cd00000021010000d2020000050000001901cd001901d2022101d2022101cd001901cd00250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000021010000cd00000029010000d2020000050000002101cd002101d2022901d2022901cd002101cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000
+000c00000004000000250000000c00000008000080560000003000000029010000cd00000031010000d2020000050000002901cd002901d2023101d2023101cd002901cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000000031010000cd00
+000038010000d2020000050000003101cd003101d2023801d2023801cd003101cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000038010000cd0000003e010000d2020000050000003801cd003801d2023e01d2023e01cd003801cd0025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000003e010000cd00000046010000d2020000050000003e01cd003e01d2024601d2024601cd003e01cd00250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000046010000cd0000004f010000d2020000050000004601cd004601d2024f01d2024f01cd004601cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c000000040000
+00250000000c0000000800008056000000300000004f010000cd00000057010000d2020000050000004f01cd004f01d2025701d2025701cd004f01cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000057010000cd00000062010000d202
+0000050000005701cd005701d2026201d2026201cd005701cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000062010000cd0000006c010000d2020000050000006201cd006201d2026c01d2026c01cd006201cd00250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000006c010000cd00000074010000d2020000050000006c01cd006c01d2027401d2027401cd006c01cd00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000074010000cd0000007d010000d2020000050000007401cd007401d2027d01d2027d01cd007401cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000
+000800008056000000300000007d010000cd0000007e010000d2020000050000007d01cd007d01d2027e01d2027e01cd007d01cd00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0b400040180000000c00000001000000330036fd4e0105023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000019
+000000b600000095010000e9020000040000000003202de017202de017d00c0003d00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c000000000000001e000000180000003d00000035ffffff7801000028ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000b3000000d3000000fb000000df0000000100000000400d4200040dc2b600000035ffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800
+0000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000084000000bb000000e0000000f3000000eb0000000100000000400d4200040dc2be00000028ffffff090000004c000000000000000000000000000000ffffffffffffffff600000004300610075007300650043006f00640065000000070000000600000006000000060000000600000007000000060000
+0006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000330016ff810116ff00010101154001001000000004000000000000002100
+000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c
+00000005000080570000002400000019000000db0000009501000009010000020000000003200fe017200f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b000000540000005400000035000000f600000038000000020100000100000000400d4200040dc23800000012ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b00000054000000d000000046000000f6000000ce000000020100000100000000400d4200040dc24900000012ffffff160000004c000000000000000000000000000000ffffffffffffffff7800000054005200410046004600490043005f0043004f004e00470045005300540049004f004e0020003d00200031000700000007000000070000000600000006000000
+03000000070000000600000007000000080000000700000008000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000000301
+0000380000000f0100000100000000400d4200040dc23800000005ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009400000046000000
+030100008c0000000f0100000100000000400d4200040dc24900000005ffffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004100430043004900440045004e00540020003d00200032000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdff
+ffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500000010010000380000001c0100000100000000400d4200040dc238000000f8feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c00000046000000100100009b0000001c0100000100000000400d4200040dc249000000f8feffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000052004f004100440057004f0052004b00530020003d0020003300000007000000080000
+0007000000070000000900000008000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000001d01000038000000290100000100000000400d4200040dc238
+000000ebfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000460000001d010000ad000000290100000100000000400d4200040d
+c249000000ebfeffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004e004100520052004f0057005f004c0041004e004500530020003d0020003400070000000700000007000000070000000800000009000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fd
+ffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000002a01000038000000360100000100000000400d4200040dc238000000defeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000460000002a010000a4000000360100000100000000400d4200040dc249000000defeffff110000004c000000000000000000000000000000ffffffffffffffff7000000049004d0050004100530053004900420049004c0049005400590020003d0020003500
+000003000000090000000700000007000000070000000700000003000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000
+3701000038000000430100000100000000400d4200040dc238000000d1feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004600
+000037010000ae000000430100000100000000400d4200040dc249000000d1feffff110000004c000000000000000000000000000000ffffffffffffffff7000000053004c004900500050004500520059005f0052004f004100440020003d002000360000000700000006000000030000000700000007000000070000000700000007000000060000000700000008000000070000000700000003000000060000000300000006
+0000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000004401000038000000500100000100000000400d4200040dc238000000c4feffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000
+00030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000004600000044010000a2000000500100000100000000400d4200040dc249000000c4feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000041
+0051005500410050004c0041004e0049004e00470020003d002000370000000700000008000000070000000700000007000000060000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000540000003500000051010000380000005d0100000100000000400d4200040dc238000000b7feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b000000540000007c00000046000000510100006f0000005d0100000100000000400d4200040dc249000000b7feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000460049005200450020003d002000380006000000030000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffff
+ff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000005e010000380000006a0100000100000000400d4200040dc238000000aafeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fd
+ffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c010000460000005e0100000d0100006a0100000100000000400d4200040dc249000000aafeffff200000004c000000000000000000000000000000ffffffffffffffff8c000000480041005a004100520044004f00550053005f00440052004900560049004e0047005f00
+43004f004e0044004900540049004f004e00530020003d002000390007000000070000000600000007000000070000000700000008000000070000000700000006000000070000000700000003000000070000000300000007000000080000000600000007000000080000000700000007000000030000000700000003000000080000000700000007000000030000000600000003000000060000000a00000010000000030000
+00080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000006b01000038000000770100000100000000400d4200040dc2380000009dfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003
+000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000460000006b010000e1000000770100000100000000400d4200040dc2490000009dfeffff180000004c000000000000000000000000000000ffffffffffffffff7c0000004f0042004a0045004300540053005f
+004f004e005f005400480045005f0052004f004100440020003d002000310030000800000007000000050000000700000007000000070000000700000006000000080000000700000006000000070000000700000007000000060000000700000008000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000007801000038000000840100000100000000400d4200040dc23800000090feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff080000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000004600000078010000db000000840100000100000000400d4200040dc24900000090feffff170000004c000000000000000000000000000000ffffffffffffffff7c00000041004e0049004d0041004c0053005f004f004e005f0052004f004100440057004100590020003d002000
+31003100000007000000070000000300000009000000070000000600000007000000060000000800000007000000060000000700000008000000070000000700000009000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b0000005400000054000000350000008501000038000000910100000100000000400d4200040dc23800000083feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000d00000004600000085010000d7000000910100000100000000400d4200040dc24900000083feffff160000004c000000000000000000000000000000ffffffffffffffff78000000500045004f0050004c0045005f004f004e005f0052004f004100440057004100590020003d002000310032000700000007000000080000000700000006000000070000000600000008
+00000007000000060000000700000008000000070000000700000009000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500000092010000380000009e0100
+000100000000400d4200040dc23800000076feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e40000004600000092010000e70000009e
+0100000100000000400d4200040dc24900000076feffff190000004c000000000000000000000000000000ffffffffffffffff80000000420052004f004b0045004e005f0044004f0057004e005f00560045004800490043004c004500530020003d002000310033000000070000000700000008000000070000000700000007000000060000000700000008000000090000000700000006000000070000000700000007000000
+030000000700000006000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000009f01000038000000ab0100000100000000400d4200040dc23800000069fe
+ffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052
+0300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000460000009f0100001e010000ab0100000100000000400d4200040dc249000000
+69feffff210000004c000000000000000000000000000000ffffffffffffffff90000000560045004800490043004c0045005f004f004e005f00570052004f004e0047005f004300410052005200490041004700450057004100590020003d002000310034000000070000000700000007000000030000000700000006000000070000000600000008000000070000000600000009000000070000000800000007000000080000
+0006000000070000000700000007000000070000000300000007000000080000000700000009000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000ac
+01000038000000b80100000100000000400d4200040dc2380000005cfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000044010000460000
+00ac01000057010000b80100000100000000400d4200040dc2490000005cfeffff290000004c000000000000000000000000000000ffffffffffffffffa00000005200450053004300550045005f0041004e0044005f005200450043004f0056004500520059005f0057004f0052004b005f0049004e005f00500052004f004700520045005300530020003d002000310035000000070000000700000007000000070000000700
+00000700000006000000070000000700000007000000060000000700000007000000070000000800000007000000070000000700000007000000060000000900000008000000070000000700000006000000030000000700000006000000070000000700000008000000080000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000b901000038000000c50100000100000000400d4200040dc2380000004ffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000046000000b9010000de000000c50100000100000000400d4200040dc2490000004ffeffff170000004c000000000000000000000000000000ffffffffffffffff7c00000052004500470055004c00410054004f00520059005f004d0045
+004100530055005200450020003d00200031003600000007000000070000000800000007000000060000000700000007000000080000000700000007000000060000000900000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000c601000038000000d20100000100000000400d4200040dc23800000042feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000046000000c601000010010000d20100000100000000400d4200040dc24900000042feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000450058005400520045004d0045005f0057004500410054004800450052005f0043004f004e0044004900540049004f004e00530020003d00
+2000310037000000070000000700000007000000070000000700000009000000070000000600000009000000070000000700000007000000070000000700000007000000060000000700000008000000070000000700000003000000070000000300000008000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000d301000038000000df0100000100000000400d4200040dc23800000035feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff
+08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000046000000d3010000ca000000df0100000100000000400d4200040dc24900000035feffff170000004c000000000000000000000000000000ffffffffffffffff7c0000005600490053004900420049004c004900540059005f00520045004400550043004500440020003d
+00200031003800000007000000030000000700000003000000070000000300000006000000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b000000540000005400000035000000e001000038000000ec0100000100000000400d4200040dc23800000028feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b00000054000000b800000046000000e0010000ae000000ec0100000100000000400d4200040dc24900000028feffff120000004c000000000000000000000000000000ffffffffffffffff70000000500052004500430049005000490054004100540049004f004e0020003d0020003100390007000000070000000700000007000000030000000700000003000000070000000700
+00000700000003000000080000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000ed01000038000000f90100000100000000400d4200040dc2380000001bfeffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc00000046000000ed010000cd000000f90100000100000000400d4200040dc2490000001bfe
+ffff150000004c000000000000000000000000000000ffffffffffffffff780000005200450043004b004c004500530053005f0050004500520053004f004e00530020003d0020003200300000000700000007000000070000000700000006000000070000000700000007000000060000000700000007000000070000000700000008000000070000000700000003000000060000000300000006000000060000000a00000010
+00000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000035000000fa01000038000000060200000100000000400d4200040dc2380000000efeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000
+001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000004401000046000000fa01000053010000060200000100000000400d4200040dc2490000000efeffff290000004c000000000000000000000000000000ffffffffffffffffa00000004f005600450052005f
+004800450049004700480054005f005700410052004e0049004e0047005f00530059005300540045004d005f0054005200490047004700450052004500440020003d0020003200310000000800000007000000070000000700000006000000070000000700000003000000080000000700000007000000060000000900000007000000070000000700000003000000070000000800000006000000070000000700000007000000
+0700000007000000090000000600000007000000070000000300000008000000080000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500
+00000702000038000000130200000100000000400d4200040dc23800000001feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c010000
+460000000702000011010000130200000100000000400d4200040dc24900000001feffff200000004c000000000000000000000000000000ffffffffffffffff8c00000054005200410046004600490043005f0052004500470055004c004100540049004f004e0053005f004300480041004e0047004500440020003d002000320032000700000007000000070000000600000006000000030000000700000006000000070000
+0007000000080000000700000006000000070000000700000003000000080000000700000007000000060000000700000007000000070000000700000008000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b0000005400000054000000350000001402000038000000200200000100000000400d4200040dc238000000f4fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b00000054000000ac0000004600000014020000ab000000200200000100000000400d4200040dc249000000f4fdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004d0041004a004f0052005f004500560045004e00540020003d0020003200330009000000070000000500000008000000070000000600000007000000070000000700000007000000070000000300
+0000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500000021020000380000002d0200000100000000400d4200040dc238000000e7fdffff010000004c000000000000000000000000000000
+ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000004600000021020000ea0000002d0200000100000000400d4200040dc249000000e7fdffff1a0000004c00000000000000000000000000
+0000ffffffffffffffff8000000053004500520056004900430045005f004e004f0054005f004f005000450052004100540049004e00470020003d002000320034000700000007000000070000000700000003000000070000000700000006000000070000000800000007000000060000000800000007000000070000000700000007000000070000000300000007000000080000000300000006000000030000000600000006
+0000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000002e020000380000003a0200000100000000400d4200040dc238000000dafdffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000
+00030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000460000002e020000dd0000003a0200000100000000400d4200040dc249000000dafdffff180000004c000000000000000000000000000000ffffffffffffffff7c00000053
+004500520056004900430045005f004e004f0054005f00550053004500410042004c00450020003d002000320035000700000007000000070000000700000003000000070000000700000006000000070000000800000007000000060000000700000007000000070000000700000007000000060000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000003b02000038000000470200000100000000400d4200040dc238000000cdfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000460000003b020000e5000000470200000100000000400d4200040dc249000000cdfdffff190000004c000000000000000000000000000000ffffffffffffffff8000000053004c004f0057005f004d004f00560049004e0047005f0056004500
+4800490043004c004500530020003d002000320036000000070000000600000008000000090000000600000009000000080000000700000003000000070000000800000006000000070000000700000007000000030000000700000006000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000004802000038000000540200000100000000400d4200040dc238000000c0fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000004600000048020000f8000000540200000100000000400d4200040dc249000000c0fdffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000440041004e004700450052004f00550053005f0045004e0044005f004f0046005f005100550045005500450020003d
+0020003200370000000700000007000000070000000800000007000000070000000800000007000000070000000600000007000000070000000700000006000000080000000600000006000000080000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000005502000038000000610200000100000000400d4200040dc238000000b3fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004600000055020000a7000000610200000100000000400d4200040dc249000000b3fdffff110000004c000000000000000000000000000000ffffffffffffffff700000005200490053004b005f004f0046005f00460049005200450020003d002000320038000000070000000300000007000000070000000600
+00000800000006000000060000000600000003000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+00000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500000062020000380000006e0200000100000000400d42
+00040dc238000000a6fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000004600000062020000a00000006e020000010000000040
+0d4200040dc249000000a6fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000540049004d0045005f00440045004c004100590020003d0020003200390000000700000003000000090000000700000006000000070000000700000006000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000006f020000380000007b0200000100000000400d4200040dc23800000099fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000460000006f020000cd0000007b0200000100000000400d4200040dc24900000099fdffff160000004c000000000000000000000000000000ffffffffffffffff7800000050004f004c004900430045005f0043004800450043004b0050004f0049004e0054
+0020003d00200033003000070000000800000006000000030000000700000007000000060000000700000007000000070000000700000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b0000005400000054000000350000007c02000038000000880200000100000000400d4200040dc2380000008cfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b0000005400000030010000460000007c02000039010000880200000100000000400d4200040dc2490000008cfdffff260000004c000000000000000000000000000000ffffffffffffffff980000004d0041004c00460055004e004300540049004f004e0049004e0047005f0052004f004100440053004900440045005f00450051005500490050004d0045004e00540020003d002000
+3300310009000000070000000600000006000000070000000700000007000000070000000300000008000000070000000300000007000000080000000600000007000000080000000700000007000000070000000300000007000000070000000600000007000000080000000700000003000000070000000900000007000000070000000700000003000000060000000300000006000000060000000a00000010000000030000
+00080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000180000000c00000000000000190000000c000000ffffff004d000000e4000000ba010000d1000000c9010000e0000000bd01000027ffffff1000000010000000c600880000000000000000000000803f00000000000000000000803f00
+00000000000000ffffff00000000006c000000300000009c0000004800000010000000100000002800000010000000120000000100010000000000480000000000000000000000000000000000000000000000ffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d000000a0040000
+ba010000d1000000c9010000e0000000bd01000027ffffff10000000100000004600660000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c00000034000000a0000000000400001000000010000000280000001000000010000000010020000300000000040000000000000000000000000000000000000000ff0000ff0000ff00000066cccc000099cc000099cc000099cc
+000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc00ffffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff00003399000099cc0099ffff0099ccff00ff996600ff996600ff996600ff99660099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099cc
+ff009999cc00003399000099cc0099ffff0099ccff00ff996600f0fbff00f0caa600ff99330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600ff993300ff663300ff66330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff00ff
+663300ff663300ff663300ff663300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff009999cc00003399000099cc0099ffff00ff996600ff996600ff99660099ccff00ff996600ff996600ff996600ff99660099ccff00ff996600ff996600ff9966009999cc00003399000099cc00
+99ffff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00f0caa600ff99330099ccff00ff996600f0fbff00ff9933009999cc00003399000099cc0099ffff00ff996600ff993300ff66330099ccff00ff996600ff996600ff993300ff66330099ccff00ff996600ff993300ff6633009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff0099ccff0099ccff00ff66330099ccff00ff66330099ccff
+0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff996600ff99660099ccff00ff996600ff996600ff99660099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00ff99330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099cc
+ff00ff996600ff993300ff66330099ccff00ff996600ff993300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc00003399000099cc000033990000339900003399000033990000339900003399000033990000339900003399000033990000339900003399000033990000
+3399000066cc000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000250000000c00000002000000180000000c0000000000000021000000080000000b000000100000006000000060000000190000000c000000ffffff00160000000c00000000000000120000
+000c00000001000000520000007001000004000000f6ffffff00000000000000000000000090010000000000000040000041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000530e383de102ce38c67738010103aa38c677d3e61726000000000a000000c441e102080000002038e10248004800408040804080
+4080408040804800080050010103d33cc677000000008e010000803de102050000000000510e4893530e803de102a43cc677d33cc6776be6172600000000ac01510e0000510e5001510e0000530e0000510e3812510e010000003292530e010000008e0100000066530e3812510e130100008ce3c5779fe61726704f2e76ec02010300000103e766530e0000c57767e6172600000000f451010300000103386d530e0000510e1c
+008501b600000000000000ff07000008910103930100921d000401b6000000000000006476000800000000250000000c00000004000000180000000c0000000000000054000000e4000000d3010000d600000046020000e20000000100000000400d4200040d42d6010000ce000000190000004c000000000000000000000000000000ffffffffffffffff80000000530065006500200074006800690073002000640069006100
+6700720061006d00200066006f0072002000740068006500200000000700000006000000060000000300000003000000060000000300000004000000030000000600000003000000060000000600000003000000060000000900000003000000030000000600000003000000030000000300000006000000060000000300000054000000dc000000d3010000e30000003b020000ef0000000100000000400d4200040d42d60100
+00db000000180000004c000000000000000000000000000000ffffffffffffffff7c00000066006900720073007400200073006500740020006f006600200053007500620020004300610075007300650073002e0003000000030000000300000004000000030000000300000004000000060000000300000003000000060000000300000003000000070000000600000006000000030000000700000006000000060000000400
+0000060000000400000003000000220000000c000000ffffffff0a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000ca0162ff8a0072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000
+0000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000c70100003400000051020000a600000005000000701c4003701c600a1025600a10254003701c4003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000ca0162ff8a0072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000
+00c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000b00100001d00000068020000bd00000004000000701c600a1025600a10254003701c4003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a00
+0000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080e34300001bc300000a430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000c70165ff8a007200250000000c0000000800008027000000180000000500000000000000fcf2e30000
+000000250000000c00000005000000250000000c000000080000805600000030000000c4010000310000000c020000a300000005000000c4013100c401a3000c02a3000c023100c4013100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000
+0c0200003100000010020000a3000000050000000c0231000c02a3001002a300100231000c023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000100200003100000013020000a300000005000000100231001002a3001302a300130231
+0010023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000130200003100000016020000a300000005000000130231001302a3001602a3001602310013023100250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000000016020000310000001a020000a300000005000000160231001602a3001a02a3001a02310016023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c
+00000005000000250000000c0000000800008056000000300000001a020000310000001d020000a3000000050000001a0231001a02a3001d02a3001d0231001a023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000001d02000031000000
+21020000a3000000050000001d0231001d02a3002102a300210231001d023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000210200003100000024020000a300000005000000210231002102a3002402a3002402310021023100250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000240200003100000028020000a300000005000000240231002402a3002802a3002802310024023100250000000c00000008000080250000000c00000000000080280000000c000000050000002700
+0000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c00000008000080560000003000000028020000310000002b020000a300000005000000280231002802a3002b02a3002b02310028023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c0000000500000025
+0000000c0000000800008056000000300000002b020000310000002f020000a3000000050000002b0231002b02a3002f02a3002f0231002b023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c0000000800008056000000300000002f0200003100000032020000a3000000
+050000002f0231002f02a3003202a300320231002f023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000320200003100000036020000a300000005000000320231003202a3003602a3003602310032023100250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000360200003100000039020000a300000005000000360231003602a3003902a3003902310036023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000eedfc90000000000250000000c00000005000000250000000c00000008000080560000003000000039020000310000003c020000a300000005000000390231003902a3003c02a3003c02310039023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c00000008
+00008056000000300000003c0200003100000041020000a3000000050000003c0231003c02a3004102a300410231003c023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000410200003100000045020000a30000000500000041023100
+4102a3004502a3004502310041023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000450200003100000048020000a300000005000000450231004502a3004802a3004802310045023100250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c00000008000080560000003000000048020000310000004c020000a300000005000000480231004802a3004c02a3004c02310048023100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7
+bf0000000000250000000c00000005000000250000000c0000000800008056000000300000004c020000310000004e020000a3000000050000004c0231004c02a3004e02a3004e0231004c023100250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000c70165ff8a0072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000
+05000000250000000c00000005000080560000002c000000ad0100001a00000065020000ba00000004000000401c300ae024300ae0241003401c1003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000d1010000d1ffffff48020000c4ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000e5010000370000002d020000430000000100000000400d4200040dc2e8010000d1ffffff0d0000004c
+000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000000300000008000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000094000000e7010000440000002b0200004f0000000100000000400d4200040dc2ea010000c4ffffff0c0000004c000000000000000000000000000000ffffffffffffffff640000005700610072006e0069006e0067004c00650076006500
+6c000900000006000000040000000600000003000000060000000600000006000000060000000700000006000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000001800000002
+10c0db0200000000400000c701b2ff5102b2ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000ad0100003f000000650200006d00000002000000401c6005e0246005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a0000
+00220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c90100005a000000cc010000660000000100000000400d4200040dc2cc010000aeffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000da0100005a00000033020000660000000100000000400d4200040dc2dd010000aeffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000049004e0046004f0052004d004100540049005600450020
+003d002000310000000300000007000000060000000800000007000000090000000700000007000000030000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c901000067
+000000cc010000730000000100000000400d4200040dc2cc010000a1ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000da0100
+00670000004a020000730000000100000000400d4200040dc2dd010000a1ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000440041004e004700450052005f004c004500560045004c005f00310020003d0020003200070000000700000007000000080000000700000007000000060000000600000007000000070000000700000006000000060000000600000003000000060000000300
+0000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c901000074000000cc010000800000000100000000400d4200040dc2cc01000094ffffff010000004c000000000000000000000000000000ffffffffffffffff50000000
+20000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000da010000740000004a020000800000000100000000400d4200040dc2dd01000094ffffff120000004c000000000000000000000000000000ffffffffffffffff7000
+0000440041004e004700450052005f004c004500560045004c005f00320020003d00200033000700000007000000070000000800000007000000070000000600000006000000070000000700000007000000060000000600000006000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c901000081000000cc0100008d0000000100000000400d4200040dc2cc01000087ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000da010000810000004a0200008d0000000100000000400d4200040dc2dd01000087ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000440041004e004700450052005f004c004500560045004c005f00330020003d002000340007000000070000000700000008000000070000000700000006
+00000006000000070000000700000007000000060000000600000006000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007c0259ffa40072002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000
+0000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000790200003d0000001d030000af000000050000009027d0039027f00ad031f00ad031d0039027d003250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007c0259ffa40072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000
+00003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000620200002600000034030000c6000000040000009027f00ad031f00ad031d0039027d003250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000401e44000024c3000024430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000079025cffa4007200250000000c00000008000080
+27000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000760200003a000000cc020000ac0000000500000076023a007602ac00cc02ac00cc023a0076023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c000000050000
+00250000000c000000080000805600000030000000cc0200003a000000d0020000ac00000005000000cc023a00cc02ac00d002ac00d0023a00cc023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000d00200003a000000d4020000ac00
+000005000000d0023a00d002ac00d402ac00d4023a00d0023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000d40200003a000000d9020000ac00000005000000d4023a00d402ac00d902ac00d9023a00d4023a00250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000d90200003a000000de020000ac00000005000000d9023a00d902ac00de02ac00de023a00d9023a00250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000f7ebd90000000000250000000c00000005000000250000000c000000080000805600000030000000de0200003a000000e2020000ac00000005000000de023a00de02ac00e202ac00e2023a00de023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c0000
+00080000805600000030000000e20200003a000000e6020000ac00000005000000e2023a00e202ac00e602ac00e6023a00e2023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000e60200003a000000eb020000ac00000005000000e602
+3a00e602ac00eb02ac00eb023a00e6023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000eb0200003a000000f0020000ac00000005000000eb023a00eb02ac00f002ac00f0023a00eb023a00250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000f00200003a000000f5020000ac00000005000000f0023a00f002ac00f502ac00f5023a00f0023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000f50200003a000000f9020000ac00000005000000f5023a00f502ac00f902ac00f9023a00f5023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c00000008000080560000
+0030000000f90200003a000000fd020000ac00000005000000f9023a00f902ac00fd02ac00fd023a00f9023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000fd0200003a00000001030000ac00000005000000fd023a00fd02ac000103
+ac0001033a00fd023a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000010300003a00000005030000ac0000000500000001033a000103ac000503ac0005033a0001033a00250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000050300003a0000000a030000ac0000000500000005033a000503ac000a03ac000a033a0005033a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000
+250000000c00000005000000250000000c0000000800008056000000300000000a0300003a0000000f030000ac000000050000000a033a000a03ac000f03ac000f033a000a033a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c0000000800008056000000300000000f0300
+003a00000013030000ac000000050000000f033a000f03ac001303ac0013033a000f033a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000130300003a00000017030000ac0000000500000013033a001303ac001703ac0017033a001303
+3a00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000170300003a0000001a030000ac0000000500000017033a001703ac001a03ac001a033a0017033a00250000000c00000008000080250000000c00000000000080280000000c00000005
+000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000079025cffa40072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000005f0200002300000031030000c3000000040000006027c00aa031c00aa031a0036027a003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000083020000c8ffffff14030000bbffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c
+00000000000000540000009c000000a402000040000000ec0200004c0000000100000000400d4200040dc2a7020000c8ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000
+100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c0000000970200004d000000fa020000580000000100000000400d4200040dc29a020000bbff
+ffff130000004c000000000000000000000000000000ffffffffffffffff740000004c0061006e0065005200650073007400720069006300740069006f006e0054007900700065000000060000000600000006000000060000000700000006000000060000000300000004000000030000000600000003000000030000000600000006000000050000000500000006000000060000000a0000001000000003000000080000000c
+000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007902a9ff1d03a9ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000
+010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000005f02000048000000310300
+0076000000020000006027f005a031f005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+000000540000007b020000630000007e0200006f0000000100000000400d4200040dc27e020000a5ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000ac0000008c02000063000000f00200006f0000000100000000400d4200040dc28f020000a5ffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004c0041004e00450053005f0043004c004f0053004500440020003d002000310006000000070000000700000007000000070000000600000007000000060000000800000007000000070000000700000003000000060000000300
+0000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000007b020000700000007e0200007c0000000100000000400d4200040dc27e02000098ffffff010000004c000000000000000000000000000000ffffffffffffffff50000000
+20000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000008c02000070000000e30200007c0000000100000000400d4200040dc28f02000098ffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800
+00004c0041004e00450053005f004f00500045004e0020003d002000320006000000070000000700000007000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b00000054000000540000007b0200007d0000007e020000890000000100000000400d4200040dc27e0200008bffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000d00000008c0200007d00000016030000890000000100000000400d4200040dc28f0200008bffffff160000004c000000000000000000000000000000ffffffffffffffff78000000520049004700480054005f004c0041004e00450053005f0043004c004f0053004500440020003d00200033000700000003000000080000000700000007000000060000000600000007000000070000000700000007
+00000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000007b0200008a0000007e020000960000000100000000400d4200040d
+c27e0200007effffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000008c0200008a00000010030000960000000100000000400d4200
+040dc28f0200007effffff150000004c000000000000000000000000000000ffffffffffffffff780000004c004500460054005f004c0041004e00450053005f0043004c004f0053004500440020003d002000340000000600000007000000060000000700000006000000060000000700000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000
+060000000a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003100d9fb2b010a012100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000
+000c00000001000000250000000c0000000800008056000000300000002e00000025030000590100002f04000005000000e0025032e002f0429015f04290155032e0025032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003100d9fb2b010a013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c
+00000005000000250000000c00000005000080560000002c000000170000000e030000700100004604000004000000e002f0429015f04290155032e0025032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201
+580000004c0000000210c0db04000000040000000000000000003842008084c40080954300008543bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002e00dcfb2b010a01250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000
+000800008056000000300000002b00000022030000c70000002c040000050000002b0022032b002c04c7002c04c70022032b002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000c700000022030000ce0000002c04000005000000c700
+2203c7002c04ce002c04ce002203c7002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000ce00000022030000d60000002c04000005000000ce002203ce002c04d6002c04d6002203ce002203250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000d600000022030000dd0000002c04000005000000d6002203d6002c04dd002c04dd002203d6002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000dd00000022030000e40000002c04000005000000dd002203dd002c04e4002c04e4002203dd002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c00000008000080560000
+0030000000e400000022030000ec0000002c04000005000000e4002203e4002c04ec002c04ec002203e4002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000ec00000022030000f40000002c04000005000000ec002203ec002c04f400
+2c04f4002203ec002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000f400000022030000fb0000002c04000005000000f4002203f4002c04fb002c04fb002203f4002203250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000fb00000022030000020100002c04000005000000fb002203fb002c0402012c0402012203fb002203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000
+250000000c00000005000000250000000c0000000800008056000000300000000201000022030000090100002c040000050000000201220302012c0409012c040901220302012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000090100
+0022030000110100002c040000050000000901220309012c0411012c041101220309012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c0000000800008056000000300000001101000022030000170100002c040000050000001101220311012c0417012c04170122031101
+2203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c00000008000080560000003000000017010000220300001d0100002c040000050000001701220317012c041d012c041d01220317012203250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000001d01000022030000240100002c040000050000001d0122031d012c0424012c04240122031d012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c000000
+05000000250000000c00000008000080560000003000000024010000220300002c0100002c040000050000002401220324012c042c012c042c01220324012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c0000000800008056000000300000002c01000022030000340100
+002c040000050000002c0122032c012c0434012c04340122032c012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000034010000220300003d0100002c040000050000003401220334012c043d012c043d01220334012203250000000c00
+000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c0000000800008056000000300000003d01000022030000460100002c040000050000003d0122033d012c0446012c04460122033d012203250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000ebdac20000000000250000000c00000005000000250000000c00000008000080560000003000000046010000220300004d0100002c040000050000004601220346012c044d012c044d01220346012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c0000000500000025000000
+0c0000000800008056000000300000004d01000022030000550100002c040000050000004d0122034d012c0455012c04550122034d012203250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c0000000800008056000000300000005501000022030000560100002c040000050000
+005501220355012c0456012c045601220355012203250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002e00dcfb2b010a013a00
+00000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000140000000b0300006d0100004304000004000000b002c0426015c04260152032b0
+022032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000038000000e0fcff
+ff50010000d3fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000009d00000028030000e5000000340300000100000000400d4200040dc2a0000000e0fcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600
+00000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000
+180000000c000000000000005400000088000000a300000035030000df000000400300000100000000400d4200040dc2a6000000d3fcffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000041006400760069006300650043006f0064006500070000000600000007000000030000000600000006000000070000000600000006000000060000000a0000001000000003000000080000000c0000
+00100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002e00c1fc5901c1fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000000100
+00000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000014000000300300006d0100005e
+03000002000000b002703460157034250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+0054000000300000004b03000033000000570300000100000000400d4200040dc233000000bdfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+00000044010000410000004b03000044010000570300000100000000400d4200040dc244000000bdfcffff290000004c000000000000000000000000000000ffffffffffffffffa0000000440052004900560045005f0054004f005f004e004500580054005f0041005600410049004c00410042004c0045005f005000410052004b0049004e0047005f0050004c0041004300450020003d002000310000000700000007000000
+0300000007000000070000000600000007000000080000000600000007000000070000000700000007000000060000000700000007000000070000000300000006000000070000000700000006000000070000000600000007000000070000000700000007000000030000000700000008000000060000000700000006000000070000000700000007000000030000000600000003000000060000000a00000010000000030000
+00080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000300000005803000033000000640300000100000000400d4200040dc233000000b0fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003
+000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000004100000058030000eb000000640300000100000000400d4200040dc244000000b0fcffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004f00560045005200540041004b0049
+004e0047005f004e004f0054005f0041004c004c004f0057004500440020003d002000320008000000070000000700000007000000070000000700000007000000030000000700000008000000060000000700000008000000070000000600000007000000060000000600000008000000090000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000300000006503000033000000710300000100000000400d4200040dc233000000a3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000004100000065030000d1000000710300000100000000400d4200040dc244000000a3fcffff170000004c000000000000000000000000000000ffffffffffffffff7c000000440052004900560049004e0047005f004e004f0054005f0041004c004c00
+4f0057004500440020003d0020003300000007000000070000000300000007000000030000000700000008000000060000000700000008000000070000000600000007000000060000000600000008000000090000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003000000072030000330000007e0300000100000000400d4200040dc23300000096fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000004100000072030000fd0000007e0300000100000000400d4200040dc24400000096fcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000005500530045005f0048004100520044005f00530048004f0055004c004400450052005f00410053005f004c0041004e00450020003d0020003400000007
+000000070000000700000006000000070000000700000007000000070000000600000007000000070000000800000007000000060000000700000007000000070000000600000007000000070000000600000006000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000300000007f030000330000008b0300000100000000400d4200040dc23300000089fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000410000007f030000e40000008b0300000100000000400d4200040dc24400000089fcffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000057004100490054005f0046004f0052005f0050004f004c004900430045005f0050004100540052004f004c0020003d002000350009000000
+070000000300000007000000060000000600000008000000070000000600000007000000080000000600000003000000070000000700000006000000070000000700000007000000070000000800000006000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b0000005400000054000000300000008c03000033000000980300000100000000400d4200040dc2330000007cfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000fc000000410000008c030000fe000000980300000100000000400d4200040dc2440000007cfcffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000057004100490054005f0046004f0052005f0049004d00500052004f005600450044005f00570045004100540048004500520020003d002000360000000900000007000000030000
+0007000000060000000600000008000000070000000600000003000000090000000700000007000000080000000700000007000000070000000600000009000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b0000005400000054000000300000009903000033000000a50300000100000000400d4200040dc2330000006ffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b0000005400000050010000410000009903000052010000a50300000100000000400d4200040dc2440000006ffcffff2b0000004c000000000000000000000000000000ffffffffffffffffa400000047004900560049004e0047005f0050004100540048005f00560045004800490043004c00450053005f0043004f004d0049004e0047005f00460052004f004d005f00
+42004500480049004e00440020003d0020003700000008000000030000000700000003000000070000000800000006000000070000000700000007000000070000000600000007000000070000000700000003000000070000000600000007000000070000000600000007000000080000000900000003000000070000000800000006000000060000000700000008000000090000000600000007000000070000000700000003
+0000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000030000000a603000033000000b20300000100000000400d4200040dc23300000062fcffff010000004c000000000000
+000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000041000000a6030000bc000000b20300000100000000400d4200040dc24400000062fcffff140000004c00000000
+0000000000000000000000ffffffffffffffff7400000046004f004c004c004f0057005f0044004900560045005200530049004f004e0020003d002000380006000000080000000600000006000000080000000900000006000000070000000300000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a0000001000000003000000080000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000030000000b303000033000000bf0300000100000000400d4200040dc23300000055fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000041000000b3030000ff000000bf0300000100000000400d4200040dc24400000055fcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004e004f005f0044004900560045005200530049004f004e005f005400
+4f005f005200450043004f004d004d0045004e00440020003d0020003900000007000000080000000600000007000000030000000700000007000000070000000700000003000000080000000700000006000000070000000800000006000000070000000700000007000000080000000900000009000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000030000000c003000033000000cc0300000100000000400d4200040dc23300000048fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000041000000c0030000b0000000cc0300000100000000400d4200040dc24400000048fcffff120000004c000000000000000000000000000000ffffffffffffffff7000000044004f005f004e004f0054005f00440049005600450052
+00540020003d002000310030000700000008000000060000000700000008000000070000000600000007000000030000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+000000540000005400000030000000cd03000033000000d90300000100000000400d4200040dc2330000003bfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b000000540000000801000041000000cd03000003010000d90300000100000000400d4200040dc2440000003bfcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000046004f004c004c004f0057005f0050004f004c004900430045005f0049004e0053005400520055004300540049004f004e00530020003d00200031003100000006000000080000000600000006000000080000000900
+0000060000000700000008000000060000000300000007000000070000000600000003000000070000000700000007000000070000000700000007000000070000000300000008000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b000000540000005400000030000000da03000033000000e60300000100000000400d4200040dc2330000002efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b00000054000000c000000041000000da030000b6000000e60300000100000000400d4200040dc2440000002efcffff130000004c000000000000000000000000000000ffffffffffffffff74000000410056004f00490044005f005400480045005f00410052004500410020003d0020003100320000000700000007000000080000000300000007000000060000000700000007
+00000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000030000000e703000033000000f30300000100000000400d4200040d
+c23300000021fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000041000000e7030000ba000000f30300000100000000400d4200
+040dc24400000021fcffff140000004c000000000000000000000000000000ffffffffffffffff74000000440052004900560045005f004300410052004500460055004c004c00590020003d0020003100330007000000070000000300000007000000070000000600000007000000070000000700000007000000060000000700000006000000060000000700000003000000060000000300000006000000060000000a000000
+1000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000030000000f403000033000000000400000100000000400d4200040dc23300000014fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00
+00001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000001000041000000f403000001010000000400000100000000400d4200040dc24400000014fcffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000044004f005f004e00
+4f0054005f004c0045004100560045005f0059004f00550052005f00560045004800490043004c00450020003d0020003100340007000000080000000600000007000000080000000700000006000000060000000700000007000000070000000700000006000000070000000800000007000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000
+00060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003000000001040000330000000d0400000100000000400d4200040dc23300000007fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020
+000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c40000004100000001040000bc0000000d0400000100000000400d4200040dc24400000007fcffff140000004c000000000000000000000000000000ffffffffffffffff740000
+005300570049005400430048005f004f004e005f0052004100440049004f0020003d0020003100350007000000090000000300000007000000070000000700000006000000080000000700000006000000070000000700000007000000030000000800000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000300000000e040000330000001a0400000100000000400d4200040dc233000000fafbffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000410000000e040000b70000001a0400000100000000400d4200040dc244000000fafbffff130000004c000000000000000000000000000000ffffffffffffffff740000005500530045005f0054004f004c004c005f004c0041004e004500530020003d00200031003600000007000000070000000700
+0000060000000700000008000000060000000600000006000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000300000001b040000
+33000000270400000100000000400d4200040dc233000000edfbffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000410000001b04
+0000bc000000270400000100000000400d4200040dc244000000edfbffff140000004c000000000000000000000000000000ffffffffffffffff7400000057004100490054005f0046004f0052005f0043004f004e0056004f00490020003d002000310037000900000007000000030000000700000006000000060000000800000007000000060000000700000008000000070000000700000008000000030000000300000006
+0000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000340206fef300bc002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000
+0000000002000000250000000c00000001000000250000000c00000008000080560000003000000031020000460100002403000002020000050000001023601410232020403220204032601410236014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000
+000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000340206fef300bc003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000
+000000000000250000000c00000005000000250000000c00000005000080560000002c0000001a0200002f0100003b030000190200000400000010232020403220204032601410236014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078
+000000454d462b08400201580000004c0000000210c0db04000000040000000000000000400c440080fbc30000734300003c43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000310209fef300bc00250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c000000
+05000000250000000c0000000800008056000000300000002e02000043010000ad020000ff010000050000002e0243012e02ff01ad02ff01ad0243012e024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000ad02000043010000b30200
+00ff01000005000000ad024301ad02ff01b302ff01b3024301ad024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000b302000043010000b9020000ff01000005000000b3024301b302ff01b902ff01b9024301b3024301250000000c00
+000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000b902000043010000bf020000ff01000005000000b9024301b902ff01bf02ff01bf024301b9024301250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000bf02000043010000c5020000ff01000005000000bf024301bf02ff01c502ff01c5024301bf024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c0000000500000025000000
+0c000000080000805600000030000000c502000043010000cb020000ff01000005000000c5024301c502ff01cb02ff01cb024301c5024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000cb02000043010000d1020000ff010000050000
+00cb024301cb02ff01d102ff01d1024301cb024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000d102000043010000d8020000ff01000005000000d1024301d102ff01d802ff01d8024301d1024301250000000c000000080000802500
+00000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000d802000043010000df020000ff01000005000000d8024301d802ff01df02ff01df024301d8024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000
+000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000df02000043010000e6020000ff01000005000000df024301df02ff01e602ff01e6024301df024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c00000008000080
+5600000030000000e602000043010000eb020000ff01000005000000e6024301e602ff01eb02ff01eb024301e6024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000eb02000043010000ef020000ff01000005000000eb024301eb02ff
+01ef02ff01ef024301eb024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000ef02000043010000f5020000ff01000005000000ef024301ef02ff01f502ff01f5024301ef024301250000000c00000008000080250000000c0000000000
+0080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c000000080000805600000030000000f502000043010000fc020000ff01000005000000f5024301f502ff01fc02ff01fc024301f5024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000
+000000250000000c00000005000000250000000c000000080000805600000030000000fc0200004301000002030000ff01000005000000fc024301fc02ff010203ff0102034301fc024301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000
+020300004301000009030000ff01000005000000020343010203ff010903ff010903430102034301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000090300004301000010030000ff01000005000000090343010903ff011003ff01100343
+0109034301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000100300004301000017030000ff01000005000000100343011003ff011703ff011703430110034301250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c00000008000080560000003000000017030000430100001d030000ff01000005000000170343011703ff011d03ff011d03430117034301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c
+00000005000000250000000c0000000800008056000000300000001d0300004301000021030000ff010000050000001d0343011d03ff012103ff01210343011d034301250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000
+01000000000000000210c0db00000000000000ff0b400040180000000c00000001000000310209fef300bc003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000
+0005000080560000002c000000170200002c010000380300001602000004000000e022f01f1032f01f10323014e0223014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003b020000bffeffff1b030000b2feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000008402000049010000cc020000550100000100000000400d4200040dc287020000bffeffff0d0000004c0000000000000000000000
+00000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000003000000080000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000900000008a02000056010000c5020000610100000100000000400d4200040dc28d020000b2feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000560065006800690063006c00650054007900700065000000070000000600000006
+00000003000000060000000300000006000000050000000500000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003102a0fe
+2403a0fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000
+000000000000000000250000000c00000005000000250000000c0000000500008057000000240000001702000051010000380300007f01000002000000e022801610328016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff4600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000330200006c01000036020000780100000100000000400d4200040dc2360200009cfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffff
+ff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000078000000440200006c0100006b020000780100000100000000400d4200040dc2470200009cfeffff070000004c000000000000000000000000000000ffffffffffffffff5c00000043004100520020003d0020003100000007000000070000000700000003000000060000000300
+0000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000330200007901000036020000850100000100000000400d4200040dc2360200008ffeffff010000004c000000000000000000000000000000ffffffffffffffff50000000
+20000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000084000000440200007901000079020000850100000100000000400d4200040dc2470200008ffeffff090000004c000000000000000000000000000000ffffffffffffffff6000
+00004c004f0052005200590020003d002000320000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000860100003602000092010000
+0100000000400d4200040dc23602000082feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007800000044020000860100006b0200009201
+00000100000000400d4200040dc24702000082feffff070000004c000000000000000000000000000000ffffffffffffffff5c00000042005500530020003d00200033000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b00000054000000540000003302000093010000360200009f0100000100000000400d4200040dc23602000075feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b000000540000007c00000044020000930100006e0200009f0100000100000000400d4200040dc24702000075feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000540041005800490020003d002000340007000000070000000700000003000000030000000600000003000000060000000a0000001000000003000000080000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000a001000036020000ac0100000100000000400d4200040dc23602000068feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000008400000044020000a001000075020000ac0100000100000000400d4200040dc24702000068feffff090000004c000000000000000000000000000000ffffffffffffffff6000000054005200410049004e0020003d00200035000000070000000700000007
+0000000300000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000ad01000036020000b90100000100000000400d4200040dc2360200005bfeffff010000004c000000000000
+000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000044020000ad010000a5020000b90100000100000000400d4200040dc2470200005bfeffff0f0000004c00000000
+0000000000000000000000ffffffffffffffff6c0000004d004f0054004f0052005f004300590043004c00450020003d002000360000000900000008000000070000000800000007000000060000000700000007000000070000000600000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000ba01000036020000c60100000100000000400d4200040dc2360200004efeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc00000044020000ba010000d4020000c60100000100000000400d4200040dc2470200004efeffff180000004c000000000000000000000000000000ffffffffffffffff7c000000560045004800490043004c0045005f0057004900540048005f0054005200410049004c004500520020003d00200037000700000007000000
+070000000300000007000000060000000700000006000000090000000300000007000000070000000600000007000000070000000700000003000000060000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b000000540000005400000033020000c701000036020000d30100000100000000400d4200040dc23602000041feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000b800000044020000c7010000b6020000d30100000100000000400d4200040dc24702000041feffff120000004c000000000000000000000000000000ffffffffffffffff700000004d004f0054004f0052005f00560045004800490043004c004500530020003d00200038000900000008000000070000000800000007000000060000000700000007000000070000000300000007000000060000
+000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000d401000036020000e00100000100000000400d4200040dc23602000034feffff010000004c0000000000000000
+00000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c01000044020000d40100001d030000e00100000100000000400d4200040dc24702000034feffff200000004c000000000000
+000000000000000000ffffffffffffffff8c0000005400520041004e00530050004f00520054005f004f0046005f00440041004e004700450052004f00550053005f0047004f004f004400530020003d002000390007000000070000000700000007000000070000000700000008000000070000000700000006000000080000000600000006000000070000000700000007000000080000000700000007000000080000000700
+000007000000060000000800000008000000080000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000e101000036020000ed0100000100000000400d4200040dc2
+3602000027feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000044020000e101000012030000ed0100000100000000400d420004
+0dc24702000027feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000005400520041004e00530050004f00520054005f004f0046005f00410042004e004f0052004d0041004c005f004c004f004100440020003d00200031003000000007000000070000000700000007000000070000000700000008000000070000000700000006000000080000000600000006000000070000000700000007
+0000000800000007000000090000000700000006000000060000000600000008000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000033020000ee010000360200
+00fa0100000100000000400d4200040dc2360200001afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000044020000ee010000b1
+020000fa0100000100000000400d4200040dc2470200001afeffff120000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f00560045004800490043004c00450020003d00200031003100070000000700000007000000070000000700000006000000070000000700000007000000030000000700000006000000070000000300000006000000030000000600000006000000
+0a0000001000000003000000080000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000e40138fc3c01aa012100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000
+0001000000250000000c000000080000805600000030000000e1010000260200001d030000d003000005000000101e6022101e003dd031003dd0316022101e6022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000000000
+00000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000e40138fc3c01aa013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005
+000000250000000c00000005000080560000002c000000ca0100000f02000034030000e703000004000000101e003dd031003dd0316022101e6022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b0840020158000000
+4c0000000210c0db0400000004000000000000000080f043004071c400009e430000d543bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000e1013bfc3c01aa01250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000
+805600000030000000de0100002302000082020000cd03000005000000de012302de01cd038202cd0382022302de012302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00000008000080560000003000000082020000230200008a020000cd03000005000000820223028202
+cd038a02cd038a02230282022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000008a0200002302000093020000cd030000050000008a0223028a02cd039302cd03930223028a022302250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c00000008000080560000003000000093020000230200009a020000cd03000005000000930223029302cd039a02cd039a02230293022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc00
+00000000250000000c00000005000000250000000c0000000800008056000000300000009a02000023020000a2020000cd030000050000009a0223029a02cd03a202cd03a20223029a022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000
+00a202000023020000aa020000cd03000005000000a2022302a202cd03aa02cd03aa022302a2022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000aa02000023020000b2020000cd03000005000000aa022302aa02cd03b202cd03b202
+2302aa022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000b202000023020000ba020000cd03000005000000b2022302b202cd03ba02cd03ba022302b2022302250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000ba02000023020000c2020000cd03000005000000ba022302ba02cd03c202cd03c2022302ba022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d3000000000025000000
+0c00000005000000250000000c000000080000805600000030000000c202000023020000c9020000cd03000005000000c2022302c202cd03c902cd03c9022302c2022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000c9020000230200
+00d1020000cd03000005000000c9022302c902cd03d102cd03d1022302c9022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c000000080000805600000030000000d102000023020000d8020000cd03000005000000d1022302d102cd03d802cd03d8022302d10223022500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c000000080000805600000030000000d802000023020000dd020000cd03000005000000d8022302d802cd03dd02cd03dd022302d8022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027
+000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000dd02000023020000e5020000cd03000005000000dd022302dd02cd03e502cd03e5022302dd022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000
+250000000c000000080000805600000030000000e502000023020000ed020000cd03000005000000e5022302e502cd03ed02cd03ed022302e5022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000ed02000023020000f6020000cd0300
+0005000000ed022302ed02cd03f602cd03f6022302ed022302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000f602000023020000ff020000cd03000005000000f6022302f602cd03ff02cd03ff022302f6022302250000000c0000000800
+0080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000ff0200002302000009030000cd03000005000000ff022302ff02cd030903cd0309032302ff022302250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005
+00000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000090300002302000011030000cd03000005000000090323020903cd031103cd031103230209032302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000
+080000805600000030000000110300002302000019030000cd03000005000000110323021103cd031903cd031903230211032302250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c00000008000080560000003000000019030000230200001a030000cd03000005000000190323
+021903cd031a03cd031a03230219032302250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000e1013bfc3c01aa013a0000000c00
+00000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000c70100000c02000031030000e403000004000000e01dd03ca031d03ca0313022e01d302225
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000eb010000dffdffff140300
+00d2fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000005802000029020000a0020000350200000100000000400d4200040dc25b020000dffdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600
+000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000000000000054000000a80000005702000036020000a2020000410200000100000000400d4200040dc25a020000d2fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005200650073007400720069006300740069006f006e0054007900700065000000070000000600000006000000030000000400000003000000060000000300000003000000060000000600000005000000050000
+0006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e101c0fd1d03c0fd00010101154001001000000004000000000000002100
+000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c
+000000050000805700000024000000c701000031020000310300005f02000002000000e01d8024a0318024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b0000005400000054000000e30100004c020000e6010000580200000100000000400d4200040dc2e6010000bcfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b00000054000000c0000000f40100004c0200006a020000580200000100000000400d4200040dc2f7010000bcfdffff130000004c000000000000000000000000000000ffffffffffffffff74000000570049004400540048005f004c004500530053005f005400480041004e0020003d00200031000000090000000300000007000000070000000700000006000000
+060000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000059020000e601000065020000010000000040
+0d4200040dc2e6010000affdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000f401000059020000810200006502000001000000
+00400d4200040dc2f7010000affdffff160000004c000000000000000000000000000000ffffffffffffffff78000000570049004400540048005f0047005200450041005400450052005f005400480041004e0020003d0020003200090000000300000007000000070000000700000006000000080000000700000007000000070000000700000007000000070000000600000007000000070000000700000007000000030000
+000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000066020000e6010000720200000100000000400d4200040dc2e6010000a2fdffff010000004c000000000000000000000000000000ffffffffff
+ffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000f40100006602000070020000720200000100000000400d4200040dc2f7010000a2fdffff140000004c000000000000000000000000000000ffffff
+ffffffffff740000004800450049004700540048005f004c004500530053005f005400480041004e0020003d002000330007000000070000000300000008000000070000000700000006000000060000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000073020000e60100007f0200000100000000400d4200040dc2e601000095fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff080000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f401000073020000870200007f0200000100000000400d4200040dc2f701000095fdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004800450049004700540048005f0047005200450041005400450052005f005400480041004e0020003d00
+20003400000007000000070000000300000008000000070000000700000006000000080000000700000007000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b0000005400000054000000e301000080020000e60100008c0200000100000000400d4200040dc2e601000088fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000c4000000f401000080020000720200008c0200000100000000400d4200040dc2f701000088fdffff140000004c000000000000000000000000000000ffffffffffffffff740000005700450049004700480054005f004c004500530053005f005400480041004e0020003d0020003500090000000700000003000000080000000700000007000000060000000600000007
+00000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e30100008d020000e6010000990200000100000000400d4200040d
+c2e60100007bfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f40100008d02000089020000990200000100000000400d4200
+040dc2f70100007bfdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000005700450049004700480054005f0047005200450041005400450052005f005400480041004e0020003d0020003600000009000000070000000300000008000000070000000700000006000000080000000700000007000000070000000700000007000000070000000600000007000000070000000700000007000000
+030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e30100009a020000e6010000a60200000100000000400d4200040dc2e60100006efdffff010000004c000000000000000000000000000000ffff
+ffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f40100009a02000086020000a60200000100000000400d4200040dc2f70100006efdffff170000004c000000000000000000000000000000
+ffffffffffffffff7c00000057004900540048004f00550054005f00570049004e005400450052005f00540059005200450020003d0020003700000009000000030000000700000007000000080000000700000007000000060000000900000003000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000003000000080000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000a7020000e6010000b30200000100000000400d4200040dc2e601000061fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000000300000008
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000f4010000a702000080020000b30200000100000000400d4200040dc2f701000061fdffff160000004c000000000000000000000000000000ffffffffffffffff7800000057004900540048004f00550054005f0053004e
+004f0057005f0043004800410049004e0020003d0020003800090000000300000007000000070000000800000007000000070000000600000007000000070000000800000009000000060000000700000007000000070000000300000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000b4020000e6010000c00200000100000000400d4200040dc2e601000054fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000f4010000b402000052020000c00200000100000000400d4200040dc2f701000054fdffff100000004c000000000000000000000000000000ffffffffffffffff6c00000057004900540048005f0054005200410049004c004500520020003d00200039000900000003000000070000000700000006000000070000000700
+00000700000003000000060000000700000007000000030000000600000003000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000c1020000e6010000cd0200000100000000400d4200040dc2e601000047fdffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000f4010000c10200005d020000cd0200000100000000400d4200040dc2f701000047fd
+ffff110000004c000000000000000000000000000000ffffffffffffffff7000000057004900540048005f004300410052004100560041004e0020003d00200031003000000009000000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000ce020000e6010000da0200000100000000400d4200040dc2e60100003afdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000f4010000ce020000c3020000da0200000100000000400d4200040dc2f70100003afdffff210000004c000000000000000000000000000000ffffffffffffffff9000000050004500520053004f004e0053005f0049004e005f00560045004800490043004c
+0045005f004c004500530053005f005400480041004e0020003d002000310031000000070000000700000007000000070000000800000007000000070000000600000003000000070000000600000007000000070000000700000003000000070000000600000007000000060000000600000007000000070000000700000006000000070000000700000007000000070000000300000006000000030000000600000006000000
+0a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000db020000e6010000e70200000100000000400d4200040dc2e60100002dfdffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000000300
+00000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000f4010000db020000c7020000e70200000100000000400d4200040dc2f70100002dfdffff210000004c000000000000000000000000000000ffffffffffffffff9000000050004500
+520053004f004e0053005f0049004e005f00560045004800490043004c0045005f004d004f00520045005f005400480041004e0020003d00200031003200000007000000070000000700000007000000080000000700000007000000060000000300000007000000060000000700000007000000070000000300000007000000060000000700000006000000090000000800000007000000070000000600000007000000070000
+00070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000e8020000e6010000f40200000100000000400d4200040dc2e601000020fdffff010000004c00000000
+0000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000f4010000e802000082020000f40200000100000000400d4200040dc2f701000020fdffff160000004c0000
+00000000000000000000000000ffffffffffffffff780000004500560045004e005f004e0055004d004200450052005f0050004c0041005400450020003d00200031003300070000000700000007000000070000000600000007000000070000000900000007000000070000000700000006000000070000000600000007000000070000000700000003000000060000000300000006000000060000000a000000100000000300
+0000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000f5020000e6010000010300000100000000400d4200040dc2e601000013fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000
+03000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000f4010000f50200007c020000010300000100000000400d4200040dc2f701000013fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004f00440044005f004e0055004d00
+4200450052005f0050004c0041005400450020003d0020003100340000000800000007000000070000000600000007000000070000000900000007000000070000000700000006000000070000000600000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000002030000e60100000e0300000100000000400d4200040dc2e601000006fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000f401000002030000790200000e0300000100000000400d4200040dc2f701000006fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004c0045004e004700540048005f004c004500530053005f005400480041004e0020003d00200031003500000006000000070000000700000008
+00000007000000070000000600000006000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e30100
+000f030000e60100001b0300000100000000400d4200040dc2e6010000f9fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000f4
+0100000f030000900200001b0300000100000000400d4200040dc2f7010000f9fcffff180000004c000000000000000000000000000000ffffffffffffffff7c0000004c0045004e004700540048005f0047005200450041005400450052005f005400480041004e0020003d0020003100360006000000070000000700000008000000070000000700000006000000080000000700000007000000070000000700000007000000
+07000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+00520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e30100001c030000e6010000280300000100000000400d4200040dc2e601
+0000ecfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000f40100001c0300008c020000280300000100000000400d4200040dc2
+f7010000ecfcffff180000004c000000000000000000000000000000ffffffffffffffff7c000000410058004c0045005f004c004f00410044005f004c004500530053005f005400480041004e0020003d0020003100370007000000070000000600000007000000060000000600000008000000070000000700000006000000060000000700000007000000070000000600000007000000070000000700000007000000030000
+00060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000029030000e6010000350300000100000000400d4200040dc2e6010000dffcffff010000004c000000000000000000000000000000ff
+ffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f0000000f401000029030000a3020000350300000100000000400d4200040dc2f7010000dffcffff1b0000004c0000000000000000000000000000
+00ffffffffffffffff84000000410058004c0045005f004c004f00410044005f0047005200450041005400450052005f005400480041004e0020003d0020003100380000000700000007000000060000000700000006000000060000000800000007000000070000000600000008000000070000000700000007000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300
+000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000036030000e6010000420300000100000000400d4200040dc2e6010000d2fcffff010000004c000000000000000000000000000000ffffffffffffffff
+5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005c010000f4010000360300000d030000420300000100000000400d4200040dc2f7010000d2fcffff2d0000004c000000000000000000000000000000ffffffffffff
+ffffa8000000560045004800490043004c0045005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e0044004100520044005f004500550052004f00330020003d002000310039000000070000000700000007000000030000000700000006000000070000000600000006000000070000000600000006000000030000000600000006000000070000000600000007
+0000000900000003000000070000000700000003000000080000000700000006000000070000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000080000000600000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000043030000e60100004f0300000100000000400d4200040dc2e6010000c5fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000f4010000430300001a0300004f0300000100000000400d4200040dc2f7010000c5fcffff2f0000004c000000000000000000000000000000ffffffffffffffffac000000560045004800490043004c0045005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e00
+44004100520044005f004500550052004f0033004400340020003d0020003200300000000700000007000000070000000300000007000000060000000700000006000000060000000700000006000000060000000300000006000000060000000700000006000000070000000900000003000000070000000700000003000000080000000700000006000000070000000700000007000000070000000700000007000000070000
+0007000000060000000700000007000000070000000800000006000000070000000600000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+0000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000050030000e60100005c03000001
+00000000400d4200040dc2e6010000b8fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005c010000f4010000500300000d0300005c0300
+000100000000400d4200040dc2f7010000b8fcffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000560045004800490043004c0045005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e0044004100520044005f004500550052004f00340020003d00200032003100000007000000070000000700000003000000070000000600
+00000700000006000000060000000700000006000000060000000300000006000000060000000700000006000000070000000900000003000000070000000700000003000000080000000700000006000000070000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000080000000600000003000000060000000300000006000000060000000a0000001000000003
+000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e30100005d030000e6010000690300000100000000400d4200040dc2e6010000abfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000
+0003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005c010000f40100005d0300000d030000690300000100000000400d4200040dc2f7010000abfcffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000560045004800490043004c0045
+005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e0044004100520044005f004500550052004f00350020003d00200032003200000007000000070000000700000003000000070000000600000007000000060000000600000007000000060000000600000003000000060000000600000007000000060000000700000009000000030000000700000007000000
+03000000080000000700000006000000070000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000080000000600000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b0000005400000054000000e30100006a030000e6010000760300000100000000400d4200040dc2e60100009efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000d8000000f40100006a03000083020000760300000100000000400d4200040dc2f70100009efcffff170000004c000000000000000000000000000000ffffffffffffffff7c00000057004900540048005f0050004500540052004f004c005f0045004e00470049004e00450020003d00200032003300000009000000030000000700000007000000060000000700000007000000070000
+000700000008000000060000000600000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000077030000e601000083
+0300000100000000400d4200040dc2e601000091fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f4010000770300007e0200
+00830300000100000000400d4200040dc2f701000091fcffff170000004c000000000000000000000000000000ffffffffffffffff7c00000057004900540048005f00440049004500530045004c005f0045004e00470049004e00450020003d0020003200340000000900000003000000070000000700000006000000070000000300000007000000070000000700000006000000060000000700000007000000080000000300
+0000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000084030000e6010000900300000100000000400d4200040dc2e601000084fcffff010000004c000000
+000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000f4010000840300006e020000900300000100000000400d4200040dc2f701000084fcffff140000004c00
+0000000000000000000000000000ffffffffffffffff7400000057004900540048005f004c00500047005f0045004e00470049004e00450020003d0020003200350009000000030000000700000007000000060000000600000007000000080000000600000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e301000091030000e60100009d0300000100000000400d4200040dc2e601000077fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000f401000091030000700200009d0300000100000000400d4200040dc2f701000077fcffff140000004c000000000000000000000000000000ffffffffffffffff740000005400480052004f005500470048005f00540052004100460046
+004900430020003d0020003200360007000000070000000700000008000000070000000800000007000000060000000700000007000000070000000600000006000000030000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b0000005400000054000000e30100009e030000e6010000aa0300000100000000400d4200040dc2e60100006afcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000d0000000f40100009e03000078020000aa0300000100000000400d4200040dc2f70100006afcffff160000004c000000000000000000000000000000ffffffffffffffff780000005200450053004900440045004e00540053005f00540052004100460046004900430020003d002000320037000700000007000000070000000300000007000000070000000700000007000000
+07000000060000000700000007000000070000000600000006000000030000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e3010000ab030000e6010000b70300000100
+000000400d4200040dc2e60100005dfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000f4010000ab030000ca020000b7030000
+0100000000400d4200040dc2f70100005dfcffff230000004c000000000000000000000000000000ffffffffffffffff9400000057004900540048005f00440045005300540049004e004100540049004f004e005f0049004e005f0047004900560045004e005f00410052004500410020003d00200032003800000009000000030000000700000007000000060000000700000007000000070000000700000003000000070000
+000700000007000000030000000800000007000000060000000300000007000000060000000800000003000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c00000000000000180000000c00000000000000190000000c000000ffffff004d000000e4000000fb010000000100000a0200000f010000fe010000f8feffff1000000010000000c600880000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c000000300000009c0000004800000010000000100000002800000010000000120000000100010000000000
+480000000000000000000000000000000000000000000000ffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d000000a0040000fb010000000100000a0200000f010000fe010000f8feffff10000000100000004600660000000000000000000000803f0000000000000000000080
+3f0000000000000000ffffff00000000006c00000034000000a0000000000400001000000010000000280000001000000010000000010020000300000000040000000000000000000000000000000000000000ff0000ff0000ff00000066cccc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc00ffffff0099ff
+ff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff00003399000099cc0099ffff0099ccff00ff996600ff996600ff996600ff99660099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600f0fbff00f0caa600ff99330099ccff0099ccff0099ccff0099ccff0099ccff0099
+ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600ff993300ff663300ff66330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff00ff663300ff663300ff663300ff663300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff00
+99ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff009999cc00003399000099cc0099ffff00ff996600ff996600ff99660099ccff00ff996600ff996600ff996600ff99660099ccff00ff996600ff996600ff9966009999cc00003399000099cc0099ffff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00f0caa600ff99330099ccff00ff996600f0fbff00ff9933009999cc00003399
+000099cc0099ffff00ff996600ff993300ff66330099ccff00ff996600ff996600ff993300ff66330099ccff00ff996600ff993300ff6633009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff0099ccff0099ccff00ff66330099ccff00ff66330099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff996600ff99660099ccff00ff99
+6600ff996600ff99660099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00ff99330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff993300ff66330099ccff00ff996600ff993300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff009999cc0099
+99cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc00003399000099cc0000339900003399000033990000339900003399000033990000339900003399000033990000339900003399000033990000339900003399000066cc000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c00000000000000250000000c00000002000000180000000c0000000000000021000000080000000b000000100000006000000060000000190000000c000000ffffff00160000000c00000000000000120000000c00000001000000250000000c00000004000000180000000c0000000000000054000000e4000000140200000501000087020000110100000100
+000000400d4200040d4217020000fd000000190000004c000000000000000000000000000000ffffffffffffffff800000005300650065002000740068006900730020006400690061006700720061006d00200066006f0072002000740068006500200000000700000006000000060000000300000003000000060000000300000004000000030000000600000003000000060000000600000003000000060000000900000003
+000000030000000600000003000000030000000300000006000000060000000300000054000000e400000014020000120100008d0200001e0100000100000000400d4200040d42170200000a010000190000004c000000000000000000000000000000ffffffffffffffff800000007300650063006f006e006400200073006500740020006f006600200053007500620020004300610075007300650073002e00000004000000
+060000000500000006000000060000000600000003000000040000000600000003000000030000000600000003000000030000000700000006000000060000000300000007000000060000000600000004000000060000000400000003000000220000000c000000ffffffff0a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff08000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c00000000000000180000000c00000000000000190000000c000000ffffff004d000000e40000009f010000fc030000ae0100000b040000a2010000fcfbffff1000000010000000c600880000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c000000300000009c000000480000001000000010000000280000001000000012
+0000000100010000000000480000000000000000000000000000000000000000000000ffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d000000a00400009f010000fc030000ae0100000b040000a2010000fcfbffff10000000100000004600660000000000000000000000803f
+00000000000000000000803f0000000000000000ffffff00000000006c00000034000000a0000000000400001000000010000000280000001000000010000000010020000300000000040000000000000000000000000000000000000000ff0000ff0000ff00000066cccc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc
+000099cc00ffffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff00003399000099cc0099ffff0099ccff00ff996600ff996600ff996600ff99660099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600f0fbff00f0caa600ff99330099ccff0099ccff0099cc
+ff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600ff993300ff663300ff66330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff00ff663300ff663300ff663300ff663300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099
+ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff009999cc00003399000099cc0099ffff00ff996600ff996600ff99660099ccff00ff996600ff996600ff996600ff99660099ccff00ff996600ff996600ff9966009999cc00003399000099cc0099ffff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00f0caa600ff99330099ccff00ff996600f0fbff00
+ff9933009999cc00003399000099cc0099ffff00ff996600ff993300ff66330099ccff00ff996600ff996600ff993300ff66330099ccff00ff996600ff993300ff6633009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff0099ccff0099ccff00ff66330099ccff00ff66330099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff9966
+00ff99660099ccff00ff996600ff996600ff99660099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00ff99330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff993300ff66330099ccff00ff996600ff993300ff66330099ccff0099ccff009999cc00003399000099
+cc0099ffff009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc00003399000099cc0000339900003399000033990000339900003399000033990000339900003399000033990000339900003399000033990000339900003399000066cc000a0000001000000003000000080000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fdffffff0800000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000250000000c00000002000000180000000c0000000000000021000000080000000b000000100000006000000060000000190000000c000000ffffff00160000000c00000000000000120000000c00000001000000250000000c00000004000000180000000c0000000000000054000000e4000000b8010000010400
+002b0200000d0400000100000000400d4200040d42bb010000f9030000190000004c000000000000000000000000000000ffffffffffffffff800000005300650065002000740068006900730020006400690061006700720061006d00200066006f007200200074006800650020000000070000000600000006000000030000000300000006000000030000000400000003000000060000000300000006000000060000000300
+0000060000000900000003000000030000000600000003000000030000000300000006000000060000000300000054000000b4000000b80100000e040000100200001a0400000100000000400d4200040d42bb01000006040000110000004c000000000000000000000000000000ffffffffffffffff700000005300750062002000410064007600690063006500200043006f006400650073002e000000070000000600000006
+0000000300000007000000060000000500000003000000050000000600000003000000070000000600000006000000060000000400000003000000220000000c000000ffffffff0a0000001000000003000000080000000c000000100000000000000000000000460000000c01000000010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000
+000000ff08400103b8000000ac0000000210c0db20000000004000008201bcfe8501befe8901c1fe8c01c3fe9001c6fe9301c9fe9701ccfe9a01cefe9e01d1fea101d4fea501d7fea801d9feac01dcfeaf01dffeb301e2feb601e4feba01e7febd01eafec101edfec401effec801f2fecb01f5fecf01f8fed201fafed601fdfed90100ffdd0103ffe00105ffe40108ffe7010bffeb010effee0110ff0001000100010001000100
+010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000000201001000000000000000000000000000
+00000000000000000000250000000c00000005000000250000000c000000050000805a000000e00000007d010000f6000000ed0100004e010000100000002000000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000f017c0142018a0146018701490185014d01820140019f0134019c0137019a013b0197013e0
+194013201a1013501af012901ac012c01a9012001b6012301b4012701b1012a01be011e01bb011101c9011501c6011801c3011c01c0011f01ce010301db010601d8010a01d5010d01d3010101e0010401ed00f801ea00fb01e800f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000
+5c01000050010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010308010000fc0000000210c0db300000000040000082018ffe850190fe890192fe8c0194fe900196fe930197fe970199fe9a019bfe9e019dfea1019ffea501a1fea801a2feac01a4feaf01a6feb301a8feb601a9feba01acfebd01adfec101affec401b1
+fec801b3fecb01b4fecf01b6fed201b8fed601bafed901bcfedd01befee001bffee401c1fee701c3feeb01c5feee01c6fef201c9fef501cafef901ccfefc01cefe0002d0fe0302d1fe0702d3fe0a02d5fe0e02d7fe1102d9fe1502dbfe1802dcfe1c02defe1f02e0fe2302e2fe2602e4fe000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000
+0000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000400100007d01000022010000250200007b0100001800000030000000020000000200000002
+000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000f0179017201880176018601790184017d0182017001910174019f0167019d016b019b016e0199016201a7016501a6016901a4016c01a2016001b0016301bf015701bc015a01bb015e01b9015101c7015
+501c5015801c4015c01c2015f01c0015301de014601dc014a01da014d01d9014101e7014401e5014801e3014b01e2014f01ef013201fe013601fc013901fa013d01f8013002070134020501370203013b0201013e020f0122021d0125021c0129021a012c02180120022601230224012250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000280000000c0000000500000046000000f8000000ec000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103a4000000980000000210c0db1c000000004000005a012dfc5d012cfc61012bfc64012afc680129fc6b0128fc6f0126fc720125fc760124fc790123fc7d0121fc800120fc84011ffc87011efc8b01
+1cfc8e011bfc92011afc950119fc990118fc9c0117fca00115fca30114fca70113fcaa0112fcae0110fcb1010ffcb5010efcb8010dfc000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000002010010
+0000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000c800000055010000d9030000b7010000fd0300000e0000001c00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000007015b03da015c03de015d03d1016e03d5016f03d8016003ec016203ef016303e
+3017403e6017503ea017703ed017803e1018903e4018a03e8018c03eb018d03ef018e03e2019f03e6019003f9019103fd019303f001a403f401a503f701a603fb01a803fe01a903f201ba03f501bb03f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000280000000c00000002000000280000
+000c000000030000004c000000640000000000000000000000310300003c0400000000000000000000320300003d0400002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e0000001400000000000000100000001400
+0000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 4\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_CA987A87_6DF8_4eba_8019_460D986BA9D6}{\*\bkmkend BKM_CA987A87_6DF8_4eba_8019_460D986BA9D6}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentSubCauseTables1}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw29946\pich37192\picwgoal16980\pichgoal21090\picscalex55\picscaley55\sspicalign0 010000006c000000f8ffffffffffffff5a030000290400000000000000000000f97400004891000020454d4600000100a0ed020063210000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100e2fb4f03e2fb4f03ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff510300002004000005000000100010001000e041f034e041f034100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d00000001400000006000000
+10004001300c4001000d6000000d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd2000000160000000600000010004001300c4001000d6000000d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7698961a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bcea32001c859e10237001401884b0000dc59e102188d17
+01ee3c0a1298961a2438007a01884b000037bb4000ee3c0a1270374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bd8951a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000bf0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000b9000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000240100000600000004000000c10000000f0000000100000000400d4200040dc206000000fcffffff240000004c000000000000000000000000000000ffffffffffffffff9400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400530075006200430061007500730065005400610062006c0065007300310006000000030000000600000006000000
+06000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000700000006000000060000000700000006000000060000000600000006000000050000000600000006000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000
+000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000c040000030410a4000c01c00000010000000c0bfc0ff010000001f00aaffde004500280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100
+000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000250000001c0000000301000061000000050000005002c00150021006301010063010c0015002c001250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001f00aaffde0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000e000000050000001a010000780000000400000050021006301010063010c0015002c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000e0410000a6c200005e4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+00001c00adffde004500250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000002200000019000000960000005e000000050000002200190022005e0096005e009600190022001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000fbf1e10000000000250000000c00000002000000250000000c00000008000080560000003000000096000000190000009b0000005e000000050000009600190096005e009b005e009b00190096001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080
+56000000300000009b00000019000000a10000005e000000050000009b0019009b005e00a1005e00a10019009b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c000000080000805600000030000000a100000019000000a60000005e00000005000000a1001900a1005e
+00a6005e00a6001900a1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000a600000019000000ac0000005e00000005000000a6001900a6005e00ac005e00ac001900a6001900250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000ac00000019000000b10000005e00000005000000ac001900ac005e00b1005e00b1001900ac001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000
+000000250000000c00000002000000250000000c000000080000805600000030000000b100000019000000b70000005e00000005000000b1001900b1005e00b7005e00b7001900b1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000
+b700000019000000bd0000005e00000005000000b7001900b7005e00bd005e00bd001900b7001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c000000080000805600000030000000bd00000019000000c40000005e00000005000000bd001900bd005e00c4005e00c40019
+00bd001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c000000080000805600000030000000c400000019000000ca0000005e00000005000000c4001900c4005e00ca005e00ca001900c4001900250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f2e5d00000000000250000000c00000002000000250000000c000000080000805600000030000000ca00000019000000ce0000005e00000005000000ca001900ca005e00ce005e00ce001900ca001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c
+00000002000000250000000c000000080000805600000030000000ce00000019000000d30000005e00000005000000ce001900ce005e00d3005e00d3001900ce001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c000000080000805600000030000000d300000019000000
+d80000005e00000005000000d3001900d3005e00d8005e00d8001900d3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c000000080000805600000030000000d800000019000000de0000005e00000005000000d8001900d8005e00de005e00de001900d8001900250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c000000080000805600000030000000de00000019000000e30000005e00000005000000de001900de005e00e3005e00e3001900de001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000e300000019000000ea0000005e00000005000000e3001900e3005e00ea005e00ea001900e3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c0000000200000025
+0000000c000000080000805600000030000000ea00000019000000f10000005e00000005000000ea001900ea005e00f1005e00f1001900ea001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000f100000019000000f70000005e000000
+05000000f1001900f1005e00f7005e00f7001900f1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000f700000019000000fc0000005e00000005000000f7001900f7005e00fc005e00fc001900f7001900250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000fc00000019000000000100005e00000005000000fc001900fc005e0000015e0000011900fc001900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c0000000700
+0080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001c00adffde0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000b000000020000001701000075000000040000002002e0050010e0050010900120029001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+e1021857e102245736019c58530b1457e10296961901452c0aa19c58530bb296190100000000a8921a248ce3c577738c172646e0c5779401300b0000300b188d1701452c0aa136009001944b0000c457e10237bb4000452c0aa1a8921a2437001401944b00009087a1263c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0ba8921a24f0374b0b000000001457e10200000000b058e102f5
+71ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000a0921a24dc57e10223e0c577a8921a243a6c2e7608654501a0921a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000026000000ecfffffff1000000dfffffff160000000c00000001000000120000000c00000001000000
+1b000000100000000000000000000000160000000c00000000000000540000009c0000006d0000001f000000b50000002b0000000100000000400d4200040dc267000000ecffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000000600000009000000060000000300000006000000030000
+00030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc02000000000001000005004100520049
+0041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76a8921a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bc4a2200a1c58e10237009201964b00003058e102188d1701452c0aa2a8921a2438007a01964b000037bb4000
+452c0aa270374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0bd8951a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126954b00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c000000030000
+00180000000c0000000000000054000000b4000000670000002c000000bc000000370000000100000000400d4200040dc261000000dfffffff110000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900630043006f006e00670065007300740069006f006e000000050000000400000006000000030000000300000003000000060000000700000006000000060000000600
+00000600000006000000030000000300000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001c00cdfffa00cdff0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c0000000500008057000000240000000b000000270000001701000055000000020000002002e0030010e003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000027000000420000002a0000004e0000000100000000400d4200040dc221000000c9ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b00000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100003800000042000000fc0000004e0000000100000000400d4200040dc232000000c9ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000049004e0043005200450041005300450044005f0056004f004c0055004d0045005f004f0046005f0054005200410046
+0046004900430020003d00200031000000030000000700000007000000070000000700000007000000070000000700000007000000060000000700000008000000060000000700000009000000070000000600000008000000060000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000
+000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000000c00fdfe250199002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012
+00000075000000370100000e01000005000000200150072001e0107013e0107013500720015007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000
+c0bfc0ff0b400040180000000c000000010000000c00fdfe250199003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffff
+ff5e0000004e01000025010000040000002001e0107013e0107013500720015007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000010410000
+80c30080924300001943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000090000ff25019900250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f00000072000000a70000000b01000005
+0000000f0072000f000b01a7000b01a70072000f007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a700000072000000af0000000b01000005000000a7007200a7000b01af000b01af007200a7007200250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000af00000072000000b70000000b01000005000000af007200af000b01b7000b01b7007200af007200250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000b700000072000000c00000000b01000005000000b7007200b7000b01c0000b01c0007200b7007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800
+00805600000030000000c000000072000000c80000000b01000005000000c0007200c0000b01c8000b01c8007200c0007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000c800000072000000d00000000b01000005000000c8007200c8
+000b01d0000b01d0007200c8007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000d000000072000000d70000000b01000005000000d0007200d0000b01d7000b01d7007200d0007200250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000d700000072000000e00000000b01000005000000d7007200d7000b01e0000b01e0007200d7007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d3
+0000000000250000000c00000004000000250000000c000000080000805600000030000000e000000072000000e80000000b01000005000000e0007200e0000b01e8000b01e8007200e0007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000
+0000e800000072000000ed0000000b01000005000000e8007200e8000b01ed000b01ed007200e8007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000ed00000072000000f20000000b01000005000000ed007200ed000b01f2000b01f2
+007200ed007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000f200000072000000f80000000b01000005000000f2007200f2000b01f8000b01f8007200f2007200250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000f800000072000000ff0000000b01000005000000f8007200f8000b01ff000b01ff007200f8007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000
+000c00000004000000250000000c000000080000805600000030000000ff00000072000000070100000b01000005000000ff007200ff000b0107010b0107017200ff007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000070100007200
+00000e0100000b010000050000000701720007010b010e010b010e01720007017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000000e01000072000000170100000b010000050000000e0172000e010b0117010b01170172000e01720025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000001701000072000000200100000b010000050000001701720017010b0120010b012001720017017200250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000002001000072000000280100000b010000050000002001720020010b0128010b012801720020017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c000000040000
+00250000000c00000008000080560000003000000028010000720000002f0100000b010000050000002801720028010b012f010b012f01720028017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000002f01000072000000340100000b01
+0000050000002f0172002f010b0134010b01340172002f017200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000090000ff25
+0199003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffff5b0000004b0100002201000004000000f000b0104013b010
+40132007f0002007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001300
+000093ffffff2501000086ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007e00000078000000c6000000840000000100000000400d4200040dc27800000093ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb
+000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0003000000180000000c00000000000000540000007c0000008c00000085000000b7000000900000000100000000400d4200040dc28600000086ffffff080000004c000000000000000000000000000000ffffffffffffffff5c0000004100630063006900640065006e00740007000000060000000600000003000000060000000600000006000000030000000a00000010000000faffffff0b0000000c000000100000000000
+000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000090074ff2e0174ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010
+00000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff800000004b010000ae00000002000000
+f000700940137009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400
+00009b00000017000000a70000000100000000400d4200040dc20e00000070ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000
+250000009b000000c3000000a70000000100000000400d4200040dc21f00000070ffffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004d0055004c00540049005f00560045004800490043004c0045005f004100430043004900440045004e00540020003d00200031000900000007000000060000000700000003000000060000000700000007000000070000000300000007000000060000
+0007000000060000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+0000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000a800000017000000b400000001
+00000000400d4200040dc20e00000063ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000025000000a800000094000000b40000
+000100000000400d4200040dc21f00000063ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f004100430043004900440045004e00540020003d00200032000700000007000000070000000700000007000000060000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a0000001000
+0000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000b500000017000000c10000000100000000400d4200040dc20e00000056ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000
+10000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f400000025000000b5000000d2000000c10000000100000000400d4200040dc21f00000056ffffff1c0000004c000000000000000000000000000000ffffffffffffffff8400000041004300430049004400
+45004e0054005f0049004e0056004f004c00560049004e0047005f004c004f0052005200590020003d0020003300070000000700000007000000030000000700000007000000070000000700000006000000030000000700000007000000080000000600000007000000030000000700000008000000060000000600000008000000070000000700000007000000030000000600000003000000060000000a00000010000000fa
+ffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000c200000017000000ce0000000100000000400d4200040dc20e00000049ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000
+00faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e800000025000000c2000000c4000000ce0000000100000000400d4200040dc21f00000049ffffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004100430043004900440045004e
+0054005f0049004e0056004f004c00560049004e0047005f0042005500530020003d002000340007000000070000000700000003000000070000000700000007000000070000000600000003000000070000000700000008000000060000000700000003000000070000000800000006000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000cf00000017000000db0000000100000000400d4200040dc20e0000003cffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000004801000025000000cf00000030010000db0000000100000000400d4200040dc21f0000003cffffff2a0000004c000000000000000000000000000000ffffffffffffffffa00000004100430043004900440045004e0054005f0049004e0056004f004c00
+560049004e0047005f00480041005a004100520044004f00550053005f004d004100540045005200490041004c00530020003d0020003500070000000700000007000000030000000700000007000000070000000700000006000000030000000700000007000000080000000600000007000000030000000700000008000000060000000700000007000000060000000700000007000000070000000800000007000000070000
+0006000000090000000700000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+0000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000dc00000017000000e800000001
+00000000400d4200040dc20e0000002fffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000025000000dc000000dd000000e80000
+000100000000400d4200040dc21f0000002fffffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004100430043004900440045004e0054005f004f004e005f004f00500050004f0053004900540045005f004c0041004e00450020003d00200036000000070000000700000007000000030000000700000007000000070000000700000006000000080000000700000006000000080000000700
+00000700000008000000070000000300000007000000070000000600000006000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000e900000017000000
+f50000000100000000400d4200040dc20e00000022ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d000000025000000e9000000b000
+0000f50000000100000000400d4200040dc21f00000022ffffff160000004c000000000000000000000000000000ffffffffffffffff7800000055004e0053004500430055005200450044005f004100430043004900440045004e00540020003d00200037000700000007000000070000000700000007000000070000000700000007000000070000000600000007000000070000000700000003000000070000000700000007
+00000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000230088feee0065002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000000000
+0000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000290000001e0100001701000083010000050000009002e01190023018701130187011e0119002e011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b084000
+02380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000230088feee0065003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bf
+c000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000012000000070100002e0100009a0100000400000090023018701130187011e0119002e011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000046
+0000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000000420080bac300006e430000ca42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000020008bfeee006500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000
+250000000c00000004000000250000000c000000080000805600000030000000260000001b010000a2000000800100000500000026001b0126008001a2008001a2001b0126001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a20000
+001b010000a80000008001000005000000a2001b01a2008001a8008001a8001b01a2001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000a80000001b010000ae0000008001000005000000a8001b01a8008001ae008001ae001b01a800
+1b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ae0000001b010000b40000008001000005000000ae001b01ae008001b4008001b4001b01ae001b01250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000b40000001b010000b90000008001000005000000b4001b01b4008001b9008001b9001b01b4001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c000000
+04000000250000000c000000080000805600000030000000b90000001b010000c00000008001000005000000b9001b01b9008001c0008001c0001b01b9001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000c00000001b010000c60000
+008001000005000000c0001b01c0008001c6008001c6001b01c0001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000c60000001b010000cc0000008001000005000000c6001b01c6008001cc008001cc001b01c6001b01250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000cc0000001b010000d20000008001000005000000cc001b01cc008001d2008001d2001b01cc001b01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000d20000001b010000d70000008001000005000000d2001b01d2008001d7008001d7001b01d2001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c0000000400000025000000
+0c000000080000805600000030000000d70000001b010000dd0000008001000005000000d7001b01d7008001dd008001dd001b01d7001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000dd0000001b010000e200000080010000050000
+00dd001b01dd008001e2008001e2001b01dd001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e20000001b010000e60000008001000005000000e2001b01e2008001e6008001e6001b01e2001b01250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e60000001b010000ec0000008001000005000000e6001b01e6008001ec008001ec001b01e6001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ec0000001b010000f20000008001000005000000ec001b01ec008001f2008001f2001b01ec001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080
+5600000030000000f20000001b010000f90000008001000005000000f2001b01f2008001f9008001f9001b01f2001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f90000001b010000000100008001000005000000f9001b01f90080
+010001800100011b01f9001b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000000100001b01000007010000800100000500000000011b01000180010701800107011b0100011b01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000070100001b0100000d010000800100000500000007011b01070180010d0180010d011b0107011b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000
+000000250000000c00000004000000250000000c0000000800008056000000300000000d0100001b0100001301000080010000050000000d011b010d0180011301800113011b010d011b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000
+130100001b01000014010000800100000500000013011b01130180011401800114011b0113011b01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000
+000c0000000100000020008bfeee0065003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000f000000040100002b0100009701
+00000400000060020018401100184011b0116002b011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+000000001e000000180000002a000000eafeffff05010000ddfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007900000021010000c10000002d0100000100000000400d4200040dc273000000eafeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d0065
+0072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000003000000180000000c000000000000005400000084000000810000002e010000b9000000390100000100000000400d4200040dc27b000000ddfeffff090000004c000000000000000000000000000000ffffffffffffffff6000000052006f006100640057006f0072006b00730000000700000006000000060000000600000009000000060000000400000006000000060000000a000000
+10000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002000cbfe0e01cbfe00010101154001001000000004000000000000002100000008000000620000000c0000
+0001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400
+00000f000000290100002b01000057010000020000006002001440110014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000540000002b000000440100002e000000500100000100000000400d4200040dc225000000c7feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000008b00000054000000c00000003c00000044010000bb000000500100000100000000400d4200040dc236000000c7feffff130000004c000000000000000000000000000000ffffffffffffffff740000004d0041004a004f0052005f0052004f004100440057004f0052004b00530020003d0020003100000009000000070000000500000008000000070000000600000007000000080000000700000007
+0000000900000008000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b000000510100002e0000005d0100000100000000400d4200040dc225000000bafeff
+ff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000003c00000051010000c60000005d0100000100000000400d4200040dc236000000ba
+feffff150000004c000000000000000000000000000000ffffffffffffffff7800000052004f00410044005f004d00410052004b0049004e0047005f0057004f0052004b0020003d002000320000000700000008000000070000000700000006000000090000000700000007000000070000000300000007000000080000000600000009000000080000000700000007000000030000000600000003000000060000000a000000
+10000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b0000005e0100002e0000006a0100000100000000400d4200040dc225000000adfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00
+000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c0100003c0000005e010000100100006a0100000100000000400d4200040dc236000000adfeffff200000004c000000000000000000000000000000ffffffffffffffff8c00000053004c004f005700
+5f004d004f00560049004e0047005f0052004f00410044005f004d00410049004e00540045004e0041004e004300450020003d0020003300070000000600000008000000090000000600000009000000080000000700000003000000070000000800000006000000070000000800000007000000070000000600000009000000070000000300000007000000070000000700000007000000070000000700000007000000070000
+00030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000360005feb60072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000
+00000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003c00000094010000f20000000602000005000000c0034019c0036020200f6020200f4019c0034019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000360005feb60072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc00000000000
+0000000000000000250000000c00000004000000250000000c00000005000080560000002c000000250000007d010000090100001d02000004000000c0036020200f6020200f4019c0034019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000046000000840000
+0078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000004c420000fcc3000036430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000330008feb6007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00
+000004000000250000000c00000008000080560000003000000039000000910100009800000003020000050000003900910139000302980003029800910139009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000098000000910100009d
+000000030200000500000098009101980003029d0003029d00910198009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009d00000091010000a100000003020000050000009d0091019d000302a1000302a10091019d00910125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a100000091010000a60000000302000005000000a1009101a1000302a6000302a6009101a1009101250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000a600000091010000aa0000000302000005000000a6009101a6000302aa000302aa009101a6009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c000000040000002500
+00000c000000080000805600000030000000aa00000091010000af0000000302000005000000aa009101aa000302af000302af009101aa009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000af00000091010000b30000000302000005
+000000af009101af000302b3000302b3009101af009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000b300000091010000b80000000302000005000000b3009101b3000302b8000302b8009101b3009101250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b800000091010000bc0000000302000005000000b8009101b8000302bc000302bc009101b8009101250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000bc00000091010000c10000000302000005000000bc009101bc000302c1000302c1009101bc009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800
+00805600000030000000c100000091010000c50000000302000005000000c1009101c1000302c5000302c5009101c1009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c500000091010000c90000000302000005000000c5009101c5
+000302c9000302c9009101c5009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c900000091010000cc0000000302000005000000c9009101c9000302cc000302cc009101c9009101250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000cc00000091010000d10000000302000005000000cc009101cc000302d1000302d1009101cc009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca
+0000000000250000000c00000004000000250000000c000000080000805600000030000000d100000091010000d50000000302000005000000d1009101d1000302d5000302d5009101d1009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000
+0000d500000091010000da0000000302000005000000d5009101d5000302da000302da009101d5009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000da00000091010000e00000000302000005000000da009101da000302e0000302e0
+009101da009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000e000000091010000e50000000302000005000000e0009101e0000302e5000302e5009101e0009101250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000e500000091010000ea0000000302000005000000e5009101e5000302ea000302ea009101e5009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000
+000c00000004000000250000000c000000080000805600000030000000ea00000091010000ee0000000302000005000000ea009101ea000302ee000302ee009101ea009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000ee0000009101
+0000ef0000000302000005000000ee009101ee000302ef000302ef009101ee009101250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001
+000000330008feb60072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000220000007a010000060100001a02000004000000
+90033020f00e3020f00e101990031019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00
+0000180000003d00000074feffffe000000067feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007000000097010000b8000000a30100000100000000400d4200040dc26a00000074feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d0065007200610074
+0069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000003000000180000000c00000000000000540000009000000073000000a4010000b5000000af0100000100000000400d4200040dc26d00000067feffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004e006100720072006f0077004c0061006e00650073000000070000000600000004000000040000000600000009000000060000000600000006000000060000000600
+00000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000330055fee90055fe0001010115400100100000000400000000000000210000000800000062
+0000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+5700000024000000220000009f01000006010000cd010000020000009003601bf00e601b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000540000003e000000ba01000041000000c60100000100000000400d4200040dc23800000051feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000a00000004f000000ba010000a9000000c60100000100000000400d4200040dc24900000051feffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000043004f004e0054005200410046004c004f00570020003d002000310007000000080000000700000007000000070000000700000006000000060000000800000009000000030000
+000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003e000000c701000041000000d30100000100000000400d4200040dc23800000044feffff010000004c000000000000000000000000000000ffffffffff
+ffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000004f000000c7010000eb000000d30100000100000000400d4200040dc24900000044feffff180000004c000000000000000000000000000000ffffff
+ffffffffff7c00000048004100520044005f00530048004f0055004c004400450052005f0043004c004f0053004500440020003d00200032000700000007000000070000000700000006000000070000000700000008000000070000000600000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003e000000d401000041000000e00100000100000000400d4200040dc23800000037feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff
+0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c40000004f000000d4010000c9000000e00100000100000000400d4200040dc24900000037feffff140000004c000000000000000000000000000000ffffffffffffffff7400000053004c00490050005f004c0041004e004500
+5f0043004c004f0053004500440020003d002000330007000000060000000300000007000000060000000600000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000540000003e000000e101000041000000ed0100000100000000400d4200040dc2380000002afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b00000054000000d80000004f000000e1010000e4000000ed0100000100000000400d4200040dc2490000002afeffff170000004c000000000000000000000000000000ffffffffffffffff7c00000043005200410057004c00450052005f004c0041004e0045005f0043004c004f0053004500440020003d00200034000000070000000700000007000000090000000600000007
+00000007000000060000000600000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002d0063fdbf008c002100000008000000620000000c00000001000000
+110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000330000001c020000f2000000a8020000050000003003c0213003802a200f802a200fc0213003c021250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002d0063fdbf008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001c0000000502000009010000bf020000040000003003802a200f802a200fc0213003c021250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000002842008026c400003f4300000c43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000
+010000002a0066fdbf008c00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000300000001902000094000000a502000005000000300019023000a5029400a5029400190230001902250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000940000001902000098000000a502000005000000940019029400a5029800a5029800190294001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800
+0080560000003000000098000000190200009d000000a502000005000000980019029800a5029d00a5029d00190298001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009d00000019020000a2000000a5020000050000009d0019029d
+00a502a200a502a20019029d001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000a200000019020000a6000000a502000005000000a2001902a200a502a600a502a6001902a2001902250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a600000019020000ab000000a502000005000000a6001902a600a502ab00a502ab001902a6001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead8
+0000000000250000000c00000004000000250000000c000000080000805600000030000000ab00000019020000b0000000a502000005000000ab001902ab00a502b000a502b0001902ab001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000
+0000b000000019020000b5000000a502000005000000b0001902b000a502b500a502b5001902b0001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b500000019020000ba000000a502000005000000b5001902b500a502ba00a502ba
+001902b5001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000ba00000019020000be000000a502000005000000ba001902ba00a502be00a502be001902ba001902250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000be00000019020000c3000000a502000005000000be001902be00a502c300a502c3001902be001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000
+000c00000004000000250000000c000000080000805600000030000000c300000019020000c7000000a502000005000000c3001902c300a502c700a502c7001902c3001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c70000001902
+0000cb000000a502000005000000c7001902c700a502cb00a502cb001902c7001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000cb00000019020000cf000000a502000005000000cb001902cb00a502cf00a502cf001902cb00190225
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000cf00000019020000d4000000a502000005000000cf001902cf00a502d400a502d4001902cf001902250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000d400000019020000d9000000a502000005000000d4001902d400a502d900a502d9001902d4001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c000000040000
+00250000000c000000080000805600000030000000d900000019020000df000000a502000005000000d9001902d900a502df00a502df001902d9001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000df00000019020000e5000000a502
+000005000000df001902df00a502e500a502e5001902df001902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000e500000019020000ea000000a502000005000000e5001902e500a502ea00a502ea001902e5001902250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000ea00000019020000ee000000a502000005000000ea001902ea00a502ee00a502ee001902ea001902250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000ee00000019020000ef000000a502000005000000ee001902ee00a502ef00a502ef001902ee001902250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0
+db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002a0066fdbf008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000
+0000250000000c00000004000000250000000c00000005000080560000002c000000190000000202000006010000bc020000040000000003502af00e502af00e902100039021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff46
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000006000000
+0b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000034000000ecfdffffe0000000dffdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006c0000001f020000b40000002b0200000100000000400d4200040dc2660000
+00ecfdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000
+0000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c000000710000002c020000af000000370200000100000000400d4200040dc26b000000dffdffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000049006d007000610073007300
+6900620069006c006900740079000000030000000900000006000000060000000600000006000000030000000600000003000000030000000300000003000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0840010324000000180000000210c0db02000000004000002a00cdfde900cdfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800
+000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000019000000270200000601000055020000020000000003e023f00ee023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500000042020000380000004e0200000100000000400d4200040dc22f000000c9fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000
+000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009400000046000000420200008d0000004e0200000100000000400d4200040dc240000000c9fdffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000046004c004f
+004f00440049004e00470020003d00200031000600000006000000080000000800000007000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000004f0200
+00380000005b0200000100000000400d4200040dc22f000000bcfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000460000004f
+020000e20000005b0200000100000000400d4200040dc240000000bcfdffff180000004c000000000000000000000000000000ffffffffffffffff7c000000440041004e004700450052005f004f0046005f004100560041004c0041004e00430048004500530020003d00200032000700000007000000070000000800000007000000070000000600000008000000060000000600000007000000070000000700000006000000
+070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000005c02000038000000680200000100000000400d4200040dc22f000000affd
+ffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052
+0300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000460000005c020000eb000000680200000100000000400d4200040dc240000000
+affdffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000042004c0041005300540049004e0047005f004f0046005f004100560041004c0041004e00430048004500530020003d002000330007000000060000000700000007000000070000000300000007000000080000000600000008000000060000000600000007000000070000000700000006000000070000000700000007000000070000
+000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000350000006902000038000000750200000100000000400d4200040dc22f000000a2fdffff010000004c0000000000000000
+00000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000460000006902000091000000750200000100000000400d4200040dc240000000a2fdffff0d0000004c000000000000
+000000000000000000ffffffffffffffff680000004c0041004e00440053004c0049005000530020003d00200034000000060000000700000007000000070000000700000006000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b0000005400000054000000350000007602000038000000820200000100000000400d4200040dc22f00000095fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b00000054000000cc0000004600000076020000c6000000820200000100000000400d4200040dc24000000095fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004300480045004d004900430041004c005f005300500049004c004c0041004700450020003d002000350000000700000007000000070000000900000003000000070000000700
+000006000000060000000700000007000000030000000600000006000000070000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003500000083020000380000008f020000
+0100000000400d4200040dc22f00000088fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000004600000083020000b70000008f02
+00000100000000400d4200040dc24000000088fdffff120000004c000000000000000000000000000000ffffffffffffffff70000000570049004e005400450052005f0043004c004f00530055005200450020003d00200036000900000003000000070000000700000007000000070000000600000007000000060000000800000007000000070000000700000007000000030000000600000003000000060000000a00000010
+000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003a0068fcb000c0002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000
+250000000c00000008000080560000003000000040000000e3020000f0000000a3030000050000000004302e0004303a000f303a000f302e0004302e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000000080
+3f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003a0068fcb000c0003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000040000002500
+00000c00000005000080560000002c00000029000000cc02000007010000ba030000040000000004303a000f303a000f302e0004302e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c00000002
+10c0db04000000040000000000000000005c42004065c40000304300004043bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000037006bfcb000c000250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000
+300000003d000000e002000099000000a0030000050000003d00e0023d00a0039900a0039900e0023d00e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000099000000e00200009d000000a0030000050000009900e0029900a0039d00a0
+039d00e0029900e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009d000000e0020000a2000000a0030000050000009d00e0029d00a003a200a003a200e0029d00e002250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a2000000e0020000a7000000a003000005000000a200e002a200a003a700a003a700e002a200e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb000000000025
+0000000c00000004000000250000000c000000080000805600000030000000a7000000e0020000ad000000a003000005000000a700e002a700a003ad00a003ad00e002a700e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000ad000000
+e0020000b1000000a003000005000000ad00e002ad00a003b100a003b100e002ad00e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000b1000000e0020000b5000000a003000005000000b100e002b100a003b500a003b500e002b100e0
+02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000b5000000e0020000bb000000a003000005000000b500e002b500a003bb00a003bb00e002b500e002250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000bb000000e0020000c0000000a003000005000000bb00e002bb00a003c000a003c000e002bb00e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004
+000000250000000c000000080000805600000030000000c0000000e0020000c5000000a003000005000000c000e002c000a003c500a003c500e002c000e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c5000000e0020000c8000000
+a003000005000000c500e002c500a003c800a003c800e002c500e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c8000000e0020000cb000000a003000005000000c800e002c800a003cb00a003cb00e002c800e002250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000cb000000e0020000d0000000a003000005000000cb00e002cb00a003d000a003d000e002cb00e002250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d0000000e0020000d4000000a003000005000000d000e002d000a003d400a003d400e002d000e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c
+000000080000805600000030000000d4000000e0020000d9000000a003000005000000d400e002d400a003d900a003d900e002d400e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000d9000000e0020000de000000a003000005000000
+d900e002d900a003de00a003de00e002d900e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000de000000e0020000e4000000a003000005000000de00e002de00a003e400a003e400e002de00e002250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000e4000000e0020000e8000000a003000005000000e400e002e400a003e800a003e800e002e400e002250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000e8000000e0020000ec000000a003000005000000e800e002e800a003ec00a003ec00e002e800e002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056
+00000030000000ec000000e0020000ed000000a003000005000000ec00e002ec00a003ed00a003ed00e002ec00e002250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff
+0b400040180000000c0000000100000037006bfcb000c0003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000026000000c90200
+0004010000b703000004000000d003003ad00e003ad00e002ed003002e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c000000000000001e000000180000004100000025fdffffde00000018fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000071000000e6020000b9000000f20200000100000000400d4200040dc26b00000025fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab006500
+6e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009400000075000000f3020000b6000000fe0200000100000000400d4200040dc26f00000018fdffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000053006c0069007000700065007200790052006f00610064000700000003000000030000000600000006000000060000000400000005
+000000070000000600000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000370006fde70006fd000101011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000
+0004000000250000000c00000005000080570000002400000026000000ee020000040100001c03000002000000d0035030d00e5030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000420000000903000045000000150300000100000000400d4200040dc23c00000002fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000005300000009030000e9000000150300000100000000400d4200040dc24d00000002fdffff170000004c000000000000000000000000000000ffffffffffffffff7c000000480045004100560059005f00460052004f00530054005f004f004e005f0052004f004100440020003d00200031000000070000000700
+00000700000007000000070000000600000006000000070000000800000007000000070000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000054000000420000001603000045000000220300000100000000400d4200040dc23c000000f5fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000dc2030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000ac0000005300000016030000b7000000220300000100000000400d4200040dc24d000000f5fcffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004600550045004c005f004f004e005f0052004f004100440020003d00200032000600000007000000070000000600000006000000080000000700000006000000070000000800000007000000070000000300000006
+00000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004200000023030000450000002f0300000100000000400d4200040dc23c000000e8fcffff010000004c000000000000000000000000000000ffffffffffffff
+ff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000005300000023030000b40000002f0300000100000000400d4200040dc24d000000e8fcffff0f0000004c000000000000000000000000000000ffffffffff
+ffffff6c0000004d00550044005f004f004e005f0052004f004100440020003d002000330000000900000007000000070000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000540000004200000030030000450000003c0300000100000000400d4200040dc23c000000dbfcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000dc00030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b00000054000000ac0000005300000030030000bc0000003c0300000100000000400d4200040dc24d000000dbfcffff100000004c000000000000000000000000000000ffffffffffffffff6c00000053004e004f0057005f004f004e005f0052004f004100440020003d002000340007000000070000000800000009000000060000000800000007000000060000000700000008000000
+0700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000420000003d03000045000000490300000100000000400d4200040dc23c000000cefcffff010000004c000000000000000000
+000000000000ffffffffffffffff5000000020000080030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000530000003d030000ae000000490300000100000000400d4200040dc24d000000cefcffff0f0000004c00000000000000
+0000000000000000ffffffffffffffff6c0000004900430045005f004f004e005f0052004f004100440020003d0020003500a5020300000007000000070000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000420000004a03000045000000560300000100000000400d4200040dc23c000000c1fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000a502030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000530000004a030000d6000000560300000100000000400d4200040dc24d000000c1fcffff150000004c000000000000000000000000000000ffffffffffffffff7800000042004c00410043004b005f004900430045005f004f004e005f0052004f004100440020003d00200036000000070000000600000007000000070000
+0007000000060000000300000007000000070000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004200000057
+03000045000000630300000100000000400d4200040dc23c000000b4fcffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000ff030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000530000
+0057030000ae000000630300000100000000400d4200040dc24d000000b4fcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004f0049004c005f004f004e005f0052004f004100440020003d002000370000000800000003000000060000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000faff
+ffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000420000006403000045000000700300000100000000400d4200040dc23c000000a7fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000
+faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000005300000064030000c7000000700300000100000000400d4200040dc24d000000a7fcffff130000004c000000000000000000000000000000ffffffffffffffff740000004c004f004f00530045005f004300
+480049005000500049004e004700530020003d00200038007300060000000800000008000000070000000700000006000000070000000700000003000000070000000700000003000000070000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000540000004200000071030000450000007d0300000100000000400d4200040dc23c0000009afcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b00000054000000cc0000005300000071030000d10000007d0300000100000000400d4200040dc24d0000009afcffff150000004c000000000000000000000000000000ffffffffffffffff7800000049004e005300540041004e0054005f0042004c00410043004b005f0049004300450020003d00200039000d4203000000070000000700000007000000070000000700000007
+00000006000000070000000600000007000000070000000700000006000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000420000007e030000450000008a0300
+000100000000400d4200040dc23c0000008dfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000530000007e030000be0000008a
+0300000100000000400d4200040dc24d0000008dfcffff110000004c000000000000000000000000000000ffffffffffffffff7000000052004f004100440053005f00530041004c0054004500440020003d0020003100300000fd07000000080000000700000007000000070000000600000007000000070000000600000007000000070000000700000003000000060000000300000006000000060000000a00000010000000
+faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004e00f9fb730045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000
+000c00000008000080560000003000000054000000cd030000c700000012040000050000004005d03c40052041700c2041700cd03c4005d03c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100
+000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004e00f9fb730045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c
+00000005000080560000002c0000003d000000b6030000de000000290400000400000040052041700c2041700cd03c4005d03c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db
+04000000040000000000000000009642008080c40000e64200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000004b00fcfb73004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000
+0051000000ca0300008c0000000f040000050000005100ca0351000f048c000f048c00ca035100ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000008c000000ca0300008d0000000f040000050000008c00ca038c000f048d000f048d00
+ca038c00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000008d000000ca0300008f0000000f040000050000008d00ca038d000f048f000f048f00ca038d00ca03250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000008f000000ca030000900000000f040000050000008f00ca038f000f0490000f049000ca038f00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df000000000025000000
+0c00000004000000250000000c00000008000080560000003000000090000000ca030000910000000f040000050000009000ca0390000f0491000f049100ca039000ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000091000000ca0300
+00930000000f040000050000009100ca0391000f0493000f049300ca039100ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000093000000ca030000950000000f040000050000009300ca0393000f0495000f049500ca039300ca032500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000095000000ca030000960000000f040000050000009500ca0395000f0496000f049600ca039500ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000096000000ca030000970000000f040000050000009600ca0396000f0497000f049700ca039600ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000
+250000000c00000008000080560000003000000097000000ca030000980000000f040000050000009700ca0397000f0498000f049800ca039700ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000098000000ca030000990000000f0400
+00050000009800ca0398000f0499000f049900ca039800ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000099000000ca0300009a0000000f040000050000009900ca0399000f049a000f049a00ca039900ca03250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000009a000000ca0300009b0000000f040000050000009a00ca039a000f049b000f049b00ca039a00ca03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000ca0300009c0000000f040000050000009b00ca039b000f049c000f049c00ca039b00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000
+0800008056000000300000009c000000ca0300009d0000000f040000050000009c00ca039c000f049d000f049d00ca039c00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000009d000000ca0300009e0000000f040000050000009d00ca
+039d000f049e000f049e00ca039d00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000009e000000ca0300009f0000000f040000050000009e00ca039e000f049f000f049f00ca039e00ca03250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c0000000800008056000000300000009f000000ca030000a00000000f040000050000009f00ca039f000f04a0000f04a000ca039f00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5
+e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a0000000ca030000a10000000f04000005000000a000ca03a0000f04a1000f04a100ca03a000ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000
+30000000a1000000ca030000a20000000f04000005000000a100ca03a1000f04a2000f04a200ca03a100ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000a2000000ca030000a30000000f04000005000000a200ca03a2000f04a3000f
+04a300ca03a200ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000a3000000ca030000a40000000f04000005000000a300ca03a3000f04a4000f04a400ca03a300ca03250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000a4000000ca030000a50000000f04000005000000a400ca03a4000f04a5000f04a500ca03a400ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d2000000000025
+0000000c00000004000000250000000c000000080000805600000030000000a5000000ca030000a70000000f04000005000000a500ca03a5000f04a7000f04a700ca03a500ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000a7000000
+ca030000a80000000f04000005000000a700ca03a7000f04a8000f04a800ca03a700ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000a8000000ca030000a90000000f04000005000000a800ca03a8000f04a9000f04a900ca03a800ca
+03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000a9000000ca030000aa0000000f04000005000000a900ca03a9000f04aa000f04aa00ca03a900ca03250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000aa000000ca030000ab0000000f04000005000000aa00ca03aa000f04ab000f04ab00ca03aa00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004
+000000250000000c000000080000805600000030000000ab000000ca030000ac0000000f04000005000000ab00ca03ab000f04ac000f04ac00ca03ab00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ac000000ca030000ad000000
+0f04000005000000ac00ca03ac000f04ad000f04ad00ca03ac00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ad000000ca030000ae0000000f04000005000000ad00ca03ad000f04ae000f04ae00ca03ad00ca03250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ae000000ca030000b00000000f04000005000000ae00ca03ae000f04b0000f04b000ca03ae00ca03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000b0000000ca030000b10000000f04000005000000b000ca03b0000f04b1000f04b100ca03b000ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c
+000000080000805600000030000000b1000000ca030000b30000000f04000005000000b100ca03b1000f04b3000f04b300ca03b100ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000b3000000ca030000b40000000f04000005000000
+b300ca03b3000f04b4000f04b400ca03b300ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000b4000000ca030000b50000000f04000005000000b400ca03b4000f04b5000f04b500ca03b400ca03250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000b5000000ca030000b70000000f04000005000000b500ca03b5000f04b7000f04b700ca03b500ca03250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b7000000ca030000b80000000f04000005000000b700ca03b7000f04b8000f04b800ca03b700ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056
+00000030000000b8000000ca030000b90000000f04000005000000b800ca03b8000f04b9000f04b900ca03b800ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000b9000000ca030000bb0000000f04000005000000b900ca03b9000f04
+bb000f04bb00ca03b900ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000bb000000ca030000bc0000000f04000005000000bb00ca03bb000f04bc000f04bc00ca03bb00ca03250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000bc000000ca030000be0000000f04000005000000bc00ca03bc000f04be000f04be00ca03bc00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac2000000
+0000250000000c00000004000000250000000c000000080000805600000030000000be000000ca030000bf0000000f04000005000000be00ca03be000f04bf000f04bf00ca03be00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000bf
+000000ca030000c10000000f04000005000000bf00ca03bf000f04c1000f04c100ca03bf00ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000c1000000ca030000c20000000f04000005000000c100ca03c1000f04c2000f04c200ca03
+c100ca03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000c2000000ca030000c30000000f04000005000000c200ca03c2000f04c3000f04c300ca03c200ca03250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000c3000000ca030000c40000000f04000005000000c300ca03c3000f04c4000f04c400ca03c300ca03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004b00fcfb730045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000
+000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003a000000b3030000db00000026040000040000001005f040400cf040400ca03c1005a03c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000
+220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000550000003bfcffffb50000002efcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000067000000d0030000af000000dc0300000100
+000000400d4200040dc2610000003bfcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000
+000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000006400000081000000dd03000094000000e80300000100000000400d4200040dc27b0000002efcffff040000004c000000000000000000000000000000ffffffffffffffff540000
+004600690072006500060000000300000004000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004b001cfcbe001cfc000101011540
+01001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c0000000500008057000000240000003a000000d8030000db00000006040000020000001005f03e400cf03e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000056000000f303000059000000ff0300000100000000400d4200040dc25000000018fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a000000067000000f3030000ba000000ff0300000100000000400d4200040dc26100000018fcffff0e0000004c000000000000000000000000000000ffffffffffffffff680000004d0041004a004f0052005f00460049005200450020003d00200031000900000007000000050000000800000007000000
+0600000006000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005600000000040000590000000c0400000100000000400d4200040dc2500000000bfcffff0100
+00004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000006700000000040000c00000000c0400000100000000400d4200040dc2610000000bfcffff
+0f0000004c000000000000000000000000000000ffffffffffffffff6c00000046004f0052004500530054005f00460049005200450020003d00200032000d420600000008000000070000000700000007000000070000000600000006000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c000000200000
+00454d462b0a4000c01c00000010000000c0bfc0ff0100000084012affa600c4002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008a0100001d00000030020000e10000000500
+0000a018d001a018100e0023100e0023d001a018d001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001
+00000084012affa600c4003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000730100000600000047020000f800000004000000
+a018100e0023100e0023d001a018d001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080c043000053c30000264300004443bed7e8ffe3f2fc
+ffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000081012dffa600c400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000870100001a000000de010000de0000000500000087011a008701de00de01de00de01
+1a0087011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000de0100001a000000e2010000de00000005000000de011a00de01de00e201de00e2011a00de011a00250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e20100001a000000e6010000de00000005000000e2011a00e201de00e601de00e6011a00e2011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd000000000025000000
+0c00000004000000250000000c000000080000805600000030000000e60100001a000000ea010000de00000005000000e6011a00e601de00ea01de00ea011a00e6011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ea0100001a0000
+00ee010000de00000005000000ea011a00ea01de00ee01de00ee011a00ea011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000ee0100001a000000f2010000de00000005000000ee011a00ee01de00f201de00f2011a00ee011a002500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000f20100001a000000f7010000de00000005000000f2011a00f201de00f701de00f7011a00f2011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000f70100001a000000fb010000de00000005000000f7011a00f701de00fb01de00fb011a00f7011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000
+250000000c000000080000805600000030000000fb0100001a00000000020000de00000005000000fb011a00fb01de000002de0000021a00fb011a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000000200001a00000005020000de0000
+000500000000021a000002de000502de0005021a0000021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000050200001a00000009020000de0000000500000005021a000502de000902de0009021a0005021a00250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000090200001a0000000d020000de0000000500000009021a000902de000d02de000d021a0009021a00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000000d0200001a00000011020000de000000050000000d021a000d02de001102de0011021a000d021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000
+080000805600000030000000110200001a00000016020000de0000000500000011021a001102de001602de0016021a0011021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000160200001a0000001a020000de0000000500000016021a
+001602de001a02de001a021a0016021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000001a0200001a0000001f020000de000000050000001a021a001a02de001f02de001f021a001a021a00250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000001f0200001a00000024020000de000000050000001f021a001f02de002402de0024021a001f021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eb
+dac20000000000250000000c00000004000000250000000c000000080000805600000030000000240200001a00000028020000de0000000500000024021a002402de002802de0028021a0024021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000
+30000000280200001a0000002c020000de0000000500000028021a002802de002c02de002c021a0028021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000002c0200001a0000002d020000de000000050000002c021a002c02de002d02de
+002d021a002c021a00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000081012dffa600c4003a0000000c0000000a0000002400
+0000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000700100000300000044020000f5000000040000007018e00dd022e00dd022a0017018a001250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008b010000ebffffff1e020000deffffff160000
+000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000b601000020000000fe0100002c0000000100000000400d4200040dc2b0010000ebffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000000600
+00000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000
+54000000e8000000940100002d00000020020000380000000100000000400d4200040dc28e010000deffffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000480061007a006100720064006f0075007300440072006900760069006e00670043006f006e0064006900740069006f006e007300070000000600000005000000060000000400000006000000060000000600000006000000070000
+00040000000300000007000000030000000600000006000000070000000600000006000000060000000300000003000000030000000600000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000000000
+00ff0840010324000000180000000210c0db02000000004000008101ccff2702ccff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000
+000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000070010000280000004402000056000000020000007018f003d022f003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000
+040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c010000430000008f0100004f0000000100000000400d4200040dc286010000c8ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00
+000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000009d01000043000000ec0100004f0000000100000000400d4200040dc297010000c8ffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000052004f0043004b00
+460041004c004c00530020003d00200031000000070000000800000007000000070000000600000007000000060000000600000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c01
+0000500000008f0100005c0000000100000000400d4200040dc286010000bbffffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000c0030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000
+9d01000050000000290200005c0000000100000000400d4200040dc297010000bbffffff150000004c000000000000000000000000000000ffffffffffffffff78000000450041005200540048005100550041004b0045005f00440041004d0041004700450020003d0020003200000007000000070000000700000007000000070000000800000007000000070000000700000007000000060000000700000007000000090000
+00070000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c0100005d0000008f010000690000000100000000400d4200040dc286010000aeffffff010000004c00000000
+0000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000009d0100005d00000011020000690000000100000000400d4200040dc297010000aeffffff120000004c0000
+00000000000000000000000000ffffffffffffffff70000000530045005700450052005f0043004f004c004c00410050005300450020003d00200033000700000007000000090000000700000007000000060000000700000008000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c0100006a0000008f010000760000000100000000400d4200040dc286010000a1ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000
+000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000009d0100006a000000f1010000760000000100000000400d4200040dc297010000a1ffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000053005500420053004900440045004e004300450020003d002000340007000000070000000700
+000007000000030000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c010000770000008f010000830000000100000000400d4200040dc2
+8601000094ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000009d01000077000000f9010000830000000100000000400d420004
+0dc29701000094ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000053004e004f0057005f0044005200490046005400530020003d0020003500ca030700000007000000080000000900000006000000070000000700000003000000060000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000006000000
+0b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c010000840000008f010000900000000100000000400d4200040dc28601000087ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000f04030000000a00000010000000faffffff0b0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000600
+00000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000009d0100008400000008020000900000000100000000400d4200040dc29701000087ffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000530054004f0052004d005f00440041004d0041004700450020003d00200036000700000007
+00000008000000070000000900000006000000070000000700000009000000070000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c010000910000008f0100009d0000
+000100000000400d4200040dc2860100007affffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000009d01000091000000f00100009d
+0000000100000000400d4200040dc2970100007affffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000420055005200530054005f00500049005000450020003d002000370007000000070000000700000007000000070000000600000007000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c0100009e0000008f010000aa0000000100000000400d4200040dc2860100006dffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c40000009d0100009e0000001c020000aa0000000100000000400d4200040dc2970100006dffffff140000004c000000000000000000000000000000ffffffffffffffff7400000056004f004c00430041004e004f005f004500520055005000540049004f004e00
+20003d002000380007000000080000000600000007000000070000000700000008000000060000000700000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000540000008c010000ab0000008f010000b70000000100000000400d4200040dc28601000060ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000a80000009d010000ab000000f1010000b70000000100000000400d4200040dc29701000060ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000460041004c004c0049004e0047005f0049004300450020003d00200039000000060000000700000006000000060000000300000007000000080000000600000003000000070000000700000003000000060000
+0003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000043018bfe9c0088002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+0000250000000c00000001000000250000000c00000008000080560000003000000049010000f8000000e501000080010000050000009014800f90140018501e0018501e800f9014800f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000043018bfe9c0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000
+250000000c00000004000000250000000c00000005000080560000002c00000032010000e1000000fc010000970100000400000090140018501e0018501e800f9014800f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d46
+2b08400201580000004c0000000210c0db0400000004000000000000000000a0430000b9c300001c4300000843bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000040018efe9c008800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c000000040000002500
+00000c00000008000080560000003000000046010000f5000000970100007d010000050000004601f50046017d0197017d019701f5004601f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000097010000f50000009b0100007d01000005
+0000009701f50097017d019b017d019b01f5009701f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009b010000f5000000a00100007d010000050000009b01f5009b017d01a0017d01a001f5009b01f500250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a0010000f5000000a40100007d01000005000000a001f500a0017d01a4017d01a401f500a001f500250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000a4010000f5000000a90100007d01000005000000a401f500a4017d01a9017d01a901f500a401f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800
+00805600000030000000a9010000f5000000ad0100007d01000005000000a901f500a9017d01ad017d01ad01f500a901f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000ad010000f5000000b10100007d01000005000000ad01f500ad
+017d01b1017d01b101f500ad01f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000b1010000f5000000b50100007d01000005000000b101f500b1017d01b5017d01b501f500b101f500250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000b5010000f5000000ba0100007d01000005000000b501f500b5017d01ba017d01ba01f500b501f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d1
+0000000000250000000c00000004000000250000000c000000080000805600000030000000ba010000f5000000be0100007d01000005000000ba01f500ba017d01be017d01be01f500ba01f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000be010000f5000000c20100007d01000005000000be01f500be017d01c2017d01c201f500be01f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000c2010000f5000000c60100007d01000005000000c201f500c2017d01c6017d01c6
+01f500c201f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000c6010000f5000000ca0100007d01000005000000c601f500c6017d01ca017d01ca01f500c601f500250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000ca010000f5000000ce0100007d01000005000000ca01f500ca017d01ce017d01ce01f500ca01f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000
+000c00000004000000250000000c000000080000805600000030000000ce010000f5000000d30100007d01000005000000ce01f500ce017d01d3017d01d301f500ce01f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000d3010000f500
+0000d80100007d01000005000000d301f500d3017d01d8017d01d801f500d301f500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000d8010000f5000000dc0100007d01000005000000d801f500d8017d01dc017d01dc01f500d801f50025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000dc010000f5000000e00100007d01000005000000dc01f500dc017d01e0017d01e001f500dc01f500250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000e0010000f5000000e20100007d01000005000000e001f500e0017d01e2017d01e201f500e001f500250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000
+002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000040018efe9c0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000000000
+00000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002f010000de000000f901000094010000040000006014d017201ed017201e500f6014500f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c
+000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004a01000010ffffffd301000003ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000070010000fb000000b8010000070100000100000000400d
+4200040dc26a01000010ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b00000010000000000000000500
+00000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac0000006501000008010000c4010000130100000100000000400d4200040dc25f01000003ffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004f006200
+6a0065006300740073004f006e0054006800650052006f0061006400080000000600000004000000060000000600000003000000060000000800000006000000050000000600000006000000070000000600000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000
+000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004001f1fedc01f1fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000
+000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002f01000003010000f901000031010000020000006014a011201ea011250000000c00000007000080250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004b0100001e0100004e0100002a0100000100000000400d4200040dc245010000edfeffff010000004c00000000000000000000
+0000000000ffffffffffffffff5000000020000080030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000005c0100001e010000ac0100002a0100000100000000400d4200040dc256010000edfeffff0d0000004c0000000000000000
+00000000000000ffffffffffffffff6800000053004800450044005f004c004f004100440020003d0020003100de00070000000700000007000000070000000600000006000000080000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000540000004b0100002b0100004e010000370100000100000000400d4200040dc245010000e0feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b00000054000000cc0000005c0100002b010000de010000370100000100000000400d4200040dc256010000e0feffff150000004c000000000000000000000000000000ffffffffffffffff78000000500041005200540053005f004f0046005f00560045004800490043004c004500530020003d0020003200000007000000070000000700000007000000070000000600000008000000
+06000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004b010000380100004e010000440100000100
+000000400d4200040dc245010000d3feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000005c01000038010000ce01000044010000
+0100000000400d4200040dc256010000d3feffff120000004c000000000000000000000000000000ffffffffffffffff70000000500041005200540053005f004f0046005f005400590052004500530020003d00200033000700000007000000070000000700000007000000060000000800000006000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a000000100000
+00faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004b010000450100004e010000510100000100000000400d4200040dc245010000c6feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010
+000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000005c01000045010000b6010000510100000100000000400d4200040dc256010000c6feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004200490047005f004f0042
+004a00450043005400530020003d002000340000000700000003000000080000000600000008000000070000000500000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+000000540000004b010000520100004e0100005e0100000100000000400d4200040dc245010000b9feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000ac0000005c01000052010000be0100005e0100000100000000400d4200040dc256010000b9feffff100000004c000000000000000000000000000000ffffffffffffffff6c000000460041004c004c0045004e005f005400520045004500530020003d002000350006000000070000000600000006000000070000000700000006000000070000000700000007000000070000000700000003000000060000000300
+0000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004b0100005f0100004e0100006b0100000100000000400d4200040dc245010000acfeffff010000004c000000000000000000000000000000ffffffffffffffff50000000
+2000803f030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000940000005c0100005f010000a50100006b0100000100000000400d4200040dc256010000acfeffff0c0000004c000000000000000000000000000000ffffffffffffffff6400
+00004800550042005f00430041005000530020003d00200036000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000
+4b0100006c0100004e010000780100000100000000400d4200040dc2450100009ffeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000462b030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400
+00005c0100006c010000d3010000780100000100000000400d4200040dc2560100009ffeffff140000004c000000000000000000000000000000ffffffffffffffff74000000570041004900540049004e0047005f00560045004800490043004c004500530020003d0020003700090000000700000003000000070000000300000007000000080000000600000007000000070000000700000003000000070000000600000007
+00000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004501fafd900072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000000000
+0000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000004b0100009f010000db0100001102000005000000b014f019b0141021b01d1021b01df019b014f019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b084000
+02380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004501fafd900072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bf
+c000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003401000088010000f20100002802000004000000b0141021b01d1021b01df019b014f019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000046
+0000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000a14300c000c4000010430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000004201fdfd90007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000
+250000000c00000004000000250000000c000000080000805600000030000000480100009c010000930100000e0200000500000048019c0148010e0293010e0293019c0148019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000930100
+009c010000970100000e0200000500000093019c0193010e0297010e0297019c0193019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000970100009c0100009b0100000e0200000500000097019c0197010e029b010e029b019c019701
+9c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009b0100009c0100009f0100000e020000050000009b019c019b010e029f010e029f019c019b019c01250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000009f0100009c010000a30100000e020000050000009f019c019f010e02a3010e02a3019c019f019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c000000
+04000000250000000c000000080000805600000030000000a30100009c010000a70100000e02000005000000a3019c01a3010e02a7010e02a7019c01a3019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000a70100009c010000ab0100
+000e02000005000000a7019c01a7010e02ab010e02ab019c01a7019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000ab0100009c010000af0100000e02000005000000ab019c01ab010e02af010e02af019c01ab019c01250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000af0100009c010000b30100000e02000005000000af019c01af010e02b3010e02b3019c01af019c01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b30100009c010000b70100000e02000005000000b3019c01b3010e02b7010e02b7019c01b3019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c0000000400000025000000
+0c000000080000805600000030000000b70100009c010000ba0100000e02000005000000b7019c01b7010e02ba010e02ba019c01b7019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ba0100009c010000bd0100000e020000050000
+00ba019c01ba010e02bd010e02bd019c01ba019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000bd0100009c010000c00100000e02000005000000bd019c01bd010e02c0010e02c0019c01bd019c01250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000c00100009c010000c40100000e02000005000000c0019c01c0010e02c4010e02c4019c01c0019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c40100009c010000c80100000e02000005000000c4019c01c4010e02c8010e02c8019c01c4019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080
+5600000030000000c80100009c010000cc0100000e02000005000000c8019c01c8010e02cc010e02cc019c01c8019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000cc0100009c010000d00100000e02000005000000cc019c01cc010e
+02d0010e02d0019c01cc019c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000d00100009c010000d40100000e02000005000000d0019c01d0010e02d4010e02d4019c01d0019c01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000d40100009c010000d80100000e02000005000000d4019c01d4010e02d8010e02d8019c01d4019c01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054
+000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004201fdfd900072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003101000085010000ef01000025020000040000008014e020801de020801dc0198014c019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000
+000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004c01000069feffffc90100005cfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006c010000a2010000b4
+010000ae0100000100000000400d4200040dc26601000069feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000
+4b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac0000005f010000af010000c2010000ba0100000100000000400d4200040dc2590100005cfeffff100000004c000000000000000000000000000000ffff
+ffffffffffff6c00000041006e0069006d0061006c0073004f006e0052006f0061006400770061007900070000000600000003000000090000000600000003000000060000000800000006000000070000000600000006000000060000000900000006000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c00000002
+10c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000042014afed2014afe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000031010000aa010000ef010000d8010000020000008014101c801d101c250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004d010000c501000050010000d10100000100000000400d4200040dc24701000046feffff01
+0000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000005e010000c5010000bd010000d10100000100000000400d4200040dc25801000046feff
+ff100000004c000000000000000000000000000000ffffffffffffffff6c000000570049004c0044005f0041004e0049004d0041004c00530020003d0020003100090000000300000006000000070000000600000007000000070000000300000009000000070000000600000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004d010000d201000050010000de0100000100000000400d4200040dc24701000039feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b0000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000005e010000d2010000d4010000de0100000100000000400d4200040dc25801000039feffff130000004c000000000000000000000000000000ffffffffffffffff7400000048004500520044005f004f0046005f0041004e0049004d0041004c00530020003d002000320000000700
+00000700000007000000070000000600000008000000060000000600000007000000070000000300000009000000070000000600000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000
+4d010000df01000050010000eb0100000100000000400d4200040dc2470100002cfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000064030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400
+00005e010000df010000c7010000eb0100000100000000400d4200040dc2580100002cfeffff110000004c000000000000000000000000000000ffffffffffffffff7000000053004d0041004c004c005f0041004e0049004d0041004c00530020003d0020003300004507000000090000000700000006000000060000000600000007000000070000000300000009000000070000000600000007000000030000000600000003
+000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004d010000ec01000050010000f80100000100000000400d4200040dc2470100001ffeffff010000004c000000000000000000000000000000ffffffffffffffff500000
+002000000c030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000005e010000ec010000c7010000f80100000100000000400d4200040dc2580100001ffeffff110000004c000000000000000000000000000000ffffffffffffffff70
+0000004c0041005200470045005f0041004e0049004d0041004c00530020003d0020003400000306000000070000000700000008000000070000000600000007000000070000000300000009000000070000000600000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000
+c0bfc0ff010000002b018cfdd40058002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003101000027020000050200007f02000005000000101370221013f0275020f027502070
+2210137022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002b018cfdd40058003a0000000c00
+00000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001a010000100200001c02000096020000040000001013f0275020f027502070221013702225
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000944300401cc4000054430000b042bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000000000
+0000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000028018ffdd4005800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002e010000240200009c0100007c020000050000002e0124022e017c029c017c029c0124022e012402250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000009c01000024020000a20100007c020000050000009c0124029c017c02a2017c02a20124029c012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000a201000024020000a70100007c02000005000000a2012402a2017c02a7017c02a7012402a2012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000a701000024020000ac0100007c02000005000000a7012402a7017c02ac017c02ac012402a7012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000024020000b10100007c02000005000000ac012402
+ac017c02b1017c02b1012402ac012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000b101000024020000b70100007c02000005000000b1012402b1017c02b7017c02b7012402b1012402250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000b701000024020000bc0100007c02000005000000b7012402b7017c02bc017c02bc012402b7012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9
+d60000000000250000000c00000004000000250000000c000000080000805600000030000000bc01000024020000c20100007c02000005000000bc012402bc017c02c2017c02c2012402bc012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030
+000000c201000024020000c90100007c02000005000000c2012402c2017c02c9017c02c9012402c2012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000c901000024020000cf0100007c02000005000000c9012402c9017c02cf017c02
+cf012402c9012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000cf01000024020000d40100007c02000005000000cf012402cf017c02d4017c02d4012402cf012402250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000d401000024020000d90100007c02000005000000d4012402d4017c02d9017c02d9012402d4012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc00000000002500
+00000c00000004000000250000000c000000080000805600000030000000d901000024020000df0100007c02000005000000d9012402d9017c02df017c02df012402d9012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000df01000024
+020000e40100007c02000005000000df012402df017c02e4017c02e4012402df012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000e401000024020000ea0100007c02000005000000e4012402e4017c02ea017c02ea012402e4012402
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000ea01000024020000f00100007c02000005000000ea012402ea017c02f0017c02f0012402ea012402250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f001000024020000f70100007c02000005000000f0012402f0017c02f7017c02f7012402f0012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c0000000400
+0000250000000c000000080000805600000030000000f701000024020000fc0100007c02000005000000f7012402f7017c02fc017c02fc012402f7012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000fc01000024020000010200007c
+02000005000000fc012402fc017c0201027c0201022402fc012402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000102000024020000020200007c020000050000000102240201027c0202027c020202240201022402250000000c000000
+08000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000028018ffdd40058003a0000000c0000000a00000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000170100000d020000190200009302000004000000e012c0272020c02720204022e0124022250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000032010000e1fdfffff3010000d4fdffff160000000c00000001000000120000000c000000
+010000001b000000100000000000000000000000160000000c00000000000000540000009c000000740100002a020000bc010000360200000100000000400d4200040dc26e010000e1fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00001106000000060000000600000006000000090000000600000003000000060000
+0003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000006a01000037020000c7
+010000420200000100000000400d4200040dc264010000d4fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000500065006f0070006c0065004f006e0052006f006100640077006100790000ff0700000006000000060000000600000003000000060000000800000006000000070000000600000006000000060000000900000006000000050000000a00000010000000faffffff0b000000
+0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002801c2fdfc01c2fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000
+00010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000017010000320200001902
+00006002000002000000e012902420209024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+5400000054000000330100004d02000036010000590200000100000000400d4200040dc22d010000befdffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000fd030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00
+000054000000d8000000440100004d020000d8010000590200000100000000400d4200040dc23e010000befdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004300480049004c004400520045004e005f004f004e005f0052004f004100440057004100590020003d002000310000090700000007000000030000000600000007000000070000000700000007000000060000000800000007
+0000000600000007000000080000000700000007000000090000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+0900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000330100005a02000036010000660200000100000000400d
+4200040dc22d010000b1fdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000c030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+00000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000440100005a020000d8010000660200000100000000
+400d4200040dc23e010000b1fdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004300590043004c0049005300540053005f004f004e005f0052004f004100440057004100590020003d00200032000010070000000700000007000000060000000300000007000000070000000700000006000000080000000700000006000000070000000800000007000000070000000900000007000000
+07000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000330100006702000036010000730200000100000000400d4200040dc22d010000a4fdffff010000004c00000000000000000000000000
+0000ffffffffffffffff5000000020000018030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000004401000067020000fe010000730200000100000000400d4200040dc23e010000a4fdffff1c0000004c0000000000000000000000
+00000000ffffffffffffffff840000004d004f0054004f0052005f004300590043004c004900530054005f004f004e005f0052004f004100440057004100590020003d00200033000900000008000000070000000800000007000000060000000700000007000000070000000600000003000000070000000700000006000000080000000700000006000000070000000800000007000000070000000900000007000000070000
+00030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000021012efde20045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000
+00000000000002000000250000000c00000001000000250000000c000000080000805600000030000000270100009802000009020000dd02000005000000701280297012d02d9020d02d9020802970128029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000021012efde20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc00000000000
+0000000000000000250000000c00000004000000250000000c00000005000080560000002c000000100100008102000020020000f4020000040000007012d02d9020d02d9020802970128029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000046000000840000
+0078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000008f4300c033c40000624300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001e0131fde2004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00
+000004000000250000000c00000008000080560000003000000024010000950200009a010000da02000005000000240195022401da029a01da029a01950224019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000009a010000950200009f
+010000da020000050000009a0195029a01da029f01da029f0195029a019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009f01000095020000a5010000da020000050000009f0195029f01da02a501da02a50195029f01950225000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a501000095020000ab010000da02000005000000a5019502a501da02ab01da02ab019502a5019502250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ab01000095020000b0010000da02000005000000ab019502ab01da02b001da02b0019502ab019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c000000040000002500
+00000c000000080000805600000030000000b001000095020000b6010000da02000005000000b0019502b001da02b601da02b6019502b0019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000b601000095020000bc010000da02000005
+000000b6019502b601da02bc01da02bc019502b6019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000bc01000095020000c2010000da02000005000000bc019502bc01da02c201da02c2019502bc019502250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000c201000095020000c9010000da02000005000000c2019502c201da02c901da02c9019502c2019502250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000c901000095020000cf010000da02000005000000c9019502c901da02cf01da02cf019502c9019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c0000000800
+00805600000030000000cf01000095020000d3010000da02000005000000cf019502cf01da02d301da02d3019502cf019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d301000095020000d8010000da02000005000000d3019502d3
+01da02d801da02d8019502d3019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000d801000095020000de010000da02000005000000d8019502d801da02de01da02de019502d8019502250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000de01000095020000e3010000da02000005000000de019502de01da02e301da02e3019502de019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc9
+0000000000250000000c00000004000000250000000c000000080000805600000030000000e301000095020000e9010000da02000005000000e3019502e301da02e901da02e9019502e3019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000
+0000e901000095020000f0010000da02000005000000e9019502e901da02f001da02f0019502e9019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f001000095020000f7010000da02000005000000f0019502f001da02f701da02f7
+019502f0019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000f701000095020000fd010000da02000005000000f7019502f701da02fd01da02fd019502f7019502250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000fd0100009502000002020000da02000005000000fd019502fd01da020202da0202029502fd019502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000
+000c00000004000000250000000c000000080000805600000030000000020200009502000006020000da02000005000000020295020202da020602da020602950202029502250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100
+000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001e0131fde20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c
+00000005000080560000002c0000000d0100007e0200001d020000f1020000040000004012a02d6020a02d6020502940125029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002801000070fdfffff701000063fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000710100009b020000b9010000a70200000100000000400d4200040dc26b01000070fdffff0d0000004c000000000000000000
+000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000c060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b800000060010000a8020000ca010000b30200000100000000400d4200040dc25a01000063fdffff120000004c000000000000000000000000000000ffffffffffffffff70000000420072006f006b0065006e0044006f0077006e00560065006800690063006c
+00650073000700000004000000060000000600000006000000060000000700000006000000090000000600000007000000060000000600000003000000060000000300000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001e0151fd000251fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038
+000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000d010000a30200001d020000d1020000020000004012a02b6020a02b250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029010000be0200002c010000ca0200000100000000400d4200040dc2230100004dfdffff010000004c000000000000000000000000000000ffffffffffffffff5000
+000020000121030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100003a010000be02000002020000ca0200000100000000400d4200040dc2340100004dfdffff1f0000004c000000000000000000000000000000ffffffffffffffff
+8c000000420052004f004b0045004e005f0044004f0057004e005f00560045004800490043004c0045005f004200550052004e0049004e00470020003d0020003100003a070000000700000008000000070000000700000007000000060000000700000008000000090000000700000006000000070000000700000007000000030000000700000006000000070000000600000007000000070000000700000007000000030000
+000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029010000cb0200002c010000d70200000100000000400d4200040dc22301000040fdffff010000004c0000000000000000
+00000000000000ffffffffffffffff5000000020000003030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000003a010000cb020000f2010000d70200000100000000400d4200040dc23401000040fdffff1d0000004c000000000000
+000000000000000000ffffffffffffffff88000000420052004f004b0045004e005f0044004f0057004e005f0055004e004c00490054005f00560045004800490043004c00450020003d002000320000560700000007000000080000000700000007000000070000000600000007000000080000000900000007000000060000000700000007000000060000000300000007000000060000000700000007000000070000000300
+0000070000000600000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001c01a5fcd9006e002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00
+000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000022010000f8020000fb01000066030000050000002012802f20126036b01f6036b01f802f2012802f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001c01a5fcd9006e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000
+0000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000b010000e1020000120200007d0300000400000020126036b01f6036b01f802f2012802f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c00
+00000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000808c43000056c4000059430000dc42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001901a8fcd9006e00250000000c0000000800008027000000180000000400000000000000fc
+f2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001f010000f50200009001000063030000050000001f01f5021f016303900163039001f5021f01f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000
+3000000090010000f50200009601000063030000050000009001f50290016303960163039601f5029001f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000096010000f50200009b01000063030000050000009601f502960163039b0163
+039b01f5029601f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009b010000f5020000a001000063030000050000009b01f5029b016303a0016303a001f5029b01f502250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000a0010000f5020000a50100006303000005000000a001f502a0016303a5016303a501f502a001f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda000000000025
+0000000c00000004000000250000000c000000080000805600000030000000a5010000f5020000ab0100006303000005000000a501f502a5016303ab016303ab01f502a501f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000ab010000
+f5020000b10100006303000005000000ab01f502ab016303b1016303b101f502ab01f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000b1010000f5020000b60100006303000005000000b101f502b1016303b6016303b601f502b101f5
+02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b6010000f5020000bc0100006303000005000000b601f502b6016303bc016303bc01f502b601f502250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000bc010000f5020000c10100006303000005000000bc01f502bc016303c1016303c101f502bc01f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004
+000000250000000c000000080000805600000030000000c1010000f5020000c60100006303000005000000c101f502c1016303c6016303c601f502c101f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c6010000f5020000cb010000
+6303000005000000c601f502c6016303cb016303cb01f502c601f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000cb010000f5020000ce0100006303000005000000cb01f502cb016303ce016303ce01f502cb01f502250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ce010000f5020000d40100006303000005000000ce01f502ce016303d4016303d401f502ce01f502250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d4010000f5020000d90100006303000005000000d401f502d4016303d9016303d901f502d401f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c
+000000080000805600000030000000d9010000f5020000df0100006303000005000000d901f502d9016303df016303df01f502d901f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000df010000f5020000e60100006303000005000000
+df01f502df016303e6016303e601f502df01f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000e6010000f5020000ec0100006303000005000000e601f502e6016303ec016303ec01f502e601f502250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000ec010000f5020000f20100006303000005000000ec01f502ec016303f2016303f201f502ec01f502250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000f2010000f5020000f70100006303000005000000f201f502f2016303f7016303f701f502f201f502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056
+00000030000000f7010000f5020000f80100006303000005000000f701f502f7016303f8016303f801f502f701f502250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff
+0b400040180000000c000000010000001901a8fcd9006e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000008010000de0200
+000f0200007a03000004000000f0113036801f3036801f502ff011502f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c000000000000001e000000180000002301000010fdffffe901000003fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000068010000fb020000b0010000070300000100000000400d4200040dc26201000010fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab006500
+6e0075006d00650072006100740069006f006e00bb002b04060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000080100003101000008030000e7010000130300000100000000400d4200040dc22b01000003fdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000052006500730063007500650041006e0064005200650063006f00760065007200790057006f0072006b0049006e00500072006f0067
+0072006500730073000000070000000600000006000000060000000600000006000000070000000600000006000000070000000600000006000000060000000700000006000000040000000500000009000000060000000400000006000000030000000600000007000000040000000600000006000000040000000600000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000
+460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001901f1fcf201f1fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000
+00000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000008010000030300000f0200003103000002000000f011a031801f
+a031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240100001e030000
+270100002a0300000100000000400d4200040dc21e010000edfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000350100001e03
+0000c20100002a0300000100000000400d4200040dc22f010000edfcffff160000004c000000000000000000000000000000ffffffffffffffff7800000045004d0045005200470045004e00430059005f00560045004800490043004c004500530020003d002000310007000000090000000700000007000000080000000700000007000000070000000700000006000000070000000700000007000000030000000700000006
+0000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240100002b03000027010000370300000100000000400d4200040dc21e010000e0fcffff010000004c000000000000
+000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc000000350100002b030000ec010000370300000100000000400d4200040dc22f010000e0fcffff1d0000004c00000000
+0000000000000000000000ffffffffffffffff880000005200450053004300550045005f00480045004c00490043004f0050005400450052005f004c0041004e00440049004e00470020003d00200032000000070000000700000007000000070000000700000007000000060000000700000007000000060000000300000007000000080000000700000007000000070000000700000006000000060000000700000007000000
+07000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240100003803000027010000440300000100000000400d4200040dc21e010000d3fcffff010000004c00
+0000000000000000000000000000ffffffffffffffff5000000020000100030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000003501000038030000da010000440300000100000000400d4200040dc22f010000d3fcffff1b000000
+4c000000000000000000000000000000ffffffffffffffff8400000050004f004c004900430045005f00410043005400490056004900540059005f004f004e0047004f0049004e00470020003d002000330000000700000008000000060000000300000007000000070000000600000007000000070000000700000003000000070000000300000007000000070000000600000008000000070000000800000008000000030000
+000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240100004503000027010000510300000100000000400d4200040dc21e010000c6fcffff010000004c0000000000000000
+00000000000000ffffffffffffffff50000000200001e4030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000003501000045030000f4010000510300000100000000400d4200040dc22f010000c6fcffff1d0000004c000000000000
+000000000000000000ffffffffffffffff880000004d00450044004900430041004c005f0045004d0045005200470045004e00430059005f004f004e0047004f0049004e00470020003d002000340001e40900000007000000070000000300000007000000070000000600000006000000070000000900000007000000070000000800000007000000070000000700000007000000060000000800000007000000080000000800
+0000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002401000052030000270100005e0300000100000000400d4200040dc21e010000b9fcffff010000004c000000
+000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100003501000052030000f70100005e0300000100000000400d4200040dc22f010000b9fcffff1f0000004c00
+0000000000000000000000000000ffffffffffffffff8c0000004300480049004c0044005f0041004200440055004300540049004f004e005f0049004e005f00500052004f004700520045005300530020003d002000350000000700000007000000030000000600000007000000060000000700000007000000070000000700000007000000070000000300000008000000070000000600000003000000070000000600000007
+00000007000000080000000800000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000230103fc41017f002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000
+0000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000029010000890300006a02000008040000050000009012903890128040a0268040a026903890129038250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000230103fc41017f003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+00003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001201000072030000810200001f0400000400000090128040a0268040a026903890129038250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000904300807ec40080a0430000fe42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000200106fc41017f00250000000c00000008000080
+27000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002601000086030000cd01000005040000050000002601860326010504cd010504cd01860326018603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c000000040000
+00250000000c000000080000805600000030000000cd01000086030000d50100000504000005000000cd018603cd010504d5010504d5018603cd018603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000d501000086030000de0100000504
+000005000000d5018603d5010504de010504de018603d5018603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000de01000086030000e80100000504000005000000de018603de010504e8010504e8018603de018603250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000e801000086030000f10100000504000005000000e8018603e8010504f1010504f1018603e8018603250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000f101000086030000f90100000504000005000000f1018603f1010504f9010504f9018603f1018603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000
+00080000805600000030000000f901000086030000010200000504000005000000f9018603f90105040102050401028603f9018603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000001020000860300000b02000005040000050000000102
+8603010205040b0205040b02860301028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000000b020000860300001402000005040000050000000b0286030b02050414020504140286030b028603250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000014020000860300001902000005040000050000001402860314020504190205041902860314028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f2e5d00000000000250000000c00000004000000250000000c00000008000080560000003000000019020000860300001f020000050400000500000019028603190205041f0205041f02860319028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000
+00300000001f020000860300002502000005040000050000001f0286031f02050425020504250286031f028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000025020000860300002d020000050400000500000025028603250205042d02
+05042d02860325028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000002d020000860300003502000005040000050000002d0286032d02050435020504350286032d028603250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000035020000860300003d020000050400000500000035028603350205043d0205043d02860335028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000
+250000000c00000004000000250000000c0000000800008056000000300000003d020000860300004702000005040000050000003d0286033d02050447020504470286033d028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000470200
+00860300005102000005040000050000004702860347020504510205045102860347028603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000005102000086030000590200000504000005000000510286035102050459020504590286035102
+8603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000059020000860300006202000005040000050000005902860359020504620205046202860359028603250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000062020000860300006702000005040000050000006202860362020504670205046702860362028603250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002
+380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000200106fc41017f003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000f0100006f0300007e0200001c0400000400000060125040702650407026603860126038250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000002200
+00000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002a0100007ffcffff5802000072fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000a30100008c030000eb0100009803000001000000
+00400d4200040dc29d0100007ffcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b00000010000000000000
+00050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000009701000099030000f6010000a40300000100000000400d4200040dc29101000072fcffff110000004c000000000000000000000000000000ffffffffffffffff7000000052
+006500670075006c00610074006f00720079004d00650061007300750072006500000007000000060000000600000006000000030000000600000003000000060000000400000005000000090000000600000006000000060000000600000004000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000200160fc610260fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000f010000940300007e020000c2030000020000006012b03a7026b03a250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b010000af0300002e010000bb0300000100000000400d4200040dc2250100005cfcffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000003c010000af030000aa010000bb0300000100000000400d4200040dc2360100005cfcffff1200
+00004c000000000000000000000000000000ffffffffffffffff70000000530045004300550052004900540059005f0041004c0045005200540020003d00200031000700000007000000070000000700000007000000030000000700000007000000060000000700000006000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b010000bc0300002e010000c80300000100000000400d4200040dc2250100004ffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000003c010000bc030000c6010000c80300000100000000400d4200040dc2360100004ffcffff160000004c000000000000000000000000000000ffffffffffffffff7800000043004f004e0054004100470049004f00550053005f004400490053004500410053
+00450020003d0020003200070000000800000007000000070000000700000008000000030000000800000007000000070000000600000007000000030000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000540000002b010000c90300002e010000d50300000100000000400d4200040dc22501000042fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b00000054000000b40000003c010000c9030000a7010000d50300000100000000400d4200040dc23601000042fcffff110000004c000000000000000000000000000000ffffffffffffffff7000000045004e005600490052004f004e004d0045004e00540041004c0020003d00200033000000070000000700000007000000030000000700000008000000070000000900000007000000
+07000000070000000700000006000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b010000d60300002e010000e20300000100000000400d4200040dc22501000035fcffff010000004c00
+0000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000003c010000d603000096010000e20300000100000000400d4200040dc23601000035fcffff0e000000
+4c000000000000000000000000000000ffffffffffffffff6800000053004d004f0047005f0041004c0045005200540020003d002000340007000000090000000800000008000000060000000700000006000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b010000e30300002e010000ef0300000100000000400d4200040dc22501000028fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000100030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000003c010000e3030000f4010000ef0300000100000000400d4200040dc23601000028fcffff1d0000004c000000000000000000000000000000ffffffffffffffff88000000420041005400430048005f0053004500520056004900430045005f0049004e005f00500052004f004700520045005300530020003d002000350001
+0007000000070000000700000007000000070000000600000007000000070000000700000007000000030000000700000007000000060000000300000007000000060000000700000007000000080000000800000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002b010000f00300002e010000fc0300000100000000400d4200040dc2250100001bfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000100030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005c0100003c010000f003000063020000fc0300000100000000400d4200040dc2360100001bfcffff2d0000004c000000000000000000000000000000ffffffffffffffffa800000052004f00410044005f0043004c004f005300450044005f00420059005f005400480045005f0052004500470055004c00410054004f00
+520059005f0041005500540048004f0052004900540049004500530020003d00200036000063070000000800000007000000070000000600000007000000060000000800000007000000070000000700000006000000070000000700000006000000070000000700000007000000060000000700000007000000080000000700000006000000070000000700000008000000070000000700000006000000070000000700000007
+0000000700000008000000070000000300000007000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007d0262ff8c008c002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000
+000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000830200001d0000000f030000a9000000050000003028d0013028900af030900af030d0013028d001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007d0262ff8c008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800
+0000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000006c0200000600000026030000c0000000040000003028900af030900af030d0013028d001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002
+000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000801e4400001bc300000c4300000c43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000007a0265ff8c008c00250000000c000000
+0800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000800200001a000000c9020000a60000000500000080021a008002a600c902a600c9021a0080021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c0000
+0004000000250000000c000000080000805600000030000000c90200001a000000cd020000a600000005000000c9021a00c902a600cd02a600cd021a00c9021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000cd0200001a000000d002
+0000a600000005000000cd021a00cd02a600d002a600d0021a00cd021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d00200001a000000d4020000a600000005000000d0021a00d002a600d402a600d4021a00d0021a00250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d40200001a000000d7020000a600000005000000d4021a00d402a600d702a600d7021a00d4021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d70200001a000000db020000a600000005000000d7021a00d702a600db02a600db021a00d7021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000
+000c000000080000805600000030000000db0200001a000000de020000a600000005000000db021a00db02a600de02a600de021a00db021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000de0200001a000000e2020000a60000000500
+0000de021a00de02a600e202a600e2021a00de021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000e20200001a000000e6020000a600000005000000e2021a00e202a600e602a600e6021a00e2021a00250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e60200001a000000ea020000a600000005000000e6021a00e602a600ea02a600ea021a00e6021a00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000ea0200001a000000ed020000a600000005000000ea021a00ea02a600ed02a600ed021a00ea021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000
+805600000030000000ed0200001a000000f0020000a600000005000000ed021a00ed02a600f002a600f0021a00ed021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000f00200001a000000f3020000a600000005000000f0021a00f002
+a600f302a600f3021a00f0021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000f30200001a000000f7020000a600000005000000f3021a00f302a600f702a600f7021a00f3021a00250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000f70200001a000000fa020000a600000005000000f7021a00f702a600fa02a600fa021a00f7021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec700
+00000000250000000c00000004000000250000000c000000080000805600000030000000fa0200001a000000fe020000a600000005000000fa021a00fa02a600fe02a600fe021a00fa021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000
+00fe0200001a00000003030000a600000005000000fe021a00fe02a6000303a60003031a00fe021a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000030300001a00000006030000a60000000500000003031a000303a6000603a6000603
+1a0003031a00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000060300001a0000000a030000a60000000500000006031a000603a6000a03a6000a031a0006031a00250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000000a0300001a0000000c030000a6000000050000000a031a000a03a6000c03a6000c031a000a031a00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000007a0265ff8c008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000
+0000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000690200000300000023030000bd000000040000000028600ac030600ac030a0010028a001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00
+0000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000084020000ebfffffffd020000deffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000a202000020000000ea0200002c000000
+0100000000400d4200040dc29c020000ebffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000
+0000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000dc000000840200002d00000009030000380000000100000000400d4200040dc27e020000deffffff180000004c000000000000000000000000000000ffffffffffffffff7c
+000000450078007400720065006d006500570065006100740068006500720043006f006e0064006900740069006f006e0073000700000006000000030000000400000006000000090000000600000009000000060000000600000003000000060000000600000004000000070000000600000006000000060000000300000003000000030000000600000006000000060000000a00000010000000faffffff0b0000000c000000
+100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007a02ccff0603ccff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000
+000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000006902000028000000230300005600
+0000020000000028f003c030f003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000
+540000008502000043000000880200004f0000000100000000400d4200040dc27f020000c8ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+0000ac0000009602000043000000fb0200004f0000000100000000400d4200040dc290020000c8ffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000005300540052004f004e0047005f00570049004e004400530020003d002000310007000000070000000700000008000000070000000800000006000000090000000300000007000000070000000700000003000000060000000300000006
+0000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008502000050000000880200005c0000000100000000400d4200040dc27f020000bbffffff010000004c000000000000000000000000000000ffffffffffffffff50000000200040
+00030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000009602000050000000fd0200005c0000000100000000400d4200040dc290020000bbffffff110000004c000000000000000000000000000000ffffffffffffffff7000000044
+0041004d004100470049004e0047005f004800410049004c0020003d0020003200000007000000070000000900000007000000080000000300000007000000080000000600000007000000070000000300000006000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b0000005400000054000000850200005d00000088020000690000000100000000400d4200040dc27f020000aeffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b000000540000009c000000960200005d000000e3020000690000000100000000400d4200040dc290020000aeffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000048005500520052004900430041004e00450020003d0020003300000007000000070000000700000007000000030000000700000007000000070000000700000003000000
+0600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000850200006a00000088020000760000000100000000400d4200040dc27f020000a1ffffff010000004c000000000000000000000000000000ffffffffffff
+ffff5000000020000100030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000960200006a000000ff020000760000000100000000400d4200040dc290020000a1ffffff100000004c000000000000000000000000000000ffffffff
+ffffffff6c0000005400480055004e00440045005200530054004f0052004d0020003d0020003400070000000700000007000000070000000700000007000000070000000700000007000000080000000700000009000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b0000005400000054000000850200007700000088020000830000000100000000400d4200040dc27f02000094ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000f2fc030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000900000009602000077000000db020000830000000100000000400d4200040dc29002000094ffffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000054004f0052004e00410044004f0020003d0020003500000007000000080000000700000007000000070000000700000008000000030000000600000003000000060000
+000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000850200008400000088020000900000000100000000400d4200040dc27f02000087ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003
+0000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000900000009602000084000000d3020000900000000100000000400d4200040dc29002000087ffffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000042004c
+0049005a0041005200440020003d0020003600000007000000060000000300000006000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000fa016cfe4301a6002100000008000000620000000c00000001000000110000000c00
+0000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000000020000f9000000430300009f010000050000000020900f0020f0193034f0193034900f0020900f250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000fa016cfe4301a6003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000000002000000
+5f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e9010000e20000005a030000b6010000040000000020f0193034f0193034900f0020900f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080fb430080c8c30080a14300002643bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000f701
+6ffe4301a600250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000fd010000f6000000a50200009c01000005000000fd01f600fd019c01a5029c01a502f600fd01f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fb
+f1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a5020000f6000000ad0200009c01000005000000a502f600a5029c01ad029c01ad02f600a502f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000
+30000000ad020000f6000000b60200009c01000005000000ad02f600ad029c01b6029c01b602f600ad02f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000b6020000f6000000bd0200009c01000005000000b602f600b6029c01bd029c
+01bd02f600b602f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000bd020000f6000000c50200009c01000005000000bd02f600bd029c01c5029c01c502f600bd02f600250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000c5020000f6000000cd0200009c01000005000000c502f600c5029c01cd029c01cd02f600c502f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead8000000000025
+0000000c00000004000000250000000c000000080000805600000030000000cd020000f6000000d60200009c01000005000000cd02f600cd029c01d6029c01d602f600cd02f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000d6020000
+f6000000de0200009c01000005000000d602f600d6029c01de029c01de02f600d602f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000de020000f6000000e60200009c01000005000000de02f600de029c01e6029c01e602f600de02f6
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e6020000f6000000ed0200009c01000005000000e602f600e6029c01ed029c01ed02f600e602f600250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ed020000f6000000f60200009c01000005000000ed02f600ed029c01f6029c01f602f600ed02f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004
+000000250000000c000000080000805600000030000000f6020000f6000000fc0200009c01000005000000f602f600f6029c01fc029c01fc02f600f602f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000fc020000f600000002030000
+9c01000005000000fc02f600fc029c0102039c010203f600fc02f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000002030000f60000000a0300009c010000050000000203f60002039c010a039c010a03f6000203f600250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000000a030000f6000000120300009c010000050000000a03f6000a039c0112039c011203f6000a03f600250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000012030000f60000001b0300009c010000050000001203f60012039c011b039c011b03f6001203f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c
+0000000800008056000000300000001b030000f6000000250300009c010000050000001b03f6001b039c0125039c012503f6001b03f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000025030000f60000002e0300009c01000005000000
+2503f60025039c012e039c012e03f6002503f600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000002e030000f6000000370300009c010000050000002e03f6002e039c0137039c013703f6002e03f600250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000037030000f60000003f0300009c010000050000003703f60037039c013f039c013f03f6003703f600250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000003f030000f6000000400300009c010000050000003f03f6003f039c0140039c014003f6003f03f600250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086
+000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000f7016ffe4301a6003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025000000
+0c00000004000000250000000c00000005000080560000002c000000e6010000df00000057030000b301000004000000d01fc0190034c0190034600fd01f600f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b0000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000010200000fffffff3103000002ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007b020000fc000000c3020000080100000100000000400d4200040dc2750200000fffffff0d
+0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0007c0060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff
+0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000007402000009010000c9020000140100000100000000400d4200040dc26e02000002ffffff110000004c000000000000000000000000000000ffffffffffffffff700000005600690073006900620069006c0069007400
+79005200650064007500630065006400000007000000030000000600000003000000060000000300000003000000030000000300000005000000070000000600000006000000060000000600000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01
+00000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000f701f0fe3a03f0fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000e601000004010000570300003201000002000000d01fb0110034b011250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000020200001f010000050200002b0100000100000000400d4200040dc2fc010000ecfeffff010000004c000000000000000000000000000000ff
+ffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000130200001f010000dd0200002b0100000100000000400d4200040dc20d020000ecfeffff210000004c0000000000000000000000000000
+00ffffffffffffffff900000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f0046004f00470020003d002000310000000700000003000000070000000300000007000000030000000600000003000000070000000700000006000000070000000700000007000000070000000700000007000000070000000600000007000000070000000700
+000006000000070000000800000006000000060000000800000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000020200002c01000005020000380100000100000000400d4200040dc2
+fc010000dffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000130200002c010000ed020000380100000100000000400d420004
+0dc20d020000dffeffff230000004c000000000000000000000000000000ffffffffffffffff940000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f0053004d004f004b00450020003d002000320001000700000003000000070000000300000007000000030000000600000003000000070000000700000006000000070000000700000007
+0000000700000007000000070000000700000006000000070000000700000007000000060000000700000008000000060000000700000009000000080000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b0000005400000054000000020200003901000005020000450100000100000000400d4200040dc2fc010000d2feffff010000004c000000000000000000000000000000ffffffffffffffff50000000200010c0030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000054010000130200003901000028030000450100000100000000400d4200040dc20d020000d2feffff2c0000004c000000000000000000000000000000ffffffffffffffffa40000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00480045004100560059005f0053004e004f005700460041004c004c0020003d00
+2000330007000000030000000700000003000000070000000300000006000000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000060000000700000008000000060000000700000007000000070000000700000007000000060000000700000007000000080000000900000006000000070000000600000006000000030000
+000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000020200004601000005020000520100000100000000400d4200040dc2fc010000c5feffff010000004c000000000000000000000000000000ffffffffff
+ffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c010000130200004601000008030000520100000100000000400d4200040dc20d020000c5feffff280000004c000000000000000000000000000000ffffff
+ffffffffff9c0000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00480045004100560059005f005200410049004e0020003d0020003400070000000300000007000000030000000700000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700
+000007000000070000000600000007000000080000000600000007000000070000000700000007000000070000000600000007000000070000000300000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000540000000202000053010000050200005f0100000100000000400d4200040dc2fc010000b8feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00
+0000540000003c0100001302000053010000070300005f0100000100000000400d4200040dc20d020000b8feffff280000004c000000000000000000000000000000ffffffffffffffff9c0000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00480045004100560059005f004800410049004c0020003d0020003500070000000300000007
+000000030000000700000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000000600000007000000070000000700000007000000070000000600000007000000070000000300000006000000030000000600000003000000060000000a00000010000000faffffff0b000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000202000060010000050200006c0100000100000000400d4200040dc2fc010000abfeffff010000004c000000000000000000000000000000ffffffffffffffff50000000200010c0030000000a00000010000000faffffff0b00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000500100001302000060010000220300006c0100000100000000400d4200040dc20d020000abfeffff2b0000004c000000000000000000000000000000ffffffffffffffffa40000005600490053004900420049004c00490054005900
+5f0052004500440055004300450044005f004400550045005f0054004f005f004c004f0057005f00530055004e005f0047004c0041005200450020003d00200036000000070000000300000007000000030000000700000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000
+000600000006000000080000000900000006000000070000000700000007000000060000000800000006000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000002
+0200006d01000005020000790100000100000000400d4200040dc2fc0100009efeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c0100
+00130200006d01000010030000790100000100000000400d4200040dc20d0200009efeffff280000004c000000000000000000000000000000ffffffffffffffff9c0000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00530041004e004400530054004f0052004d00530020003d0020003700070000000300000007000000030000000700
+000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000000600000007000000070000000700000007000000070000000700000008000000070000000900000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000020200007a01000005020000860100000100000000400d4200040dc2fc01000091feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000faffffff0b0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000130200007a0100003c030000860100000100000000400d4200040dc20d02000091feffff2f0000004c000000000000000000000000000000ffffffffffffffffac0000005600490053004900420049004c004900540059005f0052004500440055
+004300450044005f004400550045005f0054004f005f0053005700410052004d0053005f004f0046005f0049004e005300450043005400530020003d0020003800014a07000000030000000700000003000000070000000300000006000000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000060000000700000008000000
+060000000700000009000000070000000700000009000000070000000600000008000000060000000600000003000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008e02e7fd8d006500210000
+0008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000094020000bf0100002103000024020000050000004029f01b40294022103240221032f01b4029f01b250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008e02e7fd8d0065003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007d020000a8010000380300003b0200000400000040294022103240221032f01b4029f01b250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c02244008005c400000d430000ca42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8
+ff0a4000401c0000001000000002000000010000008b02eafd8d006500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000091020000bc010000db02000021020000050000009102bc0191022102db022102db02bc019102bc01250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000db020000bc010000de0200002102000005000000db02bc01db022102de022102de02bc01db02bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c
+00000004000000250000000c000000080000805600000030000000de020000bc010000e20200002102000005000000de02bc01de022102e2022102e202bc01de02bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000e2020000bc010000
+e60200002102000005000000e202bc01e2022102e6022102e602bc01e202bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000e6020000bc010000eb0200002102000005000000e602bc01e6022102eb022102eb02bc01e602bc01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000eb020000bc010000ee0200002102000005000000eb02bc01eb022102ee022102ee02bc01eb02bc01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000ee020000bc010000f20200002102000005000000ee02bc01ee022102f2022102f202bc01ee02bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c0000000400000025
+0000000c000000080000805600000030000000f2020000bc010000f60200002102000005000000f202bc01f2022102f6022102f602bc01f202bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000f6020000bc010000fa02000021020000
+05000000f602bc01f6022102fa022102fa02bc01f602bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000fa020000bc010000fe0200002102000005000000fa02bc01fa022102fe022102fe02bc01fa02bc01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000fe020000bc010000010300002102000005000000fe02bc01fe022102010321020103bc01fe02bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000001030000bc0100000503000021020000050000000103bc0101032102050321020503bc010103bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008
+000080560000003000000005030000bc0100000803000021020000050000000503bc0105032102080321020803bc010503bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000008030000bc0100000c03000021020000050000000803bc01
+080321020c0321020c03bc010803bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000000c030000bc0100001003000021020000050000000c03bc010c032102100321021003bc010c03bc01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000010030000bc0100001503000021020000050000001003bc0110032102150321021503bc011003bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebda
+c30000000000250000000c00000004000000250000000c00000008000080560000003000000015030000bc0100001803000021020000050000001503bc0115032102180321021803bc011503bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030
+00000018030000bc0100001c03000021020000050000001803bc01180321021c0321021c03bc011803bc01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000001c030000bc0100001e03000021020000050000001c03bc011c0321021e032102
+1e03bc011c03bc01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008b02eafd8d0065003a0000000c0000000a000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007a020000a501000035030000380200000400000010291022e0311022e031c01b1029c01b250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009502000049feffff0f0300003cfeffff16000000
+0c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000b4020000c2010000fc020000ce0100000100000000400d4200040dc2ae02000049feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000
+000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054
+0000009c000000b9020000cf010000f7020000da0100000100000000400d4200040dc2b30200003cfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000500072006500630069007000690074006100740069006f006e000080070000000400000006000000060000000300000006000000030000000300000006000000030000000300000006000000060000000a00000010000000faffffff
+0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008b022afe18032afe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000
+000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000007a020000ca01
+000035030000f8010000020000001029101ee031101e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b000000540000005400000096020000e501000099020000f10100000100000000400d4200040dc29002000026feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007374030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000a0000000a7020000e5010000fa020000f10100000100000000400d4200040dc2a102000026feffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000480045004100560059005f005200410049004e0020003d002000310007000000070000000700000007000000070000000600000007000000070000000300000007000000030000000600000003000000060000000a
+00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000096020000f201000099020000fe0100000100000000400d4200040dc29002000019feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007d5c030000
+000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000a7020000f20100001a030000fe0100000100000000400d4200040dc2a102000019feffff120000004c000000000000000000000000000000ffffffffffffffff700000004800450041
+00560059005f0053004e004f005700460041004c004c0020003d00200032000700000007000000070000000700000007000000060000000700000007000000080000000900000006000000070000000600000006000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b000000540000005400000096020000ff010000990200000b0200000100000000400d4200040dc2900200000cfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006472030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b000000540000009c000000a7020000ff010000f20200000b0200000100000000400d4200040dc2a10200000cfeffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000053004f00460054005f004800410049004c0020003d0020003300746507000000080000000600000007000000060000000700000007000000030000000600000003000000
+0600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005a026cfdc60054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000
+0002000000250000000c00000001000000250000000c000000080000805600000030000000600200004b020000260300009f020000050000000026b0240026f0296032f0296032b0240026b024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005a026cfdc60054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000
+000000250000000c00000004000000250000000c00000005000080560000002c00000049020000340200003d030000b6020000040000000026f0296032f0296032b0240026b024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000
+454d462b08400201580000004c0000000210c0db04000000040000000000000000c01544004024c4000046430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000057026ffdc6005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c000000040000
+00250000000c0000000800008056000000300000005d02000048020000c40200009c020000050000005d0248025d029c02c4029c02c40248025d024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000c402000048020000c90200009c02
+000005000000c4024802c4029c02c9029c02c9024802c4024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000c902000048020000ce0200009c02000005000000c9024802c9029c02ce029c02ce024802c9024802250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ce02000048020000d30200009c02000005000000ce024802ce029c02d3029c02d3024802ce024802250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d302000048020000d80200009c02000005000000d3024802d3029c02d8029c02d8024802d3024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000d802000048020000dd0200009c02000005000000d8024802d8029c02dd029c02dd024802d8024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000dd02000048020000e20200009c02000005000000dd02
+4802dd029c02e2029c02e2024802dd024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000e202000048020000e70200009c02000005000000e2024802e2029c02e7029c02e7024802e2024802250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000e702000048020000ec0200009c02000005000000e7024802e7029c02ec029c02ec024802e7024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000ec02000048020000f00200009c02000005000000ec024802ec029c02f0029c02f0024802ec024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000
+0030000000f002000048020000f60200009c02000005000000f0024802f0029c02f6029c02f6024802f0024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000f602000048020000fa0200009c02000005000000f6024802f6029c02fa02
+9c02fa024802f6024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000fa02000048020000fd0200009c02000005000000fa024802fa029c02fd029c02fd024802fa024802250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000fd02000048020000020300009c02000005000000fd024802fd029c0202039c0202034802fd024802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000
+250000000c00000004000000250000000c0000000800008056000000300000000203000048020000070300009c020000050000000203480202039c0207039c020703480202034802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000070300
+00480200000c0300009c020000050000000703480207039c020c039c020c03480207034802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000c03000048020000130300009c020000050000000c0348020c039c0213039c02130348020c03
+4802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000001303000048020000180300009c020000050000001303480213039c0218039c021803480213034802250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000018030000480200001d0300009c020000050000001803480218039c021d039c021d03480218034802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c000000
+04000000250000000c0000000800008056000000300000001d03000048020000220300009c020000050000001d0348021d039c0222039c02220348021d034802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000002203000048020000230300
+009c020000050000002203480222039c0223039c022303480222034802250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005702
+6ffdc60054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000046020000310200003a030000b302000004000000d025c02930
+32c02930328024d0258024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000
+0061020000bdfdffff14030000b0fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000009c0200004e020000e40200005a0200000100000000400d4200040dc296020000bdfdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f00
+6e00bb003845060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000003000000180000000c0000000000000054000000a8000000950200005b020000ec020000660200000100000000400d4200040dc28f020000b0fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005200650063006b006c0065007300730050006500720073006f006e0073006c74070000000600000006000000060000000300000006000000060000000600000007000000060000
+0004000000060000000600000006000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000057029efd1d039efd00010101154001001000
+000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c
+00000004000000250000000c00000005000080570000002400000046020000560200003a0300008402000002000000d025d0263032d026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000006202000071020000650200007d0200000100000000400d4200040dc25c0200009afdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006673030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000007302000071020000e80200007d0200000100000000400d4200040dc26d0200009afdffff130000004c000000000000000000000000000000ffffffffffffffff740000005200450043004b004c004500530053005f0044005200490056004500520020003d00200031006c64070000000700000007000000
+070000000600000007000000070000000700000006000000070000000700000003000000070000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000620200007e0200006502
+00008a0200000100000000400d4200040dc25c0200008dfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006368030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000730200007e020000
+ea0200008a0200000100000000400d4200040dc26d0200008dfdffff130000004c000000000000000000000000000000ffffffffffffffff74000000470055004e0046004900520045005f004f004e005f0052004f004100440020003d0020003200663408000000070000000700000006000000030000000700000007000000060000000800000007000000060000000700000008000000070000000700000003000000060000
+0003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000620200008b02000065020000970200000100000000400d4200040dc25c02000080fdffff010000004c000000000000000000000000000000ffffffffffffffff50
+00000020006c6f030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000730200008b0200001f030000970200000100000000400d4200040dc26d02000080fdffff1a0000004c000000000000000000000000000000ffffffffffffff
+ff80000000530054004f004e0045005f005400480052004f00570049004e0047005f0050004500520053004f004e00530020003d002000330007000000070000000800000007000000070000000600000007000000070000000700000008000000090000000300000007000000080000000600000007000000070000000700000007000000080000000700000007000000030000000600000003000000060000000a0000001000
+0000faffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000440298fce000a2002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000000100000025
+0000000c0000000800008056000000300000004a020000d10200002a0300007303000005000000a024102da0243037a0323037a032102da024102d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f
+0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000440298fce000a2003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000
+000c00000005000080560000002c00000033020000ba020000410300008a03000004000000a0243037a0323037a032102da024102d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210
+c0db04000000040000000000000000401044004059c40000604300002243bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000041029bfce000a200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030
+00000047020000ce020000bc02000070030000050000004702ce0247027003bc027003bc02ce024702ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000bc020000ce020000c10200007003000005000000bc02ce02bc027003c1027003
+c102ce02bc02ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000c1020000ce020000c70200007003000005000000c102ce02c1027003c7027003c702ce02c102ce02250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000c7020000ce020000cd0200007003000005000000c702ce02c7027003cd027003cd02ce02c702ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc00000000002500
+00000c00000004000000250000000c000000080000805600000030000000cd020000ce020000d20200007003000005000000cd02ce02cd027003d2027003d202ce02cd02ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d2020000ce
+020000d80200007003000005000000d202ce02d2027003d8027003d802ce02d202ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000d8020000ce020000dd0200007003000005000000d802ce02d8027003dd027003dd02ce02d802ce02
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000dd020000ce020000e30200007003000005000000dd02ce02dd027003e3027003e302ce02dd02ce02250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000e3020000ce020000e90200007003000005000000e302ce02e3027003e9027003e902ce02e302ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c0000000400
+0000250000000c000000080000805600000030000000e9020000ce020000ee0200007003000005000000e902ce02e9027003ee027003ee02ce02e902ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ee020000ce020000f402000070
+03000005000000ee02ce02ee027003f4027003f402ce02ee02ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000f4020000ce020000f80200007003000005000000f402ce02f4027003f8027003f802ce02f402ce02250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000f8020000ce020000fc0200007003000005000000f802ce02f8027003fc027003fc02ce02f802ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000fc020000ce020000020300007003000005000000fc02ce02fc027003020370030203ce02fc02ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00
+000008000080560000003000000002030000ce0200000703000070030000050000000203ce0202037003070370030703ce020203ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000007030000ce0200000d030000700300000500000007
+03ce02070370030d0370030d03ce020703ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000d030000ce0200001403000070030000050000000d03ce020d037003140370031403ce020d03ce02250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000014030000ce0200001b03000070030000050000001403ce02140370031b0370031b03ce021403ce02250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000001b030000ce0200002103000070030000050000001b03ce021b037003210370032103ce021b03ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600
+00003000000021030000ce0200002603000070030000050000002103ce0221037003260370032603ce022103ce02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000026030000ce0200002703000070030000050000002603ce022603700327
+0370032703ce022603ce02250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000041029bfce000a2003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000030020000b70200003e030000870300000400000070240037703200377032e02c7024e02c250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+0000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004b02000037fdffff180300002afdffff16
+0000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000093020000d4020000db020000e00200000100000000400d4200040dc28d02000037fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb006c61060000000600000006000000
+060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000
+000054000000880000009a020000e1020000d4020000ec0200000100000000400d4200040dc2940200002afdffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004d0061006a006f0072004500760065006e007400090000000600000004000000060000000400000007000000070000000600000006000000030000000a00000010000000faffffff0b0000000c000000100000000000000000
+000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000410218fd210318fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000
+00000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000030020000dc0200003e0300000a03000002000000702430
+2f7032302f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c020000f7
+0200004f020000030300000100000000400d4200040dc24602000014fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006272030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000005d0200
+00f7020000c3020000030300000100000000400d4200040dc25702000014fdffff100000004c000000000000000000000000000000ffffffffffffffff6c000000530050004f005200540053005f004500560045004e00540020003d0020003100070000000700000008000000070000000700000007000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000
+0000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c020000040300004f020000100300000100000000400d4200040dc24602000007fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c68030000000a000000
+10000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000005d02000004030000ca020000100300000100000000400d4200040dc25702000007fdffff110000004c000000000000000000000000000000ffffffffffffffff70000000440045004d004f004e00
+5300540052004100540049004f004e0020003d0020003200666c07000000070000000900000008000000070000000700000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000540000004c020000110300004f0200001d0300000100000000400d4200040dc246020000fafcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000315c030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000008b00000054000000080100005d02000011030000230300001d0300000100000000400d4200040dc257020000fafcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000440045004d004f004e005300540052004100540049004f004e005f0057004900540048005f00560045004800490043004c004500530020003d00200033005c6207000000070000000900000008
+0000000700000007000000070000000700000007000000070000000300000008000000070000000600000009000000030000000700000007000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c0200001e0300004f0200002a0300000100000000400d4200040dc246020000edfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020003333030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b00000054000000900000005d0200001e030000a10200002a0300000100000000400d4200040dc257020000edfcffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000043004f004e00430045005200540020003d00200034003835070000000800000007000000070000000700000007000000070000000300000006000000
+03000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c0200002b0300004f020000370300000100000000400d4200040dc246020000e0fcffff010000004c000000000000000000000000000000ffffffffffffffff5000
+00002000385c030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007c0000005d0200002b03000086020000370300000100000000400d4200040dc257020000e0fcffff080000004c000000000000000000000000000000ffffffffffffffff
+5c000000460041004900520020003d002000350006000000070000000300000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c020000380300004f02000044030000010000000040
+0d4200040dc246020000d3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006869030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000005d02000038030000d70200004403000001000000
+00400d4200040dc257020000d3fcffff150000004c000000000000000000000000000000ffffffffffffffff780000004d0049004c00490054004100520059005f0054005200410049004e0049004e00470020003d00200036007461090000000300000006000000030000000700000007000000070000000700000006000000070000000700000007000000030000000700000003000000070000000800000003000000060000
+0003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c020000450300004f020000510300000100000000400d4200040dc246020000c6fcffff010000004c000000000000000000000000000000ffffffffffffffff50
+00000020006263030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000005d02000045030000e8020000510300000100000000400d4200040dc257020000c6fcffff160000004c000000000000000000000000000000ffffffffffffff
+ff7800000045004d0045005200470045004e00430059005f0054005200410049004e0049004e00470020003d0020003700070000000900000007000000070000000800000007000000070000000700000007000000060000000700000007000000070000000300000007000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000006
+0000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c020000520300004f0200005e0300000100000000400d4200040dc246020000b9fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007d5c030000000a00000010000000faffffff0b0000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000005d02000052030000a50200005e0300000100000000400d4200040dc257020000b9fcffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000046004500530054004900560049005400590020003d00200038005c70060000000700
+000007000000070000000300000007000000030000000700000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004c0200005f0300004f0200006b0300000100000000400d4200040dc2
+46020000acfcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000315c030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000005d0200005f030000b30200006b0300000100000000400d420004
+0dc257020000acfcffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000500052004f00430045005300530049004f004e0020003d002000390007000000070000000800000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000002c00000020
+000000454d462b0a4000c01c00000010000000c0bfc0ff010000003b0212fce00072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000410200008703000021030000f9030000
+05000000102470381024903f1032903f1032703810247038250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000
+00010000003b0212fce00072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002a0200007003000038030000100400000400
+00001024903f1032903f1032703810247038250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000000e4400c07ac4000060430000e442bed7e8ffe3
+f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000380215fce0007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000003e02000084030000b3020000f6030000050000003e0284033e02f603b302f603
+b30284033e028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000b302000084030000b8020000f603000005000000b3028403b302f603b802f603b8028403b3028403250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000b802000084030000be020000f603000005000000b8028403b802f603be02f603be028403b8028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd00000000002500
+00000c00000004000000250000000c000000080000805600000030000000be02000084030000c4020000f603000005000000be028403be02f603c402f603c4028403be028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000c402000084
+030000c9020000f603000005000000c4028403c402f603c902f603c9028403c4028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000c902000084030000cf020000f603000005000000c9028403c902f603cf02f603cf028403c9028403
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000084030000d4020000f603000005000000cf028403cf02f603d402f603d4028403cf028403250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000d402000084030000da020000f603000005000000d4028403d402f603da02f603da028403d4028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c0000000400
+0000250000000c000000080000805600000030000000da02000084030000e0020000f603000005000000da028403da02f603e002f603e0028403da028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e002000084030000e5020000f6
+03000005000000e0028403e002f603e502f603e5028403e0028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e502000084030000eb020000f603000005000000e5028403e502f603eb02f603eb028403e5028403250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000eb02000084030000ef020000f603000005000000eb028403eb02f603ef02f603ef028403eb028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ef02000084030000f3020000f603000005000000ef028403ef02f603f302f603f3028403ef028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000f302000084030000f9020000f603000005000000f3028403f302f603f902f603f9028403f3028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f902000084030000fe020000f603000005000000f9
+028403f902f603fe02f603fe028403f9028403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000fe0200008403000004030000f603000005000000fe028403fe02f6030403f60304038403fe028403250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000004030000840300000b030000f603000005000000040384030403f6030b03f6030b03840304038403250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000b0300008403000012030000f6030000050000000b0384030b03f6031203f603120384030b038403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600
+000030000000120300008403000018030000f603000005000000120384031203f6031803f6031803840312038403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000018030000840300001d030000f603000005000000180384031803f6031d
+03f6031d03840318038403250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000001d030000840300001e030000f6030000050000001d0384031d03f6031e03f6031e0384031d038403250000000c00000008000080250000000c00000000000080
+280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000380215fce00072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000
+005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000270200006d030000350300000d04000004000000e023603fe031603fe0314038e0234038250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004202000081fcffff0f03000074fcffff160000000c00000001000000120000000c000000010000001b0000001000000000000000
+00000000160000000c00000000000000540000009c0000008a0200008a030000d2020000960300000100000000400d4200040dc28402000081fcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb005c660600000006000000060000000600000009000000060000000300000006000000030000000300000006000000060000
+00060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c00000007b02000097030000e2020000a20300000100000000400d4200
+040dc27502000074fcffff130000004c000000000000000000000000000000ffffffffffffffff7400000053006500720076006900630065004e006f0074004f007000650072006100740069006e0067003834070000000600000004000000070000000300000006000000060000000700000006000000030000000800000006000000060000000400000006000000030000000300000006000000060000000a00000010000000
+faffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000380262fc180362fc00010101154001001000000004000000000000002100000008000000620000000c000000010000
+00110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002702
+00009203000035030000c003000002000000e023903ae031903a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b000000540000005400000043020000ad03000046020000b90300000100000000400d4200040dc23d0200005efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006673030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b000000540000000801000054020000ad0300001a030000b90300000100000000400d4200040dc24e0200005efcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000460045005200520059005f0053004500520056004900430045005f004e004f0054005f004f005000450052004100540049004e00470020003d002000310069660600000007000000070000000700000007
+00000006000000070000000700000007000000070000000300000007000000070000000600000007000000080000000700000006000000080000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b000000540000005400000043020000ba03000046020000c60300000100000000400d4200040dc23d02000051fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005f32030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b000000540000000801000054020000ba0300001a030000c60300000100000000400d4200040dc24e02000051fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000050004c0041004e0045005f0053004500520056004900430045005f004e004f0054005f004f005000450052004100540049004e00470020003d00200032006472
+070000000600000007000000070000000700000006000000070000000700000007000000070000000300000007000000070000000600000007000000080000000700000006000000080000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000043020000c703000046020000d30300000100000000400d4200040dc23d02000044fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006365030000000a00000010000000faffffff0b0000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000060000000b00000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000054020000c703000017030000d30300000100000000400d4200040dc24e02000044fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000054005200410049004e005f0053004500520056004900430045005f004e004f0054005f004f00500045005200410054
+0049004e00470020003d00200033005c66070000000700000007000000030000000700000006000000070000000700000007000000070000000300000007000000070000000600000007000000080000000700000006000000080000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000043020000d403000046020000e00300000100000000400d4200040dc23d02000037fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c66030000000a00000010000000faffffff0b0000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000060000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000054020000d40300000d030000e00300000100000000400d4200040dc24e02000037fcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004200550053005f0053004500520056004900430045005f004e004f005400
+5f004f005000450052004100540049004e00470020003d0020003400627207000000070000000700000006000000070000000700000007000000070000000300000007000000070000000600000007000000080000000700000006000000080000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000faffffff0b0000000c00000010
+0000000000000000000000280000000c00000002000000280000000c000000030000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c000000640000000000000000000000500300001f040000000000000000000051030000200400002900aa0000000000000000000000803f00000000000000000000803f00000000000000000000000000000000
+00000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 5\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_EB9DD9A4_7E52_4021_969D_CA7AA264B1F0}{\*\bkmkend BKM_EB9DD9A4_7E52_4021_969D_CA7AA264B1F0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentSubCauseTables2}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw27931\pich18050\picwgoal15840\pichgoal10230\picscalex59\picscaley59\sspicalign0 010000006c000000f8ffffffffffffff210300000a02000000000000000000001c6d00008246000020454d460000010060f70000b50a0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff010001fe160301fe1603ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff180300000102000005000000100010001000f01f6031f01f6031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d00000001400000006000000
+10004001300c4001000d6000000d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd2000000160000000600000010004001300c4001000d6000000d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7668941a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300ba0a3500dc859e1027800a6007e4d0000dc59e102188d17
+010d3a0ad568941a247900d6007e4d000037bb40000d3a0ad570374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bb8901a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000bf0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020002730b9000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000240100000600000004000000c10000000f0000000100000000400d4200040dc206000000fcffffff240000004c000000000000000000000000000000ffffffffffffffff9400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400530075006200430061007500730065005400610062006c0065007300320006000000030000000600000006000000
+06000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000700000006000000060000000700000006000000060000000600000006000000050000000600000006000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000
+000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000e0c10000a0c00a4000c01c00000010000000c0bfc0ff010000002e006dffaa007200280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100
+000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000bc0000008e000000050000002001c0012001e008c00be008c00bc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002e006dffaa0072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff05000000d3000000a5000000040000002001e008c00be008c00bc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000002c42000010c300002a430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+00002b0070ffaa007200250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f00000019000000680000008b000000050000000f0019000f008b0068008b00680019000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000fbf1e10000000000250000000c00000002000000250000000c00000008000080560000003000000068000000190000006c0000008b000000050000006800190068008b006c008b006c00190068001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080
+56000000300000006c00000019000000700000008b000000050000006c0019006c008b0070008b00700019006c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c0000000800008056000000300000007000000019000000740000008b000000050000007000190070008b
+0074008b007400190070001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000007400000019000000780000008b000000050000007400190074008b0078008b007800190074001900250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c00000008000080560000003000000078000000190000007d0000008b000000050000007800190078008b007d008b007d00190078001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000
+000000250000000c00000002000000250000000c0000000800008056000000300000007d00000019000000810000008b000000050000007d0019007d008b0081008b00810019007d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000
+8100000019000000860000008b000000050000008100190081008b0086008b008600190081001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c00000008000080560000003000000086000000190000008b0000008b000000050000008600190086008b008b008b008b0019
+0086001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c0000000800008056000000300000008b00000019000000900000008b000000050000008b0019008b008b0090008b00900019008b001900250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000009000000019000000940000008b000000050000009000190090008b0094008b009400190090001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c
+00000002000000250000000c0000000800008056000000300000009400000019000000980000008b000000050000009400190094008b0098008b009800190094001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c00000002000000250000000c0000000800008056000000300000009800000019000000
+9b0000008b000000050000009800190098008b009b008b009b00190098001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c0000000800008056000000300000009b000000190000009f0000008b000000050000009b0019009b008b009f008b009f0019009b001900250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000009f00000019000000a30000008b000000050000009f0019009f008b00a3008b00a30019009f001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000a300000019000000a80000008b00000005000000a3001900a3008b00a8008b00a8001900a3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c0000000200000025
+0000000c000000080000805600000030000000a800000019000000ae0000008b00000005000000a8001900a8008b00ae008b00ae001900a8001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000ae00000019000000b20000008b000000
+05000000ae001900ae008b00b2008b00b2001900ae001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000b200000019000000b60000008b00000005000000b2001900b2008b00b6008b00b6001900b2001900250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000b600000019000000b90000008b00000005000000b6001900b6008b00b9008b00b9001900b6001900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c0000000700
+0080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002b0070ffaa0072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000f8ffffff02000000d0000000a200000004000000f000b008900bb008900b9001f0009001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+e1021857e102245736019c58530b1457e1029696190183390a6c9c58530bb296190100000000388f1a248ce3c577738c172646e0c5779401300b0000300b188d170183390a6c7700e4008a4d0000c457e10237bb400083390a6c388f1a247800a6008a4d00009087a1263c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b388f1a24f0374b0b000000001457e10200000000b058e102f5
+71ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000308f1a24dc57e10223e0c577388f1a243a6c2e7608654501308f1a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000035000000dcffffffcc000000cfffffff160000000c00000001000000120000000c00000001000000
+1b000000100000000000000000000000160000000c00000000000000540000009c000000400000001f000000880000002b0000000100000000400d4200040dc25c000000dcffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0027300600000006000000060000000600000009000000060000000300000006000000030000
+00030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc02000000000001000005004100520049
+0041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76388f1a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b98a3d0061c58e10278004c018c4d00003058e102188d170183390a6d388f1a247900d6008c4d000037bb4000
+83390a6d70374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0bb8901a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a1268b4d00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c000000030000
+00180000000c0000000000000054000000ac000000380000002c00000091000000370000000100000000400d4200040dc254000000cfffffff100000004c000000000000000000000000000000ffffffffffffffff6c00000053006500720076006900630065004e006f00740055007300610062006c00650007000000060000000400000007000000030000000600000006000000070000000600000003000000070000000600
+0000060000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002b00bdffd500bdff00010101154001001000000004
+000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000
+04000000250000000c000000050000805700000024000000f8ffffff27000000d00000005500000002000000f000e003900be003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000042000000170000004e0000000100000000400d4200040dc230000000b9ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006e74030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000002500000042000000b50000004e0000000100000000400d4200040dc241000000b9ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004600550045004c005f00530054004100540049004f004e005f0043004c004f0053004500440020003d0020003100313006000000070000
+000700000006000000060000000700000007000000070000000700000003000000080000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+0000005400000054000000140000004f000000170000005b0000000100000000400d4200040dc230000000acffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006832030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b00000054000000d8000000250000004f000000b60000005b0000000100000000400d4200040dc241000000acffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000053004500520056004900430045005f0041005200450041005f0043004c004f0053004500440020003d002000320000640700000007000000070000000700000003000000070000000700000006000000070000000700
+0000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000005c000000170000006800000001000000
+00400d4200040dc2300000009fffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000250000005c000000a8000000680000000100
+000000400d4200040dc2410000009fffffff150000004c000000000000000000000000000000ffffffffffffffff7800000053004500520056004900430045005f0041005200450041005f00420055005300590020003d0020003300000007000000070000000700000007000000030000000700000007000000060000000700000007000000070000000700000006000000070000000700000007000000070000000300000006
+00000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000006900000017000000750000000100000000400d4200040dc23000000092ffffff010000004c000000000000000000000000000000ffffffffffffff
+ff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000250000006900000084000000750000000100000000400d4200040dc24100000092ffffff100000004c000000000000000000000000000000ffffffffff
+ffffff6c0000005000410052004b0049004e0047005f00460055004c004c0020003d0020003400070000000700000007000000070000000300000007000000080000000600000006000000070000000600000006000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b0000005400000054000000140000007600000017000000820000000100000000400d4200040dc23000000085ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b00000054000000c000000025000000760000009e000000820000000100000000400d4200040dc24100000085ffffff130000004c000000000000000000000000000000ffffffffffffffff740000004300410052005f005000410052004b005f0043004c004f0053004500440020003d0020003500000007000000070000000700000006000000070000000700000007000000
+0700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003500a1fe1b0195002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000
+000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000019000000c5000000340100005a010000050000009001500c9001a0154013a0154013500c9001500c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003500a1fe1b0195003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000
+0000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000002000000ae0000004b01000071010000040000009001a0154013a0154013500c9001500c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000
+280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000048420000aec300808d4300001543bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003200a4fe1b019500250000000c000000080000
+8027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000016000000c2000000a900000057010000050000001600c20016005701a9005701a900c2001600c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c0000000400
+0000250000000c000000080000805600000030000000a9000000c2000000b00000005701000005000000a900c200a9005701b0005701b000c200a900c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000b0000000c2000000b800000057
+01000005000000b000c200b0005701b8005701b800c200b000c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000b8000000c2000000bf0000005701000005000000b800c200b8005701bf005701bf00c200b800c200250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000bf000000c2000000c50000005701000005000000bf00c200bf005701c5005701c500c200bf00c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000c5000000c2000000cd0000005701000005000000c500c200c5005701cd005701cd00c200c500c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00
+0000080000805600000030000000cd000000c2000000d40000005701000005000000cd00c200cd005701d4005701d400c200cd00c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000d4000000c2000000db0000005701000005000000d4
+00c200d4005701db005701db00c200d400c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000db000000c2000000e20000005701000005000000db00c200db005701e2005701e200c200db00c200250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e2000000c2000000e90000005701000005000000e200c200e2005701e9005701e900c200e200c200250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e9000000c2000000f00000005701000005000000e900c200e9005701f0005701f000c200e900c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600
+000030000000f0000000c2000000f60000005701000005000000f000c200f0005701f6005701f600c200f000c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000f6000000c2000000fb0000005701000005000000f600c200f6005701fb
+005701fb00c200f600c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000fb000000c2000000020100005701000005000000fb00c200fb005701020157010201c200fb00c200250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000002010000c20000000901000057010000050000000201c20002015701090157010901c2000201c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc800000000
+00250000000c00000004000000250000000c00000008000080560000003000000009010000c20000001001000057010000050000000901c20009015701100157011001c2000901c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000001001
+0000c20000001901000057010000050000001001c20010015701190157011901c2001001c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000019010000c20000002201000057010000050000001901c20019015701220157012201c20019
+01c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000022010000c20000002901000057010000050000002201c20022015701290157012901c2002201c200250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000029010000c20000003001000057010000050000002901c20029015701300157013001c2002901c200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c0000
+0004000000250000000c00000008000080560000003000000030010000c20000003101000057010000050000003001c20030015701310157013101c2003001c200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100
+0000000000000210c0db00000000000000ff0b400040180000000c000000010000003200a4fe1b0195003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005
+000080560000002c000000ffffffffab000000480100006e0100000400000060017015101370151013200c6001200c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c000000000000001e000000180000003c00000033ffffff4401000026ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000080000000c8000000c8000000d40000000100000000400d4200040dc29c00000033ffffff0d0000004c00000000000000000000000000
+0000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b80000006f000000d5000000d8000000e00000000100000000400d4200040dc28b00000026ffffff120000004c000000000000000000000000000000ffffffffffffffff7000000053006c006f0077004d006f00760069006e006700560065006800690063006c00650073
+000700000003000000060000000900000009000000060000000700000003000000060000000600000007000000060000000600000003000000060000000300000006000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210
+c0db00000000000000ff0840010324000000180000000210c0db0200000000400000320014ff4d0114ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004
+0000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000ffffffffd000000048010000fe000000020000006001700e1013700e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000
+280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000eb0000001e000000f70000000100000000400d4200040dc23700000010ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000
+0000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000200100002c000000eb0000000f010000f70000000100000000400d4200040dc24800000010ffffff230000004c000000000000000000000000000000ffffffffffffffff94000000
+53004c004f0057005f004d004f00560049004e0047005f004d00410049004e00540045004e0041004e00430045005f00560045004800490043004c00450020003d002000310000000700000006000000080000000900000006000000090000000800000007000000030000000700000008000000060000000900000007000000030000000700000007000000070000000700000007000000070000000700000007000000060000
+0007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000f80000001e000000040100000100000000400d4200040dc237
+00000003ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c0100002c000000f80000002d010000040100000100000000400d4200040d
+c24800000003ffffff280000004c000000000000000000000000000000ffffffffffffffff9c000000560045004800490043004c00450053005f0053004c004f00570049004e0047005f0054004f005f004c004f004f004b005f00410054005f004100430043004900440045004e00540020003d002000320007000000070000000700000003000000070000000600000007000000070000000600000007000000060000000800
+0000090000000300000007000000080000000600000007000000080000000600000006000000080000000800000007000000060000000700000007000000060000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000050100001e000000110100000100000000400d4200040dc237000000f6feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000002c000000050100009a000000110100000100000000400d4200040dc248000000f6feffff110000004c000000000000000000000000000000ffffffffffffffff70000000410042004e004f0052004d0041004c005f004c004f004100440020003d00200033000000070000000700000007000000080000000700000009
+00000007000000060000000600000006000000080000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000120100001e0000001e0100000100000000400d4200040d
+c237000000e9feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000103030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000002c00000012010000ba0000001e0100000100000000400d4200
+040dc248000000e9feffff160000004c000000000000000000000000000000ffffffffffffffff78000000410042004e004f0052004d0041004c005f0057004900440045005f004c004f004100440020003d00200034000700000007000000070000000800000007000000090000000700000006000000060000000900000003000000070000000700000006000000060000000800000007000000070000000300000006000000
+03000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b0000001f0100001e0000002b0100000100000000400d4200040dc237000000dcfeffff010000004c000000000000000000000000000000ffffffffffffffff5000
+000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000880000002c0000001f0100006a0000002b0100000100000000400d4200040dc248000000dcfeffff0a0000004c000000000000000000000000000000ffffffffffffffff
+6000000043004f004e0056004f00590020003d0020003500070000000800000007000000070000000800000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b0000002c0100001e00
+0000380100000100000000400d4200040dc237000000cffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000002c0000002c010000
+88000000380100000100000000400d4200040dc248000000cffeffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000053004e004f00570050004c004f0055004700480020003d002000360007000000070000000800000009000000070000000600000008000000070000000800000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000390100001e000000450100000100000000400d4200040dc237000000c2feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000900000002c0000003901000068000000450100000100000000400d4200040dc248000000c2feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000440045004900430049004e00470020003d00200037000000070000
+00070000000300000007000000030000000700000008000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000460100001e000000520100000100000000400d4200040dc237000000b5
+feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000080030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c40000002c00000046010000a4000000520100000100000000400d4200040dc2480000
+00b5feffff140000004c000000000000000000000000000000ffffffffffffffff74000000530041004c00540049004e0047005f00560045004800490043004c004500530020003d002000380007000000070000000600000007000000030000000700000008000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a000000100000001c00
+0000fbffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000490008feb00072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c
+0000000800008056000000300000002d00000081010000dd000000f301000005000000d0021018d002301fd00d301fd00d1018d0021018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000
+01000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000490008feb00072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000
+0005000080560000002c000000160000006a010000f40000000a02000004000000d002301fd00d301fd00d1018d0021018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400
+0000040000000000000000008c420080fac3000030430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000046000bfeb0007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002a
+0000007e01000086000000f0010000050000002a007e012a00f0018600f00186007e012a007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000860000007e0100008a000000f00100000500000086007e018600f0018a00f0018a007e01
+86007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008a0000007e0100008f000000f0010000050000008a007e018a00f0018f00f0018f007e018a007e01250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000008f0000007e01000094000000f0010000050000008f007e018f00f0019400f00194007e018f007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00
+000004000000250000000c000000080000805600000030000000940000007e0100009a000000f00100000500000094007e019400f0019a00f0019a007e0194007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000009a0000007e0100009e
+000000f0010000050000009a007e019a00f0019e00f0019e007e019a007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000009e0000007e010000a2000000f0010000050000009e007e019e00f001a200f001a2007e019e007e0125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a20000007e010000a8000000f001000005000000a2007e01a200f001a800f001a8007e01a2007e01250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000a80000007e010000ad000000f001000005000000a8007e01a800f001ad00f001ad007e01a8007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c000000040000002500
+00000c000000080000805600000030000000ad0000007e010000b2000000f001000005000000ad007e01ad00f001b200f001b2007e01ad007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b20000007e010000b5000000f001000005
+000000b2007e01b200f001b500f001b5007e01b2007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b50000007e010000b8000000f001000005000000b5007e01b500f001b800f001b8007e01b5007e01250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000b80000007e010000bd000000f001000005000000b8007e01b800f001bd00f001bd007e01b8007e01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000bd0000007e010000c1000000f001000005000000bd007e01bd00f001c100f001c1007e01bd007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800
+00805600000030000000c10000007e010000c6000000f001000005000000c1007e01c100f001c600f001c6007e01c1007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000c60000007e010000cb000000f001000005000000c6007e01c6
+00f001cb00f001cb007e01c6007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000cb0000007e010000d1000000f001000005000000cb007e01cb00f001d100f001d1007e01cb007e01250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000d10000007e010000d5000000f001000005000000d1007e01d100f001d500f001d5007e01d1007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c0
+0000000000250000000c00000004000000250000000c000000080000805600000030000000d50000007e010000d9000000f001000005000000d5007e01d500f001d900f001d9007e01d5007e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000d90000007e010000da000000f001000005000000d9007e01d900f001da00f001da007e01d9007e01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b40004018
+0000000c0000000100000046000bfeb00072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001300000067010000f1000000
+0702000004000000a002001fa00d001fa00de017a002e017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+0000000000001e000000180000005000000077feffffed0000006afeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000005e00000084010000a6000000900100000100000000400d4200040dc27a00000077feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d
+00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000
+000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c00000004900000091010000bc0000009c0100000100000000400d4200040dc2650000006afeffff130000004c000000000000000000000000000000ffffffffffffffff74000000440061006e006700650072006f007500730045006e0064004f0066005100750065007500650000c0070000000600000006000000060000000600
+000004000000060000000600000006000000070000000600000006000000080000000300000008000000060000000600000006000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324
+000000180000000210c0db0200000000400000460058fef60058fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000
+0000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000130000008c010000f1000000ba01000002000000a002301aa00d301a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000
+000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f000000a701000032000000b30100000100000000400d4200040dc24b00000054feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c
+000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000040000000a7010000d5000000b30100000100000000400d4200040dc25c00000054feffff170000004c000000000000000000000000000000ffffffffffffffff7c000000530055004400440045004e005f0045
+004e0044005f004f0046005f005100550045005500450020003d0020003100000007000000070000000700000007000000070000000700000006000000070000000700000007000000060000000800000006000000060000000800000007000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f000000b401000032000000c00100000100000000400d4200040dc24b00000047feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000040000000b4010000b5000000c00100000100000000400d4200040dc25c00000047feffff130000004c000000000000000000000000000000ffffffffffffffff74000000510055004500550045005f004f005600450052005f00480049004c004c0020003d00200032000000080000000700
+000007000000070000000700000006000000080000000700000007000000070000000600000007000000030000000600000006000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f000000
+c101000032000000cd0100000100000000400d4200040dc24b0000003afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000004000
+0000c1010000d6000000cd0100000100000000400d4200040dc25c0000003afeffff170000004c000000000000000000000000000000ffffffffffffffff7c000000510055004500550045005f00410052004f0055004e0044005f0041005f00420045004e00440020003d002000330000000800000007000000070000000700000007000000060000000700000007000000080000000700000007000000070000000600000007
+0000000600000007000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f000000ce01000032000000da0100000100000000400d4200040dc24b0000002dfeff
+ff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000040000000ce010000b5000000da0100000100000000400d4200040dc25c0000002d
+feffff130000004c000000000000000000000000000000ffffffffffffffff74000000510055004500550045005f0049004e005f00540055004e004e0045004c0020003d00200034000000080000000700000007000000070000000700000006000000030000000700000006000000070000000700000007000000070000000700000006000000030000000600000003000000060000000a000000100000001c000000fbffffff
+0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001a0195ff910045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000
+805600000030000000fe000000210000008f0100006600000005000000e00f1002e00f6006f0186006f0181002e00f1002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000c0bfc0ff0b400040180000000c000000010000001a0195ff910045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000000500008056
+0000002c000000e70000000a000000a60100007d00000004000000e00f6006f0186006f0181002e00f1002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000
+0000000000808b430000d0c20000114300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000170198ff91004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000fb0000001e0000
+00470100006300000005000000fb001e00fb0063004701630047011e00fb001e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000470100001e0000004a010000630000000500000047011e00470163004a0163004a011e0047011e002500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000004a0100001e0000004e01000063000000050000004a011e004a0163004e0163004e011e004a011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000004e0100001e0000005201000063000000050000004e011e004e0163005201630052011e004e011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000
+250000000c000000080000805600000030000000520100001e00000055010000630000000500000052011e00520163005501630055011e0052011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000550100001e00000059010000630000
+000500000055011e00550163005901630059011e0055011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000590100001e0000005c010000630000000500000059011e00590163005c0163005c011e0059011e00250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000005c0100001e0000006001000063000000050000005c011e005c0163006001630060011e005c011e00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000600100001e00000064010000630000000500000060011e00600163006401630064011e0060011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000
+080000805600000030000000640100001e00000067010000630000000500000064011e00640163006701630067011e0064011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000670100001e0000006b010000630000000500000067011e
+00670163006b0163006b011e0067011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006b0100001e0000006e01000063000000050000006b011e006b0163006e0163006e011e006b011e00250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006e0100001e0000007001000063000000050000006e011e006e0163007001630070011e006e011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0
+e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000700100001e00000074010000630000000500000070011e00700163007401630074011e0070011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000
+30000000740100001e00000078010000630000000500000074011e00740163007801630078011e0074011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000780100001e0000007c010000630000000500000078011e00780163007c0163
+007c011e0078011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000007c0100001e0000008001000063000000050000007c011e007c0163008001630080011e007c011e00250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000800100001e00000084010000630000000500000080011e00800163008401630084011e0080011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac2000000000025
+0000000c00000004000000250000000c000000080000805600000030000000840100001e00000088010000630000000500000084011e00840163008801630088011e0084011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000088010000
+1e0000008c010000630000000500000088011e00880163008c0163008c011e0088011e00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000
+0001000000170198ff910045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e400000007000000a30100007a0000000400
+0000b00f3006c0183006c018e001b00fe001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000
+1e0000001800000021010000d7ffffff9f010000caffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000200100002400000068010000300000000100000000400d4200040dc23c010000d7ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d006500720061
+00740069006f006e00bb000080060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ff
+ffff00250000000c00000003000000180000000c0000000000000054000000880000002a010000310000005e0100003c0000000100000000400d4200040dc246010000caffffff0a0000004c000000000000000000000000000000ffffffffffffffff600000005200690073006b004f0066004600690072006500070000000300000006000000060000000800000003000000060000000300000004000000060000000a000000
+100000001c000000fbffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001701b8ffa801b8ff00010101154001001000000004000000000000002100000008000000620000000c0000
+0001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400
+0000e40000002c000000a30100005a00000002000000b00f3004c0183004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b0000005400000054000000000100004700000003010000530000000100000000400d4200040dc21c010000b4ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000008b00000054000000c0000000110100004700000088010000530000000100000000400d4200040dc22d010000b4ffffff130000004c000000000000000000000000000000ffffffffffffffff740000004c00450041004b004100470045005f004f0046005f004600550045004c0020003d0020003100000006000000070000000700000007000000070000000800000007000000060000000800000006
+0000000600000006000000070000000700000006000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000000100005400000003010000600000000100000000400d4200040dc21c010000a7ffff
+ff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000110100005400000084010000600000000100000000400d4200040dc22d010000a7
+ffffff120000004c000000000000000000000000000000ffffffffffffffff700000004c00450041004b004100470045005f004f0046005f0047004100530020003d00200032000600000007000000070000000700000007000000080000000700000006000000080000000600000006000000080000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c00000010000000
+0000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008801c0fe210165002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000
+006c010000d60000008d0200003b01000005000000c016600dc016b013d028b013d028600dc016600d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000c0bfc0ff0b400040180000000c000000010000008801c0fe210165003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000055
+010000bf000000a40200005201000004000000c016b013d028b013d028600dc016600d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080c243
+00809ec3008090430000ca42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000008501c3fe21016500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000069010000d3000000ff010000380100
+00050000006901d30069013801ff013801ff01d3006901d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000ff010000d3000000070200003801000005000000ff01d300ff013801070238010702d300ff01d300250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000007020000d30000000e02000038010000050000000702d300070238010e0238010e02d3000702d300250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000000e020000d30000001502000038010000050000000e02d3000e023801150238011502d3000e02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000
+08000080560000003000000015020000d30000001c02000038010000050000001502d300150238011c0238011c02d3001502d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000001c020000d30000002402000038010000050000001c02d3
+001c023801240238012402d3001c02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000024020000d30000002b02000038010000050000002402d300240238012b0238012b02d3002402d300250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000002b020000d30000003302000038010000050000002b02d3002b023801330238013302d3002b02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4
+e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000033020000d30000003c02000038010000050000003302d300330238013c0238013c02d3003302d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000
+300000003c020000d30000004402000038010000050000003c02d3003c023801440238014402d3003c02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c00000008000080560000003000000044020000d30000004902000038010000050000004402d30044023801490238
+014902d3004402d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000049020000d30000004f02000038010000050000004902d300490238014f0238014f02d3004902d300250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000004f020000d30000005602000038010000050000004f02d3004f023801560238015602d3004f02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb000000000025
+0000000c00000004000000250000000c00000008000080560000003000000056020000d30000005d02000038010000050000005602d300560238015d0238015d02d3005602d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000005d020000
+d30000006502000038010000050000005d02d3005d023801650238016502d3005d02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000065020000d30000006d02000038010000050000006502d300650238016d0238016d02d3006502d3
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000006d020000d30000007602000038010000050000006d02d3006d023801760238017602d3006d02d300250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000076020000d30000007e02000038010000050000007602d300760238017e0238017e02d3007602d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004
+000000250000000c0000000800008056000000300000007e020000d30000008502000038010000050000007e02d3007e023801850238018502d3007e02d300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000085020000d30000008a020000
+38010000050000008502d300850238018a0238018a02d3008502d300250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008501c3
+fe210165003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000052010000bc000000a10200004f0100000400000090168013a028
+8013a028300d9016300d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000
+8f01000022ffffff9d02000015ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000d6010000d90000001e020000e50000000100000000400d4200040dc2f201000022ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e
+00bb005400060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c
+00000003000000180000000c000000000000005400000084000000e1010000e600000013020000f10000000100000000400d4200040dc2fd01000015ffffff090000004c000000000000000000000000000000ffffffffffffffff60000000540069006d006500440065006c006100790000000500000003000000090000000600000007000000060000000300000006000000050000000a000000100000001c000000fbffffff
+0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000850103ffa60203ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000
+00010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000052010000e1000000a102
+00000f010000020000009016800fa028800f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000540000006e010000fc00000071010000080100000100000000400d4200040dc28a010000fffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00
+000054000000e80000007f010000fc00000021020000080100000100000000400d4200040dc29b010000fffeffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000540049004d0045005f00440045004c00410059005f00410054005f00460052004f004e00540049004500520020003d002000310007000000030000000900000007000000060000000700000007000000060000000700000007
+000000060000000700000007000000060000000600000007000000080000000700000007000000030000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000006e010000090100
+0071010000150100000100000000400d4200040dc28a010000f2feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000007f01000009
+01000032020000150100000100000000400d4200040dc29b010000f2feffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000540049004d0045005f00440045004c00410059005f00410054005f00460045005200520059005f0050004f005200540020003d0020003200070000000300000009000000070000000600000007000000070000000600000007000000070000000600000007000000
+070000000600000006000000070000000700000007000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000006e010000160100007101
+0000220100000100000000400d4200040dc28a010000e5feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000480100007f01000016010000
+86020000220100000100000000400d4200040dc29b010000e5feffff2a0000004c000000000000000000000000000000ffffffffffffffffa0000000540049004d0045005f00440045004c00410059005f00410054005f00560045004800490043004c0045005f004f004e005f005200410049004c005f005400450052004d0049004e0041004c0020003d00200033000700000003000000090000000700000006000000070000
+000700000006000000070000000700000006000000070000000700000006000000070000000700000007000000030000000700000006000000070000000600000008000000070000000600000007000000070000000300000006000000060000000700000007000000070000000900000003000000070000000700000006000000030000000600000003000000060000000a000000100000001c000000fbffffff0c0000001000
+00000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004c0116fee20058002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030
+000000300100008d01000012020000e5010000050000000013d0180013501e2021501e2021d0180013d018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db
+00000000c0bfc0ff0b400040180000000c000000010000004c0116fee20058003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000
+00190100007601000029020000fc010000040000000013501e2021501e2021d0180013d018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080
+a4430080f3c3000062430000b042bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000490119fee2005800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002d0100008a010000a3010000e2
+010000050000002d018a012d01e201a301e201a3018a012d018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a30100008a010000a8010000e201000005000000a3018a01a301e201a801e201a8018a01a3018a01250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000a80100008a010000ae010000e201000005000000a8018a01a801e201ae01e201ae018a01a8018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ae0100008a010000b4010000e201000005000000ae018a01ae01e201b401e201b4018a01ae018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000b40100008a010000b9010000e201000005000000b4018a01b401e201b901e201b9018a01b4018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000b90100008a010000bf010000e201000005000000b9
+018a01b901e201bf01e201bf018a01b9018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000bf0100008a010000c5010000e201000005000000bf018a01bf01e201c501e201c5018a01bf018a01250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000c50100008a010000cb010000e201000005000000c5018a01c501e201cb01e201cb018a01c5018a01250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000cb0100008a010000d2010000e201000005000000cb018a01cb01e201d201e201d2018a01cb018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600
+000030000000d20100008a010000d8010000e201000005000000d2018a01d201e201d801e201d8018a01d2018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000d80100008a010000dc010000e201000005000000d8018a01d801e201dc
+01e201dc018a01d8018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000dc0100008a010000e1010000e201000005000000dc018a01dc01e201e101e201e1018a01dc018a01250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000e10100008a010000e7010000e201000005000000e1018a01e101e201e701e201e7018a01e1018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb00000000
+00250000000c00000004000000250000000c000000080000805600000030000000e70100008a010000ec010000e201000005000000e7018a01e701e201ec01e201ec018a01e7018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000ec01
+00008a010000f2010000e201000005000000ec018a01ec01e201f201e201f2018a01ec018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f20100008a010000f9010000e201000005000000f2018a01f201e201f901e201f9018a01f2
+018a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f90100008a01000000020000e201000005000000f9018a01f901e2010002e20100028a01f9018a01250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000000200008a01000006020000e20100000500000000028a010002e2010602e20106028a0100028a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c0000
+0004000000250000000c000000080000805600000030000000060200008a0100000b020000e20100000500000006028a010602e2010b02e2010b028a0106028a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000b0200008a0100000f02
+0000e2010000050000000b028a010b02e2010f02e2010f028a010b028a01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000049
+0119fee20058003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000160100007301000026020000f901000004000000d012201e
+f020201ef020a018d012a018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800
+0000530100006bfeffff220200005efeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007a01000090010000c20100009c0100000100000000400d4200040dc2960100006bfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f
+006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000
+000c00000003000000180000000c0000000000000054000000ac000000730100009d010000c9010000a80100000100000000400d4200040dc28f0100005efeffff100000004c000000000000000000000000000000ffffffffffffffff6c00000050006f006c0069006300650043006800650063006b0070006f0069006e0074000700000006000000030000000300000006000000060000000700000006000000060000000600
+00000600000006000000060000000300000006000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000049014cfe2b024cfe0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c000000050000805700000024000000160100009801000026020000c601000002000000d012f01af020f01a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000032010000b301000035010000bf0100000100000000400d4200040dc24e01000048feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff12000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000043010000b30100000b020000bf0100000100000000400d4200040dc25f01000048feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000005000450052004d0041004e0045004e0054005f0050004f004c004900430045005f0043004800450043004b0050004f
+0049004e00540020003d00200031000000070000000700000007000000090000000700000007000000070000000700000007000000060000000700000008000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000008000000030000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000032010000c001000035010000cc0100000100000000400d4200040dc24e0100003bfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000043010000c00100000c020000cc0100000100000000400d4200040dc25f0100003bfeffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000540045004d0050004f0052004100520059005f0050004f004c0049004300
+45005f0043004800450043004b0050004f0049004e00540020003d00200032000000070000000700000009000000070000000800000007000000070000000700000007000000060000000700000008000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000008000000030000000700000007000000030000000600000003000000060000000a000000100000001c
+000000fbffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000de016cff48016e002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000000100000025000000
+0c000000080000805600000030000000c2010000210000000a0300008f00000005000000201c1002201cf008a030f008a0301002201c1002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000
+0001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000de016cff48016e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00
+000005000080560000002c000000ab0100000a00000021030000a600000004000000201cf008a030f008a0301002201c1002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04
+00000004000000000000000080ed43000011c30000a4430000dc42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000db016fff48016e00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000
+bf0100001e0000006a0200008c00000005000000bf011e00bf018c006a028c006a021e00bf011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000006a0200001e000000720200008c000000050000006a021e006a028c0072028c0072021e
+006a021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000720200001e0000007b0200008c0000000500000072021e0072028c007b028c007b021e0072021e00250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007b0200001e000000850200008c000000050000007b021e007b028c0085028c0085021e007b021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c
+00000004000000250000000c000000080000805600000030000000850200001e0000008f0200008c0000000500000085021e0085028c008f028c008f021e0085021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000008f0200001e000000
+970200008c000000050000008f021e008f028c0097028c0097021e008f021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000970200001e0000009f0200008c0000000500000097021e0097028c009f028c009f021e0097021e00250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000009f0200001e000000a90200008c000000050000009f021e009f028c00a9028c00a9021e009f021e00250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000a90200001e000000b20200008c00000005000000a9021e00a9028c00b2028c00b2021e00a9021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c0000000400000025
+0000000c000000080000805600000030000000b20200001e000000b80200008c00000005000000b2021e00b2028c00b8028c00b8021e00b2021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b80200001e000000c00200008c000000
+05000000b8021e00b8028c00c0028c00c0021e00b8021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c00200001e000000c80200008c00000005000000c0021e00c0028c00c8028c00c8021e00c0021e00250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c80200001e000000d00200008c00000005000000c8021e00c8028c00d0028c00d0021e00c8021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d00200001e000000d80200008c00000005000000d0021e00d0028c00d8028c00d8021e00d0021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008
+0000805600000030000000d80200001e000000e10200008c00000005000000d8021e00d8028c00e1028c00e1021e00d8021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000e10200001e000000eb0200008c00000005000000e1021e00
+e1028c00eb028c00eb021e00e1021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000eb0200001e000000f50200008c00000005000000eb021e00eb028c00f5028c00f5021e00eb021e00250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000f50200001e000000fd0200008c00000005000000f5021e00f5028c00fd028c00fd021e00f5021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8
+c00000000000250000000c00000004000000250000000c000000080000805600000030000000fd0200001e000000050300008c00000005000000fd021e00fd028c0005038c0005031e00fd021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030
+000000050300001e000000070300008c0000000500000005031e0005038c0007038c0007031e0005031e00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040
+180000000c00000001000000db016fff48016e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a8010000070000001e0300
+00a300000004000000f01bc0087030c0087030e001f01be001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+000000000000001e00000018000000e5010000d7ffffff1a030000caffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000003f0200002400000087020000300000000100000000400d4200040dc25b020000d7ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e007500
+6d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c000000010000001900
+00000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000080100000e02000031000000b80200003c0000000100000000400d4200040dc22a020000caffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000004d0061006c00660075006e006300740069006f006e0069006e00670052006f00610064007300690064006500450071007500690070006d0065
+006e0074000000090000000600000003000000030000000600000006000000060000000300000003000000060000000600000003000000060000000600000007000000060000000600000006000000060000000300000006000000060000000700000006000000060000000300000006000000090000000600000006000000030000000a000000100000001c000000fbffffff0c00000010000000000000000000000046000000
+7c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000db01b8ff2303b8ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000
+003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000a80100002c0000001e0300005a00000002000000f01b3004703030042500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c401000047000000c7010000
+530000000100000000400d4200040dc2e0010000b4ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000d5010000470000008e02
+0000530000000100000000400d4200040dc2f1010000b4ffffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000052004f00410044005f005200410049004c005f00430052004f005300530049004e0047005f004600410049004c0055005200450020003d002000310007000000080000000700000007000000060000000700000007000000030000000600000006000000070000000700000008
+00000007000000070000000300000007000000080000000600000006000000070000000300000006000000070000000700000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c40100
+0054000000c7010000600000000100000000400d4200040dc2e0010000a7ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000018010000d5
+01000054000000ae020000600000000100000000400d4200040dc2f1010000a7ffffff220000004c000000000000000000000000000000ffffffffffffffff90000000540055004e004e0045004c005f00560045004e00540049004c004100540049004f004e005f004e004f0054005f0057004f0052004b0049004e00470020003d00200032000700000007000000070000000700000007000000060000000600000007000000
+07000000070000000700000003000000060000000700000007000000030000000800000007000000060000000700000008000000070000000600000009000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b0000005400000054000000c401000061000000c70100006d0000000100000000400d4200040dc2e00100009affffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b0000005400000068010000d501000061000000030300006d0000000100000000400d4200040dc2f10100009affffff2f0000004c000000000000000000000000000000ffffffffffffffffac00000054005200410046004600490043005f0043004f004e00540052004f004c005f005300490047004e0041004c0053005f0057004f0052004b0049004e0047005f0049004e
+0043004f00520052004500430054004c00590020003d00200033000000070000000700000007000000060000000600000003000000070000000600000007000000080000000700000007000000070000000800000006000000060000000700000003000000080000000700000007000000060000000700000006000000090000000800000007000000070000000300000007000000080000000600000003000000070000000700
+00000800000007000000070000000700000007000000070000000600000007000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+00000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000c40100006e000000c70100007a0000000100000000400d42
+00040dc2e00100008dffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000024010000d50100006e000000c80200007a000000010000000040
+0d4200040dc2f10100008dffffff240000004c000000000000000000000000000000ffffffffffffffff9400000045004d0045005200470045004e00430059005f00540045004c004500500048004f004e00450053005f004e004f0054005f0057004f0052004b0049004e00470020003d002000340007000000090000000700000007000000080000000700000007000000070000000700000006000000070000000700000006
+00000007000000070000000700000008000000070000000700000007000000060000000700000008000000070000000600000009000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b0000005400000054000000c40100007b000000c7010000870000000100000000400d4200040dc2e001000080ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001c000000fbffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e4fffffffbffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b0000005400000038010000d50100007b000000d9020000870000000100000000400d4200040dc2f101000080ffffff270000004c000000000000000000000000000000ffffffffffffffff9c0000004100550054004f004d0041005400490043005f005000410059004d0045004e0054005f004c0041004e00450053005f004e004f0054005f0057004f0052004b0049004e00470020003d002000
+350000000700000007000000070000000800000009000000070000000700000003000000070000000600000007000000070000000700000009000000070000000700000007000000060000000600000007000000070000000700000007000000060000000700000008000000070000000600000009000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a000000100000
+001c000000fbffffff0c000000100000000000000000000000280000000c00000002000000280000000c000000030000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c0000006400000000000000000000001703000000020000000000000000000018030000010200002900aa0000000000000000000000803f00000000000000000000803f0000
+000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 6\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_9FF5394B_A2F8_4907_A987_2F40D0744FB8}{\*\bkmkend BKM_9FF5394B_A2F8_4907_A987_2F40D0744FB8}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentSubAdviceTables}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw28850\pich15759\picwgoal16350\pichgoal8940\picscalex57\picscaley57\sspicalign0 010000006c000000f8ffffffffffffff3b030000c90100000000000000000000b27000008e3d000020454d46000001009cd20000ee080000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c
+00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff0840010334000000
+280000000210c0db05000000004000000100ffff010042fe300342fe3003ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000001000000380000000000000038000000000000000001010001000000000000000000000000000000000000
+0000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff32030000c001000005000000100010001000e01b0033e01b0033100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c40
+00c02c00000020000000ffffffff060000000100ecffc100ecffce00faffce00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000ce000000140000000600000010
+004001100c4001e00c6000e00c10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff
+0d400060280000001c000000060000000100ecffc100ecffce00faffce00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffffff
+ffffffffffd0000000160000000600000010004001100c4001e00c6000e00c10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000
+000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7688931a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b7da3e00ec859e10282003601534e0000dc59e102188d1701
+d9370aee88931a248300c200534e000037bb4000d9370aee70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b18901a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126524e00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5ae1
+026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000bd0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000b7000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+000054000000240100000600000004000000bf0000000f0000000100000000400d4200040dc206000000fcffffff240000004c000000000000000000000000000000ffffffffffffffff9400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e0074005300750062004100640076006900630065005400610062006c00650073000600000003000000060000000600000006
+000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000700000006000000060000000700000006000000070000000300000006000000060000000500000006000000060000000300000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c00000002000000
+0a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000010c1000000c00a4000c01c00000010000000c0bfc0ff010000001b0081ff6a016100280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000
+0024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c0000007c0100007d000000050000002001c0012001d007c017d007c017c0012001c001250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001b0081ff6a0161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000000002
+0000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000009301000094000000040000002001d007c017d007c017c0012001c001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c0410000f8c20000b5430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000
+00180084ff6a016100250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f00000019000000cb0000007a000000050000000f0019000f007a00cb007a00cb0019000f001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000cb00000019000000d40000007a00000005000000cb001900cb007a00d4007a00d4001900cb001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c0000000800008056
+00000030000000d400000019000000de0000007a00000005000000d4001900d4007a00de007a00de001900d4001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c000000080000805600000030000000de00000019000000e60000007a00000005000000de001900de007a00
+e6007a00e6001900de001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000e600000019000000ef0000007a00000005000000e6001900e6007a00ef007a00ef001900e6001900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000ef00000019000000f90000007a00000005000000ef001900ef007a00f9007a00f9001900ef001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead8000000
+0000250000000c00000002000000250000000c000000080000805600000030000000f900000019000000020100007a00000005000000f9001900f9007a0002017a0002011900f9001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c00000008000080560000003000000002
+010000190000000b0100007a000000050000000201190002017a000b017a000b01190002011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c0000000800008056000000300000000b01000019000000140100007a000000050000000b0119000b017a0014017a0014011900
+0b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c00000008000080560000003000000014010000190000001c0100007a000000050000001401190014017a001c017a001c01190014011900250000000c00000008000080250000000c00000000000080280000000c0000
+000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c0000000800008056000000300000001c01000019000000260100007a000000050000001c0119001c017a0026017a00260119001c011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00
+000002000000250000000c00000008000080560000003000000026010000190000002d0100007a000000050000002601190026017a002d017a002d01190026011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c0000000800008056000000300000002d0100001900000033
+0100007a000000050000002d0119002d017a0033017a00330119002d011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c00000008000080560000003000000033010000190000003c0100007a000000050000003301190033017a003c017a003c0119003301190025000000
+0c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000003c01000019000000450100007a000000050000003c0119003c017a0045017a00450119003c011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000
+00180000000200000000000000eedfc80000000000250000000c00000002000000250000000c00000008000080560000003000000045010000190000004f0100007a000000050000004501190045017a004f017a004f01190045011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c000000020000002500
+00000c0000000800008056000000300000004f010000190000005a0100007a000000050000004f0119004f017a005a017a005a0119004f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000005a01000019000000650100007a00000005
+0000005a0119005a017a0065017a00650119005a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c00000008000080560000003000000065010000190000006e0100007a000000050000006501190065017a006e017a006e01190065011900250000000c00000008000080
+250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c0000000800008056000000300000006e01000019000000770100007a000000050000006e0119006e017a0077017a00770119006e011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000
+0000000000e8d7be0000000000250000000c00000002000000250000000c0000000800008056000000300000007701000019000000790100007a000000050000007701190077017a0079017a007901190077011900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000
+000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000180084ff6a0161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000002000000250000000c00000005000080560000002c000000f8ffffff02000000900100009100000004000000f000a0079017a00790179001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff46000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffff
+ff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901dd3a0a229c58530bb29619010000
+0000e8901a248ce3c577738c172646e0c5779401300b0000300b188d1701dd3a0a2277005a01554e0000c457e10237bb4000dd3a0a22e8901a247800dc00554e00009087a1263c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0be8901a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000086545010000000088
+14400000cc2a24008a1a2401000000e0901a24dc57e10223e0c577e8901a243a6c2e7608654501e0901a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000022000000dfffffff79010000d2ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000
+a00000001f000000e80000002b0000000100000000400d4200040dc2a9000000dfffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000
+000c000000000000004b0000001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000001a013ada21883a6c2e76e8901a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bada330021c58e10278003001574e00003058e102188d1701dd3a0a23e8901a247900c200574e000037bb4000dd3a0a2370374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b
+18901a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126564e00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000c40000008d0000002c000000fc000000370000
+000100000000400d4200040dc296000000d2ffffff140000004c000000000000000000000000000000ffffffffffffffff740000004f00760065007200740061006b0069006e0067004e006f00740041006c006c006f007700650064000800000007000000060000000400000003000000060000000600000003000000060000000600000007000000060000000300000007000000030000000300000006000000090000000600
+0000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001800c0ff8201c0ff00010101154001001000000004000000000000002100000008
+000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000
+050000805700000024000000f8ffffff27000000900100005500000002000000f000e0039017e003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b00000054000000540000001400000042000000170000004e0000000100000000400d4200040dc21d000000bcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020004f00030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000080100002500000042000000ef0000004e0000000100000000400d4200040dc22e000000bcffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000044004f005f004e004f0054005f005500530045005f004f00560045005200540041004b0049004e0047005f004c0041004e004500530020003d00200031000000070000
+000800000006000000070000000800000007000000060000000700000007000000070000000600000008000000070000000700000007000000070000000700000007000000030000000700000008000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000004f000000170000005b0000000100000000400d4200040dc21d000000afffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020004c00030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000006c010000250000004f000000620100005b0000000100000000400d4200040dc22e000000afffffff300000004c000000000000000000000000000000ffffffffffffffffac0000004f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f005700450044005f0044005200
+4900560045005f004f004e005f0043005200410057004c00450052005f004c0041004e00450020003d002000320008000000070000000700000007000000070000000700000007000000030000000700000008000000060000000700000008000000070000000600000007000000060000000600000008000000090000000700000007000000060000000700000007000000030000000700000007000000060000000800000007
+00000006000000070000000700000007000000090000000600000007000000070000000600000006000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000
+005c00000017000000680000000100000000400d4200040dc21d000000a2ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007801000025
+0000005c0000006f010000680000000100000000400d4200040dc22e000000a2ffffff320000004c000000000000000000000000000000ffffffffffffffffb00000004f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f005700450044005f00440052004900560045005f004f004e005f004c004500460054005f004d004f00530054005f004c0041004e00450020003d0020003300
+0800000007000000070000000700000007000000070000000700000003000000070000000800000006000000070000000800000007000000060000000700000006000000060000000800000009000000070000000700000006000000070000000700000003000000070000000700000006000000080000000700000006000000060000000700000006000000070000000600000009000000080000000700000007000000060000
+0006000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000006900000017000000750000000100000000400d4200040dc21d00000095ffffff010000004c
+000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000080010000250000006900000075010000750000000100000000400d4200040dc22e00000095ffffff330000
+004c000000000000000000000000000000ffffffffffffffffb40000004f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f005700450044005f00440052004900560045005f004f004e005f00520049004700480054005f004d004f00530054005f004c0041004e00450020003d0020003400000008000000070000000700000007000000070000000700000007000000030000000700
+0000080000000600000007000000080000000700000006000000070000000600000006000000080000000900000007000000070000000600000007000000070000000300000007000000070000000600000008000000070000000600000007000000030000000800000007000000070000000600000009000000080000000700000007000000060000000600000007000000070000000700000003000000060000000300000006
+0000000a0000001000000009000000feffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000024001bffba0145002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200000025000000
+0c00000001000000250000000c0000000800008056000000300000001b0000009e000000d5010000e300000005000000b001e009b001300e501d300e501de009b001e009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000
+00000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000024001bffba0145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00
+000004000000250000000c00000005000080560000002c0000000400000087000000ec010000fa00000004000000b001300e501d300e501de009b001e009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b0840020158
+0000004c0000000210c0db04000000040000000000000000000442000062c30000dd4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000021001effba014500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000
+080000805600000030000000180000009b000000fe000000e00000000500000018009b001800e000fe00e000fe009b0018009b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000fe0000009b00000009010000e000000005000000fe009b
+00fe00e0000901e00009019b00fe009b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000090100009b00000015010000e00000000500000009019b000901e0001501e00015019b0009019b00250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000150100009b0000001f010000e00000000500000015019b001501e0001f01e0001f019b0015019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8
+eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000001f0100009b00000029010000e0000000050000001f019b001f01e0002901e00029019b001f019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000
+30000000290100009b00000035010000e00000000500000029019b002901e0003501e00035019b0029019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000350100009b00000040010000e00000000500000035019b003501e0004001e0
+0040019b0035019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000400100009b0000004c010000e00000000500000040019b004001e0004c01e0004c019b0040019b00250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000004c0100009b00000056010000e0000000050000004c019b004c01e0005601e00056019b004c019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d3000000000025
+0000000c00000004000000250000000c000000080000805600000030000000560100009b00000061010000e00000000500000056019b005601e0006101e00061019b0056019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000061010000
+9b0000006c010000e00000000500000061019b006101e0006c01e0006c019b0061019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006c0100009b00000075010000e0000000050000006c019b006c01e0007501e00075019b006c019b
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000750100009b0000007d010000e00000000500000075019b007501e0007d01e0007d019b0075019b00250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000007d0100009b00000088010000e0000000050000007d019b007d01e0008801e00088019b007d019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004
+000000250000000c000000080000805600000030000000880100009b00000093010000e00000000500000088019b008801e0009301e00093019b0088019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000930100009b0000009f010000
+e00000000500000093019b009301e0009f01e0009f019b0093019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009f0100009b000000ad010000e0000000050000009f019b009f01e000ad01e000ad019b009f019b00250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ad0100009b000000ba010000e000000005000000ad019b00ad01e000ba01e000ba019b00ad019b00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000ba0100009b000000c5010000e000000005000000ba019b00ba01e000c501e000c5019b00ba019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c
+000000080000805600000030000000c50100009b000000d0010000e000000005000000c5019b00c501e000d001e000d0019b00c5019b00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000d00100009b000000d2010000e000000005000000
+d0019b00d001e000d201e000d2019b00d0019b00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000021001effba0145003a0000
+000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000100000084000000e9010000f7000000040000008001000e201d000e201db0098001
+b009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002b0000005dffffff
+d201000050ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000d1000000a100000019010000ad0000000100000000400d4200040dc2da0000005dffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb006967060000
+000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018
+0000000c0000000000000054000000b4000000c7000000ae00000023010000b90000000100000000400d4200040dc2d000000050ffffff110000004c000000000000000000000000000000ffffffffffffffff70000000440072006900760069006e0067004e006f00740041006c006c006f0077006500640000000700000004000000030000000700000003000000060000000600000007000000060000000300000007000000
+0300000003000000060000000900000006000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000021003effdb013eff00010101154001
+001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000000000000000000000000000002500
+00000c00000004000000250000000c00000005000080570000002400000001000000a9000000e9010000d7000000020000008001000c201d000c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001d000000c400000020000000d00000000100000000400d4200040dc2260000003affffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0100002e000000c4000000ce010000d00000000100000000400d4200040dc2370000003affffff400000004c000000000000000000000000000000ffffffffffffffffcc000000440052004900560049004e0047005f004e004f0054005f0041004c004c004f005700450044005f00540041004b0045005f
+004e004500580054005f0050004f0053005300490042004c0045005f0050004c004100430045005f0054004f005f00530054004f0050005f00560045004800490043004c00450020003d002000310007000000070000000300000007000000030000000700000008000000060000000700000008000000070000000600000007000000060000000600000008000000090000000700000007000000060000000700000007000000
+0700000007000000060000000700000007000000070000000700000006000000070000000800000007000000070000000300000007000000060000000700000006000000070000000600000007000000070000000700000006000000070000000800000006000000070000000700000008000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000
+000a0000001000000009000000feffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002300bafef90045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00
+000001000000250000000c0000000800008056000000300000001a000000ff000000130100004401000005000000a001f00fa0014014301140143011f00fa001f00f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002300bafef90045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000
+04000000250000000c00000005000080560000002c00000003000000e80000002a0100005b01000004000000a0014014301140143011f00fa001f00f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000
+004c0000000210c0db040000000400000000000000000000420080a1c30000794300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002000bdfef9004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800
+0080560000003000000017000000fc0000009900000041010000050000001700fc0017004101990041019900fc001700fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000099000000fc0000009f00000041010000050000009900fc0099
+0041019f0041019f00fc009900fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009f000000fc000000a600000041010000050000009f00fc009f004101a6004101a600fc009f00fc00250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a6000000fc000000ad0000004101000005000000a600fc00a6004101ad004101ad00fc00a600fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb
+0000000000250000000c00000004000000250000000c000000080000805600000030000000ad000000fc000000b50000004101000005000000ad00fc00ad004101b5004101b500fc00ad00fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000
+0000b5000000fc000000bb0000004101000005000000b500fc00b5004101bb004101bb00fc00b500fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000bb000000fc000000c10000004101000005000000bb00fc00bb004101c1004101c1
+00fc00bb00fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000c1000000fc000000c90000004101000005000000c100fc00c1004101c9004101c900fc00c100fc00250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000c9000000fc000000d00000004101000005000000c900fc00c9004101d0004101d000fc00c900fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000
+000c00000004000000250000000c000000080000805600000030000000d0000000fc000000d70000004101000005000000d000fc00d0004101d7004101d700fc00d000fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d7000000fc00
+0000dc0000004101000005000000d700fc00d7004101dc004101dc00fc00d700fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000dc000000fc000000e00000004101000005000000dc00fc00dc004101e0004101e000fc00dc00fc0025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e0000000fc000000e70000004101000005000000e000fc00e0004101e7004101e700fc00e000fc00250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e7000000fc000000ed0000004101000005000000e700fc00e7004101ed004101ed00fc00e700fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c000000040000
+00250000000c000000080000805600000030000000ed000000fc000000f30000004101000005000000ed00fc00ed004101f3004101f300fc00ed00fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f3000000fc000000fb0000004101
+000005000000f300fc00f3004101fb004101fb00fc00f300fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fb000000fc000000030100004101000005000000fb00fc00fb004101030141010301fc00fb00fc00250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000003010000fc0000000901000041010000050000000301fc0003014101090141010901fc000301fc00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000009010000fc0000000f01000041010000050000000901fc00090141010f0141010f01fc000901fc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000
+000800008056000000300000000f010000fc0000001001000041010000050000000f01fc000f014101100141011001fc000f01fc00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0b400040180000000c000000010000002000bdfef90045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000000
+000000e500000027010000580100000400000070011014001110140011c00f7001c00f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c000000000000001e000000180000002a000000fcfeffff10010000effeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007000000002010000b80000000e0100000100000000400d4200040dc279000000fcfeffff0d0000004c000000000000000000000000000000ffffffffffffffff6800
+0000ab0065006e0075006d00650072006100740069006f006e00bb000011060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff12000000
+0c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000f4000000450000000f010000e20000001a0100000100000000400d4200040dc24e000000effeffff1c0000004c000000000000000000000000000000ffffffffffffffff8400000047006900760069006e0067005000610074006800560065006800690063006c0065007300460072006f006d00420065
+00680069006e006400080000000300000007000000030000000600000006000000070000000600000003000000060000000700000006000000060000000300000006000000030000000600000006000000060000000400000006000000090000000700000006000000060000000300000006000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d
+462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002000ddfe1901ddfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000000000000a0100002701000038010000020000007001101200111012250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001c000000250100001f00000031010000010000000040
+0d4200040dc225000000d9feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000088030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000180100002d00000025010000020100003101000001000000
+00400d4200040dc236000000d9feffff220000004c000000000000000000000000000000ffffffffffffffff9000000047004900560049004e0047005f0050004100540048005f0046004f0052005f005200450053004300550045005f00560045004800490043004c00450020003d0020003100080000000300000007000000030000000700000008000000060000000700000007000000070000000700000006000000060000
+000800000007000000060000000700000007000000070000000700000007000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000540000001c000000320100001f0000003e0100000100000000400d4200040dc225000000ccfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000064030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b00000054000000240100002d000000320100000c0100003e0100000100000000400d4200040dc236000000ccfeffff240000004c000000000000000000000000000000ffffffffffffffff9400000047004900560049004e0047005f0050004100540048005f0046004f0052005f0053004500520056004900430045005f00560045004800490043004c004500530020003d00200032000800000003000000070000000300
+000007000000080000000600000007000000070000000700000007000000060000000600000008000000070000000600000007000000070000000700000007000000030000000700000007000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000002c
+00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000035004efebb0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002c0000006b010000e7000000
+b001000005000000c002b016c002001b700e001b700eb016c002b016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000
+000c0000000100000035004efebb0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001500000054010000fe000000c701
+000004000000c002001b700e001b700eb016c002b016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000048420080d7c300003b4300008a42be
+d7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000320051febb004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000029000000680100008b000000ad01000005000000290068012900ad01
+8b00ad018b00680129006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000008b000000680100008f000000ad010000050000008b0068018b00ad018f00ad018f0068018b006801250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008f0000006801000094000000ad010000050000008f0068018f00ad019400ad01940068018f006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd000000
+0000250000000c00000004000000250000000c000000080000805600000030000000940000006801000099000000ad01000005000000940068019400ad019900ad019900680194006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000099
+000000680100009d000000ad01000005000000990068019900ad019d00ad019d00680199006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000009d00000068010000a2000000ad010000050000009d0068019d00ad01a200ad01a2006801
+9d006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a200000068010000a7000000ad01000005000000a2006801a200ad01a700ad01a7006801a2006801250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a700000068010000ac000000ad01000005000000a7006801a700ad01ac00ad01ac006801a7006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00
+000004000000250000000c000000080000805600000030000000ac00000068010000b1000000ad01000005000000ac006801ac00ad01b100ad01b1006801ac006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000b100000068010000b7
+000000ad01000005000000b1006801b100ad01b700ad01b7006801b1006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b700000068010000bc000000ad01000005000000b7006801b700ad01bc00ad01bc006801b700680125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000bc00000068010000c0000000ad01000005000000bc006801bc00ad01c000ad01c0006801bc006801250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c000000068010000c5000000ad01000005000000c0006801c000ad01c500ad01c5006801c0006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c000000040000002500
+00000c000000080000805600000030000000c500000068010000ca000000ad01000005000000c5006801c500ad01ca00ad01ca006801c5006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000ca00000068010000cf000000ad01000005
+000000ca006801ca00ad01cf00ad01cf006801ca006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000cf00000068010000d4000000ad01000005000000cf006801cf00ad01d400ad01d4006801cf006801250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d400000068010000da000000ad01000005000000d4006801d400ad01da00ad01da006801d4006801250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000da00000068010000df000000ad01000005000000da006801da00ad01df00ad01df006801da006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800
+00805600000030000000df00000068010000e3000000ad01000005000000df006801df00ad01e300ad01e3006801df006801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e300000068010000e4000000ad01000005000000e3006801e3
+00ad01e400ad01e4006801e3006801250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000320051febb0045003a0000000c000000
+0a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001200000051010000fb000000c4010000040000009002d01a400ed01a400e801690028016250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003c00000090feffffe400000083
+feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000630000006e010000ab0000007a0100000100000000400d4200040dc26c00000090feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000050600000006000000
+06000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00
+00000000000054000000a80000005e0000007b010000af000000860100000100000000400d4200040dc26700000083feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000046006f006c006c006f00770044006900760065007200730069006f006e0000270600000006000000030000000300000006000000090000000700000003000000070000000600000004000000060000000300000006
+000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000320071feed0071fe000101011540010010000000040000000000000021000000
+08000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000
+000500008057000000240000001200000076010000fb000000a4010000020000009002d018400ed018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b00000054000000540000002e00000091010000310000009d0100000100000000400d4200040dc2370000006dfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000004030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b00000054000000e80000003f00000091010000e00000009d0100000100000000400d4200040dc2480000006dfeffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000046004f004c004c004f0057005f0044004900560045005200530049004f004e005f005300490047004e00530020003d00200031000600000008000000060000000600
+0000080000000900000006000000070000000300000007000000070000000700000007000000030000000800000007000000060000000700000003000000080000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000009d0189ff9001540021
+00000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000094010000210000002403000075000000050000004019100240195007403250074032100240191002250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000009d0189ff900154003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007d0100000a0000003b0300008c0000000400000040195007403250074032100240191002250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000cd430000e8c20000c8430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbe
+d7e8ff0a4000401c0000001000000002000000010000009a018cff90015400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000910100001e00000061020000720000000500000091011e00910172006102720061021e0091011e00250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000610200001e0000006b020000720000000500000061021e00610272006b0272006b021e0061021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000
+000c00000004000000250000000c0000000800008056000000300000006b0200001e0000007602000072000000050000006b021e006b0272007602720076021e006b021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000760200001e00
+00007f020000720000000500000076021e00760272007f0272007f021e0076021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007f0200001e0000008902000072000000050000007f021e007f0272008902720089021e007f021e0025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000890200001e00000093020000720000000500000089021e00890272009302720093021e0089021e00250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000930200001e0000009d020000720000000500000093021e00930272009d0272009d021e0093021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c000000040000
+00250000000c0000000800008056000000300000009d0200001e000000a802000072000000050000009d021e009d027200a8027200a8021e009d021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000a80200001e000000b10200007200
+000005000000a8021e00a8027200b1027200b1021e00a8021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000b10200001e000000bb0200007200000005000000b1021e00b1027200bb027200bb021e00b1021e00250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000bb0200001e000000c50200007200000005000000bb021e00bb027200c5027200c5021e00bb021e00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c50200001e000000cd0200007200000005000000c5021e00c5027200cd027200cd021e00c5021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000cd0200001e000000d40200007200000005000000cd021e00cd027200d4027200d4021e00cd021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000d40200001e000000de0200007200000005000000d402
+1e00d4027200de027200de021e00d4021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000de0200001e000000e80200007200000005000000de021e00de027200e8027200e8021e00de021e00250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000e80200001e000000f30200007200000005000000e8021e00e8027200f3027200f3021e00e8021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f30200001e000000ff0200007200000005000000f3021e00f3027200ff027200ff021e00f3021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000
+0030000000ff0200001e0000000b0300007200000005000000ff021e00ff0272000b0372000b031e00ff021e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000000b0300001e0000001503000072000000050000000b031e000b0372001503
+720015031e000b031e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000150300001e0000001f030000720000000500000015031e00150372001f0372001f031e0015031e00250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000001f0300001e0000002103000072000000050000001f031e001f0372002103720021031e001f031e00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009a018cff900154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000
+000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007a0100000700000038030000890000000400000010192007103220071032e0011019e001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c00
+00000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000a4010000daffffff21030000cdffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000035020000240000007d020000
+300000000100000000400d4200040dc23e020000daffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00ff0c060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000
+001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a000000036020000310000007c0200003c0000000100000000400d4200040dc23f020000cdffffff0e0000004c000000000000000000000000000000ffffffffff
+ffffff68000000440072006900760065004300610072006500660075006c006c00790007000000040000000300000007000000060000000700000006000000040000000600000003000000060000000300000003000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009a01bbff2a03bbff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000007a0100002c000000380300005a000000020000001019300410323004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000960100004700000099010000530000000100000000400d4200040dc29f010000b7ffffff010000004c0000000000000000000000
+00000000ffffffffffffffff5000000020000064030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8010000a7010000470000001d030000530000000100000000400d4200040dc2b0010000b7ffffff3a0000004c000000000000000000
+000000000000ffffffffffffffffc0000000440052004900560045005f004300410052004500460055004c004c0059005f00440041004e004700450052004f00550053005f0053004900540055004100540049004f004e005f004f004e005f0045004e005400520059005f0053004c00490050005f0052004f004100440020003d0020003100070000000700000003000000070000000700000006000000070000000700000007
+0000000700000006000000070000000600000006000000070000000600000007000000070000000700000008000000070000000700000008000000070000000700000006000000070000000300000007000000070000000700000007000000030000000800000007000000060000000800000007000000060000000700000007000000070000000700000007000000060000000700000006000000030000000700000006000000
+07000000080000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000960100005400000099010000600000000100000000400d4200040dc29f010000aaffffff010000004c00
+0000000000000000000000000000ffffffffffffffff50000000200000fb030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a4010000a70100005400000012030000600000000100000000400d4200040dc2b0010000aaffffff39000000
+4c000000000000000000000000000000ffffffffffffffffc0000000440052004900560045005f004300410052004500460055004c004c0059005f00440041004e004700450052004f00550053005f0053004900540055004100540049004f004e005f004f004e005f0045005800490054005f0053004c00490050005f0052004f004100440020003d002000320000520700000007000000030000000700000007000000060000
+0007000000070000000700000007000000060000000700000006000000060000000700000006000000070000000700000007000000080000000700000007000000080000000700000007000000060000000700000003000000070000000700000007000000070000000300000008000000070000000600000008000000070000000600000007000000070000000300000007000000060000000700000006000000030000000700
+00000600000007000000080000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000009601000061000000990100006d0000000100000000400d4200040dc29f0100009dffffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000045030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000078010000a701000061000000e50200006d0000000100000000400d4200040dc2b00100009dff
+ffff320000004c000000000000000000000000000000ffffffffffffffffb0000000440052004900560045005f004300410052004500460055004c004c0059005f004900430045005f004200550049004c004400550050005f004f004e005f004300410042004c0045005f0053005400520055004300540055005200450020003d0020003300070000000700000003000000070000000700000006000000070000000700000007
+0000000700000006000000070000000600000006000000070000000600000003000000070000000700000006000000070000000700000003000000060000000700000007000000070000000600000008000000070000000600000007000000070000000700000006000000070000000600000007000000070000000700000007000000070000000700000007000000070000000700000003000000060000000300000006000000
+0a0000001000000009000000feffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008001b1fe350145002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000
+0001000000250000000c0000000800008056000000300000007701000008010000ac0200004d01000005000000701780107017d014c02ad014c02a801070178010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000000000
+00000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008001b1fe350145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004
+000000250000000c00000005000080560000002c00000060010000f1000000c302000064010000040000007017d014c02ad014c02a801070178010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b0840020158000000
+4c0000000210c0db0400000004000000000000000080be430000a6c300809a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000007d01b4fe35014500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000
+8056000000300000007401000005010000150200004a010000050000007401050174014a0115024a011502050174010501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000015020000050100001d0200004a01000005000000150205011502
+4a011d024a011d02050115020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000001d02000005010000250200004a010000050000001d0205011d024a0125024a01250205011d020501250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000025020000050100002c0200004a010000050000002502050125024a012c024a012c02050125020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc00
+00000000250000000c00000004000000250000000c0000000800008056000000300000002c02000005010000330200004a010000050000002c0205012c024a0133024a01330205012c020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000
+0033020000050100003b0200004a010000050000003302050133024a013b024a013b02050133020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000003b02000005010000430200004a010000050000003b0205013b024a0143024a014302
+05013b020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000043020000050100004b0200004a010000050000004302050143024a014b024a014b02050143020501250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000004b02000005010000530200004a010000050000004b0205014b024a0153024a01530205014b020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d3000000000025000000
+0c00000004000000250000000c00000008000080560000003000000053020000050100005a0200004a010000050000005302050153024a015a024a015a02050153020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000005a020000050100
+00620200004a010000050000005a0205015a024a0162024a01620205015a020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006202000005010000680200004a010000050000006202050162024a0168024a0168020501620205012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000068020000050100006e0200004a010000050000006802050168024a016e024a016e02050168020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006e02000005010000750200004a010000050000006e0205016e024a0175024a01750205016e020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000
+250000000c00000008000080560000003000000075020000050100007d0200004a010000050000007502050175024a017d024a017d02050175020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000007d02000005010000850200004a0100
+00050000007d0205017d024a0185024a01850205017d020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000085020000050100008f0200004a010000050000008502050185024a018f024a018f02050185020501250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000008f02000005010000980200004a010000050000008f0205018f024a0198024a01980205018f020501250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000009802000005010000a00200004a010000050000009802050198024a01a0024a01a002050198020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000
+080000805600000030000000a002000005010000a80200004a01000005000000a0020501a0024a01a8024a01a8020501a0020501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000a802000005010000a90200004a01000005000000a80205
+01a8024a01a9024a01a9020501a8020501250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000007d01b4fe350145003a0000000c00
+00000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000005d010000ee000000c002000061010000040000004017a014902aa014902a50104017501025
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000087010000f3feffffa90200
+00e6feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000eb0100000b01000033020000170100000100000000400d4200040dc2f4010000f3feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000c060000000600
+000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000000000000054000000cc000000d3010000180100004b020000230100000100000000400d4200040dc2dc010000e6feffff150000004c000000000000000000000000000000ffffffffffffffff7800000044006f004e006f0074004c00650061007600650059006f0075007200560065006800690063006c0065000074070000000600000007000000060000000300000006000000060000000600000007000000060000
+0007000000060000000600000004000000070000000600000006000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200
+0000004000007d01d4feb202d4fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000
+00000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000005d01000013010000c002000041010000020000004017a012902aa012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000022000000
+0c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000790100002e0100007c0100003a0100000100000000400d4200040dc282010000d0feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000feffffff0c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000008a0100002e010000440200003a0100000100000000400d4200040dc293010000d0feffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000044004f005f004e004f0054005f004c0045004100560045005f005900
+4f00550052005f00560045004800490043004c00450020003d0020003100005407000000080000000600000007000000080000000700000006000000060000000700000007000000070000000700000006000000070000000800000007000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000790100003b0100007c010000470100000100000000400d4200040dc282010000c3feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000003d030000000a0000001000000009000000feffffff0c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000500100008a0100003b010000a5020000470100000100000000400d4200040dc293010000c3feffff2b0000004c000000000000000000000000000000ffffffffffffffffa400000044004f005f004e004f0054005f004c0045004100560045
+005f0059004f00550052005f00560045004800490043004c0045005f0043004c004f00530045005f00570049004e0044004f005700530020003d0020003200ffff070000000800000006000000070000000800000007000000060000000600000007000000070000000700000007000000060000000700000008000000070000000700000006000000070000000700000007000000030000000700000006000000070000000600
+000007000000060000000800000007000000070000000600000009000000030000000700000007000000080000000900000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007c014cfe070145002100000008000000620000000c0000000100000011
+0000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000730100006d0100007a020000b2010000050000003017d0163017201ba027201ba027d0163017d016250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007c014cfe070145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000000000
+00020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000005c0100005601000091020000c9010000040000003017201ba027201ba027d0163017d016250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080bc430080d8c30080834300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001
+00000079014ffe07014500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000700100006a010000f9010000af0100000500000070016a017001af01f901af01f9016a0170016a01250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000f90100006a01000000020000af01000005000000f9016a01f901af010002af0100026a01f9016a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000
+805600000030000000000200006a01000007020000af0100000500000000026a010002af010702af0107026a0100026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000070200006a0100000f020000af0100000500000007026a010702
+af010f02af010f026a0107026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000000f0200006a01000017020000af010000050000000f026a010f02af011702af0117026a010f026a01250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000170200006a0100001d020000af0100000500000017026a011702af011d02af011d026a0117026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d700
+00000000250000000c00000004000000250000000c0000000800008056000000300000001d0200006a01000024020000af010000050000001d026a011d02af012402af0124026a011d026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000
+00240200006a0100002c020000af0100000500000024026a012402af012c02af012c026a0124026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000002c0200006a01000033020000af010000050000002c026a012c02af013302af013302
+6a012c026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000330200006a01000037020000af0100000500000033026a013302af013702af0137026a0133026a01250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000370200006a0100003c020000af0100000500000037026a013702af013c02af013c026a0137026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf000000000025000000
+0c00000004000000250000000c0000000800008056000000300000003c0200006a01000041020000af010000050000003c026a013c02af014102af0141026a013c026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000410200006a0100
+0048020000af0100000500000041026a014102af014802af0148026a0141026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000480200006a0100004e020000af0100000500000048026a014802af014e02af014e026a0148026a012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000004e0200006a01000055020000af010000050000004e026a014e02af015502af0155026a014e026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000550200006a0100005d020000af0100000500000055026a015502af015d02af015d026a0155026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000
+250000000c0000000800008056000000300000005d0200006a01000065020000af010000050000005d026a015d02af016502af0165026a015d026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000650200006a0100006c020000af0100
+000500000065026a016502af016c02af016c026a0165026a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000006c0200006a01000073020000af010000050000006c026a016c02af017302af0173026a016c026a01250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000730200006a01000077020000af0100000500000073026a017302af017702af0177026a0173026a01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007
+000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000079014ffe070145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000
+380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000059010000530100008e020000c6010000040000000017f01a7027f01a7027a0160017a016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000830100008efeffff7702000081feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c
+000000d001000070010000180200007c0100000100000000400d4200040dc2d90100008efeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb008041060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000
+160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000094000000d30100007d01000015020000880100000100000000400d4200040dc2dc01000081feffff0c0000004c0000000000
+00000000000000000000ffffffffffffffff6400000055007300650054006f006c006c004c0061006e00650073000700000006000000060000000500000006000000030000000300000006000000060000000600000006000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000079016ffe80026ffe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000059010000780100008e020000a6010000020000000017f0187027f018250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000007501000093010000780100009f0100000100000000400d4200040dc27e0100006bfeffff010000004c0000000000000000
+00000000000000ffffffffffffffff500000002000f502030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000140100008601000093010000600200009f0100000100000000400d4200040dc28f0100006bfeffff210000004c000000000000
+000000000000000000ffffffffffffffff900000005500530045005f004d0041004e00550041004c005f005000410059004d0045004e0054005f0054004f004c004c005f004c0041004e004500530020003d0020003100f502070000000700000007000000060000000900000007000000070000000700000007000000060000000600000007000000070000000700000009000000070000000700000007000000060000000700
+0000080000000600000006000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000075010000a001000078010000ac01000001000000
+00400d4200040dc27e0100005efeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000feffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7fffffffeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002401000086010000a001000073020000ac0100000100
+000000400d4200040dc28f0100005efeffff240000004c000000000000000000000000000000ffffffffffffffff940000005500530045005f004100550054004f004d0041005400490043005f005000410059004d0045004e0054005f0054004f004c004c005f004c0041004e004500530020003d0020003200070000000700000007000000060000000700000007000000070000000800000009000000070000000700000003
+0000000700000006000000070000000700000007000000090000000700000007000000070000000600000007000000080000000600000006000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000feffffff0c000000100000000000000000000000280000000c00000002000000280000000c00000003000000210000000800000062000000
+0c00000001000000110000000c000000010000000a0000001000000000000000000000004c00000064000000000000000000000031030000bf010000000000000000000032030000c00100002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000
+000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 7\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F9F42AF0_A0E8_40bd_B387_B40AF00B94D0}{\*\bkmkend BKM_F9F42AF0_A0E8_40bd_B387_B40AF00B94D0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Accident}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is ACCIDENT.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_58CF4A7F_BE88_4db6_8466_B85B07F9DC66}{\*\bkmkend BKM_58CF4A7F_BE88_4db6_8466_B85B07F9DC66}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b MULTI_VEHICLE_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that many cars are involved in the accident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5261CB7F_F361_4ff7_BF4B_4BC8DED01FD1}{\*\bkmkend BKM_5261CB7F_F361_4ff7_BF4B_4BC8DED01FD1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of a heavy accident with expected long lasting rescue
+and recovery work.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F450444E_5012_46ec_AB7E_708D361413C7}{\*\bkmkend BKM_F450444E_5012_46ec_AB7E_708D361413C7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_INVOLVING_LORRY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of an accident involving a lorry.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_94B5A99C_CC01_4bf3_A813_8C7B999E30B2}{\*\bkmkend BKM_94B5A99C_CC01_4bf3_A813_8C7B999E30B2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_INVOLVING_BUS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of an accident involving a bus.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A6BB9B25_A2E0_4e95_8C4A_2A04E79E4385}{\*\bkmkend BKM_A6BB9B25_A2E0_4e95_8C4A_2A04E79E4385}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of an accident involving hazardous materials.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CBA80E69_BAA6_47a7_8825_F65FC61574E4}{\*\bkmkend BKM_CBA80E69_BAA6_47a7_8825_F65FC61574E4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_ON_OPPOSITE_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of an accident having happened on the opposite lane.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DC96A11E_F33E_483a_81B8_27064A4EC301}{\*\bkmkend BKM_DC96A11E_F33E_483a_81B8_27064A4EC301}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+UNSECURED_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of an accident being not secured at time of dissemination.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C0F00231_C4B9_4e7d_8F4D_A2088D974C40}{\*\bkmkend BKM_C0F00231_C4B9_4e7d_8F4D_A2088D974C40}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AdviceCode}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for the \b mainAdvice \b0 of an \b Advice\b0 .\ql\par
+The values are recommendations or prohibitions for the driver.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_DEAF0495_D685_45f5_A06B_11F9F18D4B8A}{\*\bkmkend BKM_DEAF0495_D685_45f5_A06B_11F9F18D4B8A}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 E.g. in combination with time delay at frontier.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2588DF9E_11CD_428f_9B92_9953EDDD0B87}{\*\bkmkend BKM_2588DF9E_11CD_428f_9B92_9953EDDD0B87}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that vehicle should queue up and do not overtake.\ql\par
+Example: In case that e.g. ghostdriver approaches.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1093A03E_E63D_4749_AE16_74A4F25FB8DE}{\*\bkmkend BKM_1093A03E_E63D_4749_AE16_74A4F25FB8DE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVING_NOT_ALLOWED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that vehicles should try to stop the vehicle at useful
+position at the roadway.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BCFA00ED_1F3B_46f7_882A_AE62C2D14B3D}{\*\bkmkend BKM_BCFA00ED_1F3B_46f7_882A_AE62C2D14B3D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_HARD_SHOULDER_AS_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 To achieve more capacity for the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1DEFDB05_DC90_48b0_8C91_9C5052CAE4CC}{\*\bkmkend BKM_1DEFDB05_DC90_48b0_8C91_9C5052CAE4CC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAIT_FOR_POLICE_PATROL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the police controls any continuation of the journey.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1567A224_9E45_4f6a_8846_080765366948}{\*\bkmkend BKM_1567A224_9E45_4f6a_8846_080765366948}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAIT_FOR_IMPROVED_WEATHER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that clearance is already expected.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D175A074_BAAD_48af_950D_91C851ABD6E2}{\*\bkmkend BKM_D175A074_BAAD_48af_950D_91C851ABD6E2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GIVING_PATH_VEHICLES_COMING_FROM_BEHIND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that vehicles approaching from behind need to pass.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EE2B5E40_ACDC_493c_83D2_53C3382B326E}{\*\bkmkend BKM_EE2B5E40_ACDC_493c_83D2_53C3382B326E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOLLOW_DIVERSION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a diversion is given which shall be followed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_02863CE2_63BE_46cd_A588_F46384E9FE29}{\*\bkmkend BKM_02863CE2_63BE_46cd_A588_F46384E9FE29}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+NO_DIVERSION_TO_RECOMMEND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that no detour is known at this time.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_81B1AB24_F75E_427c_BF81_C5A4E4225B0F}{\*\bkmkend BKM_81B1AB24_F75E_427c_BF81_C5A4E4225B0F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_DIVERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that no detour shall be taken, because the surrounding
+road network is crowded already.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B1BEFAC8_8B44_456a_B26F_E3D470089C35}{\*\bkmkend BKM_B1BEFAC8_8B44_456a_B26F_E3D470089C35}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOLLOW_POLICE_INSTRUCTIONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the police regulates the traffic at that spot.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A316822C_134A_4785_A5F2_3B0EBFF62174}{\*\bkmkend BKM_A316822C_134A_4785_A5F2_3B0EBFF62174}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AVOID_THE_AREA}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the area is has to be avoided by e.g. high traffic
+density.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_16FC421A_82D4_47ce_A1BC_46C63F777BE8}{\*\bkmkend BKM_16FC421A_82D4_47ce_A1BC_46C63F777BE8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that careful driving is required.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8AF40564_DBFA_47e7_BF9E_84222A024AAD}{\*\bkmkend BKM_8AF40564_DBFA_47e7_BF9E_84222A024AAD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_LEAVE_YOUR_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that driver shall be informed e.g. in a traffic jam
+not to leave the vehicles.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F04D616D_E2ED_4ec7_86CE_AA96E2A23452}{\*\bkmkend BKM_F04D616D_E2ED_4ec7_86CE_AA96E2A23452}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SWITCH_ON_RADIO}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that further important information can be received
+in car radio.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B4010654_91A8_44fc_B499_0BB81E3461AE}{\*\bkmkend BKM_B4010654_91A8_44fc_B499_0BB81E3461AE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_TOLL_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that toll lanes should be used.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_467E7644_D97D_4356_BFE1_5B91DF478C88}{\*\bkmkend BKM_467E7644_D97D_4356_BFE1_5B91DF478C88}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAIT_FOR_CONVOI}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Due to bad weather conditions, convoy service is required.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_69B6BA14_982D_4e6f_98E4_B8CEC3311C98}{\*\bkmkend BKM_69B6BA14_982D_4e6f_98E4_B8CEC3311C98}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AnimalsOnRoadway}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is ANIMALS_ON_ROADWAY.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_25E695EE_A87C_4dfc_97C9_65F4DC5B4703}{\*\bkmkend BKM_25E695EE_A87C_4dfc_97C9_65F4DC5B4703}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b WILD_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that wild animals are on the road.\ql\par
+Example: Deer.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5C05B8F5_9A13_4c06_8F7E_599DCF95D6F6}{\*\bkmkend BKM_5C05B8F5_9A13_4c06_8F7E_599DCF95D6F6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HERD_OF_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that a whole herd is on the road. The driver should expect
+a full stop while waiting for the herd leaving.\ql\par
+Example: Sheep.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BF3DD3EA_90D7_4018_A3F8_74D8DE825398}{\*\bkmkend BKM_BF3DD3EA_90D7_4018_A3F8_74D8DE825398}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SMALL_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that small animals, which fit under a car, are on the road.\ql\par
+Examples: Frogs, foxes, badgers.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5CF45E01_677C_4775_8022_E94F46F55451}{\*\bkmkend BKM_5CF45E01_677C_4775_8022_E94F46F55451}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LARGE_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that big animals, which don't fit under a car, are on the
+road.\ql\par
+Examples: Cows or horses.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_DFCA2205_16E7_44a8_BF04_590900C453D0}{\*\bkmkend BKM_DFCA2205_16E7_44a8_BF04_590900C453D0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+BrokenDownVehicles}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is BROKEN_DOWN_VEHICLES.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_6F412C7C_CB7C_400f_9141_4126B2A8862C}{\*\bkmkend BKM_6F412C7C_CB7C_400f_9141_4126B2A8862C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b BROKEN_DOWN_VEHICLE_BURNING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the car lying on the road also is burning.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DB9F3166_A39C_41c3_96B5_1DFC684D48FC}{\*\bkmkend BKM_DB9F3166_A39C_41c3_96B5_1DFC684D48FC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BROKEN_DOWN_UNLIT_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the car lying on the road not illuminated.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_6DEC7351_3BB5_46e6_A1E4_227ED0BAB187}{\*\bkmkend BKM_6DEC7351_3BB5_46e6_A1E4_227ED0BAB187}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseCode}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for a \b mainCause \b0 of a \b Traffic Incident\b0
+.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E705A135_9329_4675_8A38_2D33E9B8C8AC}{\*\bkmkend BKM_E705A135_9329_4675_8A38_2D33E9B8C8AC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TRAFFIC_CONGESTION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the capacity limitation of the street is causing
+the message.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2193C7DD_529B_4943_87A5_E2520F179A35}{\*\bkmkend BKM_2193C7DD_529B_4943_87A5_E2520F179A35}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of an accident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_089420F9_F748_4bec_8876_27AEE7883F9A}{\*\bkmkend BKM_089420F9_F748_4bec_8876_27AEE7883F9A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROADWORKS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that road works are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9D3E236B_01A2_42db_BCF3_0E36E7381C7C}{\*\bkmkend BKM_9D3E236B_01A2_42db_BCF3_0E36E7381C7C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+NARROW_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of lanes being smaller as typical for the given country.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7CE14113_0F93_4873_A433_561C9472EB31}{\*\bkmkend BKM_7CE14113_0F93_4873_A433_561C9472EB31}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+IMPASSIBILITY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that in general the given part of a road is impassable. \b
+Effect \b0 is expected to be "no traffic flow".\lang3081\hich\f3\dbch\f3\loch\f3\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7B460007_B43C_47df_A240_FED618DF98F0}{\*\bkmkend BKM_7B460007_B43C_47df_A240_FED618DF98F0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIPPERY_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9B7C80CF_7F77_4fd5_B1DB_97352F30DAAA}{\*\bkmkend BKM_9B7C80CF_7F77_4fd5_B1DB_97352F30DAAA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AQUAPLANING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that big areas of water are on the road surface. Deep
+water being hazardous conditions shall be signalled with hazardous driving condition.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_347C7190_C958_4b73_A4F9_A2C49198BF90}{\*\bkmkend BKM_347C7190_C958_4b73_A4F9_A2C49198BF90}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a traffic affecting fire is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BEEEF122_B2E8_496c_AA41_68379E9AC211}{\*\bkmkend BKM_BEEEF122_B2E8_496c_AA41_68379E9AC211}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HAZARDOUS_DRIVING_CONDITIONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that natural conditions require high caution by the
+driver. The reason is mostly expected to appear suddenly.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9BDBD319_46A8_4e80_81CC_D4288FC2C798}{\*\bkmkend BKM_9BDBD319_46A8_4e80_81CC_D4288FC2C798}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OBJECTS_ON_THE_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that objects impede the drive. The objects would cause
+an accident or damage of the car}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FDE740B9_61FD_457d_AE08_24F6FC894835}{\*\bkmkend BKM_FDE740B9_61FD_457d_AE08_24F6FC894835}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ANIMALS_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that animals are on the carriage way.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3D589471_FEBD_4acc_B483_579D54696571}{\*\bkmkend BKM_3D589471_FEBD_4acc_B483_579D54696571}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PEOPLE_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that people are on the carriage way.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C2A53E60_B216_46eb_9BEC_0D336B8BE03D}{\*\bkmkend BKM_C2A53E60_B216_46eb_9BEC_0D336B8BE03D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BROKEN_DOWN_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that broken down car lies on the carriage way.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_11D620D7_FAFB_479a_B541_1949144BB78B}{\*\bkmkend BKM_11D620D7_FAFB_479a_B541_1949144BB78B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_ON_WRONG_CARRIAGEWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that cars are driving against the one way direction
+of the carriage way, also known as ghost-driver. (i.e. not parked).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8AFBC3E3_54E7_412f_89ED_D16C8923F1CE}{\*\bkmkend BKM_8AFBC3E3_54E7_412f_89ED_D16C8923F1CE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RESCUE_AND_RECOVERY_WORK_IN_PROGRESS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that rescue and recovery work is in progress.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_05C325EC_A418_4d24_BED6_985037126727}{\*\bkmkend BKM_05C325EC_A418_4d24_BED6_985037126727}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+REGULATORY_MEASURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that regulatory measure is the reason. (It is expected to
+be combined with \b Effect \b0 e.g. "no_traffic_flow").\lang3081\hich\f3\dbch\f3\loch\f3\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1AAE4E53_F744_4fa5_BC39_DFE21B4C2F54}{\*\bkmkend BKM_1AAE4E53_F744_4fa5_BC39_DFE21B4C2F54}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EXTREME_WEATHER_CONDITIONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that extreme weather conditions are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D277FA3E_5C9E_45f6_B27F_CC0B69126335}{\*\bkmkend BKM_D277FA3E_5C9E_45f6_B27F_CC0B69126335}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case the reduced visibility needs a speed adaptation.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_53813A50_2DD8_4479_B788_0FBC24E15C73}{\*\bkmkend BKM_53813A50_2DD8_4479_B788_0FBC24E15C73}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PRECIPITATION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that increased precipitation is the reason. This cause
+is mostly combined with time delays.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_33550D0B_93BC_4050_8C00_325D53448945}{\*\bkmkend BKM_33550D0B_93BC_4050_8C00_325D53448945}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RECKLESS_PERSONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that reckless persons are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_52A4E4E9_2B46_4f1b_B4CE_44DF53AD337E}{\*\bkmkend BKM_52A4E4E9_2B46_4f1b_B4CE_44DF53AD337E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that an overheight warning system trigger is the reason
+for e.g. the closure.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6F606E65_D7AB_4a19_A266_18EDC73024C1}{\*\bkmkend BKM_6F606E65_D7AB_4a19_A266_18EDC73024C1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_REGULATIONS_CHANGED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that changed traffic regulations and therefore high
+risk of accident are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6BE595A9_357A_4d13_A513_66636F535555}{\*\bkmkend BKM_6BE595A9_357A_4d13_A513_66636F535555}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MAJOR_EVENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a major event is the reason. More close description
+can be set in free text.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ACFFA3A7_6431_4b95_AC3F_183A5BEF37AF}{\*\bkmkend BKM_ACFFA3A7_6431_4b95_AC3F_183A5BEF37AF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a transport service is not operating.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0A3D892E_2F96_4ad7_97BF_E80EDC6BEC83}{\*\bkmkend BKM_0A3D892E_2F96_4ad7_97BF_E80EDC6BEC83}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_NOT_USEABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a service is not usable although it is operating.
+(e.g. overcrowded or paused).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B85928A0_B96B_4766_A696_56258DE30E60}{\*\bkmkend BKM_B85928A0_B96B_4766_A696_56258DE30E60}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_MOVING_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that slow moving vehicles are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C4BF7C40_12C1_45fd_B22E_D11F53819DC6}{\*\bkmkend BKM_C4BF7C40_12C1_45fd_B22E_D11F53819DC6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGEROUS_END_OF_QUEUE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a dangerous end of queue could cause an accident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E429FEA4_60EB_482f_983F_00D622D624D4}{\*\bkmkend BKM_E429FEA4_60EB_482f_983F_00D622D624D4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RISK_OF_FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a risk of fire exists. Open fire or glow should
+be extinguished.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7ADF423B_0758_45fb_8FC7_3794CF82AF47}{\*\bkmkend BKM_7ADF423B_0758_45fb_8FC7_3794CF82AF47}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a time delay exists.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B20EE39C_19D1_4bc7_A315_E559771FFD90}{\*\bkmkend BKM_B20EE39C_19D1_4bc7_A315_E559771FFD90}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+POLICE_CHECKPOINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that there is a spot for checking purposes.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D1DA4809_5E6C_42ae_8EC5_81783047CA1E}{\*\bkmkend BKM_D1DA4809_5E6C_42ae_8EC5_81783047CA1E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MALFUNCTIONING_ROADSIDE_EQUIPMENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a malfunctioning roadside equipment is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_97A82EE1_4103_486b_95A0_D532E67C54B2}{\*\bkmkend BKM_97A82EE1_4103_486b_95A0_D532E67C54B2}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DangerOfFire}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_5888D17B_1CF4_4d56_BB9B_46F72F349759}{\*\bkmkend BKM_5888D17B_1CF4_4d56_BB9B_46F72F349759}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b LEAKAGE_OF_FUEL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_79B03CFF_A13B_488b_9958_8BBBA82F0CFD}{\*\bkmkend BKM_79B03CFF_A13B_488b_9958_8BBBA82F0CFD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LEAKAGE_OF_GAS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_34D37DD1_DF70_4b05_AE0C_778DB9540A9B}{\*\bkmkend BKM_34D37DD1_DF70_4b05_AE0C_778DB9540A9B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DangerousEndOfQueue}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is DANGEROUS_END_OF_QUEUE.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7369CABD_7801_4e91_8DD4_21798E275C01}{\*\bkmkend BKM_7369CABD_7801_4e91_8DD4_21798E275C01}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SUDDEN_END_OF_QUEUE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a dangerous end of queue is expected to appear
+suddenly.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C2C90FBF_9E22_4415_B6C2_E5383FF29BE9}{\*\bkmkend BKM_C2C90FBF_9E22_4415_B6C2_E5383FF29BE9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUE_OVER_HILL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a dangerous end of queue is over the top of a
+hill.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CBC87113_9588_425f_8DD0_DEF59CDCDEE8}{\*\bkmkend BKM_CBC87113_9588_425f_8DD0_DEF59CDCDEE8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUE_AROUND_A_BEND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a dangerous end of queue is around a bend.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0A172C75_21D5_4cc5_8ACC_2A682DCB8A72}{\*\bkmkend BKM_0A172C75_21D5_4cc5_8ACC_2A682DCB8A72}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUE_IN_TUNNEL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a dangerous end of queue is inside of a tunnel.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8A4139AE_8872_4674_9B8B_F7C048004D04}{\*\bkmkend BKM_8A4139AE_8872_4674_9B8B_F7C048004D04}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DoNotLeaveYourVehicle}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+DO_NOT_LEAVE_YOUR_VEHICLE.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3CEBDBFC_26DE_452e_AB72_9185312311D3}{\*\bkmkend BKM_3CEBDBFC_26DE_452e_AB72_9185312311D3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DO_NOT_LEAVE_YOUR_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Do not leave your vehicle.\ql\par
+Example: Due to security reasons.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_56FADE5D_DD30_4802_8593_0BFC77D179A6}{\*\bkmkend BKM_56FADE5D_DD30_4802_8593_0BFC77D179A6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Do not leave your vehicle , close windows.\ql\par
+Example: Toxic gas coming from a fire could flow into the vehicle.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F09667E3_01AC_4886_B5F5_B3B9FDC00797}{\*\bkmkend BKM_F09667E3_01AC_4886_B5F5_B3B9FDC00797}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DriveCarefully}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+DRIVE_CAREFULLY.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_8E7CB743_48CF_4b7a_BBDA_277556072772}{\*\bkmkend BKM_8E7CB743_48CF_4b7a_BBDA_277556072772}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a road is affected by a dangerous situation on
+an entry slip road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_28FD6E5A_B59A_4734_A756_27CF4ACF7C7B}{\*\bkmkend BKM_28FD6E5A_B59A_4734_A756_27CF4ACF7C7B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a road is affected by a dangerous situation on
+an exit slip road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_87F77A41_A0BB_45d7_A26D_B680915745AF}{\*\bkmkend BKM_87F77A41_A0BB_45d7_A26D_B680915745AF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that ice is buildup on cable structures close to the
+road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_0545601D_C041_4d87_A5C4_26088C441A19}{\*\bkmkend BKM_0545601D_C041_4d87_A5C4_26088C441A19}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DrivingNotAllowed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+DRIVING_NOT_ALLOWED.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B4055143_8C71_4f43_9133_7672FE203A36}{\*\bkmkend BKM_B4055143_8C71_4f43_9133_7672FE203A36}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Driving not allowed, take next possible place to stop vehicle.\ql\par
+Example: An earthquake will happen.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_480D4BBB_6966_4868_8845_74EE89AC92EB}{\*\bkmkend BKM_480D4BBB_6966_4868_8845_74EE89AC92EB}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+EffectCode}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for the \b Effect \b0 of a \b Traffic Incident\b0
+.\ql\par
+The values represent the direct effect on the traffic flow.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B3C65342_31AD_4ce7_A7E4_8C9F5D35EC06}{\*\bkmkend BKM_B3C65342_31AD_4ce7_A7E4_8C9F5D35EC06}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TRAFFIC_FLOW_UNKNOWN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Can be used if traffic flow is unknown. This is often the
+case for local hazard warnings.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_715246FC_9DC7_404c_9540_8C53D1290B72}{\*\bkmkend BKM_715246FC_9DC7_404c_9540_8C53D1290B72}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FREE_TRAFFIC_FLOW}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The traffic is not disturbed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3D06821_174A_4f71_96C5_8F2C6E1EF123}{\*\bkmkend BKM_F3D06821_174A_4f71_96C5_8F2C6E1EF123}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Heavy traffic causes problems in the traffic flow.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9327E623_B970_4e49_8F96_A48B7E61CE17}{\*\bkmkend BKM_9327E623_B970_4e49_8F96_A48B7E61CE17}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The traffic is moving slower than normal.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_25048DDD_8533_4906_BF2F_4622B8E2ABDA}{\*\bkmkend BKM_25048DDD_8533_4906_BF2F_4622B8E2ABDA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUING_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The traffic is in queues but still slowly floating.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_53B5AE14_E0CA_4785_A491_2219316E717F}{\*\bkmkend BKM_53B5AE14_E0CA_4785_A491_2219316E717F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STATIONARY_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The traffic is jammed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_436907EC_98BB_4153_80A2_6FAF8E1F8D87}{\*\bkmkend BKM_436907EC_98BB_4153_80A2_6FAF8E1F8D87}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+NO_TRAFFIC_FLOW}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The road is closed/blocked.\ql\par
+The cause-component may give more information about the reason for "no traffic flow".\par
+Examples:\par
+\pard\intbl\ssparaaux0\s0{\pntext\pard\plain\f2\fs22 \'b7\tab}{\*\pn\pnlvlblt\ls41\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls41\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The road has been closed by police as a "regulatory
+measure".\par
+The road is blocked by a temporary incident.\par
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_47EF4E98_9D4F_40dc_9DA2_D52F649BAAEC}{\*\bkmkend BKM_47EF4E98_9D4F_40dc_9DA2_D52F649BAAEC}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ExtremeWeatherConditions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is EXTREME_WEATHER_CONDITIONS.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_6FDCA5B6_C936_4602_98EB_BF3EC2E3F4C8}{\*\bkmkend BKM_6FDCA5B6_C936_4602_98EB_BF3EC2E3F4C8}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRONG_WINDS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that strong winds, especially cross winds, are the
+reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AF725399_40F2_4d82_BBC1_E7EA637B0762}{\*\bkmkend BKM_AF725399_40F2_4d82_BBC1_E7EA637B0762}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DAMAGING_HAIL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that hail could damage cars.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AF91B794_E907_4c90_B4BF_22384F18E61F}{\*\bkmkend BKM_AF91B794_E907_4c90_B4BF_22384F18E61F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HURRICANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case the strength of the storm is higher than a given strength.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_70010443_41D1_4ec8_AD6A_063A4C30EA94}{\*\bkmkend BKM_70010443_41D1_4ec8_AD6A_063A4C30EA94}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+THUNDERSTORM}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a strong thunderstorm affects driving.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_749BE56E_B371_4018_82D8_CE55BB717914}{\*\bkmkend BKM_749BE56E_B371_4018_82D8_CE55BB717914}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TORNADO}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case the strength of the storm is higher than a given strength.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C1247B0A_77E5_444a_9D07_FF1FD53FB8A1}{\*\bkmkend BKM_C1247B0A_77E5_444a_9D07_FF1FD53FB8A1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLIZARD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case the strength of the storm is higher than a given strength
+combined with lots of snow.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_CCFB4E9A_DFD1_4ec5_B314_3B28EC1BE142}{\*\bkmkend BKM_CCFB4E9A_DFD1_4ec5_B314_3B28EC1BE142}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Fire}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is FIRE.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_17A4ED82_377C_4182_B4D4_DBB68ECD6D65}{\*\bkmkend BKM_17A4ED82_377C_4182_B4D4_DBB68ECD6D65}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b MAJOR_FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In the case of a long lasting major fire.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6FF5FDD6_C169_4dd2_B3F0_F3D00D394E77}{\*\bkmkend BKM_6FF5FDD6_C169_4dd2_B3F0_F3D00D394E77}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOREST_FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In the case of a long lasting forest fire.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9BA6EC54_7B1C_462c_AE6A_E4BC3855181F}{\*\bkmkend BKM_9BA6EC54_7B1C_462c_AE6A_E4BC3855181F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+FollowDiversion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+FOLLOW_DIVERSION.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C8B1F307_89F4_40ab_B18B_1F9228B8E1A7}{\*\bkmkend BKM_C8B1F307_89F4_40ab_B18B_1F9228B8E1A7}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FOLLOW_DIVERSION_SIGNS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a diversion is signposted.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C15EF53C_C6CA_4d64_A3F0_657791897E4B}{\*\bkmkend BKM_C15EF53C_C6CA_4d64_A3F0_657791897E4B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+GivingPathVehiclesFromBehind}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+GIVING_PATH_VEHICLES_COMING_FROM_BEHIND.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0F0A89D8_5CE2_4b92_B4CA_891CFBFE73E3}{\*\bkmkend BKM_0F0A89D8_5CE2_4b92_B4CA_891CFBFE73E3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GIVING_PATH_FOR_RESCUE_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that rescue vehicles approach from behind, which need
+to pass.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_221A0336_51B5_4a52_9873_A6834B4F4B79}{\*\bkmkend BKM_221A0336_51B5_4a52_9873_A6834B4F4B79}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GIVING_PATH_FOR_SERVICE_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that recovery vehicles approach from behind.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_98A71527_FC29_4786_BBF3_1D95BA0C6E65}{\*\bkmkend BKM_98A71527_FC29_4786_BBF3_1D95BA0C6E65}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+HazardousDrivingConditions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is HAZARDOUS_DRIVING_CONDITIONS.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3E2BA25B_D628_46de_A2A6_316B2B63F7C7}{\*\bkmkend BKM_3E2BA25B_D628_46de_A2A6_316B2B63F7C7}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b ROCKFALLS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Danger of falling rocks.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2677ED5B_F5B3_4aba_9659_83CD74B1BA8C}{\*\bkmkend BKM_2677ED5B_F5B3_4aba_9659_83CD74B1BA8C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EARTHQUAKE_DAMAGE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Damages caused by earthquakes.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4DB2F271_D940_4433_BBB3_1E6248D05FC7}{\*\bkmkend BKM_4DB2F271_D940_4433_BBB3_1E6248D05FC7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SEWER_COLLAPSE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Sewer collapses occur.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9A677E69_0483_4449_90A4_98F0BD34B8E3}{\*\bkmkend BKM_9A677E69_0483_4449_90A4_98F0BD34B8E3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SUBSIDENCE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Caution, partial subsidence occur.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3133169_4C37_4645_AE8E_D45E56306D45}{\*\bkmkend BKM_F3133169_4C37_4645_AE8E_D45E56306D45}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SNOW_DRIFTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Caution, snow drifts occur.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F7740E0E_91CC_466d_B992_DEDAF2B6936E}{\*\bkmkend BKM_F7740E0E_91CC_466d_B992_DEDAF2B6936E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STORM_DAMAGE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that storm damages occur, which are not 'hazardous
+driving conditions' or 'objects on road'}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_50FCAA82_C711_4f37_8B1B_340E3E52E7E7}{\*\bkmkend BKM_50FCAA82_C711_4f37_8B1B_340E3E52E7E7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BURST_PIPE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a burst pipe affects the traffic and cause is
+not 'sewer collapse' or 'flooding'.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CA2ED941_2F95_4711_B66C_A52950A11BD1}{\*\bkmkend BKM_CA2ED941_2F95_4711_B66C_A52950A11BD1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VOLCANO_ERUPTION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Danger of volcano eruption.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_78DE22FF_966E_4ed0_9ECC_9B38516C0FDE}{\*\bkmkend BKM_78DE22FF_966E_4ed0_9ECC_9B38516C0FDE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FALLING_ICE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Danger of falling ice.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1E8E55AA_D0B2_4a94_811A_BBE2AC67A120}{\*\bkmkend BKM_1E8E55AA_D0B2_4a94_811A_BBE2AC67A120}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Impassibility}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is IMPASSIBILITY.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7059BC5E_3892_4525_9CA8_6F9936A5ED91}{\*\bkmkend BKM_7059BC5E_3892_4525_9CA8_6F9936A5ED91}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FLOODING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that flooding water is reason for impassability.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3D17FE61_9A0D_4ad6_BF81_E36176757CFF}{\*\bkmkend BKM_3D17FE61_9A0D_4ad6_BF81_E36176757CFF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_OF_AVALANCHES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a danger of avalanches is reason for impassability.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E0CE7E47_9692_46ea_9B21_5EB629957943}{\*\bkmkend BKM_E0CE7E47_9692_46ea_9B21_5EB629957943}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLASTING_OF_AVALANCHES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a blasting avalanche is reason for impassability
+in a short period of time.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0E8BDA7D_3614_46e0_BC7F_7C995DCABF41}{\*\bkmkend BKM_0E8BDA7D_3614_46e0_BC7F_7C995DCABF41}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LANDSLIPS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a landslip is reason for impassability.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9A6CD2CD_E6F0_4500_B737_A9E5B6E75984}{\*\bkmkend BKM_9A6CD2CD_E6F0_4500_B737_A9E5B6E75984}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CHEMICAL_SPILLAGE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that chemical spillage is reason for impassability
+except oil and fuel being expressed as slippery and or danger of fire.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FCC8BDCA_FDCA_488a_B993_6AEDC69F761F}{\*\bkmkend BKM_FCC8BDCA_FDCA_488a_B993_6AEDC69F761F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WINTER_CLOSURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a road is impassable due to winter closure.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_E603D776_3CD8_4a20_B22A_7EFE62D7784A}{\*\bkmkend BKM_E603D776_3CD8_4a20_B22A_7EFE62D7784A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LaneRestrictionType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for the \b laneRestrictionType \b0 in \b LaneRestrictions\b0
+.\ql\par
+The values indicate the different kinds of lane restrictions.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A1280A69_FA05_4a3e_9794_4C1DE5CA8EA0}{\*\bkmkend BKM_A1280A69_FA05_4a3e_9794_4C1DE5CA8EA0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b LANES_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7CD01878_32B9_473d_B20D_65F1E8AF8EE4}{\*\bkmkend BKM_7CD01878_32B9_473d_B20D_65F1E8AF8EE4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LANES_OPEN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8B70019F_F80C_43cf_84DE_45BF6267F8AB}{\*\bkmkend BKM_8B70019F_F80C_43cf_84DE_45BF6267F8AB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RIGHT_LANES_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Always right lanes are meant; independent where the \hich\f9\dbch\f9\loch\f9\u8220
+\'93\hich\f3\dbch\f3\loch\f3 normal\hich\f9\dbch\f9\loch\f9\u8221 \'94\hich\f3\dbch\f3\loch\f3 driving lane is located.\lang3081\hich\f3\dbch\f3\loch\f3\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_102A0576_40C8_4344_B105_D33EA7D80FB6}{\*\bkmkend BKM_102A0576_40C8_4344_B105_D33EA7D80FB6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LEFT_LANES_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Always left lanes are meant; independent where the \hich\f9\dbch\f9\loch\f9\u8220
+\'93\hich\f3\dbch\f3\loch\f3 normal\hich\f9\dbch\f9\loch\f9\u8221 \'94\hich\f3\dbch\f3\loch\f3 driving lane is located.\lang3081\hich\f3\dbch\f3\loch\f3\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C014583F_2DAE_4499_93C1_F85B1A71834F}{\*\bkmkend BKM_C014583F_2DAE_4499_93C1_F85B1A71834F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+MajorEvent}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is MAJOR_EVENT.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_FED8B69D_5A7F_4c01_9D19_396F082BDA71}{\*\bkmkend BKM_FED8B69D_5A7F_4c01_9D19_396F082BDA71}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SPORTS_EVENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a major sports event is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EFF217B5_46B9_4512_93DD_DF7E2CB4AF9B}{\*\bkmkend BKM_EFF217B5_46B9_4512_93DD_DF7E2CB4AF9B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DEMONSTRATION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a major demonstration is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_851A1C6C_6A49_45bc_96F0_9390D84EC6DD}{\*\bkmkend BKM_851A1C6C_6A49_45bc_96F0_9390D84EC6DD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DEMONSTRATION_WITH_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a major demonstration with vehicles is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_30B86C79_6F7E_4d21_979E_1D8B3AEE2511}{\*\bkmkend BKM_30B86C79_6F7E_4d21_979E_1D8B3AEE2511}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONCERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a concert is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AB078447_90A4_4c90_8793_9FAAE88F8E15}{\*\bkmkend BKM_AB078447_90A4_4c90_8793_9FAAE88F8E15}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FAIR}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a fair is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7BBE1303_B286_426d_9C75_EDBED0689ABE}{\*\bkmkend BKM_7BBE1303_B286_426d_9C75_EDBED0689ABE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MILITARY_TRAINING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a military training is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D511C166_FBD5_4a4c_B1CB_52C77847D59E}{\*\bkmkend BKM_D511C166_FBD5_4a4c_B1CB_52C77847D59E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EMERGENCY_TRAINING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a emergency training is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ECEA882E_0926_49b6_ACC5_4CE126F723F9}{\*\bkmkend BKM_ECEA882E_0926_49b6_ACC5_4CE126F723F9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FESTIVITY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a festivity is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5C8CF60A_6668_4892_864E_4D453B001B9D}{\*\bkmkend BKM_5C8CF60A_6668_4892_864E_4D453B001B9D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PROCESSION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a procession is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_D1599778_C91B_41a9_BD61_AAABA2BBA88B}{\*\bkmkend BKM_D1599778_C91B_41a9_BD61_AAABA2BBA88B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+MalfunctioningRoadsideEquipment}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is MALFUNCTIONING_ROADSIDE_EQUIPMENT.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_888EBE3C_6CB9_4ab8_8E9E_0A2E2A9885B6}{\*\bkmkend BKM_888EBE3C_6CB9_4ab8_8E9E_0A2E2A9885B6}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b ROAD_RAIL_CROSSING_FAILURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a road-rail crossing is malfunctioning.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B0A05F89_2E47_4ec0_9643_1B72008D4A4D}{\*\bkmkend BKM_B0A05F89_2E47_4ec0_9643_1B72008D4A4D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TUNNEL_VENTILATION_NOT_WORKING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the tunnel ventilation is malfunctioning.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_91141106_E478_4ba0_B3A3_15F530811143}{\*\bkmkend BKM_91141106_E478_4ba0_B3A3_15F530811143}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that traffic control signals are malfunctioning.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C0877872_0CE9_414a_AADF_5CA0E7EC7FC9}{\*\bkmkend BKM_C0877872_0CE9_414a_AADF_5CA0E7EC7FC9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EMERGENCY_TELEPHONES_NOT_WORKING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that emergency telephones are malfunctioning.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FF9618B2_E0AF_43d4_BA00_E5F6F2166F73}{\*\bkmkend BKM_FF9618B2_E0AF_43d4_BA00_E5F6F2166F73}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AUTOMATIC_PAYMENT_LANES_NOT_WORKING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that automatic payment lanes are not working.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_3F6614DF_9F5B_4660_AD93_729E9491291C}{\*\bkmkend BKM_3F6614DF_9F5B_4660_AD93_729E9491291C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+NarrowLanes}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is NARROW_LANES.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_04156766_5C15_46f4_948D_5D358032437E}{\*\bkmkend BKM_04156766_5C15_46f4_948D_5D358032437E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CONTRAFLOW}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case of lanes being smaller because of road works.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C8BDB4EE_91B9_4fbf_AF80_92A5721C4967}{\*\bkmkend BKM_C8BDB4EE_91B9_4fbf_AF80_92A5721C4967}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HARD_SHOULDER_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the hard shoulder is closed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A9260768_3795_408d_BF5E_8685B171DFF1}{\*\bkmkend BKM_A9260768_3795_408d_BF5E_8685B171DFF1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIP_LANE_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the slip lane is closed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_760D1339_88A8_4df5_920B_FA1DBE99D346}{\*\bkmkend BKM_760D1339_88A8_4df5_920B_FA1DBE99D346}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CRAWLER_LANE_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the crawler lane is closed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_EB2C17B4_7DA3_4f68_8275_C57CB58D1378}{\*\bkmkend BKM_EB2C17B4_7DA3_4f68_8275_C57CB58D1378}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ObjectsOnTheRoad}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is OBJECTS_ON_THE_ROAD.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_20DFC429_1DDF_4b14_AE1C_D58D503D5825}{\*\bkmkend BKM_20DFC429_1DDF_4b14_AE1C_D58D503D5825}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SHED_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are parts of the load of a lorry.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FBA3FB6A_7602_47ac_B254_26D1A1260F1A}{\*\bkmkend BKM_FBA3FB6A_7602_47ac_B254_26D1A1260F1A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARTS_OF_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are parts of a vehicle (exhaust pipe).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E24418EE_485B_4d61_ABA8_B57B19C80EA8}{\*\bkmkend BKM_E24418EE_485B_4d61_ABA8_B57B19C80EA8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARTS_OF_TYRES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are parts of tyres.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5966EB12_3F73_4ee9_8BD3_21F29A0028E9}{\*\bkmkend BKM_5966EB12_3F73_4ee9_8BD3_21F29A0028E9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BIG_OBJECTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are that big, that a car cannot pass
+over.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0182DD7C_7590_4511_A234_9E3842C026C5}{\*\bkmkend BKM_0182DD7C_7590_4511_A234_9E3842C026C5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FALLEN_TREES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are parts of fallen trees.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A2B28270_B16C_42dc_8CF6_5DEA6163C20A}{\*\bkmkend BKM_A2B28270_B16C_42dc_8CF6_5DEA6163C20A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HUB_CAPS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are hub caps.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_65188492_D37E_4d1a_89B9_33B8ECC12B73}{\*\bkmkend BKM_65188492_D37E_4d1a_89B9_33B8ECC12B73}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAITING_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the objects are waiting vehicles.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_EBC80A87_67B8_4339_B014_D428CC4DEA0B}{\*\bkmkend BKM_EBC80A87_67B8_4339_B014_D428CC4DEA0B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+OvertakingNotAllowed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+OVERTAKING_NOT_ALLOWED.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_00822C34_900C_456e_964C_26BDC5827277}{\*\bkmkend BKM_00822C34_900C_456e_964C_26BDC5827277}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DO_NOT_USE_OVERTAKING_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In the case that overtaking is not allowed.\ql\par
+Example: A ghost-driver approaches.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9F87462F_5EA8_4bcd_931D_0851405F2EDF}{\*\bkmkend BKM_9F87462F_5EA8_4bcd_931D_0851405F2EDF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In the case that additionally the preferred side can be recommended.\ql\par
+Example: A ghost-driver approaches.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CF952828_F834_4c1e_9C9C_A98394EE01AB}{\*\bkmkend BKM_CF952828_F834_4c1e_9C9C_A98394EE01AB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In the case that additionally the preferred side can be recommended.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FD49C961_2D7A_4db0_8848_61CB19E80AA7}{\*\bkmkend BKM_FD49C961_2D7A_4db0_8848_61CB19E80AA7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In the case that additionally the preferred side can be recommended.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_29852CE3_4BB5_47b9_A5C7_64D7893C898A}{\*\bkmkend BKM_29852CE3_4BB5_47b9_A5C7_64D7893C898A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PeopleOnRoadway}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is PEOPLE_ON_ROADWAY.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0CA3362D_49C5_4ac0_B11F_A5A7A6BF2A88}{\*\bkmkend BKM_0CA3362D_49C5_4ac0_B11F_A5A7A6BF2A88}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CHILDREN_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that children are walking on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AF1C6D92_88C9_4a55_9CC6_F334047CA228}{\*\bkmkend BKM_AF1C6D92_88C9_4a55_9CC6_F334047CA228}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CYCLISTS_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that cyclists are driving on the road. (i.e. motorway).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_40809D80_A1DF_4ff1_AC6E_7A4C7C354BBF}{\*\bkmkend BKM_40809D80_A1DF_4ff1_AC6E_7A4C7C354BBF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTOR_CYCLIST_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that motor cyclists are driving on the road. (i.e.
+motorway).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2656F6F4_E67B_4cf3_A9CF_B8BD9843110B}{\*\bkmkend BKM_2656F6F4_E67B_4cf3_A9CF_B8BD9843110B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PoliceCheckpoint}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is POLICE_CHECKPOINT.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_97B841C4_EA5F_4944_8ABF_5285CFADEE59}{\*\bkmkend BKM_97B841C4_EA5F_4944_8ABF_5285CFADEE59}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b PERMANENT_POLICE_CHECKPOINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a permanent police checkpoint is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A9B358DB_9CB9_4c21_BF5B_2E0B92DC7846}{\*\bkmkend BKM_A9B358DB_9CB9_4c21_BF5B_2E0B92DC7846}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TEMPORARY_POLICE_CHECKPOINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a temporary police checkpoint is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_E1747D7A_E2E1_435d_B79A_CCA65DA79048}{\*\bkmkend BKM_E1747D7A_E2E1_435d_B79A_CCA65DA79048}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Precipitation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is PRECIPITATION.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7ACC270D_0A65_4a0d_92BF_026EE25EB554}{\*\bkmkend BKM_7ACC270D_0A65_4a0d_92BF_026EE25EB554}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b HEAVY_RAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that heavy rain is the reason for e.g. reduced speed
+limit.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2CE34784_6850_4358_9B06_8340780F90DC}{\*\bkmkend BKM_2CE34784_6850_4358_9B06_8340780F90DC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_SNOWFALL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that heavy snowfall is the reason for e.g. reduced
+speed limit.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_77533277_0C40_415a_BB46_A256925F7DF5}{\*\bkmkend BKM_77533277_0C40_415a_BB46_A256925F7DF5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SOFT_HAIL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that hail is the reason for e.g. reduced speed limit.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_3CB19B98_D7A2_450a_8E67_B656CFEE24DA}{\*\bkmkend BKM_3CB19B98_D7A2_450a_8E67_B656CFEE24DA}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RecklessPersons}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is RECKLESS_PERSONS.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_975F8CA4_47EC_423b_84B4_5EDEFAA7672A}{\*\bkmkend BKM_975F8CA4_47EC_423b_84B4_5EDEFAA7672A}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RECKLESS_DRIVER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that reckless drivers are the reason. The backward
+traffic should be given attention.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E5CE8F6C_454B_4b1c_B382_96032FB58341}{\*\bkmkend BKM_E5CE8F6C_454B_4b1c_B382_96032FB58341}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GUNFIRE_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a gunfire on the road is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A9CEAE54_8BB4_4a9b_8531_CEF03308FD52}{\*\bkmkend BKM_A9CEAE54_8BB4_4a9b_8531_CEF03308FD52}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STONE_THROWING_PERSONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that reckless persons throwing stones are the reason.
+(e.g. from a bridge).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_57C7A2F2_99EB_43a8_996B_7EE4B57CB6FE}{\*\bkmkend BKM_57C7A2F2_99EB_43a8_996B_7EE4B57CB6FE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RegulatoryMeasure}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is REGULATORY_MEASURE.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_56AD1450_11B5_45ec_8637_ED1D91E029D8}{\*\bkmkend BKM_56AD1450_11B5_45ec_8637_ED1D91E029D8}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SECURITY_ALERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 A security alert has been declared, possibly resulting in restrictions
+on traffic movement and delays.\ql\par
+Example: An area is closed due to - hostage situation.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_960D9CF6_110C_4c53_88B6_6D1CADB7C31C}{\*\bkmkend BKM_960D9CF6_110C_4c53_88B6_6D1CADB7C31C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONTAGIOUS_DISEASE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 A contagious disease is affecting the location potentially resulting
+in a movement restriction being applied.\ql\par
+Example: A disease of animals such as foot and mouth or blue tongue.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3EE12101_E8D6_4dcd_A8F0_91DACAE7B935}{\*\bkmkend BKM_3EE12101_E8D6_4dcd_A8F0_91DACAE7B935}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ENVIRONMENTAL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 An environmental incident has occurred, potentially resulting in
+a movement restriction being applied.\ql\par
+Example: An area is closed due to pollution.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_145C6035_C5C3_40a3_9BDF_F10B0C65D66A}{\*\bkmkend BKM_145C6035_C5C3_40a3_9BDF_F10B0C65D66A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SMOG_ALERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 A smog alert has been declared due to pollution levels in
+the air.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4278719B_36D2_46d5_AC3E_2C188B509035}{\*\bkmkend BKM_4278719B_36D2_46d5_AC3E_2C188B509035}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BATCH_SERVICE_IN_PROGRESS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Traffic may flow in only one direction at a time. Commonly known
+as \hich\f9\dbch\f9\loch\f9\u8216 \'91\hich\f3\dbch\f3\loch\f3 Single Alternate Line Traffic \hich\f9\dbch\f9\loch\f9\u8216 \'91\hich\f3\dbch\f3\loch\f3 .\ql\par
+Example: One side of a single carriageway road is closed; traffic in one direction uses the remaining open side for two minutes, then traffic in the other direction uses it for two minutes; alternately.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F40E5A9A_AD7D_42ca_8C8E_88D5A078904E}{\*\bkmkend BKM_F40E5A9A_AD7D_42ca_8C8E_88D5A078904E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The regulatory authorities have closed the road for whatever
+reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4BA1FDC2_8EB2_4b1a_884E_95AE48C3B125}{\*\bkmkend BKM_4BA1FDC2_8EB2_4b1a_884E_95AE48C3B125}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RescueAndRecoveryWorkInProgress}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is RESCUE_AND_RECOVERY_WORK_IN_PROGRESS.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_CF0E7EBB_9D25_48db_B6EE_991C9ECB1D43}{\*\bkmkend BKM_CF0E7EBB_9D25_48db_B6EE_991C9ECB1D43}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b EMERGENCY_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that emergency vehicles are at place.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_105F9CD0_75E0_4333_A442_BE0B50A90199}{\*\bkmkend BKM_105F9CD0_75E0_4333_A442_BE0B50A90199}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RESCUE_HELICOPTER_LANDING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a rescue helicopter landing is taking place.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BB6DFBD8_4ED5_4480_B571_414B72988F1A}{\*\bkmkend BKM_BB6DFBD8_4ED5_4480_B571_414B72988F1A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+POLICE_ACTIVITY_ONGOING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that police activity is ongoing.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3500DC4A_0CAB_40eb_94C3_0BE3AE4F6E30}{\*\bkmkend BKM_3500DC4A_0CAB_40eb_94C3_0BE3AE4F6E30}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MEDICAL_EMERGENCY_ONGOING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a medical emergency operation is ongoing.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0284D0DC_517C_4e09_86E5_353053349D75}{\*\bkmkend BKM_0284D0DC_517C_4e09_86E5_353053349D75}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CHILD_ABDUCTION_IN_PROGRESS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a child abduction is in progress (amber alert).}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_BF8B0886_047E_4617_810C_8D09219FA753}{\*\bkmkend BKM_BF8B0886_047E_4617_810C_8D09219FA753}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RestrictionType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible restriction types for a \b Vehicle Related Restriction\b0
+.\ql\par
+Where the description contains 'restrictionValue' (as in "Width less than restrictionValue."), a restrictionValue shall be available. Otherwise there shall not be a restriction value. \par
+Where applicable, the related unit is specified.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4960A183_5E6A_4e04_9AEB_98B8C81C059E}{\*\bkmkend BKM_4960A183_5E6A_4e04_9AEB_98B8C81C059E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b WIDTH_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Width less than restrictionValue.\ql\par
+Restriction unit: cm\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_36A84F9F_DE9C_46f3_B862_A849E5200E1A}{\*\bkmkend BKM_36A84F9F_DE9C_46f3_B862_A849E5200E1A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WIDTH_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Width greater than restrictionValue\ql\par
+Restriction unit: cm\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_030319DB_3CC5_44a5_9165_57177349D81D}{\*\bkmkend BKM_030319DB_3CC5_44a5_9165_57177349D81D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEIGTH_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Height less than restrictionValue.\ql\par
+Restriction unit: cm\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0C4DBBA4_83B3_4df1_8F07_483F062115C3}{\*\bkmkend BKM_0C4DBBA4_83B3_4df1_8F07_483F062115C3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEIGTH_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Height greater than restrictionValue.\ql\par
+Restriction unit: cm\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_46BEBD95_ACDD_4be1_9F80_9AD0802EAB51}{\*\bkmkend BKM_46BEBD95_ACDD_4be1_9F80_9AD0802EAB51}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WEIGHT_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Weight less than restrictionValue.\ql\par
+Restriction unit: kg\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_78AD4E48_49CD_4f6d_B232_746A3B495AAB}{\*\bkmkend BKM_78AD4E48_49CD_4f6d_B232_746A3B495AAB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WEIGHT_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Weight greater than restrictionValue.\ql\par
+Restriction unit: kg\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_68E2B88B_EC6A_4602_9574_3953FF0D961C}{\*\bkmkend BKM_68E2B88B_EC6A_4602_9574_3953FF0D961C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITHOUT_WINTER_TYRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Without winter tyre.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6DFB66BF_6761_45c2_B783_2D47A8000B12}{\*\bkmkend BKM_6DFB66BF_6761_45c2_B783_2D47A8000B12}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITHOUT_SNOW_CHAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Without snow chain.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5C7FCD31_89DF_415c_A288_77BDA2ECCC6F}{\*\bkmkend BKM_5C7FCD31_89DF_415c_A288_77BDA2ECCC6F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_TRAILER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 With trailer.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_58DCB8EB_C11F_4db6_A2A2_A03BEC9FDF0F}{\*\bkmkend BKM_58DCB8EB_C11F_4db6_A2A2_A03BEC9FDF0F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_CARAVAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 With caravan.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6C923F1D_0044_41da_8887_9167D598FA9E}{\*\bkmkend BKM_6C923F1D_0044_41da_8887_9167D598FA9E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PERSONS_IN_VEHICLE_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Persons in vehicle less than restrictionValue.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_187A6300_C678_414b_98BC_1C6A5D92B376}{\*\bkmkend BKM_187A6300_C678_414b_98BC_1C6A5D92B376}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PERSONS_IN_VEHICLE_MORE_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Persons in vehicle more than restrictionValue.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C49C117A_F8A6_4381_8C55_647568DB81EE}{\*\bkmkend BKM_C49C117A_F8A6_4381_8C55_647568DB81EE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EVEN_NUMBER_PLATE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Even number plate.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_48FB76CD_B8B0_4ddc_A004_6B3229FCE684}{\*\bkmkend BKM_48FB76CD_B8B0_4ddc_A004_6B3229FCE684}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ODD_NUMBER_PLATE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Odd number plate.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7CBBE88F_06DB_4b6d_B1F6_1F5DFF2F495E}{\*\bkmkend BKM_7CBBE88F_06DB_4b6d_B1F6_1F5DFF2F495E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LENGTH_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length less than restrictionValue.\ql\par
+Restriction unit: cm\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2E29EAE4_1EFB_45a3_BBDA_18B6CB1F0A37}{\*\bkmkend BKM_2E29EAE4_1EFB_45a3_BBDA_18B6CB1F0A37}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LENGTH_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length greater than restrictionValue.\ql\par
+Restriction unit: cm\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1E3C2F91_3CD6_45ec_9651_085660746119}{\*\bkmkend BKM_1E3C2F91_3CD6_45ec_9651_085660746119}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AXLE_LOAD_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Axle load less than restrictionValue.\ql\par
+Restriction unit: kg\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7F4A3143_47DF_47d4_86E4_96D8B9A2DB9A}{\*\bkmkend BKM_7F4A3143_47DF_47d4_86E4_96D8B9A2DB9A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AXLE_LOAD_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Axle load greater than restrictionValue.\ql\par
+Restriction unit: kg\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ACA45F90_9874_4742_B600_D3FDBEEDC138}{\*\bkmkend BKM_ACA45F90_9874_4742_B600_D3FDBEEDC138}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Vehicle fulfils emission standard 'EURO3'; a specific vehicle
+emission class according to European Council Directives.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C78AA074_6873_4fa6_9689_F5D0208BC27A}{\*\bkmkend BKM_C78AA074_6873_4fa6_9689_F5D0208BC27A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Vehicle fulfils emission standard 'EURO3D4'; a specific vehicle
+emission class according to European Council Directives.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_578E6699_B103_4006_ABA7_2532282D9E45}{\*\bkmkend BKM_578E6699_B103_4006_ABA7_2532282D9E45}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Vehicle fulfils emission standard 'EURO4'; a specific vehicle
+emission class according to European Council Directives.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_59F814E6_0F4F_4462_9331_561F6D449CF0}{\*\bkmkend BKM_59F814E6_0F4F_4462_9331_561F6D449CF0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Vehicle fulfils emission standard 'EURO5'; a specific vehicle
+emission class according to European Council Directives.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_03DBD371_1ACB_4597_B76A_4283A8D99F7E}{\*\bkmkend BKM_03DBD371_1ACB_4597_B76A_4283A8D99F7E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_PETROL_ENGINE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 With petrol-engine.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_30915B87_5907_40f2_81FD_C16F636C87A2}{\*\bkmkend BKM_30915B87_5907_40f2_81FD_C16F636C87A2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_DIESEL_ENGINE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 With diesel-engine.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9DA45A06_CDB4_478e_A743_36ED6A46934E}{\*\bkmkend BKM_9DA45A06_CDB4_478e_A743_36ED6A46934E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_LPG_ENGINE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 With LPG-engine.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F9695591_DE6D_46fa_BD91_3E59BB586443}{\*\bkmkend BKM_F9695591_DE6D_46fa_BD91_3E59BB586443}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+THROUGH_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Through traffic.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E911ADC5_2601_45fe_A561_B7A82AF47E6A}{\*\bkmkend BKM_E911ADC5_2601_45fe_A561_B7A82AF47E6A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RESIDENTS_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Residents traffic.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_73DCFB7E_8DEC_4a25_A387_41B64B7066FC}{\*\bkmkend BKM_73DCFB7E_8DEC_4a25_A387_41B64B7066FC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_DESTINATION_IN_GIVEN_AREA}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 With destination in given area.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_D529CF4C_ED3B_4d9d_AA75_B867611AFFC8}{\*\bkmkend BKM_D529CF4C_ED3B_4d9d_AA75_B867611AFFC8}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RiskOfFire}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is RISK_OF_FIRE.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_5141000D_D8B3_4271_B345_95FD7435629B}{\*\bkmkend BKM_5141000D_D8B3_4271_B345_95FD7435629B}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b LEAKAGE_OF_FUEL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a risk of fire is caused by a leakage of fuel.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_04BD11D6_922D_43d9_B9B0_048F08505CEE}{\*\bkmkend BKM_04BD11D6_922D_43d9_B9B0_048F08505CEE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LEAKAGE_OF_GAS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a risk of fire is caused by a leakage of gas.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2A4AFED4_5D47_407e_B167_F7EA292B21D2}{\*\bkmkend BKM_2A4AFED4_5D47_407e_B167_F7EA292B21D2}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RoadWorks}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is ROADWORKS.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E9D887FD_413C_462c_BD65_E91A023F0F71}{\*\bkmkend BKM_E9D887FD_413C_462c_BD65_E91A023F0F71}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b MAJOR_ROADWORKS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that major road works are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_14AC4E3E_8C04_4bc9_9AA2_FEA45FE4AE8A}{\*\bkmkend BKM_14AC4E3E_8C04_4bc9_9AA2_FEA45FE4AE8A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROAD_MARKING_WORK}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that road marking work is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FE22F4F1_BA5E_41b6_98DF_56DC03380D67}{\*\bkmkend BKM_FE22F4F1_BA5E_41b6_98DF_56DC03380D67}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_MOVING_ROAD_MAINTENANCE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 In case that a slow moving road maintenance is the reason.\ql\par
+Example: Trimming of the grass on the soft shoulder.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A2FE86A4_93D1_4ede_98C3_A6036F9421C2}{\*\bkmkend BKM_A2FE86A4_93D1_4ede_98C3_A6036F9421C2}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ServiceNotOperating}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is SERVICE_NOT_OPERATING.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_35623125_C3D1_493f_A336_898F70524693}{\*\bkmkend BKM_35623125_C3D1_493f_A336_898F70524693}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FERRY_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a ferry service not operating is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_657B67C4_A8F3_4df9_AC50_C798E65023CC}{\*\bkmkend BKM_657B67C4_A8F3_4df9_AC50_C798E65023CC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PLANE_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a plane service not operating is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BBB656D4_FED8_46d6_A6C3_0A0BA6D511D2}{\*\bkmkend BKM_BBB656D4_FED8_46d6_A6C3_0A0BA6D511D2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAIN_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a train service not operating is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_07D73FA8_0F2F_49f7_B2B2_41FCACFE27FC}{\*\bkmkend BKM_07D73FA8_0F2F_49f7_B2B2_41FCACFE27FC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BUS_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a bus service not operating is the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_EE4A2B7B_3AF0_4cf4_BD70_DA3AE5BC17C2}{\*\bkmkend BKM_EE4A2B7B_3AF0_4cf4_BD70_DA3AE5BC17C2}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ServiceNotUsable}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is SERVICE_NOT_USABLE.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_439CD3A2_4596_4602_BB34_ADAB9A92F17D}{\*\bkmkend BKM_439CD3A2_4596_4602_BB34_ADAB9A92F17D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FUEL_STATION_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a fuel station is closed for some time.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D4C19AB1_1944_4d71_AEE7_E43D01582C6E}{\*\bkmkend BKM_D4C19AB1_1944_4d71_AEE7_E43D01582C6E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_AREA_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a service area is closed for some time.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3C33251E_046F_418d_926C_8FACB0149F75}{\*\bkmkend BKM_3C33251E_046F_418d_926C_8FACB0149F75}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_AREA_BUSY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a service area is busy for some time.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F347D5C6_1F70_4e07_B523_4B80DC2B2642}{\*\bkmkend BKM_F347D5C6_1F70_4e07_B523_4B80DC2B2642}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARKING_FULL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a service area is busy for some time.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A33E26AA_3F1A_426c_8C48_C2CD44C6B6FB}{\*\bkmkend BKM_A33E26AA_3F1A_426c_8C48_C2CD44C6B6FB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAR_PARK_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a parking area or car park is closed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8241B1B6_121C_430b_8F5B_9998DEA69682}{\*\bkmkend BKM_8241B1B6_121C_430b_8F5B_9998DEA69682}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+SlipperyRoad}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is SLIPPERYROAD.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_6A6D8ED8_960D_403b_8B58_98449E385247}{\*\bkmkend BKM_6A6D8ED8_960D_403b_8B58_98449E385247}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b HEAVY_FROST_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by frost.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F112F0E7_919B_4f7d_8DB3_6948779063E3}{\*\bkmkend BKM_F112F0E7_919B_4f7d_8DB3_6948779063E3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FUEL_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by petrol on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3F525C0A_7D84_42a2_A976_C29184C4E39E}{\*\bkmkend BKM_3F525C0A_7D84_42a2_A976_C29184C4E39E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MUD_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by mud on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_29642B16_B186_446f_A709_41450294B643}{\*\bkmkend BKM_29642B16_B186_446f_A709_41450294B643}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SNOW_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by snow on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EFDF8A50_28E1_4435_B14D_CCCFFD9A5B57}{\*\bkmkend BKM_EFDF8A50_28E1_4435_B14D_CCCFFD9A5B57}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ICE_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by ice on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0F4DB56B_D0E9_40f7_99F6_DD4D800221E8}{\*\bkmkend BKM_0F4DB56B_D0E9_40f7_99F6_DD4D800221E8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLACK_ICE_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by black ice on the
+road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_51A0C008_3069_470e_B8CC_648A949AEBCD}{\*\bkmkend BKM_51A0C008_3069_470e_B8CC_648A949AEBCD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OIL_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by oil on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4A320A5A_4424_434d_A214_4E32E489E16B}{\*\bkmkend BKM_4A320A5A_4424_434d_A214_4E32E489E16B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOOSE_CHIPPINGS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a slippery road is caused by loose chippings
+on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_22F5A860_DBC8_4c3c_B4A5_1BCDE491660A}{\*\bkmkend BKM_22F5A860_DBC8_4c3c_B4A5_1BCDE491660A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+INSTANT_BLACK_ICE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that rain is falling on frozen ground which immediately
+freezes.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C261D005_AD0B_4416_AD81_6DC6904A8119}{\*\bkmkend BKM_C261D005_AD0B_4416_AD81_6DC6904A8119}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROADS_SALTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that roads may be slippery, but are salted.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_E2228A8D_4DC5_49b6_AE17_DBACB042D299}{\*\bkmkend BKM_E2228A8D_4DC5_49b6_AE17_DBACB042D299}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+SlowMovingVehicles}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is SLOW_MOVING_VEHICLES.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_33E66C94_35FD_431e_8FB5_608AEAA3494E}{\*\bkmkend BKM_33E66C94_35FD_431e_8FB5_608AEAA3494E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SLOW_MOVING_MAINTENANCE_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that slow moving maintenance vehicles are the reason.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_33281107_4A9C_4b04_B3DB_3C60C888B4E0}{\*\bkmkend BKM_33281107_4A9C_4b04_B3DB_3C60C888B4E0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that vehicles slowing down to look at accidents having
+happened on the opposite side of the road way.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_663DAD1C_F33B_4527_A17D_2F495DD349A9}{\*\bkmkend BKM_663DAD1C_F33B_4527_A17D_2F495DD349A9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ABNORMAL_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a lorry with abnormal load (without wide load)
+are on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8CC72C6D_95C0_418e_BB1E_98533B20A6F8}{\*\bkmkend BKM_8CC72C6D_95C0_418e_BB1E_98533B20A6F8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ABNORMAL_WIDE_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a lorry with abnormal wide load are on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C50160E8_BCAC_4c08_A5E8_947AF0834DE3}{\*\bkmkend BKM_C50160E8_BCAC_4c08_A5E8_947AF0834DE3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONVOY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a convoy is on the road and overtaking is not
+allowed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_03E81EAF_6B73_4799_97DA_3A576D15DC5C}{\*\bkmkend BKM_03E81EAF_6B73_4799_97DA_3A576D15DC5C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SNOWPLOUGH}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a snowplough is on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F306C120_5A34_4689_8BAC_7464DDD3056A}{\*\bkmkend BKM_F306C120_5A34_4689_8BAC_7464DDD3056A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DEICING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a deicing vehicle is on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A82B657A_44E4_4026_957F_9771438E6FC4}{\*\bkmkend BKM_A82B657A_44E4_4026_957F_9771438E6FC4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SALTING_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a salting vehicle is on the road.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_7CC62207_920D_4c18_A00E_6F12CD8277AA}{\*\bkmkend BKM_7CC62207_920D_4c18_A00E_6F12CD8277AA}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Tendency}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for the \b Tendency \b0 of a \b Traffic Incident\b0
+.\ql\par
+The values indicate whether the Traffic Incident is e.g. constant, increasing or decreasing.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_F1C2D62D_E1B8_4f35_B14D_E4C9628E804E}{\*\bkmkend BKM_F1C2D62D_E1B8_4f35_B14D_E4C9628E804E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SLIGHTLY_INCREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0D8F1463_8E65_46b0_B4C1_28F9EFB92CB1}{\*\bkmkend BKM_0D8F1463_8E65_46b0_B4C1_28F9EFB92CB1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+INCREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A01AFF62_4BE8_479c_A09D_2B505F6748C2}{\*\bkmkend BKM_A01AFF62_4BE8_479c_A09D_2B505F6748C2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STRONGLY_INCREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0166D315_E6AC_48c0_8C53_FB330780FE60}{\*\bkmkend BKM_0166D315_E6AC_48c0_8C53_FB330780FE60}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIGHTLY_DECREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_88D1350F_D19C_44a1_88FD_753B7FAE1266}{\*\bkmkend BKM_88D1350F_D19C_44a1_88FD_753B7FAE1266}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DECREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B883A517_DEE2_4082_A856_92A20B443B68}{\*\bkmkend BKM_B883A517_DEE2_4082_A856_92A20B443B68}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STRONGLY_DECREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C8D4C9A8_59B6_49c1_AA66_1215F888C811}{\*\bkmkend BKM_C8D4C9A8_59B6_49c1_AA66_1215F888C811}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONSTANT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_B79B6BF6_53B5_4eee_A159_9AFE203D621D}{\*\bkmkend BKM_B79B6BF6_53B5_4eee_A159_9AFE203D621D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TimeDelay}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is TIME_DELAY.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E10B20ED_7A00_49d9_A1CE_A03FF6FCCB3D}{\*\bkmkend BKM_E10B20ED_7A00_49d9_A1CE_A03FF6FCCB3D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TIME_DELAY_AT_FRONTIER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a time delay exists at the frontier.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_42AFE2B9_A57B_458d_A526_CC8FFD94B7C0}{\*\bkmkend BKM_42AFE2B9_A57B_458d_A526_CC8FFD94B7C0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY_AT_FERRY_PORT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a time delay exists at the ferry port.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A7DE5C80_156B_4d38_81D0_B8D13D29CE33}{\*\bkmkend BKM_A7DE5C80_156B_4d38_81D0_B8D13D29CE33}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that a time delay exists at the vehicle-on-rail terminal.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_5D4F0E6A_71FA_41aa_82AB_91FEE1D2D0D0}{\*\bkmkend BKM_5D4F0E6A_71FA_41aa_82AB_91FEE1D2D0D0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficCongestion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is TRAFFIC_CONGESTION.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_CAE909EF_8327_4635_8C14_10718F2752FF}{\*\bkmkend BKM_CAE909EF_8327_4635_8C14_10718F2752FF}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INCREASED_VOLUME_OF_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the capacity of the part of the street caused
+the message.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_EEECF8EF_0448_483d_A68B_087E25985744}{\*\bkmkend BKM_EEECF8EF_0448_483d_A68B_087E25985744}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+UseTollLanes}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subAdvice \b0 values for when the \b mainAdvice \b0 is
+USE_TOLL_LANES.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_2CE1E701_924A_40c6_9A00_30670522645D}{\*\bkmkend BKM_2CE1E701_924A_40c6_9A00_30670522645D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b USE_MANUAL_PAYMENT_TOLL_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that manual payment toll lanes should be used.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0311FAD7_AFE3_4a54_8B9E_2542F4E4D554}{\*\bkmkend BKM_0311FAD7_AFE3_4a54_8B9E_2542F4E4D554}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_AUTOMATIC_PAYMENT_TOLL_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that automatic payment toll lanes should be used.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_338E9EA6_C747_4ad8_AEE0_94D7561B5C9B}{\*\bkmkend BKM_338E9EA6_C747_4ad8_AEE0_94D7561B5C9B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VehicleType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for the \b vehicleType \b0 in an \b Applicability\b0
+.\ql\par
+The values represent different kinds of vehicles.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0F8ADAC0_802A_4713_949D_4D51050EF3C1}{\*\bkmkend BKM_0F8ADAC0_802A_4713_949D_4D51050EF3C1}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CAR}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Car.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4A70B8C4_293E_4195_BB89_4B52E1FBB527}{\*\bkmkend BKM_4A70B8C4_293E_4195_BB89_4B52E1FBB527}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LORRY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Lorry.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_98319D5D_9F77_4852_B9AC_353FC071BE14}{\*\bkmkend BKM_98319D5D_9F77_4852_B9AC_353FC071BE14}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BUS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Bus.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FC3D07CE_F97E_43c8_A9EA_7F627D409858}{\*\bkmkend BKM_FC3D07CE_F97E_43c8_A9EA_7F627D409858}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TAXI}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Taxi.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B47187C0_3782_45f3_9615_BDCE6A33E35F}{\*\bkmkend BKM_B47187C0_3782_45f3_9615_BDCE6A33E35F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Train.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7CCE5D31_2366_4c4a_B1FE_63BF2F89E77D}{\*\bkmkend BKM_7CCE5D31_2366_4c4a_B1FE_63BF2F89E77D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTOR_CYCLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Motor cycle.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9B951A20_DD3C_4012_B9C9_54FD4C2730AE}{\*\bkmkend BKM_9B951A20_DD3C_4012_B9C9_54FD4C2730AE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_WITH_TRAILER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Vehicle with trailer.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E0821FE7_D709_43b8_8401_96A626D87D1E}{\*\bkmkend BKM_E0821FE7_D709_43b8_8401_96A626D87D1E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTOR_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Motor vehicles.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0D00777D_AD2A_49a8_9E5A_EE378CEBE292}{\*\bkmkend BKM_0D00777D_AD2A_49a8_9E5A_EE378CEBE292}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRANSPORT_OF_DANGEROUS_GOODS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Transport of dangerous goods.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D1F76D24_03C8_41fc_B7DB_AFC5F34C3383}{\*\bkmkend BKM_D1F76D24_03C8_41fc_B7DB_AFC5F34C3383}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRANSPORT_OF_ABNORMAL_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Transport of abnormal load.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EEC0C2BA_6E77_4521_9431_893542A722AD}{\*\bkmkend BKM_EEC0C2BA_6E77_4521_9431_893542A722AD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Heavy vehicle.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1EBE7E12_9CA1_459d_8180_DEC9F64B72F6}{\*\bkmkend BKM_1EBE7E12_9CA1_459d_8180_DEC9F64B72F6}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VisibilityReduced}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible \b subCause \b0 values for when the \b mainCause \b0 is VISIBILITY_REDUCED.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A9E923AB_B8F6_463a_8229_624DB3734475}{\*\bkmkend BKM_A9E923AB_B8F6_463a_8229_624DB3734475}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b VISIBILITY_REDUCED_DUE_TO_FOG}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by fog.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FB59B3D4_80B8_4db1_9F3A_811D143C97DE}{\*\bkmkend BKM_FB59B3D4_80B8_4db1_9F3A_811D143C97DE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_SMOKE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by smoke.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_912E7D03_B028_43dc_8BA8_34240324CC4F}{\*\bkmkend BKM_912E7D03_B028_43dc_8BA8_34240324CC4F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by heavy snow fall.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3E8C584A_7289_434c_BE46_83DD39264635}{\*\bkmkend BKM_3E8C584A_7289_434c_BE46_83DD39264635}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by heavy rain.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3D9F37BA_7379_4de1_AC7F_472644CCF323}{\*\bkmkend BKM_3D9F37BA_7379_4de1_AC7F_472644CCF323}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by heavy hail.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2D7BB4C6_C0FD_41e7_B9D6_A3FC1B98D220}{\*\bkmkend BKM_2D7BB4C6_C0FD_41e7_B9D6_A3FC1B98D220}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by low sun glare.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BF9489FB_984C_4764_A4F2_AC192F294766}{\*\bkmkend BKM_BF9489FB_984C_4764_A4F2_AC192F294766}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_SANDSTORMS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by sandstorms.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EFF6DE3C_193C_4e94_9E72_B53739F83AC4}{\*\bkmkend BKM_EFF6DE3C_193C_4e94_9E72_B53739F83AC4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 In case that the visibility is reduced by swarms of insects.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_6A25F899_2CB1_46f7_85E1_3B6F611559A9}{\*\bkmkend BKM_6A25F899_2CB1_46f7_85E1_3B6F611559A9}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+WarningLevel}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Possible values for the \b warningLevel \b0 in a \b DirectCause \b0
+of a \b Traffic Incident\b0 .\ql\par
+The values specify the danger levels.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_801C0F37_EDF9_4745_8430_41776DFBF9FC}{\*\bkmkend BKM_801C0F37_EDF9_4745_8430_41776DFBF9FC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INFORMATIVE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 This level is of standard informative nature.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F09AB89B_9417_40d2_905E_F61ECBEA1B90}{\*\bkmkend BKM_F09AB89B_9417_40d2_905E_F61ECBEA1B90}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_LEVEL_1}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This level is used for acquiring attention by the driver.\ql\par
+Example: Attention, there is a dangerous obstruction due to fog.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_89D1DFDD_4D4D_471b_94B3_11C79D1C0811}{\*\bkmkend BKM_89D1DFDD_4D4D_471b_94B3_11C79D1C0811}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_LEVEL_2}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This level is used for local hazard warnings being dangerous.\ql\par
+Example: Attention, danger due to deer.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_323E6540_76D9_4280_B4EF_FE84195A57E6}{\*\bkmkend BKM_323E6540_76D9_4280_B4EF_FE84195A57E6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_LEVEL_3}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This level is used for local hazard warnings being highly dangerous.\ql\par
+Example: Attention, highest danger due to ghost driver.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart trafficincidents}{\*\bkmkend trafficincidents}{\*\bkmkstart BKM_CCA2E7F6_DF89_4903_994F_1A4CA8B0C9BA}{\*\bkmkend BKM_CCA2E7F6_DF89_4903_994F_1A4CA8B0C9BA}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidents}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_7EA39C4E_15BC_4edc_A158_62646A5C1259}{\*\bkmkend BKM_7EA39C4E_15BC_4edc_A158_62646A5C1259}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncident}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw29626\pich30494\picwgoal16800\pichgoal17295\picscalex56\picscaley56\sspicalign0 010000006c000000f8ffffffffffffff510300006b0300000000000000000000bb7300001e77000020454d4600000100885302005c180000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100a0fc4603a0fc4603ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff4803000062030000050000001000100010000036603400366034100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000780000001400000006000000
+10004001b006400180076000800710001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff7a000000160000000600000010004001b006400180076000800710001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76a80bcc19086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300ba7a3400ac859e1020000ffff567c0000dc59e102188d17
+017e3a0aa4a80bcc190100be00567c000037bb40007e3a0aa470374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bf88f1a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126557c00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000680000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000062000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000cc0000000600000004000000690000000f0000000100000000400d4200040dc206000000fcffffff150000004c000000000000000000000000000000ffffffffffffffff7800000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e00740000000600000003000000060000000600000006000000030000000500000004000000060000000300000003000000
+030000000600000003000000060000000600000003000000060000000600000006000000030000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080
+bf00000040000020c10a4000c01c00000010000000c0bfc0ff010000003b01ddfed800fd00280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600
+0000300000003d0100001c000000150200001901000005000000d013c001d0139011502190115021c001d013c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000c0bfc0ff0b400040180000000c000000010000003b01ddfed800fd003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c0000000500008056000000
+2c00000026010000050000002c0200003001000004000000d0139011502190115021c001d013c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000
+0000009c43000090c30000584300007d43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003801e0fed800fd00250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000003a01000019000000ab01
+000016010000050000003a0119003a011601ab011601ab0119003a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000ab01000019000000b00100001601000005000000ab011900ab011601b0011601b0011900ab011900250000000c
+00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000b001000019000000b60100001601000005000000b0011900b0011601b6011601b6011900b0011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000
+180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000b601000019000000bc0100001601000005000000b6011900b6011601bc011601bc011900b6011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000
+000c000000080000805600000030000000bc01000019000000c30100001601000005000000bc011900bc011601c3011601c3011900bc011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c000000080000805600000030000000c301000019000000c8010000160100000500
+0000c3011900c3011601c8011601c8011900c3011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c000000080000805600000030000000c801000019000000ce0100001601000005000000c8011900c8011601ce011601ce011900c8011900250000000c0000000800008025
+0000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c000000080000805600000030000000ce01000019000000d40100001601000005000000ce011900ce011601d4011601d4011900ce011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000
+00000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000d401000019000000da0100001601000005000000d4011900d4011601da011601da011900d4011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c000000080000
+805600000030000000da01000019000000de0100001601000005000000da011900da011601de011601de011900da011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c000000080000805600000030000000de01000019000000e30100001601000005000000de011900de01
+1601e3011601e3011900de011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c000000080000805600000030000000e301000019000000e80100001601000005000000e3011900e3011601e8011601e8011900e3011900250000000c00000008000080250000000c00000000
+000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c00000002000000250000000c000000080000805600000030000000e801000019000000eb0100001601000005000000e8011900e8011601eb011601eb011900e8011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb00
+00000000250000000c00000002000000250000000c000000080000805600000030000000eb01000019000000f10100001601000005000000eb011900eb011601f1011601f1011900eb011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000
+00f101000019000000f60100001601000005000000f1011900f1011601f6011601f6011900f1011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000f601000019000000fd0100001601000005000000f6011900f6011601fd011601fd01
+1900f6011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c000000080000805600000030000000fd01000019000000030200001601000005000000fd011900fd0116010302160103021900fd011900250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c00000008000080560000003000000003020000190000000902000016010000050000000302190003021601090216010902190003021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c1000000000025000000
+0c00000002000000250000000c00000008000080560000003000000009020000190000000e020000160100000500000009021900090216010e0216010e02190009021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c0000000800008056000000300000000e020000190000
+001202000016010000050000000e0219000e02160112021601120219000e021900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100
+00003801e0fed800fd003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000002301000002000000290200002d01000004000000a0
+1360112021601120219001a0139001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000000000
+0000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e102969619014f120af79c58530bb296190100000000580ccc198ce3c577738c172646e0c5779401300b0000300b188d17014f120af752005a00aa160e0ec457e10237bb40004f12
+0af7580ccc1953005800aa160e0e9087a1263c5ce10270374b0b0000000008000000000000000000000058c8612348004b0b5c014b0b580ccc19f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a249009cc1901000000500ccc19dc57e10223e0c577580ccc193a6c2e7608654501500ccc19f057e102ad148b7564
+76000800000000250000000c00000002000000180000000c000000000000001e0000001800000042010000d7ffffff07020000caffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000008d0100001f000000c00100002b0000000100000000400d4200040dc28b010000d7ffffff0b0000004c0000000000000000000000
+00000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00627006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff1200
+00000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76580ccc1908654501cc57e1021458e102245736019c58530b1058e10296
+9619018ce3c5776b83172646e0c5779401300b0000300b24a1800f1c58e1020000ffff577c00003058e102188d17014f120af8580ccc190100be00577c000037bb40004f120af870374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0bf88f1a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126567c000088144000
+00cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000a8000000840100002c000000c9010000370000000100000000400d4200040dc282010000caffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005400720061006600660069
+00630049006e0063006900640065006e00740061640500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100
+0000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003801b8ff1002b8ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002301000027000000290200005500000002000000a013e0032021e003250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f01000042000000480100004e0000000100000000400d4200040dc23d010000b4ffffff020000004c000000000000000000000000000000ffffffffffff
+ffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c0100005001000042000000ef0100004e0000000100000000400d4200040dc24e010000b4ffffff250000004c000000000000000000000000000000
+ffffffffffffffff98000000740072006100660066006900630049006e0063006900640065006e00740049006400200020003a00540072006100660066006900630049006e0063006900640065006e007400490064006e3003000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000030000
+0007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f0100004f
+000000480100005b0000000100000000400d4200040dc23d010000a7ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000000100
+00500100004f000000db0100005b0000000100000000400d4200040dc24e010000a7ffffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000065006600660065006300740043006f0064006500200020003a0045006600660065006300740043006f006400650020005b0030002e002e0031005d000600000003000000030000000600000005000000030000000700000006000000060000000600
+000003000000030000000300000007000000030000000300000006000000050000000300000007000000060000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000580000003f0100005c00000048010000680000000100000000400d4200040dc23d0100009affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000e8000000500100005c000000bf010000680000000100000000400d4200040dc24e0100009affffff1a0000004c000000000000000000000000000000ffffffffffffffff800000006500660066006500630074005400650078007400200020003a0053007400720069006e00670020005b0030002e002e0031005d00060000000300000003000000060000000500000003000000070000000600000005
+00000003000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f0100
+006900000048010000750000000100000000400d4200040dc23d0100008dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c
+0100005001000069000000e7010000750000000100000000400d4200040dc24e0100008dffffff200000004c000000000000000000000000000000ffffffffffffffff8c00000073007400610072007400540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d000400000003000000060000000300000003000000070000000300000009000000
+0600000003000000030000000300000007000000030000000900000006000000030000000600000009000000030000000600000006000000030000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000008b00000054000000580000003f0100007600000048010000820000000100000000400d4200040dc23d01000080ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000080100005001000076000000e7010000820000000100000000400d4200040dc24e01000080ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000730074006f007000540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d00656c04000000030000
+0006000000060000000700000003000000090000000600000003000000030000000300000007000000030000000900000006000000030000000600000009000000030000000600000006000000030000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f01000083000000480100008f0000000100000000400d4200040dc23d01000073ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000005001000083000000ce0100008f0000000100000000400d4200040dc24e01000073ffffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000740065006e00640065006e0063007900200020003a00540065006e00640065006e006300790020005b0030002e002e003100
+5d0003000000060000000600000006000000060000000600000005000000050000000300000003000000030000000700000006000000060000000600000006000000060000000500000005000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000580000003f01000090000000480100009c0000000100000000400d4200040dc23d01000066ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000005001000090000000d00100009c0000000100000000400d4200040dc24e01000066ffffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000740065006e00640065006e00630079005400650078007400200020003a0053007400720069006e00670020005b0030002e002e0031005d000300000006
+00000006000000060000000600000006000000050000000500000007000000060000000500000003000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b00000054000000580000003f0100009d00000048010000a90000000100000000400d4200040dc23d01000059ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000500100009d000000da010000a90000000100000000400d4200040dc24e01000059ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006c0065006e0067007400680041006600660065006300740065006400200020003a0049006e007400650067006500720020005b0030002e002e003100
+5d00305c030000000600000006000000060000000300000006000000070000000300000003000000060000000500000003000000060000000600000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff1200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f010000aa00000048010000b60000000100000000400d4200040dc23d0100004cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000
+f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c01000050010000aa00000003020000b60000000100000000400d4200040dc24e0100004cffffff250000004c000000000000000000000000000000ffffffffffffffff980000006100760065007200610067006500530070006500650064004100620073006f006c007500740065
+00200020003a0049006e007400650067006500720020005b0030002e002e0031005d006e7506000000050000000600000003000000060000000600000006000000070000000600000006000000060000000600000007000000060000000400000006000000030000000600000003000000060000000300000003000000030000000300000006000000030000000600000006000000060000000300000003000000030000000600
+0000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f010000b700000048010000c30000000100000000400d4200040dc23d0100003fffffff020000004c000000000000000000000000000000
+ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000050010000b700000094010000c30000000100000000400d4200040dc24e0100003fffffff0f0000004c000000000000000000
+000000000000ffffffffffffffff6c000000640065006c0061007900200020003a0049006e007400650067006500720000000600000006000000030000000600000005000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f010000c400000048010000d00000000100000000400d4200040dc23d01000032ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f000000050010000c4000000d9010000d00000000100000000400d4200040dc24e01000032ffffff1b0000004c000000000000000000000000000000ffffffffffffffff840000007300650067006d0065006e007400530070006500650064004c0069006d0069007400200020003a0049006e0074006500670065007200000004
+00000006000000060000000900000006000000060000000300000007000000060000000600000006000000060000000600000003000000090000000300000003000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b00000054000000580000003f010000d100000048010000dd0000000100000000400d4200040dc23d01000025ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000050010000d1000000ed010000dd0000000100000000400d4200040dc24e01000025ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000065007800700065006300740065006400530070006500650064004100620073006f006c00750074006500200020003a0049006e007400650067006500
+72004e00060000000500000006000000060000000500000003000000060000000600000007000000060000000600000006000000060000000700000006000000040000000600000003000000060000000300000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff1200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f010000de00000048010000ea0000000100000000400d4200040dc23d01000018ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000
+f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e800000050010000de000000c2010000ea0000000100000000400d4200040dc24e01000018ffffff1a0000004c000000000000000000000000000000ffffffffffffffff800000006300610075007300650054006500780074007300200020003a0053007400720069006e00670020
+005b0030002e002e002a005d0005000000060000000600000004000000060000000700000006000000050000000300000004000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f010000eb00000048010000f70000000100000000400d4200040dc23d0100000bffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000001801000050010000eb000000e1010000f70000000100000000400d4200040dc24e0100000bffffff220000004c000000000000000000000000000000ffffffffffffffff900000006100700070006c00690063006100620069006c0069007400790054006500780074007300200020003a005300740072006900
+6e00670020005b0030002e002e002a005d00060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000700000006000000050000000300000004000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000fefffffff6
+ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f010000f800000048010000040100000100000000400d4200040dc23d010000fefeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000
+00fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f000000050010000f8000000c6010000040100000100000000400d4200040dc24e010000fefeffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000061006400760069006300650054
+006500780074007300200020003a0053007400720069006e00670020005b0030002e002e002a005d0000000600000006000000050000000300000005000000060000000700000006000000050000000300000004000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000fefffffff6ffffff
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003f0100000501000048010000110100000100000000400d4200040dc23d010000f1feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000feff
+fffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100005001000005010000da010000110100000100000000400d4200040dc24e010000f1feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000630061007400650067006f0072007900
+490064007300200020003a00430061007400650067006f00720079004900640020005b0030002e002e002a005d00c2000500000006000000030000000600000006000000060000000300000005000000030000000600000004000000030000000300000003000000070000000600000003000000060000000600000006000000030000000500000003000000060000000300000003000000060000000300000003000000040000
+00030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000075024efec30045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000002500
+00000c00000001000000250000000c00000008000080560000003000000077020000630100003a030000a801000005000000702730167027801aa033801aa033301670273016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086
+000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000075024efec30045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc00000000000000000000000000025000000
+0c00000004000000250000000c00000005000080560000002c000000600200004c01000051030000bf010000040000007027801aa033801aa033301670273016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b084002
+01580000004c0000000210c0db04000000040000000000000000801c440080d7c30000434300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000720251fec3004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00
+00000800008056000000300000007402000060010000da020000a501000005000000740260017402a501da02a501da02600174026001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000da02000060010000df020000a501000005000000da
+026001da02a501df02a501df026001da026001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000df02000060010000e4020000a501000005000000df026001df02a501e402a501e4026001df026001250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000e402000060010000ea020000a501000005000000e4026001e402a501ea02a501ea026001e4026001250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000ea02000060010000f0020000a501000005000000ea026001ea02a501f002a501f0026001ea026001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600
+000030000000f002000060010000f5020000a501000005000000f0026001f002a501f502a501f5026001f0026001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000f502000060010000f9020000a501000005000000f5026001f502a501f9
+02a501f9026001f5026001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000f902000060010000ff020000a501000005000000f9026001f902a501ff02a501ff026001f9026001250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000ff0200006001000005030000a501000005000000ff026001ff02a5010503a50105036001ff026001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d100000000
+00250000000c00000004000000250000000c00000008000080560000003000000005030000600100000a030000a501000005000000050360010503a5010a03a5010a03600105036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000000a03
+0000600100000e030000a5010000050000000a0360010a03a5010e03a5010e0360010a036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000000e0300006001000012030000a5010000050000000e0360010e03a5011203a501120360010e
+036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000120300006001000017030000a501000005000000120360011203a5011703a5011703600112036001250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000017030000600100001c030000a501000005000000170360011703a5011c03a5011c03600117036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c0000
+0004000000250000000c0000000800008056000000300000001c0300006001000021030000a5010000050000001c0360011c03a5012103a501210360011c036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000021030000600100002703
+0000a501000005000000210360012103a5012703a5012703600121036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000027030000600100002d030000a501000005000000270360012703a5012d03a5012d03600127036001250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000002d0300006001000031030000a5010000050000002d0360012d03a5013103a501310360012d036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000310300006001000036030000a501000005000000310360013103a5013603a5013603600131036001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000
+000c000000080000805600000030000000360300006001000037030000a501000005000000360360013603a5013703a5013703600136036001250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210
+c0db00000000000000ff0b400040180000000c00000001000000720251fec30045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c
+0000005d020000490100004e030000bc010000040000004027501a7033501a7033001640270016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c000000000000001e000000180000007c02000090feffff2c03000083feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000bc02000066010000ef020000720100000100000000400d4200040dc2ba02000090feffff0b0000004c000000000000000000000000000000ffffffffffff
+ffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000
+190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c000000b802000073010000f40200007e0100000100000000400d4200040dc2b602000083feffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004100700070006c00690063006100620069006c006900740079000000070000000600000006000000030000000300000006000000060000
+000600000003000000030000000300000003000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000720271fe350371fe000101011540
+01001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c0000000500008057000000240000005d0200006e0100004e0300009c010000020000004027501870335018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000790200008901000082020000950100000100000000400d4200040dc2770200006dfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff12
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e40000008a0200008901000009030000950100000100000000400d4200040dc2880200006dfeffff190000004c000000000000000000000000000000ffffffffffffffff80000000760065006800690063006c0065005400790070006500200020003a00560065006800690063006c0065005400
+7900700065000000050000000600000006000000030000000500000003000000060000000700000005000000060000000600000003000000030000000300000007000000060000000600000003000000050000000300000006000000070000000500000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c000000100000
+00c0bfc0ff010000009f0212ff940045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a10200009f00000035030000e400000005000000102af009102a400e5033400e5033
+f009102af009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000009f0212ff940045003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008a020000880000004c030000fb00000004000000102a400e5033400e5033f009102af009
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000274400006bc30000144300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000
+000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000009c0215ff94004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000009e0200009c000000eb020000e1000000050000009e029c009e02e100eb02e100eb029c009e029c00250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000eb0200009c000000ef020000e100000005000000eb029c00eb02e100ef02e100ef029c00eb029c00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ef0200009c000000f3020000e100000005000000ef029c00ef02e100f302e100f3029c00ef029c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000
+080000805600000030000000f30200009c000000f8020000e100000005000000f3029c00f302e100f802e100f8029c00f3029c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000f80200009c000000fc020000e100000005000000f8029c
+00f802e100fc02e100fc029c00f8029c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000fc0200009c00000000030000e100000005000000fc029c00fc02e1000003e10000039c00fc029c00250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000000300009c00000003030000e10000000500000000039c000003e1000303e10003039c0000039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5
+e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000030300009c00000008030000e10000000500000003039c000303e1000803e10008039c0003039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000
+30000000080300009c0000000c030000e10000000500000008039c000803e1000c03e1000c039c0008039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000000c0300009c00000010030000e1000000050000000c039c000c03e1001003e1
+0010039c000c039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000100300009c00000013030000e10000000500000010039c001003e1001303e10013039c0010039c00250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000130300009c00000016030000e10000000500000013039c001303e1001603e10016039c0013039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc000000000025
+0000000c00000004000000250000000c000000080000805600000030000000160300009c0000001a030000e10000000500000016039c001603e1001a03e1001a039c0016039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000001a030000
+9c0000001d030000e1000000050000001a039c001a03e1001d03e1001d039c001a039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000001d0300009c00000021030000e1000000050000001d039c001d03e1002103e10021039c001d039c
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000210300009c00000026030000e10000000500000021039c002103e1002603e10026039c0021039c00250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000260300009c0000002a030000e10000000500000026039c002603e1002a03e1002a039c0026039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004
+000000250000000c0000000800008056000000300000002a0300009c0000002e030000e1000000050000002a039c002a03e1002e03e1002e039c002a039c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000002e0300009c00000032030000
+e1000000050000002e039c002e03e1003203e10032039c002e039c00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009c0215
+ff940045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000870200008500000049030000f800000004000000e029100e2033
+100e2033c009e029c009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000070000000
+d7020000a5000000fa020000b00000000100000000400d4200040dc2d502000051ffffff060000004c000000000000000000000000000000ffffffffffffffff580000004100640076006900630065000700000006000000070000000300000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0
+db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009c023fff30033fff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d0000
+0000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000087020000a000000049030000ce00000002000000e029700b2033700b250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a3020000bb000000ac020000c70000000100000000400d4200040dc2a10200003bffffff020000
+004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000b4020000bb0000002e030000c70000000100000000400d4200040dc2b20200003b
+ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006d00610069006e00410064007600690063006500200020003a0041006400760069006300650043006f00640065000000090000000600000003000000060000000700000006000000050000000300000005000000060000000300000003000000030000000700000006000000050000000300000005000000060000000700000006000000
+06000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a3020000c8000000ac020000d40000000100000000400d4200040dc2a10200002effffff020000004c000000000000000000000000000000ffffffffffffffff5000
+00002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000b4020000c80000001c030000d40000000100000000400d4200040dc2b20200002effffff170000004c000000000000000000000000000000ffffffff
+ffffffff7c000000730075006200410064007600690063006500200020003a00620079007400650020005b0030002e002e0031005d00000004000000060000000600000007000000060000000500000003000000050000000600000003000000030000000300000006000000050000000300000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a3020000d5000000ac020000e10000000100000000400d4200040dc2a102000021ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6
+ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000b4020000d50000001b030000e10000000100000000400d4200040dc2b202000021ffffff180000004c000000000000000000000000000000ffffffffffffffff7c00000066007200650065005400650078007400200020
+003a0053007400720069006e00670020005b0030002e002e0031005d000300000003000000060000000600000007000000060000000500000003000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c0000002000
+0000454d462b0a4000c01c00000010000000c0bfc0ff0100000030008dfe8e0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003200000024010000c00000006901000005
+0000002003401220039016000c9016000c401220034012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000
+0100000030008dfe8e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001b0000000d010000d700000080010000040000
+0020039016000c9016000c401220034012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000034420000b8c300000e4300008a42bed7e8ffe3f2
+fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002d0090fe8e004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002f000000210100007900000066010000050000002f0021012f0066017900660179
+0021012f002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000079000000210100007d000000660100000500000079002101790066017d0066017d00210179002101250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007d000000210100008100000066010000050000007d0021017d00660181006601810021017d002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000
+000c00000004000000250000000c00000008000080560000003000000081000000210100008500000066010000050000008100210181006601850066018500210181002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000850000002101
+00008900000066010000050000008500210185006601890066018900210185002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000089000000210100008d000000660100000500000089002101890066018d0066018d0021018900210125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000008d000000210100009000000066010000050000008d0021018d00660190006601900021018d002101250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000090000000210100009400000066010000050000009000210190006601940066019400210190002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c000000040000
+00250000000c00000008000080560000003000000094000000210100009900000066010000050000009400210194006601990066019900210194002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000099000000210100009d0000006601
+00000500000099002101990066019d0066019d00210199002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000009d00000021010000a000000066010000050000009d0021019d006601a0006601a00021019d002101250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000a000000021010000a40000006601000005000000a0002101a0006601a4006601a4002101a0002101250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000a400000021010000a70000006601000005000000a4002101a4006601a7006601a7002101a4002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000
+00080000805600000030000000a700000021010000ab0000006601000005000000a7002101a7006601ab006601ab002101a7002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000ab00000021010000af0000006601000005000000ab00
+2101ab006601af006601af002101ab002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000af00000021010000b40000006601000005000000af002101af006601b4006601b4002101af002101250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000b400000021010000b70000006601000005000000b4002101b4006601b7006601b7002101b4002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000b700000021010000bb0000006601000005000000b7002101b7006601bb006601bb002101b7002101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000
+0030000000bb00000021010000bd0000006601000005000000bb002101bb006601bd006601bd002101bb002101250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b40
+0040180000000c000000010000002d0090fe8e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000180000000a010000d4
+0000007d01000004000000f0026016d00b6016d00b1012f0021012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c000000000000001e0000001800000037000000cffeffffb2000000c2feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000005d0000002701000090000000330100000100000000400d4200040dc25b000000cffeffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0073007400
+7200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000003000000180000000c00000000000000540000006c0000006700000034010000860000003f0100000100000000400d4200040dc265000000c2feffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500000007000000060000000600000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000
+007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002d00b0febb00b0fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000
+00003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000180000002f010000d40000005d01000002000000f0026014d00b601425
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000340000004a0100003d0000
+00560100000100000000400d4200040dc232000000acfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000450000004a
+010000b9000000560100000100000000400d4200040dc243000000acfeffff150000004c000000000000000000000000000000ffffffffffffffff780000006d00610069006e0043006100750073006500200020003a004300610075007300650043006f00640065000000090000000600000003000000060000000700000006000000060000000400000006000000030000000300000003000000070000000600000006000000
+0400000006000000070000000600000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000100032fdba0088002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000
+000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000120000003c020000cc000000c4020000050000002001c0232001402cc00c402cc00cc0232001c023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000100032fdba0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0
+bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff25020000e3000000db020000040000002001402cc00c402cc00cc0232001c023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000
+460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000504100c032c400003a4300000843bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000d0035fdba008800250000000c0000000800008027000000180000000400000000000000fcf2e300000000
+00250000000c00000004000000250000000c0000000800008056000000300000000f0000003902000070000000c1020000050000000f0039020f00c1027000c102700039020f003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000007000
+00003902000075000000c102000005000000700039027000c1027500c1027500390270003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000075000000390200007a000000c102000005000000750039027500c1027a00c1027a00390275
+003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007a000000390200007f000000c1020000050000007a0039027a00c1027f00c1027f0039027a003902250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000007f0000003902000085000000c1020000050000007f0039027f00c1028500c102850039027f003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c0000
+0004000000250000000c00000008000080560000003000000085000000390200008a000000c102000005000000850039028500c1028a00c1028a00390285003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000008a000000390200008e00
+0000c1020000050000008a0039028a00c1028e00c1028e0039028a003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000008e0000003902000094000000c1020000050000008e0039028e00c1029400c102940039028e003902250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000940000003902000099000000c102000005000000940039029400c1029900c1029900390294003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000099000000390200009c000000c102000005000000990039029900c1029c00c1029c00390299003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000
+000c0000000800008056000000300000009c00000039020000a1000000c1020000050000009c0039029c00c102a100c102a10039029c003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000a100000039020000a5000000c10200000500
+0000a1003902a100c102a500c102a5003902a1003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000a500000039020000aa000000c102000005000000a5003902a500c102aa00c102aa003902a5003902250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000aa00000039020000af000000c102000005000000aa003902aa00c102af00c102af003902aa003902250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000af00000039020000b4000000c102000005000000af003902af00c102b400c102b4003902af003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000
+805600000030000000b400000039020000ba000000c102000005000000b4003902b400c102ba00c102ba003902b4003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ba00000039020000bf000000c102000005000000ba003902ba00
+c102bf00c102bf003902ba003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000bf00000039020000c4000000c102000005000000bf003902bf00c102c400c102c4003902bf003902250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000c400000039020000c8000000c102000005000000c4003902c400c102c800c102c8003902c4003902250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be00
+00000000250000000c00000004000000250000000c000000080000805600000030000000c800000039020000c9000000c102000005000000c8003902c800c102c900c102c9003902c8003902250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000
+000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000d0035fdba0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000000400
+0000250000000c00000005000080560000002c000000f8ffffff22020000e0000000d802000004000000f000102c900c102c900c9023f0009023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000017000000b7fdffffbe000000aafdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000530000003f020000860000004b0200000100000000400d4200040dc251000000b7fdffff0b0000004c0000
+00000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002
+000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000900000004e0000004c0200008a000000570200000100000000400d4200040dc24c000000aafdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000440069007200650063007400430061007500730065000000070000000300000004000000
+06000000060000000300000007000000060000000600000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000d0098fdc70098
+fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000
+000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff47020000e00000007502000002000000f000e025900ce025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000620200001d0000006e0200000100000000400d4200040dc21200000094fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000200
+0000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000180100002500000062020000c90000006e0200000100000000400d4200040dc22300000094fdffff220000004c000000000000000000000000000000ffffffffffffffff900000007700610072006e0069006e0067004c006500760065006c00200020003a005700610072006e
+0069006e0067004c006500760065006c0020005b0030002e002e0031005d0007000000060000000300000006000000030000000600000006000000060000000600000005000000060000000300000003000000030000000300000009000000060000000300000006000000030000000600000006000000060000000600000005000000060000000300000003000000030000000600000003000000030000000600000003000000
+0a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000006f0200001d0000007b0200000100000000400d4200040dc21200000087fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600
+0000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000250000006f020000bb0000007b0200000100000000400d4200040dc22300000087fdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000
+75006e007600650072006900660069006500640049006e0066006f0072006d006100740069006f006e00200020003a0042006f006f006c00650061006e00000006000000060000000500000006000000030000000300000003000000030000000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000003000000030000000300000007000000060000
+0006000000030000000600000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000007c0200001d000000880200000100000000400d4200040dc2120000007afdffff020000004c000000000000000000000000
+000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000250000007c0200008a000000880200000100000000400d4200040dc2230000007afdffff160000004c000000000000
+000000000000000000ffffffffffffffff7800000073007500620043006100750073006500200020003a00620079007400650020005b0030002e002e0031005d00040000000600000006000000070000000600000006000000040000000600000003000000030000000300000006000000050000000300000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ff
+ffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000890200001d000000950200000100000000400d4200040dc2120000006dfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000
+fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100002500000089020000af000000950200000100000000400d4200040dc2230000006dfdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006c0065006e006700740068004100
+6600660065006300740065006400200020003a0049006e007400650067006500720020005b0030002e002e0031005d000000030000000600000006000000060000000300000006000000070000000300000003000000060000000500000003000000060000000600000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006
+000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000960200001d000000a20200000100000000400d4200040dc21200000060fdffff020000004c000000000000000000000000000000ffffffffffffffff500000
+002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000002500000096020000a0000000a20200000100000000400d4200040dc22300000060fdffff1c0000004c000000000000000000000000000000ffffffffff
+ffffff84000000630061007500730065004f0066006600730065007400200020003a0049006e007400650067006500720020005b0030002e002e0031005d000500000006000000060000000400000006000000080000000300000003000000040000000600000003000000030000000300000003000000030000000600000003000000060000000600000006000000030000000300000003000000060000000300000003000000
+06000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000a30200001d000000af0200000100000000400d4200040dc21200000053fdffff020000004c000000000000000000000000000000ffffffffffffffff5000
+00002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc00000025000000a30200008c000000af0200000100000000400d4200040dc22300000053fdffff180000004c000000000000000000000000000000ffffffff
+ffffffff7c00000066007200650065005400650078007400200020003a0053007400720069006e00670020005b0030002e002e0031005d000300000003000000060000000600000007000000060000000500000003000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffff
+ff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001800a2fce20045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800
+008056000000300000001a0000000f030000fc0000005403000005000000a001f030a0014035c00f4035c00ff030a001f030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000
+0000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001800a2fce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080
+560000002c00000003000000f8020000130100006b03000004000000a0014035c00f4035c00ff030a001f030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000
+00000000000000a84100c056c40000624300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001500a5fce2004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000170000000c03
+00008d000000510300000500000017000c03170051038d0051038d000c0317000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000008d0000000c0300009200000051030000050000008d000c038d0051039200510392000c038d000c0325
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000920000000c03000098000000510300000500000092000c03920051039800510398000c0392000c03250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000980000000c0300009e000000510300000500000098000c03980051039e0051039e000c0398000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c000000040000
+00250000000c0000000800008056000000300000009e0000000c030000a300000051030000050000009e000c039e005103a3005103a3000c039e000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a30000000c030000a90000005103
+000005000000a3000c03a3005103a9005103a9000c03a3000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a90000000c030000af0000005103000005000000a9000c03a9005103af005103af000c03a9000c03250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000af0000000c030000b50000005103000005000000af000c03af005103b5005103b5000c03af000c03250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000b50000000c030000bc0000005103000005000000b5000c03b5005103bc005103bc000c03b5000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000
+00080000805600000030000000bc0000000c030000c20000005103000005000000bc000c03bc005103c2005103c2000c03bc000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000c20000000c030000c60000005103000005000000c200
+0c03c2005103c6005103c6000c03c2000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c60000000c030000cb0000005103000005000000c6000c03c6005103cb005103cb000c03c6000c03250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000cb0000000c030000d10000005103000005000000cb000c03cb005103d1005103d1000c03cb000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000d10000000c030000d60000005103000005000000d1000c03d1005103d6005103d6000c03d1000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000
+0030000000d60000000c030000dc0000005103000005000000d6000c03d6005103dc005103dc000c03d6000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000dc0000000c030000e30000005103000005000000dc000c03dc005103e300
+5103e3000c03dc000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000e30000000c030000ea0000005103000005000000e3000c03e3005103ea005103ea000c03e3000c03250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ea0000000c030000f00000005103000005000000ea000c03ea005103f0005103f0000c03ea000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000
+250000000c00000004000000250000000c000000080000805600000030000000f00000000c030000f50000005103000005000000f0000c03f0005103f5005103f5000c03f0000c03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000f50000
+000c030000f90000005103000005000000f5000c03f5005103f9005103f9000c03f5000c03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00
+0000010000001500a5fce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000000000000f5020000100100006803000004
+00000070011035900f1035900fc0307001c030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000
+001e000000180000001f000000e4fcffffee000000d7fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000006f00000012030000a20000001e0300000100000000400d4200040dc26d000000e4fcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400
+750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c000000
+03000000180000000c0000000000000054000000ac0000005f0000001f030000b20000002a0300000100000000400d4200040dc25d000000d7fcffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004c0061006e0065005200650073007400720069006300740069006f006e00730006000000060000000600000006000000070000000600000006000000030000000400000003000000060000
+0003000000030000000600000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001500c5fcf700c5fc00010101154001001000
+000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c
+00000004000000250000000c000000050000805700000024000000000000001a03000010010000480300000200000070011033900f1033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000001c0000003503000025000000410300000100000000400d4200040dc21a000000c1fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000440100002d00000035030000f5000000410300000100000000400d4200040dc22b000000c1fcffff290000004c000000000000000000000000000000ffffffffffffffffa00000006c0061006e0065005200650073007400720069006300740069006f006e005400790070006500200020003a004c006100
+6e0065005200650073007400720069006300740069006f006e00540079007000650000000300000006000000060000000600000007000000060000000400000003000000030000000300000005000000030000000300000006000000060000000700000005000000060000000600000003000000030000000300000006000000060000000600000006000000070000000600000004000000030000000300000003000000050000
+0003000000030000000600000006000000070000000500000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000001c00000042030000250000004e0300000100000000400d4200040dc21a000000b4fcffff020000004c
+000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000002d00000042030000a20000004e0300000100000000400d4200040dc22b000000b4fcff
+ff170000004c000000000000000000000000000000ffffffffffffffff7c0000006e0075006d006200650072004f0066004c0061006e0065007300200020003a0049006e007400650067006500720000000600000006000000090000000600000006000000030000000800000003000000060000000600000006000000060000000400000003000000030000000300000003000000060000000300000006000000060000000600
+0000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008600e0fdd80045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200000025
+0000000c00000001000000250000000c00000008000080560000003000000088000000d10100006001000016020000050000008008101d80086021001660210016101d8008101d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000
+86000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008600e0fdd80045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000
+000c00000004000000250000000c00000005000080560000002c00000071000000ba010000770100002d0200000400000080086021001660210016101d8008101d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b0840
+0201580000004c0000000210c0db04000000040000000000000000000343004007c40000584300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000008300e3fdd8004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c
+00000008000080560000003000000085000000ce010000f600000013020000050000008500ce0185001302f6001302f600ce018500ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000f6000000ce010000fb0000001302000005000000
+f600ce01f6001302fb001302fb00ce01f600ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000fb000000ce010000010100001302000005000000fb00ce01fb001302010113020101ce01fb00ce01250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000001010000ce0100000701000013020000050000000101ce0101011302070113020701ce010101ce01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000007010000ce0100000e01000013020000050000000701ce01070113020e0113020e01ce010701ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056
+000000300000000e010000ce0100001301000013020000050000000e01ce010e011302130113021301ce010e01ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000013010000ce0100001901000013020000050000001301ce0113011302
+190113021901ce011301ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000019010000ce0100001f01000013020000050000001901ce01190113021f0113021f01ce011901ce01250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000001f010000ce0100002501000013020000050000001f01ce011f011302250113022501ce011f01ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d2000000
+0000250000000c00000004000000250000000c00000008000080560000003000000025010000ce0100002901000013020000050000002501ce0125011302290113022901ce012501ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000029
+010000ce0100002e01000013020000050000002901ce01290113022e0113022e01ce012901ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000002e010000ce0100003301000013020000050000002e01ce012e011302330113023301ce01
+2e01ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cd0000000000250000000c00000004000000250000000c00000008000080560000003000000033010000ce0100003601000013020000050000003301ce0133011302360113023601ce013301ce01250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000036010000ce0100003c01000013020000050000003601ce01360113023c0113023c01ce013601ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00
+000004000000250000000c0000000800008056000000300000003c010000ce0100004101000013020000050000003c01ce013c011302410113024101ce013c01ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000041010000ce01000048
+01000013020000050000004101ce0141011302480113024801ce014101ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000048010000ce0100004e01000013020000050000004801ce01480113024e0113024e01ce014801ce0125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000004e010000ce0100005401000013020000050000004e01ce014e011302540113025401ce014e01ce01250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000054010000ce0100005901000013020000050000005401ce0154011302590113025901ce015401ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c000000040000002500
+00000c00000008000080560000003000000059010000ce0100005d01000013020000050000005901ce01590113025d0113025d01ce015901ce01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000000000ff0b400040180000000c000000010000008300e3fdd80045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008056000000
+2c0000006e000000b7010000740100002a0200000400000050083021d0153021d015e01c5008e01c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c000000000000001e000000180000008d00000022feffff5201000015feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000d8000000d40100000b010000e00100000100000000400d4200040dc2d600000022feffff0b0000004c000000000000000000000000000000ffffffffff
+ffffff64000000ab00730074007200750063007400750072006500bb00004006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c000000010000
+00190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000090000000d1000000e101000011010000ec0100000100000000400d4200040dc2cf00000015feffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004c0069006e006b0065006400430061007500730065000000060000000300000006000000060000000600000006000000070000000600
+00000600000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000830003fe5b0103fe0001010115400100100000000400000000
+0000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000
+250000000c0000000500008057000000240000006e000000dc010000740100000a020000020000005008301fd015301f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008a000000f701000093000000030200000100000000400d4200040dc288000000fffdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000480100009b000000f701000059010000030200000100000000400d4200040dc299000000fffdffff2a0000004c000000000000000000000000000000ffffffffffffffffa000000063006100750073006500540072006100660066006900630049006e0063006900640065006e00740049006400200020003a005400720061
+00660066006900630049006e0063006900640065006e00740049006400050000000600000006000000040000000600000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500
+0000030000000600000006000000060000000300000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000210027ff980045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00
+000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000230000008a000000bb000000cf000000050000003002a0083002f00cb00bf00cb00ba0083002a008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000210027ff980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000
+0000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000c00000073000000d2000000e6000000040000003002f00cb00bf00cb00ba0083002a008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c00
+00000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f041000056c30000184300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001e002aff98004500250000000c0000000800008027000000180000000400000000000000fc
+f2e30000000000250000000c00000004000000250000000c00000008000080560000003000000020000000870000006f000000cc00000005000000200087002000cc006f00cc006f00870020008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000
+300000006f0000008700000073000000cc000000050000006f0087006f00cc007300cc00730087006f008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000730000008700000077000000cc00000005000000730087007300cc007700cc
+007700870073008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000077000000870000007b000000cc00000005000000770087007700cc007b00cc007b00870077008700250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007b000000870000007e000000cc000000050000007b0087007b00cc007e00cc007e0087007b008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda000000000025
+0000000c00000004000000250000000c0000000800008056000000300000007e0000008700000082000000cc000000050000007e0087007e00cc008200cc00820087007e008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000082000000
+8700000086000000cc00000005000000820087008200cc008600cc008600870082008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000086000000870000008a000000cc00000005000000860087008600cc008a00cc008a008700860087
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000008a000000870000008e000000cc000000050000008a0087008a00cc008e00cc008e0087008a008700250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000008e0000008700000091000000cc000000050000008e0087008e00cc009100cc00910087008e008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004
+000000250000000c000000080000805600000030000000910000008700000095000000cc00000005000000910087009100cc009500cc009500870091008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000950000008700000098000000
+cc00000005000000950087009500cc009800cc009800870095008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000098000000870000009b000000cc00000005000000980087009800cc009b00cc009b00870098008700250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000870000009f000000cc000000050000009b0087009b00cc009f00cc009f0087009b008700250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000009f00000087000000a3000000cc000000050000009f0087009f00cc00a300cc00a30087009f008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c
+000000080000805600000030000000a300000087000000a7000000cc00000005000000a3008700a300cc00a700cc00a7008700a3008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000a700000087000000ab000000cc00000005000000
+a7008700a700cc00ab00cc00ab008700a7008700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ab00000087000000b0000000cc00000005000000ab008700ab00cc00b000cc00b0008700ab008700250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000b000000087000000b4000000cc00000005000000b0008700b000cc00b400cc00b4008700b0008700250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b400000087000000b8000000cc00000005000000b4008700b400cc00b800cc00b8008700b4008700250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086
+000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001e002aff980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025000000
+0c00000004000000250000000c00000005000080560000002c0000000900000070000000cf000000e3000000040000000002c00c800bc00c800b700800027008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff1200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002800000069ffffffad0000005cffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000530000008d00000086000000990000000100000000400d4200040dc25100000069ffffff0b
+0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d0000000380000009a000000a1000000a50000000100000000400d4200040dc2360000005cffffff160000004c000000000000000000000000000000ffffffffffffffff780000006c006f0063006100740069006f006e003a003a004c006f00630061007400
+69006f006e0049006e0066006f00030000000600000006000000060000000300000003000000060000000600000003000000030000000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001e004affb6004aff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000900000095000000cf000000c3000000020000000002c00a800bc00a250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000025000000b00000002e000000bc0000000100000000400d4200040dc22300000046ffffff020000004c
+000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c00000036000000b000000076000000bc0000000100000000400d4200040dc23400000046ffff
+ff0d0000004c000000000000000000000000000000ffffffffffffffff680000006e0061006d006500200020003a0053007400720069006e0067000000060000000600000009000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00
+000010000000c0bfc0ff01000000990291ff8a0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000009b02000020000000250300006500000005000000b0290002b029500650
+32500650320002b0290002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000990291ff8a004500
+3a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000084020000090000003c0300007c00000004000000b029500650325006503200
+02b0290002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000008025440000d8c200000a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300
+0000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000960294ff8a004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000980200001d000000e0020000620000000500000098021d0098026200e0026200e0021d0098021d00250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000e00200001d000000e40200006200000005000000e0021d00e0026200e4026200e4021d00e0021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e40200001d000000e70200006200000005000000e4021d00e4026200e7026200e7021d00e4021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000
+000c000000080000805600000030000000e70200001d000000ea0200006200000005000000e7021d00e7026200ea026200ea021d00e7021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ea0200001d000000ee020000620000000500
+0000ea021d00ea026200ee026200ee021d00ea021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000ee0200001d000000f10200006200000005000000ee021d00ee026200f1026200f1021d00ee021d00250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000f10200001d000000f50200006200000005000000f1021d00f1026200f5026200f5021d00f1021d00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000f50200001d000000f80200006200000005000000f5021d00f5026200f8026200f8021d00f5021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000
+805600000030000000f80200001d000000fc0200006200000005000000f8021d00f8026200fc026200fc021d00f8021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000fc0200001d000000ff0200006200000005000000fc021d00fc02
+6200ff026200ff021d00fc021d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ff0200001d000000030300006200000005000000ff021d00ff0262000303620003031d00ff021d00250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000030300001d00000006030000620000000500000003031d00030362000603620006031d0003031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd00
+00000000250000000c00000004000000250000000c000000080000805600000030000000060300001d0000000a030000620000000500000006031d00060362000a0362000a031d0006031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000
+000a0300001d0000000d03000062000000050000000a031d000a0362000d0362000d031d000a031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000000d0300001d0000001003000062000000050000000d031d000d036200100362001003
+1d000d031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000100300001d00000015030000620000000500000010031d00100362001503620015031d0010031d00250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000150300001d00000019030000620000000500000015031d00150362001903620019031d0015031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac3000000000025000000
+0c00000004000000250000000c000000080000805600000030000000190300001d0000001c030000620000000500000019031d00190362001c0362001c031d0019031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000001c0300001d0000
+002003000062000000050000001c031d001c0362002003620020031d001c031d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000200300001d00000022030000620000000500000020031d00200362002203620022031d0020031d002500
+00000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000960294ff8a0045003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000810200000600000039030000790000000400000080292006203220062032d0018029d001250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+00520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000a0020000d3ffffff17030000c6ffffff160000000c000000010000001200
+00000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000c402000023000000f70200002f0000000100000000400d4200040dc2c2020000d3ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300000006000000050000000300000006
+0000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d80000009c020000300000001e0300003b0000
+000100000000400d4200040dc29a020000c6ffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a00520065006300740061006e00670075006c006100720041007200650061000000060000000600000009000000090000000600000006000000030000000300000007000000060000000600000003000000060000000600000006000000060000000300
+00000600000004000000070000000400000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009602b4ff2003b4ff0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c000000050000805700000024000000810200002b0000003903000059000000020000008029200420322004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000009d02000046000000a6020000520000000100000000400d4200040dc29b020000b0ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000ae020000460000001e030000520000000100000000400d4200040dc2ac020000b0ffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000062006f00740074006f006d004c00650066007400200020003a0043006f006f007200640069006e00610074
+006500000006000000060000000300000003000000060000000900000006000000060000000300000003000000030000000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000580000009d02000053000000a60200005f0000000100000000400d4200040dc29b020000a3ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b00000054000000cc000000ae02000053000000130300005f0000000100000000400d4200040dc2ac020000a3ffffff150000004c000000000000000000000000000000ffffffffffffffff7800000074006f00700052006900670068007400200020003a0043006f006f007200640069006e0061007400650000000300000006000000060000000700000003000000060000000600
+000003000000030000000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008402b3fdb10045002100000008000000620000000c00000001000000110000000c000000010000000a
+00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000086020000fe0100003703000043020000050000006028e01f60283024703330247033e01f6028e01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008402b3fdb10045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000
+000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000006f020000e70100004e0300005a0200000400000060283024703330247033e01f6028e01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000402044008012c40000314300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000008102b6fdb100450025
+0000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000083020000fb010000df02000040020000050000008302fb0183024002df024002df02fb018302fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000
+250000000c00000004000000250000000c000000080000805600000030000000df020000fb010000e40200004002000005000000df02fb01df024002e4024002e402fb01df02fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e40200
+00fb010000e80200004002000005000000e402fb01e4024002e8024002e802fb01e402fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000e8020000fb010000ed0200004002000005000000e802fb01e8024002ed024002ed02fb01e802
+fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ed020000fb010000f10200004002000005000000ed02fb01ed024002f1024002f102fb01ed02fb01250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000f1020000fb010000f50200004002000005000000f102fb01f1024002f5024002f502fb01f102fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c000000
+04000000250000000c000000080000805600000030000000f5020000fb010000fa0200004002000005000000f502fb01f5024002fa024002fa02fb01f502fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000fa020000fb010000ff0200
+004002000005000000fa02fb01fa024002ff024002ff02fb01fa02fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000ff020000fb010000040300004002000005000000ff02fb01ff024002040340020403fb01ff02fb01250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000004030000fb0100000903000040020000050000000403fb0104034002090340020903fb010403fb01250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f2e5d00000000000250000000c00000004000000250000000c00000008000080560000003000000009030000fb0100000c03000040020000050000000903fb01090340020c0340020c03fb010903fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c0000000400000025000000
+0c0000000800008056000000300000000c030000fb0100001003000040020000050000000c03fb010c034002100340021003fb010c03fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000010030000fb0100001403000040020000050000
+001003fb0110034002140340021403fb011003fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000014030000fb0100001903000040020000050000001403fb0114034002190340021903fb011403fb01250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000019030000fb0100001d03000040020000050000001903fb01190340021d0340021d03fb011903fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000001d030000fb0100002303000040020000050000001d03fb011d034002230340022303fb011d03fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080
+560000003000000023030000fb0100002803000040020000050000002303fb0123034002280340022803fb012303fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000028030000fb0100002d03000040020000050000002803fb01280340
+022d0340022d03fb012803fb01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000002d030000fb0100003103000040020000050000002d03fb012d034002310340023103fb012d03fb01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000031030000fb0100003403000040020000050000003103fb0131034002340340023403fb013103fb01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054
+000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008102b6fdb10045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000006c020000e40100004b030000570200000400000030280024403300244033b01f3028b01f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000
+000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008b020000f5fdffff29030000e8fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000c202000001020000f5
+0200000d0200000100000000400d4200040dc2c0020000f5fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000
+050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e40000009c0200000e0200001b030000190200000100000000400d4200040dc29a020000e8fdffff190000004c000000000000000000000000000000ffffffffffffffff800000005600
+65006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e000000070000000600000006000000030000000600000003000000060000000700000006000000030000000600000003000000060000000600000007000000060000000600000003000000040000000300000006000000030000000300000006000000060000000a00000010000000fefffffff6ffffff0c
+000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008102d6fd3203d6fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000
+010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000006c020000090200004b0300
+0037020000020000003028002240330022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+00000058000000880200002402000091020000300200000100000000400d4200040dc286020000d2fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b0000005400000014010000990200002402000030030000300200000100000000400d4200040dc297020000d2fdffff210000004c000000000000000000000000000000ffffffffffffffff900000007200650073007400720069006300740069006f006e005400790070006500200020003a005200650073007400720069006300740069006f006e0054007900700065000060030000000600000004000000030000000300
+0000030000000500000003000000030000000600000006000000070000000500000006000000060000000300000003000000030000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000500000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008802000031020000910200003d0200000100000000400d4200040dc286020000c5fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000140100009902000031020000270300003d0200000100000000400d4200040dc297020000c5fdffff210000004c000000000000000000000000000000ffffffffffffffff900000007200650073007400720069006300740069006f006e00560061006c0075006500200020003a0049006e007400650067006500720020
+005b0030002e002e0031005d0000000300000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000600000003000000060000000600000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000
+100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003401d3fc590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000
+003000000036010000de0200008f01000023030000050000006013e02d60133032f0183032f018e02d6013e02d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210
+c0db00000000c0bfc0ff0b400040180000000c000000010000003401d3fc590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c
+0000001f010000c7020000a60100003a0300000400000060133032f0183032f018e02d6013e02d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000
+0080984300804ac40000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003101d6fc59004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000033010000db020000610100
+0020030000050000003301db0233012003610120036101db023301db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000061010000db0200006201000020030000050000006101db0261012003620120036201db026101db02250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000062010000db0200006301000020030000050000006201db0262012003630120036301db026201db02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000063010000db0200006401000020030000050000006301db0263012003640120036401db026301db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c0000000400000025000000
+0c00000008000080560000003000000064010000db0200006501000020030000050000006401db0264012003650120036501db026401db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000065010000db0200006601000020030000050000
+006501db0265012003660120036601db026501db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000066010000db0200006801000020030000050000006601db0266012003680120036801db026601db02250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000068010000db0200006901000020030000050000006801db0268012003690120036901db026801db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000069010000db0200006a01000020030000050000006901db02690120036a0120036a01db026901db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080
+56000000300000006a010000db0200006c01000020030000050000006a01db026a0120036c0120036c01db026a01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000006c010000db0200006d01000020030000050000006c01db026c0120
+036d0120036d01db026c01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000006d010000db0200006e01000020030000050000006d01db026d0120036e0120036e01db026d01db02250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000006e010000db0200006f01000020030000050000006e01db026e0120036f0120036f01db026e01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000
+000000250000000c00000004000000250000000c0000000800008056000000300000006f010000db0200007001000020030000050000006f01db026f012003700120037001db026f01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000
+70010000db0200007101000020030000050000007001db0270012003710120037101db027001db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000071010000db0200007201000020030000050000007101db0271012003720120037201db
+027101db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000072010000db0200007301000020030000050000007201db0272012003730120037301db027201db02250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000073010000db0200007401000020030000050000007301db0273012003740120037401db027301db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c
+00000004000000250000000c00000008000080560000003000000074010000db0200007501000020030000050000007401db0274012003750120037501db027401db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000075010000db020000
+7601000020030000050000007501db0275012003760120037601db027501db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000076010000db0200007701000020030000050000007601db0276012003770120037701db027601db02250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000077010000db0200007801000020030000050000007701db0277012003780120037801db027701db02250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000078010000db0200007901000020030000050000007801db0278012003790120037901db027801db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c0000000400000025
+0000000c00000008000080560000003000000079010000db0200007a01000020030000050000007901db02790120037a0120037a01db027901db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000007a010000db0200007b01000020030000
+050000007a01db027a0120037b0120037b01db027a01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000007b010000db0200007c01000020030000050000007b01db027b0120037c0120037c01db027b01db02250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000007c010000db0200007d01000020030000050000007c01db027c0120037d0120037d01db027c01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000007d010000db0200007f01000020030000050000007d01db027d0120037f0120037f01db027d01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008
+00008056000000300000007f010000db0200008001000020030000050000007f01db027f012003800120038001db027f01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080560000003000000080010000db0200008101000020030000050000008001db02
+80012003810120038101db028001db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000081010000db0200008201000020030000050000008101db0281012003820120038201db028101db02250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000082010000db0200008301000020030000050000008201db0282012003830120038301db028201db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdc
+c50000000000250000000c00000004000000250000000c00000008000080560000003000000083010000db0200008501000020030000050000008301db0283012003850120038501db028301db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030
+00000085010000db0200008601000020030000050000008501db0285012003860120038601db028501db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000086010000db0200008801000020030000050000008601db028601200388012003
+8801db028601db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000088010000db0200008901000020030000050000008801db0288012003890120038901db028801db02250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000089010000db0200008a01000020030000050000008901db02890120038a0120038a01db028901db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c000000000002500
+00000c00000004000000250000000c0000000800008056000000300000008a010000db0200008b01000020030000050000008a01db028a0120038b0120038b01db028a01db02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c0000000800008056000000300000008b010000db
+0200008c01000020030000050000008b01db028b0120038c0120038c01db028b01db02250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000
+010000003101d6fc590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001c010000c4020000a301000037030000040000
+0030130032c0180032c018b02d3013b02d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e
+000000180000003b01000015fdffff8101000008fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000046010000e102000079010000ed0200000100000000400d4200040dc24401000015fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007300740072007500630074007500
+72006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300
+0000180000000c0000000000000054000000b800000034010000ee0200008b010000f90200000100000000400d4200040dc23201000008fdffff120000004c000000000000000000000000000000ffffffffffffffff700000006c006f0063006100740069006f006e003a003a004c006f0063006100740069006f006e000300000006000000060000000600000003000000030000000600000006000000030000000300000006
+000000060000000600000006000000030000000300000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003101f6fc8a01f6fc
+00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000
+0000000000250000000c00000004000000250000000c0000000500008057000000240000001c010000e9020000a3010000170300000200000030130030c0180030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a40
+00c01c00000010000000c0bfc0ff01000000690090ff59003b0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000006b0000002b000000c40000006600000005000000b006b002b0066006400c6006400cb002b006b002250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000690090ff59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000005400000014000000db0000007d00000004000000b0066006400c6006400cb002b006b002250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000cc420000dac20000b24200006c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+0000660093ff59003b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000068000000280000009600000063000000050000006800280068006300960063009600280068002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000fbf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000096000000280000009700000063000000050000009600280096006300970063009700280096002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080
+560000003000000097000000280000009800000063000000050000009700280097006300980063009800280097002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000980000002800000099000000630000000500000098002800980063
+00990063009900280098002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000099000000280000009a000000630000000500000099002800990063009a0063009a00280099002800250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000009a000000280000009b00000063000000050000009a0028009a0063009b0063009b0028009a002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000
+000000250000000c00000004000000250000000c0000000800008056000000300000009b000000280000009d00000063000000050000009b0028009b0063009d0063009d0028009b002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000
+9d000000280000009e00000063000000050000009d0028009d0063009e0063009e0028009d002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000009e000000280000009f00000063000000050000009e0028009e0063009f0063009f0028
+009e002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000009f00000028000000a100000063000000050000009f0028009f006300a1006300a10028009f002800250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000a100000028000000a20000006300000005000000a1002800a1006300a2006300a2002800a1002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c
+00000004000000250000000c000000080000805600000030000000a200000028000000a30000006300000005000000a2002800a2006300a3006300a3002800a2002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000a300000028000000
+a40000006300000005000000a3002800a3006300a4006300a4002800a3002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a400000028000000a50000006300000005000000a4002800a4006300a5006300a5002800a4002800250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a500000028000000a60000006300000005000000a5002800a5006300a6006300a6002800a5002800250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000a600000028000000a70000006300000005000000a6002800a6006300a7006300a7002800a6002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c0000000400000025
+0000000c000000080000805600000030000000a700000028000000a80000006300000005000000a7002800a7006300a8006300a8002800a7002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000a800000028000000a900000063000000
+05000000a8002800a8006300a9006300a9002800a8002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000a900000028000000aa0000006300000005000000a9002800a9006300aa006300aa002800a9002800250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000aa00000028000000ab0000006300000005000000aa002800aa006300ab006300ab002800aa002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ab00000028000000ac0000006300000005000000ab002800ab006300ac006300ac002800ab002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008
+0000805600000030000000ac00000028000000ad0000006300000005000000ac002800ac006300ad006300ad002800ac002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ad00000028000000ae0000006300000005000000ad002800
+ad006300ae006300ae002800ad002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ae00000028000000af0000006300000005000000ae002800ae006300af006300af002800ae002800250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000af00000028000000b00000006300000005000000af002800af006300b0006300b0002800af002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1
+cc0000000000250000000c00000004000000250000000c000000080000805600000030000000b000000028000000b10000006300000005000000b0002800b0006300b1006300b1002800b0002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030
+000000b100000028000000b20000006300000005000000b1002800b1006300b2006300b2002800b1002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000b200000028000000b40000006300000005000000b2002800b2006300b4006300
+b4002800b2002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000b400000028000000b50000006300000005000000b4002800b4006300b5006300b5002800b4002800250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000b500000028000000b60000006300000005000000b5002800b5006300b6006300b6002800b5002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec700000000002500
+00000c00000004000000250000000c000000080000805600000030000000b600000028000000b70000006300000005000000b6002800b6006300b7006300b7002800b6002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b700000028
+000000b80000006300000005000000b7002800b7006300b8006300b8002800b7002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000b800000028000000ba0000006300000005000000b8002800b8006300ba006300ba002800b8002800
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ba00000028000000bb0000006300000005000000ba002800ba006300bb006300bb002800ba002800250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000bb00000028000000bd0000006300000005000000bb002800bb006300bd006300bd002800bb002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c0000000400
+0000250000000c000000080000805600000030000000bd00000028000000be0000006300000005000000bd002800bd006300be006300be002800bd002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000be00000028000000bf00000063
+00000005000000be002800be006300bf006300bf002800be002800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000bf00000028000000c00000006300000005000000bf002800bf006300c0006300c0002800bf002800250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000c000000028000000c10000006300000005000000c0002800c0006300c1006300c1002800c0002800250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000
+0007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000660093ff59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000005100000011000000d80000007a0000000400000080063006100c3006100c800280068002250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000070000000ccffffffb6000000bfffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000
+00900000007a0000002a000000af000000360000000100000000400d4200040dc278000000ccffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007000720069006d0069007400690076006500bb00000006000000060000000300000003000000090000000300000003000000030000000500000006000000060000001b000000100000000000000000000000160000000c0000000000
+00004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000006e0000003a000000bc000000450000000100000000400d4200040dc26c000000bcffffff110000004c000000000000000000000000000000
+ffffffffffffffff70000000540072006100660066006900630049006e0063006900640065006e00740049006400000005000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006000000060000000300000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b084000
+02380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006c00b0ffba00b0ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400
+0000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000570000002f000000d30000005d00000002000000e0066004c00b6004250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000a201abfdc100540024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000
+080000805600000030000000a4010000f7010000650200004b02000005000000401a701f401ab0245026b0245026701f401a701f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000
+00000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000a201abfdc10054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000000500
+0080560000002c0000008d010000e00100007c0200006202000004000000401ab0245026b0245026701f401a701f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004
+000000000000000080cf43008014c4000041430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000009f01aefdc1005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a1010000
+f4010000060200004802000005000000a101f401a1014802060248020602f401a101f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000006020000f40100000a02000048020000050000000602f401060248020a0248020a02f4010602f4
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000000a020000f40100001002000048020000050000000a02f4010a024802100248021002f4010a02f401250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000010020000f40100001602000048020000050000001002f40110024802160248021602f4011002f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004
+000000250000000c00000008000080560000003000000016020000f40100001b02000048020000050000001602f401160248021b0248021b02f4011602f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000001b020000f401000020020000
+48020000050000001b02f4011b024802200248022002f4011b02f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000020020000f40100002502000048020000050000002002f40120024802250248022502f4012002f401250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000025020000f40100002b02000048020000050000002502f401250248022b0248022b02f4012502f401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000002b020000f40100003002000048020000050000002b02f4012b024802300248023002f4012b02f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c
+00000008000080560000003000000030020000f40100003302000048020000050000003002f40130024802330248023302f4013002f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c00000008000080560000003000000033020000f4010000370200004802000005000000
+3302f40133024802370248023702f4013302f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000037020000f40100003b02000048020000050000003702f401370248023b0248023b02f4013702f401250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000003b020000f40100004002000048020000050000003b02f4013b024802400248024002f4013b02f401250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000efe0cb0000000000250000000c00000004000000250000000c00000008000080560000003000000040020000f40100004402000048020000050000004002f40140024802440248024402f4014002f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056
+0000003000000044020000f40100004902000048020000050000004402f40144024802490248024902f4014402f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000049020000f40100004f02000048020000050000004902f40149024802
+4f0248024f02f4014902f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000004f020000f40100005502000048020000050000004f02f4014f024802550248025502f4014f02f401250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000055020000f40100005a02000048020000050000005502f401550248025a0248025a02f4015502f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c1000000
+0000250000000c00000004000000250000000c0000000800008056000000300000005a020000f40100005f02000048020000050000005a02f4015a0248025f0248025f02f4015a02f401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000005f
+020000f40100006202000048020000050000005f02f4015f024802620248026202f4015f02f401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b40004018000000
+0c000000010000009f01aefdc10054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008a010000dd010000790200005f0200
+0004000000101a8024202680242026401f101a401f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000
+0000001e00000018000000a9010000fcfdffff57020000effdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000e8010000fa0100001b020000060200000100000000400d4200040dc2e6010000fcfdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0073007400720075006300
+7400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00
+000003000000180000000c0000000000000054000000e8000000ba0100000702000049020000120200000100000000400d4200040dc2b8010000effdffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000540065006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e00050000000600000009000000060000000600000004
+00000006000000040000000500000007000000060000000600000006000000060000000600000003000000090000000300000003000000070000000600000006000000030000000300000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000
+01000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009f01ddfd6002ddfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000
+005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008a01000002020000790200003002000002000000101a902120269021250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a60100001d020000af010000290200000100000000400d4200040dc2a4010000d9fdffff020000004c000000000000000000000000000000ffffffff
+ffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000b70100001d02000031020000290200000100000000400d4200040dc2b5010000d9fdffff190000004c00000000000000000000000000
+0000ffffffffffffffff80000000730070006500650064004c0069006d0069007400560061006c0075006500200020003a0049006e00740065006700650072000000040000000600000006000000060000000600000006000000030000000900000003000000030000000700000006000000030000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a
+00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a60100002a020000af010000360200000100000000400d4200040dc2a4010000ccfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000060000
+00030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000b70100002a0200005e020000360200000100000000400d4200040dc2b5010000ccfdffff230000004c000000000000000000000000000000ffffffffffffffff9400000073
+0070006500650064004c0069006d0069007400560061006c0075006500570065007400200020003a0049006e007400650067006500720020005b0030002e002e0031005d00ffff040000000600000006000000060000000600000006000000030000000900000003000000030000000700000006000000030000000600000006000000090000000600000003000000030000000300000003000000030000000600000003000000
+06000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+00520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a601000037020000af010000430200000100000000400d4200040dc2a401
+0000bffdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+00000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000b70100003702000051020000430200000100000000400d42
+00040dc2b5010000bffdffff210000004c000000000000000000000000000000ffffffffffffffff90000000730070006500650064004c0069006d00690074004c0065006e00670074006800200020003a0049006e007400650067006500720020005b0030002e002e0031005d00000004000000060000000600000006000000060000000600000003000000090000000300000003000000060000000600000006000000060000
+00030000000600000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000a0013cfe780045002100000008000000620000000c00
+000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a2010000750100001a020000ba01000005000000201a5017201aa01ba021a01ba0215017201a5017250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000a0013cfe780045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008b0100005e01000031020000d101000004000000201aa01ba021a01ba0215017201a5017250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080ce430080e0c30000f04200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000
+000002000000010000009d013ffe78004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000009f01000072010000dc010000b7010000050000009f0172019f01b701dc01b701dc0172019f017201250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000fcf2e20000000000250000000c00000004000000250000000c000000080000805600000030000000dc01000072010000dd010000b701000005000000dc017201dc01b701dd01b701dd017201dc017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c0000000400000025000000
+0c000000080000805600000030000000dd01000072010000de010000b701000005000000dd017201dd01b701de01b701de017201dd017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000de01000072010000df010000b7010000050000
+00de017201de01b701df01b701df017201de017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000df01000072010000e1010000b701000005000000df017201df01b701e101b701e1017201df017201250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e101000072010000e2010000b701000005000000e1017201e101b701e201b701e2017201e1017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000e201000072010000e4010000b701000005000000e2017201e201b701e401b701e4017201e2017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080
+5600000030000000e401000072010000e6010000b701000005000000e4017201e401b701e601b701e6017201e4017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000e601000072010000e7010000b701000005000000e6017201e601b7
+01e701b701e7017201e6017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000e701000072010000e8010000b701000005000000e7017201e701b701e801b701e8017201e7017201250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000e801000072010000e9010000b701000005000000e8017201e801b701e901b701e9017201e8017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000
+000000250000000c00000004000000250000000c000000080000805600000030000000e901000072010000ea010000b701000005000000e9017201e901b701ea01b701ea017201e9017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000
+ea01000072010000eb010000b701000005000000ea017201ea01b701eb01b701eb017201ea017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000eb01000072010000ec010000b701000005000000eb017201eb01b701ec01b701ec0172
+01eb017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c000000080000805600000030000000ec01000072010000ed010000b701000005000000ec017201ec01b701ed01b701ed017201ec017201250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000ed01000072010000ee010000b701000005000000ed017201ed01b701ee01b701ee017201ed017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c
+00000004000000250000000c000000080000805600000030000000ee01000072010000f0010000b701000005000000ee017201ee01b701f001b701f0017201ee017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000f001000072010000
+f1010000b701000005000000f0017201f001b701f101b701f1017201f0017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000f101000072010000f3010000b701000005000000f1017201f101b701f301b701f3017201f1017201250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000f301000072010000f5010000b701000005000000f3017201f301b701f501b701f5017201f3017201250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000f501000072010000f6010000b701000005000000f5017201f501b701f601b701f6017201f5017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c0000000400000025
+0000000c000000080000805600000030000000f601000072010000f7010000b701000005000000f6017201f601b701f701b701f7017201f6017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000f701000072010000f8010000b7010000
+05000000f7017201f701b701f801b701f8017201f7017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000f801000072010000f9010000b701000005000000f8017201f801b701f901b701f9017201f8017201250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000f901000072010000fa010000b701000005000000f9017201f901b701fa01b701fa017201f9017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000fa01000072010000fb010000b701000005000000fa017201fa01b701fb01b701fb017201fa017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c00000008
+0000805600000030000000fb01000072010000fc010000b701000005000000fb017201fb01b701fc01b701fc017201fb017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000fc01000072010000fd010000b701000005000000fc017201
+fc01b701fd01b701fd017201fc017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000fd01000072010000fe010000b701000005000000fd017201fd01b701fe01b701fe017201fd017201250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000fe01000072010000ff010000b701000005000000fe017201fe01b701ff01b701ff017201fe017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2
+cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ff0100007201000000020000b701000005000000ff017201ff01b7010002b70100027201ff017201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030
+000000000200007201000002020000b701000005000000000272010002b7010202b7010202720100027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000020200007201000003020000b701000005000000020272010202b7010302b701
+0302720102027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000030200007201000005020000b701000005000000030272010302b7010502b7010502720103027201250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000050200007201000006020000b701000005000000050272010502b7010602b7010602720105027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc800000000002500
+00000c00000004000000250000000c000000080000805600000030000000060200007201000007020000b701000005000000060272010602b7010702b7010702720106027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c0000000800008056000000300000000702000072
+01000008020000b701000005000000070272010702b7010802b7010802720107027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000080200007201000009020000b701000005000000080272010802b7010902b7010902720108027201
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000009020000720100000a020000b701000005000000090272010902b7010a02b7010a02720109027201250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000a020000720100000b020000b7010000050000000a0272010a02b7010b02b7010b0272010a027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c0000000400
+0000250000000c0000000800008056000000300000000b020000720100000d020000b7010000050000000b0272010b02b7010d02b7010d0272010b027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000d020000720100000e020000b7
+010000050000000d0272010d02b7010e02b7010e0272010d027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000e020000720100000f020000b7010000050000000e0272010e02b7010f02b7010f0272010e027201250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000000f0200007201000011020000b7010000050000000f0272010f02b7011102b701110272010f027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000110200007201000012020000b701000005000000110272011102b7011202b7011202720111027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00
+0000080000805600000030000000120200007201000014020000b701000005000000120272011202b7011402b7011402720112027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000140200007201000015020000b70100000500000014
+0272011402b7011502b7011502720114027201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000150200007201000016020000b701000005000000150272011502b7011602b7011602720115027201250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000160200007201000017020000b701000005000000160272011602b7011702b7011702720116027201250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000
+006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009d013ffe780045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000
+000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000880100005b0100002e020000ce01000004000000f019701b7021701b70212017f0192017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+0000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000a70100007efeffff0c02000071feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000c20100
+0078010000f5010000840100000100000000400d4200040dc2c00100007efeffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000
+000000000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c0000000a60100008501000010020000900100000100000000400d4200040dc2a401000071feffff130000004c000000000000000000000000000000ffffffffffffffff
+74000000540065006d0070006f007200610072007900530070006500650064004c0069006d00690074000000050000000600000009000000060000000600000004000000060000000400000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000007c00000070000000454d46
+2b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009d015ffe15025ffe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000088010000800100002e020000ae01000002000000f019701970217019250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+0900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a40100009b010000ad010000a70100000100000000400d
+4200040dc2a20100005bfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+0000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000b50100009b01000013020000a701000001
+00000000400d4200040dc2b30100005bfeffff120000004c000000000000000000000000000000ffffffffffffffff7000000075006e006900740073004d0050004800200020003a0042006f006f006c00650061006e000600000006000000030000000300000004000000090000000700000007000000030000000300000003000000070000000600000006000000030000000600000006000000060000000a00000010000000
+fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a4010000a8010000ad010000b40100000100000000400d4200040dc2a20100004efeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00
+000010000000fefffffff6ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000b5010000a801000013020000b40100000100000000400d4200040dc2b30100004efeffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006f00660066007300
+65007400200020003a0049006e007400650067006500720020005b0030002e002e0031005d00010006000000030000000300000004000000060000000300000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000460000
+008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008000eafc740034fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000
+00000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000074000000c0020000840000000e030000020000002008c0306007202c250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000007b002bfd740034fd710029fd770020fd280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000
+1800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000073000000c20200007d000000d602000004000000d007b02c6007202c3007d02c9007602d250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000007b002bfd740034fd710029fd770020fd24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000071000000c00200007f000000d802000004000000d007b02c6007202c3007d02c9007602d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000
+0000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276883921330700ba00677c0000543721f51900b00175322f76010054370800fe00677c00008ce3c577b389172670374b0b9401300b08000000b46eba26000000001098bf2348004b0b5c014b0bf8911a24f0374b0b8ce3c5774051e102667c00003853e102f571ca7793093353feff
+ffff8ce3c577f2e0c57746e0c57700000000706cba265c014b0b543721f54f120af8286fba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006400000085000000fb02000097000000070300000100000000400d4200040dc283000000fbfcffff040000004c0000000000000000
+00000000000000ffffffffffffffff5400000030002e002e003100060000000300000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c00247100672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f760700ba00687c000018000000543721f5a03700008051e1020800fe00687c000000000000000001007037
+4b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0bf8911a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000cc6dba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c
+0000000000000054000000ac00000057000000e8020000a1000000f40200000100000000400d4200040dc2550000000efdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000006c0061006e0065005200650073007400720069006300740069006f006e00730003000000060000000600000006000000070000000600000004000000030000000300000003000000050000000300000003000000
+0600000006000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000f40102fee2013efe000101
+01154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c0000000400
+0000250000000c000000050000805700000024000000e2010000b6010000f8010000f601000002000000601f401f401e801b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000ea0136fee2013efee0
+0133fee8012bfe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000e2010000b8010000ec010000cb01000004000000c01e001c401e801b201e301ca01eb01c250000000c00000007000080130000000c00000001000000250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000ea0136fee2013efee00133fee8012bfe24000000240000000000803d00000000000000000000803d00000000000000
+00020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e0010000b6010000ee010000cd01000004000000c01e001c401e801b201e301ca01eb01c250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276883921330f00cc00797c0000543721f51900b00175322f760100543710009c00797c00008ce3c577b389172670374b0b9401300b08000000ac63ba26000000001098bf2348004b0b5c014b0be88e1a24f0374b0b8ce3c5
+774051e102787c00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006861ba265c014b0b543721f54f120af82064ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000f9010000e301000009020000ef0100000100000000400d420004
+0dc2f701000013feffff040000004c000000000000000000000000000000ffffffffffffffff5400000031002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff000000000000000000000000
+00000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c00247101672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f760f00cc007a7c000018000000543721f5d04800
+008051e10210009c007a7c0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0be88e1a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000c462ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476
+000800000000250000000c00000004000000180000000c0000000000000054000000f0000000a7010000d101000035020000dd0100000100000000400d4200040dc2a501000025feffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000740065006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e00730000000300000006
+000000090000000600000006000000030000000600000003000000050000000700000006000000060000000600000006000000060000000300000009000000030000000300000007000000060000000500000003000000030000000600000006000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b08400002
+3c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008b0113fd9e02b5fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008b0100003f020000a2020000e502000002000000d018302e002a1024250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000009802acfd9e02b5fd9302b4fd8d02abfd24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008
+000080560000002c0000008f02000041020000a00200004b02000004000000a029a024002a102450292024f028b024250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f
+020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000009802acfd9e02b5fd9302b4fd8d02abfd24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000
+000c00000005000080560000002c0000008d0200003f020000a20200004d02000004000000a029a024002a102450292024f028b024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff0052
+0000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300b
+c70f3276883921331700b2018b7c0000543721f51900b00175322f760100543718008e018b7c00008ce3c577b389172670374b0b9401300b080000009c4dba26000000001098bf2348004b0b5c014b0b78961a24f0374b0b8ce3c5774051e1028a7c00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000584bba265c014b0b543721f54f120af8104eba26d451e102b052e102cc53e102f571ca
+7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006400000090010000e8020000a2010000f40200000100000000400d4200040dc28e0100000efdffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e003100060000000300000003000000060000000a00000010000000feff
+fffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000e102000000000000300b2006ec26f8200c03ac90a601c00247102672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f761700b2018c7c000018000000543721f5005a00008051e10218008e018c7c0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b78961a24f0374b0b527f17014051e102000000003853e1
+02f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b44cba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c0000000000000054000000c0000000ec0100008402000042020000900200000100000000400d4200040dc2ea01000072fdffff1300
+00004c000000000000000000000000000000ffffffffffffffff740000007200650073007400720069006300740069006f006e004c006f0063006100740069006f006e000000030000000600000004000000030000000300000003000000050000000300000003000000060000000600000006000000060000000500000006000000030000000300000006000000060000000a00000010000000fefffffff6ffffff0c00000010
+0000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000061011bfd9501dffe00010101154001001000000004000000000000002100000008000000620000000c000000
+01000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000006101000015010000990100
+00dd020000020000003016b02d70197011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000009901d4fe9501dffe8f01d6fe9301cbfe24000000240000000000803d00000000000000000000803d0000
+00000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000091010000170100009b0100002b01000004000000b019201270197011101900125019b012250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c
+00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000009901d4fe9501dffe8f01d6fe9301cbfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+00100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008f010000150100009d0100002d01000004000000b019201270197011101900125019b012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000
+00220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000
+00000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276883921331f0080019d7c0000543721f51900b00175322f760100543720001e019d7c00008ce3c577b389172670374b0b9401300b08000000cc8fba26000000001098bf2348004b0b5c014b0bf8921a24f0374b0b8ce3c5774051e1029c7c00003853e102f571ca7793093353feffffff8ce3c577f2e0c577
+46e0c57700000000888dba265c014b0b543721f54f120af84090ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006400000066010000ca02000078010000d60200000100000000400d4200040dc2640100002cfdffff040000004c000000000000000000000000000000ffffff
+ffffffffff5400000030002e002e003100060000000300000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c00247103672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f761f0080019e7c000018000000543721f5306b00008051e10220001e019e7c0000000000000000010070374b0b051d2f7608000000
+00000000000000001098bf2348004b0b5c014b0bf8921a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000e48eba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c00000000000000540000
+007c0000006a010000eb01000090010000f70100000100000000400d4200040dc2680100000bfeffff080000004c000000000000000000000000000000ffffffffffffffff5c0000006c006f0063006100740069006f006e0003000000060000000500000006000000030000000300000006000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c000000040000004600
+00008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d802fbfdd50250fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000
+0000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000d5020000a4010000dc020000fd01000002000000a02db01f702d601a250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000da0246fed50250fed00246fed6023cfe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000
+000c00000001000000250000000c00000008000080560000002c000000d2020000a6010000dc020000ba01000004000000c02d001b702d601a202d001b802da01b250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210
+c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000da0246fed50250fed00246fed6023cfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000
+000000250000000c00000004000000250000000c00000005000080560000002c000000d0020000a4010000de020000bc01000004000000c02d001b702d601a202d001b802da01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c0000
+0002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3
+c5772f8a172646e0c5779401300b0000300bc70f32768839213327000601af7c0000543721f51900b00175322f76010054372800a001af7c00008ce3c577b389172670374b0b9401300b08000000d49aba26000000001098bf2348004b0b5c014b0b08971a24f0374b0b8ce3c5774051e102ae7c00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009098ba265c014b0b543721f54f120af848
+9bba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000dd020000ea010000ed020000f60100000100000000400d4200040dc2db0200000cfeffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a000600000003000000
+03000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c00247104672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7627000601b07c000018000000543721f5607c00008051e1022800a001b07c0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b08971a24f0
+374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000ec99ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c0000000000000054000000e80000009b020000c301000017030000cf01000001000000
+00400d4200040dc29902000033feffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000760065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e00730005000000060000000600000003000000050000000300000006000000070000000600000003000000060000000300000006000000060000000700000006000000040000
+000300000003000000030000000500000003000000030000000600000006000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff08400103240000001800
+00000210c0db02000000004000009602a3ff11027dff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000
+000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000011020000510000009a0200007b000000020000008029300530219007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c0
+2400000018000000000000ff04000000190285ff11027dff1c027bff240282ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000001302000071000000260200007b00000004000000b021100730219007e021b00760224007250000000c00000007000080130000000c0000
+0001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000190285ff11027dff1c027bff240282ff240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000110200006f000000280200007d00000004000000b021100730219007e021b00760224007250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276883921332f00a801c17c0000543721f51900b00175322f76010054373000e000c17c00008ce3c577b389172670374b0b9401300b08000000dca5ba260000
+00001098bf2348004b0b5c014b0b08911a24f0374b0b8ce3c5774051e102c07c00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000098a3ba265c014b0b543721f54f120af850a6ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006400000085
+0200005800000095020000640000000100000000400d4200040dc2830200009effffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000
+007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c00247105672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51
+e10266302f762f00a801c27c000018000000543721f5908d00008051e1023000e000c27c0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b08911a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000f4a4ba260000000008000000000000003c5ce102000000000000000000000000ece56d0100
+0000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c0000000000000054000000c0000000230200006400000089020000700000000100000000400d4200040dc22102000092ffffff130000004c000000000000000000000000000000ffffffffffffffff740000006c006f0063006100740069006f006e0042006f0075006e00640069006e00670042006f00
+78000000030000000600000005000000060000000300000003000000060000000600000007000000060000000600000006000000060000000300000006000000060000000700000006000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000
+000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d10184febe01dffe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+00005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000be01000015010000d50100007401000002000000301d2017001c7011250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100
+0000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000c501d6febe01dffebb01d4fec201cbfe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000bd01000017010000c7010000
+2b01000004000000701c0012001c7011d01b2012401cb012250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db000000
+00000000ff0d400060200000001400000004000000c501d6febe01dffebb01d4fec201cbfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000bb0100001501
+0000c90100002d01000004000000701c0012001c7011d01b2012401cb012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff0000000000000000
+0000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f32768839213337009c01d37c0000543721f51900b0
+0175322f760100543738009a01d37c00008ce3c577b389172670374b0b9401300b080000007c21ba26000000001098bf2348004b0b5c014b0bd8961a24f0374b0b8ce3c5774051e102d27c00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000381fba265c014b0b543721f54f120af8f021ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000
+00006476000800000000250000000c00000004000000180000000c000000000000005400000064000000d601000061010000e60100006d0100000100000000400d4200040dc2d401000095feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c00000010000000000000000000000028
+0000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a6
+01c00247106672010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7637009c01d47c000018000000543721f5c09e00008051e10238009a01d47c0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0bd8961a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0
+c577000000009420ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c0000000000000054000000c40000009501000037010000ff010000430100000100000000400d4200040dc293010000bffeffff140000004c000000000000000000000000000000ffffffffff
+ffffff74000000740065006d0070006f007200610072007900530070006500650064004c0069006d0069007400730003000000060000000900000006000000060000000300000006000000030000000500000007000000060000000600000006000000060000000600000003000000090000000300000003000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c000000
+04000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d60028fe8c008ffe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000
+0010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008c00000065010000da000000d001000002000000800de01ce00870162500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000009a0086fe90007ffe8c008ffe280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027
+000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000008e000000670100009c0000007701000003000000c009001720097017e0087016250000000c00000007000080130000000c00000001000000250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+0200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000009a0086fe90007ffe8c008ffe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000
+000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008056000000280000008c000000650100009e0000007901000003000000c009001720097017e0087016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400
+000046000000dc000000d0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db1600000000400000c000a3ffc700a1ffcb00a0ffd2009effd6009dffdd009bffe1009affe80097ffec0096fff30094fff70093fffe0091ff020190ff09018eff0d018cff14018aff180189ff1f0187ff23
+0186ff2a0184ff2e0182ff350180ff0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000
+050000805a000000a4000000c00000005100000039010000780000000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000200c3005900c5005d00c6005400d8005800d9005f00db005300ec005a00ef005e00e0006500f2006900f30060010500640106006b0108006f010a0066011c006a011d0061012f00650120007c012200700134007701360
+07250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400
+000000400000c000a3ffd000a3ffc000a3ffcd009aff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000c0
+00000051000000d40000005e00000002000000040000000200000002000000200c3005200d3005200c3005f00cc005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f
+020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006c00bdfd72008ffe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000000000000000000000000000
+0000000000250000000c00000004000000250000000c0000000500008057000000240000006c00000065010000760000003b02000002000000e006902340077016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003000000024000000454d462b0c4000c02000000014000000e3f2
+fcff0300000078007ffe6c007ffe72008ffe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000006e000000670100007a0000007701000003000000a0077017e006701740077016250000000c00000007000080130000000c00000001000000250000000c0000000000008024
+000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c000000100000000300000078007ffe6c007ffe72008ffe24000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008056000000280000006c000000650100007c0000007901000003000000a0077017e006701740077016250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000b100d5fe380121ff0001000115400100100000000400000000000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000b1000000d30000003c0100002301000002000000300b1012a013500d250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000320118ff380121ff2d0120ff270117ff280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000
+0000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000029010000d50000003a010000df000000040000004013e00da013500df012600d9012f00d250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c0000
+0060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000320118ff380121ff2d0120ff270117ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010
+0100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000027010000d30000003c010000e1000000040000004013e00da013500df012600d9012f00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000022
+0000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000000000000000
+0064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276883921335700ea01157d0000543721f51900b00175322f76010054375800ec01157d00008ce3c577b389172670374b0b9401300b080000008c37ba26000000001098bf2348004b0b5c014b0b68991a24f0374b0b8ce3c5774051e102147d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0
+c577000000004835ba265c014b0b543721f54f120af80038ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000b600000010010000c60000001c0100000100000000400d4200040dc2b4000000e6feffff040000004c000000000000000000000000000000ffffffffff
+ffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c00247109972010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f765700ea01167d000018000000543721f540da00008051e1025800ec01167d0000000000000000010070374b0b051d2f76080000000000
+0000000000001098bf2348004b0b5c014b0b68991a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a436ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c000000000000005400000070
+000000e8000000ed00000007010000f90000000100000000400d4200040dc2e600000009ffffff060000004c000000000000000000000000000000ffffffffffffffff580000006300610075007300650073000500000006000000060000000400000006000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b
+084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009c0240ff110251ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000
+000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000011020000a3000000a0020000b800000002000000e029600b3021500a250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000001c0255ff110251ff1a024bff25024fff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c
+00000008000080560000002c00000013020000a100000027020000ab00000004000000e021100a3021500ac021b00a7022700a250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e00000000000000
+0000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000001c0255ff110251ff1a024bff25024fff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c000000040000
+00250000000c00000005000080560000002c000000110200009f00000029020000ad00000004000000e021100a3021500ac021b00a7022700a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ff
+ffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b
+0000300bc70f3276883921335f00fa01277d0000543721f51900b00175322f76010054376000fc01277d00008ce3c577b389172670374b0b9401300b080000009442ba26000000001098bf2348004b0b5c014b0be8991a24f0374b0b8ce3c5774051e102267d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000005040ba265c014b0b543721f54f120af80843ba26d451e102b052e102cc53e1
+02f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000640000008b020000bb0000009b020000c70000000100000000400d4200040dc2890200003bffffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a0000001000
+0000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000e102000000000000300b2006ec26f8200c03ac90a601c0024710aa72010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f765f00fa01287d000018000000543721f570eb00008051e1026000fc01287d0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0be8991a24f0374b0b527f17014051e102000000
+003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000ac41ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c00000000000000540000007800000048020000a00000006b020000ac0000000100000000400d4200040dc24602000056ff
+ffff070000004c000000000000000000000000000000ffffffffffffffff5c00000061006400760069006300650073000000060000000600000005000000030000000500000006000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e0000000000000000
+00803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000072026cfe160266fe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000
+5f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000016020000880100007602000092010000020000004027a01880210019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff0400000020026cfe160266fe200262fe2a0267fe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000180200008a0100002c0200009401
+0000040000002022a0188021001920224019c022f018250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db0000000000
+0000ff0d40006020000000140000000400000020026cfe160266fe200262fe2a0267fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001602000088010000
+2e02000096010000040000002022a0188021001920224019c022f018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000
+000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f32768839213357000e0030170e0e543721f51900b00175
+322f76010054375800100030170e0e8ce3c577b389172670374b0b9401300b08000000842cba260000000058c8612348004b0b5c014b0b180acc19f0374b0b8ce3c5774051e1022f170e0e3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000402aba265c014b0b543721f54f120af8f82cba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000
+6476000800000000250000000c00000004000000180000000c000000000000005400000064000000610200008f010000710200009b0100000100000000400d4200040dc25f02000067feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000
+000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+00001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f8200c03ac90a601c0
+024710bb72010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7657000e0031170e0e18000000543721f5a0fc00008051e1025800100031170e0e000000000000010070374b0b051d2f7608000000000000000000000058c8612348004b0b5c014b0b180acc19f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577
+000000009c2bba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c00000000000000540000009c000000290200007f010000630200008b0100000100000000400d4200040dc22702000077feffff0d0000004c000000000000000000000000000000ffffffffffffff
+ff680000006100700070006c00690063006100620069006c006900740079000080060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e00
+0000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d70296fee20214ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000
+000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000d7020000e0000000e60200006201000002000000902d0016402e200e250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000e6020affe20214ffdc020affe00200ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000de020000e20000
+00e8020000f600000004000000802ec00e402e200ee02dc00e202e600f250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210
+c0db00000000000000ff0d400060200000001400000004000000e6020affe20214ffdc020affe00200ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000dc
+020000e0000000ea020000f800000004000000802ec00e402e200ee02dc00e202e600f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff000000
+00000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276883921335f001e0045170e0e5437
+21f51900b00175322f76010054376000200045170e0e8ce3c577b389172670374b0b9401300b08000000e4b0ba260000000058c8612348004b0b5c014b0b980acc19f0374b0b8ce3c5774051e10244170e0e3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a0aeba265c014b0b543721f54f120af858b1ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746
+e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000dc0200004f010000ec0200005b0100000100000000400d4200040dc2da020000a7feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c0000001000000000000000
+00000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b2006ec26f820
+0c03ac90a601c0024710cb72010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f765f001e0046170e0e18000000543721f5d00d01008051e1026000200046170e0e000000000000010070374b0b051d2f7608000000000000000000000058c8612348004b0b5c014b0b980acc19f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2
+e0c57746e0c57700000000fcafba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c00000000000000540000009c000000c202000013010000fc0200001f0100000100000000400d4200040dc2c0020000e3feffff0d0000004c000000000000000000000000000000
+ffffffffffffffff680000006100700070006c00690063006100620069006c006900740079000000060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0
+db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a60296fe11020aff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000011020000ea000000aa0200006201000002000000802a00163021c00e250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000001c0208ff11020aff160200ff2102fefe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000
+13020000ec00000023020000f800000004000000e021e00e3021c00e8021600f3022800f250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000
+00000000000210c0db00000000000000ff0d4000602000000014000000040000001c0208ff11020aff160200ff2102fefe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805600
+00002c00000011020000ea00000025020000fa00000004000000e021e00e3021c00e8021600f3022800f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000
+f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f32768839213367002e
+005a170e0e543721f51900b00175322f7601005437680030005a170e0e8ce3c577b389172670374b0b9401300b08000000ecbbba260000000058c8612348004b0b5c014b0b180bcc19f0374b0b8ce3c5774051e10259170e0e3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a8b9ba265c014b0b543721f54f120af860bcba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3
+c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000ab0200004f010000bb0200005b0100000100000000400d4200040dc2a9020000a7feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ffffff0c00000010
+0000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e10200000000000030
+0b2006ec26f8200c03ac90a601c0024710db72010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7667002e005b170e0e18000000543721f5001f01008051e102680030005b170e0e000000000000010070374b0b051d2f7608000000000000000000000058c8612348004b0b5c014b0b180bcc19f0374b0b527f17014051e102000000003853e102f571ca7793093353feff
+ffff8ce3c577f2e0c57746e0c5770000000004bbba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c00000000000000540000009c00000041020000180100007b020000240100000100000000400d4200040dc23f020000defeffff0d0000004c0000000000000000
+00000000000000ffffffffffffffff680000006100700070006c00690063006100620069006c006900740079000000060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000
+300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000b70051ff380158ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000b70000009c0000003c010000a700000002000000900b500aa013e009250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000002e0152ff380158ff2e015cff240157ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056
+0000002c000000260100009a0000003a010000a4000000040000000013400aa013e0090013a0096012f009250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000
+0200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000002e0152ff380158ff2e015cff240157ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000
+0005000080560000002c00000024010000980000003c010000a6000000040000000013400aa013e0090013a0096012f009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff005200000070
+01000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000064073376000000006407337680013376001c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276
+883921336f003e006f170e0e543721f51900b00175322f7601005437700040006f170e0e8ce3c577b389172670374b0b9401300b08000000f4c6ba260000000058c8612348004b0b5c014b0b980bcc19f0374b0b8ce3c5774051e1026e170e0e3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b0c4ba265c014b0b543721f54f120af868c7ba26d451e102b052e102cc53e102f571ca77930933
+53feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000bc000000aa000000cc000000b60000000100000000400d4200040dc2ba0000004cffffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000fefffffff6ff
+ffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c0000001000000002000000f6ffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102
+000000000000300b2006ec26f8200c03ac90a601c0024710eb72010001005437ac90a601883921338ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f766f003e0070170e0e18000000543721f5303001008051e1027000400070170e0e000000000000010070374b0b051d2f7608000000000000000000000058c8612348004b0b5c014b0b980bcc19f0374b0b527f17014051e102000000003853e102f571ca
+7793093353feffffff8ce3c577f2e0c57746e0c577000000000cc6ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c000000000000005400000094000000de0000009400000016010000a00000000100000000400d4200040dc2dc00000062ffffff0c0000004c00
+0000000000000000000000000000ffffffffffffffff640000006c006f0063006100740069006f006e0049006e0066006f000300000006000000050000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000fefffffff6ffffff0c000000100000000000000000000000280000000c00000004000000280000000c00000002000000280000000c0000000300000021
+00000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c0000006400000000000000000000004703000061030000000000000000000048030000620300002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c000000
+10000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 8\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_D8E3C4BA_6572_49d4_91A1_0BDCEBC5343D}{\*\bkmkend BKM_D8E3C4BA_6572_49d4_91A1_0BDCEBC5343D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentsInterface}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw29981\pich36946\picwgoal16995\pichgoal20940\picscalex55\picscaley55\sspicalign0 010000006c000000f8ffffffffffffff5b0300002104000000000000000000001c7500005290000020454d4600000100a4080300a01e0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100e9fb5003e9fb5003ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff5203000019040000050000001000100010007041003570410035100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff9c00ecffa900faffa900ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000a90000001400000006000000
+10004001c0094001900a6000900a10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff9c00ecffa900faffa900ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffab000000160000000600000010004001c0094001900a6000900a10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7698ea1b24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300ba0a35003c859e1024a006a01c26f6e6edc59e102188d17
+010d3a0a3598ea1b244b006801c26f6e6e37bb40000d3a0a3570374b0ba8d56b0008000000000000000000000098c8612348004b0b5c014b0ba8ea1b24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000990000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000093000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+000000540000000801000006000000040000009a0000000f0000000100000000400d4200040dc206000000fcffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400730049006e0074006500720066006100630065000000060000000300000006000000060000000600000003000000
+050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000300000006000000030000000600000004000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c00000010000000000000
+0000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000c0c0000020410a4000c01c00000010000000c0bfc0ff010000001800dcfd65021202280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d0000
+0000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000770200002e020000050000002001c0012001e0227027e0227027c0012001c001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046
+0000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001800dcfd650212023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038000000
+00000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000008e02000045020000040000002001e0227027e0227027c0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000a841004008c40040194400800444bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001500dffd65021202250000000c00000008000080270000001800
+00000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f000000190000004d0100002b020000050000000f0019000f002b024d012b024d0119000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c
+0000000800008056000000300000004d010000190000005d0100002b020000050000004d0119004d012b025d012b025d0119004d011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c0000000800008056000000300000005d010000190000006d0100002b02000005000000
+5d0119005d012b026d012b026d0119005d011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c0000000800008056000000300000006d010000190000007c0100002b020000050000006d0119006d012b027c012b027c0119006d011900250000000c00000008000080250000
+000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000007c010000190000008a0100002b020000050000007c0119007c012b028a012b028a0119007c011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000f7ebda0000000000250000000c00000002000000250000000c0000000800008056000000300000008a010000190000009a0100002b020000050000008a0119008a012b029a012b029a0119008a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c0000000800008056
+000000300000009a01000019000000a90100002b020000050000009a0119009a012b02a9012b02a90119009a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000a901000019000000ba0100002b02000005000000a9011900a9012b02
+ba012b02ba011900a9011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c000000080000805600000030000000ba01000019000000c80100002b02000005000000ba011900ba012b02c8012b02c8011900ba011900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c000000080000805600000030000000c801000019000000d60100002b02000005000000c8011900c8012b02d6012b02d6011900c8011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d1000000
+0000250000000c00000002000000250000000c000000080000805600000030000000d601000019000000e70100002b02000005000000d6011900d6012b02e7012b02e7011900d6011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c000000080000805600000030000000e7
+01000019000000f30100002b02000005000000e7011900e7012b02f3012b02f3011900e7011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c000000080000805600000030000000f301000019000000fe0100002b02000005000000f3011900f3012b02fe012b02fe011900
+f3011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c000000080000805600000030000000fe010000190000000d0200002b02000005000000fe011900fe012b020d022b020d021900fe011900250000000c00000008000080250000000c00000000000080280000000c0000
+000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000000d020000190000001c0200002b020000050000000d0219000d022b021c022b021c0219000d021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00
+000002000000250000000c0000000800008056000000300000001c020000190000002d0200002b020000050000001c0219001c022b022d022b022d0219001c021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056000000300000002d0200001900000040
+0200002b020000050000002d0219002d022b0240022b02400219002d021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000004002000019000000520200002b020000050000004002190040022b0252022b02520219004002190025000000
+0c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c0000000800008056000000300000005202000019000000610200002b020000050000005202190052022b0261022b026102190052021900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000
+00180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c0000000800008056000000300000006102000019000000710200002b020000050000006102190061022b0271022b027102190061021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c000000020000002500
+00000c0000000800008056000000300000007102000019000000740200002b020000050000007102190071022b0274022b027402190071021900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000000000ff0b400040180000000c000000010000001500dffd650212023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c0000000500008056000000
+2c000000f8ffffff020000008b0200004202000004000000f000b0224027b02240279001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff005200
+00007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901093e0a849c58530bb296190100000000b8ea1b248ce3c577738c172646e0c5779401300b0000300b18
+8d1701093e0a8449006c01ce6f6e6ec457e10237bb4000093e0a84b8ea1b244a006a01ce6f6e6e9087a1263c5ce10270374b0b0000000008000000000000000000000098c8612348004b0b5c014b0bb8ea1b24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a2460df1b2401000000b0ea1b24dc57e10223e0c577
+b8ea1b243a6c2e7608654501b0ea1b24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000001f000000ebffffff71020000deffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000270100001f0000005c0100002b0000000100000000400d4200040d
+c22d010000ebffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00000006000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000060000000a00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76b8ea1b24
+08654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300be0a350081c58e1024a006601d06f6e6e3058e102188d1701093e0a85b8ea1b244b006801d06f6e6e37bb4000093e0a8570374b0ba8d56b0008000000a05ae1020000000098c8612348004b0b5c014b0ba8ea1b24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c5
+77f2e0c57746e0c577000000009087a126cf6f6e6e8814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000ac0000001c0100002c00000067010000370000000100000000400d4200040dc222010000deffffff100000004c00000000000000000000000000
+0000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e0074007300050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001500d2ff7a02d2ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff210000008b0200004f00000002000000f000800340278003250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000003e0000001d0000004a0000000100000000400d4200040dc21a000000cc
+ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000050010000250000003e000000e70000004a0000000100000000400d4200040d
+c22b000000ccffffff2b0000004c000000000000000000000000000000ffffffffffffffffa4000000670065007400560065007200730069006f006e002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f006900640000000600000006000000030000000700000006000000030000000400000003000000060000000600
+00000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff
+0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000004b0000001d000000570000000100000000400d4200040dc21a000000bfffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000054010000250000004b000000f4000000570000000100000000400d4200040dc22b000000bfffffff2c0000004c000000000000000000000000000000ffffffffffffffffa40000006700650074004c0061006e00670075006100670065002800540072006100660066
+006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f006900640006000000060000000300000006000000060000000600000006000000060000000600000006000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000
+060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000580000001d00
+0000640000000100000000400d4200040dc21a000000b2ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000b401000025000000
+5800000036010000640000000100000000400d4200040dc22b000000b2ffffff3c0000004c000000000000000000000000000000ffffffffffffffffc40000007300650074004c0061006e00670075006100670065002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200053007400720069006e0067002c00200053007400720069006e0067
+002900200020003a0076006f0069006400040000000600000003000000060000000600000006000000060000000600000006000000060000000600000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300
+0000070000000300000003000000030000000600000006000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c00000000404000540000005800000014000000650000001d000000710000000100000000400d4200040dc21a000000a5ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c00000000404000540000009001000025000000650000001e010000710000000100000000400d4200040dc22b000000a5ffffff360000004c000000000000000000000000000000ffffffffffffffffb8000000730065007400540069006d00650046006f0072006d00610074002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c
+00200053007400720069006e0067002900200020003a0076006f006900640004000000060000000300000007000000030000000900000006000000060000000600000003000000090000000600000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000
+06000000060000000600000003000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400
+00005800000014000000720000001d0000007e0000000100000000400d4200040dc21a00000098ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+00404000540000009001000025000000720000001b0100007e0000000100000000400d4200040dc22b00000098ffffff360000004c000000000000000000000000000000ffffffffffffffffb8000000730065007400440061007400650046006f0072006d00610074002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200053007400720069
+006e0067002900200020003a0076006f00690064000400000006000000030000000700000006000000030000000600000006000000060000000300000009000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600
+000003000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000
+7f0000001d0000008b0000000100000000400d4200040dc21a0000008bffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000a801
+0000250000007f000000300100008b0000000100000000400d4200040dc22b0000008bffffff3a0000004c000000000000000000000000000000ffffffffffffffffc00000007300650074004c0065006e0067007400680055006e00690074002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c0020004c0065006e0067007400680055006e0069
+0074002900200020003a0076006f006900640004000000060000000300000006000000060000000600000006000000030000000600000007000000060000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000
+0300000003000000030000000600000006000000060000000600000003000000060000000700000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040
+40005400000058000000140000008c0000001d000000980000000100000000400d4200040dc21a0000007effffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000000040400054000000a8010000250000008c00000030010000980000000100000000400d4200040dc22b0000007effffff3a0000004c000000000000000000000000000000ffffffffffffffffc000000073006500740057006500690067006800740055006e00690074002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000570065
+00690067006800740055006e00690074002900200020003a0076006f00690064000400000006000000030000000900000006000000030000000600000006000000030000000700000006000000030000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300
+00000600000006000000060000000300000003000000030000000900000006000000030000000600000006000000030000000700000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c00000000404000540000005800000014000000990000001d000000a50000000100000000400d4200040dc21a00000071ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000000040400054000000740100002500000099000000ff000000a50000000100000000400d4200040dc22b00000071ffffff310000004c000000000000000000000000000000ffffffffffffffffb00000006700650074004100700070006c00690063006100620069006c006900740079002800540072006100660066006900630049006e0063006900640065006e00740073004c0069
+007300740065006e00650072002900200020003a0076006f0069006400000006000000060000000300000007000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000
+0300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000a60000001d000000b200
+00000100000000400d4200040dc21a00000064ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000a401000025000000a6000000
+1f010000b20000000100000000400d4200040dc22b00000064ffffff390000004c000000000000000000000000000000ffffffffffffffffc00000007300650074004100700070006c00690063006100620069006c006900740079002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200053007400720069006e0067002900200020003a0076
+006f006900640000000400000006000000030000000700000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600
+000003000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000
+b30000001d000000bf0000000100000000400d4200040dc21a00000057ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000b001
+000025000000b30000002e010000bf0000000100000000400d4200040dc22b00000057ffffff3b0000004c000000000000000000000000000000ffffffffffffffffc40000007200650073006500720076006500490063006f006e005300650074004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200049006e007400650067
+00650072002900200020003a0076006f0069006400c577030000000600000004000000060000000300000005000000060000000300000005000000060000000600000007000000060000000300000003000000060000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000
+04000000030000000600000006000000060000000300000003000000030000000300000006000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c00000000404000540000005800000014000000c00000001d000000cc0000000100000000400d4200040dc21a0000004affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c00000000404000540000009c01000025000000c00000001f010000cc0000000100000000400d4200040dc22b0000004affffff380000004c000000000000000000000000000000ffffffffffffffffbc0000006600720065006500490063006f006e005300650074004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e0065
+0072002c00200049006e00740065006700650072002900200020003a0076006f006900640003000000030000000600000006000000030000000500000006000000060000000700000006000000030000000300000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300
+000004000000030000000600000006000000060000000300000003000000030000000300000006000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c00000000404000540000005800000014000000cd0000001d000000d90000000100000000400d4200040dc21a0000003dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c00000000404000540000005401000025000000cd000000ec000000d90000000100000000400d4200040dc22b0000003dffffff2c0000004c000000000000000000000000000000ffffffffffffffffa4000000670065007400490063006f006e0053006500740073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e006500720029
+00200020003a0076006f00690064000600000006000000030000000300000005000000060000000600000007000000060000000300000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000
+0300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000da0000001d000000e60000000100000000400d4200040dc21a00000030ffffff020000004c000000000000000000
+000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000c801000025000000da00000047010000e60000000100000000400d4200040dc22b00000030ffffff3f0000004c000000
+000000000000000000000000ffffffffffffffffcc000000610064006400490063006f006e0053006500740044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000490063006f006e005300650074002900200020003a0076006f00690064000000060000000600000006000000030000
+0005000000060000000600000007000000060000000300000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300
+000003000000030000000300000005000000060000000600000007000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000
+e70000001d000000f30000000100000000400d4200040dc21a00000023ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000d801
+000025000000e700000055010000f30000000100000000400d4200040dc22b00000023ffffff420000004c000000000000000000000000000000ffffffffffffffffd0000000720065006d006f0076006500490063006f006e0053006500740044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072
+002c00200049006e00740065006700650072002900200020003a0076006f0069006400030000000600000009000000060000000500000006000000030000000500000006000000060000000700000006000000030000000700000006000000030000000300000006000000030000000300000003000000060000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000
+0600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000006000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a00
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000f40000001d000000000100000100000000400d4200040dc21a00000016ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000bc01000025000000f400000036010000000100000100000000400d4200040dc22b00000016ffffff3d0000004c000000000000000000000000000000ffffffffffffffffc8000000670065007400490063006f006e0044006500660069006e006900740069006f006e0073
+002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000490063006f006e0049006e0066006f002900200020003a0076006f00690064004b0b060000000600000003000000030000000500000006000000060000000700000006000000030000000300000006000000030000000300000003000000060000000600000004000000030000000700
+000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000500000006000000060000000300000006000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a
+00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000010100001d0000000d0100000100000000400d4200040dc21a00000009ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000060000
+00030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000e00100002500000001010000550100000d0100000100000000400d4200040dc22b00000009ffffff430000004c000000000000000000000000000000ffffffffffffffffd400000061
+0064006400490063006f006e0044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000490063006f006e0044006500660069006e006900740069006f006e002900200020003a0076006f006900640000000600000006000000060000000300000005000000060000000600000007000000
+0600000003000000030000000600000003000000030000000300000006000000060000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000003000000050000000600000006000000070000
+0006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000000e
+0100001d0000001a0100000100000000400d4200040dc21a000000fcfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000cc0100
+00250000000e0100004a0100001a0100000100000000400d4200040dc22b000000fcfeffff400000004c000000000000000000000000000000ffffffffffffffffcc000000720065006d006f0076006500490063006f006e0044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c0020004900
+63006f006e0049006e0066006f002900200020003a0076006f00690064000300000006000000090000000600000005000000060000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006
+00000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000500000006000000060000000300000006000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000001b0100001d000000270100000100000000400d4200040dc21a000000effeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000b4010000250000001b01000034010000270100000100000000400d4200040dc22b000000effeffff3c0000004c000000000000000000000000000000ffffffffffffffffc40000007200650073006500720076006500430061007400650067006f0072007900490064007300280054007200610066006600
+6900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200049006e00740065006700650072002900200020003a0076006f00690064000300000006000000040000000600000003000000050000000600000007000000060000000300000006000000060000000600000003000000050000000300000006000000040000000300000007000000030000000600000003000000030000
+000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000006000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000280100001d000000340100000100000000400d4200040dc21a000000e2feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000b4010000250000002801000037010000340100000100000000400d4200040dc22b000000e2feffff3c0000004c000000000000000000000000000000ffffffffffffffffc40000006600720065006500430061007400650067006f007200
+79004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000430061007400650067006f0072007900490064002900200020003a0076006f0069006400030000000300000006000000060000000700000006000000030000000600000006000000060000000300000005000000030000000600000004000000030000000700000003
+0000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000006000000030000000600000006000000060000000300000005000000030000000600000003000000030000000300000003000000050000000600000003000000
+060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000350100001d000000410100000100000000400d4200040dc21a000000d5feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00
+200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000098010000250000003501000020010000410100000100000000400d4200040dc22b000000d5feffff370000004c000000000000000000000000000000ffffffffffffffff
+bc000000670065007400430061007400650067006f007200790044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f00690064004b0b060000000600000003000000070000000600000003000000060000000600000006000000030000000500000007000000060000
+0003000000030000000600000003000000030000000300000006000000060000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000003000000030000000500000006000000030000000600
+00000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000420100001d0000004e0100000100000000400d4200040dc21a000000c8feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000100200002500000042010000810100004e0100000100000000400d4200040dc22b000000c8feffff4b0000004c000000000000000000000000000000ffffffffffffffffe400
+0000610064006400430061007400650067006f007200790044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000430061007400650067006f007200790044006500660069006e006900740069006f006e002900200020003a0076006f0069006400300b06000000060000000600000007
+0000000600000003000000060000000600000006000000030000000500000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000
+0600000003000000030000000300000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000004f0100001d0000005b0100000100000000400d4200040dc21a000000bbfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a00000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f0010000250000004f0100006d0100005b0100000100000000400d4200040dc22b000000bbfeffff460000004c000000000000000000000000000000ffffffffffffffffd8000000720065006d006f0076006500430061007400650067006f007200790044006500660069006e006900740069006f006e
+0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000430061007400650067006f0072007900490064002900200020003a0076006f00690064000300000006000000090000000600000005000000060000000700000006000000030000000600000006000000060000000300000005000000070000000600000003000000030000000600
+0000030000000300000003000000060000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000070000000600000003000000060000000600000006000000030000000500000003
+0000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052030000
+4a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000005c0100001d000000680100000100000000400d4200040dc21a000000aefeff
+ff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002c020000250000005c01000095010000680100000100000000400d4200040dc22b
+000000aefeffff500000004c000000000000000000000000000000ffffffffffffffffec000000670065007400540072006100660066006900630049006e0063006900640065006e0074004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c0020005700610072006e0069006e0067004c006500760065006c002c00200043006100
+7400650067006f0072007900490064002900200020003a0076006f0069006400060000000600000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000
+0006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000900000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000300000003000000070000000600000003000000060000000600000006000000030000000500000003000000060000000300000003000000030000000300
+0000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000690100001d000000750100000100000000400d4200040dc21a000000a1feffff020000004c000000000000000000000000000000
+ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000bc02000025000000690100000d020000750100000100000000400d4200040dc22b000000a1feffff680000004c000000000000000000
+000000000000ffffffffffffffff1c010000670065007400540072006100660066006900630049006e0063006900640065006e00740049006400730049006e00410072006500610073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c0020005700610072006e0069006e0067004c006500760065006c002c002000430061007400650067006f
+0072007900490064002c002000520065006300740061006e00670075006c006100720041007200650061002900200020003a0076006f0069006400060000000600000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000004000000030000000600000007000000030000000600000006000000
+0400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000009000000060000000300000006000000030000000600000006000000060000000600000005000000060000000300000003000000030000
+0007000000060000000300000006000000060000000600000003000000050000000300000006000000030000000300000007000000060000000500000003000000060000000600000006000000060000000300000006000000030000000700000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000760100001d000000820100000100000000400d4200040dc21a00000094feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002c02000025000000760100008d010000820100000100000000400d4200040dc22b00000094feffff500000004c000000000000000000000000000000ffffffffffffffffec000000670065007400540072006100660066006900630049006e006300
+6900640065006e00740073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e007400490064002c00200042006f006f006c00650061006e002900200020003a0076006f0069006400060000000600000003000000070000000300000006000000030000000300000003
+0000000500000003000000060000000500000003000000060000000600000006000000030000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000007000000030000000600000003000000
+0300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000003000000030000000700000006000000060000000300000006000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000830100001d0000008f0100000100000000400d4200040dc21a00000087feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a00000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000a00200002500000083010000dd0100008f0100000100000000400d4200040dc22b00000087feffff630000004c000000000000000000000000000000ffffffffffffffff14010000670065007400540072006100660066006900630049006e0063006900640065006e00740073004600690065006c0064
+0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e007400490064002c002000540072006100660066006900630049006e0063006900640065006e0074004600690065006c0064002900200020003a0076006f0069006400e1020600000006000000030000000700
+0000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000006000000030000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003
+0000000600000006000000060000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000
+0300000006000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000900100001d0000009c0100000100000000400d420004
+0dc21a0000007afeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000001c0200002500000090010000810100009c01000001000000
+00400d4200040dc22b0000007afeffff4d0000004c000000000000000000000000000000ffffffffffffffffe8000000670065007400540065007800740073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e007400490064002c0020005400650078007400440065
+007400610069006c004c006500760065006c002900200020003a0076006f0069006400335306000000060000000300000007000000060000000500000003000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300
+0000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000070000000600000005000000030000000700000006000000030000000600000003000000030000000600000006000000050000000600000003000000030000000300000003000000030000000500000006
+00000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000009d0100001d000000a90100000100000000400d4200040dc21a0000006dfeffff020000004c000000000000000000000000000000ffffffffffffff
+ff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000074020000250000009d010000c4010000a90100000100000000400d4200040dc22b0000006dfeffff5c0000004c000000000000000000000000000000ff
+ffffffffffffff04010000610064006400540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e00740073004c006900
+7300740065006e00650072002900200020003a0076006f006900640006000000060000000600000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000300000006000000030000000600000004000000060000000300000004000000030000000600000006000000060000000300000003000000070000
+0003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600
+00000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000aa0100001d000000
+b60100000100000000400d4200040dc21a00000060feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000008802000025000000aa01
+0000d5010000b60100000100000000400d4200040dc22b00000060feffff5f0000004c000000000000000000000000000000ffffffffffffffff0c010000720065006d006f0076006500540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073
+004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f006900640000000300000006000000090000000600000005000000060000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000
+0300000004000000070000000300000006000000030000000600000004000000060000000300000004000000030000000600000006000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000
+000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000b70100001d000000c30100000100000000400d4200040dc21a00000053feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000004c02000025000000b7010000ad010000c30100000100000000400d4200040dc22b00000053feffff550000004c000000000000000000000000000000fffffffffffffffff8000000610064006400460065006500640049006e0066006f0072006d006100740069006f00
+6e004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f0069006400e1020600000006000000060000000600000006000000060000000600000003
+0000000600000003000000060000000300000009000000060000000300000003000000060000000600000006000000030000000400000003000000060000000600000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000
+0600000003000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000c40100001d000000d00100000100000000400d4200040dc21a00000046feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005c02000025000000c4010000be010000d00100000100000000400d4200040dc22b00000046feffff580000004c000000000000000000000000000000fffffffffffffffffc000000720065006d006f0076006500460065006500640049006e
+0066006f0072006d006100740069006f006e004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f00690064000300000006000000090000000600
+0000050000000600000006000000060000000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000006000000030000000400000003000000060000000600000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004
+0000000600000003000000040000000300000006000000060000000600000003000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000
+060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000d10100001d000000dd0100000100000000400d4200040dc21a00000039feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00
+200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000b002000025000000d101000001020000dd0100000100000000400d4200040dc22b00000039feffff660000004c000000000000000000000000000000ffffffffffffffff
+180100006100640064005500700064006100740065004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c0020005700610072006e0069006e0067004c006500760065006c002c002000430061007400650067006f0072007900490064002c002000540072006100660066006900630049006e006300690064
+0065006e00740073004c0069007300740065006e00650072002900200020003a0076006f0069006400060000000600000006000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600
+0000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000090000000600000003000000060000000300000006000000060000000600000006000000050000000600000003000000030000000300000007000000060000000300000006000000060000000600000003000000050000000300000006000000030000000300000007000000030000000600000003
+000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000de0100001d000000ea0100000100000000400d4200040dc21a0000002cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002802000025000000de01000092010000ea0100000100000000400d4200040dc22b0000002cfeffff4f0000004c000000000000000000000000000000ffffffffffffffffec000000720065006d006f00760065005500700064006100740065004c0069007300740065006e0065007200280054007200610066006600
+6900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f0069006400bf230300000006000000090000000600000005000000060000000700000006000000060000000600000003000000060000000600000003000000040000
+0003000000060000000600000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500
+0000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c00000000404000540000005800000014000000eb0100001d000000f70100000100000000400d4200040dc21a0000001ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c00000000404000540000003403000025000000eb01000070020000f70100000100000000400d4200040dc22b0000001ffeffff7c0000004c000000000000000000000000000000ffffffffffffffff44010000610064006400410072006500610073005500700064006100740065004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073
+004c0069007300740065006e00650072002c0020005700610072006e0069006e0067004c006500760065006c002c002000430061007400650067006f0072007900490064002c002000520065006300740061006e00670075006c006100720041007200650061002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f00
+6900640006000000060000000600000007000000030000000600000006000000040000000700000006000000060000000600000003000000060000000600000003000000040000000300000006000000060000000600000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000
+0004000000030000000600000006000000060000000300000003000000030000000900000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000300000003000000070000000600000003000000060000000600000006000000030000000500000003000000060000000300000003000000070000000600000005000000030000000600000006000000060000000600
+000003000000060000000300000007000000030000000600000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a
+00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000f80100001d000000040200000100000000400d4200040dc21a00000012feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000060000
+00030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000004402000025000000f8010000ac010000040200000100000000400d4200040dc22b00000012feffff540000004c000000000000000000000000000000fffffffffffffffff400000072
+0065006d006f0076006500410072006500610073005500700064006100740065004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900200020003a0076006f0069006400
+0300000006000000090000000600000005000000060000000700000003000000060000000600000004000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000
+0006000000030000000400000003000000060000000600000006000000030000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000003000000030000000500000006000000030000000600
+00000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000e60000fccb0027002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c
+00000001000000250000000c000000080000805600000030000000e0000000e3030000ab0100000a04000005000000000e303e000ea040b01aa040b01a303e000e303e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000
+000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000e60000fccb0027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c0000
+0004000000250000000c00000005000080560000002c000000c9000000cc030000c20100002104000004000000000ea040b01aa040b01a303e000e303e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b084002015800
+00004c0000000210c0db0400000004000000000000000000634300407fc400004b4300001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000e30003fccb002700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008
+0000805600000030000000dd000000e0030000470100000704000005000000dd00e003dd000704470107044701e003dd00e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000047010000e00300004c01000007040000050000004701e003
+470107044c0107044c01e0034701e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000004c010000e00300005101000007040000050000004c01e0034c010704510107045101e0034c01e003250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000051010000e00300005601000007040000050000005101e00351010704560107045601e0035101e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ed
+dc0000000000250000000c00000004000000250000000c00000008000080560000003000000056010000e00300005b01000007040000050000005601e003560107045b0107045b01e0035601e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030
+0000005b010000e00300006001000007040000050000005b01e0035b010704600107046001e0035b01e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000060010000e00300006501000007040000050000006001e0036001070465010704
+6501e0036001e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000065010000e00300006b01000007040000050000006501e003650107046b0107046b01e0036501e003250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000006b010000e00300007101000007040000050000006b01e0036b010704710107047101e0036b01e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d200000000002500
+00000c00000004000000250000000c00000008000080560000003000000071010000e00300007701000007040000050000007101e00371010704770107047701e0037101e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000077010000e0
+0300007c01000007040000050000007701e003770107047c0107047c01e0037701e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000007c010000e00300008101000007040000050000007c01e0037c010704810107048101e0037c01e003
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000081010000e00300008601000007040000050000008101e00381010704860107048601e0038101e003250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000086010000e00300008b01000007040000050000008601e003860107048b0107048b01e0038601e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c0000000400
+0000250000000c0000000800008056000000300000008b010000e00300009101000007040000050000008b01e0038b010704910107049101e0038b01e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000091010000e00300009701000007
+040000050000009101e00391010704970107049701e0039101e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000097010000e00300009d01000007040000050000009701e003970107049d0107049d01e0039701e003250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000009d010000e0030000a201000007040000050000009d01e0039d010704a2010704a201e0039d01e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000a2010000e0030000a70100000704000005000000a201e003a2010704a7010704a701e003a201e003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000a7010000e0030000a80100000704000005000000a701e003a7010704a8010704a801e003a701e003250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000000000ff0b400040180000000c00000001000000e30003fccb0027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000
+c6000000c9030000bf0100001e04000004000000d00d7040801a7040801a003ed00d003e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c000000000000001e00000018000000ed00000024fcffffa501000017fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000028010000e60300005d010000f20300000100000000400d4200040dc22e01000024fcffff0b0000004c000000000000000000000000000000ffffffffffffffff64
+000000ab0069006e007400650072006600610063006500bb00000006000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000dc00000009010000f30300007c010000fe0300000100000000400d4200040dc20f01000017fcffff180000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e006500720005000000040000000600
+00000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000600000006000000030000000600000003000000060000000600000006000000040000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01
+00000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e3000bfcae010bfc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000c6000000e8030000bf0100001604000002000000d00df03f801af03f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000ae028cff7000450024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a802000039000000180300007e0000000500
+0000802a9003802ae0078031e00780319003802a9003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001
+000000ae028cff700045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000091020000220000002f0300009500000004000000
+802ae0078031e00780319003802a9003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c02a440000e2c20000e04200008a42bed7e8ffe3f2fc
+ffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ab028fff70004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a502000036000000de0200007b00000005000000a5023600a5027b00de027b00de02
+3600a5023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c000000080000805600000030000000de02000036000000df0200007b00000005000000de023600de027b00df027b00df023600de023600250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000df02000036000000e00200007b00000005000000df023600df027b00e0027b00e0023600df023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e1000000000025000000
+0c00000004000000250000000c000000080000805600000030000000e002000036000000e10200007b00000005000000e0023600e0027b00e1027b00e1023600e0023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000e1020000360000
+00e20200007b00000005000000e1023600e1027b00e2027b00e2023600e1023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e202000036000000e30200007b00000005000000e2023600e2027b00e3027b00e3023600e20236002500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c000000080000805600000030000000e302000036000000e40200007b00000005000000e3023600e3027b00e4027b00e4023600e3023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000e402000036000000e50200007b00000005000000e4023600e4027b00e5027b00e5023600e4023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000
+250000000c000000080000805600000030000000e502000036000000e60200007b00000005000000e5023600e5027b00e6027b00e6023600e5023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000e602000036000000e70200007b0000
+0005000000e6023600e6027b00e7027b00e7023600e6023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000e702000036000000e80200007b00000005000000e7023600e7027b00e8027b00e8023600e7023600250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000e802000036000000e90200007b00000005000000e8023600e8027b00e9027b00e9023600e8023600250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000e902000036000000ea0200007b00000005000000e9023600e9027b00ea027b00ea023600e9023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c00000004000000250000000c000000
+080000805600000030000000ea02000036000000eb0200007b00000005000000ea023600ea027b00eb027b00eb023600ea023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000eb02000036000000ec0200007b00000005000000eb0236
+00eb027b00ec027b00ec023600eb023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000ec02000036000000ed0200007b00000005000000ec023600ec027b00ed027b00ed023600ec023600250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c000000080000805600000030000000ed02000036000000ee0200007b00000005000000ed023600ed027b00ee027b00ee023600ed023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6
+ead80000000000250000000c00000004000000250000000c000000080000805600000030000000ee02000036000000ef0200007b00000005000000ee023600ee027b00ef027b00ef023600ee023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000
+30000000ef02000036000000f00200007b00000005000000ef023600ef027b00f0027b00f0023600ef023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000f002000036000000f10200007b00000005000000f0023600f0027b00f1027b
+00f1023600f0023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c000000080000805600000030000000f102000036000000f20200007b00000005000000f1023600f1027b00f2027b00f2023600f1023600250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000f202000036000000f30200007b00000005000000f2023600f2027b00f3027b00f3023600f2023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d4000000000025
+0000000c00000004000000250000000c000000080000805600000030000000f302000036000000f40200007b00000005000000f3023600f3027b00f4027b00f4023600f3023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000f4020000
+36000000f50200007b00000005000000f4023600f4027b00f5027b00f5023600f4023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000f502000036000000f60200007b00000005000000f5023600f5027b00f6027b00f6023600f50236
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000f602000036000000f70200007b00000005000000f6023600f6027b00f7027b00f7023600f6023600250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000f702000036000000f80200007b00000005000000f7023600f7027b00f8027b00f8023600f7023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004
+000000250000000c000000080000805600000030000000f802000036000000f90200007b00000005000000f8023600f8027b00f9027b00f9023600f8023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000f902000036000000fa020000
+7b00000005000000f9023600f9027b00fa027b00fa023600f9023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000fa02000036000000fb0200007b00000005000000fa023600fa027b00fb027b00fb023600fa023600250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000fb02000036000000fc0200007b00000005000000fb023600fb027b00fc027b00fc023600fb023600250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000fc02000036000000fd0200007b00000005000000fc023600fc027b00fd027b00fd023600fc023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c
+000000080000805600000030000000fd02000036000000fe0200007b00000005000000fd023600fd027b00fe027b00fe023600fd023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000fe02000036000000ff0200007b00000005000000
+fe023600fe027b00ff027b00ff023600fe023600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ff02000036000000000300007b00000005000000ff023600ff027b0000037b0000033600ff023600250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000000003000036000000010300007b000000050000000003360000037b0001037b000103360000033600250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000000103000036000000020300007b000000050000000103360001037b0002037b000203360001033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056
+000000300000000203000036000000030300007b000000050000000203360002037b0003037b000303360002033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000000303000036000000040300007b000000050000000303360003037b00
+04037b000403360003033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000000403000036000000050300007b000000050000000403360004037b0005037b000503360004033600250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000000503000036000000060300007b000000050000000503360005037b0006037b000603360005033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec8000000
+0000250000000c00000004000000250000000c0000000800008056000000300000000603000036000000070300007b000000050000000603360006037b0007037b000703360006033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000007
+03000036000000080300007b000000050000000703360007037b0008037b000803360007033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000803000036000000090300007b000000050000000803360008037b0009037b0009033600
+08033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c00000008000080560000003000000009030000360000000a0300007b000000050000000903360009037b000a037b000a03360009033600250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000000a030000360000000c0300007b000000050000000a0336000a037b000c037b000c0336000a033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00
+000004000000250000000c0000000800008056000000300000000c030000360000000d0300007b000000050000000c0336000c037b000d037b000d0336000c033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000d030000360000000e
+0300007b000000050000000d0336000d037b000e037b000e0336000d033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000000e030000360000000f0300007b000000050000000e0336000e037b000f037b000f0336000e03360025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000000f03000036000000100300007b000000050000000f0336000f037b0010037b00100336000f033600250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000001003000036000000110300007b000000050000001003360010037b0011037b001103360010033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c000000040000002500
+00000c0000000800008056000000300000001103000036000000120300007b000000050000001103360011037b0012037b001203360011033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000001203000036000000130300007b00000005
+0000001203360012037b0013037b001303360012033600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c0000000800008056000000300000001303000036000000140300007b000000050000001303360013037b0014037b001403360013033600250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000001403000036000000150300007b000000050000001403360014037b0015037b001503360014033600250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c000000070000
+80460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ab028fff700045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800
+00000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008e0200001f0000002c0300009200000004000000502ab0075031b00750316003502a6003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000b5020000ceffffff12030000c1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000
+00b90200003c00000001030000480000000100000000400d4200040dc2bf020000ceffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000703060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b0000001000000000000000000000001600
+00000c000000000000004b0000001000000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000c302000049000000f7020000540000000100000000400d4200040dc2c9020000c1ffffff0a0000004c00000000000000
+0000000000000000ffffffffffffffff600000004c0065006e0067007400680055006e0069007400060000000600000006000000060000000300000006000000070000000600000003000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000
+00000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ab02afff1b03afff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008e020000440000002c0300007200000002000000502ab0055031b005250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000aa0200005f000000ad0200006b0000000100000000400d4200040dc2b0020000abffffff010000004c000000000000000000000000000000ffffffffffffff
+ff5000000020001b24030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a0000000bb0200005f000000110300006b0000000100000000400d4200040dc2c1020000abffffff0e0000004c000000000000000000000000000000ffffffffff
+ffffff680000004b0049004c004f004d004500540045005200530020003d002000310007000000030000000600000008000000090000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b0000005400000054000000aa0200006c000000ad020000780000000100000000400d4200040dc2b00200009effffff010000004c000000000000000000000000000000ffffffffffffffff500000002000c577030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b0000005400000084000000bb0200006c000000ed020000780000000100000000400d4200040dc2c10200009effffff090000004c000000000000000000000000000000ffffffffffffffff600000004d0049004c004500530020003d002000320061230900000003000000060000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c00000010000000
+0000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000c3022dff630045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000
+00bd0200009800000020030000dd00000005000000d02b8009d02bd00d0032d00d00328009d02b8009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000c0bfc0ff0b400040180000000c00000001000000c3022dff630045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a6
+0200008100000037030000f400000004000000d02bd00d0032d00d00328009d02b8009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000003044
+000050c30000c64200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000c00230ff63004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000ba02000095000000ed020000da0000
+0005000000ba029500ba02da00ed02da00ed029500ba029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000ed02000095000000ee020000da00000005000000ed029500ed02da00ee02da00ee029500ed029500250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000ee02000095000000ef020000da00000005000000ee029500ee02da00ef02da00ef029500ee029500250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000ef02000095000000f0020000da00000005000000ef029500ef02da00f002da00f0029500ef029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000
+080000805600000030000000f002000095000000f1020000da00000005000000f0029500f002da00f102da00f1029500f0029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c000000080000805600000030000000f102000095000000f2020000da00000005000000f10295
+00f102da00f202da00f2029500f1029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000f202000095000000f3020000da00000005000000f2029500f202da00f302da00f3029500f2029500250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000f302000095000000f5020000da00000005000000f3029500f302da00f502da00f5029500f3029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8
+eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000f502000095000000f6020000da00000005000000f5029500f502da00f602da00f6029500f5029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000
+30000000f602000095000000f7020000da00000005000000f6029500f602da00f702da00f7029500f6029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000f702000095000000f8020000da00000005000000f7029500f702da00f802da
+00f8029500f7029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000f802000095000000f9020000da00000005000000f8029500f802da00f902da00f9029500f8029500250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000f902000095000000fa020000da00000005000000f9029500f902da00fa02da00fa029500f9029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead8000000000025
+0000000c00000004000000250000000c000000080000805600000030000000fa02000095000000fb020000da00000005000000fa029500fa02da00fb02da00fb029500fa029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000fb020000
+95000000fd020000da00000005000000fb029500fb02da00fd02da00fd029500fb029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000fd02000095000000fe020000da00000005000000fd029500fd02da00fe02da00fe029500fd0295
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000fe02000095000000ff020000da00000005000000fe029500fe02da00ff02da00ff029500fe029500250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000ff0200009500000000030000da00000005000000ff029500ff02da000003da0000039500ff029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004
+000000250000000c000000080000805600000030000000000300009500000001030000da00000005000000000395000003da000103da000103950000039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000010300009500000002030000
+da00000005000000010395000103da000203da000203950001039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000020300009500000004030000da00000005000000020395000203da000403da000403950002039500250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000040300009500000005030000da00000005000000040395000403da000503da000503950004039500250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000050300009500000006030000da00000005000000050395000503da000603da000603950005039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c
+000000080000805600000030000000060300009500000007030000da00000005000000060395000603da000703da000703950006039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000070300009500000008030000da00000005000000
+070395000703da000803da000803950007039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000080300009500000009030000da00000005000000080395000803da000903da000903950008039500250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000009030000950000000a030000da00000005000000090395000903da000a03da000a03950009039500250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000000a030000950000000c030000da000000050000000a0395000a03da000c03da000c0395000a039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056
+000000300000000c030000950000000d030000da000000050000000c0395000c03da000d03da000d0395000c039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000000d030000950000000e030000da000000050000000d0395000d03da00
+0e03da000e0395000d039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000000e030000950000000f030000da000000050000000e0395000e03da000f03da000f0395000e039500250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000000f0300009500000010030000da000000050000000f0395000f03da001003da00100395000f039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec8000000
+0000250000000c00000004000000250000000c000000080000805600000030000000100300009500000011030000da00000005000000100395001003da001103da001103950010039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000011
+0300009500000012030000da00000005000000110395001103da001203da001203950011039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000120300009500000013030000da00000005000000120395001203da001303da0013039500
+12039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000130300009500000015030000da00000005000000130395001303da001503da001503950013039500250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000150300009500000016030000da00000005000000150395001503da001603da001603950015039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00
+000004000000250000000c000000080000805600000030000000160300009500000017030000da00000005000000160395001603da001703da001703950016039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000170300009500000018
+030000da00000005000000170395001703da001803da001803950017039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000180300009500000019030000da00000005000000180395001803da001903da00190395001803950025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000019030000950000001a030000da00000005000000190395001903da001a03da001a03950019039500250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000001a030000950000001c030000da000000050000001a0395001a03da001c03da001c0395001a039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c000000040000002500
+00000c0000000800008056000000300000001c030000950000001d030000da000000050000001c0395001c03da001d03da001d0395001c039500250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000000000ff0b400040180000000c00000001000000c00230ff630045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008056000000
+2c000000a30200007e00000034030000f100000004000000a02ba00dd031a00dd0315009a02b5009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c000000000000001e00000018000000ca0200006fffffff1a03000062ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000c80200009b00000010030000a70000000100000000400d4200040dc2ce0200006fffffff0d0000004c000000000000000000000000000000ffffffffff
+ffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000060000000a0000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a0000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000d2020000a800000006030000b30000000100000000400d4200040dc2d802000062ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000057006500690067006800740055006e006900740009000000060000000300000006000000060000000300
+0000070000000600000003000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c00250ff230350ff00010101154001001000000004
+000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000
+04000000250000000c000000050000805700000024000000a3020000a300000034030000d100000002000000a02ba00bd031a00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000bf020000be000000c2020000ca0000000100000000400d4200040dc2c50200004cffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000094000000d0020000be00000019030000ca0000000100000000400d4200040dc2d60200004cffffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004b0049004c004f004700520041004d0020003d002000310007000000030000000600000008000000080000000700000007000000090000
+00030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000bf020000cb000000c2020000d70000000100000000400d4200040dc2c50200003fffffff010000004c000000000000000000000000000000ff
+ffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000084000000d0020000cb00000006030000d70000000100000000400d4200040dc2d60200003fffffff090000004c0000000000000000000000000000
+00ffffffffffffffff6000000050004f0055004e00440020003d002000320000000700000008000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005802bbfc870045002100000008000000620000000c000000010000001100
+00000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000520200000a030000d90200004f030000050000002025a0302025f034902df034902da0302025a030250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005802bbfc870045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003b020000f3020000f002000066030000040000002025f034902df034902da0302025a030250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000401544008050c40000074300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+00005502befc87004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000004f02000007030000960200004c030000050000004f0207034f024c0396024c03960207034f020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000009602000007030000990200004c030000050000009602070396024c0399024c039902070396020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080
+560000003000000099020000070300009d0200004c030000050000009902070399024c039d024c039d02070399020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009d02000007030000a10200004c030000050000009d0207039d024c
+03a1024c03a10207039d020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000a102000007030000a50200004c03000005000000a1020703a1024c03a5024c03a5020703a1020703250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000a502000007030000a80200004c03000005000000a5020703a5024c03a8024c03a8020703a5020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000
+000000250000000c00000004000000250000000c000000080000805600000030000000a802000007030000ab0200004c03000005000000a8020703a8024c03ab024c03ab020703a8020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000
+ab02000007030000b00200004c03000005000000ab020703ab024c03b0024c03b0020703ab020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000b002000007030000b30200004c03000005000000b0020703b0024c03b3024c03b30207
+03b0020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000b302000007030000b60200004c03000005000000b3020703b3024c03b6024c03b6020703b3020703250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b602000007030000b90200004c03000005000000b6020703b6024c03b9024c03b9020703b6020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c
+00000004000000250000000c000000080000805600000030000000b902000007030000bc0200004c03000005000000b9020703b9024c03bc024c03bc020703b9020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000bc02000007030000
+c00200004c03000005000000bc020703bc024c03c0024c03c0020703bc020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000c002000007030000c30200004c03000005000000c0020703c0024c03c3024c03c3020703c0020703250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c302000007030000c70200004c03000005000000c3020703c3024c03c7024c03c7020703c3020703250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000c702000007030000cb0200004c03000005000000c7020703c7024c03cb024c03cb020703c7020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c0000000400000025
+0000000c000000080000805600000030000000cb02000007030000cf0200004c03000005000000cb020703cb024c03cf024c03cf020703cb020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000007030000d20200004c030000
+05000000cf020703cf024c03d2024c03d2020703cf020703250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000d202000007030000d60200004c03000005000000d2020703d2024c03d6024c03d6020703d2020703250000000c000000080000
+80250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005502befc870045003a0000000c0000000a00000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000038020000f0020000ed0200006303000004000000f024c034602dc034602d7030f0247030250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b80000006602000010030000bf0200001b0300000100000000400d4200040dc26c020000fafcffff120000
+004c000000000000000000000000000000ffffffffffffffff70000000430061007400650067006f007200790044006500660069006e006900740069006f006e000700000006000000030000000600000006000000060000000400000005000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a00000010000000060000000a0000000c00000010000000000000000000
+0000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005502e8fcdc02e8fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000
+000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000380200000b030000ed0200003903000002000000f0242032
+602d2032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000540200002603
+00005d020000320300000100000000400d4200040dc25a020000e4fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000
+6502000026030000d2020000320300000100000000400d4200040dc26b020000e4fcffff170000004c000000000000000000000000000000ffffffffffffffff7c000000630061007400650067006f007200790049006400200020003a00430061007400650067006f0072007900490064006123050000000600000003000000060000000600000006000000030000000500000003000000060000000300000003000000030000
+00070000000600000003000000060000000600000006000000030000000500000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000054020000330300005d0200003f0300000100000000400d4200040dc25a020000d7
+fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000006502000033030000bb0200003f0300000100000000400d4200040d
+c26b020000d7fcffff130000004c000000000000000000000000000000ffffffffffffffff74000000650078007000720065007300730069006f006e00200020003a0053007400720069006e0067001b24060000000500000006000000030000000600000004000000040000000300000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a000000100000000600
+00000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000220215fc7d0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c
+0000000800008056000000300000001c020000b003000099020000f503000005000000c021003bc021503f9029503f9029003bc021003b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000
+01000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000220215fc7d0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000
+0005000080560000002c0000000502000099030000b00200000c04000004000000c021503f9029503f9029003bc021003b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400
+0000040000000000000000c0074400007ac40000fa4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001f0218fc7d004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000019
+020000ad03000059020000f2030000050000001902ad031902f2035902f2035902ad031902ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000059020000ad0300005a020000f2030000050000005902ad035902f2035a02f2035a02ad03
+5902ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000005a020000ad0300005c020000f2030000050000005a02ad035a02f2035c02f2035c02ad035a02ad03250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000005c020000ad0300005d020000f2030000050000005c02ad035c02f2035d02f2035d02ad035c02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00
+000004000000250000000c0000000800008056000000300000005d020000ad0300005e020000f2030000050000005d02ad035d02f2035e02f2035e02ad035d02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000005e020000ad0300005f
+020000f2030000050000005e02ad035e02f2035f02f2035f02ad035e02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000005f020000ad03000061020000f2030000050000005f02ad035f02f2036102f2036102ad035f02ad0325000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000061020000ad03000063020000f2030000050000006102ad036102f2036302f2036302ad036102ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000063020000ad03000064020000f2030000050000006302ad036302f2036402f2036402ad036302ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c000000040000002500
+00000c00000008000080560000003000000064020000ad03000065020000f2030000050000006402ad036402f2036502f2036502ad036402ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000065020000ad03000066020000f203000005
+0000006502ad036502f2036602f2036602ad036502ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000066020000ad03000067020000f2030000050000006602ad036602f2036702f2036702ad036602ad03250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000067020000ad03000068020000f2030000050000006702ad036702f2036802f2036802ad036702ad03250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000068020000ad03000069020000f2030000050000006802ad036802f2036902f2036902ad036802ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800
+0080560000003000000069020000ad0300006a020000f2030000050000006902ad036902f2036a02f2036a02ad036902ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000006a020000ad0300006c020000f2030000050000006a02ad036a
+02f2036c02f2036c02ad036a02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000006c020000ad0300006d020000f2030000050000006c02ad036c02f2036d02f2036d02ad036c02ad03250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000006d020000ad0300006e020000f2030000050000006d02ad036d02f2036e02f2036e02ad036d02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d6
+0000000000250000000c00000004000000250000000c0000000800008056000000300000006e020000ad0300006f020000f2030000050000006e02ad036e02f2036f02f2036f02ad036e02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000
+00006f020000ad03000070020000f2030000050000006f02ad036f02f2037002f2037002ad036f02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000070020000ad03000071020000f2030000050000007002ad037002f2037102f20371
+02ad037002ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000071020000ad03000072020000f2030000050000007102ad037102f2037202f2037202ad037102ad03250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000072020000ad03000073020000f2030000050000007202ad037202f2037302f2037302ad037202ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000
+000c00000004000000250000000c00000008000080560000003000000073020000ad03000074020000f2030000050000007302ad037302f2037402f2037402ad037302ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000074020000ad03
+000076020000f2030000050000007402ad037402f2037602f2037602ad037402ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000076020000ad03000078020000f2030000050000007602ad037602f2037802f2037802ad037602ad0325
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000078020000ad03000079020000f2030000050000007802ad037802f2037902f2037902ad037802ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000079020000ad0300007a020000f2030000050000007902ad037902f2037a02f2037a02ad037902ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c000000040000
+00250000000c0000000800008056000000300000007a020000ad0300007b020000f2030000050000007a02ad037a02f2037b02f2037b02ad037a02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000007b020000ad0300007c020000f203
+0000050000007b02ad037b02f2037c02f2037c02ad037b02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000007c020000ad0300007d020000f2030000050000007c02ad037c02f2037d02f2037d02ad037c02ad03250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000007d020000ad0300007e020000f2030000050000007d02ad037d02f2037e02f2037e02ad037d02ad03250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000007e020000ad03000080020000f2030000050000007e02ad037e02f2038002f2038002ad037e02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000
+0008000080560000003000000080020000ad03000081020000f2030000050000008002ad038002f2038102f2038102ad038002ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000081020000ad03000083020000f2030000050000008102
+ad038102f2038302f2038302ad038102ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000083020000ad03000085020000f2030000050000008302ad038302f2038502f2038502ad038302ad03250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000085020000ad03000086020000f2030000050000008502ad038502f2038602f2038602ad038502ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000086020000ad03000088020000f2030000050000008602ad038602f2038802f2038802ad038602ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000
+003000000088020000ad03000089020000f2030000050000008802ad038802f2038902f2038902ad038802ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c00000008000080560000003000000089020000ad0300008a020000f2030000050000008902ad038902f2038a02
+f2038a02ad038902ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000008a020000ad0300008c020000f2030000050000008a02ad038a02f2038c02f2038c02ad038a02ad03250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000008c020000ad0300008d020000f2030000050000008c02ad038c02f2038d02f2038d02ad038c02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000
+250000000c00000004000000250000000c0000000800008056000000300000008d020000ad0300008e020000f2030000050000008d02ad038d02f2038e02f2038e02ad038d02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000008e0200
+00ad0300008f020000f2030000050000008e02ad038e02f2038f02f2038f02ad038e02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000008f020000ad03000090020000f2030000050000008f02ad038f02f2039002f2039002ad038f02
+ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000090020000ad03000091020000f2030000050000009002ad039002f2039102f2039102ad039002ad03250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000091020000ad03000093020000f2030000050000009102ad039102f2039302f2039302ad039102ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c000000
+04000000250000000c00000008000080560000003000000093020000ad03000094020000f2030000050000009302ad039302f2039402f2039402ad039302ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000094020000ad030000950200
+00f2030000050000009402ad039402f2039502f2039502ad039402ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000095020000ad03000096020000f2030000050000009502ad039502f2039602f2039602ad039502ad03250000000c00
+000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001f0218fc7d0045003a0000000c0000000a00000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000202000096030000ad02000009040000040000009021203f6029203f6029d03a9021d03a250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000002f020000b603000080020000c10300000100000000400d4200040dc23502000054fc
+ffff110000004c000000000000000000000000000000ffffffffffffffff70000000690063006f006e007300650074003a003a00490063006f006e0049006e0066006f004b0b03000000060000000600000006000000060000000600000003000000030000000300000003000000060000000600000006000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000
+000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001f0242fc9c0242fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000
+00000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000002020000b1030000ad020000df03000002000000902180
+3c6029803c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000001e020000cc
+03000027020000d80300000100000000400d4200040dc2240200003efcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000
+002f020000cc03000092020000d80300000100000000400d4200040dc2350200003efcffff150000004c000000000000000000000000000000ffffffffffffffff78000000690063006f006e0053006500740049006400200020003a00490063006f006e00530065007400490064004b0b030000000500000006000000060000000700000006000000030000000300000006000000030000000300000003000000030000000500
+0000060000000600000007000000060000000300000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000001e020000d903000027020000e50300000100000000400d4200040dc22402000031fcffff020000004c000000
+000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000002f020000d903000072020000e50300000100000000400d4200040dc23502000031fcffff0f00
+00004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e0049006400200020003a00490063006f006e0049006400ffff0300000005000000060000000600000003000000060000000300000003000000030000000300000005000000060000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c0000002000000045
+4d462b0a4000c01c00000010000000c0bfc0ff01000000b10215fc950045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ab020000b003000040030000f503000005000000
+b02a003bb02a503f0034503f0034003bb02a003b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000
+00b10215fc950045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000009402000099030000570300000c04000004000000b02a
+503f0034503f0034003bb02a003b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000802b4400007ac40000154300008a42bed7e8ffe3f2fcffbe
+d7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ae0218fc95004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a8020000ad030000f6020000f203000005000000a802ad03a802f203f602f203f602ad03
+a802ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000f6020000ad030000fa020000f203000005000000f602ad03f602f203fa02f203fa02ad03f602ad03250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000fa020000ad030000fe020000f203000005000000fa02ad03fa02f203fe02f203fe02ad03fa02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00
+000004000000250000000c000000080000805600000030000000fe020000ad03000002030000f203000005000000fe02ad03fe02f2030203f2030203ad03fe02ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000002030000ad03000007
+030000f2030000050000000203ad030203f2030703f2030703ad030203ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c00000008000080560000003000000007030000ad0300000a030000f2030000050000000703ad030703f2030a03f2030a03ad030703ad0325000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000000a030000ad0300000e030000f2030000050000000a03ad030a03f2030e03f2030e03ad030a03ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000000e030000ad03000012030000f2030000050000000e03ad030e03f2031203f2031203ad030e03ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c000000040000002500
+00000c00000008000080560000003000000012030000ad03000017030000f2030000050000001203ad031203f2031703f2031703ad031203ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000017030000ad0300001b030000f203000005
+0000001703ad031703f2031b03f2031b03ad031703ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000001b030000ad0300001e030000f2030000050000001b03ad031b03f2031e03f2031e03ad031b03ad03250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000001e030000ad03000021030000f2030000050000001e03ad031e03f2032103f2032103ad031e03ad03250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000021030000ad03000024030000f2030000050000002103ad032103f2032403f2032403ad032103ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800
+0080560000003000000024030000ad03000028030000f2030000050000002403ad032403f2032803f2032803ad032403ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000028030000ad0300002c030000f2030000050000002803ad0328
+03f2032c03f2032c03ad032803ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000002c030000ad03000031030000f2030000050000002c03ad032c03f2033103f2033103ad032c03ad03250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000031030000ad03000035030000f2030000050000003103ad033103f2033503f2033503ad033103ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac2
+0000000000250000000c00000004000000250000000c00000008000080560000003000000035030000ad03000039030000f2030000050000003503ad033503f2033903f2033903ad033503ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000
+000039030000ad0300003d030000f2030000050000003903ad033903f2033d03f2033d03ad033903ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b40004018
+0000000c00000001000000ae0218fc950045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000910200009603000054030000
+0904000004000000802a203fd033203fd033d03a802ad03a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00
+00000000000054000000d8000000b5020000b603000031030000c10300000100000000400d4200040dc2bb02000054fcffff170000004c000000000000000000000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a004c006f00630061006c0069007a006500640053007400720069006e006700000106000000060000000900000009000000060000000600000003000000030000000600000006
+000000060000000600000003000000030000000500000006000000060000000700000003000000040000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000
+180000000210c0db0200000000400000ae0242fc430342fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000
+0000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000091020000b103000054030000df03000002000000802a803cd033803c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c00
+00000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ad020000cc030000b6020000d80300000100000000400d4200040dc2b30200003efcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000
+060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000be020000cc03000029030000d80300000100000000400d4200040dc2c40200003efcffff150000004c000000000000000000000000000000ffffffffffffffff780000006c0061006e006700750061006700
+650043006f0064006500200020003a0053007400720069006e00670000000300000006000000060000000600000006000000060000000600000006000000070000000600000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ad020000d9030000b6020000e50300000100000000400d4200040dc2b302000031fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f0000000be020000d903000039030000e50300000100000000400d4200040dc2c402000031fcffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000063006f0075006e0074007200790043006f0064006500200020003a0053007400720069006e00670020005b0030002e002e0031005d
+00e1020500000006000000060000000600000003000000030000000500000007000000060000000600000006000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ad020000e6030000b6020000f20300000100000000400d4200040dc2b302000024fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000be020000e6030000fc020000f20300000100000000400d4200040dc2c402000024fcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000073007400720069006e006700200020003a0053007400720069006e006700e102040000000300000003000000030000000600000006000000
+0300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000ad029bfe830061002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000
+000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a70200000e0100002a0300006f01000005000000702ae010702af016a032f016a032e010702ae010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000ad029bfe830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+2101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000090020000f7000000410300008601000004000000702af016a032f016a032e010702ae010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000802a440000b1c3000003430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000aa029efe83006100250000000c000000080000802700000018000000040000
+0000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a40200000b010000e80200006c01000005000000a4020b01a4026c01e8026c01e8020b01a4020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800
+00805600000030000000e80200000b010000ec0200006c01000005000000e8020b01e8026c01ec026c01ec020b01e8020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ec0200000b010000ef0200006c01000005000000ec020b01ec
+026c01ef026c01ef020b01ec020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ef0200000b010000f20200006c01000005000000ef020b01ef026c01f2026c01f2020b01ef020b01250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000f20200000b010000f50200006c01000005000000f2020b01f2026c01f5026c01f5020b01f2020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda
+0000000000250000000c00000004000000250000000c000000080000805600000030000000f50200000b010000f90200006c01000005000000f5020b01f5026c01f9026c01f9020b01f5020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000
+0000f90200000b010000fc0200006c01000005000000f9020b01f9026c01fc026c01fc020b01f9020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000fc0200000b010000000300006c01000005000000fc020b01fc026c0100036c0100
+030b01fc020b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000000300000b010000040300006c0100000500000000030b0100036c0104036c0104030b0100030b01250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000040300000b010000080300006c0100000500000004030b0104036c0108036c0108030b0104030b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000
+000c00000004000000250000000c000000080000805600000030000000080300000b0100000b0300006c0100000500000008030b0108036c010b036c010b030b0108030b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000000b0300000b01
+00000e0300006c010000050000000b030b010b036c010e036c010e030b010b030b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000000e0300000b010000110300006c010000050000000e030b010e036c0111036c0111030b010e030b0125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000110300000b010000150300006c0100000500000011030b0111036c0115036c0115030b0111030b01250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000150300000b010000180300006c0100000500000015030b0115036c0118036c0118030b0115030b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c000000040000
+00250000000c000000080000805600000030000000180300000b0100001c0300006c0100000500000018030b0118036c011c036c011c030b0118030b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000001c0300000b010000200300006c01
+0000050000001c030b011c036c0120036c0120030b011c030b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000200300000b010000230300006c0100000500000020030b0120036c0123036c0123030b0120030b01250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000230300000b010000270300006c0100000500000023030b0123036c0127036c0127030b0123030b01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c000000
+07000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000aa029efe830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+00380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008d020000f40000003e0300008301000004000000402ac0167032c0167032b010402ab010250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000b4020000f9feffff24030000ecfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000
+9c000000c2020000110100000a0300001d0100000100000000400d4200040dc2c8020000f9feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00c577060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b0000001000000000000000000000
+00160000000c000000000000004b0000001000000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c000000d40200001e010000f8020000290100000100000000400d4200040dc2da020000ecfeffff080000004c00000000
+0000000000000000000000ffffffffffffffff5c0000007300740061007400750073003a003a0006000000030000000600000003000000060000000600000003000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e4000000a80200
+002b01000024030000360100000100000000400d4200040dc2ae020000dffeffff190000004c000000000000000000000000000000ffffffffffffffff80000000540072006100660066006900630049006e0063006900640065006e007400460065006500640053007400610074007500730092000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600
+00000600000003000000060000000600000006000000060000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000001800000002
+10c0db0200000000400000aa02cdfe2d03cdfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008d020000260100003e0300005401000002000000402ad0137032d013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000
+00220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a902000041010000ac0200004d0100000100000000400d4200040dc2af020000c9feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000af26030000000a00000010000000060000000a0000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000ba02000041010000130300004d0100000100000000400d4200040dc2c0020000c9feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020
+003d00200031004b0b0700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a90200004e
+010000ac0200005a0100000100000000400d4200040dc2af020000bcfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006e6e030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000ba0200
+004e0100000c0300005a0100000100000000400d4200040dc2c0020000bcfeffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000043004f004e004e004500430054004500440020003d00200032001000070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a90200005b010000ac020000670100000100000000400d4200040dc2af020000affeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000ba0200005b0100001d030000670100000100000000400d4200040dc2c0020000affeffff100000004c000000000000000000000000000000ffffffffffffffff6c00000044004900530043004f004e004e00450043005400450044002000
+3d0020003300070000000300000007000000070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000ac0229fe940054002100000008000000620000000c0000000100000011
+0000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a60200008d0100003a030000e101000005000000602ad018602a101ea033101ea033d018602ad018250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000ac0229fe940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000000000
+00020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008f0200007601000051030000f801000004000000602a101ea033101ea033d018602ad018250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000402a440000eac3000014430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001
+000000a9022cfe94005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a30200008a010000f0020000de01000005000000a3028a01a302de01f002de01f0028a01a3028a01250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000f00200008a010000f4020000de01000005000000f0028a01f002de01f402de01f4028a01f0028a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000
+805600000030000000f40200008a010000f8020000de01000005000000f4028a01f402de01f802de01f8028a01f4028a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000f80200008a010000fd020000de01000005000000f8028a01f802
+de01fd02de01fd028a01f8028a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000fd0200008a01000001030000de01000005000000fd028a01fd02de010103de0101038a01fd028a01250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000010300008a01000005030000de0100000500000001038a010103de010503de0105038a0101038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d700
+00000000250000000c00000004000000250000000c000000080000805600000030000000050300008a01000008030000de0100000500000005038a010503de010803de0108038a0105038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000
+00080300008a0100000d030000de0100000500000008038a010803de010d03de010d038a0108038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000000d0300008a01000011030000de010000050000000d038a010d03de011103de011103
+8a010d038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000110300008a01000015030000de0100000500000011038a011103de011503de0115038a0111038a01250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000150300008a01000018030000de0100000500000015038a011503de011803de0118038a0115038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce000000000025000000
+0c00000004000000250000000c000000080000805600000030000000180300008a0100001b030000de0100000500000018038a011803de011b03de011b038a0118038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000001b0300008a0100
+001f030000de010000050000001b038a011b03de011f03de011f038a011b038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000001f0300008a01000022030000de010000050000001f038a011f03de012203de0122038a011f038a012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000220300008a01000026030000de0100000500000022038a012203de012603de0126038a0122038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000260300008a0100002b030000de0100000500000026038a012603de012b03de012b038a0126038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000
+250000000c0000000800008056000000300000002b0300008a0100002f030000de010000050000002b038a012b03de012f03de012f038a012b038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000002f0300008a01000033030000de0100
+00050000002f038a012f03de013303de0133038a012f038a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000330300008a01000037030000de0100000500000033038a013303de013703de0137038a0133038a01250000000c0000000800
+0080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000a9022cfe940054003a0000000c0000000a00000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008c020000730100004e030000f501000004000000302ae01d7033e01d7033a018302aa018250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000b30200007afeffff340300006dfeffff160000000c00000001000000120000000c0000000100
+00001b000000100000000000000000000000160000000c00000000000000540000009c000000c902000090010000110300009c0100000100000000400d4200040dc2cf0200007afeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003
+000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000000010000a60200009d010000340300
+00a80100000100000000400d4200040dc2ac0200006dfeffff1e0000004c000000000000000000000000000000ffffffffffffffff880000007300740061007400750073003a003a00540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073000600000003000000060000000300000006000000060000000300000003000000050000000400000006000000030000000300
+000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000000000ff0840010324000000180000000210c0db0200000000400000a9025bfe3d035bfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000
+3800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008c020000980100004e030000c601000002000000302af01a7033f01a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a8020000b3010000ab020000bf0100000100000000400d4200040dc2ae02000057feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003
+0000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000b9020000b301000012030000bf0100000100000000400d4200040dc2bf02000057feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e
+0041005600410049004c00410042004c00450020003d002000310000630700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000054000000a8020000c0010000ab020000cc0100000100000000400d4200040dc2ae0200004afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000028030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000c4000000b9020000c001000033030000cc0100000100000000400d4200040dc2bf0200004afeffff140000004c000000000000000000000000000000ffffffffffffffff7400000050004100520054004c0059005f0041005600410049004c00410042004c00450020003d0020003200070000000700000007000000070000000600000007000000060000000700000007000000070000000300
+00000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a8020000cd010000ab020000d90100000100000000400d4200040dc2ae0200003dfeffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000b9020000cd01000004030000d90100000100000000400d4200040dc2bf0200003dfe
+ffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000041005600410049004c00410042004c00450020003d00200033000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c
+00000010000000c0bfc0ff01000000460248fde90064002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000400200005e02000029030000c2020000050000000024e0250024202c
+9032202c9032e0250024e025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000460248fde90064
+003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000290200004702000040030000d9020000040000000024202c9032202c9032
+e0250024e025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c0104400402dc4000069430000c842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03
+000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000043024bfde9006400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000003d0200005b020000b6020000bf020000050000003d025b023d02bf02b602bf02b6025b023d025b0225000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000b60200005b020000bc020000bf02000005000000b6025b02b602bf02bc02bf02bc025b02b6025b02250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000bc0200005b020000c2020000bf02000005000000bc025b02bc02bf02c202bf02c2025b02bc025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c000000040000002500
+00000c000000080000805600000030000000c20200005b020000c8020000bf02000005000000c2025b02c202bf02c802bf02c8025b02c2025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000c80200005b020000cd020000bf02000005
+000000c8025b02c802bf02cd02bf02cd025b02c8025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000cd0200005b020000d4020000bf02000005000000cd025b02cd02bf02d402bf02d4025b02cd025b02250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000d40200005b020000d9020000bf02000005000000d4025b02d402bf02d902bf02d9025b02d4025b02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000d90200005b020000e0020000bf02000005000000d9025b02d902bf02e002bf02e0025b02d9025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800
+00805600000030000000e00200005b020000e7020000bf02000005000000e0025b02e002bf02e702bf02e7025b02e0025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e70200005b020000ee020000bf02000005000000e7025b02e7
+02bf02ee02bf02ee025b02e7025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000ee0200005b020000f4020000bf02000005000000ee025b02ee02bf02f402bf02f4025b02ee025b02250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000f40200005b020000f9020000bf02000005000000f4025b02f402bf02f902bf02f9025b02f4025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc
+0000000000250000000c00000004000000250000000c000000080000805600000030000000f90200005b020000ff020000bf02000005000000f9025b02f902bf02ff02bf02ff025b02f9025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000ff0200005b02000005030000bf02000005000000ff025b02ff02bf020503bf0205035b02ff025b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000050300005b0200000b030000bf0200000500000005035b020503bf020b03bf020b
+035b0205035b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000b0300005b02000013030000bf020000050000000b035b020b03bf021303bf0213035b020b035b02250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000130300005b02000019030000bf0200000500000013035b021303bf021903bf0219035b0213035b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000
+000c00000004000000250000000c000000080000805600000030000000190300005b0200001f030000bf0200000500000019035b021903bf021f03bf021f035b0219035b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000001f0300005b02
+000025030000bf020000050000001f035b021f03bf022503bf0225035b021f035b02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000250300005b02000026030000bf0200000500000025035b022503bf022603bf0226035b0225035b0225
+0000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000043024bfde90064003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000026020000440200003d030000d602000004000000d023f02b6032f02b6032b025d023b025250000000c00000007000080250000000c0000
+0000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000008a02000064020000d90200006f0200000100000000400d4200040dc290
+020000a6fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000460065006500640049006e0066006f0072006d006100740069006f006e0040000600000006000000060000000600000003000000060000000300000006000000040000000900000006000000030000000300000006000000060000000a00000010000000060000000a0000000c00000010000000000000000000000046000000
+7c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000430294fd2c0394fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000
+003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000260200005f0200003d0300008d02000002000000d0236027603260272500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000420200007a0200004b020000
+860200000100000000400d4200040dc24802000090fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000530200007a02
+0000d0020000860200000100000000400d4200040dc25902000090fdffff190000004c000000000000000000000000000000ffffffffffffffff800000006400610074006100500072006f00760069006400650072004e0061006d006500200020003a0053007400720069006e00670000000600000006000000030000000600000007000000030000000600000005000000030000000600000006000000030000000700000006
+00000009000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000042020000870200004b020000930200000100000000400d4200040d
+c24802000083fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+00000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000005302000087020000ba020000930200000100000000
+400d4200040dc25902000083fdffff150000004c000000000000000000000000000000ffffffffffffffff78000000700072006f0074006f0063006f006c004e0061006d006500200020003a0053007400720069006e00670002f406000000030000000600000003000000060000000500000006000000030000000700000006000000090000000600000003000000030000000300000007000000030000000300000003000000
+06000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000042020000940200004b020000a00200000100000000400d4200040dc24802000076fdffff020000004c000000000000000000000000000000ffffffffffffffff5000
+00002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000530200009402000005030000a00200000100000000400d4200040dc25902000076fdffff210000004c000000000000000000000000000000ffffffff
+ffffffff9000000063006f006d006d0075006e00690063006100740069006f006e004300680061006e006e0065006c004e0061006d006500200020003a0053007400720069006e006700000005000000060000000900000009000000060000000600000003000000050000000600000003000000030000000600000006000000070000000600000006000000060000000600000006000000030000000700000006000000090000
+00060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000005203
+00004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000042020000a10200004b020000ad0200000100000000400d4200040dc24802000069
+fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003001000053020000a102000007030000ad0200000100000000400d4200040d
+c25902000069fdffff260000004c000000000000000000000000000000ffffffffffffffff980000006600650065006400530074006100740075007300200020003a00540072006100660066006900630049006e0063006900640065006e00740046006500650064005300740061007400750073000300000006000000060000000600000007000000030000000600000003000000060000000400000003000000030000000300
+0000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000060000000600000006000000060000000700000003000000060000000300000006000000040000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b000000540000005800000042020000ae0200004b020000ba0200000100000000400d4200040dc2480200005cfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c0000008b000000540000006801000053020000ae02000022030000ba0200000100000000400d4200040dc2590200005cfdffff2f0000004c000000000000000000000000000000ffffffffffffffffac000000740072006100660066006900630049006e0063006900640065006e0074007300530074006100740075007300200020003a00540072006100660066006900630049
+006e0063006900640065006e0074007300530074006100740075007300000003000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000300000006000000030000000600000004000000030000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000
+050000000300000006000000060000000600000003000000040000000700000003000000060000000300000006000000040000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002d003ffcc50042012100000008000000620000000c00000001000000110000000c000000010000000a000000100000
+00000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002700000089020000ec000000cb03000005000000700290287002b03cc00eb03cc00e902870029028250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002d003ffcc50042013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000100000007202000003010000e2030000040000007002b03cc00eb03cc00e902870029028250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000284200806fc4000045430000a143bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002a0042fcc5004201250000000c0000
+000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000024000000860200008b000000c803000005000000240086022400c8038b00c8038b00860224008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00
+000004000000250000000c0000000800008056000000300000008b0000008602000090000000c8030000050000008b0086028b00c8039000c803900086028b008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000900000008602000095
+000000c803000005000000900086029000c8039500c8039500860290008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000095000000860200009b000000c803000005000000950086029500c8039b00c8039b0086029500860225000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000009b00000086020000a1000000c8030000050000009b0086029b00c803a100c803a10086029b008602250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000a100000086020000a6000000c803000005000000a1008602a100c803a600c803a6008602a1008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c000000040000002500
+00000c000000080000805600000030000000a600000086020000ab000000c803000005000000a6008602a600c803ab00c803ab008602a6008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000ab00000086020000b1000000c803000005
+000000ab008602ab00c803b100c803b1008602ab008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000b100000086020000b6000000c803000005000000b1008602b100c803b600c803b6008602b1008602250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000b600000086020000b9000000c803000005000000b6008602b600c803b900c803b9008602b6008602250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000b900000086020000bd000000c803000005000000b9008602b900c803bd00c803bd008602b9008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800
+00805600000030000000bd00000086020000c1000000c803000005000000bd008602bd00c803c100c803c1008602bd008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000c100000086020000c6000000c803000005000000c1008602c1
+00c803c600c803c6008602c1008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000c600000086020000cb000000c803000005000000c6008602c600c803cb00c803cb008602c6008602250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000cb00000086020000d0000000c803000005000000cb008602cb00c803d000c803d0008602cb008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec7
+0000000000250000000c00000004000000250000000c000000080000805600000030000000d000000086020000d6000000c803000005000000d0008602d000c803d600c803d6008602d0008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000
+0000d600000086020000dc000000c803000005000000d6008602d600c803dc00c803dc008602d6008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000dc00000086020000e1000000c803000005000000dc008602dc00c803e100c803e1
+008602dc008602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000e100000086020000e6000000c803000005000000e1008602e100c803e600c803e6008602e1008602250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e600000086020000e9000000c803000005000000e6008602e600c803e900c803e9008602e6008602250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d46
+2b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002a0042fcc50042013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000
+000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000d0000006f02000000010000df030000040000004002803c900e803c900e602840026028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a
+000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000340000007efdffffe600000071fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000630000008c020000ab000000980200
+000100000000400d4200040dc2690000007efdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000
+000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c40000005800000099020000b5000000a40200000100000000400d4200040dc25e00000071fdffff140000004c000000000000000000000000000000ffffffffffffffff
+74000000540072006100660066006900630049006e0063006900640065006e0074004600690065006c00640005000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006000000060000000300000006000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c000000700000
+00454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002a005ffdef005ffd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c00
+00000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000d0000009402000000010000c2020000020000004002b02a900eb02a250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000af0200002c000000bb020000010000
+0000400d4200040dc22f0000005bfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+0000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000003a000000af020000bd000000bb02000001
+00000000400d4200040dc2400000005bfdffff170000004c000000000000000000000000000000ffffffffffffffff7c00000054005200410046004600490043005f0049004e0043004900440045004e0054005f004900440020003d002000310000000700000007000000070000000600000006000000030000000700000006000000030000000700000007000000030000000700000007000000070000000700000006000000
+0300000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000bc0200002c000000c80200000100000000400d4200040dc22f0000004efdffff010000004c000000000000000000
+000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000003a000000bc02000097000000c80200000100000000400d4200040dc2400000004efdffff0f0000004c00000000000000
+0000000000000000ffffffffffffffff6c0000004500460046004500430054005f0043004f004400450020003d002000320000000700000006000000060000000700000007000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000c90200002c000000d50200000100000000400d4200040dc22f00000041fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000003a000000c902000096000000d50200000100000000400d4200040dc24000000041fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004500460046004500430054005f00540045005800540020003d00200033000000070000000600000006000000070000000700000007000000060000
+0007000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000d60200002c000000e20200000100000000400d4200040dc22f00000034fdffff010000004c
+000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000003a000000d60200008f000000e20200000100000000400d4200040dc24000000034fdffff0e0000
+004c000000000000000000000000000000ffffffffffffffff68000000530054004100520054005f00540049004d00450020003d002000340007000000070000000700000007000000070000000600000007000000030000000900000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000e30200002c000000ef0200000100000000400d4200040dc22f00000027fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000003a000000e302000089000000ef0200000100000000400d4200040dc24000000027fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000530054004f0050005f00540049004d00450020003d00200035000000070000000700000008000000070000000600000007000000030000000900
+000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000f00200002c000000fc0200000100000000400d4200040dc22f0000001afdffff010000004c0000000000000000000000
+00000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000940000003a000000f002000084000000fc0200000100000000400d4200040dc2400000001afdffff0c0000004c000000000000000000
+000000000000ffffffffffffffff64000000540045004e00440045004e004300590020003d00200036000700000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b000000540000005400000029000000fd0200002c000000090300000100000000400d4200040dc22f0000000dfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000b40000003a000000fd020000a6000000090300000100000000400d4200040dc2400000000dfdffff110000004c000000000000000000000000000000ffffffffffffffff70000000540045004e00440045004e00430059005f00540045005800540020003d00200037000000070000000700000007000000070000000700000007000000070000000700000006000000070000000700000007
+00000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000290000000a0300002c000000160300000100000000400d4200040dc22f00000000fdffff010000004c00000000000000000000
+0000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000003a0000000a030000b2000000160300000100000000400d4200040dc24000000000fdffff130000004c0000000000000000
+00000000000000ffffffffffffffff740000004c0045004e004700540048005f004100460046004500430054004500440020003d00200038000000060000000700000007000000080000000700000007000000060000000700000006000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffff
+ff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000170300002c000000230300000100000000400d4200040dc22f000000f3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fa
+ffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003a00000017030000e5000000230300000100000000400d4200040dc240000000f3fcffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000041005600450052004100470045005f00530050004500450044005f004100420053004f00
+4c0055005400450020003d002000390007000000070000000700000007000000070000000800000007000000060000000700000007000000070000000700000007000000060000000700000007000000070000000800000006000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000240300002c000000300300000100000000400d4200040dc22f000000e6fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000880000003a0000002403000074000000300300000100000000400d4200040dc240000000e6fcffff0a0000004c000000000000000000000000000000ffffffffffffffff60000000440045004c004100590020003d0020003100300007000000070000000600000007000000070000000300000006000000030000
+0006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000310300002c0000003d0300000100000000400d4200040dc22f000000d9fcffff010000004c000000000000000000000000000000ffffffffffffffff50
+00000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000003a00000031030000d10000003d0300000100000000400d4200040dc240000000d9fcffff180000004c000000000000000000000000000000ffffffffffffff
+ff7c0000005300450047004d0045004e0054005f00530050004500450044005f004c0049004d004900540020003d002000310031000700000007000000080000000900000007000000070000000700000006000000070000000700000007000000070000000700000006000000060000000300000009000000030000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000290000003e0300002c0000004a0300000100000000400d4200040dc22f000000ccfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000900000003a0000003e0300007c0000004a0300000100000000400d4200040dc240000000ccfcffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000043004100550053004500530020003d00200031003200
+000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000290000004b0300002c000000570300000100000000400d4200040dc2
+2f000000bffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000003a0000004b0300009e000000570300000100000000400d420004
+0dc240000000bffcffff100000004c000000000000000000000000000000ffffffffffffffff6c000000430041005500530045005f005400450058005400530020003d00200031003300070000000700000007000000070000000700000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000580300002c000000640300000100000000400d4200040dc22f000000b2fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000003a000000580300009f000000640300000100000000400d4200040dc240000000b2fcffff120000004c000000000000000000000000000000ffffffffffffffff700000004100500050004c00490043004100420049004c0049005400590020003d00200031
+0034000700000007000000070000000600000003000000070000000700000007000000030000000600000003000000070000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000
+0029000000650300002c000000710300000100000000400d4200040dc22f000000a5fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc
+0000003a00000065030000c8000000710300000100000000400d4200040dc240000000a5fcffff180000004c000000000000000000000000000000ffffffffffffffff7c0000004100500050004c00490043004100420049004c004900540059005f005400450058005400530020003d00200031003500070000000700000007000000060000000300000007000000070000000700000003000000060000000300000007000000
+0700000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000720300002c0000007e0300000100000000400d420004
+0dc22f00000098fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+00000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000003a00000072030000870000007e0300000100000000400d42
+00040dc24000000098fcffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004c004f0043004100540049004f004e0020003d002000310036000000060000000800000007000000070000000700000003000000080000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000290000007f0300002c0000008b0300000100000000400d4200040dc22f0000008bfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a00000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000003a0000007f030000a50000008b0300000100000000400d4200040dc2400000008bfcffff120000004c000000000000000000000000000000ffffffffffffffff700000004c004f0043004100540049004f004e005f0049004e0046004f0020003d002000310037000600000008000000070000
+000700000007000000030000000800000007000000060000000300000007000000060000000800000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000290000008c0300002c00000098
+0300000100000000400d4200040dc22f0000007efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003a0000008c030000df0000
+00980300000100000000400d4200040dc2400000007efcffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004c004f0043004100540049004f004e005f0042004f0055004e00440049004e0047005f0042004f00580020003d0020003100380006000000080000000700000007000000070000000300000008000000070000000600000007000000080000000700000007000000070000000300
+000007000000080000000600000007000000080000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000990300002c000000a50300000100000000400d4200040dc2
+2f00000071fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000940000003a000000990300007f000000a50300000100000000400d420004
+0dc24000000071fcffff0c0000004c000000000000000000000000000000ffffffffffffffff64000000410044005600490043004500530020003d002000310039000700000007000000070000000300000007000000070000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000029000000a60300002c000000b20300000100000000400d4200040dc22f00000064fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003a000000a6030000a1000000b20300000100000000400d4200040dc24000000064fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004100440056004900430045005f005400450058005400530020003d002000320030000000070000000700000007000000030000000700000007
+00000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000009602b8fd610058002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000
+0000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000090020000fa010000f102000052020000050000000029a01f00292025102f2025102fa01f0029a01f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000009602b8fd610058003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+00003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000079020000e301000008030000690200000400000000292025102f2025102fa01f0029a01f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c02444004011c40000c2420000b042bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000009302bbfd61005800250000000c00000008000080
+27000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008d020000f7010000bf0200004f020000050000008d02f7018d024f02bf024f02bf02f7018d02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c000000040000
+00250000000c000000080000805600000030000000bf020000f7010000c00200004f02000005000000bf02f701bf024f02c0024f02c002f701bf02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000c0020000f7010000c10200004f02
+000005000000c002f701c0024f02c1024f02c102f701c002f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000c1020000f7010000c20200004f02000005000000c102f701c1024f02c2024f02c202f701c102f701250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000c2020000f7010000c30200004f02000005000000c202f701c2024f02c3024f02c302f701c202f701250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000c3020000f7010000c50200004f02000005000000c302f701c3024f02c5024f02c502f701c302f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000c5020000f7010000c60200004f02000005000000c502f701c5024f02c6024f02c602f701c502f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000c6020000f7010000c70200004f02000005000000c602
+f701c6024f02c7024f02c702f701c602f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000c7020000f7010000c80200004f02000005000000c702f701c7024f02c8024f02c802f701c702f701250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000c8020000f7010000c90200004f02000005000000c802f701c8024f02c9024f02c902f701c802f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000c9020000f7010000cb0200004f02000005000000c902f701c9024f02cb024f02cb02f701c902f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c00000008000080560000
+0030000000cb020000f7010000cc0200004f02000005000000cb02f701cb024f02cc024f02cc02f701cb02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000cc020000f7010000cd0200004f02000005000000cc02f701cc024f02cd02
+4f02cd02f701cc02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000cd020000f7010000ce0200004f02000005000000cd02f701cd024f02ce024f02ce02f701cd02f701250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000ce020000f7010000cf0200004f02000005000000ce02f701ce024f02cf024f02cf02f701ce02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000
+250000000c00000004000000250000000c000000080000805600000030000000cf020000f7010000d00200004f02000005000000cf02f701cf024f02d0024f02d002f701cf02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000d00200
+00f7010000d10200004f02000005000000d002f701d0024f02d1024f02d102f701d002f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000d1020000f7010000d20200004f02000005000000d102f701d1024f02d2024f02d202f701d102
+f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000d2020000f7010000d30200004f02000005000000d202f701d2024f02d3024f02d302f701d202f701250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000d3020000f7010000d40200004f02000005000000d302f701d3024f02d4024f02d402f701d302f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c000000
+04000000250000000c000000080000805600000030000000d4020000f7010000d50200004f02000005000000d402f701d4024f02d5024f02d502f701d402f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000d5020000f7010000d60200
+004f02000005000000d502f701d5024f02d6024f02d602f701d502f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000d6020000f7010000d70200004f02000005000000d602f701d6024f02d7024f02d702f701d602f701250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000d7020000f7010000d80200004f02000005000000d702f701d7024f02d8024f02d802f701d702f701250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d8020000f7010000d90200004f02000005000000d802f701d8024f02d9024f02d902f701d802f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c0000000400000025000000
+0c000000080000805600000030000000d9020000f7010000da0200004f02000005000000d902f701d9024f02da024f02da02f701d902f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000da020000f7010000db0200004f020000050000
+00da02f701da024f02db024f02db02f701da02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000db020000f7010000dc0200004f02000005000000db02f701db024f02dc024f02dc02f701db02f701250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000dc020000f7010000dd0200004f02000005000000dc02f701dc024f02dd024f02dd02f701dc02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000dd020000f7010000de0200004f02000005000000dd02f701dd024f02de024f02de02f701dd02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080
+5600000030000000de020000f7010000df0200004f02000005000000de02f701de024f02df024f02df02f701de02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000df020000f7010000e10200004f02000005000000df02f701df024f
+02e1024f02e102f701df02f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000e1020000f7010000e20200004f02000005000000e102f701e1024f02e2024f02e202f701e102f701250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000e2020000f7010000e30200004f02000005000000e202f701e2024f02e3024f02e302f701e202f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000
+000000250000000c00000004000000250000000c000000080000805600000030000000e3020000f7010000e40200004f02000005000000e302f701e3024f02e4024f02e402f701e302f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000
+e4020000f7010000e50200004f02000005000000e402f701e4024f02e5024f02e502f701e402f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000e5020000f7010000e60200004f02000005000000e502f701e5024f02e6024f02e602f7
+01e502f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000e6020000f7010000e70200004f02000005000000e602f701e6024f02e7024f02e702f701e602f701250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000e7020000f7010000e80200004f02000005000000e702f701e7024f02e8024f02e802f701e702f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c
+00000004000000250000000c000000080000805600000030000000e8020000f7010000e90200004f02000005000000e802f701e8024f02e9024f02e902f701e802f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000e9020000f7010000
+ea0200004f02000005000000e902f701e9024f02ea024f02ea02f701e902f701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000ea020000f7010000eb0200004f02000005000000ea02f701ea024f02eb024f02eb02f701ea02f701250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000eb020000f7010000ed0200004f02000005000000eb02f701eb024f02ed024f02ed02f701eb02f701250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000ed020000f7010000ee0200004f02000005000000ed02f701ed024f02ee024f02ee02f701ed02f701250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009302bbfd610058003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000
+0000000000000000250000000c00000004000000250000000c00000005000080560000002c00000076020000e0010000050300006602000004000000d028f024e02ef024e02e701fd028701f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c0000
+00ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009d0200000dfeffffeb02000000feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000009a020000fd010000e2020000090200000100000000400d4200
+040dc2a00200000dfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000000000000005000000
+0a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a8000000980200000a020000e4020000150200000100000000400d4200040dc29e02000000feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000540065007800
+7400440065007400610069006c004c006500760065006c0000000500000006000000060000000300000007000000060000000300000006000000030000000300000006000000060000000700000006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01
+00000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000009302eefdf402eefd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000007602000005020000050300003302000002000000d028c021e02ec021250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c7e5f9ff010000009602dafd5b000d00280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000f9e5c70000000000250000000c000000010000002500
+00000c0000000800008056000000300000009002000023020000eb02000030020000050000000029302200290023b02e0023b02e302200293022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000002c00000020000000454d462b0a4000c01c00000010000000d5ebfaff010000009702dbfd59000b00280000000c
+0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000faebd50000000000250000000c00000001000000250000000c0000000800008056000000300000009102000024020000ea0200002f02000005000000102940221029f022a02ef022a02e402210294022250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000099020000e6fdffffef020000dafdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00
+00000000000054000000880000009302000024020000bf0200002f0200000100000000400d4200040dc299020000e6fdffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004100740074007200690062007500740065007300070000000300000003000000030000000300000006000000060000000300000006000000040000001b000000100000000000000000000000160000000c00000000
+0000004b0000001000000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000092020000310200009b0200003d0200000100000000400d4200040dc298020000d9fdffff020000004c0000000000000000000000000000
+00ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007c000000a302000031020000ce0200003d0200000100000000400d4200040dc2a9020000d9fdffff080000004c0000000000000000
+00000000000000ffffffffffffffff5c000000460055004c004c0020003d002000310006000000070000000600000006000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000920200003e0200
+009b0200004a0200000100000000400d4200040dc298020000ccfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000090000000a3
+0200003e020000ea0200004a0200000100000000400d4200040dc2a9020000ccfdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000530055004d004d0041005200590020003d0020003200000007000000070000000900000009000000070000000700000007000000030000000600000003000000060000000a00000010000000060000000a0000000c000000100000000000000000000000
+460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000006a0145fc8a002200280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000
+000c00000001000000250000000c00000008000080560000003000000064010000a3030000ee010000c5030000050000004016303a4016503ce01e503ce01e303a4016303a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006a0145fc8a0022003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c
+00000004000000250000000c00000005000080560000002c0000004d0100008c03000005020000dc030000040000004016503ce01e503ce01e303a4016303a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201
+580000004c0000000210c0db0400000004000000000000000080b34300006ec400000a4300000842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000670148fc8a002200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000
+0008000080560000003000000061010000a0030000a9010000c2030000050000006101a0036101c203a901c203a901a0036101a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a9010000a0030000ad010000c203000005000000a901
+a003a901c203ad01c203ad01a003a901a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ad010000a0030000b0010000c203000005000000ad01a003ad01c203b001c203b001a003ad01a003250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000b0010000a0030000b3010000c203000005000000b001a003b001c203b301c203b301a003b001a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000b3010000a0030000b7010000c203000005000000b301a003b301c203b701c203b701a003b301a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000
+0030000000b7010000a0030000ba010000c203000005000000b701a003b701c203ba01c203ba01a003b701a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000ba010000a0030000be010000c203000005000000ba01a003ba01c203be01
+c203be01a003ba01a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000be010000a0030000c1010000c203000005000000be01a003be01c203c101c203c101a003be01a003250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000c1010000a0030000c5010000c203000005000000c101a003c101c203c501c203c501a003c101a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000
+250000000c00000004000000250000000c000000080000805600000030000000c5010000a0030000c8010000c203000005000000c501a003c501c203c801c203c801a003c501a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000c80100
+00a0030000cc010000c203000005000000c801a003c801c203cc01c203cc01a003c801a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000cc010000a0030000cf010000c203000005000000cc01a003cc01c203cf01c203cf01a003cc01
+a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000cf010000a0030000d3010000c203000005000000cf01a003cf01c203d301c203d301a003cf01a003250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000d3010000a0030000d6010000c203000005000000d301a003d301c203d601c203d601a003d301a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c000000
+04000000250000000c000000080000805600000030000000d6010000a0030000d9010000c203000005000000d601a003d601c203d901c203d901a003d601a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000d9010000a0030000de0100
+00c203000005000000d901a003d901c203de01c203de01a003d901a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000de010000a0030000e2010000c203000005000000de01a003de01c203e201c203e201a003de01a003250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000e2010000a0030000e5010000c203000005000000e201a003e201c203e501c203e501a003e201a003250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000e5010000a0030000e9010000c203000005000000e501a003e501c203e901c203e901a003e501a003250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c0000000400000025000000
+0c000000080000805600000030000000e9010000a0030000eb010000c203000005000000e901a003e901c203eb01c203eb01a003e901a003250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0
+db00000000000000ff0b400040180000000c00000001000000670148fc8a0022003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00
+00004a0100008903000002020000d9030000040000001016203cb01e203cb01e003a1016003a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000003000000180000000c0000000000000054000000ac0000007f010000a9030000ce010000b40300000100000000400d4200040dc28501000061fcffff100000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e007300650074003a003a00490063006f006e00530065007400030000000600000006000000060000000600000006000000030000000300000003000000030000
+000600000006000000060000000700000006000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000067014ffcf1014ffc000101011540
+01001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c0000000500008057000000240000004a010000a403000002020000d2030000020000001016b03bb01eb03b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c000000
+10000000c0bfc0ff01000000b2019ffc5900450024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ac01000026030000050200006b03000005000000c01a6032c01ab0365020b03650206032c01a6032250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000b2019ffc590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+0000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000950100000f0300001c0200008203000004000000c01ab0365020b03650206032c01a6032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080d743008057c40000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000af01a2fc
+59004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a901000023030000d70100006803000005000000a9012303a9016803d7016803d7012303a9012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e2
+0000000000250000000c00000004000000250000000c000000080000805600000030000000d701000023030000d80100006803000005000000d7012303d7016803d8016803d8012303d7012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000
+0000d801000023030000d90100006803000005000000d8012303d8016803d9016803d9012303d8012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000d901000023030000da0100006803000005000000d9012303d9016803da016803da
+012303d9012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000da01000023030000db0100006803000005000000da012303da016803db016803db012303da012303250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000db01000023030000dc0100006803000005000000db012303db016803dc016803dc012303db012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000
+000c00000004000000250000000c000000080000805600000030000000dc01000023030000de0100006803000005000000dc012303dc016803de016803de012303dc012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000de0100002303
+0000df0100006803000005000000de012303de016803df016803df012303de012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000df01000023030000e00100006803000005000000df012303df016803e0016803e0012303df01230325
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000e001000023030000e20100006803000005000000e0012303e0016803e2016803e2012303e0012303250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000e201000023030000e30100006803000005000000e2012303e2016803e3016803e3012303e2012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c000000040000
+00250000000c000000080000805600000030000000e301000023030000e40100006803000005000000e3012303e3016803e4016803e4012303e3012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000e401000023030000e50100006803
+000005000000e4012303e4016803e5016803e5012303e4012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000e501000023030000e60100006803000005000000e5012303e5016803e6016803e6012303e5012303250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000e601000023030000e70100006803000005000000e6012303e6016803e7016803e7012303e6012303250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000e701000023030000e80100006803000005000000e7012303e7016803e8016803e8012303e7012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000
+00080000805600000030000000e801000023030000e90100006803000005000000e8012303e8016803e9016803e9012303e8012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e901000023030000ea0100006803000005000000e901
+2303e9016803ea016803ea012303e9012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000ea01000023030000eb0100006803000005000000ea012303ea016803eb016803eb012303ea012303250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000eb01000023030000ec0100006803000005000000eb012303eb016803ec016803ec012303eb012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ec01000023030000ed0100006803000005000000ec012303ec016803ed016803ed012303ec012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000
+0030000000ed01000023030000ee0100006803000005000000ed012303ed016803ee016803ee012303ed012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ee01000023030000ef0100006803000005000000ee012303ee016803ef01
+6803ef012303ee012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ef01000023030000f00100006803000005000000ef012303ef016803f0016803f0012303ef012303250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000f001000023030000f10100006803000005000000f0012303f0016803f1016803f1012303f0012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000
+250000000c00000004000000250000000c000000080000805600000030000000f101000023030000f20100006803000005000000f1012303f1016803f2016803f2012303f1012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000f20100
+0023030000f30100006803000005000000f2012303f2016803f3016803f3012303f2012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f301000023030000f50100006803000005000000f3012303f3016803f5016803f5012303f301
+2303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000f501000023030000f60100006803000005000000f5012303f5016803f6016803f6012303f5012303250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000f601000023030000f70100006803000005000000f6012303f6016803f7016803f7012303f6012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c000000
+04000000250000000c000000080000805600000030000000f701000023030000f80100006803000005000000f7012303f7016803f8016803f8012303f7012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f801000023030000f90100
+006803000005000000f8012303f8016803f9016803f9012303f8012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f901000023030000fb0100006803000005000000f9012303f9016803fb016803fb012303f9012303250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fb01000023030000fc0100006803000005000000fb012303fb016803fc016803fc012303fb012303250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000fc01000023030000fe0100006803000005000000fc012303fc016803fe016803fe012303fc012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c0000000400000025000000
+0c000000080000805600000030000000fe01000023030000ff0100006803000005000000fe012303fe016803ff016803ff012303fe012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000ff010000230300000002000068030000050000
+00ff012303ff0168030002680300022303ff012303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000000020000230300000102000068030000050000000002230300026803010268030102230300022303250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000001020000230300000202000068030000050000000102230301026803020268030202230301022303250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700008046
+0000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000af01a2fc590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000
+0000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000920100000c030000190200007f03000004000000901a80362020803620203032901a3032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000084000000c10100002c030000eb010000370300000100000000400d4200040dc2c7010000defcffff090000004c000000000000000000000000000000ffffffffffffffff60000000690063006f006e0073
+00650074003a003a0000000300000006000000060000000600000006000000060000000300000003000000030000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+10000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a0000000b401000039030000f7010000440300000100000000400d4200040d
+c2ba010000d1fcffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e0044006500660069006e006900740069006f006e0003000000060000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a00000010000000060000000a0000000c000000100000000000000000000000460000007c0000007000
+0000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000af01bffc0802bffc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000009201000034030000190200006203000002000000901ab0342020b034250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000f102affc59003b0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c000000010000
+00250000000c000000080000805600000030000000eb02000020030000440300005b03000005000000b02e0032b02eb0354034b03540340032b02e0032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000
+803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f102affc59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c0000000400000025
+0000000c00000005000080560000002c000000d4020000090300005b0300007203000004000000b02eb0354034b03540340032b02e0032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c000000
+0210c0db04000000040000000000000000803b44008053c40000b24200006c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ee02b2fc59003b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000
+0030000000e80200001d030000160300005803000005000000e8021d03e80258031603580316031d03e8021d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000160300001d03000017030000580300000500000016031d03160358031703
+580317031d0316031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000170300001d03000018030000580300000500000017031d03170358031803580318031d0317031d03250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000180300001d03000019030000580300000500000018031d03180358031903580319031d0318031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000
+250000000c00000004000000250000000c000000080000805600000030000000190300001d0300001a030000580300000500000019031d03190358031a0358031a031d0319031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000001a0300
+001d0300001b03000058030000050000001a031d031a0358031b0358031b031d031a031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000001b0300001d0300001d03000058030000050000001b031d031b0358031d0358031d031d031b03
+1d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000001d0300001d0300001e03000058030000050000001d031d031d0358031e0358031e031d031d031d03250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000001e0300001d0300001f03000058030000050000001e031d031e0358031f0358031f031d031e031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c000000
+04000000250000000c0000000800008056000000300000001f0300001d0300002103000058030000050000001f031d031f0358032103580321031d031f031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000210300001d030000220300
+00580300000500000021031d03210358032203580322031d0321031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000220300001d03000023030000580300000500000022031d03220358032303580323031d0322031d03250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000230300001d03000024030000580300000500000023031d03230358032403580324031d0323031d03250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000240300001d03000025030000580300000500000024031d03240358032503580325031d0324031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c0000000400000025000000
+0c000000080000805600000030000000250300001d03000026030000580300000500000025031d03250358032603580326031d0325031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000260300001d0300002703000058030000050000
+0026031d03260358032703580327031d0326031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000270300001d03000028030000580300000500000027031d03270358032803580328031d0327031d03250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000280300001d03000029030000580300000500000028031d03280358032903580329031d0328031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000290300001d0300002a030000580300000500000029031d03290358032a0358032a031d0329031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080
+56000000300000002a0300001d0300002b03000058030000050000002a031d032a0358032b0358032b031d032a031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000002b0300001d0300002c03000058030000050000002b031d032b0358
+032c0358032c031d032b031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000002c0300001d0300002d03000058030000050000002c031d032c0358032d0358032d031d032c031d03250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000002d0300001d0300002e03000058030000050000002d031d032d0358032e0358032e031d032d031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000
+000000250000000c00000004000000250000000c0000000800008056000000300000002e0300001d0300002f03000058030000050000002e031d032e0358032f0358032f031d032e031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000
+2f0300001d0300003003000058030000050000002f031d032f0358033003580330031d032f031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000300300001d03000031030000580300000500000030031d03300358033103580331031d
+0330031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000310300001d03000032030000580300000500000031031d03310358033203580332031d0331031d03250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000320300001d03000034030000580300000500000032031d03320358033403580334031d0332031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c
+00000004000000250000000c000000080000805600000030000000340300001d03000035030000580300000500000034031d03340358033503580335031d0334031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000350300001d030000
+36030000580300000500000035031d03350358033603580336031d0335031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000360300001d03000037030000580300000500000036031d03360358033703580337031d0336031d03250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000370300001d03000038030000580300000500000037031d03370358033803580338031d0337031d03250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000380300001d0300003a030000580300000500000038031d03380358033a0358033a031d0338031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c0000000400000025
+0000000c0000000800008056000000300000003a0300001d0300003b03000058030000050000003a031d033a0358033b0358033b031d033a031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000003b0300001d0300003d03000058030000
+050000003b031d033b0358033d0358033d031d033b031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000003d0300001d0300003e03000058030000050000003d031d033d0358033e0358033e031d033d031d03250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000003e0300001d0300003f03000058030000050000003e031d033e0358033f0358033f031d033e031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000003f0300001d0300004003000058030000050000003f031d033f0358034003580340031d033f031d03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000400300001d03000041030000580300000500000040031d03400358034103580341031d0340031d03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000
+000000ff0b400040180000000c00000001000000ee02b2fc59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000d10200
+0006030000580300006f03000004000000802e8035103480351034d031802ed031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c000000000000001e00000018000000f8020000ebfcffff3e030000defcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000fa0200001f0300002f0300002b0300000100000000400d4200040dc200030000ebfcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000
+ab007000720069006d0069007400690076006500bb00000006000000060000000300000003000000090000000300000003000000030000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000060000000a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000003000000180000000c000000000000005400000088000000fb0200002f0300002f0300003a0300000100000000400d4200040dc201030000dbfcffff0a0000004c000000000000000000000000000000ffffffffffffffff60000000430061007400650067006f007200790049006400070000000600000003000000060000000600000006000000040000000500000003000000060000000a
+00000010000000060000000a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000103cffc3503cffc0001010115400100100000000400000000000000210000000800000062000000
+0c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000
+0024000000e402000024030000460300005203000002000000b02fb033f032b033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000005401000048010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f0200
+0000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e000000004000005e02bdfc5702b9fc5302b7fc4c02b3fc4802b0fc4102acfc3d02aafc3602a5fc3202a3fc2b029ffc27029cfc200298fc1c0296fc150292fc11028ffc0a028bfc060288fcff0184fcfb0182fcf4017efcf0017bfce90177fce50175fcde0170fcda016efcd3016afccf0167fcc80163fcc40161fcbd015dfcb9015afcb2
+0156fcae0153fca7014ffca3014dfc9c0149fc980146fc910142fc8d0140fc86013bfc820139fc7b0135fc770132fc70012efc6c012cfc6a012afc0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000034010000620100004b0300005a020000e2030000170000002e000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000000200000002000000020000008025d03410251035d0243035602470352024a035b023e0357023003600235036c02270365022b0361022e036a021203760214037f0208037b020b0374020f03700202038901f6038501f8038e01ec038a01ef038301e3039f01d5039801da039401dc039d01c003a901c303a201c703ae01b903a701bd03a301b003bc01a403b801a703b101ab03bd019
+d03b6019103c2019403cb018803c7018a03c0018f03cc017103d5017503d1017803da016c03d6016e03d4016003e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02
+0000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005e02bdfc5402b1fc5e02bdfc4f02bafc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000
+000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000470200004b0300005a0200005b030000020000000400000002000000020000008025d034e02490358025d03490240035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000
+00480100003c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103f4000000e80000000210c0db2c00000000400000e4029dfee30296fee30292fee2028bfee10287fee00280fedf027cfede0275fede0271fedd026afedc0266fedb025ffeda025bfed90254fed90250fed70249fed70245fed6023efed5023afed402
+33fed3022ffed20228fed20224fed1021dfed00219fecf0212fece020efecd0207fecd0203fecb02fcfdcb02f8fdca02f1fdc902edfdc802e6fdc702e2fdc602dbfdc602d7fdc502d0fdc402ccfdc302c5fdc202c1fdc102bafdc102b6fdbf02affd000100010001000100010001000100010001000100010001000100010001000100010001000100010001000115400100100000000400000000000000240000002400000000
+00803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000028010000b70200006b010000e00200005d020000160000002c00000002000000020000000200000002000000020000000200000002000000
+020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000e02dd016d02d4017d02d8017c02df017b02d3018a02da018902de018802d5019802d9019702d001a602d401a502db01a402df01a302d601b302da01b102d101c102d501c002dc01cf02c001de02c701dd02cb01dc02c201ec02c601eb02cd01ea02c101f902c801f802cc0
+1f702c3020702c7020502ce020502c2021402c9021302cd021202c4022102c8022002cf022002c3023f02ba023e02be023d02b5024c02b9024b02b0025b02b4025902bb025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c0000003000
+00000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000e4029dfee7028dfee4029dfedd028ffe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000d50200006b010000e30200007f01000002000000040000000200000002000000e02dd016102ed017e02dd016702db017250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e4025dfcad02bdfc000100011540010010000000040000000000000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000a50200004b030000e0020000af03000002000000e02dd03a702ad034250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000b602b7fcad02bdfcae02b2fcb702acfc280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c
+00000001000000130000000c00000001000000250000000c00000008000080560000002c000000a70200004d030000b10200005e03000004000000002b3035702ad034802a8035102be035250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b08400002
+3c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000b602b7fcad02bdfcae02b2fcb702acfc24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a50200004b030000b30200006003000004000000002b3035702ad034802a8035102be035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff4600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a
+000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000000000000000004c063376000000004c063376
+80013376a01c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276013a21145e0076005f706e6ed53e21711900b00175322f760100d53e5f0074005f706e6e8ce3c577b389172670374b0b9401300b080000007416ba260000000098c8612348004b0b5c014b0b08e31b24f0374b0b8ce3c5774051e1025e706e6e3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008c15ba265c014b
+0bd53e2171093e0a85e816ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000a00000009e0200006f030000e90200007b0300000100000000400d4200040dc2a40200009bfcffff0e0000004c000000000000000000000000000000ffffffffffffffff680000006c006f006300
+61006c0069007a00650064004e0061006d006500730003000000060000000500000006000000030000000300000005000000060000000600000007000000060000000900000006000000040000000a00000010000000060000000a0000000c000000100000000000000000000000280000000c0000000400000046000000b0000000a4000000454d462b084000023c000000300000000210c0db000000008e0000000000000000
+00803f020000000200000001000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c000000004000003d025dfc11028bfc12028cfc13028dfc13028efc130291fc110294fc0e0294fc0c0294fc0b0293fc0a0292fcfc01a1fc000103030303030303030301154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000
+10000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000803b000000080000001b0000001000000070230000d03a00003600000010000000b0200000f03700
+0058000000400000000000000000000000ffffffffffffffff09000000c020e037d020d037d020c037d0209037b0206037802060376020603750207037402080373600000010000000601f0000903600003c000000080000004000000018000000f40100006703000039020000af030000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff0400000007029dfcfc01a1fcff0196fc0a0293fc24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000f601000069030000040200007703000004
+0000001020d036601f9036901f403740207037250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff
+0d40006020000000140000000400000007029dfcfc01a1fcff0196fc0a0293fc24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f401000067030000060200
+0079030000040000001020d036601f9036901f403740207037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000
+000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000000000000000004c063376000000004c06337680013376a01c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276013a21146600660072706e6ed53e21711900b00175322f76
+0100d53e6700640072706e6e8ce3c577b389172670374b0b9401300b080000008c37ba260000000098c8612348004b0b5c014b0b88e21b24f0374b0b8ce3c5774051e10271706e6e3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a436ba265c014b0bd53e2171093e0a850038ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000647600
+0800000000250000000c00000004000000180000000c00000000000000540000007c000000040200007d0300002a020000890300000100000000400d4200040dc20a0200008dfcffff080000004c000000000000000000000000000000ffffffffffffffff5c000000690063006f006e0049006e0066006f0003000000050000000600000006000000030000000600000003000000060000000a00000010000000060000000a00
+00000c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006a025dfc8c02bdfc0001030315400100100000000400000000000000210000000800000062
+0000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000062020000
+4b03000088020000af030000020000004026d03a6028d034250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000008d02b2fc8c02bdfc8402b5fc8502aafc24000000240000000000803d00000000000000
+000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000007e0200004d030000870200006003000004000000702880356028d034e0275035f0270036250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000008d02b2fc8c02bdfc8402b5fc8502aafc24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007c0200004b030000890200006203000004000000702880356028d034e0275035f0270036250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000faffffff0a000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000
+000000000000000000004c063376000000004c06337680013376a01c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276013a21146e00560086706e6ed53e21711900b00175322f760100d53e6f00540086706e6e8ce3c577b389172670374b0b9401300b080000009442ba260000000098c8612348004b0b5c014b0b08e21b24f0374b0b8ce3c5774051e10285706e6e3853e102f571ca7793093353feffffff8c
+e3c577f2e0c57746e0c57700000000ac41ba265c014b0bd53e2171093e0a850843ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006c000000690200006f030000810200007b0300000100000000400d4200040dc26f0200009bfcffff050000004c0000000000000000000000
+00000000ffffffffffffffff58000000690063006f006e007300000003000000050000000600000006000000040000000a00000010000000060000000a0000000c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001032c0000
+00200000000210c0db0400000000400000ee02d5fce702d6fce302d6fcdd02d8fc00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000002
+0100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000d502000030030000ea0200003703000002000000040000000200000002000000802e5033102e4033d02d4033702d2033250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000ee02d5fcde02d3fcee02d5fce002ddfc000100011540010010000000040000000000000024000000240000000000803d0000000000000000
+0000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000d60200002b030000ea0200003903000002000000040000000200000002000000802e5033802d7033802e5033a02dd032250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000dc000000d0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db1600000000400000be01a1fcb9019afcb50196fcaf018ffcac01
+8bfca60184fca20180fc9d0179fc990175fc93016efc90016afc8a0163fc86015ffc810158fc7d0154fc77014dfc740149fc6e0142fc6a013efc650137fc610133fc5b012cfc0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000a40000005301000067030000ba010000e00300000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000801b9036301b0037f01a4037901ab037601af037001a6038c019a03870191039
+30195039d018c039a018003a4018703a0018b03ab017203b7017603b1017d03be016103c8016803c4016c03cf015303db015703d5015e03d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e0000
+00000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000be01a1fcb80192fcbe01a1fcb00199fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000
+00000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000a801000067030000ba0100007a03000002000000040000000200000002000000801b9036201b8037801b9036a01a1037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db0800000000400000910147fc8a0143fc860140fc7f013bfc7b0139fc740134fc700131fc69012dfc00010001000100011540010010000000040000000000000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005000000061010000c10300008d010000df030000040000000800000002000000020000000200000002000000b018303c4018703c0018a03c9017f0
+3c5017103de016603da016903d3016d03d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840
+01032c000000200000000210c0db0400000000400000910147fc87013afc910147fc820143fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c
+000000050000805a000000380000007a010000c10300008d010000d203000002000000040000000200000002000000b018303c1018003db018303cc017703c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000007c01000070010000454d462b0840000234000000280000000210c0db
+0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103280100001c0100000210c0db360000000040000083024afd7c0244fd780240fd710239fd6d0235fd66022efd62022afd5b0223fd57021ffd500219fd4c0215fd45020efd41020afd3a0203fd3602fffc2f02f8fc2b02f4fc2402edfc2002eafc1902e3fc1502dffc0e02d8fc0a02d4fc0302cdfcff01c9fcf801c2fcf401be
+fced01b8fce901b4fce201adfcde01a9fcd701a2fcd3019efccc0197fcc80193fcc1018cfcbd0189fcb60182fcb2017efcab0177fca70173fca0016cfc9c0168fc950161fc91015dfc8a0157fc860153fc7f014cfc7b0148fc740141fc70013dfc690136fc650132fc5e012bfc00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540
+010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000006401000056010000be0200007f020000e10300001b000000360000000200000002
+00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000d027002c6027602c2027a02cb026102d7026502d0026c02dc025002e5025702e1025b02ea024102f6024502ff023c02fb0230030402370300023b03090222031
+50226031e021d031a021003230217032f020b0328020203340206033d01fd033901f1034201f8034e01ec034701e2035301e6035c01dd035801d1036101d8036d01cc036601c3037201c7037b01be037701b1038001b8038c01ac038501a3039101a7039a019e0396019203af018903ab018d03a4018303b0018703b9017e03b5017203ce016903ca016d03c3016403df015803d8015f03d250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000083024afd7c023cfd8302
+4afd750243fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000006d020000be0200007f020000d002000002
+000000040000000200000002000000d027002c6027e02cd027002cf026702c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000
+000000ff0840010390000000840000000210c0db1800000000400000e7022bfee60224fee40220fee30219fee10215fee0020efede020afedd0203fedb02fffdda02f8fdd802f4fdd602edfdd502e9fdd302e2fdd202defdd002d7fdcf02d3fdcd02ccfdcc02c8fdca02c1fdc902bdfdc702b6fdc602b2fdc502affd00010001000100010001000100010001000100010001000115400100100000000400000000000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000b0000000bd020000dd010000e30200005d0200000c0000001800000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000102ef01d002e601ee02da01ed02d101fb02d501fa02dc01f802d0020702d7020502db020402d2021202d6021002dd021f02c1022d02c8022c02cc022a02c3023902c7023702ce023602c2024402c9024302cd024102c4025002c8025f02bb025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000e7022bfee8021bfee7022bfede021efe000100011540010010000000040000000000000024000000
+240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000d6020000dd010000e4020000f101000002000000040000000200000002000000102ef01d202ef01e102ef01d802dc0
+1e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a80200009c020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010354020000480200000210c0db7200000000400000ce02
+9dfeca0296fec80292fec4028bfec10287febd0280febb027cfeb60275feb40271feb0026afead0266fea9025ffea7025bfea30254fea00250fe9c0249fe9a0245fe95023efe93023afe8f0233fe8c022ffe880228fe860224fe82021dfe7f0219fe7b0212fe79020efe740207fe720203fe6e02fcfd6b02f8fd6702f1fd6502edfd6002e6fd5e02e2fd5a02dbfd5702d7fd5302d0fd5102ccfd4d02c5fd4a02c1fd4602bafd44
+02b6fd3f02affd3d02abfd3902a4fd3602a0fd320299fd300295fd2c028efd29028afd250283fd23027ffd1e0278fd1c0274fd18026dfd150269fd110262fd0f025efd0a0257fd080253fd04024cfd010248fdfd0141fdfb013dfdf70136fdf40132fdf0012bfdee0127fde90120fde7011cfde30115fde00111fddc010afdda0106fdd601fffcd301fbfccf01f4fccd01f0fcc801e9fcc601e5fcc201defcbf01dafcbb01d3fc
+b901cffcb501c8fcb201c4fcae01bdfcab01b9fca701b2fca501aefca101a7fc9e01a3fc9a019cfc980198fc930191fc91018dfc8d0186fc8a0182fc86017bfc840177fc800170fc7d016cfc790165fc770161fc72015afc700156fc6c014ffc69014bfc650144fc630140fc5f0139fc5c0135fc58012efc0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100
+0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000000201001000000000000000000000000000
+00000000000000000000250000000c00000004000000250000000c000000050000805a000000cc020000500100006b010000ca020000de03000039000000720000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000802cd016402c4017202c8017e02bf017b02b3018702ba018502be018002b5019e02a9019a02a001a
+702a401a302ab01a102af01ad029601ba029a01b6029101c4029501cf028c01cd028001d9028701d6028b01d2028201e0028601ec027d01e9027101f5027801f3027c01fe0263020c02670208026e0205026202110269021f025d021a0254022802580224025f02210253023d024a023b024e023702450244024902400240025e02340259023b0257023f025302360260023a026c0221027a02250276022c02730220028f02170
+28d021b02880212029602160292021d029f020102ab020802a9020c02a4020302b2020702be01fe02bb01f202c701f902c501fd02c101f402de01e802da01ef02d801e302e301ea02e101ee02ed01d502fa01d902f601d0030401d4030001db030d01cf030901c6031701ca031201c1032001c5032c01bc032901b0033501b7033301bb033f01a2034c01a6034801ad034501a1035101a8035f019c035b0193036801970364019
+e03620192037d0189037b018d03770184038401880380018f038e0173039a017a0397017e0393017503a1017903ac016003ba016403b6016b03b3016f03bf015603cd015a03c9015103d6015503d2015c03d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c00000045
+4d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000ce029dfecb028efece029dfec20293fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000ba0200006b010000ca0200007e01000002000000040000000200000002000000802cd016502cc017802cd016c02b7017250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c0000000400000046000000fc010000f0010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103a80100009c0100000210c0db500000000040000048012afc480131fc480135fc48013cfc480140fc480147fc48014bfc480152fc480156fc48015dfc4801
+61fc480168fc48016cfc480173fc480177fc48017efc480182fc480189fc48018dfc480194fc480198fc48019ffc4801a3fc4801aafc4801aefc4801b5fc4801b9fc4801c0fc4801c4fc4801cbfc4801cffc4801d6fc4801dafc4801e1fc4801e5fc4801ecfc4801f0fc4801f7fc4801fbfc480102fd480106fd48010dfd480111fd480118fd48011cfd480123fd480127fd48012efd480132fd480139fd48013dfd480144fd48
+0148fd48014ffd480153fd48015afd48015efd480165fd480169fd480170fd480174fd48017bfd48017ffd480186fd48018afd480191fd480195fd48019cfd4801a0fd4801a7fd4801abfd4801b2fd4801b6fd4801bdfd4801c1fd4801c8fd4801ccfd4801d3fd4801d7fd4801defd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001
+0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000000020000400100
+002a02000044010000e203000028000000500000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+00000200000002000000020000002014003e2014903d2014503d2014e03c2014a03c2014303c2014f03b2014803b2014403b2014d03a2014903a2014203a2014e03920147039201430392014c03820148038201410382014d03720146037201420372014b03620147036201400362014c03520145035201410352014a034201460342014f0332014b033201440332014003320149032201450322014e0312014a0312014303120
+14f03020148030201440302014d02f2014902f2014202f2014e02e2014702e2014302e2014c02d2014802d2014102d2014d02c2014602c2014202c2014b02b2014702b2014002b2014c02a2014502a2014102a2014a029201460292014f0282014b028201440282014002820149027201450272014e0262014a026201430262014f02520148025201440252014d02420149024201420242014e02320147023201430232014c022
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000
+000040000048012afc430139fc48012afc4d0139fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000003b01
+0000cf03000049010000e2030000020000000400000002000000020000002014003ed013103d2014003e7014103d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000faffffff0a000000120000000c00000002000000190000000c000000ffffff005200000070010000
+04000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000000000000000004c063376000000004c06337680013376a01c971c8ce3c577bb89172646e0c5779401300b0000300bc70f3276013a21
+14a600d20015716e6ed53e21711900b00175322f760100d53ea700d40015716e6e8ce3c5770f89172670374b0b9401300b08000000bc79ba260000000098c8612348004b0b5c014b0b08e61b24f0374b0b8ce3c577cc51e10214716e6ec453e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000d478ba265c014b0bd53e2171093e0a85307aba266052e1023c53e1025854e102f571ca7793093353feff
+ffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000b40000001b010000f80200006a010000040300000100000000400d4200040dc22101000012fdffff110000004c000000000000000000000000000000ffffffffffffffff70000000630061006c006c006200610063006b0049006e00740065007200660061006300650000000500000006
+0000000300000003000000060000000600000005000000040000000300000006000000030000000600000003000000030000000600000005000000060000000a00000010000000060000000a0000000c000000100000000000000000000000280000000c0000000400000046000000480100003c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db
+00000000000000ff08400103f4000000e80000000210c0db2c000000004000000003edfcfa02f4fcf702f8fcf102fffced0203fde7020afde4020efdde0215fdda0219fdd40220fdd10224fdcb022bfdc7022ffdc10236fdbe023afdb80241fdb40245fdae024cfdab0250fda50257fda1025bfd9b0262fd980266fd91026dfd8e0271fd880278fd84027cfd7e0283fd7b0287fd75028efd710292fd6b0299fd68029dfd6202a4
+fd5e02a8fd5802affd5502b3fd4f02bafd4b02befd4502c5fd4202c9fd3c02d0fd3802d4fd3202dbfd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000000000
+00000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000280100002a0200002d020000fc0200001f030000160000002c00000002000000020000000200000002000000020000000200000002000000020000000200000002
+000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000a02fd031402f6031102f2031b02eb030702e7030102e0030e02dc02f802d502f402d102fe02ca02eb02c602e502cf02d102cb02db02b402d802b002d202b902ce02a502c802ae02b502aa02bf029302bb029f02a5029802a2029402ab028d0298028902920282029e027e0288027702850273028
+f026c027b0268027502610272026d026c0256026802520262025b025f0247025902400255024c024f0235024c02310246023a02320236023c022f022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000
+008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000003edfcf202f5fc0003edfcfa02fcfc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010
+0100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000ea0200000c030000fc0200001f03000002000000040000000200000002000000a02fd031c02e5031a02fd031402fe030250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c00000004000000460000005401000048010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e00000000400000d201e7fcd101eefcd001f2fcce01f9fccd01fdfccb0104fdca0108fdc8010ffdc70113fdc5011afdc4011efdc20125fdc10129fdbf0130fdbe0134fdbc013bfd
+bb013ffdb90146fdb8014afdb60151fdb50155fdb3015cfdb20160fdb00167fdaf016bfdad0172fdac0176fdaa017dfda90181fda70188fda6018cfda40193fda30197fda1019efda001a2fd9e01a9fd9d01adfd9b01b4fd9a01b8fd9801bffd9701c3fd9501cafd9401cefd9201d5fd9101d9fd8f01defd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100
+011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000034010000870100002a020000ce01000025030000170000002e0000000200
+000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c01c3032b01cc031a01c8031801c1031701cd030501c6030401c2030201cb02f101c702ff01b002fe01bc02ec01b502eb01b102e901ba02d801b602d601bf02c501bb02c301b402c201b002c00
+1b902bf01a502bd01ae02ac01aa02aa01a302a901af029701a8029601a4029401ad028301a9028101a2028001ae027e0197027d0193027b019c026a0198026801910267019d02550196025401920252019b02410197024f0180024e018c023c0185023b01810239018c022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000
+280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000d201e7fcc901f4fcd201e7fcd301f7fc000100011540010010000000040000000000000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000c101000011030000cf0100002503000002000000040000000200000002000000c01c3032301c6031c01c3032d01c3031250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000c0010000b4010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001036c010000600100000210c0db4400000000400000a9016afca80171fca80175fca7017cfca6
+0180fca50187fca4018bfca30192fca30196fca2019dfca101a1fca001a8fc9f01acfc9e01b3fc9e01b7fc9d01befc9c01c2fc9b01c9fc9a01cdfc9901d4fc9901d8fc9801dffc9701e3fc9601eafc9501eefc9401f5fc9401f9fc930100fd920104fd91010bfd90010ffd8f0116fd8f011afd8d0121fd8d0125fd8c012cfd8b0130fd8a0137fd89013bfd880142fd880146fd87014dfd860151fd850158fd84015cfd830163fd
+830167fd82016efd810172fd800179fd7f017dfd7e0184fd7e0188fd7d018ffd7c0193fd7b019afd7a019efd7901a5fd7901a9fd7801b0fd7701b4fd7601bbfd7501bffd7401c6fd7401cafd7201d1fd7201d5fd7101dcfd00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000
+000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000b8010000690100002c020000a5010000a203000022000000440000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000301a003a201a9039201a5039101ae038001aa038f0193038e019f037d0198037d0194037c019d036b0199036a0
+1920369019e03580197035801930357019c03460198034501910344019d03330196033301920332019b0321019703200190032f018c031e0185031e0181031d018a030c0186030b018f02fa018b02f9018402f9018002f7018902e7018502e6018e02d5018a02d4018302d3018f02c2018802c2018402c1018d02b0018902bf017202be017e02ad017702ad017302ac017c029b0178029a01710299017d0288017602880172028
+7017b02760177027501700274017c02630175026301710262017a025101760250017f024f016b024e0164024e0160024c0169023c0165023b016e022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000
+008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000a9016afca20178fca9016afcac017afc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010
+0100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009a0100008e030000a8010000a203000002000000040000000200000002000000301a003ac0192039301a003a601a0039250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c0000000400000046000000c8000000bc000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010374000000680000000210c0db1200000000400000c70084fdc9008bfdca008ffdcd0096fdce009afdd100a1fdd200a5fdd500acfdd600b0fdd900b7fdda00bbfddd00c2fdde00c6fde000cdfde200d1fde400d8fd
+e600dcfde700defd00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000008c0000
+00bf0000002a020000e3000000880200000900000012000000020000000200000002000000020000000200000002000000020000000200000002000000100c6028300cf027400cb027700c4027800c0027b00c9026c00c5026f00ce025000da025300d3025400df024700d8024800d4024a00dd023c00d9023e00d2023000ee022100ec022250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000c70084fdc70094fdc70084fdd10090fd00010001154001001000000004
+0000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000bf00000074020000cd0000008802000002000000040000000200000002000000100c6028
+100c6027100c6028b00ca027250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000cc010000c0010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103780100006c0100000210c0
+db46000000004000004f025dfc4d0264fc4b0268fc48026ffc470273fc44027afc42027efc3f0285fc3e0289fc3b0290fc390294fc36029bfc35029ffc3202a6fc3002aafc2d02b1fc2c02b5fc2902bcfc2702c0fc2502c7fc2302cbfc2002d2fc1e02d6fc1c02ddfc1a02e1fc1702e8fc1602ecfc1302f3fc1102f7fc0e02fefc0d0202fd0a0209fd08020dfd050214fd040218fd01021ffdff0123fdfc012afdfb012efdf801
+35fdf60139fdf40140fdf20144fdef014bfded014ffdeb0156fde9015afde60161fde50165fde2016cfde00170fddd0177fddc017bfdd90182fdd70186fdd4018dfdd30191fdd00198fdce019cfdcb01a3fdca01a7fdc701aefdc501b2fdc201b9fdc101bdfdbe01c4fdbc01c8fdba01cffdb801d3fdb501dafd000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100
+0100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000c4010000
+ad0100002e0200004b020000af030000230000004600000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000009024d0
+3a7024603a5024203a2024b03910247039e0230039c023c03890235038802310385023a037302360370023f036f022b036c0224036a022003670229035602250353022e0341022a034f0213034d021f033a0218033802140336021d03240219032102120320021e031d0207031b02030318020c03070208030402010302020d02ff01f602fe01f202fb01fb02e901f702e601f002e501fc02d201f502d001f102de01ea02cc01e
+602c901ef02b701eb02b501e402b301e002b001e902af01d502ac01de029a01da029701d3029601df028301d8028101d4028e01cd027d01c9027a01c2027801ce026501c7026401c3026101cc025f01b8025c01b1025b01bd024801b6024601b2024401bb023201b7023f01a0023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002
+000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000004f025dfc450269fc4f025dfc4e026dfc000100011540010010000000040000000000000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000003d0200009b0300004b020000af030000020000000400000002000000020000009024d03af023103a9024d03a8024d039250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003401000028010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103e0000000d40000000210c0db2800000000400000820203fd7e020afd7b020efd7702
+15fd740219fd700220fd6d0224fd69022bfd66022ffd610236fd5f023afd5a0241fd580245fd53024cfd510250fd4c0257fd49025bfd450262fd420266fd3e026dfd3b0271fd370278fd34027cfd300283fd2d0287fd28028efd260292fd210299fd1f029dfd1a02a4fd1802a8fd1302affd1002b3fd0c02bafd0902befd0502c5fd0202c9fdfe01d0fdfb01d4fdf601dbfd000100010001000100010001000100010001000100
+010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000010010000ee0100002d020000
+7e0200000903000014000000280000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c0277030802700305027c02f1027502fe026102fa026a02e7026602e3026f02d0026b02db025402d9025002d4025902c2025502cd024e02bb024a02b6024302b3024f02af02380
+2ac023402a8023d0295023902910232029e022e028a0227028702230282022c02700228027b02110279021d0264021602620212026d020b025a0207025602000253020c024f01f5024c01f1024801fa023501f6023001ff022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008800
+00007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000820203fd76020dfd820203fd7e0212fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000006e020000f60200007e0200000903000002000000040000000200000002000000c02770300027d02fc02770308027802f250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000b4000000a8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010360000000540000000210c0db0e00000000400000c00246ffb90245ffb50244ffae0242ffaa0241ffa3023fff9f023eff98023dff94023c
+ff8d023aff890239ff820237ff7e0236ff7b0235ff000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500
+00805a0000007400000073020000c2000000bc020000d7000000070000000e00000002000000020000000200000002000000020000000200000002000000a02b400c302b500cf02a600c802a800c402a900cd029b00c9029c00c2029d00ce028e00c7028000d3028100dc027300d8027400d5027500d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100
+0000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000c00246ffb3023effc00246ffb00247ff00010001154001001000000004000000000000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000a8020000c1000000bc020000ce00000002000000040000000200000002000000a02b400cd02ac00ca02b400ca02a300c250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a00000000400000ab0296ffa402
+93ffa00291ff99028eff95028cff8e0289ff8a0287ff830283ff7f0281ff7b027fff0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c0000000400000025
+0000000c000000050000805a0000005c0000007302000072000000a70200008d000000050000000a0000000200000002000000020000000200000002000000502a4007e0297007a02990073029c007f028e0078028100840283008d0277008902790085027b008250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000ab0296ffa0028bffab0296ff9b0294ff000100011540010010000000040000000000000024000000240000000000803d0000000000000000000080
+3d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009302000072000000a70200008100000002000000040000000200000002000000502a4007a029f007502a400750296007250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000004402000038020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103f0010000e40100000210c0db5e00000000400000d3022bfece0224fecb0220fec60219fec30215febe
+020efebb020afeb60203feb302fffdae02f8fdab02f4fda602edfda302e9fd9d02e2fd9a02defd9502d7fd9202d3fd8d02ccfd8a02c8fd8502c1fd8202bdfd7d02b6fd7a02b2fd7502abfd7202a7fd6d02a0fd6a029cfd640295fd610291fd5c028afd590286fd54027ffd51027bfd4c0274fd490270fd440269fd410265fd3c025efd39025afd330253fd31024ffd2b0248fd280244fd23023dfd200239fd1b0232fd18022efd
+130227fd100223fd0b021cfd080218fd030211fd00020dfdfa0106fdf70102fdf201fbfcef01f7fcea01f0fce701ecfce201e5fcdf01e1fcda01dafcd701d6fcd201cffccf01cbfcca01c4fcc701c0fcc101b9fcbe01b5fcb901aefcb601aafcb101a3fcae019ffca90198fca60194fca1018dfc9e0189fc990182fc96017efc910177fc8e0173fc88016cfc850168fc800161fc7d015dfc780156fc750152fc70014bfc6d0147
+fc680140fc65013cfc600135fc5d0131fc57012afc0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+00005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000540200004f010000dd010000cf020000e20300002f0000005e0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000d02cf01d802c601e502ca01e002c101fd02b501f802bc01f502b0020002b7020
+d02ab020802a2021502a6021002ad021d0291022702980224029c022f0283023c02870237028e02340282024f0279024c027d0247027402540278025f026f025c02630267026a0264026e026e0255027b02590276025002830254028e024b028b024f028602460293024a029e023102ab023502a6023c02a3023002bd022702bb022b02b5022202c2022602cd021d02ca021102d5021802d2021c02dd020302ea020702e5020e0
+2e2020202fd01f902fa01fd02f401f4030101f8030c01ef030901e3031401ea031101ee031c01d5032901d9032401d0033101d4033c01cb033901cf033401c6034101ca034b01b1035801b5035301bc035001b0036b01a7036801ab036301a2037001a6037b019d03780191038301980380019c038b0183039801870392018e039f017203aa017903a7017d03a2017403bf016803ba016f03b7016303c2016a03cf015e03ca015
+503d7015903d1015003e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c00000020
+0000000210c0db0400000000400000d3022bfece021cfed3022bfec60222fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+5a00000038000000be020000dd010000cf020000f001000002000000040000000200000002000000d02cf01d802ce01ed02cf01d002c801e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c00000002000000280000000c000000030000004c0000006400000000000000000000
+005103000018040000000000000000000052030000190400002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 9\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_80C9E6B0_CC22_4669_9098_E2634361212B}{\*\bkmkend BKM_80C9E6B0_CC22_4669_9098_E2634361212B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentsListenerInterface}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw26485\pich33350\picwgoal15015\pichgoal18900\picscalex62\picscaley62\sspicalign0 010000006c000000f8fffffffffffffff8020000b30300000000000000000000746700004682000020454d4600000100301a02007a150000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff01004ffced024ffced02ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffef020000b303000005000000100010001000103bd02e103bd02e100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc400ecffd100faffd100ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d10000001400000006000000
+10004001400c4001100d6000100d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc400ecffd100faffd100ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd3000000160000000600000010004001400c4001100d6000100d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e761899cc19086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300baea3e005c859e1020500f40067726e6edc59e102188d17
+01ed3a0a5e1899cc190600f20067726e6e37bb4000ed3a0a5e70374b0ba8d56b0008000000000000000000000098c8612348004b0b5c014b0b2899cc19f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000c10000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000bb000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000380100000600000004000000c20000000f0000000100000000400d4200040dc206000000fcffffff270000004c000000000000000000000000000000ffffffffffffffff9c00000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e006500720049006e00740065007200660061006300650000000600000003000000
+060000000600000006000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000600000006000000030000000600000003000000060000000600000006000000040000000300000006000000030000000600000004000000030000000600000006000000060000001b000000100000000000000000000000160000
+000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000080bf000040410a4000c01c00000010000000c0bfc0ff010000001300c7ffeb002700280000000c0000000100000021000000080000006200
+00000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001e000000fd00000045000000050000002001e00120015004d00f5004d00fe0012001e001250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001300c7ffeb0027003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff07000000140100005c0000000400000020015004d00f5004d00fe0012001e001250000000c00000007000080250000000c0000
+0000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000008041000058c200006b4300001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7
+e8ff0a4000401c0000001000000002000000010000001000caffeb002700250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f0000001b0000008900000042000000050000000f001b000f0042008900420089001b000f001b00250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000890000001b0000008f000000420000000500000089001b00890042008f0042008f001b0089001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df000000000025000000
+0c00000002000000250000000c0000000800008056000000300000008f0000001b0000009600000042000000050000008f001b008f0042009600420096001b008f001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000960000001b0000
+009d000000420000000500000096001b00960042009d0042009d001b0096001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000009d0000001b000000a400000042000000050000009d001b009d004200a4004200a4001b009d001b002500
+00000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c000000080000805600000030000000a40000001b000000aa0000004200000005000000a4001b00a4004200aa004200aa001b00a4001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027
+000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c000000080000805600000030000000aa0000001b000000b00000004200000005000000aa001b00aa004200b0004200b0001b00aa001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000
+250000000c000000080000805600000030000000b00000001b000000b70000004200000005000000b0001b00b0004200b7004200b7001b00b0001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000b70000001b000000bd000000420000
+0005000000b7001b00b7004200bd004200bd001b00b7001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c000000080000805600000030000000bd0000001b000000c10000004200000005000000bd001b00bd004200c1004200c1001b00bd001b00250000000c0000000800
+0080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d00000000000250000000c00000002000000250000000c000000080000805600000030000000c10000001b000000c50000004200000005000000c1001b00c1004200c5004200c5001b00c1001b00250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002
+00000000000000f1e3cf0000000000250000000c00000002000000250000000c000000080000805600000030000000c50000001b000000ca0000004200000005000000c5001b00c5004200ca004200ca001b00c5001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2cd0000000000250000000c00000002000000250000000c000000
+080000805600000030000000ca0000001b000000d00000004200000005000000ca001b00ca004200d0004200d0001b00ca001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c000000080000805600000030000000d00000001b000000d60000004200000005000000d0001b
+00d0004200d6004200d6001b00d0001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c000000080000805600000030000000d60000001b000000dc0000004200000005000000d6001b00d6004200dc004200dc001b00d6001b00250000000c00000008000080250000000c00
+000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000dc0000001b000000e30000004200000005000000dc001b00dc004200e3004200e3001b00dc001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ec
+dcc50000000000250000000c00000002000000250000000c000000080000805600000030000000e30000001b000000ea0000004200000005000000e3001b00e3004200ea004200ea001b00e3001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c0000000800008056000000
+30000000ea0000001b000000f00000004200000005000000ea001b00ea004200f0004200f0001b00ea001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000f00000001b000000f60000004200000005000000f0001b00f0004200f60042
+00f6001b00f0001b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000f60000001b000000fa0000004200000005000000f6001b00f6004200fa004200fa001b00f6001b00250000000c00000008000080250000000c000000000000802800
+00000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001000caffeb0027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000f8ffffff04000000110100005900000004000000f0002004a00f2004a00fb001f000b001250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901093e0a9f9c58530bb2961901000000003899cc198ce3c577738c172646e0c5779401300b0000300b188d1701093e0a9f0400f60070726e6ec457e10237bb4000093e0a9f3899cc190500f40070726e6e9087a1263c5ce10270374b0b0000000008000000000000000000000098c8612348004b0b5c014b0b3899cc19f0
+374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a249091cc19010000003099cc19dc57e10223e0c5773899cc193a6c2e76086545013099cc19f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000001a000000ebfffffff2000000deffffff16000000
+0c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000006a000000210000009f0000002d0000000100000000400d4200040dc26b000000ebffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00000006000000030000000600000003000000060000
+000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc0200000000000100
+00050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e763899cc1908654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300be0a3000a1c58e1020500f00072726e6e3058e102188d1701093e0aa03899cc190600f200
+72726e6e37bb4000093e0aa070374b0ba8d56b0008000000a05ae1020000000098c8612348004b0b5c014b0b2899cc19f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a12671726e6e8814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000
+000c00000003000000180000000c0000000000000054000000ac0000005f0000002e000000aa000000390000000100000000400d4200040dc260000000deffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e00740073000500000004000000060000000300000003000000030000000600000003000000060000000600
+00000300000006000000060000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001000d2fffb00d2ff0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c000000050000805700000024000000f8ffffff23000000110100005100000002000000f000a003a00fa003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c0000
+0010000000c0bfc0ff010000001c0009fda801240224000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000001b000000df000000c30100000303000005000000b001f00db0013030301c3030301cf00db001f00d250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001c0009fda80124023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000004000000c8000000da0100001a03000004000000b0013030301c3030301cf00db001f00d250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c84100003dc40000d44300000944bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000019000c
+fda8012402250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000018000000dc000000f400000000030000050000001800dc0018000003f4000003f400dc001800dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1
+e10000000000250000000c00000004000000250000000c000000080000805600000030000000f4000000dc000000ff0000000003000005000000f400dc00f4000003ff000003ff00dc00f400dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030
+000000ff000000dc0000000a0100000003000005000000ff00dc00ff0000030a0100030a01dc00ff00dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000000a010000dc0000001401000000030000050000000a01dc000a01000314010003
+1401dc000a01dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000014010000dc0000001e01000000030000050000001401dc00140100031e0100031e01dc001401dc00250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000001e010000dc0000002901000000030000050000001e01dc001e010003290100032901dc001e01dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead800000000002500
+00000c00000004000000250000000c00000008000080560000003000000029010000dc0000003401000000030000050000002901dc0029010003340100033401dc002901dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000034010000dc
+0000003f01000000030000050000003401dc00340100033f0100033f01dc003401dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000003f010000dc0000004901000000030000050000003f01dc003f010003490100034901dc003f01dc00
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000049010000dc0000005301000000030000050000004901dc0049010003530100035301dc004901dc00250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000053010000dc0000005e01000000030000050000005301dc00530100035e0100035e01dc005301dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c0000000400
+0000250000000c0000000800008056000000300000005e010000dc0000006701000000030000050000005e01dc005e010003670100036701dc005e01dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000067010000dc0000006e01000000
+030000050000006701dc00670100036e0100036e01dc006701dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006e010000dc0000007901000000030000050000006e01dc006e010003790100037901dc006e01dc00250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000079010000dc0000008401000000030000050000007901dc0079010003840100038401dc007901dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000084010000dc0000008f01000000030000050000008401dc00840100038f0100038f01dc008401dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00
+00000800008056000000300000008f010000dc0000009c01000000030000050000008f01dc008f0100039c0100039c01dc008f01dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000009c010000dc000000a901000000030000050000009c
+01dc009c010003a9010003a901dc009c01dc00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000a9010000dc000000b30100000003000005000000a901dc00a9010003b3010003b301dc00a901dc00250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000b3010000dc000000be0100000003000005000000b301dc00b3010003be010003be01dc00b301dc00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000be010000dc000000c00100000003000005000000be01dc00be010003c0010003c001dc00be01dc00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000019000cfda80124023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c
+00000004000000250000000c00000005000080560000002c00000001000000c5000000d7010000170300000400000080010030001c0030001cc00d8001c00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000230000002affffffb80100001dffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000d2000000e200000007010000ee0000000100000000400d4200040dc2d30000002affffff0b00
+00004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00000006000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000010000000c0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000dc000000b3000000ef00000026010000fa0000000100000000400d4200040dc2b40000001dffffff180000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e00740073
+004c0069007300740065006e00650072000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000600000006000000030000000600000003000000060000000600000006000000040000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b084000023800
+00002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000190011ffc10111ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024
+0000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000001000000e4000000d701000012010000020000008001b00f001cb00f250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d00000001010000260000000d0100000100000000400d4200040dc21e00
+00000bffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000080100002e00000001010000c10000000d0100000100000000400d42
+00040dc22f0000000bffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000670065007400560065007200730069006f006e005200650070006c0079002800560065007200730069006f006e002900200020003a0076006f006900640000000600000006000000030000000700000006000000030000000400000003000000060000000600000007000000060000000600000003000000050000
+00030000000700000006000000030000000400000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000000e01000026
+0000001a0100000100000000400d4200040dc21e000000fefeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100002e0000
+000e010000e90000001a0100000100000000400d4200040dc22f000000fefeffff270000004c000000000000000000000000000000ffffffffffffffff9c0000006700650074004c0061006e00670075006100670065005200650070006c007900280053007400720069006e0067002c00200053007400720069006e0067002900200020003a0076006f0069006400000006000000060000000300000006000000060000000600
+00000600000006000000060000000600000006000000070000000600000006000000030000000500000003000000070000000300000003000000030000000600000006000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff
+0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000001b01000026000000270100000100000000400d4200040dc21e000000f1feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000e40000002e0000001b010000a9000000270100000100000000400d4200040dc22f000000f1feffff190000004c000000000000000000000000000000ffffffffffffffff800000007300650074004c0061006e00670075006100670065005200650070006c00790028
+002900200020003a0076006f00690064002000040000000600000003000000060000000600000006000000060000000600000006000000060000000600000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000002801000026000000340100000100000000400d4200040dc21e000000e4feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000002e00000028010000b3000000340100000100000000400d4200040dc22f000000e4feffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000730065007400540069006d00650046006f0072006d00610074005200650070006c00790028002900200020003a007600
+6f0069006400ffff0400000006000000030000000700000003000000090000000600000006000000060000000300000009000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000003501000026000000410100000100000000400d4200040dc21e000000d7feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000002e00000035010000b0000000410100000100000000400d4200040dc22f000000d7feffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000730065007400440061007400650046006f0072006d00610074005200650070006c00790028002900200020003a0076006f0069
+0064004b0b0400000006000000030000000700000006000000030000000600000006000000060000000300000009000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d00000042010000260000004e0100000100000000400d4200040dc21e000000cafeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000002e00000042010000ad0000004e0100000100000000400d4200040dc22f000000cafeffff1b0000004c000000000000000000000000000000ffffffffffffffff840000007300650074004c0065006e0067007400680055006e00690074005200650070006c00790028002900200020003a0076006f0069006400
+4b0b0400000006000000030000000600000006000000060000000600000003000000060000000700000006000000030000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000004f010000260000005b0100000100000000400d4200040dc21e000000bdfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000002e0000004f010000ad0000005b0100000100000000400d4200040dc22f000000bdfeffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000073006500740057006500690067006800740055006e00690074005200650070006c00790028002900200020003a0076006f0069006400000004
+00000006000000030000000900000006000000030000000600000006000000030000000700000006000000030000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000000040400054000000580000001d0000005c01000026000000680100000100000000400d4200040dc21e000000b0feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100002e0000005c010000d2000000680100000100000000400d4200040dc22f000000b0feffff240000004c000000000000000000000000000000ffffffffffffffff940000006700650074004100700070006c00690063006100620069006c006900740079005200650070006c007900280053007400720069006e00670029002000
+20003a0076006f00690064000600000006000000030000000700000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000007000000060000000600000003000000050000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000
+000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000006901000026000000750100000100000000400d4200040dc21e000000a3feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010
+000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000000100002e00000069010000b4000000750100000100000000400d4200040dc22f000000a3feffff1e0000004c000000000000000000000000000000ffffffffffffffff880000007300650074004100700070
+006c00690063006100620069006c006900740079005200650070006c00790028002900200020003a0076006f006900640004000000060000000300000007000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000070000000600000006000000030000000500000003000000030000000300000003000000030000000500000006000000030000000600
+00000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000007601000026000000820100000100000000400d4200040dc21e00000096feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000003c0100002e00000076010000eb000000820100000100000000400d4200040dc22f00000096feffff280000004c000000000000000000000000000000ffffffffffffffff9c00
+00007200650073006500720076006500490063006f006e005300650074004900640073005200650070006c0079002800490063006f006e00530065007400490064002900200020003a0076006f006900640003000000060000000400000006000000030000000500000006000000030000000500000006000000060000000700000006000000030000000300000006000000040000000700000006000000060000000300000005
+0000000300000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000
+001d00000083010000260000008f0100000100000000400d4200040dc21e00000089feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054
+000000f40000002e00000083010000af0000008f0100000100000000400d4200040dc22f00000089feffff1c0000004c000000000000000000000000000000ffffffffffffffff840000006600720065006500490063006f006e005300650074004900640073005200650070006c00790028002900200020003a0076006f0069006400030000000300000006000000060000000300000005000000060000000600000007000000
+060000000300000003000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800
+00001d00000090010000260000009c0100000100000000400d4200040dc21e0000007cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000
+540000000c0100002e00000090010000c70000009c0100000100000000400d4200040dc22f0000007cfeffff200000004c000000000000000000000000000000ffffffffffffffff8c000000670065007400490063006f006e0053006500740073005200650070006c0079002800490063006f006e005300650074002900200020003a0076006f0069006400060000000600000003000000030000000500000006000000060000
+00070000000600000003000000040000000700000006000000060000000300000005000000030000000300000005000000060000000600000007000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000000040400054000000580000001d0000009d01000026000000a90100000100000000400d4200040dc21e0000006ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000000040400054000000200100002e0000009d010000d4000000a90100000100000000400d4200040dc22f0000006ffeffff230000004c000000000000000000000000000000ffffffffffffffff94000000610064006400490063006f006e0053006500740044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f00
+69006400300b06000000060000000600000003000000050000000600000006000000070000000600000003000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000aa01000026000000b60100000100000000400d4200040dc21e00000062feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000300100002e000000aa010000e5000000b60100000100000000400d4200040dc22f00000062feffff260000004c000000000000000000000000000000ffffffffffffffff98000000720065006d006f0076006500490063006f006e0053
+006500740044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f006900640003000000060000000900000006000000050000000600000003000000050000000600000006000000070000000600000003000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000
+050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000b701000026000000c30100000100000000400d4200040dc21e00000055fe
+ffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000600100002e000000b701000003010000c30100000100000000400d4200040dc2
+2f00000055feffff2e0000004c000000000000000000000000000000ffffffffffffffffa8000000670065007400490063006f006e0044006500660069006e006900740069006f006e0073005200650070006c0079002800490063006f006e0044006500660069006e006900740069006f006e002900200020003a0076006f00690064000600000006000000030000000300000005000000060000000600000007000000060000
+00030000000300000006000000030000000300000003000000060000000600000004000000070000000600000006000000030000000500000003000000030000000500000006000000060000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000c401000026000000d00100000100000000400d4200040dc21e00000048feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000001000000
+0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000c0100002e000000c4010000c4000000d00100000100000000400d4200040dc22f00000048feffff200000004c000000000000000000000000000000ffffffffffffffff8c000000610064006400490063006f006e0044006500
+660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f006900640006000000060000000600000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003
+000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000d101000026000000dd0100000100000000400d4200040dc21e0000003bfeffff020000004c000000000000000000000000000000ffffffffffffffff500000
+002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000200100002e000000d1010000d5000000dd0100000100000000400d4200040dc22f0000003bfeffff230000004c000000000000000000000000000000ffffffffff
+ffffff94000000720065006d006f0076006500490063006f006e0044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f00690064002e7603000000060000000900000006000000050000000600000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000
+060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000de01000026000000ea010000010000000040
+0d4200040dc21e0000002efeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000480100002e000000de010000f7000000ea010000
+0100000000400d4200040dc22f0000002efeffff2a0000004c000000000000000000000000000000ffffffffffffffffa00000007200650073006500720076006500430061007400650067006f00720079004900640073005200650070006c0079002800430061007400650067006f0072007900490064002900200020003a0076006f006900640003000000060000000400000006000000030000000500000006000000070000
+00060000000300000006000000060000000600000003000000050000000300000006000000040000000700000006000000060000000300000005000000030000000700000006000000030000000600000006000000060000000300000005000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ff
+ffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000eb01000026000000f70100000100000000400d4200040dc21e00000021feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000fc0000002e000000eb010000b5000000f70100000100000000400d4200040dc22f00000021feffff1d0000004c000000000000000000000000000000ffffffffffffffff880000006600720065006500430061007400650067006f0072007900490064007300
+5200650070006c00790028002900200020003a0076006f0069006400335303000000030000000600000006000000070000000600000003000000060000000600000006000000030000000500000003000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000f801000026000000040200000100000000400d4200040dc21e00000014feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000900100002e000000f80100002f010000040200000100000000400d4200040dc22f00000014feffff360000004c000000000000000000000000000000ffffffffffffffffb8000000670065007400430061007400650067006f00720079
+0044006500660069006e006900740069006f006e0073005200650070006c0079002800430061007400650067006f007200790044006500660069006e006900740069006f006e002900200020003a0076006f00690064000600000006000000030000000700000006000000030000000600000006000000060000000300000005000000070000000600000003000000030000000600000003000000030000000300000006000000
+060000000400000007000000060000000600000003000000050000000300000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffff
+ffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000000502000026000000110200000100000000400d4200040dc21e00000007feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100002e00000005020000da000000110200000100000000400d4200040dc22f00000007feffff240000004c000000000000000000000000000000ffffffffffffffff94000000610064006400430061007400650067006f007200790044006500660069006e
+006900740069006f006e0073005200650070006c00790028002900200020003a0076006f0069006400060000000600000006000000070000000600000003000000060000000600000006000000030000000500000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000700000006000000060000000300000005000000030000000300000003000000030000000300
+0000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d00000012020000260000001e0200000100000000400d4200040dc21e000000fafdffff020000004c000000000000000000000000000000
+ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100002e00000012020000eb0000001e0200000100000000400d4200040dc22f000000fafdffff270000004c000000000000000000
+000000000000ffffffffffffffff9c000000720065006d006f0076006500430061007400650067006f007200790044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f0069006400bf23030000000600000009000000060000000500000006000000070000000600000003000000060000000600000006000000030000000500000007000000060000000300000003
+0000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+000040400054000000580000001d0000001f020000260000002b0200000100000000400d4200040dc21e000000edfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000000040400054000000840100002e0000001f020000190100002b0200000100000000400d4200040dc22f000000edfdffff340000004c000000000000000000000000000000ffffffffffffffffb4000000670065007400540072006100660066006900630049006e0063006900640065006e0074004900640073005200650070006c0079002800540072006100660066006900630049006e006300690064006500
+6e007400490064002900200020003a0076006f00690064000600000006000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000040000000700000006000000060000000300000005000000030000000700000003000000060000000300000003000000030000000500000003000000060000
+00050000000300000006000000060000000600000003000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000002c02000026
+000000380200000100000000400d4200040dc21e000000e0fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000b00100002e0000
+002c0200003c010000380200000100000000400d4200040dc22f000000e0fdffff3b0000004c000000000000000000000000000000ffffffffffffffffc4000000670065007400540072006100660066006900630049006e0063006900640065006e00740049006400730049006e00410072006500610073005200650070006c0079002800540072006100660066006900630049006e0063006900640065006e00740049006400
+2900200020003a0076006f00690064001a240600000006000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000040000000300000006000000070000000300000006000000060000000400000007000000060000000600000003000000050000000300000007000000030000000600000003
+0000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+000040400054000000580000001d0000003902000026000000450200000100000000400d4200040dc21e000000d3fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c00000000404000540000006c0100002e0000003902000007010000450200000100000000400d4200040dc22f000000d3fdffff300000004c000000000000000000000000000000ffffffffffffffffac000000670065007400540072006100660066006900630049006e0063006900640065006e00740073005200650070006c0079002800540072006100660066006900630049006e0063006900640065006e007400
+2900200020003a0076006f006900640006000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000600000006000000030000000500000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000
+00060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000004602000026000000520200000100000000400d4200040dc21e000000c6
+fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000900100002e0000004602000023010000520200000100000000400d4200040d
+c22f000000c6fdffff360000004c000000000000000000000000000000ffffffffffffffffb8000000670065007400540072006100660066006900630049006e0063006900640065006e00740073004600690065006c00640073005200650070006c0079002800540072006100660066006900630049006e0063006900640065006e0074002900200020003a0076006f0069006400060000000600000003000000070000000300
+0000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000600000003000000060000000400000007000000060000000600000003000000050000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003
+000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d00000053020000260000005f0200000100000000400d4200040dc21e000000b9fdffff020000004c0000
+00000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f40000002e00000053020000b00000005f0200000100000000400d4200040dc22f000000b9fdffff1c
+0000004c000000000000000000000000000000ffffffffffffffff84000000670065007400540065007800740073005200650070006c007900280053007400720069006e0067002900200020003a0076006f00690064000600000006000000030000000700000006000000050000000300000004000000070000000600000006000000030000000500000003000000070000000300000003000000030000000600000006000000
+03000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d00000060020000260000006c0200000100000000400d4200040dc21e000000acfdffff020000004c00
+0000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000680100002e00000060020000080100006c0200000100000000400d4200040dc22f000000acfdffff
+2f0000004c000000000000000000000000000000ffffffffffffffffac000000610064006400540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f0069006400c577060000000600000006000000070000000300000006000000030000000300000003000000050000
+00030000000600000005000000030000000600000006000000060000000300000004000000070000000300000006000000030000000600000004000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000006d02000026000000790200000100000000400d4200040dc21e0000009ffdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000001000000
+0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000780100002e0000006d02000019010000790200000100000000400d4200040dc22f0000009ffdffff320000004c000000000000000000000000000000ffffffffffffffffb0000000720065006d006f0076006500540072006100
+660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f006900640003000000060000000900000006000000050000000600000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004
+000000070000000300000006000000030000000600000004000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000007a02000026000000860200000100000000400d4200040dc21e00000092fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000003c0100002e0000007a020000f1000000860200000100000000400d4200040dc22f00000092fdffff280000004c000000000000000000000000000000ffffffffffffffff9c000000610064006400460065006500640049006e0066006f0072006d006100740069006f006e004c0069007300740065006e0065007200
+5200650070006c00790028002900200020003a0076006f006900640006000000060000000600000006000000060000000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000006000000030000000400000003000000060000000600000006000000030000000700000006000000060000000300000005000000030000000300000003000000030000
+0003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000008702000026000000930200000100000000400d4200040dc21e00000085fdffff020000004c000000000000000000000000
+000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000500100002e0000008702000002010000930200000100000000400d4200040dc22f00000085fdffff2b0000004c000000000000
+000000000000000000ffffffffffffffffa4000000720065006d006f0076006500460065006500640049006e0066006f0072006d006100740069006f006e004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f0069006400000003000000060000000900000006000000050000000600000006000000060000000600000006000000030000000600000003000000060000000300
+0000090000000600000003000000030000000600000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d0000009402000026000000a00200000100000000400d4200040dc21e00000078fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000080100002e00000094020000c5000000a00200000100000000400d4200040dc22f00000078fdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006100640064005500700064006100740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a
+0076006f00690064000000060000000600000006000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffff
+ff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000a102000026000000ad0200000100000000400d4200040dc21e0000006bfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000180100002e000000a1020000d6000000ad0200000100000000400d4200040dc22f0000006bfdffff220000004c000000000000000000000000000000ffffffffffffffff90000000720065006d006f00760065005500700064006100740065004c00690073007400
+65006e00650072005200650070006c00790028002900200020003a0076006f00690064000300000006000000090000000600000005000000060000000700000006000000060000000600000003000000060000000600000003000000040000000300000006000000060000000600000003000000070000000600000006000000030000000500000003000000030000000300000003000000030000000500000006000000030000
+00060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000ae02000026000000ba0200000100000000400d4200040dc21e0000005efdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b
+00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100002e000000ae020000df000000ba0200000100000000400d4200040dc22f0000005efdffff240000004c000000000000000000000000000000ffffffffffffff
+ff94000000610064006400410072006500610073005500700064006100740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f0069006400060000000600000006000000070000000300000006000000060000000400000007000000060000000600000006000000030000000600000006000000030000000400000003000000060000000600000006000000030000000700
+0000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000bb02000026000000c702000001000000
+00400d4200040dc21e00000051fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100002e000000bb020000f0000000c702
+00000100000000400d4200040dc22f00000051fdffff270000004c000000000000000000000000000000ffffffffffffffff9c000000720065006d006f0076006500410072006500610073005500700064006100740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f00690064004b0b030000000600000009000000060000000500000006000000070000000300000006
+0000000600000004000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000c802000026000000d40200000100000000400d4200040dc21e00000044fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002c0200002e000000c802000096010000d40200000100000000400d4200040dc22f00000044fdffff500000004c000000000000000000000000000000ffffffffffffffffec000000740072006100660066006900630049006e0063006900640065006e0074007300530074006100740075007300
+2800540072006100660066006900630049006e0063006900640065006e00740046006500650064005300740061007400750073002c002000540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073002900200020003a0076006f0069006400030000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000
+0006000000030000000400000007000000030000000600000003000000060000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000060000000600000006000000060000000700000003000000060000000300000006000000040000000300000003000000070000000300000006000000030000000300
+0000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000007000000030000000600000003000000060000000400000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000000040400054000000580000001d000000d502000026000000e10200000100000000400d4200040dc21e00000037fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c0000000040400054000000380100002e000000d5020000ea000000e10200000100000000400d4200040dc22f00000037fdffff270000004c000000000000000000000000000000ffffffffffffffff9c000000660065006500640049006e0066006f0072006d006100740069006f006e002800460065006500640049006e0066006f0072006d006100740069006f006e00290020
+0020003a0076006f0069006400c5770300000006000000060000000600000003000000060000000300000006000000030000000900000006000000030000000300000006000000060000000300000006000000060000000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000
+060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000e202000026000000ee0200000100000000400d4200040dc21e0000002afdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00
+200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000680200002e000000e2020000bc010000ee0200000100000000400d4200040dc22f0000002afdffff5a0000004c000000000000000000000000000000ffffffffffffffff
+0001000075007000640061007400650073002800540072006100660066006900630049006e0063006900640065006e007400490064002c002000540072006100660066006900630049006e0063006900640065006e007400490064002c002000540072006100660066006900630049006e0063006900640065006e007400490064002c002000540072006100660066006900630049006e0063006900640065006e007400490064
+002900200020003a0076006f0069006400060000000600000006000000060000000300000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300
+0000060000000600000006000000030000000300000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003
+000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001d000000ef02000026000000fb0200000100000000400d4200040dc21e0000
+001dfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000300100002e000000ef020000e8000000fb0200000100000000400d4200
+040dc22f0000001dfdffff260000004c000000000000000000000000000000ffffffffffffffff98000000750070006400610074006500730049006e00410072006500610073002800520065006300740061006e00670075006c006100720041007200650061002900200020003a0076006f0069006400060000000600000006000000060000000300000006000000040000000300000006000000070000000300000006000000
+06000000040000000300000007000000060000000500000003000000060000000600000006000000060000000300000006000000030000000700000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0
+ff01000000cf016bfebc0061002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ce010000400100008a020000a101000005000000e01c0014e01c101aa028101aa0280014e01c
+0014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000cf016bfebc0061003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b701000029010000a1020000b801000004000000e01c101aa028101aa0280014e01c001425000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000e6430000c9c300003c430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000000000000000
+3f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000cc016efebc006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000cb0100003d0100002d0200009e01000005000000cb013d01cb019e012d029e012d023d01cb013d01250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000002d0200003d010000320200009e010000050000002d023d012d029e0132029e0132023d012d023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000320200003d010000370200009e0100000500000032023d0132029e0137029e0137023d0132023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080
+5600000030000000370200003d0100003d0200009e0100000500000037023d0137029e013d029e013d023d0137023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000003d0200003d010000420200009e010000050000003d023d013d029e
+0142029e0142023d013d023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000420200003d010000470200009e0100000500000042023d0142029e0147029e0147023d0142023d01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000470200003d0100004c0200009e0100000500000047023d0147029e014c029e014c023d0147023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000
+000000250000000c00000004000000250000000c0000000800008056000000300000004c0200003d010000510200009e010000050000004c023d014c029e0151029e0151023d014c023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000
+510200003d010000570200009e0100000500000051023d0151029e0157029e0157023d0151023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000570200003d0100005c0200009e0100000500000057023d0157029e015c029e015c023d
+0157023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000005c0200003d010000600200009e010000050000005c023d015c029e0160029e0160023d015c023d01250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000600200003d010000630200009e0100000500000060023d0160029e0163029e0163023d0160023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c
+00000004000000250000000c000000080000805600000030000000630200003d010000680200009e0100000500000063023d0163029e0168029e0168023d0163023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000680200003d010000
+6c0200009e0100000500000068023d0168029e016c029e016c023d0168023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000006c0200003d010000720200009e010000050000006c023d016c029e0172029e0172023d016c023d01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000720200003d010000770200009e0100000500000072023d0172029e0177029e0177023d0172023d01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000770200003d0100007d0200009e0100000500000077023d0177029e017d029e017d023d0177023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c0000000400000025
+0000000c0000000800008056000000300000007d0200003d010000820200009e010000050000007d023d017d029e0182029e0182023d017d023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000820200003d010000860200009e010000
+0500000082023d0182029e0186029e0186023d0182023d01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000860200003d010000870200009e0100000500000086023d0186029e0187029e0187023d0186023d01250000000c000000080000
+80250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000cc016efebc0061003a0000000c0000000a00000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b4010000260100009e020000b501000004000000b01ce0197028e0197028d013b01cd013250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000d6010000c9feffff7f020000bcfeffff160000000c00000001000000120000000c000000010000
+001b000000100000000000000000000000160000000c0000000000000054000000900000001002000043010000430200004f0100000100000000400d4200040dc211020000c9feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00a6010600000004000000030000000300000006000000050000000300000006000000030000000600
+0000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a8000000fe01000050010000540200005b0100000100000000400d42
+00040dc2ff010000bcfeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000063006f006d006d006f006e003a003a00560065007200730069006f006e001a240600000006000000090000000900000006000000060000000300000003000000070000000600000004000000060000000300000006000000060000000a00000010000000010000000c0000000c0000001000000000000000000000
+00460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000cc01aafe8802aafe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000
+0000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000b40100004b0100009e0200007901000002000000b01c201670
+282016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000d0010000660100
+00d9010000720100000100000000400d4200040dc2d1010000a6feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000e1
+0100006601000083020000720100000100000000400d4200040dc2e2010000a6feffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d0061006a006f007200200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d0062006500720009000000060000000300000006000000030000000300000003000000030000000700000006000000
+06000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+000058000000d001000073010000d90100007f0100000100000000400d4200040dc2d101000099feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000000010000e101000073010000830200007f0100000100000000400d4200040dc2e201000099feffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d0069006e006f007200200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d00620065007200090000000300000006000000060000000300000003000000030000
+0003000000070000000600000006000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b0000005400000058000000d001000080010000d90100008c0100000100000000400d4200040dc2d10100008cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b0000005400000000010000e101000080010000820200008c0100000100000000400d4200040dc2e20100008cfeffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d006900630072006f00200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d006200650072000900000003000000050000000300
+000006000000030000000300000003000000070000000600000006000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b0000005400000058000000d00100008d010000d9010000990100000100000000400d4200040dc2d10100007ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000e10100008d0100001b020000990100000100000000400d4200040dc2e20100007ffeffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006400610074006500200020003a0053007400720069006e0067000703060000000600000003000000060000000300000003000000030000000700000003
+000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002d0272ffb5007e002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d
+000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002c0200001c000000e10200009a00000005000000c022c001c022a009102ea009102ec001c022c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000
+002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002d0272ffb5007e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc0000000
+00000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001502000005000000f8020000b100000004000000c022a009102ea009102ec001c022c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000004600000084
+00000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000800a4400000bc3000035430000fc42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002a0275ffb5007e00250000000c0000000800008027000000180000000400000000000000fcf2e3000000000025000000
+0c00000004000000250000000c00000008000080560000003000000029020000190000008702000097000000050000002902190029029700870297008702190029021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000087020000190000
+008c020000970000000500000087021900870297008c0297008c02190087021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008c020000190000009102000097000000050000008c0219008c02970091029700910219008c0219002500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000091020000190000009602000097000000050000009102190091029700960297009602190091021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000096020000190000009c020000970000000500000096021900960297009c0297009c02190096021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000
+250000000c0000000800008056000000300000009c02000019000000a002000097000000050000009c0219009c029700a0029700a00219009c021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000a002000019000000a5020000970000
+0005000000a0021900a0029700a5029700a5021900a0021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a502000019000000aa0200009700000005000000a5021900a5029700aa029700aa021900a5021900250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000aa02000019000000af0200009700000005000000aa021900aa029700af029700af021900aa021900250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000af02000019000000b20200009700000005000000af021900af029700b2029700b2021900af021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000
+080000805600000030000000b202000019000000b60200009700000005000000b2021900b2029700b6029700b6021900b2021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b602000019000000b90200009700000005000000b60219
+00b6029700b9029700b9021900b6021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000b902000019000000be0200009700000005000000b9021900b9029700be029700be021900b9021900250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000be02000019000000c20200009700000005000000be021900be029700c2029700c2021900be021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ee
+dfc90000000000250000000c00000004000000250000000c000000080000805600000030000000c202000019000000c70200009700000005000000c2021900c2029700c7029700c7021900c2021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000
+30000000c702000019000000cc0200009700000005000000c7021900c7029700cc029700cc021900c7021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000cc02000019000000d20200009700000005000000cc021900cc029700d20297
+00d2021900cc021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000d202000019000000d70200009700000005000000d2021900d2029700d7029700d7021900d2021900250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000d702000019000000db0200009700000005000000d7021900d7029700db029700db021900d7021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be000000000025
+0000000c00000004000000250000000c000000080000805600000030000000db02000019000000de0200009700000005000000db021900db029700de029700de021900db021900250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f
+0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002a0275ffb5007e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000
+000c00000005000080560000002c0000001202000002000000f5020000ae0000000400000090227009e02d7009e02d900190229001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac0000005c02000022000000ab0200002d0000000100000000400d4200040dc25d020000eaffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e007300650074003a003a00490063006f006e00530065007400030000000600000006000000060000000600000006000000
+030000000300000003000000030000000600000006000000060000000700000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000
+002a02d8ffdf02d8ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000
+0000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000120200001d000000f50200004b0000000200000090224003e02d4003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ff
+ffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002e0200003800000037020000440000000100000000400d4200040dc22f020000d4ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000003f02000038000000a2020000440000000100000000400d4200040dc240020000d4ffffff150000004c000000000000000000000000000000ffffffffffffffff78000000690063006f006e0053006500740049006400200020003a00490063006f
+006e0053006500740049006400ba260300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000300000005000000060000000600000007000000060000000300000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000580000002e0200004500000037020000510000000100000000400d4200040dc22f020000c7ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b00000054000000f40000003f02000045000000c3020000510000000100000000400d4200040dc240020000c7ffffff1c0000004c000000000000000000000000000000ffffffffffffffff8400000063006f006c006f0072005400790070006500200020003a0043006f006c006f007200540079007000650020005b0030002e002e0031005d00050000000600000003000000
+060000000300000007000000050000000600000006000000030000000300000003000000070000000600000003000000060000000300000007000000050000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000580000002e02000052000000370200005e0000000100000000400d4200040dc22f020000baffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b000000540000000c0100003f02000052000000da0200005e0000000100000000400d4200040dc240020000baffffff200000004c000000000000000000000000000000ffffffffffffffff8c000000640069006d0065006e00730069006f006e00200020003a00490063006f006e00440069006d0065006e00730069006f006e0020005b0030002e002e0031005d00060000
+00030000000900000006000000060000000400000003000000060000000600000003000000030000000300000003000000050000000600000006000000070000000300000009000000060000000600000004000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002e0200005f000000370200006b0000000100000000400d4200040dc22f020000adffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c0000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000003f0200005f0000009e0200006b0000000100000000400d4200040dc240020000adffffff160000004c000000000000000000000000000000ffffffffffffffff78000000730069007a006500200020003a00490063006f006e00530069007a00650020005b0030002e002e003100
+5d00040000000300000005000000060000000300000003000000030000000300000005000000060000000600000007000000030000000500000006000000030000000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000580000002e0200006c00000037020000780000000100000000400d4200040dc22f020000a0ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000008b00000054000000cc0000003f0200006c000000ad020000780000000100000000400d4200040dc240020000a0ffffff150000004c000000000000000000000000000000ffffffffffffffff78000000640061007900540069006d006500490063006f006e00200020003a0062006f006f006c00650061006e008028060000000600000005000000070000000300000009000000060000000300000005
+0000000600000006000000030000000300000003000000060000000600000006000000030000000600000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002e0200007900000037020000850000000100000000400d
+4200040dc22f02000093ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003f02000079000000900200008500000001
+00000000400d4200040dc24002000093ffffff110000004c000000000000000000000000000000ffffffffffffffff700000007400680065006d00650049006400200020003a0049006e0074006500670065007200001c03000000060000000600000009000000060000000300000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a0000001000000001000000
+0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002e0200008600000037020000920000000100000000400d4200040dc22f02000086ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000
+0000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000003f02000086000000a3020000920000000100000000400d4200040dc24002000086ffffff130000004c000000000000000000000000000000ffffffffffffffff740000006d0065006400690075006d00
+5400790070006500200020003a0053007400720069006e006700ff18090000000600000006000000030000000600000009000000070000000500000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0
+ff01000000ac0164ff590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ab0100006300000004020000a800000005000000b01a3006b01a800a4020800a40203006b01a
+3006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000ac0164ff590045003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000940100004c0000001b020000bf00000004000000b01a800a4020800a40203006b01a300625000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080d443000019c30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000000000000000
+3f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000a90167ff59004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a801000060000000d6010000a500000005000000a8016000a801a500d601a500d6016000a8016000250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000d601000060000000d7010000a500000005000000d6016000d601a500d701a500d7016000d6016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000d701000060000000d8010000a500000005000000d7016000d701a500d801a500d8016000d7016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080
+5600000030000000d801000060000000d9010000a500000005000000d8016000d801a500d901a500d9016000d8016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000d901000060000000da010000a500000005000000d9016000d901a5
+00da01a500da016000d9016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000da01000060000000db010000a500000005000000da016000da01a500db01a500db016000da016000250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000db01000060000000dd010000a500000005000000db016000db01a500dd01a500dd016000db016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000
+000000250000000c00000004000000250000000c000000080000805600000030000000dd01000060000000de010000a500000005000000dd016000dd01a500de01a500de016000dd016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000
+de01000060000000df010000a500000005000000de016000de01a500df01a500df016000de016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000df01000060000000e1010000a500000005000000df016000df01a500e101a500e10160
+00df016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000e101000060000000e2010000a500000005000000e1016000e101a500e201a500e2016000e1016000250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000e201000060000000e3010000a500000005000000e2016000e201a500e301a500e3016000e2016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c
+00000004000000250000000c000000080000805600000030000000e301000060000000e4010000a500000005000000e3016000e301a500e401a500e4016000e3016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000e401000060000000
+e5010000a500000005000000e4016000e401a500e501a500e5016000e4016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000e501000060000000e6010000a500000005000000e5016000e501a500e601a500e6016000e5016000250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000e601000060000000e7010000a500000005000000e6016000e601a500e701a500e7016000e6016000250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000e701000060000000e8010000a500000005000000e7016000e701a500e801a500e8016000e7016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c0000000400000025
+0000000c000000080000805600000030000000e801000060000000e9010000a500000005000000e8016000e801a500e901a500e9016000e8016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e901000060000000ea010000a5000000
+05000000e9016000e901a500ea01a500ea016000e9016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000ea01000060000000eb010000a500000005000000ea016000ea01a500eb01a500eb016000ea016000250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000eb01000060000000ec010000a500000005000000eb016000eb01a500ec01a500ec016000eb016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000ec01000060000000ed010000a500000005000000ec016000ec01a500ed01a500ed016000ec016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000ed01000060000000ee010000a500000005000000ed016000ed01a500ee01a500ee016000ed016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ee01000060000000ef010000a500000005000000ee016000
+ee01a500ef01a500ef016000ee016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ef01000060000000f0010000a500000005000000ef016000ef01a500f001a500f0016000ef016000250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000f001000060000000f1010000a500000005000000f0016000f001a500f101a500f1016000f0016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1
+cb0000000000250000000c00000004000000250000000c000000080000805600000030000000f101000060000000f2010000a500000005000000f1016000f101a500f201a500f2016000f1016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030
+000000f201000060000000f4010000a500000005000000f2016000f201a500f401a500f4016000f2016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000f401000060000000f5010000a500000005000000f4016000f401a500f501a500
+f5016000f4016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000f501000060000000f6010000a500000005000000f5016000f501a500f601a500f6016000f5016000250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f601000060000000f7010000a500000005000000f6016000f601a500f701a500f7016000f6016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc600000000002500
+00000c00000004000000250000000c000000080000805600000030000000f701000060000000f8010000a500000005000000f7016000f701a500f801a500f8016000f7016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f801000060
+000000fa010000a500000005000000f8016000f801a500fa01a500fa016000f8016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fa01000060000000fb010000a500000005000000fa016000fa01a500fb01a500fb016000fa016000
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000fb01000060000000fd010000a500000005000000fb016000fb01a500fd01a500fd016000fb016000250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000fd01000060000000fe010000a500000005000000fd016000fd01a500fe01a500fe016000fd016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c0000000400
+0000250000000c000000080000805600000030000000fe01000060000000ff010000a500000005000000fe016000fe01a500ff01a500ff016000fe016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000ff0100006000000000020000a5
+00000005000000ff016000ff01a5000002a50000026000ff016000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000000200006000000001020000a500000005000000000260000002a5000102a5000102600000026000250000000c000000
+08000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000a90167ff590045003a0000000c0000000a00000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000910100004900000018020000bc00000004000000801a500a1020500a10200006801a0006250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000084000000c001000069000000ea010000740000000100000000400d4200040dc2c1010000a3ffffff
+090000004c000000000000000000000000000000ffffffffffffffff60000000690063006f006e007300650074003a003a0000060300000006000000060000000600000006000000060000000300000003000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00
+00000000000054000000a0000000b301000076000000f6010000810000000100000000400d4200040dc2b401000096ffffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e0044006500660069006e006900740069006f006e0003000000060000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a
+00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a90184ff020284ff0001010115400100100000000400000000000000210000000800000062000000
+0c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000
+00240000009101000071000000180200009f00000002000000801a800810208008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000f10052ff87004500240000002400
+00000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f00000007500000077010000ba00000005000000000f5007000fa00b7017a00b70175007000f5007250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060
+00000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f10052ff870045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000d90000005e0000008e010000d100000004000000000fa00b7017a00b70175007000f5007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000
+003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000006e4300002bc30000074300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ee0055ff87004500250000000c0000000800008027000000180000000400
+000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000ed0000007200000034010000b700000005000000ed007200ed00b7003401b70034017200ed007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008
+0000805600000030000000340100007200000037010000b700000005000000340172003401b7003701b7003701720034017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000037010000720000003b010000b70000000500000037017200
+3701b7003b01b7003b01720037017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000003b010000720000003f010000b7000000050000003b0172003b01b7003f01b7003f0172003b017200250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000003f0100007200000043010000b7000000050000003f0172003f01b7004301b700430172003f017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ea
+d90000000000250000000c00000004000000250000000c000000080000805600000030000000430100007200000046010000b700000005000000430172004301b7004601b7004601720043017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030
+000000460100007200000049010000b700000005000000460172004601b7004901b7004901720046017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000049010000720000004e010000b700000005000000490172004901b7004e01b700
+4e01720049017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000004e0100007200000051010000b7000000050000004e0172004e01b7005101b700510172004e017200250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000510100007200000054010000b700000005000000510172005101b7005401b7005401720051017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d000000000002500
+00000c00000004000000250000000c000000080000805600000030000000540100007200000057010000b700000005000000540172005401b7005701b7005701720054017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000005701000072
+0000005a010000b700000005000000570172005701b7005a01b7005a01720057017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000005a010000720000005e010000b7000000050000005a0172005a01b7005e01b7005e0172005a017200
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000005e0100007200000061010000b7000000050000005e0172005e01b7006101b700610172005e017200250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000610100007200000065010000b700000005000000610172006101b7006501b7006501720061017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c0000000400
+0000250000000c000000080000805600000030000000650100007200000069010000b700000005000000650172006501b7006901b7006901720065017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000069010000720000006d010000b7
+00000005000000690172006901b7006d01b7006d01720069017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000006d0100007200000070010000b7000000050000006d0172006d01b7007001b700700172006d017200250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000700100007200000074010000b700000005000000700172007001b7007401b7007401720070017200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000
+0007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ee0055ff870045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000d60000005b0000008b010000ce00000004000000d00e700b4017700b40172007d00e2007250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b8000000040100007b0000005d010000860000000100000000400d4200040dc20501000091ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000430061
+007400650067006f007200790044006500660069006e006900740069006f006e000700000006000000030000000600000006000000060000000400000005000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ee007fff75017fff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000d6000000760000008b010000a400000002000000d00ed0084017d008250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f200000091000000fb0000009d0000000100000000400d4200040dc2f30000007bffffff0200
+00004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000000301000091000000700100009d0000000100000000400d4200040dc204010000
+7bffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000630061007400650067006f007200790049006400200020003a00430061007400650067006f00720079004900640072000500000006000000030000000600000006000000060000000300000005000000030000000600000003000000030000000300000007000000060000000300000006000000060000000600000003000000050000
+0003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f20000009e000000fb000000aa0000000100000000400d4200040dc2f30000006effffff020000004c000000000000000000000000000000ffffffffffffffff50
+0000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000030100009e00000059010000aa0000000100000000400d4200040dc2040100006effffff130000004c000000000000000000000000000000ffffff
+ffffffffff74000000650078007000720065007300730069006f006e00200020003a0053007400720069006e006700b700060000000500000006000000030000000600000004000000040000000300000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000002c0000002000
+0000454d462b0a4000c01c00000010000000c0bfc0ff01000000f2011efdd80017012100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f1010000d7010000c9020000ee02000005
+000000101f701d101fe02e902ce02e902c701d101f701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000
+01000000f2011efdd80017013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000da010000c0010000e002000005030000040000
+00101fe02e902ce02e902c701d101f701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080f74300c037c40000584300808b43bed7e8ffe3f2
+fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ef0121fdd8001701250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000ee010000d40100005f020000eb02000005000000ee01d401ee01eb025f02eb025f
+02d401ee01d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000005f020000d401000064020000eb020000050000005f02d4015f02eb026402eb026402d4015f02d401250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000064020000d40100006a020000eb020000050000006402d4016402eb026a02eb026a02d4016402d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000
+000c00000004000000250000000c0000000800008056000000300000006a020000d401000070020000eb020000050000006a02d4016a02eb027002eb027002d4016a02d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000070020000d401
+000077020000eb020000050000007002d4017002eb027702eb027702d4017002d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000077020000d40100007c020000eb020000050000007702d4017702eb027c02eb027c02d4017702d40125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000007c020000d401000082020000eb020000050000007c02d4017c02eb028202eb028202d4017c02d401250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000082020000d401000088020000eb020000050000008202d4018202eb028802eb028802d4018202d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c000000040000
+00250000000c00000008000080560000003000000088020000d40100008e020000eb020000050000008802d4018802eb028e02eb028e02d4018802d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c0000000800008056000000300000008e020000d401000092020000eb02
+0000050000008e02d4018e02eb029202eb029202d4018e02d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000092020000d401000097020000eb020000050000009202d4019202eb029702eb029702d4019202d401250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000097020000d40100009c020000eb020000050000009702d4019702eb029c02eb029c02d4019702d401250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f0e1cd0000000000250000000c00000004000000250000000c0000000800008056000000300000009c020000d40100009f020000eb020000050000009c02d4019c02eb029f02eb029f02d4019c02d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000
+000800008056000000300000009f020000d4010000a5020000eb020000050000009f02d4019f02eb02a502eb02a502d4019f02d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000a5020000d4010000aa020000eb02000005000000a502
+d401a502eb02aa02eb02aa02d401a502d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000aa020000d4010000b1020000eb02000005000000aa02d401aa02eb02b102eb02b102d401aa02d401250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000b1020000d4010000b7020000eb02000005000000b102d401b102eb02b702eb02b702d401b102d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000b7020000d4010000bd020000eb02000005000000b702d401b702eb02bd02eb02bd02d401b702d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000
+0030000000bd020000d4010000c2020000eb02000005000000bd02d401bd02eb02c202eb02c202d401bd02d401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000c2020000d4010000c6020000eb02000005000000c202d401c202eb02c602
+eb02c602d401c202d401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ef0121fdd80017013a0000000c0000000a00000024
+000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000d7010000bd010000dd0200000203000004000000e01eb02e602cb02e602c401de01e401d250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000f901000032feffffbe02000025feffff1600
+00000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000041020000da01000074020000e60100000100000000400d4200040dc24202000032feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300000006
+0000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a8000000380200
+00e70100007d020000f20100000100000000400d4200040dc23902000025feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e00740073000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000a000000100000000100
+00000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ef0113fec70213fe00010101154001001000000004000000000000002100000008000000620000000c0000000100000011
+0000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000d7010000
+e2010000dd0200001002000002000000e01e901f602c901f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b0000005400000058000000f3010000fd010000fc010000090200000100000000400d4200040dc2f40100000ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b000000540000002c01000004020000fd010000a3020000090200000100000000400d4200040dc2050200000ffeffff250000004c000000000000000000000000000000ffffffffffffffff98000000740072006100660066006900630049006e0063006900640065006e00740049006400200020003a00540072006100660066006900630049006e0063006900640065006e00740049006400d401030000
+000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000003000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000a00000010000000010000000c0000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f30100000a020000fc010000160200000100000000400d4200040dc2f401000002feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000040200000a0200008f020000160200000100000000400d4200040dc20502000002feffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000065006600660065006300740043006f00640065002000
+20003a0045006600660065006300740043006f006400650020005b0030002e002e0031005d000600000003000000030000000600000005000000030000000700000006000000060000000600000003000000030000000300000007000000030000000300000006000000050000000300000007000000060000000600000006000000030000000300000006000000030000000300000006000000030000000a0000001000000001
+0000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f301000017020000fc010000230200000100000000400d4200040dc2f4010000f5fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000
+0010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000040200001702000073020000230200000100000000400d4200040dc205020000f5fdffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000650066006600650063
+0074005400650078007400200020003a0053007400720069006e00670020005b0030002e002e0031005d0006000000030000000300000006000000050000000300000007000000060000000500000003000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f301000024020000fc010000300200000100000000400d4200040dc2f4010000e8fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c01000004020000240200009b020000300200000100000000400d4200040dc205020000e8fdffff200000004c000000000000000000000000000000ffffffffffffffff8c00000073007400610072007400540069006d0065002000
+20003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d00040000000300000006000000030000000300000007000000030000000900000006000000030000000300000003000000070000000300000009000000060000000300000006000000090000000300000006000000060000000300000006000000040000000300000003000000060000000300000003000000060000
+00030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f301000031020000fc0100003d0200000100000000400d4200040dc2f4010000dbfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b
+00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000004020000310200009b0200003d0200000100000000400d4200040dc205020000dbfdffff1f0000004c000000000000000000000000000000ffffffffffffff
+ff8c000000730074006f007000540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d0000000400000003000000060000000600000007000000030000000900000006000000030000000300000003000000070000000300000009000000060000000300000006000000090000000300000006000000060000000300000006000000040000000300
+00000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f30100003e020000fc0100004a0200000100000000400d4200040dc2f4010000cefdffff020000004c00000000000000
+0000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000040200003e020000820200004a0200000100000000400d4200040dc205020000cefdffff1a0000004c00
+0000000000000000000000000000ffffffffffffffff80000000740065006e00640065006e0063007900200020003a00540065006e00640065006e006300790020005b0030002e002e0031005d000300000006000000060000000600000006000000060000000500000005000000030000000300000003000000070000000600000006000000060000000600000006000000050000000500000003000000030000000600000003
+0000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f30100004b020000fc010000570200000100000000400d4200040dc2f4010000c1fdffff020000004c000000000000000000000000000000ffffff
+ffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f4000000040200004b02000084020000570200000100000000400d4200040dc205020000c1fdffff1c0000004c000000000000000000000000
+000000ffffffffffffffff84000000740065006e00640065006e00630079005400650078007400200020003a0053007400720069006e00670020005b0030002e002e0031005d00030000000600000006000000060000000600000006000000050000000500000007000000060000000500000003000000030000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000
+030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f301000058020000fc010000640200000100000000400d4200040dc2f4010000b4fdffff020000004c000000000000000000000000000000ffff
+ffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000004020000580200008e020000640200000100000000400d4200040dc205020000b4fdffff1f0000004c0000000000000000000000
+00000000ffffffffffffffff8c0000006c0065006e0067007400680041006600660065006300740065006400200020003a0049006e007400650067006500720020005b0030002e002e0031005d000000030000000600000006000000060000000300000006000000070000000300000003000000060000000500000003000000060000000600000003000000030000000300000003000000060000000300000006000000060000
+000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f301000065020000fc010000710200000100000000400d4200040dc2f4010000a7fdffff02
+0000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c0100000402000065020000b7020000710200000100000000400d4200040dc2050200
+00a7fdffff250000004c000000000000000000000000000000ffffffffffffffff980000006100760065007200610067006500530070006500650064004100620073006f006c00750074006500200020003a0049006e007400650067006500720020005b0030002e002e0031005d000000060000000500000006000000030000000600000006000000060000000700000006000000060000000600000006000000070000000600
+000004000000060000000300000006000000030000000600000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b0000005400000058000000f301000072020000fc0100007e0200000100000000400d4200040dc2f40100009afdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000a80000000402000072020000480200007e0200000100000000400d4200040dc2050200009afdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000640065006c0061007900200020003a0049006e007400650067006500720000000600000006000000030000000600000005000000030000000300000003000000030000000600000003
+000000060000000600000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f30100007f020000fc0100008b0200000100000000400d4200040dc2f40100008dfdffff020000004c0000000000000000000000000000
+00ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f0000000040200007f0200008d0200008b0200000100000000400d4200040dc2050200008dfdffff1b0000004c0000000000000000
+00000000000000ffffffffffffffff840000007300650067006d0065006e007400530070006500650064004c0069006d0069007400200020003a0049006e007400650067006500720000000400000006000000060000000900000006000000060000000300000007000000060000000600000006000000060000000600000003000000090000000300000003000000030000000300000003000000030000000600000003000000
+060000000600000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f30100008c020000fc010000980200000100000000400d4200040dc2f401000080fdffff020000004c000000000000000000000000000000ffff
+ffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000040200008c020000a1020000980200000100000000400d4200040dc20502000080fdffff1f0000004c0000000000000000000000
+00000000ffffffffffffffff8c00000065007800700065006300740065006400530070006500650064004100620073006f006c00750074006500200020003a0049006e00740065006700650072000000060000000500000006000000060000000500000003000000060000000600000007000000060000000600000006000000060000000700000006000000040000000600000003000000060000000300000006000000030000
+000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f301000099020000fc010000a50200000100000000400d4200040dc2f401000073fdffff02
+0000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000040200009902000076020000a50200000100000000400d4200040dc2050200
+0073fdffff1a0000004c000000000000000000000000000000ffffffffffffffff800000006300610075007300650054006500780074007300200020003a0053007400720069006e00670020005b0030002e002e002a005d00050000000600000006000000040000000600000007000000060000000500000003000000040000000300000003000000030000000700000003000000030000000300000006000000060000000300
+00000300000006000000030000000300000004000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f3010000a6020000fc010000b20200000100000000400d4200040dc2f401000066fdffff020000004c00000000000000
+0000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000001801000004020000a602000095020000b20200000100000000400d4200040dc20502000066fdffff220000004c00
+0000000000000000000000000000ffffffffffffffff900000006100700070006c00690063006100620069006c0069007400790054006500780074007300200020003a0053007400720069006e00670020005b0030002e002e002a005d0006000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000070000000600000005000000030000000400000003
+0000000300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f3010000b3020000fc0100
+00bf0200000100000000400d4200040dc2f401000059fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f000000004020000b3
+0200007a020000bf0200000100000000400d4200040dc20502000059fdffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000061006400760069006300650054006500780074007300200020003a0053007400720069006e00670020005b0030002e002e002a005d000000060000000600000005000000030000000500000006000000070000000600000005000000030000000400000003000000
+0300000003000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f3010000c0020000fc010000cc02
+00000100000000400d4200040dc2f40100004cfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000004020000c0020000
+8e020000cc0200000100000000400d4200040dc2050200004cfdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000630061007400650067006f0072007900490064007300200020003a00430061007400650067006f00720079004900640020005b0030002e002e002a005d00000005000000060000000300000006000000060000000600000003000000050000000300000006000000040000
+0003000000030000000300000007000000060000000300000006000000060000000600000003000000050000000300000006000000030000000300000006000000030000000300000004000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000018007dfc8300610021000000080000006200
+00000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000170000002e0300009a0000008f030000050000007001e0327001f038a009f038a009e0327001e032250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000018007dfc830061003a0000000c0000000a00000024000000240000000000803d0000000000000000
+0000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000000000017030000b1000000a6030000040000007001f038a009f038a009e0327001e032250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000a841000060c4000003430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00
+0000100000000200000001000000150080fc83006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000140000002b030000580000008c0300000500000014002b0314008c0358008c0358002b0314002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000580000002b0300005c0000008c0300000500000058002b0358008c035c008c035c002b0358002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000
+250000000c0000000800008056000000300000005c0000002b0300005f0000008c030000050000005c002b035c008c035f008c035f002b035c002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000005f0000002b030000620000008c0300
+00050000005f002b035f008c0362008c0362002b035f002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000620000002b030000650000008c0300000500000062002b0362008c0365008c0365002b0362002b03250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000650000002b030000690000008c0300000500000065002b0365008c0369008c0369002b0365002b03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000690000002b0300006c0000008c0300000500000069002b0369008c036c008c036c002b0369002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000
+0800008056000000300000006c0000002b030000700000008c030000050000006c002b036c008c0370008c0370002b036c002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000700000002b030000740000008c0300000500000070002b
+0370008c0374008c0374002b0370002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000740000002b030000780000008c0300000500000074002b0374008c0378008c0378002b0374002b03250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000780000002b0300007b0000008c0300000500000078002b0378008c037b008c037b002b0378002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1
+e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000007b0000002b0300007e0000008c030000050000007b002b037b008c037e008c037e002b037b002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000
+300000007e0000002b030000810000008c030000050000007e002b037e008c0381008c0381002b037e002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000810000002b030000850000008c0300000500000081002b0381008c0385008c
+0385002b0381002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000850000002b030000880000008c0300000500000085002b0385008c0388008c0388002b0385002b03250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000880000002b0300008c0000008c0300000500000088002b0388008c038c008c038c002b0388002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc4000000000025
+0000000c00000004000000250000000c0000000800008056000000300000008c0000002b030000900000008c030000050000008c002b038c008c0390008c0390002b038c002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000090000000
+2b030000930000008c0300000500000090002b0390008c0393008c0393002b0390002b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000930000002b030000970000008c0300000500000093002b0393008c0397008c0397002b0393002b
+03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000150080fc830061003a0000000c0000000a00000024000000240000000000
+803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fdffffff14030000ae000000a3030000040000004001c0387009c0387009b0324001b032250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001f000000dbfcffff8f000000cefcffff160000000c000000010000
+00120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000032000000310300007a0000003d0300000100000000400d4200040dc233000000dbfcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000006000000060000000600000006000000090000000600
+0000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c000000
+440000003e03000068000000490300000100000000400d4200040dc245000000cefcffff080000004c000000000000000000000000000000ffffffffffffffff5c0000007300740061007400750073003a003a0006000000030000000600000003000000060000000600000003000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e4000000180000004b03000094000000560300000100000000400d4200040dc219000000c1fcffff190000004c000000000000000000000000000000ffffffffffffffff80000000540072006100660066006900630049006e0063006900640065006e007400460065006500640053007400610074007500730000000500000004
+00000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000600000006000000060000000700000003000000060000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000
+000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001500affc9800affc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d0000000000000000000080
+3d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000fdffffff46030000ae00000074030000020000004001d0357009d035250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000019000000610300001c0000006d0300000100000000400d4200040dc21a000000abfcffff010000004c00000000000000
+0000000000000000ffffffffffffffff5000000020000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000002a00000061030000830000006d0300000100000000400d4200040dc22b000000abfcffff0f0000004c0000000000
+00000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020003d00200031007f030700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000190000006e0300001c0000007a0300000100000000400d4200040dc21a0000009efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020002b03030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000002a0000006e0300007c0000007a0300000100000000400d4200040dc22b0000009efcffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000043004f004e004e004500430054004500440020003d002000320000000700000008000000070000000700000007000000070000000700000007
+00000007000000030000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000190000007b0300001c000000870300000100000000400d4200040dc21a00000091fcffff010000004c00000000000000000000
+0000000000ffffffffffffffff5000000020000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000002a0000007b0300008d000000870300000100000000400d4200040dc22b00000091fcffff100000004c0000000000000000
+00000000000000ffffffffffffffff6c00000044004900530043004f004e004e004500430054004500440020003d0020003300070000000300000007000000070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c0
+1c00000010000000c0bfc0ff01000000f70190fc940054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f6010000280300008a0200007c03000005000000601f8032601fc0
+37a028c037a0288032601f8032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f70190fc9400
+54003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000df01000011030000a10200009303000004000000601fc037a028c037a0
+288032601f8032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000fa4300405bc4000014430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff
+03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000f40193fc94005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000f301000025030000400200007903000005000000f3012503f30179034002790340022503f3012503250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000040020000250300004402000079030000050000004002250340027903440279034402250340022503250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000044020000250300004802000079030000050000004402250344027903480279034802250344022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c0000000400000025
+0000000c00000008000080560000003000000048020000250300004d020000790300000500000048022503480279034d0279034d02250348022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000004d020000250300005102000079030000
+050000004d0225034d02790351027903510225034d022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000051020000250300005502000079030000050000005102250351027903550279035502250351022503250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000055020000250300005802000079030000050000005502250355027903580279035802250355022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000058020000250300005d020000790300000500000058022503580279035d0279035d02250358022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008
+00008056000000300000005d020000250300006102000079030000050000005d0225035d02790361027903610225035d022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000610200002503000065020000790300000500000061022503
+61027903650279036502250361022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000000065020000250300006802000079030000050000006502250365027903680279036802250365022503250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000068020000250300006b020000790300000500000068022503680279036b0279036b02250368022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1
+cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006b020000250300006f02000079030000050000006b0225036b0279036f0279036f0225036b022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030
+0000006f020000250300007202000079030000050000006f0225036f02790372027903720225036f022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000007202000025030000760200007903000005000000720225037202790376027903
+7602250372022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000076020000250300007b020000790300000500000076022503760279037b0279037b02250376022503250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007b020000250300007f02000079030000050000007b0225037b0279037f0279037f0225037b022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac200000000002500
+00000c00000004000000250000000c0000000800008056000000300000007f020000250300008302000079030000050000007f0225037f02790383027903830225037f022503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000008302000025
+0300008702000079030000050000008302250383027903870279038702250383022503250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000
+01000000f40193fc940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000dc0100000e0300009e02000090030000040000
+00301f90377028903770285032301f5032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e
+00000018000000fe010000e1fcffff7f020000d4fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000190200002b03000061020000370300000100000000400d4200040dc21a020000e1fcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100
+740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000003000000180000000c000000000000005400000000010000f60100003803000084020000430300000100000000400d4200040dc2f7010000d4fcffff1e0000004c000000000000000000000000000000ffffffffffffffff880000007300740061007400750073003a003a00540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073000600000003
+000000060000000300000006000000060000000300000003000000050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000700000003000000060000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002
+380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000f401c2fc8802c2fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000dc010000330300009e0200006103000002000000301fa0347028a034250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000f80100004e030000fb0100005a0300000100000000400d4200040dc2
+f9010000befcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+00100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000090200004e030000620200005a0300000100000000400d420004
+0dc20a020000befcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020003d002000310000000700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000010000000c0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff
+0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000f80100005b030000fb010000670300000100000000400d4200040dc2f9010000b1fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000010000000c0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffff
+ffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000090200005b03000083020000670300000100000000400d4200040dc20a020000b1fcffff140000004c000000000000000000000000000000ffffffffffffffff7400000050004100520054004c0059005f0041005600410049004c00410042004c00450020003d0020
+00320007000000070000000700000007000000060000000700000006000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+005400000054000000f801000068030000fb010000740300000100000000400d4200040dc2f9010000a4fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000080030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+000000540000009c000000090200006803000054020000740300000100000000400d4200040dc20a020000a4fcffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000041005600410049004c00410042004c00450020003d00200033007903070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00000010000000
+010000000c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d50070fce90064002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000
+000c000000080000805600000030000000d400000038030000bd0100009c03000005000000400d8033400dc039d01bc039d01b8033400d8033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100
+000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d50070fce90064003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c
+00000005000080560000002c000000bd00000021030000d4010000b303000004000000400dc039d01bc039d01b8033400d8033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db
+04000000040000000000000000005243004063c4000069430000c842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d20073fce9006400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000
+00d1000000350300004a0100009903000005000000d1003503d10099034a0199034a013503d1003503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000004a010000350300005001000099030000050000004a0135034a019903500199035001
+35034a013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000050010000350300005601000099030000050000005001350350019903560199035601350350013503250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000056010000350300005c010000990300000500000056013503560199035c0199035c01350356013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc000000000025000000
+0c00000004000000250000000c0000000800008056000000300000005c010000350300006101000099030000050000005c0135035c01990361019903610135035c013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000061010000350300
+006801000099030000050000006101350361019903680199036801350361013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000068010000350300006d010000990300000500000068013503680199036d0199036d013503680135032500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000006d010000350300007401000099030000050000006d0135036d01990374019903740135036d013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000074010000350300007b010000990300000500000074013503740199037b0199037b01350374013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000
+250000000c0000000800008056000000300000007b010000350300008201000099030000050000007b0135037b01990382019903820135037b013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000820100003503000088010000990300
+00050000008201350382019903880199038801350382013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000088010000350300008d010000990300000500000088013503880199038d0199038d01350388013503250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000008d010000350300009301000099030000050000008d0135038d01990393019903930135038d013503250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000093010000350300009901000099030000050000009301350393019903990199039901350393013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000
+08000080560000003000000099010000350300009f010000990300000500000099013503990199039f0199039f01350399013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009f01000035030000a701000099030000050000009f0135
+039f019903a7019903a70135039f013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000a701000035030000ad0100009903000005000000a7013503a7019903ad019903ad013503a7013503250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000ad01000035030000b30100009903000005000000ad013503ad019903b3019903b3013503ad013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9
+d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000b301000035030000b90100009903000005000000b3013503b3019903b9019903b9013503b3013503250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000
+30000000b901000035030000ba0100009903000005000000b9013503b9019903ba019903ba013503b9013503250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000
+40180000000c00000001000000d20073fce90064003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ba0000001e030000d101
+0000b003000004000000100d9039a01b9039a01b5033100d5033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000000000000054000000a80000001e0100003e0300006d010000490300000100000000400d4200040dc21f010000cefcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000460065006500640049006e0066006f0072006d006100740069006f006e000000060000000600000006000000060000000300000006000000030000000600000004000000090000000600000003000000030000
+0006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d200bcfcbb01bcfc00010101154001001000000004000000000000002100
+000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c
+000000050000805700000024000000ba00000039030000d10100006703000002000000100d0035a01b0035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b0000005400000058000000d600000054030000df000000600300000100000000400d4200040dc2d7000000b8fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000e70000005403000064010000600300000100000000400d4200040dc2e8000000b8fcffff190000004c000000000000000000000000000000ffffffffffffffff800000006400610074006100500072006f00760069006400650072004e0061006d006500200020003a0053007400720069006e00670000000600000006000000
+03000000060000000700000003000000060000000500000003000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b0000005400000058000000d600000061030000df0000006d0300000100000000400d4200040dc2d7000000abfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b00000054000000cc000000e7000000610300004e0100006d0300000100000000400d4200040dc2e8000000abfcffff150000004c000000000000000000000000000000ffffffffffffffff78000000700072006f0074006f0063006f006c004e0061006d006500200020003a0053007400720069006e006700000006000000030000000600000003000000060000000500000006000000030000
+00070000000600000009000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000d60000006e030000df0000007a0300000100000000
+400d4200040dc2d70000009efcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000e70000006e030000990100007a0300
+000100000000400d4200040dc2e80000009efcffff210000004c000000000000000000000000000000ffffffffffffffff9000000063006f006d006d0075006e00690063006100740069006f006e004300680061006e006e0065006c004e0061006d006500200020003a0053007400720069006e006700000005000000060000000900000009000000060000000600000003000000050000000600000003000000030000000600
+00000600000007000000060000000600000006000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000058000000d60000007b030000df000000870300000100000000400d4200040dc2d700000091fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b0000005400000030010000e70000007b0300009b010000870300000100000000400d4200040dc2e800000091fcffff260000004c000000000000000000000000000000ffffffffffffffff980000006600650065006400530074006100740075007300200020003a00540072006100660066006900630049006e0063006900640065006e00740046006500650064005300740061007400750073000300000006
+0000000600000006000000070000000300000006000000030000000600000004000000030000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000060000000600000006000000060000000700000003000000060000000300000006000000040000000a00000010000000010000000c0000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000d600000088030000df000000940300000100000000400d4200040dc2d700000084fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000010000000c00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000ffffffff0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000e700000088030000b6010000940300000100000000400d4200040dc2e800000084fcffff2f0000004c000000000000000000000000000000ffffffffffffffffac000000740072006100660066006900630049006e006300
+6900640065006e0074007300530074006100740075007300200020003a00540072006100660066006900630049006e0063006900640065006e0074007300530074006100740075007300000003000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000300000006000000030000000600000004000000030000
+000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000003000000060000000300000006000000040000000a00000010000000010000000c0000000c00000010000000000000000000000046000000f8000000ec000000454d462b0840000234000000280000000210c0db000000008800
+0000000000000000803f02000000000000000210c0db00000000000000ff08400103a4000000980000000210c0db1c00000000400000ad0030ffac0037ffab003bffa90042ffa80046ffa7004dffa60051ffa40058ffa3005cffa20063ffa10067ff9f006eff9e0072ff9d0079ff9c007dff9a0084ff990088ff98008fff970093ff95009aff94009eff9300a5ff9200a9ff9000b0ff8f00b4ff8e00bbff8d00bfff8b00c6ff00
+010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000000201001000000000000000
+00000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000c80000008800000044000000ae000000de0000000e0000001c0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c00ac00db00a500da00a100d800aa00c700a600c600af00b500ab00b300a400b200a000b100a90
+0a000a500ae009e009d009a009c0093009b009f00890098008800940087009d00760099007400920073009e0062009700610093006f008c005e0088005d0081005c008d004a0086004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c00
+0000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000ad0030ffa5003effad0030ffaf0040ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000
+000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000a2000000ca000000b0000000de00000002000000040000000200000002000000c00ac00d400ae00cc00ac00de00ac00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041
+000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000ffffffff0c000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000041004c000000000000000000000000000000000000004c063376000000004c06337680013376601c971c8ce3c577bb89172646e0c5779401300b0000300bc70f32769337217f09001c00bd726e6e0d3a21461900b00175322f7601000d3a0a001e00bd726e6e8ce3c5770f89172670374b0b9401300b080000009442ba260000000098c8612348004b0b5c014b0b8892cc19f0374b0b8ce3c577cc51e102bc726e6ec4
+53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000ac41ba265c014b0b0d3a2146093e0aa00843ba266052e1023c53e1025854e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000b40000007400000082000000c30000008e0000000100000000400d4200040dc2750000008affffff
+110000004c000000000000000000000000000000ffffffffffffffff70000000630061006c006c006200610063006b0049006e007400650072006600610063006500000005000000060000000300000003000000060000000600000005000000040000000300000006000000030000000600000003000000030000000600000005000000060000000a00000010000000010000000c0000000c0000001000000000000000000000
+00280000000c00000004000000460000008401000078010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010330010000240100000210c0db38000000004000002a02bcff2302bcff1f02bcff1802bdff1402bdff0d02beff0902beff0202bffffe01bffff701c0fff301c0ffec01c0ffe801c1ffe101c1ffdd01c2ffd601
+c2ffd201c2ffcb01c3ffc701c3ffc001c4ffbc01c4ffb501c5ffb101c5ffaa01c6ffa601c6ff9f01c7ff9b01c7ff9401c7ff9001c8ff8901c8ff8501c9ff7e01c9ff7a01c9ff7301caff6f01caff6801cbff6401cbff5d01ccff5901ccff5201cdff4e01cdff4701ceff4301ceff3c01ceff3801cfff3101cfff2d01d0ff2601d0ff2201d0ff1b01d1ff1701d1ff1001d2ff0c01d2ff0501d3ff0101d3fffc00d4ff0001000100
+010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000
+00000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000070010000f9000000360000002b020000520000001c000000380000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000000200000002000000020000000200000002000000020000009022000520220005e02100057021f0043021f004c020e0048020e0041020d004d01fd004601fc004201fc004b01ec004701eb004001eb004c01da004501da004101da004a01c9004601c9004f01b8004b01b8004401b7004001b7004901a6004501a6004e0195004a019500430195004f01840048018400440183004d017
+30049017300420172004e01620047016100430161004c0150004801500041015f003d014f0036014e0032014e003b013e0037013d0030013d003c012c0035012c0031012c003a011b0036011b003f010a003b010a0034010900300109003b00f8003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+00000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000002a02bcff1b02b8ff2a02bcff1b02c2ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000018020000480000002b020000560000000200000004000000020000000200000090220005a021400590220005a021a004250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003401000028010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103e0000000d40000000210c0db2800000000400000a90195ffa20196ff9e0197ff970199ff93019aff8c019cff8801
+9dff81019eff7d019fff7601a1ff7201a2ff6b01a4ff6701a5ff6001a6ff5c01a7ff5501a9ff5101aaff4a01acff4601adff3f01afff3b01b0ff3401b1ff3001b2ff2901b4ff2501b5ff1e01b7ff1a01b8ff1301b9ff0f01baff0801bcff0401bdfffd00bffff900c0fff200c2ffee00c3ffe700c4ffe300c5ffdc00c7ffd800c8ffd600c9ff000100010001000100010001000100010001000100010001000100010001000100
+010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000010010000d300000041000000aa0100007900000014000000
+280000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000801a7007101a6007d01950076019300720192007b01800077018f0060018e006c017d0065017b0061017a006a016800660167006f0156006b01550064015300600152006901400065014f005e013d005a013c0
+053013b005f012a0058012800540127005d01150059011400520113005e0102005701000053010f004c00fd004800fc004100fa004d00e9004600e8004200e7004b00d5004700d4004500d3004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b0840
+00023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000a90195ff990194ffa90195ff9c019dff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000960100006d000000aa0100007a00000002000000040000000200000002000000801a700780198007801a7007b019f006250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c0000000400000046000000bc000000b0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103680000005c0000000210c0db1000000000400000f6009affef009effeb00a0ffe400a4ffe000a7ffd900abffd500adffce00b1ffca00b4ffc300b8ffbf00baffb800be
+ffb400c1ffad00c5ffa900c7ffa700c9ff000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00
+000080000000a400000041000000f70000007400000008000000100000000200000002000000020000000200000002000000020000000200000002000000500f2007e00ee006a00ec006300e8006f00d5006800d1006400df005d00cb005900c8005200c4005e00b2005700be004300bb004c00a7004800a5004600a3004250000000c00000007000080250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000f6009affe7009dfff6009affec00a6ff0001000115400100100000000400000000000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000e400000064000000f70000007400000002000000040000000200000002000000500f2007600ef006500f20
+07b00e6006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040
+0000cc0179fec50177fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000c201000091010000cd01000097
+01000002000000b01c3019401c5019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff08400103
+2c000000200000000210c0db0400000000400000cc0179fec0016ffecc0179febc0178fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000
+00050000805a00000038000000b901000091010000cd0100009f01000002000000040000000200000002000000b01c3019f01bd019b01c3019b01b4019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000
+000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db1800000000400000440274ff3d026dff390269ff320262ff2e025eff270257ff230253ff1c024cff180248ff110241ff0d023dff060236ff020232fffb012bfff70127fff00120ffec011cffe50115ffe10111ffda010affd60106ffcf01fffecb01fbfec401f4fe00010001000100010001000100
+01000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000b0000000c101000096000000450200001a010000
+0c0000001800000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000030248009c023f0098023300a1023a00ad022e00a6022500b2022900bb021000c7021400c0021b00cc020f00c5020600d1020a00da01f100e601f500ef01ec00eb01e000f401e700f001eb00f901d2010501d6010e01cd010a01c1011301c8011250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000440274ff3d0266ff4402
+74ff36026dff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000330200009600000045020000a800000002
+00000004000000020000000200000030248009c023600a302480095023f009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000
+000000ff084001034c000000400000000210c0db0a00000000400000bf0166ffbb015fffb8015bffb40154ffb10150ffad0149ffaa0145ffa6013effa3013aff9e0133ff0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000
+000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005c0000009b010000a4000000c0010000db000000050000000a0000000200000002000000020000000200000002000000e01b600aa01bd00a701b100b301b800b001bc00bc01a300c901a700c501ae00c201a200dd019900d250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000bf0166ffbb0157ffbf0166ffb3015cff000100011540010010
+000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000b0010000a4000000c0010000b700000002000000040000000200000002000000
+e01b600aa01b500be01b600a201b000b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000
+000210c0db08000000004000002b0154ff2a014dff290149ff270142ff27013eff250137ff240133ff230130ff00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00
+000004000000250000000c000000050000805a0000005000000020010000b60000002c010000de000000040000000800000002000000020000000200000002000000a012800b9012f00b8012300c6012a00c6012e00c4012500d3012900d2012c00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+00000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000002b0154ff2d0144ff2b0154ff230146ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000020010000b60000002e010000ca00000002000000040000000200000002000000a012800bc012800ca012800b2012600c250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a00000000400000ef01cefde801d0fde401d1fddd01d3fdd901d4fdd201d7fdce01
+d8fdc701dafdc301dbfdc201dcfd0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005c000000bf
+0100002e020000f001000040020000050000000a0000000200000002000000020000000200000002000000e01ee023701ec023301eb023c01d9023801d8023101d5023d01c4023601c2023201c1023101c0023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000
+454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000ef01cefddf01cefdef01cefde201d7fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000
+00040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000dc01000033020000f00100004002000002000000040000000200000002000000e01ee023e01de023e01ee023101e5023250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000006b00e1fc6d00e8fc6f00ecfc7200f3fc7300f7fc7600fefc780002fd7b0009fd000100010001000115
+40010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005000000068000000010300007c0000002d030000040000000800000002000000
+020000000200000002000000a006b032c0064032e006003210079031200750315007e0307007a030a0073030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000
+000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006b00e1fc6c00f1fc6b00e1fc7500edfc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000000000
+00000000000000000000250000000c00000004000000250000000c000000050000805a000000380000006800000019030000760000002d03000002000000040000000200000002000000a006b032b006b031a006b0324007f031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000bc
+000000b0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103680000005c0000000210c0db10000000004000001502e7fc0f02eefc0b02f2fc0502f9fc0102fdfcfa0104fdf60108fdf0010ffdec0113fde5011afde2011efddb0125fdd70129fdd10130fdcd0134fdc6013bfd00010001000100010001000100010001
+1540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000080000000c3010000cf02000016020000270300000800000010000000020000
+000200000002000000020000000200000002000000020000000200000040215032e020e031a020a031402030310020f030901f8030501f4030f01ed02fb01e902f401e202f101ee02ea01d702e601d302e001dc02dc01c802d501c102d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600
+0000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000001502e7fc0702eefc1502e7fc0e02f5fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+0000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000000402000015030000160200002703000002000000040000000200000002000000402150326020e03140215032d0207031250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a000000004000003b01d7fc3a01defc3901e2fc3701e9fc3601edfc3401f4fc3301f8fc3101ff
+fc300103fd2f010afd0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005c0000002c0100000003
+00003c01000037030000050000000a0000000200000002000000020000000200000002000000a01350339013e0328013a032601330325013f03130138031201340310013d030f0129030e0122030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b08
+4000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000003b01d7fc3301e4fc3b01d7fc3c01e7fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000
+3800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000030010000230300003d0100003703000002000000040000000200000002000000a013503320138032a0135033b0135032250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c0000000400000046000000a80000009c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c000000004000009900adfca000adfca400adfcab00adfcaf00adfcb600acfcba00acfcc100acfcc500acfccc00acfcd000acfcd200
+abfc0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000068000000960000005d030000d300000063
+030000060000000c0000000200000002000000020000000200000002000000020000008009f035f009f035300af035a00af035e00af035500b0036900b0036000c0036400c0036b00c0036f00c0036100d1036250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000
+454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000009900adfca800b1fc9900adfca800a7fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000
+00040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009600000059030000a900000067030000020000000400000002000000020000008009f035700ab0358009f035700a5036250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c0000000400000046000000a80000009c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c00000000400000f401b6fced01b6fce901b6fce201b5fcde01b5fcd701b4fcd301b4fccc01b3fcc801b3fcc101b2fcbd
+01b2fcbc01b1fc0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000068000000b901000054030000
+f50100005d030000060000000c000000020000000200000002000000020000000200000002000000301f6035c01e6035801e6035101e7035d01d7035601d8035201d8035b01c9035701c9035001ca035c01ba035b01bb035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000
+007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000f401b6fce601b0fcf401b6fce501bafc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000e201000050030000f50100005e03000002000000040000000200000002000000301f6035501ec035301f6035401e2035250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c00000002000000280000000c000000030000004c000000640000000000000000000000ee020000b20300000000000000000000ef020000b30300002900aa0000000000000000000000803f00000000000000000000803f000000000000000000000000000000000000000000000000000000000000000022000000
+0c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 10\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F40AB8BB_C438_4644_A6DF_195E9F3F132D}{\*\bkmkend BKM_F40AB8BB_C438_4644_A6DF_195E9F3F132D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Advice}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class provides an \b Advice \b0 related to a \b Traffic Incident\b0
+.\ql\par
+The advice contains recommendations or prohibitions for the driver.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0952B046_CC01_49ea_AFC8_0EEB5D57192C}{\*\bkmkend BKM_0952B046_CC01_49ea_AFC8_0EEB5D57192C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt AdviceCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Main advice, advices the user what to do.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F47DA261_E2D4_403d_887D_8A9C60B97B33}{\*\bkmkend BKM_F47DA261_E2D4_403d_887D_8A9C60B97B33}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 More detailed advice. The actual value of this atttribute depends
+on the \b mainCode\b0 . So based on the mainCode it has to be cast to the related enum.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_79B0BC99_7129_4677_AE90_31C5588FAC38}{\*\bkmkend BKM_79B0BC99_7129_4677_AE90_31C5588FAC38}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+freeText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Advice related text received from the Traffic Provider.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9DFFC308_4AC0_42a0_A959_2BAC77A52086}{\*\bkmkend BKM_9DFFC308_4AC0_42a0_A959_2BAC77A52086}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Applicability}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class indicates to which kind of vehicles a \b Traffic Incident\b0
+, or an \b Advice \b0 of a Traffic Incident is applicable.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7F9D464D_B7C1_45af_B74C_9D7BE0001CE0}{\*\bkmkend BKM_7F9D464D_B7C1_45af_B74C_9D7BE0001CE0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b vehicleType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt VehicleType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Describes the type of the vehicle.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_757590E7_B7D6_45e0_9B08_DBA75506737F}{\*\bkmkend BKM_757590E7_B7D6_45e0_9B08_DBA75506737F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CategoryDefinition}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The definition of a category of Traffic Incidents.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_22895755_B710_4515_83B1_579ED9E0869C}{\*\bkmkend BKM_22895755_B710_4515_83B1_579ED9E0869C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b categoryId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CategoryId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The unique Id of the category.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E7D5D586_CB1D_4a74_9E21_A2E70571786E}{\*\bkmkend BKM_E7D5D586_CB1D_4a74_9E21_A2E70571786E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expression}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Filter expression. A Traffic Incident that passes the related
+filter, is part of the category.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C1DE53E3_D2BC_4952_90FC_5E0DFADEC7C4}{\*\bkmkend BKM_C1DE53E3_D2BC_4952_90FC_5E0DFADEC7C4}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Cause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class contains the common part of a description of a \b Cause \b0
+of a \b Traffic Incident\b0 . The cause details are either provided directly (using a \b DirectCause\b0 ), or there is a reference to another Traffic Incident which is the cause for this incident (using a \b LinkedCause\b0 ).\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B986E41E_303B_4481_8AB2_EFCA68C51AF8}{\*\bkmkend BKM_B986E41E_303B_4481_8AB2_EFCA68C51AF8}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Main Cause for the incident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_637201AA_5647_425f_8DAA_4FE32A7E6A9F}{\*\bkmkend BKM_637201AA_5647_425f_8DAA_4FE32A7E6A9F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DirectCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class contains the details of a \b Cause \b0 of a \b Traffic
+Incident\b0 .\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C74A50C1_BE7F_4ee7_BC52_2F14A11DD02F}{\*\bkmkend BKM_C74A50C1_BE7F_4ee7_BC52_2F14A11DD02F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b warningLevel}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt WarningLevel}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Warning Level.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1313EAB8_B2B4_41a1_836C_C50E1EFDC720}{\*\bkmkend BKM_1313EAB8_B2B4_41a1_836C_C50E1EFDC720}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+unverifiedInformation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Boolean}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Indication of whether the information has been verified by
+an authority (like the police) or not.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_418F80BB_052B_4e35_878F_0C93FFAC50D1}{\*\bkmkend BKM_418F80BB_052B_4e35_878F_0C93FFAC50D1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 More detailed cause. The actual value of this atttribute depends
+on the \b mainCause\b0 . So based on the mainCause it has to be cast to the related enum.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7EEA023A_AAD6_4bc3_9422_BBF75F6572BA}{\*\bkmkend BKM_7EEA023A_AAD6_4bc3_9422_BBF75F6572BA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length of the cause of the Traffic Incident in meters. E.g. the
+length of road works, causing stationary traffic.\par
+Value range 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D05BCFB7_3BE6_4bde_AD3F_326648C92632}{\*\bkmkend BKM_D05BCFB7_3BE6_4bde_AD3F_326648C92632}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Offset (in metres) from the start of the Cause to the end of the
+Problem Location. When used together with Affected Length the cause can be positioned within the event more accurately. Without Cause Offset but with Affected Length defined the cause position is not defined. If neither Affected Length nor Cause Offset
+are defined the Cause spans the entire Problem Location.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AE9C29B2_3B5E_4702_A5E8_7719A51DB154}{\*\bkmkend BKM_AE9C29B2_3B5E_4702_A5E8_7719A51DB154}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+freeText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Free Text.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_67488CE8_EC74_4382_8545_98CFE22B6655}{\*\bkmkend BKM_67488CE8_EC74_4382_8545_98CFE22B6655}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+FeedInformation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_654C6568_E55B_49e6_91B5_905E671D735F}{\*\bkmkend BKM_654C6568_E55B_49e6_91B5_905E671D735F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b dataProviderName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A10AD195_AE00_4db7_8E78_1BABD630277E}{\*\bkmkend BKM_A10AD195_AE00_4db7_8E78_1BABD630277E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+protocolName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2F0D20E3_4818_41d0_8897_3D6F0879E979}{\*\bkmkend BKM_2F0D20E3_4818_41d0_8897_3D6F0879E979}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+communicationChannelName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E154D628_8A29_4745_9B5C_A166EE0903AA}{\*\bkmkend BKM_E154D628_8A29_4745_9B5C_A166EE0903AA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+feedStatus}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TrafficIncidentFeedStatus}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0AD20B86_DCF1_4201_A485_D1CC6D569451}{\*\bkmkend BKM_0AD20B86_DCF1_4201_A485_D1CC6D569451}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+trafficIncidentsStatus}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TrafficIncidentsStatus}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_614B93D4_B1AC_45f6_8310_35983E125A2A}{\*\bkmkend BKM_614B93D4_B1AC_45f6_8310_35983E125A2A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LaneRestrictions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 This class provides information about closed lanes.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B1AB94A2_BD74_4990_8665_F82A689ECF60}{\*\bkmkend BKM_B1AB94A2_BD74_4990_8665_F82A689ECF60}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b laneRestrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LaneRestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The kind of lane restriction.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EA05CBE4_0464_4808_9223_1CE947FCFCEB}{\*\bkmkend BKM_EA05CBE4_0464_4808_9223_1CE947FCFCEB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+numberOfLanes}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Number of lanes affected by the Lane Restriction Type.\ql\par
+Value range: 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F6CB5627_C6E5_497a_B135_2A47CCC0286E}{\*\bkmkend BKM_F6CB5627_C6E5_497a_B135_2A47CCC0286E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LengthUnit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_F2961754_03CA_479f_B15C_51D083EC7C8E}{\*\bkmkend BKM_F2961754_03CA_479f_B15C_51D083EC7C8E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b KILOMETERS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1321F806_6B3F_4579_8F7E_4BE3AC4DDEA3}{\*\bkmkend BKM_1321F806_6B3F_4579_8F7E_4BE3AC4DDEA3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MILES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1CD56D56_BD09_4508_B799_2A3DBFF8C488}{\*\bkmkend BKM_1CD56D56_BD09_4508_B799_2A3DBFF8C488}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinkedCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 A Cause for the incident, with a reference to another incident,
+which is a cause for this incident.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_00DBFD75_E7A3_4eec_A878_3E6694FBD333}{\*\bkmkend BKM_00DBFD75_E7A3_4eec_A878_3E6694FBD333}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b causeTrafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TrafficIncidentId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Id of a TrafficIncident which is a cause for this incident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_0C810BA8_A5D8_429d_9B17_FEFC565EEFFD}{\*\bkmkend BKM_0C810BA8_A5D8_429d_9B17_FEFC565EEFFD}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocalisedString}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_67072776_9742_4bdd_98A3_C7680DBA5BED}{\*\bkmkend BKM_67072776_9742_4bdd_98A3_C7680DBA5BED}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b countryCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_42F2BE62_BB17_484b_A1E7_2F539F5EE553}{\*\bkmkend BKM_42F2BE62_BB17_484b_A1E7_2F539F5EE553}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+languageCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_148C9A97_7EB0_4500_B665_DFB2ED8912A0}{\*\bkmkend BKM_148C9A97_7EB0_4500_B665_DFB2ED8912A0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+text}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_86715E78_C34D_4ab0_8382_89E3E2AE68B6}{\*\bkmkend BKM_86715E78_C34D_4ab0_8382_89E3E2AE68B6}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 One of the highly visible attributes of many roadworks is the imposed
+Temporary Speed Limit. This component provides the ability to define temporary speed limit information suitable for display to the driver.\ql\par
+Temporary Speed limit info associated with the event is defined in either kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the Location to the start of the first speed limit restriction
+allows the speed limit zone to be positioned independently of the cause.\par
+Applicability can be added if needed.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3F65BD6B_0650_45b6_89E3_103225767E6B}{\*\bkmkend BKM_3F65BD6B_0650_45b6_89E3_103225767E6B}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b unitsMPH}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD Att.Type}{\fldrslt Boolean}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Units definition for this Temporary Speed Limit.\ql\par
+If true, the unit is mph, else the unit is km/h.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A63DE1CF_3A36_4aee_93B4_8162CB782AB9}{\*\bkmkend BKM_A63DE1CF_3A36_4aee_93B4_8162CB782AB9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+offset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Offset defines the distance in meters from the start of the Temporary
+speed limit to the end of the Location. If not defined then first SpeedLimitSection starts at the beginning of the Location.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_0611F027_988E_4ae5_81C2_834958482046}{\*\bkmkend BKM_0611F027_988E_4ae5_81C2_834958482046}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimitSection}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Each section of a TemporarySpeedLimit is defined by a speed value
+and length.\ql\par
+A speed value for use in Wet conditions is also optionally available.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A3F3ADE3_8709_4170_B893_4276645ABF3B}{\*\bkmkend BKM_A3F3ADE3_8709_4170_B893_4276645ABF3B}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b speedLimitValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Speed Limit numerical value in kph or mph.\ql\par
+Value range: 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E76F637F_A17D_4f03_90ED_43EB0E22BEF8}{\*\bkmkend BKM_E76F637F_A17D_4f03_90ED_43EB0E22BEF8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitValueWet}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Speed Limit numerical value to be used in wet conditions; in kph
+or mph.\par
+Value range: 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EE2EAAA9_5CE2_44f3_82D0_0E834A7682CB}{\*\bkmkend BKM_EE2EAAA9_5CE2_44f3_82D0_0E834A7682CB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitLength}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length of the SpeedLimitSection, If this is not defined, then section
+finishes at end of the Problem Location.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8A600475_272C_4c64_9A70_AD5B6BFE32C1}{\*\bkmkend BKM_8A600475_272C_4c64_9A70_AD5B6BFE32C1}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TextDetailLevel}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Specifies the amount of detail to be provided in TrafficIncident
+texts.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_D897431A_E656_4840_BAAA_96E6245B3EC9}{\*\bkmkend BKM_D897431A_E656_4840_BAAA_96E6245B3EC9}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FULL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The most complete information available.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_413F6C5C_8A1A_4600_BE5C_FB482378A107}{\*\bkmkend BKM_413F6C5C_8A1A_4600_BE5C_FB482378A107}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SUMMARY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The most relevant information, as determined by the implementation
+of the service.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2BDCC632_40BC_4dfb_9866_E887D11B7FAF}{\*\bkmkend BKM_2BDCC632_40BC_4dfb_9866_E887D11B7FAF}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncident}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class is the representation of a Traffic Incident.\ql\par
+\par
+\hich\f6\dbch\f6\loch\f6\b\ul Validity Period\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+Indicates when the incident information is valid. An incident can be valid until it is cancelled (and therefore no longer visible in the system), or an explicit \b Start Time\b0 and/or \b Stop Time\b0 can be specified.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_69C9DD49_B700_4e1f_A408_B3373287C5F3}{\*\bkmkend BKM_69C9DD49_B700_4e1f_A408_B3373287C5F3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b trafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TrafficIncidentId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Unique Id.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CA724A28_6F55_4425_855A_CE26B181F429}{\*\bkmkend BKM_CA724A28_6F55_4425_855A_CE26B181F429}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+effectCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt EffectCode}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Effect Code. The direct effect on the traffic flow.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CF59D066_A1E9_495f_B9EC_4E6D0617467D}{\*\bkmkend BKM_CF59D066_A1E9_495f_B9EC_4E6D0617467D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+effectText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Textual representation of the Effect Code.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CE074587_820A_4c5c_AD51_94817B809945}{\*\bkmkend BKM_CE074587_820A_4c5c_AD51_94817B809945}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+startTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TimeInMinutes}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Start Time. Date and time at which a Traffic Incident began
+or is scheduled to begin. For example: for a road closure it can be specified that the road will be closed at today 10 o'clock.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EDF22F8A_C19F_4ff0_B720_AF4B4D1BC766}{\*\bkmkend BKM_EDF22F8A_C19F_4ff0_B720_AF4B4D1BC766}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+stopTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TimeInMinutes}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Stop Time. Date and time at which a Traffic Incident is scheduled
+to end. For example: for a road closure it can be specified that the road will be closed till tomorrow 6 o'clock.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_497D6CFE_7850_4564_8B37_6C4789E4CAE4}{\*\bkmkend BKM_497D6CFE_7850_4564_8B37_6C4789E4CAE4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+tendency}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Tendency}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Tendency. Indicates whether the Traffic Incident is constant,
+increasing or decreasing.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DFB178C6_5A28_4ae9_84C0_CF769CBAE68D}{\*\bkmkend BKM_DFB178C6_5A28_4ae9_84C0_CF769CBAE68D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+tendencyText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Textual representation of the Tendency.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A9EF13C6_DB9F_43a4_A7BC_01C906A81920}{\*\bkmkend BKM_A9EF13C6_DB9F_43a4_A7BC_01C906A81920}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length of the Traffic Incident in meters. For example the length
+of a traffic jam (stationary traffic).\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AA653333_3F69_41e2_986B_683B8856D732}{\*\bkmkend BKM_AA653333_3F69_41e2_986B_683B8856D732}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+averageSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The averageSpeedAbsolute is used to signal the real speed of traffic,
+in m/s, through the problem location.\par
+Value range 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7DF10A81_649E_4fd1_94A6_122C95D1CD9D}{\*\bkmkend BKM_7DF10A81_649E_4fd1_94A6_122C95D1CD9D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+delay}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The total delay for the Traffic Incident in minutes.\ql\par
+Value range 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9E0A830E_43EB_4cff_BE1F_6A8023E0D8BE}{\*\bkmkend BKM_9E0A830E_43EB_4cff_BE1F_6A8023E0D8BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+segmentSpeedLimit}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The segmentSpeedLimit is used to signal the averaged potential speed
+(due to applied legal limits along the Problem Location), in m/s, for re-routing and ETA calculations, but not to display or warn the driver. This attribute is not guaranteed to match signed speed limits on a road.\ql\par
+Value range 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_99D0E673_5E23_4724_9015_20CEBB733A0B}{\*\bkmkend BKM_99D0E673_5E23_4724_9015_20CEBB733A0B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expectedSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The expectedSpeedAbsolute, in m/s, is used to signal the expected
+(normal) speed of traffic through the problem location.\ql\par
+Value range 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AED161E0_92CF_405e_8301_6D1B3353B866}{\*\bkmkend BKM_AED161E0_92CF_405e_8301_6D1B3353B866}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeTexts}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Textual representations of the causes.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9328B802_14F0_402b_B8AD_CE1BBA6AD9F7}{\*\bkmkend BKM_9328B802_14F0_402b_B8AD_CE1BBA6AD9F7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicabilityTexts}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Textual representations of the applicability.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B130D971_2D17_42a8_AF51_3D9A61695A75}{\*\bkmkend BKM_B130D971_2D17_42a8_AF51_3D9A61695A75}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+adviceTexts}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Textual representations of the advices.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FB143377_21AF_42f0_8C60_64CFD556D865}{\*\bkmkend BKM_FB143377_21AF_42f0_8C60_64CFD556D865}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+categoryIds}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CategoryId}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Category Ids.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_333C9F0D_0BC4_418b_A994_2EA1756B8212}{\*\bkmkend BKM_333C9F0D_0BC4_418b_A994_2EA1756B8212}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentField}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 An enumeration type with constants that refer to the attributes
+of a TrafficIncident.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_361D4BBD_AC44_463d_93B7_3C8EC44CF9AD}{\*\bkmkend BKM_361D4BBD_AC44_463d_93B7_3C8EC44CF9AD}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TRAFFIC_INCIDENT_ID}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the trafficIncidentId.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_187F0A56_3101_4313_A207_872247638146}{\*\bkmkend BKM_187F0A56_3101_4313_A207_872247638146}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EFFECT_CODE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the effectCode.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_67CA6F90_DC3E_409e_97F8_E861BE414626}{\*\bkmkend BKM_67CA6F90_DC3E_409e_97F8_E861BE414626}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EFFECT_TEXT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the effectText.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ED72BA72_02BE_4262_A8D2_62490B1C4409}{\*\bkmkend BKM_ED72BA72_02BE_4262_A8D2_62490B1C4409}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+START_TIME}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the startTime.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BC2D3C0C_F1E3_4f80_9C8E_CC1F45453157}{\*\bkmkend BKM_BC2D3C0C_F1E3_4f80_9C8E_CC1F45453157}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STOP_TIME}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the stopTime.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1230C033_4B8E_4b8a_909A_B4AF8FC881B1}{\*\bkmkend BKM_1230C033_4B8E_4b8a_909A_B4AF8FC881B1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TENDENCY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the tendency.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E0B93524_8CBA_40b9_AE63_B0323578FDF2}{\*\bkmkend BKM_E0B93524_8CBA_40b9_AE63_B0323578FDF2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TENDENCY_TEXT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the tendencyText.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6BB6299E_E533_4a30_8049_73B5D9D41A92}{\*\bkmkend BKM_6BB6299E_E533_4a30_8049_73B5D9D41A92}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LENGTH_AFFECTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the lengthAffected.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_13B92BFC_C353_48e6_92E7_75117DF7EA8D}{\*\bkmkend BKM_13B92BFC_C353_48e6_92E7_75117DF7EA8D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AVERAGE_SPEED_ABSOLUTE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the averageSpeedAbsolute.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_22E82EC2_80EA_4534_BC32_44896D7DDF70}{\*\bkmkend BKM_22E82EC2_80EA_4534_BC32_44896D7DDF70}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DELAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the delay.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7E820E2E_A67B_4167_8192_60DD8502EF24}{\*\bkmkend BKM_7E820E2E_A67B_4167_8192_60DD8502EF24}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SEGMENT_SPEED_LIMIT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the segmentSpeedLimit.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B0EDF3D5_4482_4ff1_A9D0_3C7847C76D0B}{\*\bkmkend BKM_B0EDF3D5_4482_4ff1_A9D0_3C7847C76D0B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAUSES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the causes.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9B676EA7_1B73_4a0f_BB28_0F2EC1665D4C}{\*\bkmkend BKM_9B676EA7_1B73_4a0f_BB28_0F2EC1665D4C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAUSE_TEXTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the causeTexts.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CD33BE15_B546_43a8_8E85_5F3E02D6B146}{\*\bkmkend BKM_CD33BE15_B546_43a8_8E85_5F3E02D6B146}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+APPLICABILITY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the applicability.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2F700F4B_AE3A_4bcc_9A60_58B70565A9DF}{\*\bkmkend BKM_2F700F4B_AE3A_4bcc_9A60_58B70565A9DF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+APPLICABILITY_TEXTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the applicabilityTexts.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6FD9E900_4139_4c62_8839_31C4152CC05A}{\*\bkmkend BKM_6FD9E900_4139_4c62_8839_31C4152CC05A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOCATION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the location.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D8C7445C_BF41_4582_A828_B68B2B79EE21}{\*\bkmkend BKM_D8C7445C_BF41_4582_A828_B68B2B79EE21}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOCATION_INFO}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the locationInfo.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9E42536A_0FCD_40ea_865B_4180B8CDB9BC}{\*\bkmkend BKM_9E42536A_0FCD_40ea_865B_4180B8CDB9BC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOCATION_BOUNDING_BOX}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the locationBoundingBox.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9C3A11EC_5663_48c4_B819_02891328B0C0}{\*\bkmkend BKM_9C3A11EC_5663_48c4_B819_02891328B0C0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ADVICES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the advices.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4F103EAF_7C81_403e_B7A8_CEB9D0080F33}{\*\bkmkend BKM_4F103EAF_7C81_403e_B7A8_CEB9D0080F33}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ADVICE_TEXTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Identifies the adviceTexts.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_897B94D1_2A83_440c_940D_E45F44243F8B}{\*\bkmkend BKM_897B94D1_2A83_440c_940D_E45F44243F8B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VehicleRelatedRestriction}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class specifies a Vehicle Related Restriction.\ql\par
+Such a restriction consist of a Restriction Type and, if applicable, a Restriction Value.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_53D54670_C8F8_4568_BB88_D62752F0959F}{\*\bkmkend BKM_53D54670_C8F8_4568_BB88_D62752F0959F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b restrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt RestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Restriction Type.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F76D30BC_7F35_4132_8F62_E9BCAAA688C0}{\*\bkmkend BKM_F76D30BC_7F35_4132_8F62_E9BCAAA688C0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+restrictionValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Restriction value.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_08BC188A_417F_4fef_AF21_9FFF6C32A4ED}{\*\bkmkend BKM_08BC188A_417F_4fef_AF21_9FFF6C32A4ED}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+WeightUnit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_90504353_6954_4100_A301_240ECC48E2BE}{\*\bkmkend BKM_90504353_6954_4100_A301_240ECC48E2BE}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b KILOGRAM}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_57756D43_009C_4284_95A6_CF6D373093CC}{\*\bkmkend BKM_57756D43_009C_4284_95A6_CF6D373093CC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+POUND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_FC7959DA_1DA7_4856_B78C_E442226B7A4A}{\*\bkmkend BKM_FC7959DA_1DA7_4856_B78C_E442226B7A4A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidents}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0DABFD98_0118_4b0f_8C76_5B97234AC298}{\*\bkmkend BKM_0DABFD98_0118_4b0f_8C76_5B97234AC298}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getVersion}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the API version of this interface implemented by the
+service.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_18D68312_DCB8_4bad_B653_A6C11BB1A0AB}{\*\bkmkend BKM_18D68312_DCB8_4bad_B653_A6C11BB1A0AB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getLanguage}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the current language.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3459470F_B498_4069_BC89_1318DF175A1D}{\*\bkmkend BKM_3459470F_B498_4069_BC89_1318DF175A1D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setLanguage}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Set the language.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The language to be used, specified as ISO 639-3 language code (lower case).}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The country specific variant for the language to be used, specified as ISO 3166-1 alpha 3 country code (upper case).}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D46156CB_B25C_482d_BB9A_BF8090896ED7}{\*\bkmkend BKM_D46156CB_B25C_482d_BB9A_BF8090896ED7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setTimeFormat}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Set the format to be used for representing time in textual
+information.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+timeFormat}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Time format specification.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_146827E9_C6BC_49fc_8725_E6AB71EBFA0E}{\*\bkmkend BKM_146827E9_C6BC_49fc_8725_E6AB71EBFA0E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setDateFormat}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Set the format to be used for representing dates in textual
+information.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+dateFormat}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Date format specification.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1457DBC1_63F2_4069_A848_2D856030A62C}{\*\bkmkend BKM_1457DBC1_63F2_4069_A848_2D856030A62C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setLengthUnit}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Set the unit to be used for representing lengths and distances
+in textual information.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b LengthUnit}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+lengthUnit}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Length unit.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CB3DF21F_639E_4d78_8506_3AB566798431}{\*\bkmkend BKM_CB3DF21F_639E_4d78_8506_3AB566798431}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setWeightUnit}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Set the unit to be used for representing weights in textual
+information.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WeightUnit}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+weightUnit}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Weight unit.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0D715F65_F147_40e0_A5C4_661328B6999D}{\*\bkmkend BKM_0D715F65_F147_40e0_A5C4_661328B6999D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getApplicability}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the filter expression which specifies which Traffic Incidents
+are NOT applicable.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_46C6E385_8E21_4fbb_A703_9D7F27191993}{\*\bkmkend BKM_46C6E385_8E21_4fbb_A703_9D7F27191993}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setApplicability}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Set the filter expression which specifies which Traffic Incidents
+are NOT applicable.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+filterExpression}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Filter expression. An empty string indicates that no filtering shall take place.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_42C59440_D440_42da_B7E7_D3E955293E8A}{\*\bkmkend BKM_42C59440_D440_42da_B7E7_D3E955293E8A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b reserveIconSetIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Reserve a number of IconSet Ids.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b Integer}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+numberOfIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The number of Ids to be reserved.\par
+Value range: 1, .. , 32767 (0x7fff)}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2667B4C2_28B1_4ebe_8EDC_BA717D081342}{\*\bkmkend BKM_2667B4C2_28B1_4ebe_8EDC_BA717D081342}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b freeIconSetIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Free a set of IconSet Ids.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b Integer}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+iconSetIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids to be freed.\par
+Value range: 1, .. , 32767 (0x7fff)}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6D4E7A11_7D5B_46b7_88AD_62B69D65941C}{\*\bkmkend BKM_6D4E7A11_7D5B_46b7_88AD_62B69D65941C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getIconSets}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get all IconSet definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3D5389D_75C6_4c0d_B6CA_6D2CC7D69458}{\*\bkmkend BKM_F3D5389D_75C6_4c0d_B6CA_6D2CC7D69458}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addIconSetDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Add IconSet definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b IconSet}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+iconSets}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The IconSet definitions to be added.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_91532B33_7CEA_428a_8230_E250AA371E39}{\*\bkmkend BKM_91532B33_7CEA_428a_8230_E250AA371E39}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeIconSetDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove IconSet definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b Integer}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+iconSetIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the IconSets to be removed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_490ABD5A_A897_4c4e_9821_873AED503A22}{\*\bkmkend BKM_490ABD5A_A897_4c4e_9821_873AED503A22}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getIconDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the icon definitions for a specified set of icons.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b IconInfo}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+iconInfos}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The set of icons for which the definitions are to be obtained.\par
+If this list is empty, all Icon Definitions will be returned.}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3BD4BA97_A950_4a64_B1AE_6743C31EF470}{\*\bkmkend BKM_3BD4BA97_A950_4a64_B1AE_6743C31EF470}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addIconDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Add icon definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b IconDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+iconDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The icon definitions to be added.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6877470E_E9E2_4505_AF4F_A0A7924341F5}{\*\bkmkend BKM_6877470E_E9E2_4505_AF4F_A0A7924341F5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeIconDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove icon definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b IconInfo}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+iconInfos}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The set of icons for which the definition is to be removed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7385E8C2_1933_4dd2_9677_10A936F8CF42}{\*\bkmkend BKM_7385E8C2_1933_4dd2_9677_10A936F8CF42}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b reserveCategoryIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Reserve a number of Category Ids.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b Integer}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+numberOfIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The number of Ids to be reserved.\par
+Value range: 1, .. , 32767 (0x7fff)}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9C489AB3_F6E8_4237_BA93_C5372C7C26C1}{\*\bkmkend BKM_9C489AB3_F6E8_4237_BA93_C5372C7C26C1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b freeCategoryIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Free a set of Category Ids.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids to be freed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6A1B87EB_AF7F_4503_94B5_CA65C7CCFBFD}{\*\bkmkend BKM_6A1B87EB_AF7F_4503_94B5_CA65C7CCFBFD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getCategoryDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get all Category definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5DEB32DC_EA84_485b_A28B_5B34179A9BE9}{\*\bkmkend BKM_5DEB32DC_EA84_485b_A28B_5B34179A9BE9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addCategoryDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Add Category definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Category definitions to be added.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5E64A40E_56EE_4440_8137_799DC2CA81A7}{\*\bkmkend BKM_5E64A40E_56EE_4440_8137_799DC2CA81A7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeCategoryDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove Category definitions.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the Category definitions to be removed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2425FB5D_C41A_4fcc_B47B_DBA3B8048D6B}{\*\bkmkend BKM_2425FB5D_C41A_4fcc_B47B_DBA3B8048D6B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get all the Ids of the current traffic incidents.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified warning levels will be returned.\par
+In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified cateory Ids will be returned.\par
+In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C8CDFB6C_C4CA_4828_8979_23C8A321C9AB}{\*\bkmkend BKM_C8CDFB6C_C4CA_4828_8979_23C8A321C9AB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentIdsInAreas}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the Ids of the traffic incidents in a number of areas.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified warning levels will be returned.\par
+In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified cateory Ids will be returned.\par
+In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b RectangularArea}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+areas}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The areas for which the traffic incident Ids are requested.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_197C44C4_1D51_4f95_9A27_33CAF33AD7F3}{\*\bkmkend BKM_197C44C4_1D51_4f95_9A27_33CAF33AD7F3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidents}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get a number of Traffic Incidents.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the requested Traffic Incidents.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b Boolean}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+includeTextFields}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The text fields in the returned Traffic Incident will only be filled in if this parameter is set to true.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9C59B1CC_95CB_4c90_8947_E1A47962C4B5}{\*\bkmkend BKM_9C59B1CC_95CB_4c90_8947_E1A47962C4B5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentsFields}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Get a number of Traffic Incidents, where only specific fields are
+filled in.\par
+The field TRAFFIC_INCIDENT_ID is always filled in, independent of whether it is requested or not.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the requested Traffic Incidents.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentField}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentFields}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The fields (attributes) to be filled in in the Traffic Incident.}}\par
+\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B14DF7E9_D11D_4893_B42A_8DCFC6056088}{\*\bkmkend BKM_B14DF7E9_D11D_4893_B42A_8DCFC6056088}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTexts}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the texts for a number of Traffic Incidents.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the Traffic Incidents for which the texts are requested.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TextDetailLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+textDetailLevel}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The amount of detail to be provided in the texts.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F9E995B9_75FA_4e26_866A_D35EEE5FBB90}{\*\bkmkend BKM_F9E995B9_75FA_4e26_866A_D35EEE5FBB90}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addTrafficIncidentsStatusListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Add a listener which is notified in case of any Traffic Incidents
+Status changes.\par
+In case of changes the trafficIncidentsStatus() method of the listener is called.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentsStatusListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the trafficIncidentsStatus method will be called.}}\par
+\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B469E1DA_4594_46af_9612_27CC43A710B4}{\*\bkmkend BKM_B469E1DA_4594_46af_9612_27CC43A710B4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeTrafficIncidentsStatusListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove a Traffic Incidents Status listener, which was installed
+via addTrafficIncidentsStatusListener.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentsStatusListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface that was previously registered for Traffic Incidents Status changes, via addTrafficIncidentsStatusListener.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_35BFA8F1_CE36_4c77_A553_FD58F2FAB13A}{\*\bkmkend BKM_35BFA8F1_CE36_4c77_A553_FD58F2FAB13A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addFeedInformationListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Add a listener which is notified in case of any Feed Information
+changes.\par
+In case of changes the feedInformation() method of the listener is called.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+feedInformationListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the feedInformation method will be called.}}\par
+\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6762E60E_4E6B_4518_9B0F_05FAEEA28F76}{\*\bkmkend BKM_6762E60E_4E6B_4518_9B0F_05FAEEA28F76}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeFeedInformationListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove a Feed Information listener, which was installed via
+addFeedInformationListener.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+feedInformationListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface that was previously registered for Feed Information changes, via addFeedInformationListener.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_42FE4C1F_E109_4656_AF84_51A503072DBC}{\*\bkmkend BKM_42FE4C1F_E109_4656_AF84_51A503072DBC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Add a listener which is notified in case of any update in the traffic
+information.\par
+In case of an update the updates() method of the listener is called.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified warning levels will be returned.\par
+In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified cateory Ids will be returned.\par
+In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+updateListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the updates() method will be called.}}\par
+\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_952FB1B6_C46D_43d8_A5DD_20961A72E889}{\*\bkmkend BKM_952FB1B6_C46D_43d8_A5DD_20961A72E889}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove an update listener, which was installed via addUpdateListener.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+updateListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface that was previously registered for updates, via addUpdateListener.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F41BC6CE_45D1_4b56_97BF_3516C4E2249E}{\*\bkmkend BKM_F41BC6CE_45D1_4b56_97BF_3516C4E2249E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addAreasUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Add a listener which is notified in case of an update in the traffic
+information in one or more specific area's.\par
+In case of an update the updatesInAreas() method of the listener is called.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified warning levels will be returned.\par
+In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Only incidents with one of the specified cateory Ids will be returned.\par
+In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b RectangularArea}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+areas}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The area's to be observed for changes.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+updateListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AACAB7A3_72E1_4bfe_813F_1D4B2E851584}{\*\bkmkend BKM_AACAB7A3_72E1_4bfe_813F_1D4B2E851584}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeAreasUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove an areas update listener, which was installed via
+addAreasUpdateListener..}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+updateListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface that was previously registered for area updates, via addAreasUpdateListener.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_147EC686_A785_4d3b_8FFF_9FA2F94390D0}{\*\bkmkend BKM_147EC686_A785_4d3b_8FFF_9FA2F94390D0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentsListener}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_28277FF5_35D3_42ca_8956_AD60CE682315}{\*\bkmkend BKM_28277FF5_35D3_42ca_8956_AD60CE682315}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getVersionReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getVersion().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b Version}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 version}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The API version of this interface implemented by the service.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_149A4734_8F77_41e9_941B_E2633150DC0A}{\*\bkmkend BKM_149A4734_8F77_41e9_941B_E2633150DC0A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getLanguageReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getLanguage().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The current language, specified as ISO 639-3 language code (lower case).}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0950DEB9_406D_4400_8ABE_E2FA778FB135}{\*\bkmkend BKM_0950DEB9_406D_4400_8ABE_E2FA778FB135}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setLanguageReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setLanguage().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1845C256_3E81_4432_B4A1_BE51A5AAB1FF}{\*\bkmkend BKM_1845C256_3E81_4432_B4A1_BE51A5AAB1FF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setTimeFormatReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setTimeFormat().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CD5E6BB4_A8E8_4c84_9EA0_64EE0DAFB9D4}{\*\bkmkend BKM_CD5E6BB4_A8E8_4c84_9EA0_64EE0DAFB9D4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setDateFormatReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setDateFormat().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9DD89298_E8CA_4ec6_A483_3C8F9183970F}{\*\bkmkend BKM_9DD89298_E8CA_4ec6_A483_3C8F9183970F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setLengthUnitReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setLengthUnit().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_50B34CB8_A2B0_4020_A8E5_8D30239BBBE0}{\*\bkmkend BKM_50B34CB8_A2B0_4020_A8E5_8D30239BBBE0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setWeightUnitReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setWeightUnit().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B713CF24_7220_4866_8D75_AA6BDAA3E82D}{\*\bkmkend BKM_B713CF24_7220_4866_8D75_AA6BDAA3E82D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getApplicabilityReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getApplicability().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 filterExpression}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Filter expression. An empty string indicates that no filtering takes place.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2F22635A_60FA_4a0e_8102_84363E6987A1}{\*\bkmkend BKM_2F22635A_60FA_4a0e_8102_84363E6987A1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b setApplicabilityReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setApplicability().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7E14BB31_925C_400e_B80D_C7D58CBF39BC}{\*\bkmkend BKM_7E14BB31_925C_400e_B80D_C7D58CBF39BC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b reserveIconSetIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of reserveIconSetIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconSetId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSetIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The reserved Ids.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4EB0AE40_692F_4b76_AFD2_8C45ADA821DC}{\*\bkmkend BKM_4EB0AE40_692F_4b76_AFD2_8C45ADA821DC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b freeIconSetIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of freeIconSetIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_28650BCD_9275_4d6f_9FF9_A2876B2B6EA2}{\*\bkmkend BKM_28650BCD_9275_4d6f_9FF9_A2876B2B6EA2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getIconSetsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getIconSets().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconSet}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSets}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The IconSet definitions.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F29983E3_BA4D_4b81_80B9_12EC8F955367}{\*\bkmkend BKM_F29983E3_BA4D_4b81_80B9_12EC8F955367}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addIconSetDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addIconSetDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_76274BC0_AF2E_4a00_B909_3B2E99D5002B}{\*\bkmkend BKM_76274BC0_AF2E_4a00_B909_3B2E99D5002B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeIconSetDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeIconSetDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_945708CF_8300_4232_9B80_8489E563698A}{\*\bkmkend BKM_945708CF_8300_4232_9B80_8489E563698A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getIconDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getIconDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The icon definitions.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_28800F08_72CF_474d_91AC_FDE937113287}{\*\bkmkend BKM_28800F08_72CF_474d_91AC_FDE937113287}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addIconDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addIconDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8E2310C5_D49B_4cc6_9357_A36ADB7CEB60}{\*\bkmkend BKM_8E2310C5_D49B_4cc6_9357_A36ADB7CEB60}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeIconDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeIconDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8EB4A785_F129_4cc7_B4C9_E6A2C31963C5}{\*\bkmkend BKM_8EB4A785_F129_4cc7_B4C9_E6A2C31963C5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b reserveCategoryIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of reserveCategoryIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CategoryId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The reserved Ids.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3C72E560_8AEB_4a5a_A7C3_BA2CFD233916}{\*\bkmkend BKM_3C72E560_8AEB_4a5a_A7C3_BA2CFD233916}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b freeCategoryIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of freeCategoryIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_886BD944_52A4_4cfe_B985_567F70BC0B1D}{\*\bkmkend BKM_886BD944_52A4_4cfe_B985_567F70BC0B1D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getCategoryDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getCategoryDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CategoryDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Category definitions.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1E965D30_EDBE_45df_84F8_BD96CC2F13C4}{\*\bkmkend BKM_1E965D30_EDBE_45df_84F8_BD96CC2F13C4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addCategoryDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addCategoryDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F37FE087_94A9_49b2_B521_55AE25D74C0C}{\*\bkmkend BKM_F37FE087_94A9_49b2_B521_55AE25D74C0C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeCategoryDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeCategoryDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A0D59E2F_F842_4e06_AA79_2ECE122A83A8}{\*\bkmkend BKM_A0D59E2F_F842_4e06_AA79_2ECE122A83A8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidentIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the requested traffic incidents.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_60764089_0EAA_4b5d_8E5A_99EABA7C900C}{\*\bkmkend BKM_60764089_0EAA_4b5d_8E5A_99EABA7C900C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentIdsInAreasReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidentIdsInAreas().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The Ids of the requested traffic incidents.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AF5505E4_38F9_4cd0_AB41_846178427EC8}{\*\bkmkend BKM_AF5505E4_38F9_4cd0_AB41_846178427EC8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidents().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncident}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidents}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The requested Traffic Incidents.\par
+This list may be shorter than the request list as nothing is returned for Ids that don't exist (anymore).}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2AA0A9B1_C417_473a_8609_A956CED5E614}{\*\bkmkend BKM_2AA0A9B1_C417_473a_8609_A956CED5E614}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTrafficIncidentsFieldsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidentsFields().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncident}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidents}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The requested Traffic Incidents, with only the requested fields filled in.\par
+This list may be shorter than the request list as nothing is returned for Ids that don't exist (anymore).}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5DC2C6E2_C802_482e_A6BD_7CD2F5FAB238}{\*\bkmkend BKM_5DC2C6E2_C802_482e_A6BD_7CD2F5FAB238}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getTextsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTexts().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 texts}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Text information per requested traffic incident.\par
+The texts will be in the same order as the trafficIncidentIds in the request.}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A24AC237_8FA9_4c77_8BE9_C96763D8BEBB}{\*\bkmkend BKM_A24AC237_8FA9_4c77_8BE9_C96763D8BEBB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addTrafficIncidentsStatusListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addTrafficIncidentsStatusListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_166CCD28_1FE8_4783_9C1F_155F98C80FE9}{\*\bkmkend BKM_166CCD28_1FE8_4783_9C1F_155F98C80FE9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeTrafficIncidentsStatusListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeTrafficIncidentsStatusListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E955FB53_0FAE_43a0_A5A9_0C057843F2BA}{\*\bkmkend BKM_E955FB53_0FAE_43a0_A5A9_0C057843F2BA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addFeedInformationListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addFeedInformationListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_222F3CCA_E8FE_44ab_BB1B_83CB849C5249}{\*\bkmkend BKM_222F3CCA_E8FE_44ab_BB1B_83CB849C5249}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeFeedInformationListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeFeedInformationListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5CE3AB48_4946_4bce_9E89_06386F6E7549}{\*\bkmkend BKM_5CE3AB48_4946_4bce_9E89_06386F6E7549}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_40EF7C2F_36E8_497d_94DE_88E9E3696674}{\*\bkmkend BKM_40EF7C2F_36E8_497d_94DE_88E9E3696674}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_80C0B3BB_387E_476a_989F_1BF92AC63CF0}{\*\bkmkend BKM_80C0B3BB_387E_476a_989F_1BF92AC63CF0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addAreasUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addAreasUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_36827690_3B84_4502_ABFA_5D59050BACE4}{\*\bkmkend BKM_36827690_3B84_4502_ABFA_5D59050BACE4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeAreasUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeAreasUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_34A0E88A_C810_4613_B014_A075B44D23B5}{\*\bkmkend BKM_34A0E88A_C810_4613_B014_A075B44D23B5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b trafficIncidentsStatus}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 If a client has registered itself as a listener for changes
+in the Traffic Incidents status, this method is called upon changes in the Traffic Incidents status. The provided status information is the combined status of the available feeds in the system. Details of how the information is combined is given per parameter.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentFeedStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The combined status of the Traffic Incident Feeds.\par
+If all Feeds are UNAVAILABLE, the status is UNAVAILABLE.\par
+Else, if any of the Feeds is CONNECTED, the status is CONNECTED.\par
+Else, the status is DISCONNECTED (so there are Feeds available, but none of them is connected).}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentsStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The combined status of the Traffic Incidents.\par
+If the status for all the Feeds is AVAILABLE, , the combined status is AVAILABLE.\par
+Else, if the status for one of the Feeds is PARTLY_AVAILABLE, the combined status is PARTLY_AVAILABLE.\par
+Else, the combined status is UNAVAILABLE (so there are no Traffic Incidents at all).\par
+ \par
+Meaning of the enum values at this level:\par
+UNAVAILABLE: The are no incidents in the system, and currently they can also not be received.\par
+PARTLY_AVAILABLE: There are or may be incidents in the system, but the set of incidents is probably not up to date. This means that big changes are possible. Examples: Upon start-up, some incidents have already been received, but there are more incidents
+to receive. If the user is looking at the map display, new incidents may suddenly appear.\par
+When a connection is lost, the information stays valid for some time, but the information may no longer be fully up to date, and at some point in time a lot of incidents may suddenly disappear because they are no longer valid.\par
+AVAILABLE: The reception and handling of the incidents is stable, and as up to date as possible with respect to the used protocol(s). It is however still possible that there are currently no Traffic Incidents.}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BB18229F_2111_46a4_A840_B8958B015476}{\*\bkmkend BKM_BB18229F_2111_46a4_A840_B8958B015476}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b feedInformation}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 If a client has registered itself as a listener for changes
+in the Feed Information, this method is called upon changes in the Feed Information.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FeedInformation}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedsInformation}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The information per Traffic Incident Feed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FA42A425_758F_4dab_BC58_339BD0EF70C4}{\*\bkmkend BKM_FA42A425_758F_4dab_BC58_339BD0EF70C4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b updates}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 If a client has registered itself as a listener for any updates
+in the traffic incidents, this method is called if there are changes.\par
+The list of unchangedTrafficIncidentIds is redundant, but by providing this list, the client doesn't have to maintain a list of 'current traffic incidents'.\par
+Example: A client which completely redraws the list if there are changes. The client merges the lists unchangedTrafficIncidentIds, changedTrafficIncidentIds and newTrafficIncidentIds, gets the information for all these incidents from the service and shows
+the information for these traffic incidents. It can e.g. highlight the new and changed incidents, or put the new incidents on top.\par
+Example: A client updates the list on the screen. It removes the deletedTrafficIncidentIds, it updates the changedTrafficIncidentIds and adds the newTrafficIncidentIds. In this case the client only requests the information for the new and changed incidents
+from the service.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 unchangedTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Ids of the Traffic Incidents which haven't changed.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+changedTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Ids of the Traffic Incidents which have changed.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+newTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Ids of new Traffic Incidents.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+deletedTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Ids of deleted Traffic Incidents.}}\par
+\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F8BDB2FB_51D4_49ed_9D8A_4BAF18F6685C}{\*\bkmkend BKM_F8BDB2FB_51D4_49ed_9D8A_4BAF18F6685C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b updatesInAreas}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 If a client has registered itself as a listener for updates
+in the traffic incidents in one or more area's (via addAreaUpdateListener() or addAreasUpdateListener()), this method is called if there are changes.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RectangularArea}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 areas}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The area's in which changes have taken place.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_BC07414E_917D_4c51_A0BB_F3E1619532E3}{\*\bkmkend BKM_BC07414E_917D_4c51_A0BB_F3E1619532E3}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b PrimitiveType}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CategoryId}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The unique Id of the category.\ql\par
+Value range: 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_94CF86A8_195A_4961_AC5D_946CEF800D73}{\*\bkmkend BKM_94CF86A8_195A_4961_AC5D_946CEF800D73}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b PrimitiveType}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentId}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Value range: 0, .. , 2147483647 (0x7fffffff)}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart trafficincidentfeed}{\*\bkmkend trafficincidentfeed}{\*\bkmkstart BKM_52FF86D6_1963_4453_9534_02DC2E3425CE}{\*\bkmkend BKM_52FF86D6_1963_4453_9534_02DC2E3425CE}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentfeed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_5B5DE2C6_8312_4dfe_A575_7A6D05AAE07C}{\*\bkmkend BKM_5B5DE2C6_8312_4dfe_A575_7A6D05AAE07C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncident}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw27790\pich32821\picwgoal15750\pichgoal18600\picscalex59\picscaley59\sspicalign0 010000006c000000f8ffffffffffffff1d030000a403000000000000000000008e6c00003580000020454d46000001001c27020050160000060000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff01005efc12035efc1203ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff14030000a403000005000000100010001000203a2031203a2031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000780000001400000006000000
+10004001b006400180076000800710001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff7a000000160000000600000010004001b006400180076000800710001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7658006023086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bc4a2b000c859e1020000ffffa79d0000dc59e102188d17
+01452c0a0b5800602301003c01a79d000037bb4000452c0a0b70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0be8931a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126a69d00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000680000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c6662000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000cc0000000600000004000000690000000f0000000100000000400d4200040dc206000000fcffffff150000004c000000000000000000000000000000ffffffffffffffff7800000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400685c0600000003000000060000000600000006000000030000000500000004000000060000000300000003000000
+030000000600000003000000060000000600000003000000060000000600000006000000030000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080
+bf0000803f000020410a4000c01c00000010000000c0bfc0ff01000000890013ffd800db00280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600
+0000300000008a0000001c00000062010000f700000005000000a008c001a008700f2016700f2016c001a008c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000c0bfc0ff0b400040180000000c00000001000000890013ffd800db003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c0000000500008056000000
+2c0000007300000005000000790100000e01000004000000a008700f2016700f2016c001a008c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000
+000000064300006ac30000584300005b43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000860016ffd800db00250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000008700000019000000f800
+0000f400000005000000870019008700f400f800f400f800190087001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000f800000019000000fd000000f400000005000000f8001900f800f400fd00f400fd001900f8001900250000000c
+00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000fd0000001900000003010000f400000005000000fd001900fd00f4000301f40003011900fd001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000
+180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000030100001900000009010000f400000005000000030119000301f4000901f4000901190003011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000
+000c000000080000805600000030000000090100001900000010010000f400000005000000090119000901f4001001f4001001190009011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c000000080000805600000030000000100100001900000015010000f40000000500
+0000100119001001f4001501f4001501190010011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c00000008000080560000003000000015010000190000001b010000f400000005000000150119001501f4001b01f4001b01190015011900250000000c0000000800008025
+0000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c0000000800008056000000300000001b0100001900000021010000f4000000050000001b0119001b01f4002101f400210119001b011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000
+00000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000210100001900000027010000f400000005000000210119002101f4002701f4002701190021011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c000000080000
+80560000003000000027010000190000002b010000f400000005000000270119002701f4002b01f4002b01190027011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000002b0100001900000030010000f4000000050000002b0119002b01
+f4003001f400300119002b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c000000080000805600000030000000300100001900000035010000f400000005000000300119003001f4003501f4003501190030011900250000000c00000008000080250000000c00000000
+000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c00000002000000250000000c000000080000805600000030000000350100001900000038010000f400000005000000350119003501f4003801f4003801190035011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb00
+00000000250000000c00000002000000250000000c00000008000080560000003000000038010000190000003e010000f400000005000000380119003801f4003e01f4003e01190038011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000
+003e0100001900000043010000f4000000050000003e0119003e01f4004301f400430119003e011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c00000008000080560000003000000043010000190000004a010000f400000005000000430119004301f4004a01f4004a01
+190043011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c0000000800008056000000300000004a0100001900000050010000f4000000050000004a0119004a01f4005001f400500119004a011900250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000500100001900000056010000f400000005000000500119005001f4005601f4005601190050011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c1000000000025000000
+0c00000002000000250000000c00000008000080560000003000000056010000190000005b010000f400000005000000560119005601f4005b01f4005b01190056011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c0000000800008056000000300000005b010000190000
+005f010000f4000000050000005b0119005b01f4005f01f4005f0119005b011900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100
+0000860016ffd800db003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000007000000002000000760100000b0100000400000070
+08400ff015400ff015900170089001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000000000
+0000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901ee3c0ad49c58530bb296190100000000080160238ce3c577738c172646e0c5779401300b0000300b188d1701ee3c0ad4d4005600b4f26868c457e10237bb4000ee3c
+0ad408016023d5005400b4f268689087a1263c5ce10270374b0b00000000080000000000000000000000f8c7612348004b0b5c014b0b08016023f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a2460fe5f230100000000016023dc57e10223e0c577080160233a6c2e760865450100016023f057e102ad148b7564
+76000800000000250000000c00000002000000180000000c000000000000001e0000001800000090000000ebffffff55010000deffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000da0000001f0000000d0100002b0000000100000000400d4200040dc2d9000000ebffffff0b0000004c0000000000000000000000
+00000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00685c06000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a0000001200
+00000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e760801602308654501cc57e1021458e102245736019c58530b1058e10296
+9619018ce3c5776b83172646e0c5779401300b0000300bcea3500d1c58e1020000ffffa89d00003058e102188d1701ee3c0ad50801602301003c01a89d000037bb4000ee3c0ad570374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0be8931a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126a79d000088144000
+00cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000a8000000d10000002c00000016010000370000000100000000400d4200040dc2d0000000deffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005400720061006600660069
+00630049006e0063006900640065006e007400636b0500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100
+0000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008600ccff5e01ccff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000070000000270000007601000055000000020000007008e003f015e003250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c00000042000000950000004e0000000100000000400d4200040dc28b000000c8ffffff020000004c000000000000000000000000000000ffffffffffff
+ffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000009d000000420000000b0100004e0000000100000000400d4200040dc29c000000c8ffffff1a0000004c000000000000000000000000000000
+ffffffffffffffff80000000740072006100660066006900630049006e0063006900640065006e00740049006400200020003a0053007400720069006e00670003000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000030000000700000003000000030000000300000006000000060000
+000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c0000004f000000950000005b0000000100000000400d4200040dc28b000000bbffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006
+000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000000100009d0000004f000000280100005b0000000100000000400d4200040dc29c000000bbffffff1e0000004c000000000000000000000000000000ffffffffffffffff880000
+0065006600660065006300740043006f0064006500200020003a0045006600660065006300740043006f006400650020005b0030002e002e0031005d0006000000030000000300000006000000050000000300000007000000060000000600000006000000030000000300000003000000070000000300000003000000060000000500000003000000070000000600000006000000060000000300000003000000060000000300
+00000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c0000005c00000095000000680000000100000000400d4200040dc28b000000aeffffff020000004c000000000000000000000000000000ffffffff
+ffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c0100009d0000005c00000034010000680000000100000000400d4200040dc29c000000aeffffff200000004c00000000000000000000000000
+0000ffffffffffffffff8c00000073007400610072007400540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d000400000003000000060000000300000003000000070000000300000009000000060000000300000003000000030000000700000003000000090000000600000003000000060000000900000003000000060000000600000003
+0000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c0000006900000095000000750000000100000000400d4200040dc28b000000a1ffff
+ff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100009d0000006900000034010000750000000100000000400d4200040dc29c
+000000a1ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000730074006f007000540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d007d5c04000000030000000600000006000000070000000300000009000000060000000300000003000000030000000700000003000000090000000600000003000000
+0600000009000000030000000600000006000000030000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c00000076000000950000008200
+00000100000000400d4200040dc28b00000094ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000009d00000076000000
+1b010000820000000100000000400d4200040dc29c00000094ffffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000740065006e00640065006e0063007900200020003a00540065006e00640065006e006300790020005b0030002e002e0031005d0003000000060000000600000006000000060000000600000005000000050000000300000003000000030000000700000006000000060000
+000600000006000000060000000500000005000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c00000083000000950000008f0000000100000000400d4200
+040dc28b00000087ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100009d00000083000000270100008f000000010000
+0000400d4200040dc29c00000087ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006c0065006e0067007400680041006600660065006300740065006400200020003a0049006e007400650067006500720020005b0030002e002e0031005d005c66030000000600000006000000060000000300000006000000070000000300000003000000060000000500000003000000060000000600
+000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c000000
+90000000950000009c0000000100000000400d4200040dc28b0000007affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c01
+00009d00000090000000500100009c0000000100000000400d4200040dc29c0000007affffff250000004c000000000000000000000000000000ffffffffffffffff980000006100760065007200610067006500530070006500650064004100620073006f006c00750074006500200020003a0049006e007400650067006500720020005b0030002e002e0031005d002a5c060000000500000006000000030000000600000006
+000000060000000700000006000000060000000600000006000000070000000600000004000000060000000300000006000000030000000600000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c0000009d00000095000000a90000000100000000400d4200040dc28b0000006dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000009d0000009d000000fc000000a90000000100000000400d4200040dc29c0000006dffffff160000004c000000000000000000000000000000ffffffffffffffff78000000640065006c0061007900200020003a0049006e007400650067006500720020005b0030002e002e00
+31005d00060000000600000003000000060000000500000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000580000008c000000aa00000095000000b60000000100000000400d4200040dc28b00000060ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b00000054000000180100009d000000aa00000041010000b60000000100000000400d4200040dc29c00000060ffffff220000004c000000000000000000000000000000ffffffffffffffff900000007300650067006d0065006e007400530070006500650064004c0069006d0069007400200020003a0049006e007400650067006500720020005b0030002e002e0031005d0004000000060000
+0006000000090000000600000006000000030000000700000006000000060000000600000006000000060000000300000009000000030000000300000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c000000b700000095000000c30000000100000000400d4200040dc28b00000053ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000
+000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100009d000000b70000003a010000c30000000100000000400d4200040dc29c00000053ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000065007800700065006300740065006400530070006500650064004100620073006f006c007500
+74006500200020003a0049006e00740065006700650072005c66060000000500000006000000060000000500000003000000060000000600000007000000060000000600000006000000060000000700000006000000040000000600000003000000060000000300000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c000000c400000095000000d00000000100000000400d4200040dc28b00000046ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffff
+ff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c0100009d000000c400000050010000d00000000100000000400d4200040dc29c00000046ffffff250000004c000000000000000000000000000000ffffffffffffffff98000000650078007000690072006100740069006f
+006e00540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d006172060000000500000006000000030000000300000006000000030000000300000006000000060000000700000003000000090000000600000003000000030000000300000007000000030000000900000006000000030000000600000009000000030000000600000006000000
+030000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008c000000d100000095000000dd0000000100000000400d4200040dc28b00000039ff
+ffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000140100009d000000d100000042010000dd0000000100000000400d4200040dc2
+9c00000039ffffff210000004c000000000000000000000000000000ffffffffffffffff90000000750070006400610074006500540069006d006500200020003a00540069006d00650049006e004d0069006e00750074006500730020005b0030002e002e0031005d005c700600000006000000060000000600000003000000060000000700000003000000090000000600000003000000030000000300000007000000030000
+000900000006000000030000000600000009000000030000000600000006000000030000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000650242fea00045002100000008000000620000000c0000000100
+0000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000660200008301000006030000c801000005000000602630186026801c6030801c6030301860263018250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000650242fea00045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000004f0200006c0100001d030000df010000040000006026801c6030801c6030301860263018250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000008018440080ddc30000204300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200
+000001000000620245fea0004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000006302000080010000b7020000c501000005000000630280016302c501b702c501b702800163028001250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000b702000080010000bb020000c501000005000000b7028001b702c501bb02c501bb028001b7028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000
+080000805600000030000000bb02000080010000bf020000c501000005000000bb028001bb02c501bf02c501bf028001bb028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000bf02000080010000c4020000c501000005000000bf0280
+01bf02c501c402c501c4028001bf028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000c402000080010000c9020000c501000005000000c4028001c402c501c902c501c9028001c4028001250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000c902000080010000cd020000c501000005000000c9028001c902c501cd02c501cd028001c9028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6
+e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000cd02000080010000d1020000c501000005000000cd028001cd02c501d102c501d1028001cd028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000
+30000000d102000080010000d5020000c501000005000000d1028001d102c501d502c501d5028001d1028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000d502000080010000da020000c501000005000000d5028001d502c501da02c5
+01da028001d5028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000da02000080010000df020000c501000005000000da028001da02c501df02c501df028001da028001250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000df02000080010000e3020000c501000005000000df028001df02c501e302c501e3028001df028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd000000000025
+0000000c00000004000000250000000c000000080000805600000030000000e302000080010000e7020000c501000005000000e3028001e302c501e702c501e7028001e3028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000e7020000
+80010000eb020000c501000005000000e7028001e702c501eb02c501eb028001e7028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000eb02000080010000ef020000c501000005000000eb028001eb02c501ef02c501ef028001eb0280
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000ef02000080010000f3020000c501000005000000ef028001ef02c501f302c501f3028001ef028001250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f302000080010000f8020000c501000005000000f3028001f302c501f802c501f8028001f3028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004
+000000250000000c000000080000805600000030000000f802000080010000fc020000c501000005000000f8028001f802c501fc02c501fc028001f8028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000fc0200008001000001030000
+c501000005000000fc028001fc02c5010103c50101038001fc028001250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000010300008001000003030000c501000005000000010380010103c5010303c5010303800101038001250000000c0000
+0008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000620245fea00045003a0000000c0000000a00000024000000240000000000803d000000000000
+00000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000004c020000690100001a030000dc010000040000003026501c3030501c3030001830260018250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000006c02000084fefffff902000077feffff160000000c00000001000000120000000c0000
+00010000001b000000100000000000000000000000160000000c0000000000000054000000900000009a02000086010000cd020000920100000100000000400d4200040dc29902000084feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb005c6406000000040000000300000003000000060000000500000003000000060000000300
+000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c0000009502000093010000d10200009e01000001000000
+00400d4200040dc29402000077feffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004100700070006c00690063006100620069006c006900740079005c63070000000600000006000000030000000300000006000000060000000600000003000000030000000300000003000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c0000
+0070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000620265fe020365fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a00
+00000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000004c0200008e0100001a030000bc010000020000003026501a3030501a250000000c
+00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000068020000a901000071020000b50100
+000100000000400d4200040dc26702000061feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e400000079020000a9010000f8
+020000b50100000100000000400d4200040dc27802000061feffff190000004c000000000000000000000000000000ffffffffffffffff80000000760065006800690063006c0065005400790070006500200020003a00560065006800690063006c00650054007900700065005c6c0500000006000000060000000300000005000000030000000600000007000000050000000600000006000000030000000300000003000000
+07000000060000000600000003000000050000000300000006000000070000000500000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000bd011eff940045002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000
+0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000be010000a700000052020000ec00000005000000e01b700ae01bc00e2025c00e2025700ae01b700a250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000bd011eff940045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+00000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a701000090000000690200000301000004000000e01bc00e2025c00e2025700ae01b700a250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000dd4300005fc30000144300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ba0121ff94004500250000000c00000008000080270000
+00180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000bb010000a400000008020000e900000005000000bb01a400bb01e9000802e9000802a400bb01a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c000000040000002500
+00000c00000008000080560000003000000008020000a40000000c020000e9000000050000000802a4000802e9000c02e9000c02a4000802a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000000c020000a400000010020000e900000005
+0000000c02a4000c02e9001002e9001002a4000c02a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000010020000a400000015020000e9000000050000001002a4001002e9001502e9001502a4001002a400250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000015020000a400000019020000e9000000050000001502a4001502e9001902e9001902a4001502a400250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000019020000a40000001d020000e9000000050000001902a4001902e9001d02e9001d02a4001902a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800
+008056000000300000001d020000a400000020020000e9000000050000001d02a4001d02e9002002e9002002a4001d02a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000020020000a400000025020000e9000000050000002002a40020
+02e9002502e9002502a4002002a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000025020000a400000029020000e9000000050000002502a4002502e9002902e9002902a4002502a400250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000029020000a40000002d020000e9000000050000002902a4002902e9002d02e9002d02a4002902a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf
+0000000000250000000c00000004000000250000000c0000000800008056000000300000002d020000a400000030020000e9000000050000002d02a4002d02e9003002e9003002a4002d02a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000
+000030020000a400000033020000e9000000050000003002a4003002e9003302e9003302a4003002a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000033020000a400000037020000e9000000050000003302a4003302e9003702e90037
+02a4003302a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000037020000a40000003a020000e9000000050000003702a4003702e9003a02e9003a02a4003702a400250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000003a020000a40000003e020000e9000000050000003a02a4003a02e9003e02e9003e02a4003a02a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000
+000c00000004000000250000000c0000000800008056000000300000003e020000a400000043020000e9000000050000003e02a4003e02e9004302e9004302a4003e02a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000043020000a400
+000047020000e9000000050000004302a4004302e9004702e9004702a4004302a400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000047020000a40000004b020000e9000000050000004702a4004702e9004b02e9004b02a4004702a40025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000004b020000a40000004f020000e9000000050000004b02a4004b02e9004f02e9004f02a4004b02a400250000000c00000008000080250000000c00000000000080280000000c00000004000000
+250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ba0121ff940045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000
+003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a40100008d000000660200000001000004000000b01b900ef024900ef024400ab01b400a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000070000000f4010000ad00000017020000b80000000100000000400d4200040dc2f30100005dffffff060000004c000000000000000000000000000000ffffffffffffffff
+580000004100640076006900630065000700000006000000070000000300000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000
+00ba014bff4e024bff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000
+0000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000a4010000a800000066020000d600000002000000b01bf00bf024f00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ff
+ffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000c0010000c3000000c9010000cf0000000100000000400d4200040dc2bf01000047ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000d1010000c30000004b020000cf0000000100000000400d4200040dc2d001000047ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006d00610069006e00410064007600690063006500200020003a00410064
+00760069006300650043006f0064006500464909000000060000000300000006000000070000000600000005000000030000000500000006000000030000000300000003000000070000000600000005000000030000000500000006000000070000000600000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000c0010000d0000000c9010000dc0000000100000000400d4200040dc2bf0100003affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000d1010000d000000039020000dc0000000100000000400d4200040dc2d00100003affffff170000004c000000000000000000000000000000ffffffffffffffff7c000000730075006200410064007600690063006500200020003a00620079007400650020005b0030002e002e0031005d00465f0400000006000000
+0600000007000000060000000500000003000000050000000600000003000000030000000300000006000000050000000300000006000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000027004efe8e00450021000000080000
+00620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002800000077010000b6000000bc01000005000000800270178002c01b600bc01b600b701780027017250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000027004efe8e0045003a0000000c0000000a00000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001100000060010000cd000000d3010000040000008002c01b600bc01b600b701780027017250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000010420080d7c300000e4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000
+401c000000100000000200000001000000240051fe8e004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000025000000740100006f000000b901000005000000250074012500b9016f00b9016f00740125007401250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000006f0000007401000073000000b9010000050000006f0074016f00b9017300b901730074016f007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004
+000000250000000c000000080000805600000030000000730000007401000077000000b901000005000000730074017300b9017700b9017700740173007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000077000000740100007b000000
+b901000005000000770074017700b9017b00b9017b00740177007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000007b000000740100007f000000b9010000050000007b0074017b00b9017f00b9017f0074017b007401250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000007f0000007401000083000000b9010000050000007f0074017f00b9018300b901830074017f007401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000830000007401000086000000b901000005000000830074018300b9018600b9018600740183007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c
+00000008000080560000003000000086000000740100008a000000b901000005000000860074018600b9018a00b9018a00740186007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000008a000000740100008f000000b901000005000000
+8a0074018a00b9018f00b9018f0074018a007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000008f0000007401000093000000b9010000050000008f0074018f00b9019300b901930074018f007401250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000930000007401000096000000b901000005000000930074019300b9019600b9019600740193007401250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000096000000740100009a000000b901000005000000960074019600b9019a00b9019a00740196007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056
+000000300000009a000000740100009d000000b9010000050000009a0074019a00b9019d00b9019d0074019a007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000009d00000074010000a1000000b9010000050000009d0074019d00b901
+a100b901a10074019d007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000a100000074010000a5000000b901000005000000a1007401a100b901a500b901a5007401a1007401250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000a500000074010000aa000000b901000005000000a5007401a500b901aa00b901aa007401a5007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac3000000
+0000250000000c00000004000000250000000c000000080000805600000030000000aa00000074010000ad000000b901000005000000aa007401aa00b901ad00b901ad007401aa007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000ad
+00000074010000b1000000b901000005000000ad007401ad00b901b100b901b1007401ad007401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b100000074010000b3000000b901000005000000b1007401b100b901b300b901b3007401
+b1007401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000240051fe8e0045003a0000000c0000000a00000024000000240000
+000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000e0000005d010000ca000000d0010000040000005002901b300b901b300b401750024017250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002e00000090feffffa900000083feffff160000000c000000
+01000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000530000007a01000086000000860100000100000000400d4200040dc25200000090feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb005f380600000004000000030000000300000006000000050000
+0003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000006c0000005d000000870100007c
+000000920100000100000000400d4200040dc25c00000083feffff050000004c000000000000000000000000000000ffffffffffffffff58000000430061007500730065007d7d07000000060000000600000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000240071feb20071fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000e00000082010000ca000000b00100000200000050029019300b9019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002a0000009d01000033000000a90100000100000000400d4200040dc2290000006dfeffff020000004c0000000000000000000000
+00000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000003b0000009d010000af000000a90100000100000000400d4200040dc23a0000006dfeffff150000004c0000000000
+00000000000000000000ffffffffffffffff780000006d00610069006e0043006100750073006500200020003a004300610075007300650043006f0064006500454e0900000006000000030000000600000007000000060000000600000004000000060000000300000003000000030000000700000006000000060000000400000006000000070000000600000006000000060000000a00000010000000ffffffff0a0000000c
+000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000150021fdba0088002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080
+56000000300000001600000061020000d0000000e902000005000000600110266001902e000d902e000d102660011026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000
+000210c0db00000000c0bfc0ff0b400040180000000c00000001000000150021fdba0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c000000050000805600
+00002c000000ffffffff4a020000e700000000030000040000006001902e000d902e000d102660011026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000
+00000000009041000037c400003a4300000843bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000120024fdba008800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000130000005e020000
+74000000e60200000500000013005e021300e6027400e60274005e0213005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000740000005e02000079000000e60200000500000074005e027400e6027900e60279005e0274005e02250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000790000005e0200007e000000e60200000500000079005e027900e6027e00e6027e005e0279005e02250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007e0000005e02000083000000e6020000050000007e005e027e00e6028300e60283005e027e005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c0000000400000025
+0000000c000000080000805600000030000000830000005e02000089000000e60200000500000083005e028300e6028900e60289005e0283005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000890000005e0200008e000000e6020000
+0500000089005e028900e6028e00e6028e005e0289005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000008e0000005e02000092000000e6020000050000008e005e028e00e6029200e60292005e028e005e02250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000920000005e02000098000000e60200000500000092005e029200e6029800e60298005e0292005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000980000005e0200009d000000e60200000500000098005e029800e6029d00e6029d005e0298005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008
+00008056000000300000009d0000005e020000a0000000e6020000050000009d005e029d00e602a000e602a0005e029d005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000a00000005e020000a5000000e602000005000000a0005e02
+a000e602a500e602a5005e02a0005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000a50000005e020000a9000000e602000005000000a5005e02a500e602a900e602a9005e02a5005e02250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000a90000005e020000ae000000e602000005000000a9005e02a900e602ae00e602ae005e02a9005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0
+ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ae0000005e020000b3000000e602000005000000ae005e02ae00e602b300e602b3005e02ae005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030
+000000b30000005e020000b8000000e602000005000000b3005e02b300e602b800e602b8005e02b3005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b80000005e020000be000000e602000005000000b8005e02b800e602be00e602
+be005e02b8005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000be0000005e020000c3000000e602000005000000be005e02be00e602c300e602c3005e02be005e02250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000c30000005e020000c8000000e602000005000000c3005e02c300e602c800e602c8005e02c3005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c000000000002500
+00000c00000004000000250000000c000000080000805600000030000000c80000005e020000cc000000e602000005000000c8005e02c800e602cc00e602cc005e02c8005e02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000cc0000005e
+020000cd000000e602000005000000cc005e02cc00e602cd00e602cd005e02cc005e02250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000
+01000000120024fdba0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fcffffff47020000e4000000fd020000040000
+003001602ed00c602ed00ce0253001e025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00520000007001000004000000f6ffffff000000000000000000
+00000000000000010000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e760801602308654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bcea3500d1c58e102d5003e00b6f268683058e102188d1701
+ee3c0ad508016023d6004000b6f2686837bb4000ee3c0ad570374b0ba8d56b0008000000a05ae10200000000f8c7612348004b0b5c014b0b68006023f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a48d6a01ac58e102f0f31a01ac90a60160fe5f230100000060006023c458e10223e0c577680060233a6c2e76a48d6a0160006023d858e102ad148b
+756476000800000000250000000c00000004000000180000000c00000000000000540000006c000000ac00000061020000ca0000006d0200000100000000400d4200040dc2ab000000a9fdffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500494507000000060000000600000005000000060000000a00000010000000ffffffff0a0000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001c00000096fdffffc300000089fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000057000000740200008a000000800200000100000000400d42
+00040dc25600000096fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb006c6406000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffff
+ff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009000000052000000810200008e0000008c0200000100000000400d4200040dc25100000089fdffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004400690072006500630074004300610075
+0073006500617607000000030000000400000006000000060000000300000007000000060000000600000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff084001032400000018000000
+0210c0db0200000000400000120077fdcc0077fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101
+00100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000fcffffff7c020000e4000000aa0200000200000030013029d00c3029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a00
+0000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000180000009702000021000000a30200000100000000400d4200040dc21700000073fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff
+0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000002900000097020000b2000000a30200000100000000400d4200040dc22800000073fdffff1b0000004c000000000000000000000000000000ffffffffffffffff840000007700610072006e0069006e0067004c006500
+760065006c00200020003a005700610072006e0069006e0067004c006500760065006c0038460700000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000300000003000000030000000900000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000a00000010000000ffffffff0a0000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000018000000a402000021000000b00200000100000000400d4200040dc21700000066fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000029000000a4020000bf000000b00200000100000000400d4200040dc22800000066fdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000075006e007600650072006900660069006500640049
+006e0066006f0072006d006100740069006f006e00200020003a0042006f006f006c00650061006e00305c06000000060000000500000006000000030000000300000003000000030000000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000003000000030000000300000007000000060000000600000003000000060000000600000006000000
+0a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000018000000b102000021000000bd0200000100000000400d4200040dc21700000059fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600
+0000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000029000000b102000073000000bd0200000100000000400d4200040dc22800000059fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000
+73007500620043006100750073006500200020003a0062007900740065006e640400000006000000060000000700000006000000060000000400000006000000030000000300000003000000060000000500000003000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b000000540000005800000018000000be02000021000000ca0200000100000000400d4200040dc2170000004cfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b00000054000000dc00000029000000be02000098000000ca0200000100000000400d4200040dc2280000004cfdffff180000004c000000000000000000000000000000ffffffffffffffff7c0000006c0065006e0067007400680041006600660065006300740065006400200020003a0049006e0074006500670065007200030000000600000006000000060000000300000006000000070000
+0003000000030000000600000005000000030000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000018000000cb
+02000021000000d70200000100000000400d4200040dc2170000003ffdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000
+0029000000cb020000a4000000d70200000100000000400d4200040dc2280000003ffdffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000630061007500730065004f0066006600730065007400200020003a0049006e007400650067006500720020005b0030002e002e0031005d00050000000600000006000000040000000600000008000000030000000300000004000000060000000300
+000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000110095fce20045002100000008000000620000000c0000000100000011
+0000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000001200000030030000f400000075030000050000002001003320015037400f5037400f003320010033250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000110095fce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000000000
+00020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000fbffffff190300000b0100008c0300000400000020015037400f5037400f003320010033250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000604100005ac40000624300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001
+0000000e0098fce2004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000000f0000002d0300008500000072030000050000000f002d030f0072038500720385002d030f002d03250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000850000002d0300008a000000720300000500000085002d03850072038a0072038a002d0385002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000
+8056000000300000008a0000002d0300009000000072030000050000008a002d038a0072039000720390002d038a002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000900000002d03000096000000720300000500000090002d039000
+72039600720396002d0390002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000960000002d0300009b000000720300000500000096002d03960072039b0072039b002d0396002d03250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000009b0000002d030000a100000072030000050000009b002d039b007203a1007203a1002d039b002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead800
+00000000250000000c00000005000000250000000c000000080000805600000030000000a10000002d030000a70000007203000005000000a1002d03a1007203a7007203a7002d03a1002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c0000000800008056000000300000
+00a70000002d030000ad0000007203000005000000a7002d03a7007203ad007203ad002d03a7002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000ad0000002d030000b40000007203000005000000ad002d03ad007203b4007203b400
+2d03ad002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000b40000002d030000ba0000007203000005000000b4002d03b4007203ba007203ba002d03b4002d03250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000ba0000002d030000be0000007203000005000000ba002d03ba007203be007203be002d03ba002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf000000000025000000
+0c00000005000000250000000c000000080000805600000030000000be0000002d030000c30000007203000005000000be002d03be007203c3007203c3002d03be002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000c30000002d0300
+00c90000007203000005000000c3002d03c3007203c9007203c9002d03c3002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000c90000002d030000ce0000007203000005000000c9002d03c9007203ce007203ce002d03c9002d032500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000ce0000002d030000d40000007203000005000000ce002d03ce007203d4007203d4002d03ce002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027
+000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000d40000002d030000db0000007203000005000000d4002d03d4007203db007203db002d03d4002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000
+250000000c000000080000805600000030000000db0000002d030000e20000007203000005000000db002d03db007203e2007203e2002d03db002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000e20000002d030000e8000000720300
+0005000000e2002d03e2007203e8007203e8002d03e2002d03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000e80000002d030000ed0000007203000005000000e8002d03e8007203ed007203ed002d03e8002d03250000000c0000000800
+0080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000ed0000002d030000f10000007203000005000000ed002d03ed007203f1007203f1002d03ed002d03250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007
+000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000e0098fce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000
+380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000f8ffffff16030000080100008903000004000000f0002037100f2037100fd032f000d032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000018000000d7fcffffe7000000cafcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090
+00000067000000330300009a0000003f0300000100000000400d4200040dc266000000d7fcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c00000000000000
+4b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac0000005700000040030000aa0000004b0300000100000000400d4200040dc256000000cafcffff100000004c000000000000000000000000000000ffff
+ffffffffffff6c0000004c0061006e0065005200650073007400720069006300740069006f006e007300060000000600000006000000060000000700000006000000060000000300000004000000030000000600000003000000030000000600000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c00000002
+10c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000e00b8fcf000b8fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000f8ffffff3b030000080100006903000002000000f0002035100f2035250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000560300001d000000620300000100000000400d4200040dc213000000b4fcffff02
+0000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000440100002500000056030000ed000000620300000100000000400d4200040dc2240000
+00b4fcffff290000004c000000000000000000000000000000ffffffffffffffffa00000006c0061006e0065005200650073007400720069006300740069006f006e005400790070006500200020003a004c0061006e0065005200650073007400720069006300740069006f006e005400790070006500000003000000060000000600000006000000070000000600000004000000030000000300000003000000050000000300
+000003000000060000000600000007000000050000000600000006000000030000000300000003000000060000000600000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000500000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000630300001d0000006f0300000100000000400d4200040dc213000000a7fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000025000000630300009a0000006f0300000100000000400d4200040dc224000000a7fcffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006e0075006d006200650072004f0066004c0061006e0065007300200020003a0049006e0074006500670065007200000006
+000000060000000900000006000000060000000300000008000000030000000600000006000000060000000600000004000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008c00c3fdaa004500
+2100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008d00000002020000370100004702000005000000d0082020d00870247013702470132020d0082020250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008c00c3fdaa0045003a0000000c0000000a00000024000000240000000000
+803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000076000000eb0100004e0100005e02000004000000d00870247013702470132020d0082020250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000094300800ec400002a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcff
+bed7e8ff0a4000401c0000001000000002000000010000008900c6fdaa004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000008a000000ff010000e300000044020000050000008a00ff018a004402e3004402e300ff018a00ff01250000000c00000008000080250000000c00000000000080280000
+000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000e3000000ff010000e70000004402000005000000e300ff01e3004402e7004402e700ff01e300ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df00000000002500
+00000c00000005000000250000000c000000080000805600000030000000e7000000ff010000eb0000004402000005000000e700ff01e7004402eb004402eb00ff01e700ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000eb000000ff
+010000ef0000004402000005000000eb00ff01eb004402ef004402ef00ff01eb00ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000ef000000ff010000f30000004402000005000000ef00ff01ef004402f3004402f300ff01ef00ff01
+250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000f3000000ff010000f80000004402000005000000f300ff01f3004402f8004402f800ff01f300ff01250000000c00000008000080250000000c00000000000080280000000c000000050000
+0027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000f8000000ff010000fc0000004402000005000000f800ff01f8004402fc004402fc00ff01f800ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c0000000500
+0000250000000c000000080000805600000030000000fc000000ff010000010100004402000005000000fc00ff01fc004402010144020101ff01fc00ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c00000008000080560000003000000001010000ff0100000601000044
+020000050000000101ff0101014402060144020601ff010101ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c00000008000080560000003000000006010000ff0100000b01000044020000050000000601ff01060144020b0144020b01ff010601ff01250000000c000000
+08000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c0000000800008056000000300000000b010000ff0100000f01000044020000050000000b01ff010b0144020f0144020f01ff010b01ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000
+000500000000000000f1e3ce0000000000250000000c00000005000000250000000c0000000800008056000000300000000f010000ff0100001301000044020000050000000f01ff010f014402130144021301ff010f01ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cd0000000000250000000c00000005000000250000000c00
+000008000080560000003000000013010000ff0100001601000044020000050000001301ff0113014402160144021601ff011301ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c00000008000080560000003000000016010000ff0100001a010000440200000500000016
+01ff01160144021a0144021a01ff011601ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c0000000800008056000000300000001a010000ff0100001e01000044020000050000001a01ff011a0144021e0144021e01ff011a01ff01250000000c0000000800008025000000
+0c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c0000000800008056000000300000001e010000ff0100002301000044020000050000001e01ff011e014402230144022301ff011e01ff01250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000000000
+00ecdcc50000000000250000000c00000005000000250000000c00000008000080560000003000000023010000ff0100002901000044020000050000002301ff0123014402290144022901ff012301ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600
+00003000000029010000ff0100002d01000044020000050000002901ff01290144022d0144022d01ff012901ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c0000000800008056000000300000002d010000ff0100003101000044020000050000002d01ff012d01440231
+0144023101ff012d01ff01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c00000008000080560000003000000031010000ff0100003401000044020000050000003101ff0131014402340144023401ff013101ff01250000000c00000008000080250000000c00000000000080
+280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008900c6fdaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000
+005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000073000000e80100004b0100005b02000004000000a0084024401340244013f01fa008f01f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000006c0000001301000002020000310100000e0200000100000000400d4200040dc21201000008feffff050000004c0000000000000000000000
+00000000ffffffffffffffff5800000043006100750073006500000007000000060000000600000005000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+00100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000093000000f5fdffff2a010000e8fdffff160000000c0000000100
+0000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000c600000015020000f9000000210200000100000000400d4200040dc2c5000000f5fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003
+000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000090000000bf00000022020000ff0000
+002d0200000100000000400d4200040dc2be000000e8fdffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004c0069006e006b006500640043006100750073006500506b06000000030000000600000006000000060000000600000007000000060000000600000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c0000007000
+0000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008900d6fd3301d6fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000730000001d0200004b0100004b02000002000000a008402340134023250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008f0000003802000098000000440200000100
+000000400d4200040dc28e000000d2fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000a0000000380200002d010000
+440200000100000000400d4200040dc29f000000d2fdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000063006100750073006500540072006100660066006900630049006e0063006900640065006e00740049006400200020003a0053007400720069006e00670000000500000006000000060000000400000006000000070000000300000006000000030000000300000003000000050000
+00030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004e0212fdb10045002100000008000000620000000c00
+000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000004f020000b302000000030000f802000005000000f024302bf024802f0030802f0030302bf024302b250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004e0212fdb10045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000380200009c020000170300000f03000004000000f024802f0030802f0030302bf024302b250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c0124400c03ac40000314300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000
+000002000000010000004b0215fdb1004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000004c020000b0020000a8020000f5020000050000004c02b0024c02f502a802f502a802b0024c02b002250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000a8020000b0020000ad020000f502000005000000a802b002a802f502ad02f502ad02b002a802b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c0000000500000025000000
+0c000000080000805600000030000000ad020000b0020000b1020000f502000005000000ad02b002ad02f502b102f502b102b002ad02b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000b1020000b0020000b6020000f5020000050000
+00b102b002b102f502b602f502b602b002b102b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000b6020000b0020000ba020000f502000005000000b602b002b602f502ba02f502ba02b002b602b002250000000c000000080000802500
+00000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000ba020000b0020000be020000f502000005000000ba02b002ba02f502be02f502be02b002ba02b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000
+000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000be020000b0020000c3020000f502000005000000be02b002be02f502c302f502c302b002be02b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c00000008000080
+5600000030000000c3020000b0020000c8020000f502000005000000c302b002c302f502c802f502c802b002c302b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000c8020000b0020000cd020000f502000005000000c802b002c802f5
+02cd02f502cd02b002c802b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000cd020000b0020000d2020000f502000005000000cd02b002cd02f502d202f502d202b002cd02b002250000000c00000008000080250000000c0000000000
+0080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000d2020000b0020000d5020000f502000005000000d202b002d202f502d502f502d502b002d202b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000
+000000250000000c00000005000000250000000c000000080000805600000030000000d5020000b0020000d9020000f502000005000000d502b002d502f502d902f502d902b002d502b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000
+d9020000b0020000dd020000f502000005000000d902b002d902f502dd02f502dd02b002d902b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c000000080000805600000030000000dd020000b0020000e2020000f502000005000000dd02b002dd02f502e202f502e202b0
+02dd02b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000e2020000b0020000e6020000f502000005000000e202b002e202f502e602f502e602b002e202b002250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000e6020000b0020000ec020000f502000005000000e602b002e602f502ec02f502ec02b002e602b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c
+00000005000000250000000c000000080000805600000030000000ec020000b0020000f1020000f502000005000000ec02b002ec02f502f102f502f102b002ec02b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000f1020000b0020000
+f6020000f502000005000000f102b002f102f502f602f502f602b002f102b002250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000f6020000b0020000fa020000f502000005000000f602b002f602f502fa02f502fa02b002f602b002250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000fa020000b0020000fd020000f502000005000000fa02b002fa02f502fd02f502fd02b002fa02b002250000000c00000008000080250000000c00000000000080280000000c000000050000002500
+00000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004b0215fdb10045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038
+00000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000003502000099020000140300000c03000004000000c024502fd02f502fd02f002bc024002b250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000005502000054fdfffff302000047fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+000054000000900000008b020000b6020000be020000c20200000100000000400d4200040dc28a02000054fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c
+000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e400000065020000c3020000e4020000ce0200000100000000400d4200040dc26402000047fdffff190000004c00000000000000000000
+0000000000ffffffffffffffff80000000560065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e0001000700000006000000060000000300000006000000030000000600000007000000060000000300000006000000030000000600000006000000070000000600000006000000030000000400000003000000060000000300000003000000060000000600
+00000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004b0235fdfc0235fd0001010115400100100000000400000000000000210000000800000062
+0000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080
+570000002400000035020000be02000014030000ec02000002000000c024502dd02f502d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b000000540000005800000051020000d90200005a020000e50200000100000000400d4200040dc25002000031fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b000000540000001401000062020000d9020000f9020000e50200000100000000400d4200040dc26102000031fdffff210000004c000000000000000000000000000000ffffffffffffffff900000007200650073007400720069006300740069006f006e005400790070006500200020003a005200650073007400720069006300740069006f006e00540079007000650033
+010300000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000500000006000000060000000300000003000000030000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000500000006000000060000000a00000010000000ffffffff0a0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000051020000e60200005a020000f20200000100000000400d4200040dc25002000024fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e800000062020000e6020000d5020000f20200000100000000400d4200040dc26102000024fdffff1a0000004c000000000000000000000000000000ffffffffffffffff800000007200650073007400720069006300740069006f006e00560061006c00750065002000
+20003a0049006e007400650067006500720003000000060000000400000003000000030000000300000005000000030000000300000006000000060000000700000006000000030000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c0000002000000045
+4d462b0a4000c01c00000010000000c0bfc0ff01000000e30189fcb20045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000e40100003c030000960200008103000005000000
+401ec033401e1038602910386029c033401ec033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000
+00e30189fcb20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000cd01000025030000ad0200009803000004000000401e
+1038602910386029c033401ec033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f04300005dc40000324300008a42bed7e8ffe3f2fcffbe
+d7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000e0018cfcb2004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000e1010000390300003e0200007e03000005000000e1013903e1017e033e027e033e023903
+e1013903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000003e02000039030000420200007e030000050000003e0239033e027e0342027e03420239033e023903250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000004202000039030000470200007e030000050000004202390342027e0347027e034702390342023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00
+000005000000250000000c00000008000080560000003000000047020000390300004d0200007e030000050000004702390347027e034d027e034d02390347023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c0000000800008056000000300000004d0200003903000052
+0200007e030000050000004d0239034d027e0352027e03520239034d023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c0000000800008056000000300000005202000039030000560200007e030000050000005202390352027e0356027e03560239035202390325000000
+0c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c00000008000080560000003000000056020000390300005b0200007e030000050000005602390356027e035b027e035b02390356023903250000000c00000008000080250000000c00000000000080280000000c00000005000000270000
+00180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c0000000800008056000000300000005b02000039030000600200007e030000050000005b0239035b027e0360027e03600239035b023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c000000050000002500
+00000c0000000800008056000000300000006002000039030000650200007e030000050000006002390360027e0365027e036502390360023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c0000000800008056000000300000006502000039030000680200007e03000005
+0000006502390365027e0368027e036802390365023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c00000008000080560000003000000068020000390300006d0200007e030000050000006802390368027e036d027e036d02390368023903250000000c00000008000080
+250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c0000000800008056000000300000006d02000039030000710200007e030000050000006d0239036d027e0371027e03710239036d023903250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000
+0000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000007102000039030000750200007e030000050000007102390371027e0375027e037502390371023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800
+0080560000003000000075020000390300007a0200007e030000050000007502390375027e037a027e037a02390375023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c0000000800008056000000300000007a020000390300007f0200007e030000050000007a0239037a
+027e037f027e037f0239037a023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c0000000800008056000000300000007f02000039030000840200007e030000050000007f0239037f027e0384027e03840239037f023903250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000084020000390300008a0200007e030000050000008402390384027e038a027e038a02390384023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c2
+0000000000250000000c00000005000000250000000c0000000800008056000000300000008a020000390300008e0200007e030000050000008a0239038a027e038e027e038e0239038a023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c00000008000080560000003000
+00008e02000039030000920200007e030000050000008e0239038e027e0392027e03920239038e023903250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c0000000800008056000000300000009202000039030000930200007e030000050000009202390392027e0393027e0393
+02390392023903250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000e0018cfcb20045003a0000000c0000000a00000024000000
+240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000ca01000022030000aa0200009503000004000000101ee0373029e03730299033101e9033250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000000c02000042030000680200004d0300000100000000
+400d4200040dc20b020000c8fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004c006f0063006100740069006f006e005200650066006500720065006e0063006500000006000000060000000600000006000000030000000300000006000000060000000700000006000000030000000600000004000000060000000600000006000000060000000a00000010000000ffffffff0a000000
+0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e001b6fc9202b6fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000
+00010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000ca0100003d030000aa02
+00006b03000002000000101e403530294035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+5400000058000000e601000058030000ef010000640300000100000000400d4200040dc2e5010000b2fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b0000005400000008010000f7010000580300008f020000640300000100000000400d4200040dc2f6010000b2fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006c006f0063006100740069006f006e005200650066006500720065006e00630065005400790070006500200020003a0049006e00740065006700650072000000030000000600000005000000060000000300000003
+000000060000000600000007000000060000000300000006000000030000000600000006000000050000000600000007000000050000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b0000005400000058000000e601000065030000ef010000710300000100000000400d4200040dc2e5010000a5fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b00000054000000b8000000f70100006503000042020000710300000100000000400d4200040dc2f6010000a5fcffff120000004c000000000000000000000000000000ffffffffffffffff700000006400610074006100200020003a00620079007400650020005b0030002e002e002a005d0006000000060000000300000006000000030000000300000003000000
+06000000050000000300000006000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000025018afc950045002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000
+0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000260100003b030000bb01000080030000050000006012b03360120038b01b0038b01bb0336012b033250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000025018afc950045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038
+00000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000000f01000024030000d2010000970300000400000060120038b01b0038b01bb0336012b033250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000914300c05cc40000154300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000022018dfc95004500250000000c00000008000080270000
+00180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000002301000038030000710100007d030000050000002301380323017d0371017d037101380323013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c000000050000002500
+00000c0000000800008056000000300000007101000038030000750100007d030000050000007101380371017d0375017d037501380371013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000007501000038030000790100007d03000005
+0000007501380375017d0379017d037901380375013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000079010000380300007d0100007d030000050000007901380379017d037d017d037d01380379013803250000000c00000008000080
+250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c0000000800008056000000300000007d01000038030000820100007d030000050000007d0138037d017d0382017d03820138037d013803250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000
+0000000000f7ead90000000000250000000c00000005000000250000000c0000000800008056000000300000008201000038030000850100007d030000050000008201380382017d0385017d038501380382013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c0000000800
+008056000000300000008501000038030000890100007d030000050000008501380385017d0389017d038901380385013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000089010000380300008d0100007d030000050000008901380389
+017d038d017d038d01380389013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c0000000800008056000000300000008d01000038030000920100007d030000050000008d0138038d017d0392017d03920138038d013803250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c0000000800008056000000300000009201000038030000960100007d030000050000009201380392017d0396017d039601380392013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf
+0000000000250000000c00000005000000250000000c0000000800008056000000300000009601000038030000990100007d030000050000009601380396017d0399017d039901380396013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c00000008000080560000003000
+000099010000380300009c0100007d030000050000009901380399017d039c017d039c01380399013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000009c010000380300009f0100007d030000050000009c0138039c017d039f017d039f
+0138039c013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800008056000000300000009f01000038030000a30100007d030000050000009f0138039f017d03a3017d03a30138039f013803250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000a301000038030000a70100007d03000005000000a3013803a3017d03a7017d03a7013803a3013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000
+000c00000005000000250000000c000000080000805600000030000000a701000038030000ac0100007d03000005000000a7013803a7017d03ac017d03ac013803a7013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000ac0100003803
+0000b00100007d03000005000000ac013803ac017d03b0017d03b0013803ac013803250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000b001000038030000b40100007d03000005000000b0013803b0017d03b4017d03b4013803b001380325
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000b401000038030000b80100007d03000005000000b4013803b4017d03b8017d03b8013803b4013803250000000c00000008000080250000000c00000000000080280000000c00000005000000
+250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000022018dfc950045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000
+003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000000c01000021030000cf01000094030000040000003012d037801bd037801b803330128033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d80000003001000041030000ac0100004c0300000100000000400d4200040dc22f010000c9fcffff170000004c000000000000000000000000000000ffffffffffffffff
+7c00000063006f006d006d006f006e003a003a004c006f00630061006c0069007a006500640053007400720069006e006700000006000000060000000900000009000000060000000600000003000000030000000600000006000000060000000600000003000000030000000500000006000000060000000700000003000000040000000300000006000000060000000a00000010000000ffffffff0a0000000c000000100000
+000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002201b7fcb701b7fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00
+00001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000000c0100003c030000cf0100006a03000002
+00000030123035801b3035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000
+00280100005703000031010000630300000100000000400d4200040dc227010000b3fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+000000cc0000003901000057030000a4010000630300000100000000400d4200040dc238010000b3fcffff150000004c000000000000000000000000000000ffffffffffffffff780000006c0061006e006700750061006700650043006f0064006500200020003a0053007400720069006e0067000000030000000600000006000000060000000600000006000000060000000600000007000000060000000600000006000000
+0300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000280100006403000031010000700300000100000000400d4200040dc227010000a6fcffff0200
+00004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000003901000064030000b4010000700300000100000000400d4200040dc238010000
+a6fcffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000063006f0075006e0074007200790043006f0064006500200020003a0053007400720069006e00670020005b0030002e002e0031005d000000050000000600000006000000060000000300000003000000050000000700000006000000060000000600000003000000030000000300000007000000030000000300000003000000060000
+0006000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002801000071030000310100007d0300000100000000400d4200040dc22701000099fcffff020000004c
+000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000003901000071030000770100007d0300000100000000400d4200040dc23801000099fcff
+ff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000073007400720069006e006700200020003a0053007400720069006e00670000000400000003000000030000000300000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c0000002000
+0000454d462b0a4000c01c00000010000000c0bfc0ff01000000d50193ff59003b002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000d60100003c0000002f0200007700000005
+000000601dc003601d7007f0227007f022c003601dc003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000
+01000000d50193ff59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000bf01000025000000460200008e000000040000
+00601d7007f0227007f022c003601dc003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000e9430000d4c20000b24200006c42bed7e8ffe3f2
+fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d20196ff59003b00250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000d301000039000000010200007400000005000000d3013900d30174000102740001
+023900d3013900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e20000000000250000000c00000005000000250000000c00000008000080560000003000000001020000390000000202000074000000050000000102390001027400020274000202390001023900250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00000008000080560000003000000002020000390000000302000074000000050000000202390002027400030274000302390002023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0e00000000000250000
+000c00000005000000250000000c00000008000080560000003000000003020000390000000402000074000000050000000302390003027400040274000402390003023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000040200003900
+00000502000074000000050000000402390004027400050274000502390004023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c0000000800008056000000300000000502000039000000060200007400000005000000050239000502740006027400060239000502390025
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000006020000390000000802000074000000050000000602390006027400080274000802390006023900250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000000008020000390000000902000074000000050000000802390008027400090274000902390008023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c000000050000
+00250000000c00000008000080560000003000000009020000390000000a020000740000000500000009023900090274000a0274000a02390009023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000000a020000390000000c0200007400
+0000050000000a0239000a0274000c0274000c0239000a023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c0000000800008056000000300000000c020000390000000d02000074000000050000000c0239000c0274000d0274000d0239000c023900250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000000d020000390000000e02000074000000050000000d0239000d0274000e0274000e0239000d023900250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000f6e9d70000000000250000000c00000005000000250000000c0000000800008056000000300000000e020000390000000f02000074000000050000000e0239000e0274000f0274000f0239000e023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c0000
+000800008056000000300000000f020000390000001002000074000000050000000f0239000f02740010027400100239000f023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000010020000390000001102000074000000050000001002
+390010027400110274001102390010023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c00000008000080560000003000000011020000390000001202000074000000050000001102390011027400120274001202390011023900250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c00000008000080560000003000000012020000390000001302000074000000050000001202390012027400130274001302390012023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f3e6d30000000000250000000c00000005000000250000000c00000008000080560000003000000013020000390000001402000074000000050000001302390013027400140274001402390013023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c00000008000080560000
+003000000014020000390000001502000074000000050000001402390014027400150274001502390014023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000150200003900000016020000740000000500000015023900150274001602
+74001602390015023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c00000008000080560000003000000016020000390000001702000074000000050000001602390016027400170274001702390016023900250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c00000008000080560000003000000017020000390000001802000074000000050000001702390017027400180274001802390017023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000
+250000000c00000005000000250000000c00000008000080560000003000000018020000390000001902000074000000050000001802390018027400190274001902390018023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000190200
+00390000001a020000740000000500000019023900190274001a0274001a02390019023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c0000000800008056000000300000001a020000390000001b02000074000000050000001a0239001a0274001b0274001b0239001a02
+3900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000001b020000390000001c02000074000000050000001b0239001b0274001c0274001c0239001b023900250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c0000000800008056000000300000001c020000390000001d02000074000000050000001c0239001c0274001d0274001d0239001c023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c000000
+05000000250000000c0000000800008056000000300000001d020000390000001f02000074000000050000001d0239001d0274001f0274001f0239001d023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c0000000800008056000000300000001f02000039000000200200
+0074000000050000001f0239001f02740020027400200239001f023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c00000008000080560000003000000020020000390000002102000074000000050000002002390020027400210274002102390020023900250000000c00
+000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c00000008000080560000003000000021020000390000002202000074000000050000002102390021027400220274002202390021023900250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000022020000390000002302000074000000050000002202390022027400230274002302390022023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c0000000500000025000000
+0c00000008000080560000003000000023020000390000002502000074000000050000002302390023027400250274002502390023023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000025020000390000002602000074000000050000
+002502390025027400260274002602390025023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c00000008000080560000003000000026020000390000002802000074000000050000002602390026027400280274002802390026023900250000000c000000080000802500
+00000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c00000008000080560000003000000028020000390000002902000074000000050000002802390028027400290274002902390028023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000
+000000ead9c10000000000250000000c00000005000000250000000c00000008000080560000003000000029020000390000002a020000740000000500000029023900290274002a0274002a02390029023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c00000008000080
+56000000300000002a020000390000002b02000074000000050000002a0239002a0274002b0274002b0239002a023900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c0000000800008056000000300000002b020000390000002c02000074000000050000002b0239002b0274
+002c0274002c0239002b023900250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d20196ff59003b003a0000000c0000000a00
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000bc01000022000000430200008b00000004000000301d4007c0224007c0229003301d9003250000000c
+00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000dc010000cfffffff22020000c2ffff
+ff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000e50100003b0000001a020000470000000100000000400d4200040dc2e4010000cfffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007000720069006d0069007400690076006500bb0000000600000006000000030000000300
+0000090000000300000003000000030000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c000000
+dc0100004b00000023020000560000000100000000400d4200040dc2db010000bfffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000540069006d00650049006e004d0069006e00750074006500730000fe050000000300000009000000060000000300000006000000090000000300000006000000060000000300000006000000060000000a00000010000000ffffffff0a0000000c0000
+00100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000db01b3ff2202b3ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000000100
+00000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000c5010000400000003a0200006e
+00000002000000c01d700530227005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000
+009c000000df0100007a00000020020000860000000100000000400d4200040dc2de01000090ffffff0d0000004c000000000000000000000000000000ffffffffffffffff680000002800660072006f006d00200063006f006d006d006f006e002900001d030000000300000003000000060000000700000003000000050000000600000007000000070000000600000006000000030000000a00000010000000ffffffff0a00
+00000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000850131fe770045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008
+00008056000000300000008601000094010000fd010000d901000005000000601840196018901dd01f901dd01f401960184019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000
+000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000850131fe770045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c000000050000
+80560000002c0000006f0100007d01000014020000f0010000040000006018901dd01f901dd01f401960184019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400
+0000000000000000c1430000e6c30000ee4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000820134fe77004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000008301000091
+010000c0010000d601000005000000830191018301d601c001d601c001910183019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fcf1e20000000000250000000c00000005000000250000000c000000080000805600000030000000c001000091010000c1010000d601000005000000c0019101c001d601c101d601c1019101c0019101
+250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000c101000091010000c3010000d601000005000000c1019101c101d601c301d601c3019101c1019101250000000c00000008000080250000000c00000000000080280000000c000000050000
+0027000000180000000500000000000000fbf0e00000000000250000000c00000005000000250000000c000000080000805600000030000000c301000091010000c4010000d601000005000000c3019101c301d601c401d601c4019101c3019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c0000000500
+0000250000000c000000080000805600000030000000c401000091010000c5010000d601000005000000c4019101c401d601c501d601c5019101c4019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faefdf0000000000250000000c00000005000000250000000c000000080000805600000030000000c501000091010000c6010000d6
+01000005000000c5019101c501d601c601d601c6019101c5019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c000000080000805600000030000000c601000091010000c7010000d601000005000000c6019101c601d601c701d601c7019101c6019101250000000c000000
+08000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000c701000091010000c8010000d601000005000000c7019101c701d601c801d601c8019101c7019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000
+000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000c801000091010000c9010000d601000005000000c8019101c801d601c901d601c9019101c8019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eddc0000000000250000000c00000005000000250000000c00
+0000080000805600000030000000c901000091010000ca010000d601000005000000c9019101c901d601ca01d601ca019101c9019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000ca01000091010000cb010000d601000005000000ca
+019101ca01d601cb01d601cb019101ca019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000cb01000091010000cd010000d601000005000000cb019101cb01d601cd01d601cd019101cb019101250000000c0000000800008025000000
+0c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000cd01000091010000cf010000d601000005000000cd019101cd01d601cf01d601cf019101cd019101250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000000000
+00f7ead90000000000250000000c00000005000000250000000c000000080000805600000030000000cf01000091010000d0010000d601000005000000cf019101cf01d601d001d601d0019101cf019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600
+000030000000d001000091010000d2010000d601000005000000d0019101d001d601d201d601d2019101d0019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000d201000091010000d3010000d601000005000000d2019101d201d601d3
+01d601d3019101d2019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000d301000091010000d4010000d601000005000000d3019101d301d601d401d601d4019101d3019101250000000c00000008000080250000000c00000000000080
+280000000c0000000500000027000000180000000500000000000000f5e8d60000000000250000000c00000005000000250000000c000000080000805600000030000000d401000091010000d5010000d601000005000000d4019101d401d601d501d601d5019101d4019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d500000000
+00250000000c00000005000000250000000c000000080000805600000030000000d501000091010000d6010000d601000005000000d5019101d501d601d601d601d6019101d5019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000d601
+000091010000d7010000d601000005000000d6019101d601d601d701d601d7019101d6019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000d701000091010000d8010000d601000005000000d7019101d701d601d801d601d8019101d7
+019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000d801000091010000d9010000d601000005000000d8019101d801d601d901d601d9019101d8019101250000000c00000008000080250000000c00000000000080280000000c000000
+0500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030000000d901000091010000da010000d601000005000000d9019101d901d601da01d601da019101d9019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c0000
+0005000000250000000c000000080000805600000030000000da01000091010000dc010000d601000005000000da019101da01d601dc01d601dc019101da019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000dc01000091010000de01
+0000d601000005000000dc019101dc01d601de01d601de019101dc019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000de01000091010000df010000d601000005000000de019101de01d601df01d601df019101de019101250000000c
+00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c000000080000805600000030000000df01000091010000e0010000d601000005000000df019101df01d601e001d601e0019101df019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000
+180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000e001000091010000e1010000d601000005000000e0019101e001d601e101d601e1019101e0019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000
+000c000000080000805600000030000000e101000091010000e2010000d601000005000000e1019101e101d601e201d601e2019101e1019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000e201000091010000e3010000d60100000500
+0000e2019101e201d601e301d601e3019101e2019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000e301000091010000e5010000d601000005000000e3019101e301d601e501d601e5019101e3019101250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000e501000091010000e6010000d601000005000000e5019101e501d601e601d601e6019101e5019101250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000e601000091010000e8010000d601000005000000e6019101e601d601e801d601e8019101e6019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000
+805600000030000000e801000091010000e9010000d601000005000000e8019101e801d601e901d601e9019101e8019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000e901000091010000ea010000d601000005000000e9019101e901
+d601ea01d601ea019101e9019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c000000080000805600000030000000ea01000091010000eb010000d601000005000000ea019101ea01d601eb01d601eb019101ea019101250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000eb01000091010000ed010000d601000005000000eb019101eb01d601ed01d601ed019101eb019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc600
+00000000250000000c00000005000000250000000c000000080000805600000030000000ed01000091010000ee010000d601000005000000ed019101ed01d601ee01d601ee019101ed019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c0000000800008056000000300000
+00ee01000091010000f0010000d601000005000000ee019101ee01d601f001d601f0019101ee019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000f001000091010000f1010000d601000005000000f0019101f001d601f101d601f101
+9101f0019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000f101000091010000f2010000d601000005000000f1019101f101d601f201d601f2019101f1019101250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000f201000091010000f4010000d601000005000000f2019101f201d601f401d601f4019101f2019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c2000000000025000000
+0c00000005000000250000000c000000080000805600000030000000f401000091010000f5010000d601000005000000f4019101f401d601f501d601f5019101f4019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000f5010000910100
+00f7010000d601000005000000f5019101f501d601f701d601f7019101f5019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000805600000030000000f701000091010000f8010000d601000005000000f7019101f701d601f801d601f8019101f70191012500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c000000080000805600000030000000f801000091010000f9010000d601000005000000f8019101f801d601f901d601f9019101f8019101250000000c00000008000080250000000c00000000000080280000000c0000000500000027
+000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000f901000091010000fa010000d601000005000000f9019101f901d601fa01d601fa019101f9019101250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b0840000238000000
+2c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000820134fe770045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000
+000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000006c0100007a01000011020000ed010000040000003018601da01f601da01f101930181019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c00
+0000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008c01000073fefffff001000066feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000a501000097010000d8010000a30100000100000000400d42
+00040dc2a401000073feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000c06000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffff
+ff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c00000008a010000a4010000f4010000af0100000100000000400d4200040dc28901000066feffff130000004c000000000000000000000000000000ffffffffffffffff74000000540065006d0070006f0072006100720079
+00530070006500650064004c0069006d00690074000210050000000600000009000000060000000600000004000000060000000400000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db00000000
+86000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000820154fef90154fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000006c0100009f01000011020000cd010000020000003018601ba01f601b250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000088010000ba01000091010000c60100000100000000400d4200040dc28701000050feffff020000004c000000
+000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000099010000ba010000f7010000c60100000100000000400d4200040dc29801000050feffff1200
+00004c000000000000000000000000000000ffffffffffffffff7000000075006e006900740073004d0050004800200020003a0042006f006f006c00650061006e000600000006000000030000000300000004000000090000000700000007000000030000000300000003000000070000000600000006000000030000000600000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000088010000c701000091010000d30100000100000000400d4200040dc28701000043feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000099010000c7010000f7010000d30100000100000000400d4200040dc29801000043feffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006f0066006600730065007400200020003a0049006e0074006500670065
+00720020005b0030002e002e0031005d00001006000000030000000300000004000000060000000300000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c000000
+10000000c0bfc0ff0100000088017efdc10054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000089010000380200004a0200008c02000005000000901880239018c028a024c0
+28a024802390188023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000088017efdc10054003a00
+00000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000720100002102000061020000a3020000040000009018c028a024c028a024802390
+188023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080c24300c01fc4000041430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000
+000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000850181fdc1005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000008601000035020000eb01000089020000050000008601350286018902eb018902eb01350286013502250000000c0000
+0008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000eb01000035020000ef0100008902000005000000eb013502eb018902ef018902ef013502eb013502250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800
+00000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000ef01000035020000f50100008902000005000000ef013502ef018902f5018902f5013502ef013502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c
+000000080000805600000030000000f501000035020000fb0100008902000005000000f5013502f5018902fb018902fb013502f5013502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000fb01000035020000000200008902000005000000
+fb013502fb0189020002890200023502fb013502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c00000008000080560000003000000000020000350200000502000089020000050000000002350200028902050289020502350200023502250000000c00000008000080250000
+000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c00000008000080560000003000000005020000350200000a020000890200000500000005023502050289020a0289020a02350205023502250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000000000
+0000f5e8d50000000000250000000c00000005000000250000000c0000000800008056000000300000000a020000350200001002000089020000050000000a0235020a02890210028902100235020a023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c0000000800008056
+0000003000000010020000350200001502000089020000050000001002350210028902150289021502350210023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c00000008000080560000003000000015020000350200001802000089020000050000001502350215028902
+180289021802350215023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c00000008000080560000003000000018020000350200001c020000890200000500000018023502180289021c0289021c02350218023502250000000c00000008000080250000000c000000000000
+80280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c0000000800008056000000300000001c020000350200002002000089020000050000001c0235021c02890220028902200235021c023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd000000
+0000250000000c00000005000000250000000c00000008000080560000003000000020020000350200002502000089020000050000002002350220028902250289022502350220023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c00000008000080560000003000000025
+020000350200002902000089020000050000002502350225028902290289022902350225023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c00000008000080560000003000000029020000350200002e020000890200000500000029023502290289022e0289022e023502
+29023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c0000000800008056000000300000002e020000350200003402000089020000050000002e0235022e02890234028902340235022e023502250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c00000008000080560000003000000034020000350200003a020000890200000500000034023502340289023a0289023a02350234023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00
+000005000000250000000c0000000800008056000000300000003a020000350200003f02000089020000050000003a0235023a0289023f0289023f0235023a023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c0000000800008056000000300000003f0200003502000044
+02000089020000050000003f0235023f02890244028902440235023f023502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c0000000800008056000000300000004402000035020000470200008902000005000000440235024402890247028902470235024402350225000000
+0c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000850181fdc10054003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000006f0100001e0200005e020000a00200000400000060189028702490287024502360185023250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008f010000cffdffff3d020000c2fdffff160000000c0000000100000012000000
+0c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000cd0100003b02000000020000470200000100000000400d4200040dc2cc010000cffdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000806000000040000000300000003000000060000000500000003000000060000
+000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e80000009f010000480200002e0200005302000001
+00000000400d4200040dc29e010000c2fdffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000540065006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e0005000000060000000900000006000000060000000400000006000000040000000500000007000000060000000600000006000000060000000600000003000000
+090000000300000003000000070000000600000006000000030000000300000006000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000
+008501b0fd4602b0fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000000000
+0000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000006f010000430200005e02000071020000020000006018a0257024a025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ff
+ffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008b0100005e020000940100006a0200000100000000400d4200040dc28a010000acfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e40000009c0100005e020000160200006a0200000100000000400d4200040dc29b010000acfdffff190000004c000000000000000000000000000000ffffffffffffffff80000000730070006500650064004c0069006d0069007400560061006c00750065
+00200020003a0049006e0074006500670065007200000c040000000600000006000000060000000600000006000000030000000900000003000000030000000700000006000000030000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008b0100006b02000094010000770200000100000000400d4200040dc28a0100009ffdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000200100009c0100006b02000043020000770200000100000000400d4200040dc29b0100009ffdffff230000004c000000000000000000000000000000ffffffffffffffff94000000730070006500650064004c0069006d0069007400560061006c0075006500570065007400200020003a004900
+6e007400650067006500720020005b0030002e002e0031005d00000c04000000060000000600000006000000060000000600000003000000090000000300000003000000070000000600000003000000060000000600000009000000060000000300000003000000030000000300000003000000060000000300000006000000060000000600000003000000030000000300000006000000030000000300000006000000030000
+000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008b0100007802000094010000840200000100000000400d4200040dc28a01000092fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006
+000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000140100009c0100007802000036020000840200000100000000400d4200040dc29b01000092fdffff210000004c000000000000000000000000000000ffffffffffffffff900000
+00730070006500650064004c0069006d00690074004c0065006e00670074006800200020003a0049006e007400650067006500720020005b0030002e002e0031005d00000c0400000006000000060000000600000006000000060000000300000009000000030000000300000006000000060000000600000006000000030000000600000003000000030000000300000003000000060000000300000006000000060000000600
+000003000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007b
+00ddfc750023fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000
+250000000c00000005000000250000000c00000005000080570000002400000074000000e50200007e0000002f03000002000000c007d0326007702e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000
+007b0019fd750023fd710019fd77000ffd280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000072000000e70200007c000000fb02000004000000c007102f6007702e2007102f8007
+b02f250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000007b
+0019fd750023fd710019fd77000ffd24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000070000000e50200007e000000fd02000004000000c007102f6007702e
+2007102f8007b02f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff000000000000000000000000000000000000000100000500410052004900
+41004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db0700a800b89d00003d0821fc1900b00175322f7601003d080800b200b89d00008ce3c577b3
+89172670374b0b9401300b08000000e4b0ba26000000001098bf2348004b0b5c014b0b988f1a24f0374b0b8ce3c5774051e102b79d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a0aeba265c014b0b3d0821fcee3c0ad558b1ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000
+180000000c0000000000000054000000640000007f0000001c03000091000000280300000100000000400d4200040dc27e000000eefcffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e003100060000000300000003000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00
+000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f8182d02020001003d08ac90a601c83d21db8c
+e3c5772f8a172646e0c5779401300b0000300b6c51e10266302f760700a800b99d0000180000003d0821fc043500008051e1020800b200b99d0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b988f1a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000fcafba26000000000800000000000000
+3c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c0000000000000054000000ac00000054000000070300009e000000130300000100000000400d4200040dc25300000003fdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000006c0061006e00650052006500730074
+00720069006300740069006f006e007300030000000600000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e0000000000
+00000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a60179fe3c0115ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+0000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000003b010000f3000000a90100009301000002000000701a1019d013500f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041
+000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000460110ff3c0115ff3d010aff470104ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000003d010000f5000000480100
+0006010000040000007014a00fd013500fe013001080146010250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db0000
+0000000000ff0d400060200000001400000004000000460110ff3c0115ff3d010aff470104ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000003b010000f3
+0000004a01000008010000040000007014a00fd013500fe013001080146010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000
+000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db0f009601ca9d00003d0821fc1900
+b00175322f7601003d0810009801ca9d00008ce3c577b389172670374b0b9401300b08000000ecbbba26000000001098bf2348004b0b5c014b0bc8961a24f0374b0b8ce3c5774051e102c99d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a8b9ba265c014b0b3d0821fcee3c0ad560bcba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700
+0000006476000800000000250000000c00000005000000180000000c000000000000005400000064000000aa01000080010000ba0100008c0100000100000000400d4200040dc2a90100008afeffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000
+280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90
+a601d502f8183d02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f760f009601cb9d0000180000003d0821fc344600008051e10210009801cb9d0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0bc8961a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746
+e0c5770000000004bbba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c0000000000000054000000c40000006b01000070010000d50100007c0100000100000000400d4200040dc26a0100009afeffff140000004c000000000000000000000000000000ffffffff
+ffffffff74000000740065006d0070006f007200610072007900530070006500650064004c0069006d0069007400730003000000060000000900000006000000060000000300000006000000030000000500000007000000060000000600000006000000060000000600000003000000090000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c0000
+0005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003c01d2fccd0024fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00
+000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000cc000000e40200003f0100003a03000002000000d0138033e00c602e25
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000d80022fdcd0024fdd2001afddd0018fd24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c000000
+01000000130000000c00000001000000250000000c00000008000080560000002c000000ce000000e6020000de000000f202000004000000900d802ee00c602e300d002fe00d202f250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c0000
+00300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000d80022fdcd0024fdd2001afddd0018fd24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000001001001000000000000000000000000000
+00000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000cc000000e4020000e0000000f402000004000000900d802ee00c602e300d002fe00d202f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000
+120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e0073376800133
+76601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db17001401dc9d00003d0821fc1900b00175322f7601003d0818009401dc9d00008ce3c577b389172670374b0b9401300b08000000f4c6ba26000000001098bf2348004b0b5c014b0ba8961a24f0374b0b8ce3c5774051e102db9d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b0c4ba265c014b0b3d08
+21fcee3c0ad568c7ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c000000000000005400000064000000400100002703000050010000330300000100000000400d4200040dc23f010000e3fcffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a0006
+0000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f8184d02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7617001401dd9d0000180000003d0821fc645700008051e10218009401dd9d0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c01
+4b0ba8961a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000000cc6ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c00000000000000540000007c000000f3000000010300001a0100000d
+0300000100000000400d4200040dc2f200000009fdffff080000004c000000000000000000000000000000ffffffffffffffff5c0000006600720065006500540065007800740003000000030000000600000006000000070000000600000005000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b08400002
+3c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006c01d2fc6c01a7fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000006b010000610100006f0100003a03000002000000d0168033d0163016250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000b0000000a4000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c000000004000006c01a7fe7701b4fe7801b3fe7901b3fe7b01b3fe7e
+01b3fe8001b5fe8001b8fe8001bafe7f01bbfe7e01bcfee10120ff0001030303030303030303011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000
+050000803b000000080000001b00000010000000d0160000301600003600000010000000801700006015000058000000400000000000000000000000ffffffffffffffff0900000090177015a0177015c0177015f01770151018501510182015101800150018f014f017e0143600000010000000201e0000a00e00003c0000000800000040000000180000006b010000e8000000e401000065010000250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000de0115ffe10120ffd6011cffd30112ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00
+000001000000250000000c00000008000080560000002c000000d4010000ea000000e2010000f800000004000000f01d500f201ea00e701de00e401d800f250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db00
+0000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000de0115ffe10120ffd6011cffd30112ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000
+250000000c00000005000000250000000c00000005000080560000002c000000d2010000e8000000e4010000fa00000004000000f01d500f201ea00e701de00e401d800f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c0000000200
+0000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f
+8a172646e0c5779401300b0000300bc70f3276c83d21db1f00a401ee9d00003d0821fc1900b00175322f7601003d082000a201ee9d00008ce3c577b389172670374b0b9401300b08000000c484ba26000000001098bf2348004b0b5c014b0b18971a24f0374b0b8ce3c5774051e102ed9d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008082ba265c014b0b3d0821fcee3c0ad53885ba26
+d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c000000000000005400000064000000700100002703000080010000330300000100000000400d4200040dc26f010000e3fcffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a000600000003000000030000
+00040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f8185d02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f761f00a401ef9d0000180000003d0821fce86800008051e1022000a201ef9d0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b18971a24f0374b0b
+527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000dc83ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c00000000000000540000007c0000009501000019010000bc010000250100000100000000400d
+4200040dc294010000f1feffff080000004c000000000000000000000000000000ffffffffffffffff5c0000006600720065006500540065007800740003000000030000000600000006000000070000000600000005000000030000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210
+c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005402d1fc880214fd00010303154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000053020000f40200008b0200003b03000002000000502590339028602f250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000860209fd880214fd7e020ffd7c0204fd24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000
+007d020000f6020000890200000603000004000000702810309028602ff027b02fd0276030250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100
+0000000000000210c0db00000000000000ff0d400060200000001400000004000000860209fd880214fd7e020ffd7c0204fd24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008056
+0000002c0000007b020000f40200008b0200000803000004000000702810309028602ff027b02fd0276030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff005200000070010000050000
+00f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db2700
+f200009e00003d0821fc1900b00175322f7601003d0828001601009e00008ce3c577b389172670374b0b9401300b08000000a458ba26000000001098bf2348004b0b5c014b0bb8921a24f0374b0b8ce3c5774051e102ff9d00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000bc57ba265c014b0b3d0821fcee3c0ad51859ba26d451e102b052e102cc53e102f571ca7793093353feffffff8c
+e3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c0000000000000054000000f40000002c0200000a030000b2020000160300000100000000400d4200040dc22b02000000fdffff1c0000004c000000000000000000000000000000ffffffffffffffff840000007200650073007400720069006300740069006f006e004c006f0063006100740069006f006e00520065006600
+6500720065006e0063006500030000000600000004000000030000000300000003000000050000000300000003000000060000000600000006000000060000000500000006000000030000000300000006000000060000000700000006000000030000000600000003000000060000000600000005000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c000000050000
+0046000000b0000000a4000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c000000004000001702d1fc6f0180fd700181fd710182fd710183fd710186fd6f0189fd6c0189fd6a0189fd690188fd680187fd61018efd000103030303030303030301154001001000
+000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c
+000000050000803b000000080000001b000000100000008021000090330000360000001000000000170000a028000058000000400000000000000000000000ffffffffffffffff090000001017902820178028201770282017402800171028d0161028b0161028a016202890163028360000001000000020160000c02700003c000000080000004000000018000000600100007a0200001a0200003b030000250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000061018e
+fd0a0115ff000103031540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000009010000f3000000640100007e0200000200
+00002016c027b010500f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff0400000011010cff0a0115ff07010aff0e0101ff24000000240000000000803d00000000000000000000803d000000000000000002
+000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000008010000f50000001201000009010000040000002011e00fb010500f80100010f0109010250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000
+454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d40006020000000140000000400000011010cff0a0115ff07010aff0e0101ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000
+000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000006010000f3000000140100000b010000040000002011e00fb010500f80100010f0109010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c00
+0000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e0073376
+00000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db2f008a01119e00003d0821fc1900b00175322f7601003d0830008c01119e00008ce3c577b389172670374b0b9401300b08000000bc79ba26000000001098bf2348004b0b5c014b0b68961a24f0374b0b8ce3c5774051e102109e00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000
+00d478ba265c014b0b3d0821fcee3c0ad5307aba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c0000000000000054000000b40000000c010000ab01000062010000b70100000100000000400d4200040dc20b0100005ffeffff110000004c000000000000000000000000000000ffffffffffffffff7000
+00006c006f0063006100740069006f006e005200650066006500720065006e0063006500000003000000060000000500000006000000030000000300000006000000060000000700000006000000030000000600000003000000060000000600000005000000060000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b08
+4000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000dc01d5fdc60133fe00010303154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000c5010000d5010000df0100003702000002000000d01d5023701c701d250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000cd012afec60133fec30128fecb0120fe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00
+000008000080560000002c000000c4010000d7010000ce010000ea01000004000000e01c001e701c701d401c201ec01ca01e250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e0000000000000000
+00803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000cd012afec60133fec30128fecb0120fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000
+250000000c00000005000080560000002c000000c2010000d5010000d0010000ec01000004000000e01c001e701c701d401c201ec01ca01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffff
+ff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b00
+00300bc70f3276c83d21db37003401229e00003d0821fc1900b00175322f7601003d083800ee00229e00008ce3c577b389172670374b0b9401300b08000000fcd1ba26000000001098bf2348004b0b5c014b0b78911a24f0374b0b8ce3c5774051e102219e00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b8cfba265c014b0b3d0821fcee3c0ad570d2ba26d451e102b052e102cc53e102
+f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c000000000000005400000064000000e001000024020000f0010000300200000100000000400d4200040dc2df010000e6fdffff040000004c000000000000000000000000000000ffffffffffffffff5400000031002e002e002a00060000000300000003000000040000000a000000100000
+00ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000e102000000000000300bb04dec26f8200c03ac90a601d502f8188902020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7637003401239e0000180000003d0821fc389900008051e1023800ee00239e0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b78911a24f0374b0b527f17014051e10200000000
+3853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000014d1ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c0000000000000054000000f000000089010000010200001b0200000d0200000100000000400d4200040dc28801000009feff
+ff1b0000004c000000000000000000000000000000ffffffffffffffff84000000540065006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e007300ffff070000000600000009000000060000000600000003000000060000000300000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000700
+0000060000000500000003000000030000000600000006000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02
+00000000400000c1000bfe870050fe00010303154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000010010010000000000000000000000000000000
+0000000000000000250000000c00000005000000250000000c00000005000080570000002400000086000000b8010000c40000000102000002000000200cf01f8008a01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c020000000140000
+00e3f2fcff03000000960048fe8d0040fe870050fe280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002800000088000000ba01000097000000ca010000030000007009201ce008a01c8008
+a01b250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c000000100000000300000096
+0048fe8d0040fe870050fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002800000086000000b801000099000000cc010000030000007009201ce008a01c8008a01b
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000dc000000d0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db1600000000400000d201ab
+ffcb01aaffc701aaffc001a8ffbc01a8ffb501a6ffb101a6ffaa01a5ffa601a4ff9f01a3ff9b01a2ff9401a1ff9001a0ff89019fff85019eff7e019dff7a019cff73019bff6f019aff680199ff640198ff5f0197ff0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800
+0000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000a40000005e0100005d000000d5010000750000000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000301df005c01c0006801c0006101c2006d0
+1b2006601b4006201b4006b01a5006701a6006001a7006c0198006501990061019a006a018b0066018c006f017d006b017e0064017f00600170007901610075016200700163007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000
+300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000d201abffc401a4ffd201abffc201adff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000
+00380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000c10100005b000000d50100006800000002000000040000000200000002000000301df005501c6006301df005301cd005250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006d00acfd6b0050fe000100011540010010000000040000000000000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000006a000000b8010000700000006002000002000000e006e025c006a01b250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000710040fe650040fe6b0050fe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000
+0066000000ba01000072000000ca010000030000002007a01c6006a01cc006a01b250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff0d4000601c0000001000000003000000710040fe650040fe6b0050fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002800000064
+000000b801000074000000cc010000030000002007a01c6006a01cc006a01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100000000000000
+0210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007c0096febb0015ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c000000050000
+00250000000c0000000500008057000000240000007b000000f3000000be0000007601000002000000d0074017c00b500f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000bb000affbb0015ffb200
+0effb20003ff280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000b3000000f5000000bc0000000701000004000000c00b0010c00b500f300bc00f300b7010250000000c00000007
+000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000bb000affbb0015ffb2000eff
+b20003ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000b1000000f3000000be0000000901000004000000c00b0010c00b500f300bc00f300b7010250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db57004401649e00003d0821fc1900b00175322f7601003d085800f600649e00008ce3c577b389172670374b0b9401300b
+080000000ce8ba26000000001098bf2348004b0b5c014b0bb8911a24f0374b0b8ce3c5774051e102639e00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000c8e5ba265c014b0b3d0821fcee3c0ad580e8ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c000000000000
+0054000000640000008000000063010000900000006f0100000100000000400d4200040dc27f000000a7feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c
+000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f818bc02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c577
+9401300b0000300b6c51e10266302f7657004401659e0000180000003d0821fcb8d400008051e1025800f600659e0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0bb8911a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000024e7ba260000000008000000000000003c5ce10200000000000000
+0000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c0000000000000054000000700000008e00000027010000ad000000330100000100000000400d4200040dc28d000000e3feffff060000004c000000000000000000000000000000ffffffffffffffff580000006300610075007300650073000500000006000000060000000400
+000006000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ba0155ff5f016aff0001000115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000
+250000000c0000000500008057000000240000005e0100009e000000bd010000b700000002000000b01b500b0016000a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000006a016dff5f016aff680163
+ff720166ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000600100009d00000073010000a700000004000000b016d0090016000a9016700a3017400a250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000006a016dff5f016aff680163ff720166ff24000000240000000000803d00000000000000000000803d000000000000000002
+0000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000005e0100009b00000075010000a900000004000000b016d0090016000a9016700a3017400a250000000c00000007000080250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21db5f005a01769e00003d0821fc1900b00175322f7601003d086000e400769e00008ce3c577b389172670374b0b9401300b08000000ac63ba26000000001098bf2348004b0b5c014b0b28911a24f0374b0b8ce3c57740
+51e102759e00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006861ba265c014b0b3d0821fcee3c0ad52064ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c000000000000005400000064000000a8010000ba000000b8010000c60000000100000000400d4200040dc2
+a701000050ffffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff0000000000000000000000000000
+0000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f818cd02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f765f005a01779e0000180000003d0821fce8e5000080
+51e1026000e400779e0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b28911a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000c462ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e10264760008
+00000000250000000c00000005000000180000000c0000000000000054000000780000007d0100009d000000a0010000a90000000100000000400d4200040dc27c0100006dffffff070000004c000000000000000000000000000000ffffffffffffffff5c0000006100640076006900630065007300c00e060000000600000005000000030000000500000006000000040000000a00000010000000ffffffff0a0000000c0000
+00100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000620262fefa015bfe00010001154001001000000004000000000000002100000008000000620000000c00
+000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000f9010000a601000065
+020000b1010000020000003026801ab01ff01a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000040261fefa015bfe040257fe0e025cfe24000000240000000000803d00000000000000000000803d
+000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000fb010000a90100000f020000b3010000040000005020901ab01ff01a5020301bf020e01a250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000
+006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000040261fefa015bfe040257fe0e025cfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000
+000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000f9010000a701000011020000b5010000040000005020901ab01ff01a5020301bf020e01a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005
+000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000
+0000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21dbd7000a002ff368683d0821fc1900b00175322f7601003d08d8000c002ff368688ce3c577b389172670374b0b9401300b080000009c4dba2600000000f8c7612348004b0b5c014b0bc8fe5f23f0374b0b8ce3c5774051e1022ef368683853e102f571ca7793093353feffffff8ce3c577f2e0
+c57746e0c57700000000584bba265c014b0b3d0821fcee3c0ad5104eba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c00000000000000540000006400000050020000ad01000060020000b90100000100000000400d4200040dc24f0200005dfeffff040000004c000000000000000000000000000000ff
+ffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f818de02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f76d7000a0030f36868180000003d0821fc18f700008051e102d8000c0030f36868000000000000010070374b0b051d2f760800
+00000000000000000000f8c7612348004b0b5c014b0bc8fe5f23f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b44cba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c0000000000000054
+0000009c000000120200009e0100004c020000aa0100000100000000400d4200040dc2110200006cfeffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006100700070006c00690063006100620069006c006900740079000000060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000a00000010000000ffffffff
+0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000096028afe1f0220ff000100011540010010000000040000000000000021000000080000
+00620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000001e02
+0000e8000000990200008201000002000000702900180022a00e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff0400000029021bff1f0220ff210215ff2b0210ff24000000240000000000803d0000000000
+0000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000020020000ea0000002c020000fa00000004000000a022f00e0022a00e2022500fc022a00f250000000c00000007000080130000000c00000001000000250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d40006020000000140000000400000029021bff1f0220ff210215ff2b0210ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000
+00380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000001e020000e80000002e020000fc00000004000000a022f00e0022a00e2022500fc022a00f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000
+000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21dbdf001a0044f368683d0821fc1900b00175322f7601003d08e0001c0044f368688ce3c577b389172670374b0b9401300b08000000cc8fba2600000000f8c7612348004b0b5c014b0b48ff5f23f0374b0b8ce3c5774051e10243f368683853e102f571ca7793093353feffff
+ff8ce3c577f2e0c57746e0c57700000000888dba265c014b0b3d0821fcee3c0ad54090ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c0000000000000054000000640000009a0200006f010000aa0200007b0100000100000000400d4200040dc2990200009bfeffff040000004c000000000000000000
+000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f818ee02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f76df001a0045f36868180000003d0821fc480801008051e102e0001c0045f36868000000000000010070374b
+0b051d2f76080000000000000000000000f8c7612348004b0b5c014b0b48ff5f23f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000e48eba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c00
+000000000000540000009c0000003f0200002701000079020000330100000100000000400d4200040dc23e020000e3feffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006100700070006c00690063006100620069006c006900740079000000060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000a00000010
+000000ffffffff0a0000000c000000100000000000000000000000280000000c0000000500000046000000b0000000a4000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c000000004000007a028afec501fefec601fefec601fffec60100ffc60103ffc40106ff
+c10106ffbf0106ffbd0105ffbc0103ff5f013eff000103030303030303030301154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000
+000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000803b000000080000001b00000010000000b0270000001800003600000010000000601c0000c010000058000000400000000000000000000000ffffffffffffffff09000000701cc010701cb010701ca010701c7010501c4010201c4010001c4010e01b5010d01b7010360000001000000000160000c00c00003c00
+00000800000040000000180000005e010000ca0000007d02000082010000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000006a013dff5f013eff650134ff700133ff24000000240000000000803d00
+000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000060010000cc00000071010000d700000004000000b016d00c0016c00c6016600d1017700d250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000006a013dff5f013eff650134ff700133ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000
+0000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000005e010000ca00000073010000d900000004000000b016d00c0016c00c6016600d1017700d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000
+00000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21dbe7002a0058f368683d0821fc1900b00175322f7601003d08e8002c0058f368688ce3c577b389172670374b0b9401300b080000007c21ba2600000000f8c7612348004b0b5c014b0bc8ff5f23f0374b0b8ce3c5774051e10257f368683853e102f571ca77930933
+53feffffff8ce3c577f2e0c57746e0c57700000000381fba265c014b0b3d0821fcee3c0ad5f021ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c0000000000000054000000640000007e0200006f0100008e0200007b0100000100000000400d4200040dc27d0200009bfeffff040000004c0000000000
+00000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff0000000000000000000000000000000000000001000005004100520049004100
+4c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f818fe02020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f76e7002a0059f36868180000003d0821fca01901008051e102e8002c0059f3686800000000000001
+0070374b0b051d2f76080000000000000000000000f8c7612348004b0b5c014b0bc8ff5f23f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009420ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c000000050000001800
+00000c00000000000000540000009c000000ff01000033010000390200003f0100000100000000400d4200040dc2fe010000d7feffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006100700070006c00690063006100620069006c006900740079000052060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000a
+00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a5025afdb00244fe00010303154001001000000004000000
+000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000
+805700000024000000a4020000c4010000b3020000b202000002000000602a002b102b601c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000b5023afeb00244feab023afeaf0230fe240000002400
+00000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000ac020000c6010000b6020000da01000004000000602b001d102b601cc02a001d002ba01d250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000b5023afeb00244feab023afeaf0230fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000aa020000c4010000b8020000dc01000004000000602b001d102b601cc02a001d002ba01d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0041004c00000000000000000000000000000000000000e007337600000000e007337680013376601b971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276c83d21dbef003a006df368683d0821fc1900b00175322f7601003d08f0003c006df368688ce3c577b389172670374b0b9401300b080000007416ba2600000000f8c7612348004b0b5c014b0b48006023f0374b0b8ce3c5774051e1026cf368683853e102
+f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000003014ba265c014b0b3d0821fcee3c0ad5e816ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c000000000000005400000064000000a90200009f020000b9020000ab0200000100000000400d4200040dc2a80200006bfdffff040000
+004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000a000000120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041
+005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d502f8180e03020001003d08ac90a601c83d21db8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f76ef003a006ef36868180000003d0821fcd02a01008051e102f0003c006ef36868
+000000000000010070374b0b051d2f76080000000000000000000000f8c7612348004b0b5c014b0b48006023f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008c15ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c0000
+0005000000180000000c0000000000000054000000e80000006e0200002d020000ea020000390200000100000000400d4200040dc26d020000ddfdffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000760065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e00730005000000060000000600000003000000050000000300
+000006000000070000000600000003000000060000000300000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000040000000a00000010000000ffffffff0a0000000c000000100000000000000000000000280000000c00000005000000280000000c00000002000000280000000c000000030000002100000008000000620000000c00000001
+000000110000000c000000010000000a0000001000000000000000000000004c00000064000000000000000000000013030000a3030000000000000000000014030000a40300002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000
+000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 11\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_934179C7_79F5_4141_A083_3920736D08C4}{\*\bkmkend BKM_934179C7_79F5_4141_A083_3920736D08C4}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentFeedInterface}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw23342\pich22950\picwgoal13230\pichgoal13005\picscalex71\picscaley71\sspicalign0 010000006c000000f8ffffffffffffff9f0200008c02000000000000000000002d5b0000a659000020454d4600000100000a0100da0a0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff010076fd940276fd9402ffff0100ffff0001010101030303154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff960200008c02000005000000100010001000a0284029a0284029100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffae00ecffbb00faffbb00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000bb0000001400000006000000
+10004001e00a4001b00b6000b00b10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffae00ecffbb00faffbb00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffbd000000160000000600000010004001e00a4001b00b6000b00b10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7688901a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b12a3f002c859e1025a0012011d9f0000dc59e102188d17
+012c310a2f88901a245b0054011d9f000037bb40002c310a2f70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0ba8941a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a1261c9f00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000ab0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000a5000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000180100000600000004000000ac0000000f0000000100000000400d4200040dc206000000fcffffff220000004c000000000000000000000000000000ffffffffffffffff9000000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400460065006500640049006e0074006500720066006100630065000600000003000000060000000600000006000000
+03000000050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000600000006000000060000000300000006000000030000000600000004000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a00000010000000000000
+00000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000098c1000088c10a4000c01c00000010000000c0bfc0ff01000000250042ffe1019100280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000
+803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000f3010000ad000000050000002001c0012001d00a301fd00a301fc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000250042ffe10191003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+0200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000000a020000c4000000040000002001d00a301fd00a301fc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000084200003bc30080f04300001143bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000220045ffe10191002500
+00000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f0000001900000009010000aa000000050000000f0019000f00aa000901aa00090119000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e1000000000025
+0000000c00000002000000250000000c000000080000805600000030000000090100001900000015010000aa00000005000000090119000901aa001501aa001501190009011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080560000003000000015010000
+1900000022010000aa00000005000000150119001501aa002201aa002201190015011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c00000008000080560000003000000022010000190000002d010000aa00000005000000220119002201aa002d01aa002d011900220119
+00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000002d0100001900000038010000aa000000050000002d0119002d01aa003801aa00380119002d011900250000000c00000008000080250000000c00000000000080280000000c0000000200
+000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000380100001900000045010000aa00000005000000380119003801aa004501aa004501190038011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002
+000000250000000c000000080000805600000030000000450100001900000051010000aa00000005000000450119004501aa005101aa005101190045011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c00000008000080560000003000000051010000190000005e010000
+aa00000005000000510119005101aa005e01aa005e01190051011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c0000000800008056000000300000005e0100001900000069010000aa000000050000005e0119005e01aa006901aa00690119005e011900250000000c0000
+0008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c000000080000805600000030000000690100001900000075010000aa00000005000000690119006901aa007501aa007501190069011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800
+00000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000805600000030000000750100001900000081010000aa00000005000000750119007501aa008101aa008101190075011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c
+00000008000080560000003000000081010000190000008b010000aa00000005000000810119008101aa008b01aa008b01190081011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c0000000800008056000000300000008b0100001900000093010000aa00000005000000
+8b0119008b01aa009301aa00930119008b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c00000008000080560000003000000093010000190000009f010000aa00000005000000930119009301aa009f01aa009f01190093011900250000000c00000008000080250000
+000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000009f01000019000000ab010000aa000000050000009f0119009f01aa00ab01aa00ab0119009f011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000eedfc80000000000250000000c00000002000000250000000c000000080000805600000030000000ab01000019000000b8010000aa00000005000000ab011900ab01aa00b801aa00b8011900ab011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056
+00000030000000b801000019000000c7010000aa00000005000000b8011900b801aa00c701aa00c7011900b8011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c000000080000805600000030000000c701000019000000d5010000aa00000005000000c7011900c701aa00
+d501aa00d5011900c7011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c000000080000805600000030000000d501000019000000e2010000aa00000005000000d5011900d501aa00e201aa00e2011900d5011900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030000000e201000019000000ee010000aa00000005000000e2011900e201aa00ee01aa00ee011900e2011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be000000
+0000250000000c00000002000000250000000c000000080000805600000030000000ee01000019000000f0010000aa00000005000000ee011900ee01aa00f001aa00f0011900ee011900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000000000000000
+00803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000220045ffe10191003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000
+250000000c00000005000080560000002c000000f8ffffff0200000007020000c100000004000000f000a00a001fa00a001f9001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c0000000100
+0000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e102969619011b3d0aca9c58530bb296190100000000c8911a248ce3c57773
+8c172646e0c5779401300b0000300b188d17011b3d0aca4f0030011f9f0000c457e10237bb40001b3d0acac8911a245000f8001f9f00009087a1263c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0bc8911a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a24
+01000000c0911a24dc57e10223e0c577c8911a243a6c2e7608654501c0911a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000002c000000d0fffffffa010000c3ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000e50000001f0000001a0100
+002b0000000100000000400d4200040dc2f8000000d0ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00000006000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b00000010000000000000000500
+00000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00001a013ada21883a6c2e76c8911a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bd1a3b00c1c58e1025000d000219f00003058e102188d17011b3d0acbc8911a2451005401219f000037bb40001b3d0acb70374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0ba8941a24f0374b0b00000000fc57e10200000500c85ae1
+02f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009087a126209f00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000c0000000d10000002c0000002e010000370000000100000000400d4200040dc2e4000000c3ffffff1300
+00004c000000000000000000000000000000ffffffffffffffff74000000540072006100660066006900630049006e0063006900640065006e00740046006500650064000000050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000600000006000000060000000a0000001000000013000000efffffff0c00000010
+0000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002200b7ff0302b7ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c00000001000000
+0a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff21000000070200004f0000
+0002000000f0008003001f8003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058
+000000140000003e0000001d0000004a0000000100000000400d4200040dc227000000b1ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040
+005400000060010000250000003e000000fb0000004a0000000100000000400d4200040dc238000000b1ffffff2e0000004c000000000000000000000000000000ffffffffffffffffa8000000670065007400560065007200730069006f006e002800540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e00650072002900200020003a0076006f006900
+6400060000000600000003000000070000000600000003000000040000000300000006000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003
+000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000004b0000001d000000570000000100000000400d4200040dc227000000a4ffffff020000004c0000000000000000000000000000
+00ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000068010000250000004b00000008010000570000000100000000400d4200040dc238000000a4ffffff2f0000004c0000000000000000
+00000000000000ffffffffffffffffac0000006700650074004c0061006e00670075006100670065002800540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e00650072002900200020003a0076006f0069006400000006000000060000000300000006000000060000000600000006000000060000000600000006000000060000000300000007000000
+030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edff
+ffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000580000001d000000640000000100000000400d4200040dc22700000097ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000fc010000250000005800000069010000640000000100000000400d4200040dc23800000097ffffff480000004c000000000000000000000000000000ffffffffffffffffdc00000072006500670069007300740065007200460065006500640028005400720061
+00660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e00650072002c00200053007400720069006e0067002c00200053007400720069006e0067002c00200053007400720069006e0067002900200020003a0076006f0069006400030000000600000006000000030000000400000003000000060000000300000006000000060000000600000006000000030000000700
+0000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000003000000030000000300000006000000060000000300000003000000070000000300000003000000030000000600000006
+000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000650000
+001d000000710000000100000000400d4200040dc2270000008affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000004402000025
+00000065000000b7010000710000000100000000400d4200040dc2380000008affffff540000004c000000000000000000000000000000fffffffffffffffff40000006100640064004c0061006e00670075006100670065004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e00650072002c0020005400
+72006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e00650072002900200020003a0076006f0069006400060000000600000006000000060000000600000006000000060000000600000006000000060000000600000006000000030000000400000003000000060000000600000006000000030000000300000007000000030000000600000003000000030000
+0003000000050000000300000006000000050000000300000006000000060000000600000003000000060000000600000006000000060000000600000003000000040000000300000006000000060000000600000003000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000060000000600
+000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000
+720000001d0000007e0000000100000000400d4200040dc2270000007dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005802
+00002500000072000000c80100007e0000000100000000400d4200040dc2380000007dffffff570000004c000000000000000000000000000000fffffffffffffffffc000000720065006d006f00760065004c0061006e00670075006100670065004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e0065
+0072002c002000540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e00650072002900200020003a0076006f0069006400000003000000060000000900000006000000050000000600000006000000060000000600000006000000060000000600000006000000060000000600000003000000040000000300000006000000060000000600000003000000
+0300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000
+0006000000060000000300000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c000000004040005400000058000000140000007f0000001d0000008b0000000100000000400d4200040dc22700000070ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000000040400054000000a0000000250000007f0000005f0000008b0000000100000000400d4200040dc23800000070ffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000063006c0065006100720028002900200020003a0076006f006900640005000000030000000600000006000000030000000300000003000000030000000300000003000000050000000600
+000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000008c0000001d000000980000000100000000400d4200040dc22700000063ffffff020000004c000000000000000000000000000000ffffffffffffffff
+500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000098010000250000008c00000020010000980000000100000000400d4200040dc23800000063ffffff370000004c000000000000000000000000000000ffff
+ffffffffffffbc00000075007000640061007400650049006e0063006900640065006e007400730028004600650065006400490064002c00200053007400720069006e0067002c002000540072006100660066006900630049006e0063006900640065006e0074002900200020003a0076006f0069006400400d060000000600000006000000060000000300000006000000030000000600000005000000030000000600000006
+0000000600000003000000040000000300000006000000060000000600000006000000030000000600000003000000030000000700000003000000030000000300000006000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000300000003000000030000000500000006000000
+03000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000990000001d000000a50000000100000000400d4200040dc22700000056ffffff020000004c000000000000000000000000000000ffffffffffffffff5000
+00002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000020020000250000009900000091010000a50000000100000000400d4200040dc23800000056ffffff4e0000004c000000000000000000000000000000ffffffff
+ffffffffe800000075007000640061007400650053007400610074007500730028004600650065006400490064002c002000540072006100660066006900630049006e0063006900640065006e00740046006500650064005300740061007400750073002c002000540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073002900200020003a0076006f0069006400060000
+0006000000060000000600000003000000060000000700000003000000060000000300000006000000040000000300000006000000060000000600000006000000030000000600000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000600000006000000060000000600000007000000030000000600
+000003000000060000000400000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000007000000030000000600000003000000060000000400000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c0000001000000000
+00000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000027000bfed50077002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000
+140000006d010000e9000000e4010000050000004001d0164001401e900e401e900ed0164001d016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00c0bfc0ff0b400040180000000c0000000100000027000bfed50077003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fdff
+ffff5601000000010000fb010000040000004001401e900e401e900ed0164001d016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000104200
+00f9c3000055430000ee42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000024000efed5007700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000110000006a01000080000000e1010000
+0500000011006a011100e1018000e10180006a0111006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000800000006a01000085000000e10100000500000080006a018000e1018500e10185006a0180006a01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000850000006a0100008b000000e10100000500000085006a018500e1018b00e1018b006a0185006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000008b0000006a01000090000000e1010000050000008b006a018b00e1019000e10190006a018b006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000900000006a01000095000000e10100000500000090006a019000e1019500e10195006a0190006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000950000006a0100009b000000e10100000500000095006a01
+9500e1019b00e1019b006a0195006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000009b0000006a010000a0000000e1010000050000009b006a019b00e101a000e101a0006a019b006a01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a00000006a010000a6000000e101000005000000a0006a01a000e101a600e101a6006a01a0006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7
+d40000000000250000000c00000004000000250000000c000000080000805600000030000000a60000006a010000ac000000e101000005000000a6006a01a600e101ac00e101ac006a01a6006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030
+000000ac0000006a010000b3000000e101000005000000ac006a01ac00e101b300e101b3006a01ac006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b30000006a010000b8000000e101000005000000b3006a01b300e101b800e101
+b8006a01b3006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b80000006a010000bd000000e101000005000000b8006a01b800e101bd00e101bd006a01b8006a01250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000bd0000006a010000c3000000e101000005000000bd006a01bd00e101c300e101c3006a01bd006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca00000000002500
+00000c00000004000000250000000c000000080000805600000030000000c30000006a010000c8000000e101000005000000c3006a01c300e101c800e101c8006a01c3006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c80000006a
+010000ce000000e101000005000000c8006a01c800e101ce00e101ce006a01c8006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000ce0000006a010000d4000000e101000005000000ce006a01ce00e101d400e101d4006a01ce006a01
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d40000006a010000db000000e101000005000000d4006a01d400e101db00e101db006a01d4006a01250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000db0000006a010000e0000000e101000005000000db006a01db00e101e000e101e0006a01db006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c0000000400
+0000250000000c000000080000805600000030000000e00000006a010000e5000000e101000005000000e0006a01e000e101e500e101e5006a01e0006a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e50000006a010000e6000000e1
+01000005000000e5006a01e500e101e600e101e6006a01e5006a01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000024000efe
+d50077003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000faffffff53010000fd000000f8010000040000001001101e600e10
+1e600ea0161001a016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002e
+0000007ffefffff000000072feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000006100000070010000960000007c0100000100000000400d4200040dc2740000007ffeffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb000000
+06000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00
+00000000000054000000f0000000390000007d010000be000000880100000100000000400d4200040dc24c00000072feffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e0065007200000c0500000004000000060000000300000003000000030000000600000003
+000000060000000600000003000000060000000600000006000000030000000600000006000000060000000600000006000000030000000600000003000000060000000600000006000000040000000a0000001000000013000000efffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000
+000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000240066fef90066fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000
+0038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000faffffff72010000fd000000a00100000200000010019018600e9018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000160000008f0100001f0000009b0100000100000000400d4200040dc22900000060feffff020000004c000000000000000000000000000000ffffffffffffffff
+500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000008010000270000008f010000ba0000009b0100000100000000400d4200040dc23a00000060feffff1f0000004c000000000000000000000000000000ffff
+ffffffffffff8c000000670065007400560065007200730069006f006e005200650070006c0079002800560065007200730069006f006e002900200020003a0076006f00690064000000060000000600000003000000070000000600000003000000040000000300000006000000060000000700000006000000060000000300000005000000030000000700000006000000030000000400000003000000060000000600000003
+000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000160000009c0100001f000000a80100000100000000400d4200040dc22900000053feffff020000004c0000
+00000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000038010000270000009c010000e2000000a80100000100000000400d4200040dc23a00000053feffff27
+0000004c000000000000000000000000000000ffffffffffffffff9c0000006700650074004c0061006e00670075006100670065005200650070006c007900280053007400720069006e0067002c00200053007400720069006e0067002900200020003a0076006f006900640000110600000006000000030000000600000006000000060000000600000006000000060000000600000006000000070000000600000006000000
+030000000500000003000000070000000300000003000000030000000600000006000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c00000000404000540000005800000016000000a90100001f000000b50100000100000000400d4200040dc22900000046feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c00000000404000540000000c01000027000000a9010000c0000000b50100000100000000400d4200040dc23a00000046feffff200000004c000000000000000000000000000000ffffffffffffffff8c0000007200650067006900730074006500720046006500650064005200650070006c00790028004600650065006400490064002900200020003a0076006f0069006400030000
+00060000000600000003000000040000000300000006000000030000000600000006000000060000000600000007000000060000000600000003000000050000000300000006000000060000000600000006000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000016000000b60100001f000000c20100000100000000400d4200040dc22900000039feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffff
+ff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000001401000027000000b6010000cc000000c20100000100000000400d4200040dc23a00000039feffff210000004c000000000000000000000000000000ffffffffffffffff900000006100640064004c0061006e00670075006100670065004c0069007300740065006e006500720052006500
+70006c00790028002900200020003a0076006f0069006400000c0600000006000000060000000600000006000000060000000600000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013
+000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000016000000c30100001f000000cf0100000100000000400d4200040dc2290000002cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000
+001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002401000027000000c3010000dd000000cf0100000100000000400d4200040dc23a0000002cfeffff240000004c000000000000000000000000000000ffffffffffffffff94000000720065006d006f0076
+0065004c0061006e00670075006100670065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f00690064000300000006000000090000000600000005000000060000000600000006000000060000000600000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000
+050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300
+004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000016000000d00100001f000000dc0100000100000000400d4200040dc2290000001ffe
+ffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000003001000027000000d0010000e0000000dc0100000100000000400d4200040dc2
+3a0000001ffeffff260000004c000000000000000000000000000000ffffffffffffffff980000006c0061006e00670075006100670065004300680061006e00670065006400280053007400720069006e0067002c00200053007400720069006e0067002900200020003a0076006f0069006400030000000600000006000000060000000600000006000000060000000600000007000000060000000600000006000000060000
+00060000000600000003000000070000000300000003000000030000000600000006000000030000000300000007000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100
+0000f701e7fea40027002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000e4010000e1000000880200000801000005000000401e100e401e8010802880108028100e401e100e25
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f701e7fea40027003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000cd010000ca0000009f0200001f01000004000000401e8010802880108028100e401e100e250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000fa4300008bc30000244300001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000
+803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000f401eafea4002700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000e1010000de000000370200000501000005000000e101de00e1010501370205013702de00e101de00250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000037020000de0000003b02000005010000050000003702de00370205013b0205013b02de003702de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000003b020000de0000003f02000005010000050000003b02de003b0205013f0205013f02de003b02de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000
+00300000003f020000de0000004402000005010000050000003f02de003f020501440205014402de003f02de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000044020000de0000004902000005010000050000004402de00440205014902
+05014902de004402de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000049020000de0000004d02000005010000050000004902de00490205014d0205014d02de004902de00250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000004d020000de0000005102000005010000050000004d02de004d020501510205015102de004d02de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000
+250000000c00000004000000250000000c00000008000080560000003000000051020000de0000005602000005010000050000005102de0051020501560205015602de005102de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000560200
+00de0000005b02000005010000050000005602de00560205015b0205015b02de005602de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000005b020000de0000006002000005010000050000005b02de005b020501600205016002de005b02
+de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000060020000de0000006402000005010000050000006002de0060020501640205016402de006002de00250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000064020000de0000006802000005010000050000006402de0064020501680205016802de006402de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c000000
+04000000250000000c00000008000080560000003000000068020000de0000006c02000005010000050000006802de00680205016c0205016c02de006802de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000006c020000de000000700200
+0005010000050000006c02de006c020501700205017002de006c02de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000070020000de0000007502000005010000050000007002de0070020501750205017502de007002de00250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000075020000de0000007a02000005010000050000007502de00750205017a0205017a02de007502de00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000007a020000de0000007e02000005010000050000007a02de007a0205017e0205017e02de007a02de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c0000000400000025000000
+0c0000000800008056000000300000007e020000de0000008202000005010000050000007e02de007e020501820205018202de007e02de00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000082020000de0000008502000005010000050000
+008202de0082020501850205018502de008202de00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000f401eafea40027003a00
+00000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ca010000c70000009c0200001c01000004000000101e5010502850105028e00d10
+1ee00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000fe0100000bffff
+ff8f020000fefeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000001a020000e40000004d020000f00000000100000000400d4200040dc22d0200000bffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb000000060000000400
+00000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000
+54000000a800000011020000f100000056020000fc0000000100000000400d4200040dc224020000fefeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e00740000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000
+000a0000001000000013000000efffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005601d6fd830061002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00
+000001000000250000000c00000008000080560000003000000043010000b8010000c601000019020000050000003014801b30149021601c9021601c801b3014801b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005601d6fd830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000
+04000000250000000c00000005000080560000002c0000002c010000a1010000dd010000300200000400000030149021601c9021601c801b3014801b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000
+004c0000000210c0db0400000004000000000000000080a94300c009c4000003430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000005301d9fd83006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800
+0080560000003000000040010000b50100008401000016020000050000004001b50140011602840116028401b5014001b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000084010000b50100008801000016020000050000008401b50184
+011602880116028801b5018401b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000088010000b50100008b01000016020000050000008801b501880116028b0116028b01b5018801b501250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000008b010000b50100008e01000016020000050000008b01b5018b0116028e0116028e01b5018b01b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc
+0000000000250000000c00000004000000250000000c0000000800008056000000300000008e010000b50100009101000016020000050000008e01b5018e011602910116029101b5018e01b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000
+000091010000b50100009501000016020000050000009101b50191011602950116029501b5019101b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000095010000b50100009801000016020000050000009501b501950116029801160298
+01b5019501b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000098010000b50100009c01000016020000050000009801b501980116029c0116029c01b5019801b501250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000009c010000b5010000a001000016020000050000009c01b5019c011602a0011602a001b5019c01b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000
+000c00000004000000250000000c000000080000805600000030000000a0010000b5010000a40100001602000005000000a001b501a0011602a4011602a401b501a001b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000a4010000b501
+0000a70100001602000005000000a401b501a4011602a7011602a701b501a401b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000a7010000b5010000aa0100001602000005000000a701b501a7011602aa011602aa01b501a701b50125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000aa010000b5010000ad0100001602000005000000aa01b501aa011602ad011602ad01b501aa01b501250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ad010000b5010000b10100001602000005000000ad01b501ad011602b1011602b101b501ad01b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c000000040000
+00250000000c000000080000805600000030000000b1010000b5010000b40100001602000005000000b101b501b1011602b4011602b401b501b101b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b4010000b5010000b80100001602
+000005000000b401b501b4011602b8011602b801b501b401b501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000b8010000b5010000bc0100001602000005000000b801b501b8011602bc011602bc01b501b801b501250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000bc010000b5010000bf0100001602000005000000bc01b501bc011602bf011602bf01b501bc01b501250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000bf010000b5010000c30100001602000005000000bf01b501bf011602c3011602c301b501bf01b501250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0
+db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005301d9fd830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000
+0000250000000c00000004000000250000000c00000005000080560000002c000000290100009e010000da0100002d0200000400000000146021301c6021301c501b0014501b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff46
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffff
+efffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000005d01000034feffffcd01000027feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000005e010000bb010000a6010000c70100000100000000400d4200040dc2710100
+0034feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000ff060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000
+000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c00000070010000c801000094010000d30100000100000000400d4200040dc28301000027feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000730074006100740075007300
+3a003a0006000000030000000600000003000000060000000600000003000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e400000044010000d5010000c0010000e00100000100000000400d4200040dc2570100001afeffff1900
+00004c000000000000000000000000000000ffffffffffffffff80000000540072006100660066006900630049006e0063006900640065006e0074004600650065006400530074006100740075007300000805000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006000000060000000300000006000000060000000600000006000000070000000300000006
+0000000300000006000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000530108fed60108fe00010101154001001000000004000000
+000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000040000
+00250000000c00000005000080570000002400000029010000d0010000da010000fe010000020000000014701e301c701e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000045010000eb01000048010000f70100000100000000400d4200040dc25801000004feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000200030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000056010000eb010000af010000f70100000100000000400d4200040dc26901000004feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020003d002000310001000700000007000000070000000700000007000000030000000600
+000007000000070000000600000007000000030000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000045010000f801000048010000040200000100000000400d4200040dc258010000f7fdffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c00000056010000f8010000a8010000040200000100000000400d4200040dc269010000f7fdffff0d00
+00004c000000000000000000000000000000ffffffffffffffff6800000043004f004e004e004500430054004500440020003d00200032000000070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000450100000502000048010000110200000100000000400d4200040dc258010000eafdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000005601000005020000b9010000110200000100000000400d4200040dc269010000eafdffff100000004c000000000000000000000000000000ffffffffffffffff6c00000044004900530043004f004e004e004500430054004500440020003d00200033000700000003000000070000000700000008000000070000000700000007
+00000007000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000bb0160fe940054002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000
+0000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a80100003b0100003c0200008f01000005000000801ab013801af018c023f018c023b013801ab013250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000600000
+0054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000bb0160fe940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021
+01001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000910100002401000053020000a601000004000000801af018c023f018c023b013801ab013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a
+0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000dc430080cec3000014430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000b80163fe94005400250000000c00000008000080270000001800000004000000
+00000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a501000038010000f20100008c01000005000000a5013801a5018c01f2018c01f2013801a5013801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000
+805600000030000000f201000038010000f60100008c01000005000000f2013801f2018c01f6018c01f6013801f2013801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000f601000038010000fa0100008c01000005000000f6013801f601
+8c01fa018c01fa013801f6013801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000fa01000038010000ff0100008c01000005000000fa013801fa018c01ff018c01ff013801fa013801250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000ff01000038010000030200008c01000005000000ff013801ff018c0103028c0103023801ff013801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd900
+00000000250000000c00000004000000250000000c0000000800008056000000300000000302000038010000070200008c010000050000000302380103028c0107028c010702380103023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000
+0007020000380100000a0200008c010000050000000702380107028c010a028c010a02380107023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000000a020000380100000f0200008c010000050000000a0238010a028c010f028c010f02
+38010a023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000000f02000038010000130200008c010000050000000f0238010f028c0113028c01130238010f023801250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000001302000038010000170200008c010000050000001302380113028c0117028c011702380113023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf000000000025000000
+0c00000004000000250000000c00000008000080560000003000000017020000380100001a0200008c010000050000001702380117028c011a028c011a02380117023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000001a020000380100
+001d0200008c010000050000001a0238011a028c011d028c011d0238011a023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000001d02000038010000210200008c010000050000001d0238011d028c0121028c01210238011d0238012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000002102000038010000240200008c010000050000002102380121028c0124028c012402380121023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000002402000038010000280200008c010000050000002402380124028c0128028c012802380124023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000
+250000000c00000008000080560000003000000028020000380100002d0200008c010000050000002802380128028c012d028c012d02380128023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000002d02000038010000310200008c0100
+00050000002d0238012d028c0131028c01310238012d023801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000003102000038010000350200008c010000050000003102380131028c0135028c013502380131023801250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000003502000038010000390200008c010000050000003502380135028c0139028c013902380135023801250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007
+000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b80163fe940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000
+380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008e0100002101000050020000a301000004000000501ac0189023c01890238013501a8013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000c2010000b1feffff43020000a4feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c
+000000cb0100003e010000130200004a0100000100000000400d4200040dc2de010000b1feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000
+160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000000010000a80100004b01000036020000560100000100000000400d4200040dc2bb010000a4feffff1e0000004c0000000000
+00000000000000000000ffffffffffffffff880000007300740061007400750073003a003a00540072006100660066006900630049006e0063006900640065006e007400730053007400610074007500730006000000030000000600000003000000060000000600000003000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006
+00000003000000060000000700000003000000060000000300000006000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000b80192fe
+4c0292fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000
+000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008e01000046010000500200007401000002000000501ad0159023d015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff4600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffef
+ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000aa01000061010000ad0100006d0100000100000000400d4200040dc2bd0100008efeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffff
+ffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000bb01000061010000140200006d0100000100000000400d4200040dc2ce0100008efeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020003d00200031000000070000000700
+0000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000aa0100006e010000ad0100007a01000001000000
+00400d4200040dc2bd01000081feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ff00030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+00080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000bb0100006e010000350200007a0100000100
+000000400d4200040dc2ce01000081feffff140000004c000000000000000000000000000000ffffffffffffffff7400000050004100520054004c0059005f0041005600410049004c00410042004c00450020003d00200032000700000007000000070000000700000006000000070000000600000007000000070000000700000003000000060000000700000007000000060000000700000003000000060000000300000006
+0000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000aa0100007b010000ad010000870100000100000000400d4200040dc2bd01000074feffff010000004c000000000000000000000000000000ffffffffffffffff50000000200030
+30030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000bb0100007b01000006020000870100000100000000400d4200040dc2ce01000074feffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000041
+005600410049004c00410042004c00450020003d00200033007332070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000360087fdbc006100210000000800000062000000
+0c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002300000007020000df00000068020000050000003002702030028026f00d8026f00d702030027020250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000360087fdbc0061003a0000000c0000000a00000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000c000000f0010000f60000007f0200000400000030028026f00d8026f00d702030027020250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000004c4200801dc400003c430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000
+10000000020000000100000033008afdbc006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000020000000040200008200000065020000050000002000040220006502820065028200040220000402250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000082000000040200008700000065020000050000008200040282006502870065028700040282000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c000000040000002500
+00000c00000008000080560000003000000087000000040200008c000000650200000500000087000402870065028c0065028c00040287000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000008c00000004020000920000006502000005
+0000008c0004028c00650292006502920004028c000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000092000000040200009700000065020000050000009200040292006502970065029700040292000402250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000097000000040200009c000000650200000500000097000402970065029c0065029c00040297000402250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000009c00000004020000a100000065020000050000009c0004029c006502a1006502a10004029c000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800
+00805600000030000000a100000004020000a60000006502000005000000a1000402a1006502a6006502a6000402a1000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000a600000004020000ac0000006502000005000000a6000402a6
+006502ac006502ac000402a6000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ac00000004020000b10000006502000005000000ac000402ac006502b1006502b1000402ac000402250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b100000004020000b50000006502000005000000b1000402b1006502b5006502b5000402b1000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce
+0000000000250000000c00000004000000250000000c000000080000805600000030000000b500000004020000b80000006502000005000000b5000402b5006502b8006502b8000402b5000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000b800000004020000bd0000006502000005000000b8000402b8006502bd006502bd000402b8000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000bd00000004020000c10000006502000005000000bd000402bd006502c1006502c1
+000402bd000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c100000004020000c70000006502000005000000c1000402c1006502c7006502c7000402c1000402250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000c700000004020000cc0000006502000005000000c7000402c7006502cc006502cc000402c7000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000
+000c00000004000000250000000c000000080000805600000030000000cc00000004020000d20000006502000005000000cc000402cc006502d2006502d2000402cc000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000d20000000402
+0000d70000006502000005000000d2000402d2006502d7006502d7000402d2000402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000d700000004020000db0000006502000005000000d7000402d7006502db006502db000402d700040225
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000db00000004020000dc0000006502000005000000db000402db006502dc006502dc000402db000402250000000c00000008000080250000000c00000000000080280000000c00000004000000
+250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000033008afdbc0061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000
+003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000009000000ed010000f30000007c0200000400000000025026c00d5026c00d402000024020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003d000000e5fdffffe6000000d8fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000
+000000005400000090000000650000000a02000098000000160200000100000000400d4200040dc278000000e5fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000
+000c000000000000004b0000001000000000000000050000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000005300000017020000a9000000220200000100000000400d4200040dc266000000d8fdffff0f0000004c0000000000000000
+00000000000000ffffffffffffffff6c00000063006f006d006d006f006e003a003a00560065007200730069006f006e00b68b0600000006000000090000000900000006000000060000000300000003000000070000000600000004000000060000000300000006000000060000000a0000001000000013000000efffffff0c000000100000000000000000000000460000007c00000070000000454d462b0840000238000000
+2c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003300c6fdef00c6fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000
+000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000900000012020000f3000000400200000200000000029022c00d9022250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000052
+0300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000250000002d0200002e000000390200000100000000400d4200040dc238000000
+c2fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+0010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000360000002d020000d8000000390200000100000000400d420004
+0dc249000000c2fdffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d0061006a006f007200200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d006200650072000900000006000000030000000600000003000000030000000300000003000000070000000600000006000000060000000600000006000000060000000600000006
+000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000250000003a0200002e00000046020000010000
+0000400d4200040dc238000000b5fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000360000003a020000d800000046
+0200000100000000400d4200040dc249000000b5fdffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d0069006e006f007200200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d0062006500720009000000030000000600000006000000030000000300000003000000030000000700000006000000060000000600000006000000
+06000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000250000004702
+00002e000000530200000100000000400d4200040dc238000000a8fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000
+3600000047020000d7000000530200000100000000400d4200040dc249000000a8fdffff1e0000004c000000000000000000000000000000ffffffffffffffff880000006d006900630072006f00200020003a0055006e0062006f0075006e006400650064004e00610074007500720061006c004e0075006d00620065007200090000000300000005000000030000000600000003000000030000000300000007000000060000
+0006000000060000000600000006000000060000000600000006000000070000000600000003000000060000000300000006000000030000000700000006000000090000000600000006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+0000005800000025000000540200002e000000600200000100000000400d4200040dc2380000009bfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b000000540000009c000000360000005402000070000000600200000100000000400d4200040dc2490000009bfdffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006400610074006500200020003a0053007400720069006e0067000000060000000600000003000000060000000300000003000000030000000700000003000000030000000300000006000000060000000a0000001000
+000013000000efffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003100d0fe59003b002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000000100000025
+0000000c0000000800008056000000300000001e000000e4000000770000001f01000005000000e001400ee001f0117007f0117007400ee001400e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f
+0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003100d0fe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000
+000c00000005000080560000002c00000007000000cd0000008e0000003601000004000000e001f0117007f0117007400ee001400e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210
+c0db04000000040000000000000000003842008096c30000b24200006c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002e00d3fe59003b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030
+0000001b000000e1000000490000001c010000050000001b00e1001b001c0149001c014900e1001b00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000049000000e10000004a0000001c010000050000004900e10049001c014a001c01
+4a00e1004900e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000004a000000e10000004b0000001c010000050000004a00e1004a001c014b001c014b00e1004a00e100250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000004b000000e10000004c0000001c010000050000004b00e1004b001c014c001c014c00e1004b00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df00000000002500
+00000c00000004000000250000000c0000000800008056000000300000004c000000e10000004d0000001c010000050000004c00e1004c001c014d001c014d00e1004c00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000004d000000e1
+0000004e0000001c010000050000004d00e1004d001c014e001c014e00e1004d00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000004e000000e1000000500000001c010000050000004e00e1004e001c0150001c015000e1004e00e100
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000050000000e1000000510000001c010000050000005000e10050001c0151001c015100e1005000e100250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000051000000e1000000520000001c010000050000005100e10051001c0152001c015200e1005100e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c0000000400
+0000250000000c00000008000080560000003000000052000000e1000000540000001c010000050000005200e10052001c0154001c015400e1005200e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c00000008000080560000003000000054000000e1000000550000001c
+010000050000005400e10054001c0155001c015500e1005400e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000055000000e1000000560000001c010000050000005500e10055001c0156001c015600e1005500e100250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000056000000e1000000570000001c010000050000005600e10056001c0157001c015700e1005600e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000057000000e1000000580000001c010000050000005700e10057001c0158001c015800e1005700e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00
+000008000080560000003000000058000000e1000000590000001c010000050000005800e10058001c0159001c015900e1005800e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000059000000e10000005a0000001c0100000500000059
+00e10059001c015a001c015a00e1005900e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000005a000000e10000005b0000001c010000050000005a00e1005a001c015b001c015b00e1005a00e100250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000005b000000e10000005c0000001c010000050000005b00e1005b001c015c001c015c00e1005b00e100250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000005c000000e10000005d0000001c010000050000005c00e1005c001c015d001c015d00e1005c00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600
+0000300000005d000000e10000005e0000001c010000050000005d00e1005d001c015e001c015e00e1005d00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000005e000000e10000005f0000001c010000050000005e00e1005e001c015f
+001c015f00e1005e00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000005f000000e1000000600000001c010000050000005f00e1005f001c0160001c016000e1005f00e100250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000060000000e1000000610000001c010000050000006000e10060001c0161001c016100e1006000e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce00000000
+00250000000c00000004000000250000000c00000008000080560000003000000061000000e1000000620000001c010000050000006100e10061001c0162001c016200e1006100e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000006200
+0000e1000000630000001c010000050000006200e10062001c0163001c016300e1006200e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000063000000e1000000640000001c010000050000006300e10063001c0164001c016400e10063
+00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000064000000e1000000650000001c010000050000006400e10064001c0165001c016500e1006400e100250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000065000000e1000000670000001c010000050000006500e10065001c0167001c016700e1006500e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c0000
+0004000000250000000c00000008000080560000003000000067000000e1000000680000001c010000050000006700e10067001c0168001c016800e1006700e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080560000003000000068000000e10000006900
+00001c010000050000006800e10068001c0169001c016900e1006800e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000069000000e10000006a0000001c010000050000006900e10069001c016a001c016a00e1006900e100250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000006a000000e10000006b0000001c010000050000006a00e1006a001c016b001c016b00e1006a00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000006b000000e10000006d0000001c010000050000006b00e1006b001c016d001c016d00e1006b00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000
+000c0000000800008056000000300000006d000000e10000006e0000001c010000050000006d00e1006d001c016e001c016e00e1006d00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000006e000000e1000000700000001c0100000500
+00006e00e1006e001c0170001c017000e1006e00e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000070000000e1000000710000001c010000050000007000e10070001c0171001c017100e1007000e100250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000071000000e1000000720000001c010000050000007100e10071001c0172001c017200e1007100e100250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000072000000e1000000730000001c010000050000007200e10072001c0173001c017300e1007200e100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000
+80560000003000000073000000e1000000740000001c010000050000007300e10073001c0174001c017400e1007300e100250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000000000
+00ff0b400040180000000c000000010000002e00d3fe59003b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000004000000ca
+0000008b0000003301000004000000b001c0114007c0114007100eb001100e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c000000000000001e00000018000000380000000cffffff7e000000fffeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000002d000000e300000062000000ef0000000100000000400d4200040dc2400000000cffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00
+7000720069006d0069007400690076006500bb00000006000000060000000300000003000000090000000300000003000000030000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000efffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffefffffff120000000c00000001000000190000000c000000
+ffffff00250000000c00000003000000180000000c00000000000000540000007000000037000000f300000058000000fe0000000100000000400d4200040dc24a000000fcfeffff060000004c000000000000000000000000000000ffffffffffffffff580000004600650065006400490064000600000006000000060000000600000003000000060000000a0000001000000013000000efffffff0c00000010000000000000
+0000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004a00f0fe6b00f0fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000
+000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000020000000e80000006f000000160100000200000070
+03f00f8005f00f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002001000014010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103cc000000
+c00000000210c0db2400000000400000a70085fea9008cfeab0090feae0097feaf009bfeb200a2feb400a6feb700adfeb800b1febb00b8febd00bcfec000c3fec100c7fec400cefec600d2fec900d9feca00ddfecd00e4fecf00e8fed200effed300f3fed600fafed800fefedb0005ffdc0009ffdf0010ffe10014ffe4001bffe5001fffe80026ffea002affed0031ffee0035fff1003cfff30040fff50044ff00010001000100
+01000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000f800
+000092000000a9000000e40000006c01000012000000240000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000004009a016600930168009f015b0098015c0094015f009d014100a9014400a2014500ae013800a7013a00a3013d00ac012e00a8012100b1012300bd011600b6011700b2011a0
+0bb010c00b7010f00b0010000cc00f300c500f500c100f800ca00e900c600ec00cf00de00cb00d100d400d200d000d500d900c700d500ca00de00bb00da00be00d300b000ef00a200eb00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b08400002
+3c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000a70085fea80095fea70085feb10091fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000
+0000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009200000058010000a00000006c010000020000000400000002000000020000004009a0165009a0154009a016e009e015250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000
+8041000000000000000002000000280000000c0000000400000046000000d0000000c4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001037c000000700000000210c0db14000000004000001b0211ff140214ff100216ff090219ff05021bfffe011efffa0120fff30123ffef0125ffe80128ffe4012affdd012effd9
+012fffd20133ffce0135ffc70138ffc3013affbc013dffb8013fffb10142ff00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c000000
+04000000250000000c000000050000805a000000980000009c010000ab0000000a020000e00000000a00000014000000020000000200000002000000020000000200000002000000020000000200000002000000020000008020e00d1020b00dd01f900d601f600d201f400db01e100d701ef00c001ec00cc01da00c501d700c101d500ca01c100c601c000cf01bc00bb01ba00b401b700b001b500b901a200b501a000be019d0
+0a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400
+0000004000001b0211ff0b0213ff1b0211ff10021cff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000f6
+010000d10000000a020000e0000000020000000400000002000000020000008020e00d801fc00d8020e00dd01f300d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000680100005c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f
+02000000000000000210c0db00000000000000ff0840010314010000080100000210c0db320000000040000084013afe820141fe810145fe7e014cfe7d0150fe7b0157fe79015bfe770162fe760166fe73016dfe720171fe700178fe6e017cfe6c0183fe6b0187fe68018efe670192fe650199fe63019dfe6101a4fe6001a8fe5d01affe5c01b3fe5a01bafe5801befe5601c5fe5501c9fe5201d0fe5101d4fe4f01dbfe4d01df
+fe4b01e6fe4a01eafe4701f1fe4601f5fe4401fcfe420100ff400107ff3f010bff3c0112ff3b0116ff39011dff370121ff350128ff34012cff310133ff300137ff2e013eff2c0142ff2b0144ff000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000004c01000016010000a900000073010000b701000019000000320000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000001017501bf016e01ae016a01ab016301aa016f01980168019601640194016d0183016901800162018f015e017d0157017b01530179015c01680158016501510164015d0152015601500152015e014b014d0147014a01400149014c01370145013501410133014a01220146012
+f013f011e013b011c0134011a013001180139010701350104013e00f3013a00f1013300ff012f00ed012800ec012400e9012d00d8012900d6012200d4012e00c2012700c1012300ce011c00bd011800bb011100b9011d00a8011b00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000
+00880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000084013afe7a0147fe84013afe84014afe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+00005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000065010000a301000073010000b7010000020000000400000002000000020000001017501b7016801a1017501b1017501a250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000f0000000e4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a00000000400000da01b7fed401befed001c2feca01c9fec601cdfec001d4febc01d8feb501dffe
+b201e3feab01eafea701eefea101f5fe9d01f9fe970100ff930104ff8c010bff89010fff820116ff7f011aff780121ff740125ff6e012cff6a0130ff640137ff60013bff590142ff000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000
+0000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000bc00000044010000ab000000c90100003a0100000d0000001a00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000701c8013101c1013d01bd012701b6012301b
+2012d01ab011901a7011201a0011f019c0108019501040191010e018a00fa018600f4018f00e0018b00e9017400e6017000ef016900dc016500d5016e00c1016a00cb015300c7015f00b1015800bd014400b6014d00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c
+000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000da01b7fecc01bffeda01b7fed301c5fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+38000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000b701000028010000c90100003a01000002000000040000000200000002000000701c8013901b0013701c8013001ca012250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000009000ebfd9000f2fd9000f6fd9000fdfd900001fe900008fe90000cfe8f000dfe000100010001
+00011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000500000007a000000e00100007f00000006020000040000000800000002
+000000020000000200000002000000d0074020d007d01fd007901fd007201fd007e01ed007701ed007301ec007201e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f
+020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000009000ebfd8b00fafd9000ebfd9500fafd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000076000000f3010000840000000602000002000000040000000200000002000000d00740208007501fd00740202008501f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000002800
+00000c00000002000000280000000c000000030000004c000000640000000000000000000000950200008b0200000000000000000000960200008c0200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014
+000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 12\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_15B2657C_6D09_4914_A6A9_667ED16C283C}{\*\bkmkend BKM_15B2657C_6D09_4914_A6A9_667ED16C283C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Advice}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class provides an \b Advice \b0 related to a \b Traffic Incident\b0
+.\ql\par
+The advice contains recommendations or prohibitions for the driver.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B09E1E7C_B622_4706_885D_FDAC2D6CCB3D}{\*\bkmkend BKM_B09E1E7C_B622_4706_885D_FDAC2D6CCB3D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt AdviceCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Main advice, advices the user what to do.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_94EDBAAD_D8E8_4154_8B64_2201F2006DD6}{\*\bkmkend BKM_94EDBAAD_D8E8_4154_8B64_2201F2006DD6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 More detailed advice. The actual value of this atttribute depends
+on the \b mainCode\b0 . So based on the mainCode it has to be cast to the related enum.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_3B4BEE1E_7628_4d14_8A0C_60E87CADD036}{\*\bkmkend BKM_3B4BEE1E_7628_4d14_8A0C_60E87CADD036}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Applicability}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class indicates to which kind of vehicles a \b Traffic Incident\b0
+, or an \b Advice \b0 of a Traffic Incident is applicable.\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A15F288F_1DFA_4728_AEBA_134E37BF49FD}{\*\bkmkend BKM_A15F288F_1DFA_4728_AEBA_134E37BF49FD}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b vehicleType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt VehicleType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Describes the type of the vehicle.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8CBE7038_A976_4f5c_B004_3AF9B11B5E53}{\*\bkmkend BKM_8CBE7038_A976_4f5c_B004_3AF9B11B5E53}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Cause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class contains the common part of a description of a \b Cause \b0
+of a \b Traffic Incident\b0 . The cause details are either provided directly (using a \b DirectCause\b0 ), or there is a reference to another Traffic Incident which is the cause for this incident (using a \b LinkedCause\b0 ).\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_D2679DD0_25C7_4f2b_8F14_A7B2AD411404}{\*\bkmkend BKM_D2679DD0_25C7_4f2b_8F14_A7B2AD411404}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Main Cause for the incident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A6C387D3_2812_46e1_BBBF_B91908C5466A}{\*\bkmkend BKM_A6C387D3_2812_46e1_BBBF_B91908C5466A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DirectCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class contains the details of a \b Cause \b0 of a \b Traffic
+Incident\b0 .\lang3081\hich\f3\dbch\f3\loch\f3\ql\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4082CE69_A551_4b49_8C7F_F622172BE7F3}{\*\bkmkend BKM_4082CE69_A551_4b49_8C7F_F622172BE7F3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b warningLevel}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt WarningLevel}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Warning Level.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C515E800_C956_42fd_960D_7D2778DDDB06}{\*\bkmkend BKM_C515E800_C956_42fd_960D_7D2778DDDB06}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+unverifiedInformation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Boolean}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Indication of whether the information has been verified by
+an authority (like the police) or not.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8C15E836_ABD9_4ddd_A1C5_A8E441F135C0}{\*\bkmkend BKM_8C15E836_ABD9_4ddd_A1C5_A8E441F135C0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 More detailed cause. The actual value of this atttribute depends
+on the \b mainCause\b0 . So based on the mainCause it has to be cast to the related enum.\lang3081\hich\f3\dbch\f3\loch\f3\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A275DAA6_2084_4c36_9FCC_BEAE63F227CE}{\*\bkmkend BKM_A275DAA6_2084_4c36_9FCC_BEAE63F227CE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length of the cause of the Traffic Incident in meters. E.g. the
+length of road works, causing stationary traffic.\ql\par
+Value range 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E4801477_7454_4241_BA80_9D93A5BC3667}{\*\bkmkend BKM_E4801477_7454_4241_BA80_9D93A5BC3667}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Offset (in metres) from the start of the Cause to the end of the
+Problem Location. When used together with Affected Length the cause can be positioned within the event more accurately. Without Cause Offset but with Affected Length defined the cause position is not defined. If neither Affected Length nor Cause Offset
+are defined the Cause spans the entire Problem Location.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4E556255_7CE9_434a_875E_E345487D3C67}{\*\bkmkend BKM_4E556255_7CE9_434a_875E_E345487D3C67}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LaneRestrictions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 This class provides information about closed lanes.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_83BEE7A6_9271_49cf_98CE_A75A4DAB6FFE}{\*\bkmkend BKM_83BEE7A6_9271_49cf_98CE_A75A4DAB6FFE}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b laneRestrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LaneRestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The kind of lane restriction}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8E177367_11AC_43a2_AF16_98480F32C661}{\*\bkmkend BKM_8E177367_11AC_43a2_AF16_98480F32C661}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+numberOfLanes}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Number of lanes affected by the Lane Restriction Type.\ql\par
+Value range: 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_B191B8E3_2730_45ed_9708_2E1385FC01EB}{\*\bkmkend BKM_B191B8E3_2730_45ed_9708_2E1385FC01EB}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinkedCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 A Cause for the incident, with a reference to another incident,
+which is a cause for this incident.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1E096C81_1467_424c_A976_C615347A2E3F}{\*\bkmkend BKM_1E096C81_1467_424c_A976_C615347A2E3F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b causeTrafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Id of a TrafficIncident which is a cause for this incident.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_B85321A1_2A42_474e_BB3E_F91BBFA3E116}{\*\bkmkend BKM_B85321A1_2A42_474e_BB3E_F91BBFA3E116}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationReference}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Map database independent description of a location. E.g. the
+road stretch affected by a Traffic Incident.}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7A917279_2878_4e05_8066_239DAF5984AD}{\*\bkmkend BKM_7A917279_2878_4e05_8066_239DAF5984AD}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b locationReferenceType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The type of location reference.\ql\par
+Value range: 0, .., 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_80FA3748_AFD4_4b41_B979_D55D37E054B7}{\*\bkmkend BKM_80FA3748_AFD4_4b41_B979_D55D37E054B7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+data}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The actual data of the location reference.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_5EDD82BD_FDE9_4fcb_9182_1586EA8ED750}{\*\bkmkend BKM_5EDD82BD_FDE9_4fcb_9182_1586EA8ED750}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 One of the highly visible attributes of many roadworks is the imposed
+Temporary Speed Limit. This component provides the ability to define temporary speed limit information suitable for display to the driver.\ql\par
+Temporary Speed limit info associated with the event is defined in either kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the Location Reference to the start of the first speed limit
+restriction allows the speed limit zone to be positioned independently of the cause.\par
+Applicability can be added if needed.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_972E5F35_2DFE_4df4_886E_48499DBFC989}{\*\bkmkend BKM_972E5F35_2DFE_4df4_886E_48499DBFC989}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b unitsMPH}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD Att.Type}{\fldrslt Boolean}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Units definition for this Temporary Speed Limit.\ql\par
+If true, the unit is mph, else the unit is km/h.\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E53C35E9_FD6D_4028_BFEF_C1F4EB1DD935}{\*\bkmkend BKM_E53C35E9_FD6D_4028_BFEF_C1F4EB1DD935}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+offset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Offset defines the distance in meters from the start of the Temporary
+speed limit to the end of the Location reference. If not defined then first SpeedLimitSection starts at the beginning of the Location Reference.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_136CA1EC_C4EA_475b_92DB_C6D1C8B3F50A}{\*\bkmkend BKM_136CA1EC_C4EA_475b_92DB_C6D1C8B3F50A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimitSection}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Each section of a TemporarySpeedLimit is defined by a speed value
+and length.\ql\par
+A speed value for use in Wet conditions is also optionally available.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1A88E0D0_C06A_4349_AE38_306A2BB41978}{\*\bkmkend BKM_1A88E0D0_C06A_4349_AE38_306A2BB41978}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b speedLimitValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Speed Limit numerical value in kph or mph.\ql\par
+Value range: 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C5EB26BE_BF1E_4b71_84FE_B1E29FC4EF28}{\*\bkmkend BKM_C5EB26BE_BF1E_4b71_84FE_B1E29FC4EF28}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitValueWet}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Speed Limit numerical value to be used in wet conditions; in kph
+or mph.\par
+Value range: 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5D098308_F56E_45c0_A037_964D43A31259}{\*\bkmkend BKM_5D098308_F56E_45c0_A037_964D43A31259}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitLength}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length of the SpeedLimitSection, If this is not defined, then section
+finishes at end of the Problem Location.\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F97356C8_FD58_4877_84D7_87BD58083DDF}{\*\bkmkend BKM_F97356C8_FD58_4877_84D7_87BD58083DDF}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncident}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class is the representation of a Traffic Incident.\ql\par
+\par
+\hich\f6\dbch\f6\loch\f6\b\ul Validity Period\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+Indicates when the incident information is valid. An incident can be valid until it is cancelled (and therefore no longer visible in the system), or an explicit \b Start Time\b0 and/or \b Stop Time\b0 can be specified.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_653B819A_BADE_4f48_A552_234C045332E7}{\*\bkmkend BKM_653B819A_BADE_4f48_A552_234C045332E7}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b trafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt String}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Unique Id.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2173E321_C8EC_4ff2_82B0_4069A75E3335}{\*\bkmkend BKM_2173E321_C8EC_4ff2_82B0_4069A75E3335}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+effectCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt EffectCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Effect Code. The direct effect on the traffic flow.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0B090FE2_1572_49fe_9E88_BD59F5C4E830}{\*\bkmkend BKM_0B090FE2_1572_49fe_9E88_BD59F5C4E830}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+startTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TimeInMinutes}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Start Time. Date and time at which a Traffic Incident began
+or is scheduled to begin. For example: for a road closure it can be specified that the road will be closed at today 10 o'clock.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F2517280_83E8_40c7_A8D3_3B8AF52A4277}{\*\bkmkend BKM_F2517280_83E8_40c7_A8D3_3B8AF52A4277}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+stopTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TimeInMinutes}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Stop Time. Date and time at which a Traffic Incident is scheduled
+to end. For example: for a road closure it can be specified that the road will be closed till tomorrow 6 o'clock.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1EACD833_5121_421c_80FC_4A3C943C1367}{\*\bkmkend BKM_1EACD833_5121_421c_80FC_4A3C943C1367}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+tendency}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Tendency}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Tendency. Indicates whether the Traffic Incident is constant,
+increasing or decreasing.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_86F405BA_E656_46b1_8584_2E8870E6E30F}{\*\bkmkend BKM_86F405BA_E656_46b1_8584_2E8870E6E30F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Length of the Traffic Incident in meters. For example the length
+of a traffic jam (stationary traffic).\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FD20AF8A_C206_4480_A75E_4820707F48E1}{\*\bkmkend BKM_FD20AF8A_C206_4480_A75E_4820707F48E1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+averageSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The averageSpeedAbsolute is used to signal the real speed of traffic,
+in m/s, through the problem location.\par
+Value range 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_840B8EFF_3DB4_4830_B782_96B44FD3464B}{\*\bkmkend BKM_840B8EFF_3DB4_4830_B782_96B44FD3464B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+delay}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The total delay for the Traffic Incident in minutes.\par
+According to the TPEG-TEC specification, this value is only applicable for point locations. Other sources of Traffic Information however may provide this value also for other types of locations.\par
+Value range 0, .. , 32767 (0x7fff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7CA7EF17_B990_40c1_99BE_E056B55EC14C}{\*\bkmkend BKM_7CA7EF17_B990_40c1_99BE_E056B55EC14C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+segmentSpeedLimit}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The segmentSpeedLimit is used to signal the averaged potential speed
+(due to applied legal limits along the Problem Location), in m/s, for re-routing and ETA calculations, but not to display or warn the driver. This attribute is not guaranteed to match signed speed limits on a road.\par
+Value range 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2F3B1349_D282_47e2_8955_FD9C74C3E990}{\*\bkmkend BKM_2F3B1349_D282_47e2_8955_FD9C74C3E990}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expectedSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The expectedSpeedAbsolute, in m/s, is used to signal the expected
+(normal) speed of traffic through the problem location.\ql\par
+Value range 0, .. , 127 (0x7f)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5E6FF443_53AC_4301_8865_3608914E58FA}{\*\bkmkend BKM_5E6FF443_53AC_4301_8865_3608914E58FA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expirationTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TimeInMinutes}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The time after which this information is no longer valid.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F23BFCAB_94D1_4fc9_B4BF_02E0AF26A8C7}{\*\bkmkend BKM_F23BFCAB_94D1_4fc9_B4BF_02E0AF26A8C7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+updateTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TimeInMinutes}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 The time at which the information in this incident was updated.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A11A02B5_FE24_4adf_B014_3E30A6482B95}{\*\bkmkend BKM_A11A02B5_FE24_4adf_B014_3E30A6482B95}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VehicleRelatedRestriction}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 This class specifies a Vehicle Related Restriction.\ql\par
+Such a restriction consist of a Restriction Type and, if applicable, a Restriction Value.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_200B25EF_6BB8_445c_88DC_0A7CF57B4972}{\*\bkmkend BKM_200B25EF_6BB8_445c_88DC_0A7CF57B4972}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b restrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt RestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Restriction Type.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_233E56FB_1EDA_4caf_828D_0784E0AB55B5}{\*\bkmkend BKM_233E56FB_1EDA_4caf_828D_0784E0AB55B5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+restrictionValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Restriction value.\ql\par
+Value range: 0, .. , 2147483647 (0x7fffffff)\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_87D1C261_D95F_4369_99BA_CB658BE9690D}{\*\bkmkend BKM_87D1C261_D95F_4369_99BA_CB658BE9690D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentFeed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_F069F323_4FF6_4c96_9CDD_F17C12719E4F}{\*\bkmkend BKM_F069F323_4FF6_4c96_9CDD_F17C12719E4F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getVersion}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the API version of this interface implemented by the
+service.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5616BB38_3B04_4227_A5CC_8CC420D50E69}{\*\bkmkend BKM_5616BB38_3B04_4227_A5CC_8CC420D50E69}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getLanguage}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Get the current language. In case of a client/server based
+Feed, this language can be sent to the server in order to receive any textual information in the right language.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_978DF388_3DA9_4670_946D_AB2B84BEB01D}{\*\bkmkend BKM_978DF388_3DA9_4670_946D_AB2B84BEB01D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b registerFeed}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Register a Feed that is going to provide Traffic Incidents.\par
+A Traffic Incident Feed that wants to provide Traffic Incidents to the TrafficIncidentsService has to register itself via this method. The input parameters provide a description of the Feed. The returned feedId is used to identify the Feed in all methods
+where the Feed is providing information to the TrafficIncidentsService.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+dataProviderName}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Name of the data provider for this Feed, e.g. 'TomTom'.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+protocolName}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Name of the protocol used by this Feed, e.g. 'TPG-TEC'.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+communicationChannelName}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Name of the communication channel used by this Feed, e.g. 'FM Tuner'.}}\par
+\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6E0DE45A_7282_46d3_8D1A_CD61310B120C}{\*\bkmkend BKM_6E0DE45A_7282_46d3_8D1A_CD61310B120C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addLanguageListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Add a listener for changes in the current language.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+changeListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the languageChanged method will be called.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B6CFB6B0_BD57_4903_9D9E_A5E8EF3D1301}{\*\bkmkend BKM_B6CFB6B0_BD57_4903_9D9E_A5E8EF3D1301}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeLanguageListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Remove a listener for changes in the current language.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface on which the reply method will be called.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentFeedListener}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+changeListener}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Instance of the interface that was previously registered for language changes via addLanguageListener.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AD0897E1_7C02_4f42_8756_F4F9DBAA116B}{\*\bkmkend BKM_AD0897E1_7C02_4f42_8756_F4F9DBAA116B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b clear}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Clear the internal store of the Traffic Incidents Service.
+This may be needed if the source of the Traffic Incidents is changed, or if the server indicates that a reset is needed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0B3BD5F5_2971_47bd_874C_82523EC97C6A}{\*\bkmkend BKM_0B3BD5F5_2971_47bd_874C_82523EC97C6A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b updateIncidents}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Update the Traffic Incidents in the internal store of the
+Traffic Incidents Service. These updates can consist of incidents to be removed (cancelledIncidentIds), and/or new or updated incidents (updatedIncidents). The 'cancels' are handled before the 'updates'.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FeedId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Unique Id of the Feed providing the update.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+cancelledIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The unique Ids of the incidents to be deleted.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncident}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+updatedIncidents}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The new or updated incidents.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_708FC6E1_5461_43ec_9B82_8A80EC5FA536}{\*\bkmkend BKM_708FC6E1_5461_43ec_9B82_8A80EC5FA536}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b updateStatus}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Update the status of a Feed.}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FeedId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Unique Id of the Feed providing the status update.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentFeedStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+feedStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Status of the Feed.}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+incidentsStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Incident Status of the Feed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_31227E70_A498_4a69_9F90_DC5963350B2C}{\*\bkmkend BKM_31227E70_A498_4a69_9F90_DC5963350B2C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentFeedListener}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A3E429D3_A52B_4bfc_86B1_5A5762910437}{\*\bkmkend BKM_A3E429D3_A52B_4bfc_86B1_5A5762910437}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getVersionReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getVersion().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b Version}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 version}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The API version of this interface implemented by the service.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BEC3FA99_4273_4d0c_B289_9A2BCFB1E928}{\*\bkmkend BKM_BEC3FA99_4273_4d0c_B289_9A2BCFB1E928}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b getLanguageReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getLanguage().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The currently used language, specified as ISO 639-3 language code (lower case).}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The currently used, country specific variant of the language, , specified as ISO 3166-1 alpha 3 country code (upper \par
+\par
+case).}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_69CA6008_8089_431c_BE1E_FAEF3695271C}{\*\bkmkend BKM_69CA6008_8089_431c_BE1E_FAEF3695271C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b registerFeedReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of registerFeed().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FeedId}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Unique Id for the registered Feed.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8A2FD55F_3C11_4c72_89C3_BD66B0F968D7}{\*\bkmkend BKM_8A2FD55F_3C11_4c72_89C3_BD66B0F968D7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b addLanguageListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addLanguageListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E879D28C_6640_4d9f_8525_A134838BB5A3}{\*\bkmkend BKM_E879D28C_6640_4d9f_8525_A134838BB5A3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b removeLanguageListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeLanguageListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F2B736E9_39B9_4847_B46D_74BAA052FF80}{\*\bkmkend BKM_F2B736E9_39B9_4847_B46D_74BAA052FF80}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b languageChanged}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Meth.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 When a client registers itself for being notified of language changes
+(see addLanguageListener()), this signal is sent to this client only, to inform this client about the currently used language.\par
+On a language change inside the TrafficIncidentsService, there is a broadcast with the new language. The broadcast only actually occurs if there is at least one registered listener (see addLanguageListener).\lang3081\hich\f3\dbch\f3\loch\f3\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f10\dbch\f10\loch\f10\cf2\fs20\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f10\dbch\f10\loch\f10\cf2\fs20\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The currently used language, specified as ISO 639-3 language code (lower case).}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b String}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The currently used, country specific variant of the language, specified as ISO 3166-1 alpha 3 country code (upper \par
+\par
+case).}}\ql\par
+\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_3AD058C6_B394_4cbd_A71F_95469265D03F}{\*\bkmkend BKM_3AD058C6_B394_4cbd_A71F_95469265D03F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b PrimitiveType}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+FeedId}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Element.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 Unique identification of a Traffic Incidents Feed.\ql\par
+Value range -1, 0, .. , 2147483647 (0x7fffffff)\par
+Where -1 indicates not valid or not specified.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang1033\hich\f3\dbch\f3\loch\f3 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart Sequence_Diagrams_Section_Header}{\*\bkmkend Sequence_Diagrams_Section_Header}{\*\bkmkstart BKM_74171AFD_7655_4f79_9E8F_328F6D947AE9}{\*\bkmkend BKM_74171AFD_7655_4f79_9E8F_328F6D947AE9}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page
+Sequence Diagrams\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\lang1033\hich\f5\dbch\f5\loch\f5 The first two sequence diagrams in this chapter show the complete flow from a client, via a proxy and adaptor, to the service.\line The other diagrams are focusing on the functionality and therefore the proxy/adaptor
+layer is left out. \lang3081\hich\f5\dbch\f5\loch\f5\par
+\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart SequenceDiagrams}{\*\bkmkend SequenceDiagrams}{\*\bkmkstart BKM_CF081181_AAC7_4a84_8904_9730FC68975F}{\*\bkmkend BKM_CF081181_AAC7_4a84_8904_9730FC68975F}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 SequenceDiagrams}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_628085BA_60C1_4665_BB76_4C3A6EF904D5}{\*\bkmkend BKM_628085BA_60C1_4665_BB76_4C3A6EF904D5}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Interaction}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 Getting the Version information}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt This diagram shows how real client code obtains the version information, via a proxy and an adaptor, from the TrafficIncidentsService.}}\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw20763\pich12621\picwgoal11775\pichgoal7155\picscalex79\picscaley79\sspicalign0 010000006c000000f8ffffffffffffff560200006701000000000000000000001b5100004c31000020454d46000001008cc7000001080000040000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c
+00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff0840010334000000
+280000000210c0db05000000004000000100ffff01009bfe4b029bfe4b02ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000001000000380000000000000038000000000000000001010001000000000000000000000000000000000000
+0000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff4d02000067010000050000001000100010005016b0245016b024100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c40
+00c02c00000020000000ffffffff060000000100ecffaf00ecffbc00faffbc00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000bc000000140000000600000010
+004001f00a4001c00b6000c00b10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff
+0d400060280000001c000000060000000100ecffaf00ecffbc00faffbc00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffffff
+ffffffffffbe000000160000000600000010004001f00a4001c00b6000c00b10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+00000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000
+000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a015ed721883a6c2e7648991a2408654501705ae102b85ae102245736019c58530bb45ae102969619018ce3c577cf80172646e0c5779401300b0000300bf4a3d003c05ae10261001c01b7ae0000d45ae102188d1701
+403f0a3d48991a246200fc00b7ae000037bb4000403f0a3d70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0be8911a24f0374b0b00000000a05ae10200000500005de102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19b6ae00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26685be1021c0302005cfb8d01b2f3b1001c030200745be1
+026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000ac0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305ca6000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+000054000000180100000600000004000000ad0000000f0000000100000000400d4200040dc206000000fcffffff220000004c000000000000000000000000000000ffffffffffffffff90000000730064002000470065007400740069006e00670020007400680065002000560065007200730069006f006e00200069006e0066006f0072006d006100740069006f006e00060000000600000003000000080000000600000003
+000000030000000300000006000000060000000300000003000000060000000600000003000000070000000600000004000000060000000300000006000000060000000300000003000000060000000300000006000000040000000900000006000000030000000300000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000
+000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000084c20000c8c10a4000c01c00000010000000c0bfc0ff0100000054009aff68003100280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000002400000024000000000080
+3d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c0000007a0000004d000000050000002001c0012001d004a007d004a007c0012001c001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000
+8041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000054009aff680031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002
+00000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000009100000064000000040000002001d004a007d004a007c0012001c001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000a2420000c6c20000d04200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000051009dff68003100250000
+000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f00000019000000440000004a000000050000000f0019000f004a0044004a00440019000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fcf2e200000000002500
+00000c00000002000000250000000c0000000800008056000000300000004400000019000000450000004a000000050000004400190044004a0045004a004500190044001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c0000000800008056000000300000004500000019
+000000470000004a000000050000004500190045004a0047004a004700190045001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000250000000c0000000800008056000000300000004700000019000000480000004a000000050000004700190047004a0048004a004800190047001900
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df0000000000250000000c00000002000000250000000c0000000800008056000000300000004800000019000000490000004a000000050000004800190048004a0049004a004900190048001900250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000faefde0000000000250000000c00000002000000250000000c00000008000080560000003000000049000000190000004b0000004a000000050000004900190049004a004b004a004b00190049001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c0000000200
+0000250000000c0000000800008056000000300000004b000000190000004c0000004a000000050000004b0019004b004a004c004a004c0019004b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000004c000000190000004d0000004a
+000000050000004c0019004c004a004d004a004d0019004c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000004d000000190000004e0000004a000000050000004d0019004d004a004e004a004e0019004d001900250000000c000000
+08000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000004e000000190000004f0000004a000000050000004e0019004e004a004f004a004f0019004e001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000
+000200000000000000f7ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000004f00000019000000500000004a000000050000004f0019004f004a0050004a00500019004f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c00
+00000800008056000000300000005000000019000000510000004a000000050000005000190050004a0051004a005100190050001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c0000000800008056000000300000005100000019000000520000004a0000000500000051
+00190051004a0052004a005200190051001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c0000000800008056000000300000005200000019000000540000004a000000050000005200190052004a0054004a005400190052001900250000000c0000000800008025000000
+0c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c0000000800008056000000300000005400000019000000550000004a000000050000005400190054004a0055004a005500190054001900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000000000
+00f5e9d60000000000250000000c00000002000000250000000c0000000800008056000000300000005500000019000000560000004a000000050000005500190055004a0056004a005600190055001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c000000080000805600
+0000300000005600000019000000580000004a000000050000005600190056004a0058004a005800190056001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000005800000019000000590000004a000000050000005800190058004a0059
+004a005900190058001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c00000008000080560000003000000059000000190000005a0000004a000000050000005900190059004a005a004a005a00190059001900250000000c00000008000080250000000c00000000000080
+280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c0000000800008056000000300000005a000000190000005b0000004a000000050000005a0019005a004a005b004a005b0019005a001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d200000000
+00250000000c00000002000000250000000c0000000800008056000000300000005b000000190000005c0000004a000000050000005b0019005b004a005c004a005c0019005b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c0000000800008056000000300000005c00
+0000190000005d0000004a000000050000005c0019005c004a005d004a005d0019005c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c0000000800008056000000300000005d000000190000005e0000004a000000050000005d0019005d004a005e004a005e0019005d
+001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000005e000000190000005f0000004a000000050000005e0019005e004a005f004a005f0019005e001900250000000c00000008000080250000000c00000000000080280000000c000000
+0200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c0000000800008056000000300000005f00000019000000600000004a000000050000005f0019005f004a0060004a00600019005f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c0000
+0002000000250000000c0000000800008056000000300000006000000019000000610000004a000000050000006000190060004a0061004a006100190060001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c00000008000080560000003000000061000000190000006200
+00004a000000050000006100190061004a0062004a006200190061001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c0000000800008056000000300000006200000019000000630000004a000000050000006200190062004a0063004a006300190062001900250000000c
+00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c0000000800008056000000300000006300000019000000650000004a000000050000006300190063004a0065004a006500190063001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000
+180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c0000000800008056000000300000006500000019000000660000004a000000050000006500190065004a0066004a006600190065001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000
+000c0000000800008056000000300000006600000019000000670000004a000000050000006600190066004a0067004a006700190066001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000006700000019000000690000004a0000000500
+00006700190067004a0069004a006900190067001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec80000000000250000000c00000002000000250000000c00000008000080560000003000000069000000190000006a0000004a000000050000006900190069004a006a004a006a00190069001900250000000c0000000800008025
+0000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c0000000800008056000000300000006a000000190000006b0000004a000000050000006a0019006a004a006b004a006b0019006a001900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000
+00000000edddc60000000000250000000c00000002000000250000000c0000000800008056000000300000006b000000190000006c0000004a000000050000006b0019006b004a006c004a006c0019006b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecddc60000000000250000000c00000002000000250000000c000000080000
+8056000000300000006c000000190000006d0000004a000000050000006c0019006c004a006d004a006d0019006c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c0000000800008056000000300000006d000000190000006f0000004a000000050000006d0019006d00
+4a006f004a006f0019006d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000006f00000019000000700000004a000000050000006f0019006f004a0070004a00700019006f001900250000000c00000008000080250000000c00000000
+000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c0000000800008056000000300000007000000019000000720000004a000000050000007000190070004a0072004a007200190070001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c200
+00000000250000000c00000002000000250000000c0000000800008056000000300000007200000019000000730000004a000000050000007200190072004a0073004a007300190072001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c0000000800008056000000300000
+007300000019000000740000004a000000050000007300190073004a0074004a007400190073001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c0000000800008056000000300000007400000019000000760000004a000000050000007400190074004a0076004a007600
+190074001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7bf0000000000250000000c00000002000000250000000c0000000800008056000000300000007600000019000000770000004a000000050000007600190076004a0077004a007700190076001900250000000c00000008000080250000000c00000000000080280000000c
+00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000051009dff680031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+38000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000f8ffffff020000008e0000006100000004000000f000a0047007a00470079001f0009001250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000e1021058e102245736019c58530b0c58e10296961901753f0a9e9c58530bb296190100000000d8911a248ce3c5777b83172646e0c5779401300b0000300b188d1701753f0a9e5600d800b9ae0000bc58e10237bb4000753f0a9ed8911a245700fa00b9ae00008882dd19345de10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0bd8911a24f0374b0b
+000000000c58e10200000000a859e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000d0911a24d458e10223e0c577d8911a243a6c2e7608654501d0911a24e858e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000053000000cbffffffb800000099ffffff4b000000100000
+0000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000053000000cbffffffb8000000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000d0000000110000001c00000075000000280000000100000000400d4200040dc253000000cbffffff160000004c000000000000000000000000000000ffffffffffffffff78000000540072006100660066006900630049006e0063006900640065006e007400730043006c00690065006e0074000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000
+06000000060000000600000003000000040000000700000003000000030000000600000006000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000005401000048010000454d462b0840000234000000280000000210c0db000000008800000000000000000080
+3f02000000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e0000000040000085009cff850095ff850091ff85008aff850086ff85007fff85007bff850074ff850070ff850069ff850065ff85005eff85005aff850053ff85004fff850048ff850044ff85003dff850039ff850032ff85002eff850027ff850023ff85001cff850018ff850011ff85000dff850006ff850002ff8500fbfe8500
+f7fe8500f0fe8500ecfe8500e5fe8500e1fe8500dafe8500d6fe8500cffe8500cbfe8500c4fe8500c0fe8500b9fe8500b5fe8500aefe8500aafe8500a6fe000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000
+0000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003401000041000000490000004500000043010000170000002e000000020000000200000002000000
+02000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000003004b00430042005300460053004d00530041006300480063004c00630043007300470073004e00730042008300490083004d00830044009300480093004f0093004300a3004a00a3004e00a3004500b3004900b300400
+0c3004400c3004b00c3004f00c3004600d3004a00d3004100e3004500e3004c00e3004000f3004700f3004b00f30042010300460103004d01030041011300480113004c01130043012300470123004e01230042013300490133004d01330041014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300
+0000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000008000b6fe0900bd00280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c0000000800008056000000300000003e00000074000000470000003101000005
+000000e0034007e00310137004101370044007e0034007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000
+010000008000b6fe0900bd003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000270000005d0000005e00000048010000040000
+00e00310137004101370044007e0034007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d7009aff65003100280000000c0000000100000024000000240000000000
+803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000950000001c000000fa0000004d000000050000005009c0015009d004a00fd004a00fc0015009c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d7009aff650031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+0300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000007e000000050000001101000064000000040000005009d004a00fd004a00fc0015009c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000054430000c6c20000ca4200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d4009dff650031002500
+00000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c0000000800008056000000300000009200000019000000c60000004a000000050000009200190092004a00c6004a00c600190092001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fcf1e2000000000025
+0000000c00000003000000250000000c000000080000805600000030000000c600000019000000c70000004a00000005000000c6001900c6004a00c7004a00c7001900c6001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c000000080000805600000030000000c7000000
+19000000c80000004a00000005000000c7001900c7004a00c8004a00c8001900c7001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c000000080000805600000030000000c800000019000000c90000004a00000005000000c8001900c8004a00c9004a00c9001900c80019
+00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0df0000000000250000000c00000003000000250000000c000000080000805600000030000000c900000019000000ca0000004a00000005000000c9001900c9004a00ca004a00ca001900c9001900250000000c00000008000080250000000c00000000000080280000000c0000000300
+000027000000180000000300000000000000faefdf0000000000250000000c00000003000000250000000c000000080000805600000030000000ca00000019000000cb0000004a00000005000000ca001900ca004a00cb004a00cb001900ca001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefde0000000000250000000c00000003
+000000250000000c000000080000805600000030000000cb00000019000000cc0000004a00000005000000cb001900cb004a00cc004a00cc001900cb001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c000000080000805600000030000000cc00000019000000ce000000
+4a00000005000000cc001900cc004a00ce004a00ce001900cc001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c000000080000805600000030000000ce00000019000000cf0000004a00000005000000ce001900ce004a00cf004a00cf001900ce001900250000000c0000
+0008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c00000003000000250000000c000000080000805600000030000000cf00000019000000d10000004a00000005000000cf001900cf004a00d1004a00d1001900cf001900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800
+00000300000000000000f7ebda0000000000250000000c00000003000000250000000c000000080000805600000030000000d100000019000000d20000004a00000005000000d1001900d1004a00d2004a00d2001900d1001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebd90000000000250000000c00000003000000250000000c
+000000080000805600000030000000d200000019000000d30000004a00000005000000d2001900d2004a00d3004a00d3001900d2001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead90000000000250000000c00000003000000250000000c000000080000805600000030000000d300000019000000d40000004a00000005000000
+d3001900d3004a00d4004a00d4001900d3001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c000000080000805600000030000000d400000019000000d50000004a00000005000000d4001900d4004a00d5004a00d5001900d4001900250000000c00000008000080250000
+000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c000000080000805600000030000000d500000019000000d60000004a00000005000000d5001900d5004a00d6004a00d6001900d5001900250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000030000000000
+0000f5e9d60000000000250000000c00000003000000250000000c000000080000805600000030000000d600000019000000d70000004a00000005000000d6001900d6004a00d7004a00d7001900d6001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c0000000800008056
+00000030000000d700000019000000d90000004a00000005000000d7001900d7004a00d9004a00d9001900d7001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c000000080000805600000030000000d900000019000000da0000004a00000005000000d9001900d9004a00
+da004a00da001900d9001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000250000000c00000003000000250000000c000000080000805600000030000000da00000019000000db0000004a00000005000000da001900da004a00db004a00db001900da001900250000000c00000008000080250000000c000000000000
+80280000000c0000000300000027000000180000000300000000000000f3e6d30000000000250000000c00000003000000250000000c000000080000805600000030000000db00000019000000dc0000004a00000005000000db001900db004a00dc004a00dc001900db001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d2000000
+0000250000000c00000003000000250000000c000000080000805600000030000000dc00000019000000dd0000004a00000005000000dc001900dc004a00dd004a00dd001900dc001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c000000080000805600000030000000dd
+00000019000000df0000004a00000005000000dd001900dd004a00df004a00df001900dd001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e4d00000000000250000000c00000003000000250000000c000000080000805600000030000000df00000019000000e00000004a00000005000000df001900df004a00e0004a00e0001900
+df001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c00000003000000250000000c000000080000805600000030000000e000000019000000e10000004a00000005000000e0001900e0004a00e1004a00e1001900e0001900250000000c00000008000080250000000c00000000000080280000000c0000
+000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c000000080000805600000030000000e100000019000000e20000004a00000005000000e1001900e1004a00e2004a00e2001900e1001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e2ce0000000000250000000c00
+000003000000250000000c000000080000805600000030000000e200000019000000e30000004a00000005000000e2001900e2004a00e3004a00e3001900e2001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e2cd0000000000250000000c00000003000000250000000c000000080000805600000030000000e300000019000000e4
+0000004a00000005000000e3001900e3004a00e4004a00e4001900e3001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c000000080000805600000030000000e400000019000000e50000004a00000005000000e4001900e4004a00e5004a00e5001900e400190025000000
+0c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cb0000000000250000000c00000003000000250000000c000000080000805600000030000000e500000019000000e60000004a00000005000000e5001900e5004a00e6004a00e6001900e5001900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000
+00180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c000000080000805600000030000000e600000019000000e80000004a00000005000000e6001900e6004a00e8004a00e8001900e6001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc90000000000250000000c000000030000002500
+00000c000000080000805600000030000000e800000019000000e90000004a00000005000000e8001900e8004a00e9004a00e9001900e8001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c000000080000805600000030000000e900000019000000ea0000004a00000005
+000000e9001900e9004a00ea004a00ea001900e9001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c000000080000805600000030000000ea00000019000000ec0000004a00000005000000ea001900ea004a00ec004a00ec001900ea001900250000000c00000008000080
+250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecddc60000000000250000000c00000003000000250000000c000000080000805600000030000000ec00000019000000ed0000004a00000005000000ec001900ec004a00ed004a00ed001900ec001900250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000030000
+0000000000ecdcc50000000000250000000c00000003000000250000000c000000080000805600000030000000ed00000019000000ef0000004a00000005000000ed001900ed004a00ef004a00ef001900ed001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800
+00805600000030000000ef00000019000000f00000004a00000005000000ef001900ef004a00f0004a00f0001900ef001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c000000080000805600000030000000f000000019000000f20000004a00000005000000f0001900f0
+004a00f2004a00f2001900f0001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c000000080000805600000030000000f200000019000000f30000004a00000005000000f2001900f2004a00f3004a00f3001900f2001900250000000c00000008000080250000000c000000
+00000080280000000c0000000300000027000000180000000300000000000000ead9c10000000000250000000c00000003000000250000000c000000080000805600000030000000f300000019000000f40000004a00000005000000f3001900f3004a00f4004a00f4001900f3001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8c0
+0000000000250000000c00000003000000250000000c000000080000805600000030000000f400000019000000f60000004a00000005000000f4001900f4004a00f6004a00f6001900f4001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c00000008000080560000003000
+0000f600000019000000f70000004a00000005000000f6001900f6004a00f7004a00f7001900f6001900250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b40004018
+0000000c00000001000000d4009dff650031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000007b000000020000000e010000
+61000000040000002009a004700fa004700f900120099001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+0000000000001e00000018000000d6000000cbffffff3801000099ffffff4b0000001000000000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000d6000000cbffffff38010000a1ffffff160000000c00000001000000
+120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000cc000000940000001c000000f5000000280000000100000000400d4200040dc2d6000000cbffffff150000004c000000000000000000000000000000ffffffffffffffff78000000540072006100660066006900630049006e0063006900640065006e0074007300500072006f0078007900b60a07000000030000
+00060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000007000000030000000600000005000000050000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000005401000048010000454d
+462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e0000000040000007019cff070195ff070191ff07018aff070186ff07017fff07017bff070174ff070170ff070169ff070165ff07015eff07015aff070153ff07014fff070148ff070144ff07013dff070139ff070132ff07012eff070127ff07
+0123ff07011cff070118ff070111ff07010dff070106ff070102ff0701fbfe0701f7fe0701f0fe0701ecfe0701e5fe0701e1fe0701dafe0701d6fe0701cffe0701cbfe0701c4fe0701c0fe0701b9fe0701b5fe0701aefe0701aafe0701a6fe000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000
+620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000034010000c30000
+0049000000c700000043010000170000002e0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000500cb004500c2005500c6005500cd005500c1006500c8006500cc006500c3007500c7007500ce007500c2008500c9008500cd008500c
+4009500c8009500cf009500c300a500ca00a500ce00a500c500b500c900b500c000c500c400c500cb00c500cf00c500c600d500ca00d500c100e500c500e500cc00e500c000f500c700f500cb00f500c2010500c6010500cd010500c1011500c8011500cc011500c3012500c7012500ce012500c2013500c9013500cd013500c1014250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000000201b6fe0900bd00280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c0000000100000025000000
+0c000000080000805600000030000000c000000074000000c90000003101000005000000000c4007000c1013900c1013900c4007000c4007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000
+0001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000201b6fe0900bd003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00
+000005000080560000002c000000a90000005d000000e00000004801000004000000000c1013900c1013900c4007000c4007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01
+00000058019aff77003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000160100001c0000008d0100004d000000050000006011c0016011d004d018d004d018c0016011c001250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000058019aff770031003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000ff00000005000000a401000064000000040000006011d004d018d004d018c0016011c001250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080aa430000c6c20000ee4200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbe
+d7e8ff0a4000401c00000010000000020000000100000055019dff77003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c0000000800008056000000300000001301000019000000500100004a000000050000001301190013014a0050014a005001190013011900250000000c00000008000080250000000c0000000000008028000000
+0c0000000300000027000000180000000300000000000000fcf1e20000000000250000000c00000003000000250000000c0000000800008056000000300000005001000019000000510100004a000000050000005001190050014a0051014a005101190050011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000
+000c00000003000000250000000c0000000800008056000000300000005101000019000000530100004a000000050000005101190051014a0053014a005301190051011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c000000080000805600000030000000530100001900
+0000540100004a000000050000005301190053014a0054014a005401190053011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0df0000000000250000000c00000003000000250000000c0000000800008056000000300000005401000019000000550100004a000000050000005401190054014a0055014a00550119005401190025
+0000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefdf0000000000250000000c00000003000000250000000c0000000800008056000000300000005501000019000000560100004a000000050000005501190055014a0056014a005601190055011900250000000c00000008000080250000000c00000000000080280000000c00000003000000
+27000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c0000000800008056000000300000005601000019000000570100004a000000050000005601190056014a0057014a005701190056011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faeedd0000000000250000000c000000030000
+00250000000c0000000800008056000000300000005701000019000000580100004a000000050000005701190057014a0058014a005801190057011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c0000000800008056000000300000005801000019000000590100004a00
+0000050000005801190058014a0059014a005901190058011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eddc0000000000250000000c00000003000000250000000c00000008000080560000003000000059010000190000005a0100004a000000050000005901190059014a005a014a005a01190059011900250000000c00000008
+000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000005a010000190000005b0100004a000000050000005a0119005a014a005b014a005b0119005a011900250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000
+0300000000000000f8ecdb0000000000250000000c00000003000000250000000c0000000800008056000000300000005b010000190000005d0100004a000000050000005b0119005b014a005d014a005d0119005b011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c0000
+000800008056000000300000005d010000190000005f0100004a000000050000005d0119005d014a005f014a005f0119005d011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c00000003000000250000000c0000000800008056000000300000005f01000019000000600100004a000000050000005f01
+19005f014a0060014a00600119005f011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c0000000800008056000000300000006001000019000000620100004a000000050000006001190060014a0062014a006201190060011900250000000c00000008000080250000000c
+00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c0000000800008056000000300000006201000019000000630100004a000000050000006201190062014a0063014a006301190062011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000
+f5e9d60000000000250000000c00000003000000250000000c0000000800008056000000300000006301000019000000640100004a000000050000006301190063014a0064014a006401190063011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d60000000000250000000c00000003000000250000000c00000008000080560000
+00300000006401000019000000650100004a000000050000006401190064014a0065014a006501190064011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c0000000800008056000000300000006501000019000000660100004a000000050000006501190065014a006601
+4a006601190065011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d40000000000250000000c00000003000000250000000c0000000800008056000000300000006601000019000000670100004a000000050000006601190066014a0067014a006701190066011900250000000c00000008000080250000000c0000000000008028
+0000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c0000000800008056000000300000006701000019000000680100004a000000050000006701190067014a0068014a006801190067011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000
+250000000c00000003000000250000000c0000000800008056000000300000006801000019000000690100004a000000050000006801190068014a0069014a006901190068011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d30000000000250000000c00000003000000250000000c000000080000805600000030000000690100
+00190000006a0100004a000000050000006901190069014a006a014a006a01190069011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c0000000800008056000000300000006a010000190000006c0100004a000000050000006a0119006a014a006c014a006c0119006a01
+1900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c0000000800008056000000300000006c010000190000006e0100004a000000050000006c0119006c014a006e014a006e0119006c011900250000000c00000008000080250000000c00000000000080280000000c00000003
+00000027000000180000000300000000000000f2e4d00000000000250000000c00000003000000250000000c0000000800008056000000300000006e010000190000006f0100004a000000050000006e0119006e014a006f014a006f0119006e011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c000000
+03000000250000000c0000000800008056000000300000006f01000019000000700100004a000000050000006f0119006f014a0070014a00700119006f011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c0000000800008056000000300000007001000019000000710100
+004a000000050000007001190070014a0071014a007101190070011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e2ce0000000000250000000c00000003000000250000000c0000000800008056000000300000007101000019000000720100004a000000050000007101190071014a0072014a007201190071011900250000000c00
+000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e2cd0000000000250000000c00000003000000250000000c0000000800008056000000300000007201000019000000730100004a000000050000007201190072014a0073014a007301190072011900250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018
+0000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c0000000800008056000000300000007301000019000000750100004a000000050000007301190073014a0075014a007501190073011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0cb0000000000250000000c0000000300000025000000
+0c0000000800008056000000300000007501000019000000760100004a000000050000007501190075014a0076014a007601190075011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c0000000800008056000000300000007601000019000000780100004a000000050000
+007601190076014a0078014a007801190076011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc90000000000250000000c00000003000000250000000c0000000800008056000000300000007801000019000000790100004a000000050000007801190078014a0079014a007901190078011900250000000c000000080000802500
+00000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c00000008000080560000003000000079010000190000007a0100004a000000050000007901190079014a007a014a007a01190079011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000
+000000eddec80000000000250000000c00000003000000250000000c0000000800008056000000300000007a010000190000007b0100004a000000050000007a0119007a014a007b014a007b0119007a011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c00000008000080
+56000000300000007b010000190000007d0100004a000000050000007b0119007b014a007d014a007d0119007b011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c0000000800008056000000300000007d010000190000007e0100004a000000050000007d0119007d014a
+007e014a007e0119007d011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc50000000000250000000c00000003000000250000000c0000000800008056000000300000007e01000019000000800100004a000000050000007e0119007e014a0080014a00800119007e011900250000000c00000008000080250000000c0000000000
+0080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000008001000019000000810100004a000000050000008001190080014a0081014a008101190080011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdbc40000
+000000250000000c00000003000000250000000c0000000800008056000000300000008101000019000000820100004a000000050000008101190081014a0082014a008201190081011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c000000080000805600000030000000
+8201000019000000840100004a000000050000008201190082014a0084014a008401190082011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c0000000800008056000000300000008401000019000000850100004a000000050000008401190084014a0085014a00850119
+0084011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c10000000000250000000c00000003000000250000000c0000000800008056000000300000008501000019000000870100004a000000050000008501190085014a0087014a008701190085011900250000000c00000008000080250000000c00000000000080280000000c00
+00000300000027000000180000000300000000000000e9d8c00000000000250000000c00000003000000250000000c0000000800008056000000300000008701000019000000880100004a000000050000008701190087014a0088014a008801190087011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8bf0000000000250000000c
+00000003000000250000000c0000000800008056000000300000008801000019000000890100004a000000050000008801190088014a0089014a008901190088011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c0000000800008056000000300000008901000019000000
+8a0100004a000000050000008901190089014a008a014a008a01190089011900250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000
+0055019dff770031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000fc00000002000000a101000061000000040000003011
+a004a018a004a018900130119001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000
+1800000057010000cbffffffcb01000099ffffff4b0000001000000000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000057010000cbffffffcb010000a1ffffff160000000c00000001000000120000000c0000000100
+00001b000000100000000000000000000000160000000c0000000000000054000000d8000000180100001c00000085010000280000000100000000400d4200040dc25a010000cbffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e0074007300410064006100700074006f007200000007000000030000000600000003
+000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000600000006000000060000000300000006000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000005401000048010000
+454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e0000000040000091019cff910195ff910191ff91018aff910186ff91017fff91017bff910174ff910170ff910169ff910165ff91015eff91015aff910153ff91014fff910148ff910144ff91013dff910139ff910132ff91012eff910127
+ff910123ff91011cff910118ff910111ff91010dff910106ff910102ff9101fbfe9101f7fe9101f0fe9101ecfe9101e5fe9101e1fe9101dafe9101d6fe9101cffe9101cbfe9101c4fe9101c0fe9101b9fe9101b5fe9101aefe9101aafe9101a6fe00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000115400100100000000400000000000000210000000800
+0000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000340100004d
+010000490000005101000043010000170000002e0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000f014b004f0142005f0146005f014d005f0141006f0148006f014c006f0143007f0147007f014e007f0142008f0149008f014d008
+f0144009f0148009f014f009f014300af014a00af014e00af014500bf014900bf014000cf014400cf014b00cf014f00cf014600df014a00df014100ef014500ef014c00ef014000ff014700ff014b00ff0142010f0146010f014d010f0141011f0148011f014c011f0143012f0147012f014e012f0142013f0149013f014d013f0141014250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000008c01d9fe09007700280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c000000010000002500
+00000c0000000800008056000000300000004a01000097000000530100000e01000005000000a0147009a014e0103015e01030157009a0147009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01
+00000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008c01d9fe090077003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000000300000025000000
+0c00000005000080560000002c00000033010000800000006a0100002501000004000000a014e0103015e01030157009a0147009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0
+ff010000000b029aff76003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000c90100001c0000003f0200004d00000005000000901cc001901cd004f023d004f023c001901cc001250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000b029aff760031003a0000000c0000000a000000240000002400000000
+00803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000b201000005000000560200006400000004000000901cd004f023d004f023c001901cc001250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000002440000c6c20000ec4200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fc
+ffbed7e8ff0a4000401c00000010000000020000000100000008029dff76003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c000000080000805600000030000000c601000019000000020200004a00000005000000c6011900c6014a0002024a0002021900c6011900250000000c00000008000080250000000c000000000000802800
+00000c0000000300000027000000180000000300000000000000fcf2e20000000000250000000c00000003000000250000000c0000000800008056000000300000000202000019000000030200004a000000050000000202190002024a0003024a000302190002021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e2000000000025
+0000000c00000003000000250000000c0000000800008056000000300000000302000019000000040200004a000000050000000302190003024a0004024a000402190003021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c00000008000080560000003000000004020000
+19000000050200004a000000050000000402190004024a0005024a000502190004021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c0000000800008056000000300000000502000019000000070200004a000000050000000502190005024a0007024a0007021900050219
+00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faf0df0000000000250000000c00000003000000250000000c0000000800008056000000300000000702000019000000080200004a000000050000000702190007024a0008024a000802190007021900250000000c00000008000080250000000c00000000000080280000000c0000000300
+000027000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c00000008000080560000003000000008020000190000000a0200004a000000050000000802190008024a000a024a000a02190008021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003
+000000250000000c0000000800008056000000300000000a020000190000000c0200004a000000050000000a0219000a024a000c024a000c0219000a021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000000c020000190000000d020000
+4a000000050000000c0219000c024a000d024a000d0219000c021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000000d020000190000000e0200004a000000050000000d0219000d024a000e024a000e0219000d021900250000000c0000
+0008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c00000003000000250000000c0000000800008056000000300000000e020000190000000f0200004a000000050000000e0219000e024a000f024a000f0219000e021900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800
+00000300000000000000f7ebda0000000000250000000c00000003000000250000000c0000000800008056000000300000000f02000019000000110200004a000000050000000f0219000f024a0011024a00110219000f021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c00000003000000250000000c
+0000000800008056000000300000001102000019000000120200004a000000050000001102190011024a0012024a001202190011021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c0000000800008056000000300000001202000019000000140200004a00000005000000
+1202190012024a0014024a001402190012021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c0000000800008056000000300000001402000019000000150200004a000000050000001402190014024a0015024a001502190014021900250000000c00000008000080250000
+000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d60000000000250000000c00000003000000250000000c0000000800008056000000300000001502000019000000160200004a000000050000001502190015024a0016024a001602190015021900250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000030000000000
+0000f5e8d60000000000250000000c00000003000000250000000c0000000800008056000000300000001602000019000000170200004a000000050000001602190016024a0017024a001702190016021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c0000000800008056
+000000300000001702000019000000190200004a000000050000001702190017024a0019024a001902190017021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c00000008000080560000003000000019020000190000001a0200004a000000050000001902190019024a00
+1a024a001a02190019021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000250000000c00000003000000250000000c0000000800008056000000300000001a020000190000001b0200004a000000050000001a0219001a024a001b024a001b0219001a021900250000000c00000008000080250000000c000000000000
+80280000000c0000000300000027000000180000000300000000000000f3e6d30000000000250000000c00000003000000250000000c0000000800008056000000300000001b020000190000001c0200004a000000050000001b0219001b024a001c024a001c0219001b021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d2000000
+0000250000000c00000003000000250000000c0000000800008056000000300000001c020000190000001e0200004a000000050000001c0219001c024a001e024a001e0219001c021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c0000000800008056000000300000001e
+02000019000000200200004a000000050000001e0219001e024a0020024a00200219001e021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e4d00000000000250000000c00000003000000250000000c0000000800008056000000300000002002000019000000210200004a000000050000002002190020024a0021024a0021021900
+20021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c00000003000000250000000c0000000800008056000000300000002102000019000000220200004a000000050000002102190021024a0022024a002202190021021900250000000c00000008000080250000000c00000000000080280000000c0000
+000300000027000000180000000300000000000000f1e3cf0000000000250000000c00000003000000250000000c0000000800008056000000300000002202000019000000230200004a000000050000002202190022024a0023024a002302190022021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00
+000003000000250000000c0000000800008056000000300000002302000019000000240200004a000000050000002302190023024a0024024a002402190023021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e2cd0000000000250000000c00000003000000250000000c000000080000805600000030000000240200001900000025
+0200004a000000050000002402190024024a0025024a002502190024021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cd0000000000250000000c00000003000000250000000c0000000800008056000000300000002502000019000000260200004a000000050000002502190025024a0026024a00260219002502190025000000
+0c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c0000000800008056000000300000002602000019000000270200004a000000050000002602190026024a0027024a002702190026021900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000
+00180000000300000000000000f0e1cb0000000000250000000c00000003000000250000000c0000000800008056000000300000002702000019000000280200004a000000050000002702190027024a0028024a002802190027021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0cb0000000000250000000c000000030000002500
+00000c0000000800008056000000300000002802000019000000290200004a000000050000002802190028024a0029024a002902190028021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c00000008000080560000003000000029020000190000002a0200004a00000005
+0000002902190029024a002a024a002a02190029021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc90000000000250000000c00000003000000250000000c0000000800008056000000300000002a020000190000002c0200004a000000050000002a0219002a024a002c024a002c0219002a021900250000000c00000008000080
+250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c0000000800008056000000300000002c020000190000002d0200004a000000050000002c0219002c024a002d024a002d0219002c021900250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000030000
+0000000000eddec70000000000250000000c00000003000000250000000c0000000800008056000000300000002d020000190000002f0200004a000000050000002d0219002d024a002f024a002f0219002d021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c0000000800
+008056000000300000002f02000019000000300200004a000000050000002f0219002f024a0030024a00300219002f021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecddc60000000000250000000c00000003000000250000000c0000000800008056000000300000003002000019000000310200004a000000050000003002190030
+024a0031024a003102190030021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc50000000000250000000c00000003000000250000000c0000000800008056000000300000003102000019000000320200004a000000050000003102190031024a0032024a003202190031021900250000000c00000008000080250000000c000000
+00000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000003202000019000000330200004a000000050000003202190032024a0033024a003302190032021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdbc4
+0000000000250000000c00000003000000250000000c0000000800008056000000300000003302000019000000340200004a000000050000003302190033024a0034024a003402190033021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c00000008000080560000003000
+00003402000019000000360200004a000000050000003402190034024a0036024a003602190034021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c0000000800008056000000300000003602000019000000370200004a000000050000003602190036024a0037024a0037
+02190036021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c10000000000250000000c00000003000000250000000c0000000800008056000000300000003702000019000000390200004a000000050000003702190037024a0039024a003902190037021900250000000c00000008000080250000000c0000000000008028000000
+0c0000000300000027000000180000000300000000000000e9d8c00000000000250000000c00000003000000250000000c00000008000080560000003000000039020000190000003a0200004a000000050000003902190039024a003a024a003a02190039021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8bf0000000000250000
+000c00000003000000250000000c0000000800008056000000300000003a020000190000003b0200004a000000050000003a0219003a024a003b024a003b0219003a021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c0000000800008056000000300000003b0200001900
+00003c0200004a000000050000003b0219003b024a003c024a003c0219003b021900250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001
+00000008029dff760031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000af01000002000000530200006100000004000000
+601ca004c023a004c0239001601c9001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00
+0000180000000a020000cbffffff7d02000099ffffff4b0000001000000000000000050000000a0000001000000042000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000000a020000cbffffff7d020000a1ffffff160000000c00000001000000120000000c000000
+010000001b000000100000000000000000000000160000000c0000000000000054000000d8000000cc0100001c00000037020000280000000100000000400d4200040dc20e020000cbffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e0074007300530065007200760069006300650000000700000003000000060000
+0003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000600000003000000050000000300000005000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000042000000e7ffffff0c00000010000000000000000000000046000000540100004801
+0000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e0000000040000043029cff430295ff430291ff43028aff430286ff43027fff43027bff430274ff430270ff430269ff430265ff43025eff43025aff430253ff43024fff430248ff430244ff43023dff430239ff430232ff43022eff43
+0227ff430223ff43021cff430218ff430211ff43020dff430206ff430202ff4302fbfe4302f7fe4302f0fe4302ecfe4302e5fe4302e1fe4302dafe4302d6fe4302cffe4302cbfe4302c4fe4302c0fe4302b9fe4302b5fe4302aefe4302aafe4302a6fe0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000021000000
+08000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000340100
+00ff010000490000000302000043010000170000002e00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000001020b00410202005102060051020d00510201006102080061020c00610203007102070071020e00710202008102090081020
+d00810204009102080091020f0091020300a1020a00a1020e00a1020500b1020900b1020000c1020400c1020b00c1020f00c1020600d1020a00d1020100e1020500e1020c00e1020000f1020700f1020b00f10202010102060101020d01010201011102080111020c01110203012102070121020e01210202013102090131020d01310201014250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000003e02fcfe09003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000
+250000000c000000080000805600000030000000fc010000ba00000005020000eb00000005000000c01fa00bc01fb00e5020b00e5020a00bc01fa00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000000080
+3f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003e02fcfe090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000030000002500
+00000c00000005000080560000002c000000e5010000a30000001c0200000201000004000000c01fb00e5020b00e5020a00bc01fa00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a00000046000000780000006c000000454d462b08400002340000002800000002
+10c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008a0073ff020173ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201001000000000000000
+00000000000000000000000000000000250000000c00000003000000250000000c0000000500008057000000240000004600000072000000c2000000760000000200000080044007000c4007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000
+023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000020173fff60077ff020173fff6006fff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800
+000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000b20000006e000000c20000007a00000002000000040000000200000002000000000c4007400b0007000c4007400b8007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000041004c00000000000000000000000000000000000000fc07337600000000fc073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276c43f215f5600ca00f1ae0000103c210f1900b00175322f760100103c5700a400f1ae00008ce3c5773f8f172670374b0b9401300b08000000bc82e726000000001098bf2348004b0b5c014b0b288f1a24f0374b0b8ce3c577bc53e102f0ae
+0000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000d481e7265c014b0b103c210f753f0a9f3083e7265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000240100003300000062000000d80000006e0000000100000000400d4200040dc27500000085
+ffffff240000004c000000000000000000000000000000ffffffffffffffff94000000670065007400560065007200730069006f006e002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900060000000600000003000000070000000600000003000000040000000300000006000000060000000300000007000000030000000600000003000000
+0300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000a0000001000000042000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db00000000880000
+00000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000c0150ff8c0150ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805700000024000000c8000000950000004c0100009900000002000000a00c7009a0147009250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000008c0150ff800154ff8c0150ff80014cff000100011540010010000000040000000000000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000003c010000910000004c0100009d00000002000000040000000200000002000000a0147009e0133009a0147009e013b009250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000fc07337600000000fc073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276c43f215f5e00440107af0000103c210f1900b00175322f760100103c5f00f60007af00008ce3c5773f8f172670374b0b9401300b08000000
+a458ba26000000001098bf2348004b0b5c014b0bb8911a24f0374b0b8ce3c577bc53e10206af0000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000bc57ba265c014b0b103c210f753f0a9f1859ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000
+00c4000000dc000000820000003b0100008e0000000100000000400d4200040dc21e01000065ffffff140000004c000000000000000000000000000000ffffffffffffffff74000000670065007400560065007200730069006f006e002800560065007200730069006f006e002a002900060000000600000003000000070000000600000003000000040000000300000006000000060000000300000007000000060000000300
+00000400000003000000060000000600000004000000030000000a0000001000000042000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000096012dff3e
+022dff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000002010010000000000000000000000000000000000000000000000025000000
+0c00000003000000250000000c00000005000080570000002400000052010000b8000000fe010000bc000000020000004015a00bc01fa00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e0000
+00000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000003e022dff320231ff3e022dff320229ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000001001001000
+00000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000ee010000b4000000fe010000c000000002000000040000000200000002000000c01fa00b001f600bc01fa00b001fe00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000beffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000
+000000000000000000fc07337600000000fc073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276c43f215f660012011daf0000103c210f1900b00175322f760100103c6700b0011daf00008ce3c5773f8f172670374b0b9401300b08000000bc79ba26000000001098bf2348004b0b5c014b0b88971a24f0374b0b8ce3c577bc53e1021caf0000b455e102f571ca7793093353feffffff8ce3
+c577f2e0c57746e0c57700000000d478ba265c014b0b103c210f753f0a9f307aba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000002401000056010000a4000000fb010000b00000000100000000400d4200040dc29801000043ffffff240000004c000000000000000000000000
+000000ffffffffffffffff94000000670065007400560065007200730069006f006e002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e006500720029000600000006000000030000000700000006000000030000000400000003000000060000000600000003000000070000000300000006000000030000000300000003000000050000000300000006000000
+050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000a0000001000000042000000e7ffffff0c000000100000000000000000000000280000000c00000003000000460000000c01000000010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0
+db00000000000000ff08400103b8000000ac0000000210c0db20000000004000003e020aff37020aff33020aff2c020aff28020aff21020aff1d020aff16020aff12020aff0b020aff07020aff00020afffc010afff5010afff1010affea010affe6010affdf010affdb010affd4010affd0010affc9010affc5010affbe010affba010affb3010affaf010affa8010affa4010aff9d010aff99010aff96010aff000100010001
+0001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000
+000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000e000000052010000db000000fe010000df000000100000002000000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c01fd00d501fd00d101fd00da01ed00d601ed00df01dd00db01dd00d401dd00d
+001dd00d901cd00d501cd00de01bd00da01bd00d301bd00df01ad00d801ad00d401ad00dd019d00d9019d00d2019d00de018d00d7018d00d3018d00dc017d00d8017d00d1017d00dd016d00d6016d00d2016d00db015d00d7015d00d4015d00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000
+0046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000096010affa2010eff96010affa20106ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003800000052010000d700000062010000e3000000020000000400000002000000020000004015d00d0016900d4015d00d0016100e250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000fc07337600000000fc073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276c43f215f6e00f80133af0000103c210f1900b00175322f760100103c6f00da0033af00008ce3c5773f8f172670374b0b9401300b08000000fcd1ba26000000001098bf2348004b0b5c01
+4b0bd8901a24f0374b0b8ce3c577bc53e10232af0000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000014d1ba265c014b0b103c210f753f0a9f70d2ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000dc0000006d010000cf000000e3010000db
+0000000100000000400d4200040dc2af01000018ffffff180000004c000000000000000000000000000000ffffffffffffffff7c000000670065007400560065007200730069006f006e005200650070006c0079002800560065007200730069006f006e00290006000000060000000300000007000000060000000300000004000000030000000600000006000000070000000600000006000000030000000500000003000000
+07000000060000000300000004000000030000000600000006000000030000000a0000001000000042000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db18000000004000
+008c01e7fe8501e7fe8101e7fe7a01e7fe7601e7fe6f01e7fe6b01e7fe6401e7fe6001e7fe5901e7fe5501e7fe4e01e7fe4a01e7fe4301e7fe3f01e7fe3801e7fe3401e7fe2d01e7fe2901e7fe2201e7fe1e01e7fe1701e7fe1301e7fe0c01e7fe000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000000100
+00000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000b0000000c8000000fe0000004c010000020100000c0000001800000002
+0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000a014001030140010f01300108013001040130010d01200109012001020120010e01100107011001030110010c01000108010001010100010d00f0010600f0010200f0010b00e0010700e0010000e0010c00d0010500d0010100d0010a00c0010250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000c01e7fe1801ebfe0c01e7fe1801e3fe000100
+011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000c8000000fa000000d80000000601000002000000040000000200
+000002000000a00c0010600dc00fa00c0010600d4010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000
+000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000fc07337600000000fc073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276c43f215f7600660149af0000103c210f1900b00175322f76010010
+3c7700a60049af00008ce3c5773f8f172670374b0b9401300b0800000004ddba26000000001098bf2348004b0b5c014b0b388f1a24f0374b0b8ce3c577bc53e10248af0000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000001cdcba265c014b0b103c210f753f0a9f78ddba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000647600080000
+0000250000000c00000003000000180000000c0000000000000054000000dc000000d0000000eb00000048010000f70000000100000000400d4200040dc212010000fcfeffff180000004c000000000000000000000000000000ffffffffffffffff7c000000470065007400560065007200730069006f006e005200650070006c0079002800560065007200730069006f006e0029000800000006000000030000000700000006
+000000030000000400000003000000060000000600000007000000060000000600000003000000050000000300000007000000060000000300000004000000030000000600000006000000030000000a0000001000000042000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000dc000000d0000000454d462b0840000234000000280000000210c0db000000008800000000000000
+0000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db16000000004000000201c4fefb00c4fef700c4fef000c4feec00c4fee500c4fee100c4feda00c4fed600c4fecf00c4fecb00c4fec400c4fec000c4feb900c4feb500c4feae00c4feaa00c4fea300c4fe9f00c4fe9800c4fe9400c4fe8d00c4fe00010001000100010001000100010001000100010001000115400100100000
+0004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00
+0000050000805a000000a40000004900000021010000c2000000250100000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000000c3012900b3012500b3012e00a3012a00a3012300a3012f00930128009301240093012d00830129008301220083012e00730127007301230073012c00630128006301210063012d00530126005301220053012b0
+043012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db
+04000000004000008a00c4fe9600c8fe8a00c4fe9600c0fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000
+00460000001d010000560000002901000002000000040000000200000002000000800430124005f0118004301240057012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000beffffffe7ffffff120000000c00000002000000190000000c000000ffffff005200000070
+01000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000fc07337600000000fc073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276
+c43f215f7e0010015faf0000103c210f1900b00175322f760100103c7f00ce015faf00008ce3c5773f8f172670374b0b9401300b08000000ecbbba26000000001098bf2348004b0b5c014b0b78981a24f0374b0b8ce3c577bc53e1025eaf0000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000004bbba265c014b0b103c210f753f0a9f60bcba265054e1022c55e1024856e102f571ca77930933
+53feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000dc000000490000000c010000bf000000180100000100000000400d4200040dc28b000000dbfeffff180000004c000000000000000000000000000000ffffffffffffffff7c000000670065007400560065007200730069006f006e005200650070006c0079002800560065007200
+730069006f006e0029000600000006000000030000000700000006000000030000000400000003000000060000000600000007000000060000000600000003000000050000000300000007000000060000000300000004000000030000000600000006000000030000000a0000001000000042000000e7ffffff0c000000100000000000000000000000280000000c00000003000000280000000c000000020000002100000008
+000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c0000006400000000000000000000004c0200006601000000000000000000004d020000670100002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000
+454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 13\hich\f3\dbch\f3\loch\f3\protect0 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_16B3ACB2_FBC4_4f30_BF24_7221ED9CDE79}{\*\bkmkend BKM_16B3ACB2_FBC4_4f30_BF24_7221ED9CDE79}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Interaction}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 Registering for and receiving updates}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD Diagram.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3 This diagram shows how a client registers for updates in the Traffic Incidents. When AFeed updates the incidents in the service, the service sends updates
+to the client.\ql\par
+The actual D-Bus messages are between the proxy and the adaptor. The diagram shows that the client calls the proxy with a callback interface (or function) for the updates. The proxy translates this to a listenerId on bus level.\lang3081\hich\f3\dbch\f3\loch\f3\par
+\lang3081\hich\f0\dbch\f0\loch\f0\cf0\fs24
+{\*\shppict{\pict\emfblip\picw26095\pich21435\picwgoal14790\pichgoal12150\picscalex63\picscaley63\sspicalign0 010000006c000000ffffffffffffffffed020000610200000000000000000000ef650000ba53000020454d46000001003c4d0100420c0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100a1fde202a1fde202ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffe40200006102000005000000100010001000f025202ef025202e100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffd000ecffdd00faffdd00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000dd0000001400000006000000
+10004001000d4001d00d6000d00d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffd000ecffdd00faffdd00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffdf000000160000000600000010004001000d4001d00d6000d00d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a015ed721883a6c2e7648931a2408654501705ae102b85ae102245736019c58530bb45ae102969619018ce3c577cf80172646e0c5779401300b0000300beda3d006c05ae1023c00180131b00000d45ae102188d17
+01d33e0a6d48931a243d00d60031b0000037bb4000d33e0a6d70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bb8901a24f0374b0b00000000a05ae10200000500005de102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1930b000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26685be1021c0302005cfb8d01b2f3b1001c030200745b
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000ce0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000c8000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+000000540000003c0100000600000004000000ce0000000f0000000100000000400d4200040dc206000000fcffffff280000004c000000000000000000000000000000ffffffffffffffff9c0000007300640020005200650067006900730074006500720069006e006700200066006f007200200061006e006400200072006500630065006900760069006e006700200075007000640061007400650073000600000006000000
+03000000070000000600000006000000030000000600000003000000060000000400000003000000060000000600000003000000030000000600000004000000030000000600000006000000060000000300000004000000060000000600000006000000030000000700000003000000060000000600000003000000060000000600000006000000060000000300000006000000060000001b0000001000000000000000000000
+00160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000aa420000b0c10a4000c01c00000010000000c0bfc0ff0100000009009aff68003100280000000c00000001000000210000000800
+0000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c0000000800008056000000300000005e0000001f000000c60000005000000005000000e005f001e0050005600c0005600cf001e005f001250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000009009aff680031003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000004700000008000000dd0000006700000004000000e0050005600c0005600cf001e005f001250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c0400000c6c20000d04200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2
+fcffbed7e8ff0a4000401c00000010000000020000000100000006009dff68003100250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000005b0000001c000000900000004d000000050000005b001c005b004d0090004d0090001c005b001c00250000000c00000008000080250000000c0000000000008028
+0000000c0000000200000027000000180000000200000000000000fcf2e20000000000250000000c00000002000000250000000c000000080000805600000030000000900000001c000000910000004d0000000500000090001c0090004d0091004d0091001c0090001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000
+250000000c00000002000000250000000c000000080000805600000030000000910000001c000000930000004d0000000500000091001c0091004d0093004d0093001c0091001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000250000000c000000080000805600000030000000930000
+001c000000940000004d0000000500000093001c0093004d0094004d0094001c0093001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000940000001c000000950000004d0000000500000094001c0094004d0095004d0095001c009400
+1c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faefde0000000000250000000c00000002000000250000000c000000080000805600000030000000950000001c000000970000004d0000000500000095001c0095004d0097004d0097001c0095001c00250000000c00000008000080250000000c00000000000080280000000c00000002
+00000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000970000001c000000980000004d0000000500000097001c0097004d0098004d0098001c0097001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eddc0000000000250000000c000000
+02000000250000000c000000080000805600000030000000980000001c000000990000004d0000000500000098001c0098004d0099004d0099001c0098001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000990000001c0000009a0000
+004d0000000500000099001c0099004d009a004d009a001c0099001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000009a0000001c0000009b0000004d000000050000009a001c009a004d009b004d009b001c009a001c00250000000c00
+000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000009b0000001c0000009c0000004d000000050000009b001c009b004d009c004d009c001c009b001c00250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018
+0000000200000000000000f7ebda0000000000250000000c00000002000000250000000c0000000800008056000000300000009c0000001c0000009d0000004d000000050000009c001c009c004d009d004d009d001c009c001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c0000000200000025000000
+0c0000000800008056000000300000009d0000001c0000009e0000004d000000050000009d001c009d004d009e004d009e001c009d001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c0000000800008056000000300000009e0000001c000000a00000004d000000050000
+009e001c009e004d00a0004d00a0001c009e001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c000000080000805600000030000000a00000001c000000a10000004d00000005000000a0001c00a0004d00a1004d00a1001c00a0001c00250000000c000000080000802500
+00000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000a10000001c000000a20000004d00000005000000a1001c00a1004d00a2004d00a2001c00a1001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000f5e8d50000000000250000000c00000002000000250000000c000000080000805600000030000000a20000001c000000a40000004d00000005000000a2001c00a2004d00a4004d00a4001c00a2001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c00000008000080
+5600000030000000a40000001c000000a50000004d00000005000000a4001c00a4004d00a5004d00a5001c00a4001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000a50000001c000000a60000004d00000005000000a5001c00a5004d
+00a6004d00a6001c00a5001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c000000080000805600000030000000a60000001c000000a70000004d00000005000000a6001c00a6004d00a7004d00a7001c00a6001c00250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c000000080000805600000030000000a70000001c000000a80000004d00000005000000a7001c00a7004d00a8004d00a8001c00a7001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000
+000000250000000c00000002000000250000000c000000080000805600000030000000a80000001c000000a90000004d00000005000000a8001c00a8004d00a9004d00a9001c00a8001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000805600000030000000
+a90000001c000000aa0000004d00000005000000a9001c00a9004d00aa004d00aa001c00a9001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c000000080000805600000030000000aa0000001c000000ab0000004d00000005000000aa001c00aa004d00ab004d00ab001c
+00aa001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c000000080000805600000030000000ab0000001c000000ac0000004d00000005000000ab001c00ab004d00ac004d00ac001c00ab001c00250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f1e3cf0000000000250000000c00000002000000250000000c000000080000805600000030000000ac0000001c000000ad0000004d00000005000000ac001c00ac004d00ad004d00ad001c00ac001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c
+00000002000000250000000c000000080000805600000030000000ad0000001c000000ae0000004d00000005000000ad001c00ad004d00ae004d00ae001c00ad001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c000000080000805600000030000000ae0000001c000000
+af0000004d00000005000000ae001c00ae004d00af004d00af001c00ae001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c000000080000805600000030000000af0000001c000000b10000004d00000005000000af001c00af004d00b1004d00b1001c00af001c00250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c000000080000805600000030000000b10000001c000000b20000004d00000005000000b1001c00b1004d00b2004d00b2001c00b1001c00250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c000000080000805600000030000000b20000001c000000b30000004d00000005000000b2001c00b2004d00b3004d00b3001c00b2001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c0000000200000025
+0000000c000000080000805600000030000000b30000001c000000b50000004d00000005000000b3001c00b3004d00b5004d00b5001c00b3001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec80000000000250000000c00000002000000250000000c000000080000805600000030000000b50000001c000000b60000004d000000
+05000000b5001c00b5004d00b6004d00b6001c00b5001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000b60000001c000000b70000004d00000005000000b6001c00b6004d00b7004d00b7001c00b6001c00250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c000000080000805600000030000000b70000001c000000b80000004d00000005000000b7001c00b7004d00b8004d00b8001c00b7001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200
+000000000000ecddc60000000000250000000c00000002000000250000000c000000080000805600000030000000b80000001c000000b90000004d00000005000000b8001c00b8004d00b9004d00b9001c00b8001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c00000008
+0000805600000030000000b90000001c000000bb0000004d00000005000000b9001c00b9004d00bb004d00bb001c00b9001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdbc40000000000250000000c00000002000000250000000c000000080000805600000030000000bb0000001c000000bc0000004d00000005000000bb001c00
+bb004d00bc004d00bc001c00bb001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000bc0000001c000000be0000004d00000005000000bc001c00bc004d00be004d00be001c00bc001c00250000000c00000008000080250000000c0000
+0000000080280000000c0000000200000027000000180000000200000000000000ead9c20000000000250000000c00000002000000250000000c000000080000805600000030000000be0000001c000000bf0000004d00000005000000be001c00be004d00bf004d00bf001c00be001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9
+c10000000000250000000c00000002000000250000000c000000080000805600000030000000bf0000001c000000c00000004d00000005000000bf001c00bf004d00c0004d00c0001c00bf001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030
+000000c00000001c000000c20000004d00000005000000c0001c00c0004d00c2004d00c2001c00c0001c00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7bf0000000000250000000c00000002000000250000000c000000080000805600000030000000c20000001c000000c30000004d00000005000000c2001c00c2004d00c3004d00
+c3001c00c2001c00250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000006009dff680031003a0000000c0000000a000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000004400000005000000da0000006400000004000000b005d004300cd004300cc001b005c001250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+0000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021058e102245736019c58530b0c58e102969619016b380a779c58530bb29619010000000098971a248ce3c5777b83172646e0c5779401300b0000300b188d17016b380a7731008e0133b00000bc58e10237bb40006b380a7798971a243200b20133b000008882dd19345de10270374b
+0b000000000800000000000000000000001098bf2348004b0b5c014b0b98971a24f0374b0b000000000c58e10200000000a859e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000090971a24d458e10223e0c57798971a243a6c2e760865450190971a24e858e102ad148b756476000800000000250000000c00000002000000180000000c00
+0000000000001e0000001800000008000000cbffffff6d00000099ffffff4b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000008000000cbffffff6d000000a1ffffff160000000c00000001000000
+120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000d00000005d0000001f000000c10000002b0000000100000000400d4200040dc208000000cbffffff160000004c000000000000000000000000000000ffffffffffffffff78000000540072006100660066006900630049006e0063006900640065006e007400730043006c00690065006e00740007000000030000
+0006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000003000000030000000600000006000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000abffffffeaffffff0c00000010000000000000000000000046000000300200002402
+0000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103dc010000d00100000210c0db5a000000004000003a009cff3a0095ff3a0091ff3a008aff3a0086ff3a007fff3a007bff3a0074ff3a0070ff3a0069ff3a0065ff3a005eff3a005aff3a0053ff3a004fff3a0048ff3a0044ff3a003dff3a0039ff3a0032ff3a002eff3a
+0027ff3a0023ff3a001cff3a0018ff3a0011ff3a000dff3a0006ff3a0002ff3a00fbfe3a00f7fe3a00f0fe3a00ecfe3a00e5fe3a00e1fe3a00dafe3a00d6fe3a00cffe3a00cbfe3a00c4fe3a00c0fe3a00b9fe3a00b5fe3a00aefe3a00aafe3a00a3fe3a009ffe3a0098fe3a0094fe3a008dfe3a0089fe3a0082fe3a007efe3a0077fe3a0073fe3a006cfe3a0068fe3a0061fe3a005dfe3a0056fe3a0052fe3a004bfe3a0047fe
+3a0040fe3a003cfe3a0035fe3a0031fe3a002afe3a0026fe3a001ffe3a001bfe3a0014fe3a0010fe3a0009fe3a0005fe3a00fefd3a00fafd3a00f3fd3a00effd3a00e8fd3a00e4fd3a00ddfd3a00d9fd3a00d2fd3a00cefd3a00c7fd3a00c3fd3a00bcfd3a00b8fd3a00b1fd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100
+010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201001000
+00000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003c0200008d0000004c000000910000003b0200002d0000005a0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000f008e004f0085005f0089005f0080006f0084006f008b006f008f006f0086007f008a007f0081008f0085008f008c008f0080009f0087009f008b009f008200af008600af008d00af008100b
+f008800bf008c00bf008300cf008700cf008e00cf008200df008900df008d00df008400ef008800ef008f00ef008300ff008a00ff008e00ff0085010f0089010f0080011f0084011f008b011f008f011f0086012f008a012f0081013f0085013f008c013f0080014f0087014f008b014f0082015f0086015f008d015f0081016f0088016f008c016f0083017f0087017f008e017f0082018f0089018f008d018f0084019f00880
+19f008f019f008301af008a01af008e01af008501bf008901bf008001cf008401cf008b01cf008f01cf008601df008a01df008101ef008501ef008c01ef008001ff008701ff008b01ff0082020f0086020f008d020f0081021f0088021f008c021f0083022f0087022f008e022f0082023f0089023250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff0100000035006aff09000900280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c000000080000805600000030
+0000008a00000077000000930000008000000005000000a0087007a00800083009000830097007a0087007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db
+00000000000000ff0b400040180000000c0000000100000035006aff090009003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000
+007300000060000000aa0000009700000004000000a00800083009000830097007a0087007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff0100000035002dfe090009002400
+0000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008a000000b401000093000000bd01000005000000a008401ba008d01b3009d01b3009401ba008401b250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046
+0000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000035002dfe090009003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000
+0000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000730000009d010000aa000000d401000004000000a008d01b3009d01b3009401ba008401b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000003500c4fd0900090024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008a0000001d020000930000002602000005000000a008d021a0086022300960223009d021a008
+d021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003500c4fd090009003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000007300000006020000aa0000003d02000004000000a0086022300960223009d021a008d02125000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008c009aff65003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000
+000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000e10000001f000000460100005000000005000000100ef001100e0005601400056014f001100ef001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008c009aff650031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000
+2101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000ca000000080000005d0100006700000004000000100e0005601400056014f001100ef001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000
+3a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000009430000c6c20000ca4200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000089009dff65003100250000000c000000080000802700000018000000030000
+0000000000fcf2e30000000000250000000c00000003000000250000000c000000080000805600000030000000de0000001c000000120100004d00000005000000de001c00de004d0012014d0012011c00de001c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fcf1e20000000000250000000c00000003000000250000000c0000000800
+00805600000030000000120100001c000000130100004d0000000500000012011c0012014d0013014d0013011c0012011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c000000080000805600000030000000130100001c000000140100004d0000000500000013011c0013
+014d0014014d0014011c0013011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c000000080000805600000030000000140100001c000000150100004d0000000500000014011c0014014d0015014d0015011c0014011c00250000000c00000008000080250000000c000000
+00000080280000000c0000000300000027000000180000000300000000000000fbf0df0000000000250000000c00000003000000250000000c000000080000805600000030000000150100001c000000160100004d0000000500000015011c0015014d0016014d0016011c0015011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefdf
+0000000000250000000c00000003000000250000000c000000080000805600000030000000160100001c000000170100004d0000000500000016011c0016014d0017014d0017011c0016011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c00000008000080560000003000
+0000170100001c000000180100004d0000000500000017011c0017014d0018014d0018011c0017011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c000000080000805600000030000000180100001c0000001a0100004d0000000500000018011c0018014d001a014d001a
+011c0018011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000001a0100001c0000001b0100004d000000050000001a011c001a014d001b014d001b011c001a011c00250000000c00000008000080250000000c0000000000008028000000
+0c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c00000003000000250000000c0000000800008056000000300000001b0100001c0000001d0100004d000000050000001b011c001b014d001d014d001d011c001b011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebda0000000000250000
+000c00000003000000250000000c0000000800008056000000300000001d0100001c0000001e0100004d000000050000001d011c001d014d001e014d001e011c001d011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebd90000000000250000000c00000003000000250000000c0000000800008056000000300000001e0100001c00
+00001f0100004d000000050000001e011c001e014d001f014d001f011c001e011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead90000000000250000000c00000003000000250000000c0000000800008056000000300000001f0100001c000000200100004d000000050000001f011c001f014d0020014d0020011c001f011c0025
+0000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c000000080000805600000030000000200100001c000000210100004d0000000500000020011c0020014d0021014d0021011c0020011c00250000000c00000008000080250000000c00000000000080280000000c00000003000000
+27000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c000000080000805600000030000000210100001c000000220100004d0000000500000021011c0021014d0022014d0022011c0021011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e9d60000000000250000000c000000030000
+00250000000c000000080000805600000030000000220100001c000000230100004d0000000500000022011c0022014d0023014d0023011c0022011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c000000080000805600000030000000230100001c000000250100004d00
+00000500000023011c0023014d0025014d0025011c0023011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c000000080000805600000030000000250100001c000000260100004d0000000500000025011c0025014d0026014d0026011c0025011c00250000000c00000008
+000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000250000000c00000003000000250000000c000000080000805600000030000000260100001c000000270100004d0000000500000026011c0026014d0027014d0027011c0026011c00250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000
+0300000000000000f3e6d30000000000250000000c00000003000000250000000c000000080000805600000030000000270100001c000000280100004d0000000500000027011c0027014d0028014d0028011c0027011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c0000
+00080000805600000030000000280100001c000000290100004d0000000500000028011c0028014d0029014d0029011c0028011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c000000080000805600000030000000290100001c0000002b0100004d000000050000002901
+1c0029014d002b014d002b011c0029011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e4d00000000000250000000c00000003000000250000000c0000000800008056000000300000002b0100001c0000002c0100004d000000050000002b011c002b014d002c014d002c011c002b011c00250000000c00000008000080250000000c
+00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c00000003000000250000000c0000000800008056000000300000002c0100001c0000002d0100004d000000050000002c011c002c014d002d014d002d011c002c011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000
+f1e3ce0000000000250000000c00000003000000250000000c0000000800008056000000300000002d0100001c0000002e0100004d000000050000002d011c002d014d002e014d002e011c002d011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e2ce0000000000250000000c00000003000000250000000c00000008000080560000
+00300000002e0100001c0000002f0100004d000000050000002e011c002e014d002f014d002f011c002e011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e2cd0000000000250000000c00000003000000250000000c0000000800008056000000300000002f0100001c000000300100004d000000050000002f011c002f014d003001
+4d0030011c002f011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c000000080000805600000030000000300100001c000000310100004d0000000500000030011c0030014d0031014d0031011c0030011c00250000000c00000008000080250000000c0000000000008028
+0000000c0000000300000027000000180000000300000000000000f0e1cb0000000000250000000c00000003000000250000000c000000080000805600000030000000310100001c000000320100004d0000000500000031011c0031014d0032014d0032011c0031011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000
+250000000c00000003000000250000000c000000080000805600000030000000320100001c000000340100004d0000000500000032011c0032014d0034014d0034011c0032011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc90000000000250000000c00000003000000250000000c000000080000805600000030000000340100
+001c000000350100004d0000000500000034011c0034014d0035014d0035011c0034011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c000000080000805600000030000000350100001c000000360100004d0000000500000035011c0035014d0036014d0036011c003501
+1c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c000000080000805600000030000000360100001c000000380100004d0000000500000036011c0036014d0038014d0038011c0036011c00250000000c00000008000080250000000c00000000000080280000000c00000003
+00000027000000180000000300000000000000ecddc60000000000250000000c00000003000000250000000c000000080000805600000030000000380100001c000000390100004d0000000500000038011c0038014d0039014d0039011c0038011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc50000000000250000000c000000
+03000000250000000c000000080000805600000030000000390100001c0000003b0100004d0000000500000039011c0039014d003b014d003b011c0039011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000003b0100001c0000003c0100
+004d000000050000003b011c003b014d003c014d003c011c003b011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c0000000800008056000000300000003c0100001c0000003e0100004d000000050000003c011c003c014d003e014d003e011c003c011c00250000000c00
+000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c0000000800008056000000300000003e0100001c0000003f0100004d000000050000003e011c003e014d003f014d003f011c003e011c00250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018
+0000000300000000000000ead9c10000000000250000000c00000003000000250000000c0000000800008056000000300000003f0100001c000000400100004d000000050000003f011c003f014d0040014d0040011c003f011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8c00000000000250000000c0000000300000025000000
+0c000000080000805600000030000000400100001c000000420100004d0000000500000040011c0040014d0042014d0042011c0040011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c000000080000805600000030000000420100001c000000430100004d000000050000
+0042011c0042014d0043014d0043011c0042011c00250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000089009dff650031003a00
+00000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000c7000000050000005a0100006400000004000000e00dd0043014d0043014c001e0
+0dc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008b000000cbffff
+ffed00000099ffffff4b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008b000000cbffffffed000000a1ffffff160000000c00000001000000120000000c000000010000001b0000001000000000
+00000000000000160000000c0000000000000054000000cc000000e00000001f000000410100002b0000000100000000400d4200040dc28b000000cbffffff150000004c000000000000000000000000000000ffffffffffffffff78000000540072006100660066006900630049006e0063006900640065006e0074007300500072006f0078007900000007000000030000000600000003000000030000000300000005000000
+03000000060000000500000003000000060000000600000006000000030000000400000007000000030000000600000005000000050000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000003002000024020000454d462b0840000234000000280000000210c0db000000
+0088000000000000000000803f02000000000000000210c0db00000000000000ff08400103dc010000d00100000210c0db5a00000000400000bc009cffbc0095ffbc0091ffbc008affbc0086ffbc007fffbc007bffbc0074ffbc0070ffbc0069ffbc0065ffbc005effbc005affbc0053ffbc004fffbc0048ffbc0044ffbc003dffbc0039ffbc0032ffbc002effbc0027ffbc0023ffbc001cffbc0018ffbc0011ffbc000dffbc00
+06ffbc0002ffbc00fbfebc00f7febc00f0febc00ecfebc00e5febc00e1febc00dafebc00d6febc00cffebc00cbfebc00c4febc00c0febc00b9febc00b5febc00aefebc00aafebc00a3febc009ffebc0098febc0094febc008dfebc0089febc0082febc007efebc0077febc0073febc006cfebc0068febc0061febc005dfebc0056febc0052febc004bfebc0047febc0040febc003cfebc0035febc0031febc002afebc0026febc
+001ffebc001bfebc0014febc0010febc0009febc0005febc00fefdbc00fafdbc00f3fdbc00effdbc00e8fdbc00e4fdbc00ddfdbc00d9fdbc00d2fdbc00cefdbc00c7fdbc00c3fdbc00bcfdbc00b8fdbc00b1fd000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001
+0001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000
+000c00000003000000250000000c000000050000805a0000003c0200000f0100004c000000130100003b0200002d0000005a000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000001011e004101150051011900510110006101140061011b0061011f006101160071011a00710111008101150081011c00810110009101170091011b0091011200a1011600a1011d00a1011100b1011800b1011c00b1011300c1011700c1011e00c1011200d10
+11900d1011d00d1011400e1011800e1011f00e1011300f1011a00f1011e00f101150101011901010110011101140111011b0111011f011101160121011a01210111013101150131011c01310110014101170141011b01410112015101160151011d01510111016101180161011c01610113017101170171011e01710112018101190181011d01810114019101180191011f0191011301a1011a01a1011e01a1011501b1011901b
+1011001c1011401c1011b01c1011f01c1011601d1011a01d1011101e1011501e1011c01e1011001f1011701f1011b01f10112020101160201011d02010111021101180211011c02110113022101170221011e0221011202310119023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000460000
+002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000b7006efe09000501280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c0000000800008056000000300000000c01000077000000150100007c01000005000000c010
+7007c010c0175011c01750117007c0107007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b7
+006efe090005013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f5000000600000002c0100009301000004000000c010c017
+5011c01750117007c0107007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000b7002dfe0900090024000000240000000000803d00000000000000000000803d000000
+000000000002000000250000000c00000001000000250000000c0000000800008056000000300000000c010000b401000015010000bd01000005000000c010401bc010d01b5011d01b5011401bc010401b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b7002dfe090009003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000000000000000000000
+00000000000000250000000c00000003000000250000000c00000005000080560000002c000000f50000009d0100002c010000d401000004000000c010d01b5011d01b5011401bc010401b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c000000
+20000000454d462b0a4000c01c00000010000000e3f2fcff01000000b700bffd0900310024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000000c010000fa010000150100002b02000005000000c010a01fc010b0225011b0225011a01fc010a01f250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b700bffd090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f5000000e30100002c0100004202000004000000c010b0225011b0225011a01fc010a01f250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000bc0047ff09000a0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000
+11010000990000001a010000a300000005000000101190091011300aa011300aa011900910119009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0b400040180000000c00000001000000bc0047ff09000a003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000fa00
+00008200000031010000ba000000040000001011300aa011300aa011900910119009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000000d019aff77003100280000000c
+0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000620100001f000000d901000050000000050000002016f00120160005901d0005901df0012016f001250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000d019aff770031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000004b01000008000000f0010000670000000400000020160005901d0005901df0012016f001250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000085430000c6c20000ee4200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002
+000000010000000a019dff77003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c0000000800008056000000300000005f0100001c0000009c0100004d000000050000005f011c005f014d009c014d009c011c005f011c00250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018000000
+0300000000000000fcf1e20000000000250000000c00000003000000250000000c0000000800008056000000300000009c0100001c0000009d0100004d000000050000009c011c009c014d009d014d009d011c009c011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c0000
+000800008056000000300000009d0100001c0000009f0100004d000000050000009d011c009d014d009f014d009f011c009d011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c0000000800008056000000300000009f0100001c000000a00100004d000000050000009f01
+1c009f014d00a0014d00a0011c009f011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0df0000000000250000000c00000003000000250000000c000000080000805600000030000000a00100001c000000a10100004d00000005000000a0011c00a0014d00a1014d00a1011c00a0011c00250000000c00000008000080250000000c
+00000000000080280000000c0000000300000027000000180000000300000000000000faefdf0000000000250000000c00000003000000250000000c000000080000805600000030000000a10100001c000000a20100004d00000005000000a1011c00a1014d00a2014d00a2011c00a1011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000
+faefde0000000000250000000c00000003000000250000000c000000080000805600000030000000a20100001c000000a30100004d00000005000000a2011c00a2014d00a3014d00a3011c00a2011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faeedd0000000000250000000c00000003000000250000000c00000008000080560000
+0030000000a30100001c000000a40100004d00000005000000a3011c00a3014d00a4014d00a4011c00a3011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c000000080000805600000030000000a40100001c000000a50100004d00000005000000a4011c00a4014d00a501
+4d00a5011c00a4011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eddc0000000000250000000c00000003000000250000000c000000080000805600000030000000a50100001c000000a60100004d00000005000000a5011c00a5014d00a6014d00a6011c00a5011c00250000000c00000008000080250000000c0000000000008028
+0000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c000000080000805600000030000000a60100001c000000a70100004d00000005000000a6011c00a6014d00a7014d00a7011c00a6011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000
+250000000c00000003000000250000000c000000080000805600000030000000a70100001c000000a90100004d00000005000000a7011c00a7014d00a9014d00a9011c00a7011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c000000080000805600000030000000a90100
+001c000000ab0100004d00000005000000a9011c00a9014d00ab014d00ab011c00a9011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c00000003000000250000000c000000080000805600000030000000ab0100001c000000ac0100004d00000005000000ab011c00ab014d00ac014d00ac011c00ab01
+1c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c000000080000805600000030000000ac0100001c000000ae0100004d00000005000000ac011c00ac014d00ae014d00ae011c00ac011c00250000000c00000008000080250000000c00000000000080280000000c00000003
+00000027000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c000000080000805600000030000000ae0100001c000000af0100004d00000005000000ae011c00ae014d00af014d00af011c00ae011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e9d60000000000250000000c000000
+03000000250000000c000000080000805600000030000000af0100001c000000b00100004d00000005000000af011c00af014d00b0014d00b0011c00af011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d60000000000250000000c00000003000000250000000c000000080000805600000030000000b00100001c000000b10100
+004d00000005000000b0011c00b0014d00b1014d00b1011c00b0011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c000000080000805600000030000000b10100001c000000b20100004d00000005000000b1011c00b1014d00b2014d00b2011c00b1011c00250000000c00
+000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d40000000000250000000c00000003000000250000000c000000080000805600000030000000b20100001c000000b30100004d00000005000000b2011c00b2014d00b3014d00b3011c00b2011c00250000000c00000008000080250000000c00000000000080280000000c000000030000002700000018
+0000000300000000000000f4e7d40000000000250000000c00000003000000250000000c000000080000805600000030000000b30100001c000000b40100004d00000005000000b3011c00b3014d00b4014d00b4011c00b3011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000250000000c0000000300000025000000
+0c000000080000805600000030000000b40100001c000000b50100004d00000005000000b4011c00b4014d00b5014d00b5011c00b4011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d30000000000250000000c00000003000000250000000c000000080000805600000030000000b50100001c000000b60100004d000000050000
+00b5011c00b5014d00b6014d00b6011c00b5011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c000000080000805600000030000000b60100001c000000b80100004d00000005000000b6011c00b6014d00b8014d00b8011c00b6011c00250000000c000000080000802500
+00000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c000000080000805600000030000000b80100001c000000ba0100004d00000005000000b8011c00b8014d00ba014d00ba011c00b8011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000
+000000f2e4d00000000000250000000c00000003000000250000000c000000080000805600000030000000ba0100001c000000bb0100004d00000005000000ba011c00ba014d00bb014d00bb011c00ba011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c00000003000000250000000c00000008000080
+5600000030000000bb0100001c000000bc0100004d00000005000000bb011c00bb014d00bc014d00bc011c00bb011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c000000080000805600000030000000bc0100001c000000bd0100004d00000005000000bc011c00bc014d
+00bd014d00bd011c00bc011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e2ce0000000000250000000c00000003000000250000000c000000080000805600000030000000bd0100001c000000be0100004d00000005000000bd011c00bd014d00be014d00be011c00bd011c00250000000c00000008000080250000000c0000000000
+0080280000000c0000000300000027000000180000000300000000000000f0e2cd0000000000250000000c00000003000000250000000c000000080000805600000030000000be0100001c000000bf0100004d00000005000000be011c00be014d00bf014d00bf011c00be011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000
+000000250000000c00000003000000250000000c000000080000805600000030000000bf0100001c000000c10100004d00000005000000bf011c00bf014d00c1014d00c1011c00bf011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0cb0000000000250000000c00000003000000250000000c000000080000805600000030000000
+c10100001c000000c20100004d00000005000000c1011c00c1014d00c2014d00c2011c00c1011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c000000080000805600000030000000c20100001c000000c40100004d00000005000000c2011c00c2014d00c4014d00c4011c
+00c2011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc90000000000250000000c00000003000000250000000c000000080000805600000030000000c40100001c000000c50100004d00000005000000c4011c00c4014d00c5014d00c5011c00c4011c00250000000c00000008000080250000000c00000000000080280000000c00
+00000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c000000080000805600000030000000c50100001c000000c60100004d00000005000000c5011c00c5014d00c6014d00c6011c00c5011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec80000000000250000000c
+00000003000000250000000c000000080000805600000030000000c60100001c000000c70100004d00000005000000c6011c00c6014d00c7014d00c7011c00c6011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c000000080000805600000030000000c70100001c000000
+c90100004d00000005000000c7011c00c7014d00c9014d00c9011c00c7011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c000000080000805600000030000000c90100001c000000ca0100004d00000005000000c9011c00c9014d00ca014d00ca011c00c9011c00250000
+000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc50000000000250000000c00000003000000250000000c000000080000805600000030000000ca0100001c000000cc0100004d00000005000000ca011c00ca014d00cc014d00cc011c00ca011c00250000000c00000008000080250000000c00000000000080280000000c000000030000002700
+0000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c000000080000805600000030000000cc0100001c000000cd0100004d00000005000000cc011c00cc014d00cd014d00cd011c00cc011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdbc40000000000250000000c0000000300000025
+0000000c000000080000805600000030000000cd0100001c000000ce0100004d00000005000000cd011c00cd014d00ce014d00ce011c00cd011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c000000080000805600000030000000ce0100001c000000d00100004d000000
+05000000ce011c00ce014d00d0014d00d0011c00ce011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c000000080000805600000030000000d00100001c000000d10100004d00000005000000d0011c00d0014d00d1014d00d1011c00d0011c00250000000c000000080000
+80250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c10000000000250000000c00000003000000250000000c000000080000805600000030000000d10100001c000000d30100004d00000005000000d1011c00d1014d00d3014d00d3011c00d1011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300
+000000000000e9d8c00000000000250000000c00000003000000250000000c000000080000805600000030000000d30100001c000000d40100004d00000005000000d3011c00d3014d00d4014d00d4011c00d3011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8bf0000000000250000000c00000003000000250000000c00000008
+0000805600000030000000d40100001c000000d50100004d00000005000000d4011c00d4014d00d5014d00d5011c00d4011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c000000080000805600000030000000d50100001c000000d60100004d00000005000000d5011c00
+d5014d00d6014d00d6011c00d5011c00250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000a019dff770031003a0000000c0000
+000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000004801000005000000ed0100006400000004000000f015d004601dd004601dc001f015c0012500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000000c010000cbffffff80010000
+99ffffff4b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000000c010000cbffffff80010000a1ffffff160000000c00000001000000120000000c000000010000001b00000010000000000000000000
+0000160000000c0000000000000054000000d8000000640100001f000000d10100002b0000000100000000400d4200040dc20f010000cbffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e0074007300410064006100700074006f00720000800700000003000000060000000300000003000000030000000500000003
+0000000600000005000000030000000600000006000000060000000300000004000000070000000600000006000000060000000300000006000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000003002000024020000454d462b084000023400000028000000
+0210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103dc010000d00100000210c0db5a0000000040000046019cff460195ff460191ff46018aff460186ff46017fff46017bff460174ff460170ff460169ff460165ff46015eff46015aff460153ff46014fff460148ff460144ff46013dff460139ff460132ff46012eff460127ff460123ff46011cff460118ff460111
+ff46010dff460106ff460102ff4601fbfe4601f7fe4601f0fe4601ecfe4601e5fe4601e1fe4601dafe4601d6fe4601cffe4601cbfe4601c4fe4601c0fe4601b9fe4601b5fe4601aefe4601aafe4601a3fe46019ffe460198fe460194fe46018dfe460189fe460182fe46017efe460177fe460173fe46016cfe460168fe460161fe46015dfe460156fe460152fe46014bfe460147fe460140fe46013cfe460135fe460131fe4601
+2afe460126fe46011ffe46011bfe460114fe460110fe460109fe460105fe4601fefd4601fafd4601f3fd4601effd4601e8fd4601e4fd4601ddfd4601d9fd4601d2fd4601cefd4601c7fd4601c3fd4601bcfd4601b8fd4601b1fd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100
+010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201001000000000000000000000000000000000000000
+00000000250000000c00000003000000250000000c000000050000805a0000003c020000990100004c0000009d0100003b0200002d0000005a0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000b019e004b0195005b0199005b0190006b0194006b019b006b019f006b0196007b019a007b0191008b0195008b019c008b0190009b0197009b019b009b019200ab019600ab019d00ab019100bb019800bb019c00bb019300cb019700cb019
+e00cb019200db019900db019d00db019400eb019800eb019f00eb019300fb019a00fb019e00fb0195010b0199010b0190011b0194011b019b011b019f011b0196012b019a012b0191013b0195013b019c013b0190014b0197014b019b014b0192015b0196015b019d015b0191016b0198016b019c016b0193017b0197017b019e017b0192018b0199018b019d018b0194019b0198019b019f019b019301ab019a01ab019e01ab0
+19501bb019901bb019001cb019401cb019b01cb019f01cb019601db019a01db019101eb019501eb019c01eb019001fb019701fb019b01fb0192020b0196020b019d020b0191021b0198021b019c021b0193022b0197022b019e022b0192023b0199023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000
+03000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff0100000041016efe0900c000280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c00000008000080560000003000000096010000bc0000009f0100007c0100
+00050000006019c00b6019c017f019c017f019c00b6019c00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00
+00000100000041016efe0900c0003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000007f010000a5000000b60100009301000004
+0000006019c017f019c017f019c00b6019c00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000004101e2fd0900310024000000240000000000803d0000000000000000
+0000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000096010000d70100009f01000008020000050000006019701d60198020f0198020f019701d6019701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b084000
+02380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004101e2fd090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000021010010000000000000000000
+0000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000007f010000c0010000b60100001f0200000400000060198020f0198020f019701d6019701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a00000046
+0000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000004601f2fe09000a0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000009b010000ee000000a4010000f800000005000000b019e00eb019800f401a800f401ae00eb019e00e250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004601f2fe09000a003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c00000084010000d7000000bb0100000f01000004000000b019800f401a800f401ae00eb019e00e250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000009e019aff76003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000
+000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000f30100001f000000690200005000000005000000301ff001301f0005902600059026f001301ff001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b0840000238000000
+2c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000009e019aff760031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000
+000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000dc01000008000000800200006700000004000000301f0005902600059026f001301ff001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400
+000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080cd430000c6c20000ec4200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000009b019dff76003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c
+00000003000000250000000c000000080000805600000030000000f00100001c0000002c0200004d00000005000000f0011c00f0014d002c024d002c021c00f0011c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fcf2e20000000000250000000c00000003000000250000000c0000000800008056000000300000002c0200001c000000
+2d0200004d000000050000002c021c002c024d002d024d002d021c002c021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e20000000000250000000c00000003000000250000000c0000000800008056000000300000002d0200001c0000002e0200004d000000050000002d021c002d024d002e024d002e021c002d021c00250000
+000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c0000000800008056000000300000002e0200001c0000002f0200004d000000050000002e021c002e024d002f024d002f021c002e021c00250000000c00000008000080250000000c00000000000080280000000c000000030000002700
+0000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c0000000800008056000000300000002f0200001c000000310200004d000000050000002f021c002f024d0031024d0031021c002f021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faf0df0000000000250000000c0000000300000025
+0000000c000000080000805600000030000000310200001c000000320200004d0000000500000031021c0031024d0032024d0032021c0031021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c000000080000805600000030000000320200001c000000340200004d000000
+0500000032021c0032024d0034024d0034021c0032021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c000000080000805600000030000000340200001c000000360200004d0000000500000034021c0034024d0036024d0036021c0034021c00250000000c000000080000
+80250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eddc0000000000250000000c00000003000000250000000c000000080000805600000030000000360200001c000000370200004d0000000500000036021c0036024d0037024d0037021c0036021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300
+000000000000f8eddc0000000000250000000c00000003000000250000000c000000080000805600000030000000370200001c000000380200004d0000000500000037021c0037024d0038024d0038021c0037021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c00000003000000250000000c00000008
+0000805600000030000000380200001c000000390200004d0000000500000038021c0038024d0039024d0039021c0038021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c000000080000805600000030000000390200001c0000003b0200004d0000000500000039021c00
+39024d003b024d003b021c0039021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c00000003000000250000000c0000000800008056000000300000003b0200001c0000003c0200004d000000050000003b021c003b024d003c024d003c021c003b021c00250000000c00000008000080250000000c0000
+0000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c0000000800008056000000300000003c0200001c0000003e0200004d000000050000003c021c003c024d003e024d003e021c003c021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9
+d70000000000250000000c00000003000000250000000c0000000800008056000000300000003e0200001c0000003f0200004d000000050000003e021c003e024d003f024d003f021c003e021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d60000000000250000000c00000003000000250000000c000000080000805600000030
+0000003f0200001c000000400200004d000000050000003f021c003f024d0040024d0040021c003f021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d60000000000250000000c00000003000000250000000c000000080000805600000030000000400200001c000000410200004d0000000500000040021c0040024d0041024d00
+41021c0040021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c000000080000805600000030000000410200001c000000430200004d0000000500000041021c0041024d0043024d0043021c0041021c00250000000c00000008000080250000000c00000000000080280000
+000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c000000080000805600000030000000430200001c000000440200004d0000000500000043021c0043024d0044024d0044021c0043021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d300000000002500
+00000c00000003000000250000000c000000080000805600000030000000440200001c000000450200004d0000000500000044021c0044024d0045024d0045021c0044021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d30000000000250000000c00000003000000250000000c000000080000805600000030000000450200001c
+000000460200004d0000000500000045021c0045024d0046024d0046021c0045021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c000000080000805600000030000000460200001c000000480200004d0000000500000046021c0046024d0048024d0048021c0046021c00
+250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c000000080000805600000030000000480200001c0000004a0200004d0000000500000048021c0048024d004a024d004a021c0048021c00250000000c00000008000080250000000c00000000000080280000000c000000030000
+0027000000180000000300000000000000f2e4d00000000000250000000c00000003000000250000000c0000000800008056000000300000004a0200001c0000004b0200004d000000050000004a021c004a024d004b024d004b021c004a021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c0000000300
+0000250000000c0000000800008056000000300000004b0200001c0000004c0200004d000000050000004b021c004b024d004c024d004c021c004b021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3cf0000000000250000000c00000003000000250000000c0000000800008056000000300000004c0200001c0000004d0200004d
+000000050000004c021c004c024d004d024d004d021c004c021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c0000000800008056000000300000004d0200001c0000004e0200004d000000050000004d021c004d024d004e024d004e021c004d021c00250000000c000000
+08000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e2cd0000000000250000000c00000003000000250000000c0000000800008056000000300000004e0200001c0000004f0200004d000000050000004e021c004e024d004f024d004f021c004e021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000
+000300000000000000f0e1cd0000000000250000000c00000003000000250000000c0000000800008056000000300000004f0200001c000000500200004d000000050000004f021c004f024d0050024d0050021c004f021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c00
+0000080000805600000030000000500200001c000000510200004d0000000500000050021c0050024d0051024d0051021c0050021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cb0000000000250000000c00000003000000250000000c000000080000805600000030000000510200001c000000520200004d0000000500000051
+021c0051024d0052024d0052021c0051021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0cb0000000000250000000c00000003000000250000000c000000080000805600000030000000520200001c000000530200004d0000000500000052021c0052024d0053024d0053021c0052021c00250000000c0000000800008025000000
+0c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c000000080000805600000030000000530200001c000000540200004d0000000500000053021c0053024d0054024d0054021c0053021c00250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003000000000000
+00eedfc90000000000250000000c00000003000000250000000c000000080000805600000030000000540200001c000000560200004d0000000500000054021c0054024d0056024d0056021c0054021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c000000080000805600
+000030000000560200001c000000570200004d0000000500000056021c0056024d0057024d0057021c0056021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c000000080000805600000030000000570200001c000000590200004d0000000500000057021c0057024d0059
+024d0059021c0057021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c000000080000805600000030000000590200001c0000005a0200004d0000000500000059021c0059024d005a024d005a021c0059021c00250000000c00000008000080250000000c00000000000080
+280000000c0000000300000027000000180000000300000000000000ecddc60000000000250000000c00000003000000250000000c0000000800008056000000300000005a0200001c0000005b0200004d000000050000005a021c005a024d005b024d005b021c005a021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc500000000
+00250000000c00000003000000250000000c0000000800008056000000300000005b0200001c0000005c0200004d000000050000005b021c005b024d005c024d005c021c005b021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000005c02
+00001c0000005d0200004d000000050000005c021c005c024d005d024d005d021c005c021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000005d0200001c0000005e0200004d000000050000005d021c005d024d005e024d005e021c005d
+021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c0000000800008056000000300000005e0200001c000000600200004d000000050000005e021c005e024d0060024d0060021c005e021c00250000000c00000008000080250000000c00000000000080280000000c000000
+0300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c000000080000805600000030000000600200001c000000610200004d0000000500000060021c0060024d0061024d0061021c0060021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c10000000000250000000c0000
+0003000000250000000c000000080000805600000030000000610200001c000000630200004d0000000500000061021c0061024d0063024d0063021c0061021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8c00000000000250000000c00000003000000250000000c000000080000805600000030000000630200001c0000006402
+00004d0000000500000063021c0063024d0064024d0064021c0063021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8bf0000000000250000000c00000003000000250000000c000000080000805600000030000000640200001c000000650200004d0000000500000064021c0064024d0065024d0065021c0064021c00250000000c
+00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c000000080000805600000030000000650200001c000000660200004d0000000500000065021c0065024d0066024d0066021c0065021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000025000000
+0c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009b019dff760031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000
+0000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000d9010000050000007d0200006400000004000000001fd0046026d0046026c001001fc001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009d010000cbffffff1002000099ffffff4b0000001000000000000000050000000a00000010000000abffffffeaffffff0c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffff
+ff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009d010000cbffffff10020000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000d8000000f60100001f000000610200002b0000000100000000400d4200040dc2a1010000cbff
+ffff170000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e00740073005300650072007600690063006500000107000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000600000003000000050000000300000005
+000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000003002000024020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103dc010000d00100000210c0db
+5a00000000400000d6019cffd60195ffd60191ffd6018affd60186ffd6017fffd6017bffd60174ffd60170ffd60169ffd60165ffd6015effd6015affd60153ffd6014fffd60148ffd60144ffd6013dffd60139ffd60132ffd6012effd60127ffd60123ffd6011cffd60118ffd60111ffd6010dffd60106ffd60102ffd601fbfed601f7fed601f0fed601ecfed601e5fed601e1fed601dafed601d6fed601cffed601cbfed601c4
+fed601c0fed601b9fed601b5fed601aefed601aafed601a3fed6019ffed60198fed60194fed6018dfed60189fed60182fed6017efed60177fed60173fed6016cfed60168fed60161fed6015dfed60156fed60152fed6014bfed60147fed60140fed6013cfed60135fed60131fed6012afed60126fed6011ffed6011bfed60114fed60110fed60109fed60105fed601fefdd601fafdd601f3fdd601effdd601e8fdd601e4fdd601
+ddfdd601d9fdd601d2fdd601cefdd601c7fdd601c3fdd601bcfdd601b8fdd601b1fd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c
+000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003c020000290200004c0000002d0200003b0200002d000000
+5a00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+0002000000020000000200000002000000b022e004b0225005b0229005b0220006b0224006b022b006b022f006b0226007b022a007b0221008b0225008b022c008b0220009b0227009b022b009b022200ab022600ab022d00ab022100bb022800bb022c00bb022300cb022700cb022e00cb022200db022900db022d00db022400eb022800eb022f00eb022300fb022a00fb022e00fb0225010b0229010b0220011b0224011b022
+b011b022f011b0226012b022a012b0221013b0225013b022c013b0220014b0227014b022b014b0222015b0226015b022d015b0221016b0228016b022c016b0223017b0227017b022e017b0222018b0229018b022d018b0224019b0228019b022f019b022301ab022a01ab022e01ab022501bb022901bb022001cb022401cb022b01cb022f01cb022601db022a01db022101eb022501eb022c01eb022001fb022701fb022b01fb0
+222020b0226020b022d020b0221021b0228021b022c021b0223022b0227022b022e022b0222023b0229023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000d10190fe09002a00280000000c000000
+0100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c00000008000080560000003000000026020000300100002f0200005a01000005000000602200136022a015f022a015f022001360220013250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d10190fe09002a003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000000f020000190100004602000071010000040000006022a015f022a015f022001360220013250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000d10150fe0900090024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002602000091010000
+2f0200009a01000005000000602210196022a019f022a019f022101960221019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000
+40180000000c00000001000000d10150fe090009003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000000f0200007a0100004602
+0000b1010000040000006022a019f022a019f022101960221019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000d1010afe0900090024000000240000000000803d00
+000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000026020000d70100002f020000e0010000050000006022701d6022001ef022001ef022701d6022701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d1010afe090009003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000
+000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000000f020000c001000046020000f7010000040000006022001ef022001ef022701d6022701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c00
+00000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000028029aff59003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c0000000800008056000000300000007d0200001f000000d602000050
+00000005000000d027f001d0270005602d0005602df001d027f001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b40004018000000
+0c0000000100000028029aff590031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000006602000008000000ed020000670000
+0004000000d0270005602d0005602df001d027f001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000004009440000c6c20000b24200004442bed7
+e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000025029dff59003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c0000000800008056000000300000007a0200001c000000a80200004d000000050000007a021c007a024d00a8
+024d00a8021c007a021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e20000000000250000000c00000003000000250000000c000000080000805600000030000000a80200001c000000a90200004d00000005000000a8021c00a8024d00a9024d00a9021c00a8021c00250000000c00000008000080250000000c00000000000080
+280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c000000080000805600000030000000a90200001c000000aa0200004d00000005000000a9021c00a9024d00aa024d00aa021c00a9021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e000000000
+00250000000c00000003000000250000000c000000080000805600000030000000aa0200001c000000ab0200004d00000005000000aa021c00aa024d00ab024d00ab021c00aa021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faf0df0000000000250000000c00000003000000250000000c000000080000805600000030000000ab02
+00001c000000ac0200004d00000005000000ab021c00ab024d00ac024d00ac021c00ab021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c000000080000805600000030000000ac0200001c000000ad0200004d00000005000000ac021c00ac024d00ad024d00ad021c00ac
+021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c000000080000805600000030000000ad0200001c000000af0200004d00000005000000ad021c00ad024d00af024d00af021c00ad021c00250000000c00000008000080250000000c00000000000080280000000c000000
+0300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c000000080000805600000030000000af0200001c000000b00200004d00000005000000af021c00af024d00b0024d00b0021c00af021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c0000
+0003000000250000000c000000080000805600000030000000b00200001c000000b10200004d00000005000000b0021c00b0024d00b1024d00b1021c00b0021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c000000080000805600000030000000b10200001c000000b302
+00004d00000005000000b1021c00b1024d00b3024d00b3021c00b1021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c00000003000000250000000c000000080000805600000030000000b30200001c000000b40200004d00000005000000b3021c00b3024d00b4024d00b4021c00b3021c00250000000c
+00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c000000080000805600000030000000b40200001c000000b50200004d00000005000000b4021c00b4024d00b5024d00b5021c00b4021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000
+180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c000000080000805600000030000000b50200001c000000b60200004d00000005000000b5021c00b5024d00b6024d00b6021c00b5021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e9d60000000000250000000c00000003000000250000
+000c000000080000805600000030000000b60200001c000000b70200004d00000005000000b6021c00b6024d00b7024d00b7021c00b6021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c000000080000805600000030000000b70200001c000000b80200004d0000000500
+0000b7021c00b7024d00b8024d00b8021c00b7021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d40000000000250000000c00000003000000250000000c000000080000805600000030000000b80200001c000000b90200004d00000005000000b8021c00b8024d00b9024d00b9021c00b8021c00250000000c0000000800008025
+0000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c000000080000805600000030000000b90200001c000000ba0200004d00000005000000b9021c00b9024d00ba024d00ba021c00b9021c00250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003000000
+00000000f3e6d30000000000250000000c00000003000000250000000c000000080000805600000030000000ba0200001c000000bb0200004d00000005000000ba021c00ba024d00bb024d00bb021c00ba021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c000000080000
+805600000030000000bb0200001c000000bc0200004d00000005000000bb021c00bb024d00bc024d00bc021c00bb021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d20000000000250000000c00000003000000250000000c000000080000805600000030000000bc0200001c000000bd0200004d00000005000000bc021c00bc02
+4d00bd024d00bd021c00bc021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c000000080000805600000030000000bd0200001c000000be0200004d00000005000000bd021c00bd024d00be024d00be021c00bd021c00250000000c00000008000080250000000c00000000
+000080280000000c0000000300000027000000180000000300000000000000f2e4d00000000000250000000c00000003000000250000000c000000080000805600000030000000be0200001c000000bf0200004d00000005000000be021c00be024d00bf024d00bf021c00be021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3cf00
+00000000250000000c00000003000000250000000c000000080000805600000030000000bf0200001c000000c00200004d00000005000000bf021c00bf024d00c0024d00c0021c00bf021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c0000000800008056000000300000
+00c00200001c000000c10200004d00000005000000c0021c00c0024d00c1024d00c1021c00c0021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e2cd0000000000250000000c00000003000000250000000c000000080000805600000030000000c10200001c000000c20200004d00000005000000c1021c00c1024d00c2024d00c202
+1c00c1021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c000000080000805600000030000000c20200001c000000c30200004d00000005000000c2021c00c2024d00c3024d00c3021c00c2021c00250000000c00000008000080250000000c00000000000080280000000c
+0000000300000027000000180000000300000000000000f0e1cb0000000000250000000c00000003000000250000000c000000080000805600000030000000c30200001c000000c40200004d00000005000000c3021c00c3024d00c4024d00c4021c00c3021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca000000000025000000
+0c00000003000000250000000c000000080000805600000030000000c40200001c000000c60200004d00000005000000c4021c00c4024d00c6024d00c6021c00c4021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc90000000000250000000c00000003000000250000000c000000080000805600000030000000c60200001c0000
+00c70200004d00000005000000c6021c00c6024d00c7024d00c7021c00c6021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec80000000000250000000c00000003000000250000000c000000080000805600000030000000c70200001c000000c80200004d00000005000000c7021c00c7024d00c8024d00c8021c00c7021c002500
+00000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c000000080000805600000030000000c80200001c000000c90200004d00000005000000c8021c00c8024d00c9024d00c9021c00c8021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027
+000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c000000080000805600000030000000c90200001c000000ca0200004d00000005000000c9021c00c9024d00ca024d00ca021c00c9021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc50000000000250000000c00000003000000
+250000000c000000080000805600000030000000ca0200001c000000cc0200004d00000005000000ca021c00ca024d00cc024d00cc021c00ca021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c000000080000805600000030000000cc0200001c000000cd0200004d0000
+0005000000cc021c00cc024d00cd024d00cd021c00cc021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c000000080000805600000030000000cd0200001c000000cf0200004d00000005000000cd021c00cd024d00cf024d00cf021c00cd021c00250000000c0000000800
+0080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c000000080000805600000030000000cf0200001c000000d00200004d00000005000000cf021c00cf024d00d0024d00d0021c00cf021c00250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003
+00000000000000ead9c10000000000250000000c00000003000000250000000c000000080000805600000030000000d00200001c000000d10200004d00000005000000d0021c00d0024d00d1024d00d1021c00d0021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8c00000000000250000000c00000003000000250000000c000000
+080000805600000030000000d10200001c000000d20200004d00000005000000d1021c00d1024d00d2024d00d2021c00d1021c00250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8bf0000000000250000000c00000003000000250000000c000000080000805600000030000000d20200001c000000d30200004d00000005000000d2021c
+00d2024d00d3024d00d3021c00d2021c00250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000025029dff590031003a0000000c00
+00000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000006302000005000000ea0200006400000004000000a027d004302dd004302dc001a027c00125
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000
+110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000027020000cbffffff7d0200
+0099ffffff4b0000001000000000000000050000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000027020000cbffffff7d020000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000
+000000160000000c00000000000000540000006c000000970200001f000000b60200002b0000000100000000400d4200040dc242020000cbffffff050000004c000000000000000000000000000000ffffffffffffffff5800000041004600650065006400410007000000060000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000000000000005000000
+0a00000010000000abffffffeaffffff0c000000100000000000000000000000460000003002000024020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103dc010000d00100000210c0db5a0000000040000052029cff520295ff520291ff52028aff520286ff52027fff52027bff520274ff520270ff520269ff520265
+ff52025eff52025aff520253ff52024fff520248ff520244ff52023dff520239ff520232ff52022eff520227ff520223ff52021cff520218ff520211ff52020dff520206ff520202ff5202fbfe5202f7fe5202f0fe5202ecfe5202e5fe5202e1fe5202dafe5202d6fe5202cffe5202cbfe5202c4fe5202c0fe5202b9fe5202b5fe5202aefe5202aafe5202a3fe52029ffe520298fe520294fe52028dfe520289fe520282fe5202
+7efe520277fe520273fe52026cfe520268fe520261fe52025dfe520256fe520252fe52024bfe520247fe520240fe52023cfe520235fe520231fe52022afe520226fe52021ffe52021bfe520214fe520210fe520209fe520205fe5202fefd5202fafd5202f3fd5202effd5202e8fd5202e4fd5202ddfd5202d9fd5202d2fd5202cefd5202c7fd5202c3fd5202bcfd5202b8fd5202b1fd0001000100010001000100010001000100
+010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003c020000a50200004c000000a90200003b0200002d0000005a0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000702ae004702a5005702a9005702a0006702a4006702ab006702af006702a6007702a
+a007702a1008702a5008702ac008702a0009702a7009702ab009702a200a702a600a702ad00a702a100b702a800b702ac00b702a300c702a700c702ae00c702a200d702a900d702ad00d702a400e702a800e702af00e702a300f702aa00f702ae00f702a5010702a9010702a0011702a4011702ab011702af011702a6012702aa012702a1013702a5013702ac013702a0014702a7014702ab014702a2015702a6015702ad01570
+2a1016702a8016702ac016702a3017702a7017702ae017702a2018702a9018702ad018702a4019702a8019702af019702a301a702aa01a702ae01a702a501b702a901b702a001c702a401c702ab01c702af01c702a601d702aa01d702a101e702a501e702ac01e702a001f702a701f702ab01f702a2020702a6020702ad020702a1021702a8021702ac021702a3022702a7022702ae022702a2023702a9023250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000004d0250fe09000900280000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000002700000018000000010000
+0000000000fcf2e30000000000250000000c00000001000000250000000c000000080000805600000030000000a202000091010000ab0200009a01000005000000202a1019202aa019b02aa019b02a1019202a1019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b084000023800
+00002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004d0250fe090009003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000021010010000000000000000000000000
+0000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000008b0200007a010000c2020000b101000004000000202aa019b02aa019b02a1019202a1019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a00000022000000
+0c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+001000000055000000eaffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000010000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0122d521883a6c2e7698971a2408654501c458e1020c59
+e102245736019c58530b0859e102969619018ce3c5779382172646e0c5779401300b0000300b86a380071459e1023200280136b000002859e102188d17016b380a7898971a243300180136b0000037bb40006b380a7870374b0ba8d56b0008000000985be102000000001098bf2348004b0b5c014b0bc8921a24f0374b0b00000000f458e10200000500c05be102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700
+000000a48d6a01a459e102f0f31a01ac90a601008a1a2401000000c0921a24bc59e10223e0c577c8921a243a6c2e76a48d6a01c0921a24d059e102ad148b756476000800000000250000000c00000003000000180000000c0000000000000054000000a80000008302000040020000ca0200004c0200000100000000400d4200040dc22e020000aafdffff0f0000004c000000000000000000000000000000ffffffffffffffff
+6c0000002800660072006f006d0020004400690061006700720061006d00730029002f000300000003000000030000000600000007000000030000000700000003000000060000000600000003000000060000000700000005000000030000000a00000010000000abffffffeaffffff0c00000010000000000000000000000046000000780000006c000000454d462b0840000234000000280000000210c0db00000000880000
+00000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003f0073ffb70073ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000092000000750000000e010000790000000200000040097007c0107007250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000b70073ffab0077ffb70073ffab006fff000100011540010010000000040000000000000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000fe000000710000000e0100007d00000002000000040000000200000002000000c010700700103007c01070070010b007250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+0000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b3000c8006fb000000e3621e81900b00175322f7601000e3631001c016fb000008ce3c5773f8f172670374b0b9401300b08000000
+bc79ba26000000001098bf2348004b0b5c014b0be8921a24f0374b0b8ce3c577bc53e1026eb00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000d478ba265c014b0b0e3621e86b380a78307aba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000
+00a4010000620000005900000075010000650000000100000000400d4200040dc20d00000091ffffff390000004c000000000000000000000000000000ffffffffffffffffc00000006100640064005500700064006100740065004c0069007300740065006e00650072002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000570061007200
+6e0069006e0067004c006500760065006c002c00410006000000060000000600000007000000060000000600000006000000030000000600000006000000030000000400000003000000060000000600000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004
+00000003000000060000000600000006000000030000000300000003000000090000000600000003000000060000000300000006000000060000000600000006000000050000000600000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c000000000000
+00540000002c01000062000000660000000b010000720000000100000000400d4200040dc20d00000084ffffff250000004c000000000000000000000000000000ffffffffffffffff98000000430061007400650067006f0072007900490064002c002000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e0065007200290041000700000006000000030000000600
+00000600000006000000030000000500000003000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000a00000010000000abffffffeaffffff0c00000010000000000000000000000028
+0000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c10060ffe90060ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000
+10000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001401000088000000400100008c000000020000006011a008e013a008250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e90060ffe900
+51ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000003c01000088000000400100009b00000002000000e0
+13a008e0139009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000
+00400000e90051ffc60051ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001901000097000000400100
+009b00000002000000e0139009b0119009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000d20055ffd20051ffd2004dffc60051ff280000000c0000000100000024000000240000000000803d0000
+0000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000001b01000095000000270100009d0000000400000070125009701290097012d009b0119009250000000c00000007000080130000000c00000001000000250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000d20055ffd20051ffd2004dffc60051ff24000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001901000093000000290100009f0000000400000070125009701290097012d009b0119009250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b3000c8007eb000000e3621e81900b00175322f7601000e3631001c017eb000008ce3c5773f8f172670374b0b9401300b08000000e8921a24000000001098bf2348004b0b5c014b0be8921a24f0374b0b
+8ce3c577bc53e1027db00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000014d1ba265c014b0b0e3621e86b380a78e8921a245054e1024855e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000c4000000420100008c000000a0010000980000000100000000400d
+4200040dc2ed0000005effffff140000004c000000000000000000000000000000ffffffffffffffff74000000670065006e00650072006100740065004c0069007300740065006e0065007200490064002800290006000000060000000600000006000000030000000600000003000000060000000600000003000000040000000300000006000000060000000600000003000000030000000600000003000000030000000a00
+000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c1002eff41012eff00010001154001001000000004000000000000002100000008
+000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000
+14010000ba00000098010000be000000020000006011c00b6019c00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0
+db00000000000000ff084001032c000000200000000210c0db040000000040000041012eff350132ff41012eff35012aff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00
+000004000000250000000c000000050000805a0000003800000088010000b600000098010000c2000000020000000400000002000000020000006019c00ba018800b6019c00ba018000c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff12000000
+0c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c01997
+1c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b3800c60094b000000e3621e81900b00175322f7601000e3639006c0194b000008ce3c5773f8f172670374b0b9401300b0800000004ddba26000000001098bf2348004b0b5c014b0b68951a24f0374b0b8ce3c577bc53e10293b00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000001cdcba265c014b0b0e3621e86b38
+0a7878ddba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000004401000026010000aa000000ea010000b60000000100000000400d4200040dc2d100000040ffffff290000004c000000000000000000000000000000ffffffffffffffffa000000061006400640055007000640061
+00740065004c0069007300740065006e0065007200280069006e0074002c0020005700610072006e0069006e0067004c006500760065006c002c00200069006e00740029004100060000000600000006000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000600000003000000030000000300000009000000
+06000000030000000600000003000000060000000600000006000000060000000500000006000000030000000300000003000000030000000600000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000
+000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004b010bff73010bff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000009e010000dd000000ca010000e100000002000000001af00d801cf00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+00000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000073010bff7301fcfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000c6010000dd000000ca010000f000000002000000801cf00d801ce00e250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007301fcfe5001fcfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+00005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000a3010000ec000000ca010000f000000002000000801ce00e501ae00e250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100
+0000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff040000005c0100ff5c01fcfe5c01f8fe5001fcfe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000a5010000ea000000b1010000
+f200000004000000101ba00e101be00e101b200f501ae00e250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db000000
+00000000ff0d4000602000000014000000040000005c0100ff5c01fcfe5c01f8fe5001fcfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a3010000e800
+0000b3010000f400000004000000101ba00e101be00e101b200f501ae00e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff0000000000000000
+0000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b3800c600a3b000000e3621e81900b0
+0175322f7601000e3639006c01a3b000008ce3c5773f8f172670374b0b9401300b0800000068951a24000000001098bf2348004b0b5c014b0b68951a24f0374b0b8ce3c577bc53e102a2b00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000004bbba265c014b0b0e3621e86b380a7868951a245054e1024855e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000
+00006476000800000000250000000c00000004000000180000000c00000000000000540000000c010000cc010000e10000005c020000ed0000000100000000400d4200040dc27701000009ffffff200000004c000000000000000000000000000000ffffffffffffffff8c000000630072006500610074006500540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e0065
+0072002800290005000000030000000600000006000000030000000600000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000
+280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004b01bafed101bafe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000
+0010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000009e0100002e010000280200003201000002000000001a0013602200132500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000
+400000d101bafec501befed101bafec501b6fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000018020000
+2a01000028020000360100000200000004000000020000000200000060220013a021c01260220013a0214013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff0052000000700100000400
+0000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b40
+00fc00b9b000000e3621e81900b00175322f7601000e3641006601b9b000008ce3c5773f8f172670374b0b9401300b08000000c484ba26000000001098bf2348004b0b5c014b0b38951a24f0374b0b8ce3c577bc53e102b8b00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000dc83ba265c014b0b0e3621e86b380a783885ba265054e1022c55e1024856e102f571ca7793093353feffffff
+8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000a4010000560100000d01000069020000190100000100000000400d4200040dc201010000ddfeffff390000004c000000000000000000000000000000ffffffffffffffffc00000006100640064005500700064006100740065004c0069007300740065006e0065007200280054007200610066
+0066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c0020005700610072006e0069006e0067004c006500760065006c002c00410006000000060000000600000007000000060000000600000006000000030000000600000006000000030000000400000003000000060000000600000006000000030000000300000007000000030000000600000003000000030000000300
+00000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000090000000600000003000000060000000300000006000000060000000600000006000000050000000600000003000000030000000a00000010000000abffffffeaffffff0c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000
+eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000002c010000560100001a010000ff010000260100000100000000400d4200040dc201010000d0feffff250000004c000000000000000000000000000000ffffffffffffffff98000000430061007400650067006f0072007900490064002c002000540072006100660066006900630049
+006e0063006900640065006e00740073004c0069007300740065006e00650072002900410007000000060000000300000006000000060000000600000003000000050000000300000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600
+0000060000000600000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000f0000000e4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a00000000400000d1019efeca019efec6019efebf
+019efebb019efeb4019efeb0019efea9019efea5019efe9e019efe9a019efe93019efe8f019efe88019efe84019efe7d019efe79019efe72019efe6e019efe67019efe63019efe5c019efe58019efe51019efe4d019efe4b019efe00010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c00000001000000
+0a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000bc0000009e0100004a010000280200004e0100000d0000001a000000020000
+000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006022c014f021c014b021c0144021c0140021c0149020c0145020c014e01fc014a01fc014301fc014f01ec014801ec014401ec014d01dc014901dc014201dc014e01cc014701cc014301cc014c01bc014801bc014101bc014d01ac014601ac014201ac014001ac014250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000004b019efe5701a2fe4b
+019efe57019afe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009e01000046010000ae01000052010000
+02000000040000000200000002000000001ac014c01a8014001ac014c01a0015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff000000000000
+00000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b4800da00cfb000000e3621e819
+00b00175322f7601000e364900f801cfb000008ce3c5773f8f172670374b0b9401300b08000000f4c6ba26000000001098bf2348004b0b5c014b0bc8991a24f0374b0b8ce3c577bc53e102ceb00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000000cc6ba265c014b0b0e3621e86b380a7868c7ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577
+000000006476000800000000250000000c00000004000000180000000c0000000000000054000000dc000000a60100003e010000200200004a0100000100000000400d4200040dc251010000acfeffff180000004c000000000000000000000000000000ffffffffffffffff7c0000006100640064005500700064006100740065004c0069007300740065006e00650072005200650070006c0079002800290006000000060000
+00060000000700000006000000060000000600000003000000060000000600000003000000040000000300000006000000060000000600000003000000070000000600000006000000030000000500000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000
+000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db180000000040000041017cfe3a017cfe36017cfe2f017cfe2b017cfe24017cfe20017cfe19017cfe15017cfe0e017cfe0a017cfe03017cfeff007cfef8007cfef4007cfeed007cfee9007cfee2007cfede007cfed7007cfed3007cfecc007cfec8007cfec1007cfe00010001000100010001000100
+0100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c000000050000805a000000b0000000140100006c01000098010000700100000c000000180000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006019e016f018e016b018e0164018e0160018e0169017e0165017e016e016e016a016e0163016e016f015e0168015e0164015e016d014e0169014e0162014e0
+16e013e0167013e0163013e016c012e0168012e0161012e016d011e0166011e016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000c1007cfecd0080fec1007cfecd0078fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c000000050000805a0000003800000014010000680100002401000074010000020000000400000002000000020000006011e0162012a0166011e01620122017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff46000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffff
+ff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d40733768001
+3376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b5000b001e5b000000e3621e81900b00175322f7601000e3651001201e5b000008ce3c5773f8f172670374b0b9401300b08000000e4b0ba26000000001098bf2348004b0b5c014b0b98921a24f0374b0b8ce3c577bc53e102e4b00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000fcafba265c014b0b0e
+3621e86b380a7858b1ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000dc000000190100005401000094010000600100000100000000400d4200040dc2c400000096feffff180000004c000000000000000000000000000000ffffffffffffffff7c0000004100640064005500
+700064006100740065004c0069007300740065006e00650072005200650070006c007900280029000700000006000000060000000700000006000000060000000600000003000000060000000600000003000000040000000300000006000000060000000600000003000000070000000600000006000000030000000500000003000000030000000a00000010000000abffffffeaffffff0c0000001000000000000000000000
+00280000000c0000000400000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004d0259fedb0159fe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00
+000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002e0200008f010000a40200009301000002000000202a10190023101925
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000
+00400000db0159fee7015dfedb0159fee70155fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000002e0200
+008b0100003e020000970100000200000004000000020000000200000000231019c023d01800231019c0235019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004
+000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b
+5800f600fbb000000e3621e81900b00175322f7601000e3659004401fbb000008ce3c5773f8f172670374b0b9401300b080000000ce8ba26000000001098bf2348004b0b5c014b0b28941a24f0374b0b8ce3c577bc53e102fab00000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000024e7ba265c014b0b0e3621e86b380a7880e8ba265054e1022c55e1024856e102f571ca7793093353feffff
+ff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006c010000fd01000077010000db020000830100000100000000400d4200040dc2a801000073feffff300000004c000000000000000000000000000000ffffffffffffffffac00000075007000640061007400650049006e0063006900640065006e0074007300280046006500650064004900
+64002c00200053007400720069006e0067002c002000540072006100660066006900630049006e0063006900640065006e00740029000600000006000000060000000600000003000000060000000300000006000000050000000300000006000000060000000600000003000000040000000300000006000000060000000600000006000000030000000600000003000000030000000700000003000000030000000300000006
+000000060000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000dc000000d0000000454d462b0840000234000000280000000210c0db000000008800000000000000
+0000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db1600000000400000b70036feb00036feac0036fea50036fea10036fe9a0036fe960036fe8f0036fe8b0036fe840036fe800036fe790036fe750036fe6e0036fe6a0036fe630036fe5f0036fe580036fe540036fe4d0036fe490036fe420036fe00010001000100010001000100010001000100010001000115400100100000
+0004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00
+0000050000805a000000a400000095000000b20100000e010000b60100000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c010401b5010401b1010401ba00f401b600f401bf00e401bb00e401b400e401b000e401b900d401b500d401be00c401ba00c401b300c401bf00b401b800b401b400b401bd00a401b900a401b200a401be009401b70
+09401b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db
+04000000004000003f0036fe4b003afe3f0036fe4b0032fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000
+0092000000ae010000a2000000ba010000020000000400000002000000020000004009401b000a001b4009401b000a801b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff005200000070
+01000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276
+bb3f213b6000a40011b100000e3621e81900b00175322f7601000e366100ca0011b100008ce3c5773f8f172670374b0b9401300b08000000ac63ba26000000001098bf2348004b0b5c014b0b58901a24f0374b0b8ce3c577bc53e10210b10000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000c462ba265c014b0b0e3621e86b380a782064ba265054e1022c55e1024856e102f571ca77930933
+53feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000dc000000940000009d0100000e010000a90100000100000000400d4200040dc23f0000004dfeffff180000004c000000000000000000000000000000ffffffffffffffff7c0000006100640064005500700064006100740065004c0069007300740065006e006500720052006500
+70006c007900280029000600000006000000060000000700000006000000060000000600000003000000060000000600000003000000040000000300000006000000060000000600000003000000070000000600000006000000030000000500000003000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000f0000000e4000000454d462b08
+40000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a00000000400000d10113feca0113fec60113febf0113febb0113feb40113feb00113fea90113fea50113fe9e0113fe9a0113fe930113fe8f0113fe880113fe840113fe7d0113fe790113fe720113fe6e0113fe670113fe630113fe5c0113fe580113fe
+510113fe4d0113fe4b0113fe00010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000
+0000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000bc0000009e010000d501000028020000d90100000d0000001a000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006022701df021701db021701d4021701d0021701d9020701d5020701de01f
+701da01f701d301f701df01e701d801e701d401e701dd01d701d901d701d201d701de01c701d701c701d301c701dc01b701d801b701d101b701dd01a701d601a701d201a701d001a701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c
+000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000004b0113fe570117fe4b0113fe57010ffe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000
+00000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009e010000d1010000ae010000dd01000002000000040000000200000002000000001a701dc01a301d001a701dc01ab01d250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b6800d60127b100000e3621e81900b00175322f7601000e366900ee0127b100008ce3c5773f8f172670374b0b9401300b080000009c4dba26000000001098bf2348004b0b5c014b0b78991a24f0374b0b8ce3c577bc53e10226b10000
+b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b44cba265c014b0b0e3621e86b380a78104eba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000e8000000a80100009c01000020020000a80100000100000000400d4200040dc2530100004efeff
+ff1a0000004c000000000000000000000000000000ffffffffffffffff8000000075007000640061007400650073002800540072006100660066006900630049006e0063006900640065006e007400490064002c0006000000060000000600000006000000030000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600
+000006000000030000000300000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a04000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000b8000000a8010000a9010000f8010000b50100000100000000400d4200040dc25301000041feffff120000004c0000000000000000000000
+00000000ffffffffffffffff70000000540072006100660066006900630049006e0063006900640065006e007400490064002c000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00
+000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000b8000000a8010000b6010000f8010000c20100000100000000400d4200040dc25301000034feffff120000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900630049006e0063006900640065006e007400490064002c0007000000030000000600000003
+00000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000b8000000a8010000c3010000f8010000cf0100
+000100000000400d4200040dc25301000027feffff120000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900630049006e0063006900640065006e0074004900640029000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a0000001000
+0000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db18000000004000004101f0fd3a01f0fd3601f0fd2f01f0fd2b01f0fd2401f0fd2001f0fd1901f0fd1501f0fd0e
+01f0fd0a01f0fd0301f0fdff00f0fdf800f0fdf400f0fded00f0fde900f0fde200f0fdde00f0fdd700f0fdd300f0fdcc00f0fdc800f0fdc100f0fd000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000000000
+0000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000b000000014010000f801000098010000fc0100000c00000018000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+0002000000020000006019a01ff018a01fb018a01f4018a01f0018a01f9017a01f5017a01fe016a01fa016a01f3016a01ff015a01f8015a01f4015a01fd014a01f9014a01f2014a01fe013a01f7013a01f3013a01fc012a01f8012a01f1012a01fd011a01f6011a01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000c100f0fdcd00f4fdc100f0fdcd00ecfd000100011540010010000000040000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000014010000f40100002401000000020000020000000400000002000000020000006011a01f2012601f6011a01f2012e01f250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a0400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276bb3f213b7000bc013db100000e3621e81900b00175322f7601000e36710050013db100008ce3c5773f8f172670374b0b9401300b08000000cc8fba260000000010
+98bf2348004b0b5c014b0b88941a24f0374b0b8ce3c577bc53e1023cb10000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000e48eba265c014b0b0e3621e86b380a784090ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000a00000002e010000
+ca01000077010000d60100000100000000400d4200040dc2d900000020feffff0e0000004c000000000000000000000000000000ffffffffffffffff680000005500700064006100740065007300280049004e005400330032002c0007000000060000000600000006000000030000000600000004000000030000000300000007000000070000000600000006000000030000000a00000010000000abffffffeaffffff0c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000009c0000002e010000d701000071010000e30100000100000000400d4200040dc2d900000013feffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000049004e005400330032002c00200049004e005400330032002c
+004100030000000700000007000000060000000600000003000000030000000300000007000000070000000600000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000700000002e010000e40100004e010000f0010000010000
+0000400d4200040dc2d900000006feffff060000004c000000000000000000000000000000ffffffffffffffff5800000049004e0054003300320029000300000007000000070000000600000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c0000000400000046000000dc000000d0000000454d462b0840000234000000280000000210c0db000000008800
+0000000000000000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db1600000000400000b700cdfdb000cdfdac00cdfda500cdfda100cdfd9a00cdfd9600cdfd8f00cdfd8b00cdfd8400cdfd8000cdfd7900cdfd7500cdfd6e00cdfd6a00cdfd6300cdfd5f00cdfd5800cdfd5400cdfd4d00cdfd4900cdfd4200cdfd00010001000100010001000100010001000100010001000115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000
+250000000c000000050000805a000000a4000000950000001b0200000e0100001f0200000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c010d0215010d0211010d021a00fd021600fd021f00ed021b00ed021400ed021000ed021900dd021500dd021e00cd021a00cd021300cd021f00bd021800bd021400bd021d00ad021900ad021200ad0
+21e009d0217009d021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c0000002000
+00000210c0db04000000004000003f00cdfd4b00d1fd3f00cdfd4b00c9fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a
+000000380000009200000017020000a200000023020000020000000400000002000000020000004009d021000a90214009d021000a1022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff
+00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000d407337600000000d407337680013376c019971c8ce3c577ab8f172646e0c5779401300b0000
+300bc70f3276bb3f213b7800ac0053b100000e3621e81900b00175322f7601000e367900ae0053b100008ce3c5773f8f172670374b0b9401300b080000007c21ba26000000001098bf2348004b0b5c014b0b788f1a24f0374b0b8ce3c577bc53e10252b10000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009420ba265c014b0b0e3621e86b380a78f021ba265054e1022c55e1024856e102f5
+71ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000e800000082000000df010000fa000000eb0100000100000000400d4200040dc22d0000000bfeffff1a0000004c000000000000000000000000000000ffffffffffffffff800000007500700064006100740065007300280054007200610066006600690063004900
+6e0063006900640065006e007400490064002c0006000000060000000600000006000000030000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00
+000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000b800000082000000ec010000d2000000f80100000100000000400d4200040dc22d000000fefdffff120000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900630049006e0063006900640065006e007400490064002c0007000000030000000600000003
+00000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000b800000082000000f9010000d2000000050200
+000100000000400d4200040dc22d000000f1fdffff120000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900630049006e0063006900640065006e007400490064002c000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a0000001000
+0000abffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000520300004a040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c0000001000000055000000eaffffff120000000c00000002000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000b80000008200000006020000d2000000120200000100000000400d4200040dc22d000000e4fdffff120000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900
+630049006e0063006900640065006e0074004900640029000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a00000010000000abffffffeaffffff0c000000100000000000000000000000280000000c00000004000000280000000c000000020000002100000008000000620000000c0000
+0001000000110000000c000000010000000a0000001000000000000000000000004c000000640000000000000000000000e3020000600200000000000000000000e4020000610200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c00
+0000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+Figure: \lang1033\hich\f6\dbch\f6\loch\f6\protect 14\hich\f3\dbch\f3\loch\f3\protect0 \lang3081\hich\f3\dbch\f3\loch\f3\par
+{\*\bkmkstart BKM_F4A238C2_C2C2_4965_96D8_CBEF459FBE4A}{\*\bkmkend BKM_F4A238C2_C2C2_4965_96D8_CBEF459FBE4A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Interaction}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 Configuration}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD Diagram.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3 This diagram shows how one client, the ConfigurationClient, configures the categories of the TrafficIncidentsService and how another client, the TrafficIncidentsClient,
+uses these categories.\ql\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f2\fs22 \'b7\tab}{\*\pn\pnlvlblt\ls42\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls42\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 The ConfigurationClient has the Icon and IconSet information.\par
+The ConfigurationClient reserves IconSetIds for the number of IconSets it wants to define.\par
+The ConfigurationClient creates IconDefinitions and IconSets (using the obtained IconSetIds) and adds these definitions to the TrafficIncidentsService.\par
+In the same way the ConfigurationClient requests CategoryIds for the Categories it wants to add. With these Ids it creates the CategoryDefinitions and adds these definitions to the TrafficIncidentsService.\par
+Any other client can now obtain the Category and Icon information from the TrafficIncidentsService.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\lang3081\hich\f0\dbch\f0\loch\f0\cf0\fs24
+{\*\shppict{\pict\emfblip\picw21364\pich25171\picwgoal12105\pichgoal14265\picscalex77\picscaley77\sspicalign0 010000006c000000f8ffffffffffffff67020000cb0200000000000000000000745300005362000020454d4600000100dc1501009c080000040000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff010037fd5c0237fd5c02ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff5e020000cb02000005000000100010001000902cc025902cc025100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff5800ecff6500faff6500ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000650000001400000006000000
+100040018005400150066000500610001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff5800ecff6500faff6500ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff670000001600000006000000100040018005400150066000500610001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a015ed721883a6c2e76a8921a2408654501705ae102b85ae102245736019c58530bb45ae102969619018ce3c577cf80172646e0c5779401300b0000300b12a4700ac05ae1021600900148b20000d45ae102188d17
+0129410aa7a8921a2417004a0148b2000037bb400029410aa770374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b58941a24f0374b0b00000000a05ae10200000500005de102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1947b200008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26685be1021c0302005cfb8d01b2f3b1001c030200745b
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000560000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007d7b50000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000ac0000000600000004000000560000000f0000000100000000400d4200040dc206000000fcffffff100000004c000000000000000000000000000000ffffffffffffffff6c00000073006400200043006f006e00660069006700750072006100740069006f006e000600000006000000030000000700000006000000060000000300000003000000060000000600000004000000060000000300000003000000
+06000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000a0c10000c8c10a4000c01c00000010000000c0bfc0ff01000000d5009a
+ff6b003100280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000c10000001c0000002c0100004d00000005000000100cc001100c
+d004c012d004c012c001100cc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d5009aff6b
+0031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000aa00000005000000430100006400000004000000100cd004c012d004
+c012c001100cc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000052430000c6c20000d64200004442bed7e8ffe3f2fcffbed7e8ffe3f2fc
+ff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d2009dff6b003100250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c000000080000805600000030000000be00000019000000f50000004a00000005000000be001900be004a00f5004a00f5001900be0019002500
+00000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fcf1e20000000000250000000c00000002000000250000000c000000080000805600000030000000f500000019000000f60000004a00000005000000f5001900f5004a00f6004a00f6001900f5001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027
+000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000f600000019000000f70000004a00000005000000f6001900f6004a00f7004a00f7001900f6001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000
+250000000c000000080000805600000030000000f700000019000000f90000004a00000005000000f7001900f7004a00f9004a00f9001900f7001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000f900000019000000fa0000004a0000
+0005000000f9001900f9004a00fa004a00fa001900f9001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faefde0000000000250000000c00000002000000250000000c000000080000805600000030000000fa00000019000000fc0000004a00000005000000fa001900fa004a00fc004a00fc001900fa001900250000000c0000000800
+0080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000fc00000019000000fd0000004a00000005000000fc001900fc004a00fd004a00fd001900fc001900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002
+00000000000000f9eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000fd00000019000000fe0000004a00000005000000fd001900fd004a00fe004a00fe001900fd001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000
+080000805600000030000000fe00000019000000ff0000004a00000005000000fe001900fe004a00ff004a00ff001900fe001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c000000080000805600000030000000ff00000019000000000100004a00000005000000ff0019
+00ff004a0000014a0000011900ff001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000000001000019000000010100004a000000050000000001190000014a0001014a000101190000011900250000000c00000008000080250000000c00
+000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c0000000800008056000000300000000101000019000000020100004a000000050000000101190001014a0002014a000201190001011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7
+ead90000000000250000000c00000002000000250000000c0000000800008056000000300000000201000019000000030100004a000000050000000201190002014a0003014a000301190002011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c0000000800008056000000
+300000000301000019000000050100004a000000050000000301190003014a0005014a000501190003011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c0000000800008056000000300000000501000019000000060100004a000000050000000501190005014a0006014a
+000601190005011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d60000000000250000000c00000002000000250000000c0000000800008056000000300000000601000019000000070100004a000000050000000601190006014a0007014a000701190006011900250000000c00000008000080250000000c000000000000802800
+00000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c0000000800008056000000300000000701000019000000090100004a000000050000000701190007014a0009014a000901190007011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d4000000000025
+0000000c00000002000000250000000c00000008000080560000003000000009010000190000000b0100004a000000050000000901190009014a000b014a000b01190009011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c0000000800008056000000300000000b010000
+190000000c0100004a000000050000000b0119000b014a000c014a000c0119000b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c0000000800008056000000300000000c010000190000000e0100004a000000050000000c0119000c014a000e014a000e0119000c0119
+00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c0000000800008056000000300000000e010000190000000f0100004a000000050000000e0119000e014a000f014a000f0119000e011900250000000c00000008000080250000000c00000000000080280000000c0000000200
+000027000000180000000200000000000000f2e5d00000000000250000000c00000002000000250000000c0000000800008056000000300000000f01000019000000100100004a000000050000000f0119000f014a0010014a00100119000f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4d00000000000250000000c00000002
+000000250000000c0000000800008056000000300000001001000019000000110100004a000000050000001001190010014a0011014a001101190010011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c00000002000000250000000c000000080000805600000030000000110100001900000012010000
+4a000000050000001101190011014a0012014a001201190011011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c0000000800008056000000300000001201000019000000130100004a000000050000001201190012014a0013014a001301190012011900250000000c0000
+0008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2cd0000000000250000000c00000002000000250000000c0000000800008056000000300000001301000019000000140100004a000000050000001301190013014a0014014a001401190013011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800
+00000200000000000000f0e2cd0000000000250000000c00000002000000250000000c0000000800008056000000300000001401000019000000150100004a000000050000001401190014014a0015014a001501190014011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c
+0000000800008056000000300000001501000019000000160100004a000000050000001501190015014a0016014a001601190015011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c0000000800008056000000300000001601000019000000170100004a00000005000000
+1601190016014a0017014a001701190016011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000001701000019000000190100004a000000050000001701190017014a0019014a001901190017011900250000000c00000008000080250000
+000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c00000008000080560000003000000019010000190000001a0100004a000000050000001901190019014a001a014a001a01190019011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000eedfc80000000000250000000c00000002000000250000000c0000000800008056000000300000001a010000190000001b0100004a000000050000001a0119001a014a001b014a001b0119001a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c0000000800008056
+000000300000001b010000190000001d0100004a000000050000001b0119001b014a001d014a001d0119001b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056000000300000001d010000190000001e0100004a000000050000001d0119001d014a00
+1e014a001e0119001d011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecddc60000000000250000000c00000002000000250000000c0000000800008056000000300000001e010000190000001f0100004a000000050000001e0119001e014a001f014a001f0119001e011900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c0000000800008056000000300000001f01000019000000200100004a000000050000001f0119001f014a0020014a00200119001f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc4000000
+0000250000000c00000002000000250000000c0000000800008056000000300000002001000019000000210100004a000000050000002001190020014a0021014a002101190020011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdbc40000000000250000000c00000002000000250000000c00000008000080560000003000000021
+01000019000000220100004a000000050000002101190021014a0022014a002201190021011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c0000000800008056000000300000002201000019000000230100004a000000050000002201190022014a0023014a0023011900
+22011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c0000000800008056000000300000002301000019000000240100004a000000050000002301190023014a0024014a002401190023011900250000000c00000008000080250000000c00000000000080280000000c0000
+000200000027000000180000000200000000000000ead9c20000000000250000000c00000002000000250000000c0000000800008056000000300000002401000019000000250100004a000000050000002401190024014a0025014a002501190024011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00
+000002000000250000000c0000000800008056000000300000002501000019000000260100004a000000050000002501190025014a0026014a002601190025011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030000000260100001900000028
+0100004a000000050000002601190026014a0028014a002801190026011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7bf0000000000250000000c00000002000000250000000c0000000800008056000000300000002801000019000000290100004a000000050000002801190028014a0029014a00290119002801190025000000
+0c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d2009dff6b0031003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000a700000002000000400100006100000004000000e00ba0049012a00490129001e00b9001250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021058e102245736019c58530b0c58e10296961901e23b0a459c58530bb29619010000000068971a248ce3c5777b83172646e0c5779401300b0000300b188d1701e23b0a450b00b4004ab20000bc58e10237bb4000e23b0a4568971a240c00ac014ab200008882dd19345de10270374b0b0000000008000000000000
+00000000001098bf2348004b0b5c014b0b68971a24f0374b0b000000000c58e10200000000a859e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000060971a24d458e10223e0c57768971a243a6c2e760865450160971a24e858e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800
+0000d4000000cbffffff3c01000099ffffff4b0000001000000000000000050000000a0000001000000014000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000d4000000cbffffff3c010000a1ffffff160000000c00000001000000120000000c00000001000000
+1b000000100000000000000000000000160000000c0000000000000054000000d0000000c20000001c00000026010000280000000100000000400d4200040dc2d6000000cbffffff160000004c000000000000000000000000000000ffffffffffffffff78000000540072006100660066006900630049006e0063006900640065006e007400730043006c00690065006e00740007000000030000000600000003000000030000
+0003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000003000000030000000600000006000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000014000000e7ffffff0c000000100000000000000000000000460000009402000088020000454d462b084000023400
+0000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340020000340200000210c0db6e0000000040000008019cff080195ff080191ff08018aff080186ff08017fff08017bff080174ff080170ff080169ff080165ff08015eff08015aff080153ff08014fff080148ff080144ff08013dff080139ff080132ff08012eff080127ff080123ff08011cff08
+0118ff080111ff08010dff080106ff080102ff0801fbfe0801f7fe0801f0fe0801ecfe0801e5fe0801e1fe0801dafe0801d6fe0801cffe0801cbfe0801c4fe0801c0fe0801b9fe0801b5fe0801aefe0801aafe0801a3fe08019ffe080198fe080194fe08018dfe080189fe080182fe08017efe080177fe080173fe08016cfe080168fe080161fe08015dfe080156fe080152fe08014bfe080147fe080140fe08013cfe080135fe
+080131fe08012afe080126fe08011ffe08011bfe080114fe080110fe080109fe080105fe0801fefd0801fafd0801f3fd0801effd0801e8fd0801e4fd0801ddfd0801d9fd0801d2fd0801cefd0801c7fd0801c3fd0801bcfd0801b8fd0801b1fd0801adfd0801a6fd0801a2fd08019bfd080197fd080190fd08018cfd080185fd080181fd08017afd080176fd08016ffd08016bfd080164fd080160fd080159fd080155fd08014e
+fd08014afd080143fd00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000000100
+00000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000b4020000f200000049000000f6000000a6020000370000006e00000002
+0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000
+02000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000400fb004400f2005400f6005400fd005400f1006400f8006400fc006400f3007400f7007400fe007400f2008400f9008400fd008400f4009400f8009400ff009400f300a400fa00a400fe00a400f500b400f900b400f000c400f400c400fb00c400ff00c400f600d400fa00d400f100e400f50
+0e400fc00e400f000f400f700f400fb00f400f2010400f6010400fd010400f1011400f8011400fc011400f3012400f7012400fe012400f2013400f9013400fd013400f4014400f8014400ff014400f3015400fa015400fe015400f5016400f9016400f0017400f4017400fb017400ff017400f6018400fa018400f1019400f5019400fc019400f001a400f701a400fb01a400f201b400f601b400fd01b400f101c400f801c400f
+c01c400f301d400f701d400fe01d400f201e400f901e400fd01e400f401f400f801f400ff01f400f3020400fa020400fe020400f5021400f9021400f0022400f4022400fb022400ff022400f6023400fa023400f1024400f5024400fc024400f0025400f7025400fb025400f2026400f6026400fd026400f1027400f8027400fc027400f3028400f7028400fe028400f2029400f9029400fd029400f402a250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000030152fd0900bd00280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000
+00000000fcf2e30000000000250000000c00000001000000250000000c000000080000805600000030000000ef000000d8010000f80000009502000005000000f00e801df00e5029800f5029800f801df00e801d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000
+002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000030152fd0900bd003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000000000000000
+00000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000d8000000c10100000f010000ac02000004000000f00e5029800f5029800f801df00e801d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c
+00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000f3019aff71003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000df0100001c000000500200004d00000005000000f01dc001
+f01dd0040025d0040025c001f01dc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f3019a
+ff710031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000c801000005000000670200006400000004000000f01dd0040025
+d0040025c001f01dc001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f8430000c6c20000e24200004442bed7e8ffe3f2fcffbed7e8ffe3
+f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000f0019dff71003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c000000080000805600000030000000dc01000019000000160200004a00000005000000dc011900dc014a0016024a0016021900dc011900
+250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fcf1e20000000000250000000c00000003000000250000000c0000000800008056000000300000001602000019000000170200004a000000050000001602190016024a0017024a001702190016021900250000000c00000008000080250000000c00000000000080280000000c000000030000
+0027000000180000000300000000000000fbf1e10000000000250000000c00000003000000250000000c0000000800008056000000300000001702000019000000190200004a000000050000001702190017024a0019024a001902190017021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c0000000300
+0000250000000c00000008000080560000003000000019020000190000001a0200004a000000050000001902190019024a001a024a001a02190019021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faf0df0000000000250000000c00000003000000250000000c0000000800008056000000300000001a020000190000001b0200004a
+000000050000001a0219001a024a001b024a001b0219001a021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c0000000800008056000000300000001b020000190000001d0200004a000000050000001b0219001b024a001d024a001d0219001b021900250000000c000000
+08000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c00000003000000250000000c0000000800008056000000300000001d020000190000001f0200004a000000050000001d0219001d024a001f024a001f0219001d021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000
+000300000000000000f9eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000001f02000019000000200200004a000000050000001f0219001f024a0020024a00200219001f021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c00
+00000800008056000000300000002002000019000000210200004a000000050000002002190020024a0021024a002102190020021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c00000003000000250000000c0000000800008056000000300000002102000019000000220200004a0000000500000021
+02190021024a0022024a002202190021021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c0000000800008056000000300000002202000019000000240200004a000000050000002202190022024a0024024a002402190022021900250000000c0000000800008025000000
+0c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c00000003000000250000000c0000000800008056000000300000002402000019000000250200004a000000050000002402190024024a0025024a002502190024021900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003000000000000
+00f6ead80000000000250000000c00000003000000250000000c0000000800008056000000300000002502000019000000270200004a000000050000002502190025024a0027024a002702190025021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c000000080000805600
+0000300000002702000019000000280200004a000000050000002702190027024a0028024a002802190027021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e9d60000000000250000000c00000003000000250000000c0000000800008056000000300000002802000019000000290200004a000000050000002802190028024a0029
+024a002902190028021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d60000000000250000000c00000003000000250000000c00000008000080560000003000000029020000190000002a0200004a000000050000002902190029024a002a024a002a02190029021900250000000c00000008000080250000000c00000000000080
+280000000c0000000300000027000000180000000300000000000000f5e8d50000000000250000000c00000003000000250000000c0000000800008056000000300000002a020000190000002b0200004a000000050000002a0219002a024a002b024a002b0219002a021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d400000000
+00250000000c00000003000000250000000c0000000800008056000000300000002b020000190000002d0200004a000000050000002b0219002b024a002d024a002d0219002b021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000250000000c00000003000000250000000c0000000800008056000000300000002d02
+0000190000002e0200004a000000050000002d0219002d024a002e024a002e0219002d021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d30000000000250000000c00000003000000250000000c0000000800008056000000300000002e020000190000002f0200004a000000050000002e0219002e024a002f024a002f0219002e
+021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c0000000800008056000000300000002f02000019000000300200004a000000050000002f0219002f024a0030024a00300219002f021900250000000c00000008000080250000000c00000000000080280000000c000000
+0300000027000000180000000300000000000000f2e5d10000000000250000000c00000003000000250000000c0000000800008056000000300000003002000019000000320200004a000000050000003002190030024a0032024a003202190030021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e4d00000000000250000000c0000
+0003000000250000000c0000000800008056000000300000003202000019000000330200004a000000050000003202190032024a0033024a003302190032021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4cf0000000000250000000c00000003000000250000000c00000008000080560000003000000033020000190000003402
+00004a000000050000003302190033024a0034024a003402190033021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3cf0000000000250000000c00000003000000250000000c0000000800008056000000300000003402000019000000350200004a000000050000003402190034024a0035024a003502190034021900250000000c
+00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c0000000800008056000000300000003502000019000000360200004a000000050000003502190035024a0036024a003602190035021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000
+180000000300000000000000f1e2cd0000000000250000000c00000003000000250000000c0000000800008056000000300000003602000019000000370200004a000000050000003602190036024a0037024a003702190036021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cd0000000000250000000c00000003000000250000
+000c0000000800008056000000300000003702000019000000380200004a000000050000003702190037024a0038024a003802190037021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c0000000800008056000000300000003802000019000000390200004a0000000500
+00003802190038024a0039024a003902190038021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cb0000000000250000000c00000003000000250000000c00000008000080560000003000000039020000190000003a0200004a000000050000003902190039024a003a024a003a02190039021900250000000c0000000800008025
+0000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c0000000800008056000000300000003a020000190000003c0200004a000000050000003a0219003a024a003c024a003c0219003a021900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003000000
+00000000eedfc90000000000250000000c00000003000000250000000c0000000800008056000000300000003c020000190000003d0200004a000000050000003c0219003c024a003d024a003d0219003c021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c000000080000
+8056000000300000003d020000190000003e0200004a000000050000003d0219003d024a003e024a003e0219003d021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec80000000000250000000c00000003000000250000000c0000000800008056000000300000003e020000190000003f0200004a000000050000003e0219003e02
+4a003f024a003f0219003e021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c0000000800008056000000300000003f02000019000000400200004a000000050000003f0219003f024a0040024a00400219003f021900250000000c00000008000080250000000c00000000
+000080280000000c0000000300000027000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c0000000800008056000000300000004002000019000000410200004a000000050000004002190040024a0041024a004102190040021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecddc600
+00000000250000000c00000003000000250000000c0000000800008056000000300000004102000019000000420200004a000000050000004102190041024a0042024a004202190041021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdcc50000000000250000000c00000003000000250000000c0000000800008056000000300000
+004202000019000000440200004a000000050000004202190042024a0044024a004402190042021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000004402000019000000450200004a000000050000004402190044024a0045024a004502
+190044021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000004502000019000000460200004a000000050000004502190045024a0046024a004602190045021900250000000c00000008000080250000000c00000000000080280000000c
+0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c0000000800008056000000300000004602000019000000470200004a000000050000004602190046024a0047024a004702190046021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac2000000000025000000
+0c00000003000000250000000c0000000800008056000000300000004702000019000000480200004a000000050000004702190047024a0048024a004802190047021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c00000008000080560000003000000048020000190000
+00490200004a000000050000004802190048024a0049024a004902190048021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c10000000000250000000c00000003000000250000000c00000008000080560000003000000049020000190000004a0200004a000000050000004902190049024a004a024a004a021900490219002500
+00000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8c00000000000250000000c00000003000000250000000c0000000800008056000000300000004a020000190000004b0200004a000000050000004a0219004a024a004b024a004b0219004a021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027
+000000180000000300000000000000e9d8bf0000000000250000000c00000003000000250000000c0000000800008056000000300000004b020000190000004c0200004a000000050000004b0219004b024a004c024a004c0219004b021900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000
+250000000c0000000800008056000000300000004c020000190000004d0200004a000000050000004c0219004c024a004d024a004d0219004c021900250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000
+000210c0db00000000000000ff0b400040180000000c00000001000000f0019dff710031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805600
+00002c000000c501000002000000640200006100000004000000c01da004d024a004d0249001c01d9001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c000000000000001e00000018000000f2010000cbffffff6002000099ffffff4b0000001000000000000000050000000a0000001000000014000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000f2010000cbffffff6002
+0000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000d8000000df0100001c0000004a020000280000000100000000400d4200040dc2f3010000cbffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e007400730053
+00650072007600690063006500002707000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000600000003000000050000000300000005000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000014000000e7ffffff
+0c000000100000000000000000000000460000009402000088020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340020000340200000210c0db6e0000000040000029029cff290295ff290291ff29028aff290286ff29027fff29027bff290274ff290270ff290269ff290265ff29025eff29025aff290253ff29024f
+ff290248ff290244ff29023dff290239ff290232ff29022eff290227ff290223ff29021cff290218ff290211ff29020dff290206ff290202ff2902fbfe2902f7fe2902f0fe2902ecfe2902e5fe2902e1fe2902dafe2902d6fe2902cffe2902cbfe2902c4fe2902c0fe2902b9fe2902b5fe2902aefe2902aafe2902a3fe29029ffe290298fe290294fe29028dfe290289fe290282fe29027efe290277fe290273fe29026cfe2902
+68fe290261fe29025dfe290256fe290252fe29024bfe290247fe290240fe29023cfe290235fe290231fe29022afe290226fe29021ffe29021bfe290214fe290210fe290209fe290205fe2902fefd2902fafd2902f3fd2902effd2902e8fd2902e4fd2902ddfd2902d9fd2902d2fd2902cefd2902c7fd2902c3fd2902bcfd2902b8fd2902b1fd2902adfd2902a6fd2902a2fd29029bfd290297fd290290fd29028cfd290285fd29
+0281fd29027afd290276fd29026ffd29026bfd290264fd290260fd290259fd290255fd29024efd29024afd290243fd000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c0000
+00050000805a000000b4020000130200004900000017020000a6020000370000006e00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000005021b00450212005502160055021d00550211006502180065021c00650213007502170075021e00750212008502190085021d00850214009502180095021f0095021300a5021a00a5021e00a50
+21500b5021900b5021000c5021400c5021b00c5021f00c5021600d5021a00d5021100e5021500e5021c00e5021000f5021700f5021b00f50212010502160105021d01050211011502180115021c01150213012502170125021e01250212013502190135021d01350214014502180145021f014502130155021a0155021e015502150165021901650210017502140175021b0175021f017502160185021a0185021101950215019
+5021c0195021001a5021701a5021b01a5021201b5021601b5021d01b5021101c5021801c5021c01c5021301d5021701d5021e01d5021201e5021901e5021d01e5021401f5021801f5021f01f502130205021a0205021e020502150215021902150210022502140225021b0225021f022502160235021a02350211024502150245021c02450210025502170255021b02550212026502160265021d02650211027502180275021c0
+2750213028502170285021e02850212029502190295021d0295021402a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000240240ff09003100280000000c0000000100000024000000240000000000
+803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c000000080000805600000030000000100200007600000019020000a700000005000000002160070021700a9021700a9021600700216007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000240240ff090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f90100005f00000030020000be000000040000000021700a9021700a9021600700216007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000002402fafe0900310024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000010020000bc00000019020000ed000000050000000021
+c00b0021d00e9021d00e9021c00b0021c00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000024
+02fafe090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f9010000a50000003002000004010000040000000021d00e
+9021d00e9021c00b0021c00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000002402b4fe0900310024000000240000000000803d00000000000000000000803d000000
+000000000002000000250000000c00000001000000250000000c00000008000080560000003000000010020000020100001902000033010000050000000021201000213013902130139021201000212010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002402b4fe090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000000000000000000000
+00000000000000250000000c00000003000000250000000c00000005000080560000002c000000f9010000eb000000300200004a0100000400000000213013902130139021201000212010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c000000
+20000000454d462b0a4000c01c00000010000000e3f2fcff0100000024026efe0900310024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000010020000480100001902000079010000050000000021801400219017902190179021801400218014250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000024026efe090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f90100003101000030020000900100000400000000219017902190179021801400218014250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000240224fe0900310024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000
+100200009201000019020000c301000005000000002120190021301c9021301c9021201900212019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0b400040180000000c00000001000000240224fe090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f901
+00007b01000030020000da010000040000000021301c9021301c9021201900212019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000002402defd090031002400000024
+0000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000010020000d80100001902000009020000050000000021801d00219020902190209021801d0021801d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000
+6000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002402defd090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000
+0000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f9010000c101000030020000200200000400000000219020902190209021801d0021801d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300
+00003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000240298fd0900310024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000100200001e020000190200004f020000050000000021e0210021f0249021f0249021e0210021e02125
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000240298fd090031003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f9010000070200003002000066020000040000000021f0249021f0249021e0210021e021250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000240252fd0900310024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000000100
+0000250000000c00000008000080560000003000000010020000640200001902000095020000050000000021402600215029902150299021402600214026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000000000000000
+00803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000240252fd090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000
+250000000c00000005000080560000002c000000f90100004d02000030020000ac0200000400000000215029902150299021402600214026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c000000100000
+00c0bfc0ff0100000026009aff63003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000750000004d000000050000002001c0012001d0045007d0045007c0012001c001250000000c00
+000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000026009aff630031003a0000000c0000000a0000002400000024
+0000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000fbffffff050000008c00000064000000040000002001d0045007d0045007c0012001c001250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000000c420000c6c20000c64200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fc
+ffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000023009dff63003100250000000c0000000800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c0000000800008056000000300000000f00000019000000420000004a000000050000000f0019000f004a0042004a00420019000f001900250000000c00000008000080250000000c0000000000
+0080280000000c0000000300000027000000180000000300000000000000fcf1e20000000000250000000c00000003000000250000000c0000000800008056000000300000004200000019000000430000004a000000050000004200190042004a0043004a004300190042001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000
+000000250000000c00000003000000250000000c0000000800008056000000300000004300000019000000440000004a000000050000004300190043004a0044004a004400190043001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0e00000000000250000000c00000003000000250000000c000000080000805600000030000000
+4400000019000000450000004a000000050000004400190044004a0045004a004500190044001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf0df0000000000250000000c00000003000000250000000c0000000800008056000000300000004500000019000000460000004a000000050000004500190045004a0046004a00460019
+0045001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faefdf0000000000250000000c00000003000000250000000c0000000800008056000000300000004600000019000000470000004a000000050000004600190046004a0047004a004700190046001900250000000c00000008000080250000000c00000000000080280000000c00
+00000300000027000000180000000300000000000000faefde0000000000250000000c00000003000000250000000c0000000800008056000000300000004700000019000000480000004a000000050000004700190047004a0048004a004800190047001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f9eedd0000000000250000000c
+00000003000000250000000c00000008000080560000003000000048000000190000004a0000004a000000050000004800190048004a004a004a004a00190048001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000004a00000019000000
+4b0000004a000000050000004a0019004a004a004b004a004b0019004a001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8ecdb0000000000250000000c00000003000000250000000c0000000800008056000000300000004b000000190000004c0000004a000000050000004b0019004b004a004c004a004c0019004b001900250000
+000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ecdb0000000000250000000c00000003000000250000000c0000000800008056000000300000004c000000190000004d0000004a000000050000004c0019004c004a004d004a004d0019004c001900250000000c00000008000080250000000c00000000000080280000000c000000030000002700
+0000180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c0000000800008056000000300000004d000000190000004e0000004a000000050000004d0019004d004a004e004a004e0019004d001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f7ead90000000000250000000c0000000300000025
+0000000c0000000800008056000000300000004e000000190000004f0000004a000000050000004e0019004e004a004f004a004f0019004e001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000000c0000000800008056000000300000004f00000019000000500000004a000000
+050000004f0019004f004a0050004a00500019004f001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d70000000000250000000c00000003000000250000000c0000000800008056000000300000005000000019000000520000004a000000050000005000190050004a0052004a005200190050001900250000000c000000080000
+80250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e9d60000000000250000000c00000003000000250000000c0000000800008056000000300000005200000019000000530000004a000000050000005200190052004a0053004a005300190052001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300
+000000000000f5e8d50000000000250000000c00000003000000250000000c0000000800008056000000300000005300000019000000540000004a000000050000005300190053004a0054004a005400190053001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f5e8d40000000000250000000c00000003000000250000000c00000008
+00008056000000300000005400000019000000550000004a000000050000005400190054004a0055004a005500190054001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c0000000800008056000000300000005500000019000000560000004a0000000500000055001900
+55004a0056004a005600190055001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d30000000000250000000c00000003000000250000000c0000000800008056000000300000005600000019000000570000004a000000050000005600190056004a0057004a005700190056001900250000000c00000008000080250000000c0000
+0000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c0000000800008056000000300000005700000019000000590000004a000000050000005700190057004a0059004a005900190057001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5
+d10000000000250000000c00000003000000250000000c00000008000080560000003000000059000000190000005a0000004a000000050000005900190059004a005a004a005a00190059001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f2e5d00000000000250000000c00000003000000250000000c000000080000805600000030
+0000005a000000190000005b0000004a000000050000005a0019005a004a005b004a005b0019005a001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e4d00000000000250000000c00000003000000250000000c0000000800008056000000300000005b000000190000005c0000004a000000050000005b0019005b004a005c004a00
+5c0019005b001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3cf0000000000250000000c00000003000000250000000c0000000800008056000000300000005c000000190000005d0000004a000000050000005c0019005c004a005d004a005d0019005c001900250000000c00000008000080250000000c00000000000080280000
+000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c0000000800008056000000300000005d000000190000005e0000004a000000050000005d0019005d004a005e004a005e0019005d001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e2cd00000000002500
+00000c00000003000000250000000c0000000800008056000000300000005e000000190000005f0000004a000000050000005e0019005e004a005f004a005f0019005e001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c0000000800008056000000300000005f00000019
+000000610000004a000000050000005f0019005f004a0061004a00610019005f001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0cb0000000000250000000c00000003000000250000000c0000000800008056000000300000006100000019000000620000004a000000050000006100190061004a0062004a006200190061001900
+250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c0000000800008056000000300000006200000019000000630000004a000000050000006200190062004a0063004a006300190062001900250000000c00000008000080250000000c00000000000080280000000c000000030000
+0027000000180000000300000000000000eedfc90000000000250000000c00000003000000250000000c0000000800008056000000300000006300000019000000640000004a000000050000006300190063004a0064004a006400190063001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c0000000300
+0000250000000c0000000800008056000000300000006400000019000000650000004a000000050000006400190064004a0065004a006500190064001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec80000000000250000000c00000003000000250000000c0000000800008056000000300000006500000019000000660000004a
+000000050000006500190065004a0066004a006600190065001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000eddec70000000000250000000c00000003000000250000000c0000000800008056000000300000006600000019000000670000004a000000050000006600190066004a0067004a006700190066001900250000000c000000
+08000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000edddc60000000000250000000c00000003000000250000000c0000000800008056000000300000006700000019000000680000004a000000050000006700190067004a0068004a006800190067001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000
+000300000000000000ecdcc50000000000250000000c00000003000000250000000c00000008000080560000003000000068000000190000006a0000004a000000050000006800190068004a006a004a006a00190068001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c00
+00000800008056000000300000006a000000190000006b0000004a000000050000006a0019006a004a006b004a006b0019006a001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000006b000000190000006c0000004a000000050000006b
+0019006b004a006c004a006c0019006b001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac30000000000250000000c00000003000000250000000c0000000800008056000000300000006c000000190000006d0000004a000000050000006c0019006c004a006d004a006d0019006c001900250000000c0000000800008025000000
+0c00000000000080280000000c0000000300000027000000180000000300000000000000ead9c20000000000250000000c00000003000000250000000c0000000800008056000000300000006d000000190000006e0000004a000000050000006d0019006d004a006e004a006e0019006d001900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003000000000000
+00ead9c10000000000250000000c00000003000000250000000c0000000800008056000000300000006e000000190000006f0000004a000000050000006e0019006e004a006f004a006f0019006e001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e9d8c00000000000250000000c00000003000000250000000c000000080000805600
+0000300000006f00000019000000710000004a000000050000006f0019006f004a0071004a00710019006f001900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c0000000800008056000000300000007100000019000000720000004a000000050000007100190071004a0072
+004a007200190071001900250000000c00000008000080250000000c00000000000080280000000c00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000023009dff630031003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c000000f8ffffff02000000890000006100000004000000f000a0042007a00420079001f0009001250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000025000000cbffffff8500000099ffffff4b
+0000001000000000000000050000000a0000001000000014000000e7ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000025000000cbffffff85000000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000
+000c0000000000000054000000c0000000130000001c0000006f000000280000000100000000400d4200040dc227000000cbffffff130000004c000000000000000000000000000000ffffffffffffffff7400000043006f006e00660069006700750072006100740069006f006e0043006c00690065006e0074000003070000000600000006000000030000000300000006000000060000000300000006000000030000000300
+000006000000060000000700000003000000030000000600000006000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000014000000e7ffffff0c000000100000000000000000000000460000009402000088020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f020000000000000002
+10c0db00000000000000ff0840010340020000340200000210c0db6e0000000040000055009cff550095ff550091ff55008aff550086ff55007fff55007bff550074ff550070ff550069ff550065ff55005eff55005aff550053ff55004fff550048ff550044ff55003dff550039ff550032ff55002eff550027ff550023ff55001cff550018ff550011ff55000dff550006ff550002ff5500fbfe5500f7fe5500f0fe5500ecfe
+5500e5fe5500e1fe5500dafe5500d6fe5500cffe5500cbfe5500c4fe5500c0fe5500b9fe5500b5fe5500aefe5500aafe5500a3fe55009ffe550098fe550094fe55008dfe550089fe550082fe55007efe550077fe550073fe55006cfe550068fe550061fe55005dfe550056fe550052fe55004bfe550047fe550040fe55003cfe550035fe550031fe55002afe550026fe55001ffe55001bfe550014fe550010fe550009fe550005
+fe5500fefd5500fafd5500f3fd5500effd5500e8fd5500e4fd5500ddfd5500d9fd5500d2fd5500cefd5500c7fd5500c3fd5500bcfd5500b8fd5500b1fd5500adfd5500a6fd5500a2fd55009bfd550097fd550090fd55008cfd550085fd550081fd55007afd550076fd55006ffd55006bfd550064fd550060fd550059fd550055fd55004efd55004afd550043fd0001000100010001000100010001000100010001000100010001
+0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000b40200003f0000004900000043000000a6020000370000006e000000020000000200000002000000020000000200000002000000020000000200000002000000
+0200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000001004b00410042005100460051004d00510041006100480061004c00610043007100470071004e00710042008100490081004d00810044009100480091004f0091004300a1004a00a1004e00a1004500b1004900b1004000c1004400c1004b00c1004f00c1004600d1004a00d1004100e1004500e1004c00e1004000f1004700f1004b00f10042010100460101004d010100410111004
+80111004c01110043012100470121004e01210042013100490131004d01310044014100480141004f014100430151004a0151004e015100450161004901610040017100440171004b0171004f017100460181004a01810041019100450191004c0191004001a1004701a1004b01a1004201b1004601b1004d01b1004101c1004801c1004c01c1004301d1004701d1004e01d1004201e1004901e1004d01e1004401f1004801f10
+04f01f100430201004a0201004e020100450211004902110040022100440221004b0221004f022100460231004a02310041024100450241004c02410040025100470251004b02510042026100460261004d02610041027100480271004c02710043028100470281004e02810042029100490291004d0291004402a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000500024fe09004d01280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c000000080000
+8056000000300000003c0000007600000045000000c301000005000000c0036007c003301c5004301c50046007c0036007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000000000ff0b400040180000000c00000001000000500024fe09004d013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c0000000500008056
+0000002c000000250000005f0000005c000000da01000004000000c003301c5004301c50046007c0036007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a00000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000
+000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005a0071ff240271ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000002010010000000000000000000000000000000000000
+0000000000250000000c00000003000000250000000c00000005000080570000002400000044000000740000001202000078000000020000006004600700216007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210
+c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000240271ff180275ff240271ff18026dff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000
+00000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000000202000070000000120200007c000000020000000400000002000000020000000021600740202007002160074020a007250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00
+000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b508005e0175b20000303f21f41900b00175322f760100303f0900ba0175b200008ce3c5773f8f172670374b0b9401300b08000000fcd1ba26000000001098bf2348004b0b5c014b0bd8971a24f0374b0b8ce3c577bc53e10274b20000b455e102f571ca7793
+093353feffffff8ce3c577f2e0c57746e0c5770000000014d1ba265c014b0b303f21f4e23b0a4670d2ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c000000000000005400000084010000b500000068000000a1010000740000000100000000400d4200040dc2c90000007fffffff340000004c000000
+000000000000000000000000ffffffffffffffffb40000007200650073006500720076006500490063006f006e005300650074004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200049006e00740065006700650072002900030000000600000004000000060000000300000005000000060000000300000005000000060000
+0006000000070000000600000003000000030000000600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000300
+00000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c00000003000000460000001002000004020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103bc010000b00100000210c0db540000000040000024024eff1d024eff19024eff12024eff0e024eff07024eff03024efffc
+014efff8014efff1014effed014effe6014effe2014effdb014effd7014effd0014effcc014effc5014effc1014effba014effb6014effaf014effab014effa4014effa0014eff99014eff95014eff8e014eff8a014eff83014eff7f014eff78014eff74014eff6d014eff69014eff62014eff5e014eff57014eff53014eff4c014eff48014eff41014eff3d014eff36014eff32014eff2b014eff27014eff20014eff1c014eff
+15014eff11014eff0a014eff06014effff004efffb004efff4004efff0004effe9004effe5004effde004effda004effd3004effcf004effc8004effc4004effbd004effb9004effb2004effae004effa7004effa3004eff9c004eff98004eff91004eff8d004eff86004eff82004eff7b004eff77004eff70004eff6c004eff65004eff61004eff5a004eff000100010001000100010001000100010001000100010001000100
+010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300
+00003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000180200004400000097000000120200009b0000002a000000540000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000002190099020900950209009e01f9009a01f9009301f9009f01e9009801e9009401e9009d01d9009901d9009201d9009e01c9009701c9009301c9009c01b9009
+801b9009101b9009d01a9009601a9009201a9009b01990097019900900199009c01890095018900910189009a017900960179009f0169009b016900940169009001690099015900950159009e0149009a014900930149009f01390098013900940139009d01290099012900920129009e01190097011900930119009c01090098010900910109009d00f9009600f9009200f9009b00e9009700e9009000e9009c00d9009500d90
+09100d9009a00c9009600c9009f00b9009b00b9009400b9009000b9009900a9009500a9009e0099009a009900930099009f00890098008900940089009d00790099007900920079009e00690097006900930069009c00590098005900910059009d004900960049009250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005a004eff660052ff5a004eff66004aff000100011540010010000000040000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000004400000093000000540000009f000000020000000400000002000000020000006004900920055009600490092005d009250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b51000ee008bb20000303f21f41900b00175322f760100303f11009c008bb200008ce3c5773f8f172670374b0b9401300b0800000004ddba260000000010
+98bf2348004b0b5c014b0be88e1a24f0374b0b8ce3c577bc53e1028ab20000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000001cdcba265c014b0b303f21f4e23b0a4678ddba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c000000000000005400000014010000db000000
+8b0000007b010000970000000100000000400d4200040dc2ef0000005cffffff210000004c000000000000000000000000000000ffffffffffffffff900000007200650073006500720076006500490063006f006e005300650074004900640073005200650070006c0079002800490063006f006e0053006500740049006400290000000300000006000000040000000600000003000000050000000600000003000000050000
+000600000006000000070000000600000003000000030000000600000004000000070000000600000006000000030000000500000003000000030000000500000006000000060000000700000006000000030000000300000006000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b08400002340000002800
+00000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005a002bff24022bff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00
+00000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080570000002400000044000000ba00000012020000be000000020000006004c00b0021c00b250000000c00000007000080250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000024022bff18022fff24022bff180227ff00010001154001001000000004000000000000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003800000002020000b600000012020000c2000000020000000400000002000000020000000021c00b4020800b0021
+c00b4020000c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff0000000000000000000000000000000000000001000005004100520049004100
+4c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b518007601a1b20000303f21f41900b00175322f760100303f19001801a1b200008ce3c5773f8f17
+2670374b0b9401300b08000000ecbbba26000000001098bf2348004b0b5c014b0bc8921a24f0374b0b8ce3c577bc53e102a0b20000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000004bbba265c014b0b303f21f4e23b0a4660bcba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c000000030000001800
+00000c0000000000000054000000b4010000a2000000ae000000b5010000ba0000000100000000400d4200040dc2b600000039ffffff3c0000004c000000000000000000000000000000ffffffffffffffffc4000000610064006400490063006f006e0044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e
+00650072002c002000490063006f006e0044006500660069006e006900740069006f006e0029000600000006000000060000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000
+060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000600000006000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c000000030000004600000010020000040200
+00454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103bc010000b00100000210c0db5400000000400000240208ff1d0208ff190208ff120208ff0e0208ff070208ff030208fffc0108fff80108fff10108ffed0108ffe60108ffe20108ffdb0108ffd70108ffd00108ffcc0108ffc50108ffc10108ffba0108ffb60108ffaf01
+08ffab0108ffa40108ffa00108ff990108ff950108ff8e0108ff8a0108ff830108ff7f0108ff780108ff740108ff6d0108ff690108ff620108ff5e0108ff570108ff530108ff4c0108ff480108ff410108ff3d0108ff360108ff320108ff2b0108ff270108ff200108ff1c0108ff150108ff110108ff0a0108ff060108ffff0008fffb0008fff40008fff00008ffe90008ffe50008ffde0008ffda0008ffd30008ffcf0008ffc8
+0008ffc40008ffbd0008ffb90008ffb20008ffae0008ffa70008ffa30008ff9c0008ff980008ff910008ff8d0008ff860008ff820008ff7b0008ff770008ff700008ff6c0008ff650008ff610008ff5a0008ff000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001
+154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c000000030000
+00250000000c000000050000805a0000001802000044000000dd00000012020000e10000002a000000540000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000021f00d9020f00d5020f00de01ff00da01ff00d301ff00df01ef00d801ef00d401ef00dd01df00d901df00d201df00de01cf00d701cf00d301cf00dc01bf00d801bf00d101bf00dd01af00d601af00d201af00db019f00d7019f00d0019f00dc018f00d5018f00d1018f00da017f00d6017f00df016f00db0
+16f00d4016f00d0016f00d9015f00d5015f00de014f00da014f00d3014f00df013f00d8013f00d4013f00dd012f00d9012f00d2012f00de011f00d7011f00d3011f00dc010f00d8010f00d1010f00dd00ff00d600ff00d200ff00db00ef00d700ef00d000ef00dc00df00d500df00d100df00da00cf00d600cf00df00bf00db00bf00d400bf00d000bf00d900af00d500af00de009f00da009f00d3009f00df008f00d8008f00d
+4008f00dd007f00d9007f00d2007f00de006f00d7006f00d3006f00dc005f00d8005f00d1005f00dd004f00d6004f00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e00000000000000000080
+3f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005a0008ff66000cff5a0008ff660004ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000010010010000000000000000000
+0000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003800000044000000d900000054000000e5000000020000000400000002000000020000006004f00d2005b00d6004f00d2005300e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000022
+0000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000000000000000
+00b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b52000fe00b7b20000303f21f41900b00175322f760100303f21007401b7b200008ce3c5773f8f172670374b0b9401300b08000000c484ba26000000001098bf2348004b0b5c014b0ba8951a24f0374b0b8ce3c577bc53e102b6b20000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0
+c57700000000dc83ba265c014b0b303f21f4e23b0a463885ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000e4000000ef000000d100000068010000dd0000000100000000400d4200040dc20301000016ffffff190000004c000000000000000000000000000000ffffffffff
+ffffff80000000610064006400490063006f006e0044006500660069006e006900740069006f006e0073005200650070006c00790028002900001c060000000600000006000000030000000500000006000000060000000700000006000000030000000300000006000000030000000300000003000000060000000600000004000000070000000600000006000000030000000500000003000000030000000a00000010000000
+14000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005a00e5fe2402e5fe00010001154001001000000004000000000000002100000008000000620000
+000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805700000024000000440000000001
+00001202000004010000020000006004201000212010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db0000000000
+0000ff084001032c000000200000000210c0db04000000004000002402e5fe1802e9fe2402e5fe1802e1fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000
+250000000c000000050000805a0000003800000002020000fc000000120200000801000002000000040000000200000002000000002120104020e00f0021201040206010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c0000000200
+0000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab
+8f172646e0c5779401300b0000300bc70f32768b3621b52800d600cdb20000303f21f41900b00175322f760100303f2900bc01cdb200008ce3c5773f8f172670374b0b9401300b08000000f4c6ba26000000001098bf2348004b0b5c014b0be8971a24f0374b0b8ce3c577bc53e102ccb20000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000000cc6ba265c014b0b303f21f4e23b0a4668c7ba26
+5054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000009c010000a9000000f4000000ae010000000100000100000000400d4200040dc2bd000000f3feffff380000004c000000000000000000000000000000ffffffffffffffffbc000000610064006400490063006f006e005300650074
+0044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000490063006f006e0053006500740029000600000006000000060000000300000005000000060000000600000007000000060000000300000007000000060000000300000003000000060000000300000003000000030000000600
+0000060000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000003000000050000000600000006000000070000000600000003000000030000000a0000001000000014000000e7ffffff0c
+000000100000000000000000000000280000000c00000003000000460000001002000004020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103bc010000b00100000210c0db54000000004000002402c2fe1d02c2fe1902c2fe1202c2fe0e02c2fe0702c2fe0302c2fefc01c2fef801c2fef101c2feed01c2fee601c2fe
+e201c2fedb01c2fed701c2fed001c2fecc01c2fec501c2fec101c2feba01c2feb601c2feaf01c2feab01c2fea401c2fea001c2fe9901c2fe9501c2fe8e01c2fe8a01c2fe8301c2fe7f01c2fe7801c2fe7401c2fe6d01c2fe6901c2fe6201c2fe5e01c2fe5701c2fe5301c2fe4c01c2fe4801c2fe4101c2fe3d01c2fe3601c2fe3201c2fe2b01c2fe2701c2fe2001c2fe1c01c2fe1501c2fe1101c2fe0a01c2fe0601c2feff00c2
+fefb00c2fef400c2fef000c2fee900c2fee500c2fede00c2feda00c2fed300c2fecf00c2fec800c2fec400c2febd00c2feb900c2feb200c2feae00c2fea700c2fea300c2fe9c00c2fe9800c2fe9100c2fe8d00c2fe8600c2fe8200c2fe7b00c2fe7700c2fe7000c2fe6c00c2fe6500c2fe6100c2fe5a00c2fe00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001
+0001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000
+020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000018020000440000002301000012020000270100002a00000054000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000
+020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000002150129020501250205012e01f5012a01f5012301f5012f01e5012801e5012401e5012d01d5012901d5012201d5012e01c5012701c5012301c5012c01b5012801b5012101b5012d01a5012601a5012201a50
+12b01950127019501200195012c01850125018501210185012a017501260175012f0165012b016501240165012001650129015501250155012e0145012a014501230145012f01350128013501240135012d01250129012501220125012e01150127011501230115012c01050128010501210105012d00f5012600f5012200f5012b00e5012700e5012000e5012c00d5012500d5012100d5012a00c5012600c5012f00b5012b00b
+5012400b5012000b5012900a5012500a5012e0095012a009501230095012f00850128008501240085012d00750129007501220075012e00650127006501230065012c00550128005501210055012d004501260045012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c
+000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005a00c2fe6600c6fe5a00c2fe6600befe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+38000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000440000001f010000540000002b0100000200000004000000020000000200000060045012200510126004501220059012250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b53000ee01e3b20000303f21f41900b00175322f760100303f3100d601e3b200008ce3c5773f8f172670374b0b9401300b08000000e4b0ba26000000001098bf2348004b0b5c014b0bb8981a24f0374b0b
+8ce3c577bc53e102e2b20000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000fcafba265c014b0b303f21f4e23b0a4658b1ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000f4000000e70000001701000070010000230100000100000000400d
+4200040dc2fb000000d0feffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000610064006400490063006f006e0053006500740044006500660069006e006900740069006f006e0073005200650070006c00790028002900060000000600000006000000030000000500000006000000060000000700000006000000030000000700000006000000030000000300000006000000030000000300
+000003000000060000000600000004000000070000000600000006000000030000000500000003000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001032400000018
+0000000210c0db02000000004000005a009ffe24029ffe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201001000000000000000
+00000000000000000000000000000000250000000c00000003000000250000000c0000000500008057000000240000004400000046010000120200004a010000020000006004801400218014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000
+023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000024029ffe1802a3fe24029ffe18029bfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800
+000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000000202000042010000120200004e010000020000000400000002000000020000000021801440204014002180144020c014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b53800ca00f9b20000303f21f41900b00175322f760100303f3900a400f9b200008ce3c5773f8f172670374b0b9401300b080000000ce8ba26000000001098bf2348004b0b5c014b0b288f1a24f0374b0b8ce3c577bc53e102f8b2
+0000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000024e7ba265c014b0b303f21f4e23b0a4680e8ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000008c010000b20000003a010000a4010000460100000100000000400d4200040dc2c6000000ad
+feffff350000004c000000000000000000000000000000ffffffffffffffffb80000007200650073006500720076006500430061007400650067006f00720079004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200049006e007400650067006500720029000000030000000600000004000000060000000300000005000000
+0600000007000000060000000300000006000000060000000600000003000000050000000300000006000000040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000006000000030000
+0006000000060000000600000003000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c00000003000000460000001002000004020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103bc010000b00100000210c0db540000000040000024027cfe1d027cfe1902
+7cfe12027cfe0e027cfe07027cfe03027cfefc017cfef8017cfef1017cfeed017cfee6017cfee2017cfedb017cfed7017cfed0017cfecc017cfec5017cfec1017cfeba017cfeb6017cfeaf017cfeab017cfea4017cfea0017cfe99017cfe95017cfe8e017cfe8a017cfe83017cfe7f017cfe78017cfe74017cfe6d017cfe69017cfe62017cfe5e017cfe57017cfe53017cfe4c017cfe48017cfe41017cfe3d017cfe36017cfe32
+017cfe2b017cfe27017cfe20017cfe1c017cfe15017cfe11017cfe0a017cfe06017cfeff007cfefb007cfef4007cfef0007cfee9007cfee5007cfede007cfeda007cfed3007cfecf007cfec8007cfec4007cfebd007cfeb9007cfeb2007cfeae007cfea7007cfea3007cfe9c007cfe98007cfe91007cfe8d007cfe86007cfe82007cfe7b007cfe77007cfe70007cfe6c007cfe65007cfe61007cfe5a007cfe0001000100010001
+00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000180200004400000069010000120200006d0100002a0000005400000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+00000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000021b0169020b0165020b016e01fb016a01fb016301fb016f01eb016801eb016401eb016d01db016901db01620
+1db016e01cb016701cb016301cb016c01bb016801bb016101bb016d01ab016601ab016201ab016b019b0167019b0160019b016c018b0165018b0161018b016a017b0166017b016f016b016b016b0164016b0160016b0169015b0165015b016e014b016a014b0163014b016f013b0168013b0164013b016d012b0169012b0162012b016e011b0167011b0163011b016c010b0168010b0161010b016d00fb016600fb016200fb016
+b00eb016700eb016000eb016c00db016500db016100db016a00cb016600cb016f00bb016b00bb016400bb016000bb016900ab016500ab016e009b016a009b0163009b016f008b0168008b0164008b016d007b0169007b0162007b016e006b0167006b0163006b016c005b0168005b0161005b016d004b0166004b016250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005a007cfe660080fe5a007cfe660078fe00010001154001001000000004000000000000002400
+0000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003800000044000000650100005400000071010000020000000400000002000000020000006004b016200570166004b01620
+05f016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000
+0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b5400044010fb30000303f21f41900b00175322f760100303f4100f6000fb300008ce3c5773f8f17267037
+4b0b9401300b08000000ac63ba26000000001098bf2348004b0b5c014b0bb8911a24f0374b0b8ce3c577bc53e1020eb30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000c462ba265c014b0b303f21f4e23b0a462064ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c
+000000000000005400000020010000d50000005d01000081010000690100000100000000400d4200040dc2e90000008afeffff230000004c000000000000000000000000000000ffffffffffffffff940000007200650073006500720076006500430061007400650067006f00720079004900640073005200650070006c0079002800430061007400650067006f00720079004900640029000000030000000600000004000000
+06000000030000000500000006000000070000000600000003000000060000000600000006000000030000000500000003000000060000000400000007000000060000000600000003000000050000000300000007000000060000000300000006000000060000000600000003000000050000000300000006000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c0000
+000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005a0055fe240255fe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000
+00000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080570000002400000044000000900100001202000094010000020000006004201900212019250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000240255fe
+180259fe240255fe180251fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000020200008c010000120200
+009801000002000000040000000200000002000000002120194020e0180021201940206019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00
+000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b54800120125b30000
+303f21f41900b00175322f760100303f4900b00125b300008ce3c5773f8f172670374b0b9401300b080000009c4dba26000000001098bf2348004b0b5c014b0b88971a24f0374b0b8ce3c577bc53e10224b30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b44cba265c014b0b303f21f4e23b0a46104eba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c5
+7746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000e40100008c00000084010000cb010000900100000100000000400d4200040dc2a000000063feffff440000004c000000000000000000000000000000ffffffffffffffffd4000000610064006400430061007400650067006f007200790044006500660069006e006900740069006f006e007300280054007200
+6100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000430061007400650067006f007200790044006500660069006e006900740069006f006e002900060000000600000006000000070000000600000003000000060000000600000006000000030000000500000007000000060000000300000003000000060000000300000003000000030000000600000006
+0000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000
+0300000003000000030000000600000006000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c00000003000000460000001002000004020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103bc010000b00100000210c0db5400000000400000240232fe1d0232
+fe190232fe120232fe0e0232fe070232fe030232fefc0132fef80132fef10132feed0132fee60132fee20132fedb0132fed70132fed00132fecc0132fec50132fec10132feba0132feb60132feaf0132feab0132fea40132fea00132fe990132fe950132fe8e0132fe8a0132fe830132fe7f0132fe780132fe740132fe6d0132fe690132fe620132fe5e0132fe570132fe530132fe4c0132fe480132fe410132fe3d0132fe3601
+32fe320132fe2b0132fe270132fe200132fe1c0132fe150132fe110132fe0a0132fe060132feff0032fefb0032fef40032fef00032fee90032fee50032fede0032feda0032fed30032fecf0032fec80032fec40032febd0032feb90032feb20032feae0032fea70032fea30032fe9c0032fe980032fe910032fe8d0032fe860032fe820032fe7b0032fe770032fe700032fe6c0032fe650032fe610032fe5a0032fe0001000100
+01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000001802000044000000b301000012020000b70100002a0000005400000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000021501b9020501b5020501be01f501ba01f501b301f501bf01e501b801e501b401e501bd01d501b901d
+501b201d501be01c501b701c501b301c501bc01b501b801b501b101b501bd01a501b601a501b201a501bb019501b7019501b0019501bc018501b5018501b1018501ba017501b6017501bf016501bb016501b4016501b0016501b9015501b5015501be014501ba014501b3014501bf013501b8013501b4013501bd012501b9012501b2012501be011501b7011501b3011501bc010501b8010501b1010501bd00f501b600f501b20
+0f501bb00e501b700e501b000e501bc00d501b500d501b100d501ba00c501b600c501bf00b501bb00b501b400b501b000b501b900a501b500a501be009501ba009501b3009501bf008501b8008501b4008501bd007501b9007501b2007501be006501b7006501b3006501bc005501b8005501b1005501bd004501b6004501b250000000c00000007000080250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005a0032fe660036fe5a0032fe66002efe00010001154001001000000004000000000000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003800000044000000af01000054000000bb010000020000000400000002000000020000006004501b2005101b6004
+501b2005901b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff0000000000000000000000000000000000000001000005004100520049004100
+4c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b55000f8013bb30000303f21f41900b00175322f760100303f5100da003bb300008ce3c5773f8f17
+2670374b0b9401300b08000000cc8fba26000000001098bf2348004b0b5c014b0bd8901a24f0374b0b8ce3c577bc53e1023ab30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000e48eba265c014b0b303f21f4e23b0a464090ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c000000030000001800
+00000c0000000000000054000000fc000000e4000000a701000073010000b30100000100000000400d4200040dc2f800000040feffff1d0000004c000000000000000000000000000000ffffffffffffffff88000000610064006400430061007400650067006f007200790044006500660069006e006900740069006f006e0073005200650070006c007900280029000000060000000600000006000000070000000600000003
+00000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000004000000070000000600000006000000030000000500000003000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b084000023400000028000000
+0210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000d010ffe24020ffe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805700000024000000f7000000d601000012020000da01000002000000900f801d0021801d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000024020ffe180213fe24020ffe18020bfe000100011540010010000000040000000000000024
+000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a0000003800000002020000d201000012020000de010000020000000400000002000000020000000021801d4020401d0021801d
+4020c01d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b55800660151b30000303f21f41900b00175322f760100303f5900fc0051b300008ce3c5773f8f172670
+374b0b9401300b080000007c21ba26000000001098bf2348004b0b5c014b0be8911a24f0374b0b8ce3c577bc53e10250b30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000009420ba265c014b0b303f21f4e23b0a46f021ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c0000000300000018000000
+0c00000000000000540000002c0100002f010000ca010000d9010000d60100000100000000400d4200040dc2430100001dfeffff250000004c000000000000000000000000000000ffffffffffffffff98000000670065007400490063006f006e0053006500740073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002900000006000000060000
+0003000000030000000500000006000000060000000700000006000000030000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000a0000001000000014000000e7ffffff0c000000100000000000
+000000000000280000000c00000003000000460000007001000064010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001031c010000100100000210c0db34000000004000002402ecfd1d02ecfd1902ecfd1202ecfd0e02ecfd0702ecfd0302ecfdfc01ecfdf801ecfdf101ecfded01ecfde601ecfde201ecfddb01ecfdd7
+01ecfdd001ecfdcc01ecfdc501ecfdc101ecfdba01ecfdb601ecfdaf01ecfdab01ecfda401ecfda001ecfd9901ecfd9501ecfd8e01ecfd8a01ecfd8301ecfd7f01ecfd7801ecfd7401ecfd6d01ecfd6901ecfd6201ecfd5e01ecfd5701ecfd5301ecfd4c01ecfd4801ecfd4101ecfd3d01ecfd3601ecfd3201ecfd2b01ecfd2701ecfd2001ecfd1c01ecfd1501ecfd1101ecfd0d01ecfd00010001000100010001000100010001
+000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201
+00100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000058010000f7000000f901000012020000fd0100001a000000340000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000021b01f9020b01f5020b01fe01fb01fa01fb01f301fb01ff01eb01f801eb01f401eb01fd01db01f901db01f201db01fe01cb01f701cb01f301cb01fc01bb01f801bb01f101bb01fd01ab01f601ab01f201ab01fb019b01f7019b01f0019b01fc018b01f5018b01f1018b01fa017b01f6017b01ff016b01fb016b01f4016b01f0016b01f9015b01f5015b01fe014b01fa014b01f30
+14b01ff013b01f8013b01f4013b01fd012b01f9012b01f2012b01fe011b01f7011b01f3011b01fc010b01f8010b01f1010b01fd00fb01f900fb01f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db00000000
+8e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000d01ecfd1901f0fd0d01ecfd1901e8fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000001001
+00100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000f7000000f5010000070100000102000002000000040000000200000002000000900fb01f5010701f900fb01f5010f01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000
+000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b560006c0167b30000303f21f41900b00175322f760100303f6100c60067b300008ce3c5773f8f172670374b0b9401300b08000000a458ba26000000001098bf2348004b0b5c014b0b38901a24f0374b0b8ce3c577bc53e10266b30000b455e102f571ca7793093353feffff
+ff8ce3c577f2e0c57746e0c57700000000bc57ba265c014b0b303f21f4e23b0a461859ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000e400000046010000ed010000c2010000f90100000100000000400d4200040dc25a010000fafdffff190000004c000000000000000000
+000000000000ffffffffffffffff80000000670065007400490063006f006e0053006500740073005200650070006c0079002800490063006f006e005300650074002900c00b06000000060000000300000003000000050000000600000006000000070000000600000003000000040000000700000006000000060000000300000005000000030000000300000005000000060000000600000007000000060000000300000003
+0000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000d01c9fd2402c9fd0001000115400100100000000400000000000000
+2100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080570000
+0024000000f70000001c020000120200002002000002000000900fe0210021e021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000002402c9fd1802cdfd2402c9fd1802c5fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000010010010000000000000000000000000000000000000000000000025
+0000000c00000003000000250000000c000000050000805a0000003800000002020000180200001202000024020000020000000400000002000000020000000021e0214020a0210021e02140202022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff46000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ecffffffe7ffff
+ff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000b00733768001
+33768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b568001c017db30000303f21f41900b00175322f760100303f6900c8007db300008ce3c5773f8f172670374b0b9401300b080000007416ba26000000001098bf2348004b0b5c014b0b48901a24f0374b0b8ce3c577bc53e1027cb30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008c15ba265c014b0b30
+3f21f4e23b0a46e816ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000900100000b0100000d020000ff010000190200000100000000400d4200040dc21f010000dafdffff360000004c000000000000000000000000000000ffffffffffffffffb80000006700650074004900
+63006f006e0044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000490063006f006e0049006e0066006f00290006000000060000000300000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000
+00040000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000300000005000000060000000600000003000000060000000300000006000000030000000a0000001000000014000000e7ffffff0c00
+0000100000000000000000000000280000000c00000003000000460000007001000064010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001031c010000100100000210c0db34000000004000002402a6fd1d02a6fd1902a6fd1202a6fd0e02a6fd0702a6fd0302a6fdfc01a6fdf801a6fdf101a6fded01a6fde601a6fde2
+01a6fddb01a6fdd701a6fdd001a6fdcc01a6fdc501a6fdc101a6fdba01a6fdb601a6fdaf01a6fdab01a6fda401a6fda001a6fd9901a6fd9501a6fd8e01a6fd8a01a6fd8301a6fd7f01a6fd7801a6fd7401a6fd6d01a6fd6901a6fd6201a6fd5e01a6fd5701a6fd5301a6fd4c01a6fd4801a6fd4101a6fd3d01a6fd3601a6fd3201a6fd2b01a6fd2701a6fd2001a6fd1c01a6fd1501a6fd1101a6fd0d01a6fd0001000100010001
+0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000
+000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000058010000f70000003f02000012020000430200001a00000034000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000002110249020102450201024e01f1024a01f1024301f1024f01e1024801e1024401e1024d01d1024901d1024201d1024e01c1024701c1024301c1024c01b1024801b1024101b1024d01a1024601a1024201a1024b01910247019102400191024c01810245018102410181024a017102460171024f0161024b016102440161024001610249015102450151024e0
+141024a014102430141024f01310248013102440131024d01210249012102420121024e01110247011102430111024c01010248010102410101024d00f1024900f1024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c00000030000000
+0210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000d01a6fd1901aafd0d01a6fd1901a2fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000
+000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a00000038000000f70000003b020000070100004702000002000000040000000200000002000000900f10245010d023900f102450105024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100
+4c00000000000000000000000000000000000000b007337600000000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b57000800193b30000303f21f41900b00175322f760100303f7100160193b300008ce3c5773f8f172670374b0b9401300b08000000842cba26000000001098bf2348004b0b5c014b0bb8921a24f0374b0b8ce3c577bc53e10292b30000b455e102f571ca
+7793093353feffffff8ce3c577f2e0c57746e0c577000000009c2bba265c014b0b303f21f4e23b0a46f82cba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000e40000004801000033020000c10100003f0200000100000000400d4200040dc25c010000b4fdffff190000004c00
+0000000000000000000000000000ffffffffffffffff80000000610064006400490063006f006e0044006500660069006e006900740069006f006e0073005200650070006c0079002800290000000600000006000000060000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000700000006000000060000000300000005
+00000003000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000d0183fd240283fd000100011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c0000
+00050000805700000024000000f700000062020000120200006602000002000000900f402600214026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200
+000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000240283fd180287fd240283fd18027ffd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000001001001000000000000000000000000000000000
+00000000000000250000000c00000003000000250000000c000000050000805a00000038000000020200005e020000120200006a0200000200000004000000020000000200000000214026402000260021402640208026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000
+ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00ecffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b00733760000
+0000b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b57800a001a9b30000303f21f41900b00175322f760100303f7900a201a9b300008ce3c5773f8f172670374b0b9401300b080000009442ba26000000001098bf2348004b0b5c014b0b18971a24f0374b0b8ce3c577bc53e102a8b30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000ac
+41ba265c014b0b303f21f4e23b0a460843ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000006c0100001501000050020000f30100005c0200000100000000400d4200040dc22901000097fdffff300000004c000000000000000000000000000000ffffffffffffffffac000000
+670065007400430061007400650067006f007200790044006500660069006e006900740069006f006e0073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e006500720029000600000006000000030000000700000006000000030000000600000006000000060000000300000005000000070000000600000003000000030000000600000003000000030000
+000300000006000000060000000400000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c000000030000004600
+00007001000064010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001031c010000100100000210c0db3400000000400000240260fd1d0260fd190260fd120260fd0e0260fd070260fd030260fdfc0160fdf80160fdf10160fded0160fde60160fde20160fddb0160fdd70160fdd00160fdcc0160fdc50160fdc10160fdba
+0160fdb60160fdaf0160fdab0160fda40160fda00160fd990160fd950160fd8e0160fd8a0160fd830160fd7f0160fd780160fd740160fd6d0160fd690160fd620160fd5e0160fd570160fd530160fd4c0160fd480160fd410160fd3d0160fd360160fd320160fd2b0160fd270160fd200160fd1c0160fd150160fd110160fd0d0160fd000100010001000100010001000100010001000100010001000100010001000100010001
+00010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000002010010000000000000000000000000000000000000
+0000000000250000000c00000003000000250000000c000000050000805a00000058010000f70000008502000012020000890200001a0000003400000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000021
+70289020702850207028e01f7028a01f7028301f7028f01e7028801e7028401e7028d01d7028901d7028201d7028e01c7028701c7028301c7028c01b7028801b7028101b7028d01a7028601a7028201a7028b01970287019702800197028c01870285018702810187028a017702860177028f0167028b016702840167028001670289015702850157028e0147028a014702830147028f01370288013702840137028d012702890
+12702820127028e01170287011702830117028c01070288010702810107028d00f7028900f7028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000
+01000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000d0160fd190164fd0d0160fd19015cfd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000003000000380000000000000038000000000000000010010010000000000000000000000000000000000000
+0000000000250000000c00000003000000250000000c000000050000805a00000038000000f700000081020000070100008d02000002000000040000000200000002000000900f702850103028900f70285010b028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffff
+ffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ec
+ffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000b007337600000000
+b0073376800133768019971c8ce3c577ab8f172646e0c5779401300b0000300bc70f32768b3621b58000e000bfb30000303f21f41900b00175322f760100303f81009401bfb300008ce3c5773f8f172670374b0b9401300b080000008c37ba26000000001098bf2348004b0b5c014b0ba8961a24f0374b0b8ce3c577bc53e102beb30000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a436ba
+265c014b0b303f21f4e23b0a460038ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000680100001201000079020000f6010000850200000100000000400d4200040dc2260100006efdffff2f0000004c000000000000000000000000000000ffffffffffffffffac0000006700
+65007400430061007400650067006f007200790044006500660069006e006900740069006f006e0073005200650070006c0079002800430061007400650067006f007200790044006500660069006e006900740069006f006e0029007cfe06000000060000000300000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003
+000000060000000600000004000000070000000600000006000000030000000500000003000000070000000600000003000000060000000600000006000000030000000500000007000000060000000300000003000000060000000300000003000000030000000600000006000000030000000a0000001000000014000000e7ffffff0c000000100000000000000000000000280000000c00000003000000280000000c000000
+020000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c0000006400000000000000000000005d020000ca02000000000000000000005e020000cb0200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000
+001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+Figure: \lang1033\hich\f6\dbch\f6\loch\f6\protect 15\hich\f3\dbch\f3\loch\f3\protect0 \lang3081\hich\f3\dbch\f3\loch\f3\par
+{\*\bkmkstart BKM_A4DECA4C_F3AB_4b93_B678_13B1AF12D032}{\*\bkmkend BKM_A4DECA4C_F3AB_4b93_B678_13B1AF12D032}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Interaction}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 Getting the texts of current incidents}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD Diagram.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3 This diagram shows the 2-step approach for getting information on Traffic Incidents.\ql\par
+\pard\ssparaaux0\s0{\pntext\pard\plain\f2\fs22 \'b7\tab}{\*\pn\pnlvlblt\ls43\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls43\ilvl0\fi-360\li360\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 First get the Ids of specific incidents\par
+Then get the required information for these Ids\line In this case the texts.\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\lang3081\hich\f0\dbch\f0\loch\f0\cf0\fs24
+{\*\shppict{\pict\emfblip\picw15783\pich10294\picwgoal8955\pichgoal5835\picscalex100\picscaley100\sspicalign0 010000006c000000f8ffffffffffffffcb010000250100000000000000000000a83d00003628000020454d4600000100b06e0000fb030000040000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100ddfebe01ddfebe01ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffc001000025010000050000001000100010003012e01b3012e01b100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc900ecffd600faffd600ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d60000001400000006000000
+10004001900c4001600d6000600d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc900ecffd600faffd600ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd8000000160000000600000010004001900c4001600d6000600d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a015ed721883a6c2e7668971a2408654501705ae102b85ae102245736019c58530bb45ae102969619018ce3c577cf80172646e0c5779401300b0000300b98a38006c05ae1027b00b4003ab40000d45ae102188d17
+0183390a6868971a247c00fa013ab4000037bb400083390a6870374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bd8991a24f0374b0b00000000a05ae10200000500005de102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1939b400008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26685be1021c0302005cfb8d01b2f3b1001c030200745b
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000c70000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c66c1000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000440100000600000004000000c70000000f0000000100000000400d4200040dc206000000fcffffff290000004c000000000000000000000000000000ffffffffffffffffa0000000730064002000470065007400740069006e006700200074006800650020007400650078007400730020006f0066002000630075007200720065006e007400200069006e0063006900640065006e0074007300656c06000000
+060000000300000008000000060000000300000003000000030000000600000006000000030000000300000006000000060000000300000003000000060000000600000003000000060000000300000006000000030000000300000006000000060000000400000004000000060000000600000003000000030000000300000006000000060000000300000006000000060000000600000003000000060000001b000000100000
+000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000000c10000c8c10a4000c01c00000010000000c0bfc0ff010000001a009aff70003100280000000c0000000100
+00002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000820000004d000000050000002001c0012001d0042008d0042008c0012001c00125
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001a009aff700031003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000009900000064000000040000002001d0042008d0042008c0012001c001250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b8410000c6c20000e04200004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000
+803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000017009dff70003100250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f00000019000000480000004a000000050000000f0019000f004a0048004a00480019000f001900250000000c00000008000080250000000c
+00000000000080280000000c0000000200000027000000180000000200000000000000fcf2e20000000000250000000c00000002000000250000000c0000000800008056000000300000004800000019000000490000004a000000050000004800190048004a0049004a004900190048001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000
+fbf1e20000000000250000000c00000002000000250000000c00000008000080560000003000000049000000190000004a0000004a000000050000004900190049004a004a004a004a00190049001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c00000008000080560000
+00300000004a000000190000004b0000004a000000050000004a0019004a004a004b004a004b0019004a001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000250000000c0000000800008056000000300000004b000000190000004c0000004a000000050000004b0019004b004a004c00
+4a004c0019004b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c0000000800008056000000300000004c000000190000004d0000004a000000050000004c0019004c004a004d004a004d0019004c001900250000000c00000008000080250000000c0000000000008028
+0000000c0000000200000027000000180000000200000000000000faefdf0000000000250000000c00000002000000250000000c0000000800008056000000300000004d000000190000004e0000004a000000050000004d0019004d004a004e004a004e0019004d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faefde0000000000
+250000000c00000002000000250000000c0000000800008056000000300000004e000000190000004f0000004a000000050000004e0019004e004a004f004a004f0019004e001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c0000000800008056000000300000004f0000
+0019000000500000004a000000050000004f0019004f004a0050004a00500019004f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c0000000800008056000000300000005000000019000000510000004a000000050000005000190050004a0051004a00510019005000
+1900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000005100000019000000520000004a000000050000005100190051004a0052004a005200190051001900250000000c00000008000080250000000c00000000000080280000000c00000002
+00000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000005200000019000000530000004a000000050000005200190052004a0053004a005300190052001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c000000
+02000000250000000c0000000800008056000000300000005300000019000000540000004a000000050000005300190053004a0054004a005400190053001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000005400000019000000550000
+004a000000050000005400190054004a0055004a005500190054001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c0000000800008056000000300000005500000019000000560000004a000000050000005500190055004a0056004a005600190055001900250000000c00
+000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c0000000800008056000000300000005600000019000000570000004a000000050000005600190056004a0057004a005700190056001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018
+0000000200000000000000f6ead90000000000250000000c00000002000000250000000c0000000800008056000000300000005700000019000000580000004a000000050000005700190057004a0058004a005800190057001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c0000000200000025000000
+0c0000000800008056000000300000005800000019000000590000004a000000050000005800190058004a0059004a005900190058001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c00000008000080560000003000000059000000190000005a0000004a000000050000
+005900190059004a005a004a005a00190059001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c0000000800008056000000300000005a000000190000005b0000004a000000050000005a0019005a004a005b004a005b0019005a001900250000000c000000080000802500
+00000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d60000000000250000000c00000002000000250000000c0000000800008056000000300000005b000000190000005c0000004a000000050000005b0019005b004a005c004a005c0019005b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000f5e8d50000000000250000000c00000002000000250000000c0000000800008056000000300000005c000000190000005d0000004a000000050000005c0019005c004a005d004a005d0019005c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c00000008000080
+56000000300000005d000000190000005e0000004a000000050000005d0019005d004a005e004a005e0019005d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000005e000000190000005f0000004a000000050000005e0019005e004a
+005f004a005f0019005e001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c0000000800008056000000300000005f00000019000000600000004a000000050000005f0019005f004a0060004a00600019005f001900250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c0000000800008056000000300000006000000019000000610000004a000000050000006000190060004a0061004a006100190060001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000
+000000250000000c00000002000000250000000c0000000800008056000000300000006100000019000000620000004a000000050000006100190061004a0062004a006200190061001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c000000080000805600000030000000
+6200000019000000630000004a000000050000006200190062004a0063004a006300190062001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c0000000800008056000000300000006300000019000000640000004a000000050000006300190063004a0064004a00640019
+0063001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000006400000019000000650000004a000000050000006400190064004a0065004a006500190064001900250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f1e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000006500000019000000660000004a000000050000006500190065004a0066004a006600190065001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c
+00000002000000250000000c0000000800008056000000300000006600000019000000670000004a000000050000006600190066004a0067004a006700190066001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c0000000800008056000000300000006700000019000000
+680000004a000000050000006700190067004a0068004a006800190067001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2cd0000000000250000000c00000002000000250000000c0000000800008056000000300000006800000019000000690000004a000000050000006800190068004a0069004a006900190068001900250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c00000008000080560000003000000069000000190000006a0000004a000000050000006900190069004a006a004a006a00190069001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c0000000800008056000000300000006a000000190000006b0000004a000000050000006a0019006a004a006b004a006b0019006a001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c0000000200000025
+0000000c0000000800008056000000300000006b000000190000006c0000004a000000050000006b0019006b004a006c004a006c0019006b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c0000000800008056000000300000006c000000190000006d0000004a000000
+050000006c0019006c004a006d004a006d0019006c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000006d000000190000006e0000004a000000050000006d0019006d004a006e004a006e0019006d001900250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000006e000000190000006f0000004a000000050000006e0019006e004a006f004a006f0019006e001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200
+000000000000eedfc80000000000250000000c00000002000000250000000c0000000800008056000000300000006f00000019000000700000004a000000050000006f0019006f004a0070004a00700019006f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec80000000000250000000c00000002000000250000000c00000008
+00008056000000300000007000000019000000710000004a000000050000007000190070004a0071004a007100190070001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c0000000800008056000000300000007100000019000000720000004a0000000500000071001900
+71004a0072004a007200190071001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056000000300000007200000019000000730000004a000000050000007200190072004a0073004a007300190072001900250000000c00000008000080250000000c0000
+0000000080280000000c0000000200000027000000180000000200000000000000ecddc60000000000250000000c00000002000000250000000c0000000800008056000000300000007300000019000000740000004a000000050000007300190073004a0074004a007400190073001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdc
+c50000000000250000000c00000002000000250000000c0000000800008056000000300000007400000019000000760000004a000000050000007400190074004a0076004a007600190074001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c000000080000805600000030
+0000007600000019000000770000004a000000050000007600190076004a0077004a007700190076001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000007700000019000000780000004a000000050000007700190077004a0078004a00
+7800190077001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c0000000800008056000000300000007800000019000000790000004a000000050000007800190078004a0079004a007900190078001900250000000c00000008000080250000000c00000000000080280000
+000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c00000008000080560000003000000079000000190000007a0000004a000000050000007900190079004a007a004a007a00190079001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c200000000002500
+00000c00000002000000250000000c0000000800008056000000300000007a000000190000007b0000004a000000050000007a0019007a004a007b004a007b0019007a001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c0000000800008056000000300000007b00000019
+0000007c0000004a000000050000007b0019007b004a007c004a007c0019007b001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c0000000800008056000000300000007c000000190000007d0000004a000000050000007c0019007c004a007d004a007d0019007c001900
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8bf0000000000250000000c00000002000000250000000c0000000800008056000000300000007d000000190000007e0000004a000000050000007d0019007d004a007e004a007e0019007d001900250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000e8d7bf0000000000250000000c00000002000000250000000c0000000800008056000000300000007e000000190000007f0000004a000000050000007e0019007e004a007f004a007f0019007e001900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b084000023800
+00002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000017009dff700031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038000000000000000021010010000000000000000000000000
+0000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000f8ffffff02000000960000006100000004000000f000a004f007a004f0079001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a00000022000000
+0c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000f8ffffffe7ffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021058e102245736019c58530b0c58e102969619010834
+0a279c58530bb296190100000000b8921a248ce3c5777b83172646e0c5779401300b0000300b188d170108340a27700080013cb40000bc58e10237bb400008340a27b8921a24710016013cb400008882dd19345de10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0bb8921a24f0374b0b000000000c58e10200000000a859e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700
+00000008654501000000008814400000cc2a24008a1a2401000000b0921a24d458e10223e0c577b8921a243a6c2e7608654501b0921a24e858e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000019000000cbffffff8600000099ffffff4b0000001000000000000000050000000a0000001000000008000000e7ffffff0c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f8ffff
+ffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000019000000cbffffff86000000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000d0000000150000001c00000079000000280000000100000000400d4200040dc21d00
+0000cbffffff160000004c000000000000000000000000000000ffffffffffffffff78000000540072006100660066006900630049006e0063006900640065006e007400730043006c00690065006e00740007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000300000003000000060000000600000003
+0000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000008000000e7ffffff0c00000010000000000000000000000046000000180100000c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103c4000000b80000000210c0db22000000
+004000004f009cff4f0095ff4f0091ff4f008aff4f0086ff4f007fff4f007bff4f0074ff4f0070ff4f0069ff4f0065ff4f005eff4f005aff4f0053ff4f004fff4f0048ff4f0044ff4f003dff4f0039ff4f0032ff4f002eff4f0027ff4f0023ff4f001cff4f0018ff4f0011ff4f000dff4f0006ff4f0002ff4f00fbfe4f00f7fe4f00f0fe4f00ecfe4f00e8fe000100010001000100010001000100010001000100010001000100
+010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201001000000000000000000000000000000000000000000000002500
+00000c00000003000000250000000c000000050000805a000000ec00000045000000490000004900000001010000110000002200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000007004b00470042005700460057004d00570041006700480067004c00670043007700470077004e0077004200870
+0490087004d00870044009700480097004f0097004300a7004a00a7004e00a7004500b7004900b7004000c7004400c7004b00c7004f00c7004600d7004a00d7004100e7004500e7004c00e7004000f7004700f7004b00f7004f00f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000
+2c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000004a00f8fe09008100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c000000080000805600000030000000420000006e0000004b000000ef000000050000002004e0
+062004f00eb004f00eb004e0062004e006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004a00
+f8fe090081003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000002b000000570000006200000006010000040000002004f00eb0
+04f00eb004e0062004e006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000035019aff85003100280000000c0000000100000024000000240000000000803d00000000
+000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c0000000800008056000000300000002d0100001c000000b20100004d00000005000000d012c001d012d004201bd004201bc001d012c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000035019aff850031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800
+0000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000001601000005000000c90100006400000004000000d012d004201bd004201bc001d012c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002
+000000280000000c000000030000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000099430000c6c20000054300004442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000032019dff85003100250000000c000000
+0800008027000000180000000300000000000000fcf2e30000000000250000000c00000003000000250000000c0000000800008056000000300000002a01000019000000700100004a000000050000002a0119002a014a0070014a00700119002a011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000fbf1e10000000000250000000c0000
+0003000000250000000c0000000800008056000000300000007001000019000000730100004a000000050000007001190070014a0073014a007301190070011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faf0df0000000000250000000c00000003000000250000000c00000008000080560000003000000073010000190000007601
+00004a000000050000007301190073014a0076014a007601190073011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000faeedd0000000000250000000c00000003000000250000000c00000008000080560000003000000076010000190000007a0100004a000000050000007601190076014a007a014a007a01190076011900250000000c
+00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f8eddc0000000000250000000c00000003000000250000000c0000000800008056000000300000007a010000190000007d0100004a000000050000007a0119007a014a007d014a007d0119007a011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000
+180000000300000000000000f7ebda0000000000250000000c00000003000000250000000c0000000800008056000000300000007d01000019000000800100004a000000050000007d0119007d014a0080014a00800119007d011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6ead80000000000250000000c00000003000000250000
+000c0000000800008056000000300000008001000019000000830100004a000000050000008001190080014a0083014a008301190080011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f6e9d60000000000250000000c00000003000000250000000c0000000800008056000000300000008301000019000000870100004a0000000500
+00008301190083014a0087014a008701190083011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f4e7d40000000000250000000c00000003000000250000000c00000008000080560000003000000087010000190000008b0100004a000000050000008701190087014a008b014a008b01190087011900250000000c0000000800008025
+0000000c00000000000080280000000c0000000300000027000000180000000300000000000000f3e6d20000000000250000000c00000003000000250000000c0000000800008056000000300000008b010000190000008f0100004a000000050000008b0119008b014a008f014a008f0119008b011900250000000c00000008000080250000000c00000000000080280000000c00000003000000270000001800000003000000
+00000000f2e4d00000000000250000000c00000003000000250000000c0000000800008056000000300000008f01000019000000920100004a000000050000008f0119008f014a0092014a00920119008f011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f1e3ce0000000000250000000c00000003000000250000000c000000080000
+8056000000300000009201000019000000960100004a000000050000009201190092014a0096014a009601190092011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000f0e1cc0000000000250000000c00000003000000250000000c0000000800008056000000300000009601000019000000990100004a00000005000000960119009601
+4a0099014a009901190096011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000efe0ca0000000000250000000c00000003000000250000000c00000008000080560000003000000099010000190000009c0100004a000000050000009901190099014a009c014a009c01190099011900250000000c00000008000080250000000c00000000
+000080280000000c0000000300000027000000180000000300000000000000eedfc80000000000250000000c00000003000000250000000c0000000800008056000000300000009c01000019000000a00100004a000000050000009c0119009c014a00a0014a00a00119009c011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000edddc600
+00000000250000000c00000003000000250000000c000000080000805600000030000000a001000019000000a40100004a00000005000000a0011900a0014a00a4014a00a4011900a0011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ecdbc40000000000250000000c00000003000000250000000c0000000800008056000000300000
+00a401000019000000a80100004a00000005000000a4011900a4014a00a8014a00a8011900a4011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000ebdac20000000000250000000c00000003000000250000000c000000080000805600000030000000a801000019000000ab0100004a00000005000000a8011900a8014a00ab014a00ab01
+1900a8011900250000000c00000008000080250000000c00000000000080280000000c0000000300000027000000180000000300000000000000e8d7bf0000000000250000000c00000003000000250000000c000000080000805600000030000000ab01000019000000af0100004a00000005000000ab011900ab014a00af014a00af011900ab011900250000000c00000008000080250000000c00000000000080280000000c
+00000003000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000032019dff850031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+38000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c0000001301000002000000c60100006100000004000000a012a004f01aa004f01a9001a0129001250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f8ffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000034010000cbffffffb601000099ffffff4b0000001000000000000000050000000a0000001000000008000000e7ffffff0c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000f8ffffffe7ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000034010000cbffffffb6010000a1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000d8000000370100001c000000a2010000280000000100000000400d
+4200040dc23f010000cbffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e007400730053006500720076006900630065007b5c0700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000007000000060000000300
+0000050000000300000005000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000008000000e7ffffff0c00000010000000000000000000000046000000180100000c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103c4
+000000b80000000210c0db220000000040000075019cff750195ff750191ff75018aff750186ff75017fff75017bff750174ff750170ff750169ff750165ff75015eff75015aff750153ff75014fff750148ff750144ff75013dff750139ff750132ff75012eff750127ff750123ff75011cff750118ff750111ff75010dff750106ff750102ff7501fbfe7501f7fe7501f0fe7501ecfe7501e8fe000100010001000100010001
+000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000300000038000000000000003800000000000000000201001000000000000000000000
+00000000000000000000000000250000000c00000003000000250000000c000000050000805a000000ec0000006b010000490000006f0100000101000011000000220000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000d016b004d0162005d0166005d016d005d0161006d0168006d016c006d016
+3007d0167007d016e007d0162008d0169008d016d008d0164009d0168009d016f009d016300ad016a00ad016e00ad016500bd016900bd016000cd016400cd016b00cd016f00cd016600dd016a00dd016100ed016500ed016c00ed016000fd016700fd016b00fd016f00f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c00000003000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff01000000700148ff09003100280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000250000000c000000080000805600000030000000680100006e000000
+710100009f000000050000008016e0068016f0091017f0091017e0068016e006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000
+40180000000c00000001000000700148ff090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c00000051010000570000008801
+0000b6000000040000008016f0091017f0091017e0068016e006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000e3f2fcff010000007001f8fe0900310024000000240000000000803d00
+000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000068010000be00000071010000ef000000050000008016e00b8016f00e1017f00e1017e00b8016e00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000007001f8fe090031003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000
+000000000000000000000000000000000000000000250000000c00000003000000250000000c00000005000080560000002c00000051010000a70000008801000006010000040000008016f00e1017f00e1017e00b8016e00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c00
+00000a00000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000540079ff700179ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038
+000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c0000000500008057000000240000004a0000006c0000006a0100007000000002000000c004e0068016e006250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000700179ff64017dff700179ff640175ff000100011540010010000000040000000000000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000005a010000680000006a01000074000000020000000400000002000000020000008016e006c015a0068016e006c0152007250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f8ffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000048063376000000004806337680013376201a971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276d94021c47300aa0168b40000493f21f41900b00175322f760100493f7400de0068b400008ce3c5773f8f172670374b0b9401300b0800000004ddba
+26000000001098bf2348004b0b5c014b0bf8901a24f0374b0b8ce3c577bc53e10267b40000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000001cdcba265c014b0b493f21f408340a2878ddba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000000402
+00007200000059000000c5010000650000000100000000400d4200040dc27a0000008effffff490000004c000000000000000000000000000000ffffffffffffffffe0000000670065007400540072006100660066006900630049006e0063006900640065006e0074004900640073002800540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c00200057
+00610072006e0069006e0067004c006500760065006c002c002000430061007400650067006f00720079004900640029006b000600000006000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000040000000300000007000000030000000600000003000000030000000300000005000000
+0300000006000000050000000300000006000000060000000600000003000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000009000000060000000300000006000000030000000600000006000000060000000600000005000000060000000300000003000000030000000700000006000000030000000600000006000000060000000300000005000000030000
+0006000000030000000a0000001000000008000000e7ffffff0c000000100000000000000000000000280000000c00000003000000460000007001000064010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001031c010000100100000210c0db3400000000400000700156ff690156ff650156ff5e0156ff5a0156ff5301
+56ff4f0156ff480156ff440156ff3d0156ff390156ff320156ff2e0156ff270156ff230156ff1c0156ff180156ff110156ff0d0156ff060156ff020156fffb0056fff70056fff00056ffec0056ffe50056ffe10056ffda0056ffd60056ffcf0056ffcb0056ffc40056ffc00056ffb90056ffb50056ffae0056ffaa0056ffa30056ff9f0056ff980056ff940056ff8d0056ff890056ff820056ff7e0056ff770056ff730056ff6c
+0056ff680056ff610056ff5d0056ff560056ff00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000580100004c0000008f0000006a010000930000001a00000034000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+00020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000008016100910161009d01510096015100920151009b01410097014100900141009c01310095013100910131009a012100960121009f0111009b011100940111009001110099010100950101009e00f1009a00f1009300f1009f00e1009800e1009400e1009d00d1009900d1009200d1009e00c
+1009700c1009300c1009c00b1009800b1009100b1009d00a1009600a1009200a1009b00910097009100900091009c00810095008100910081009a007100960071009f0061009b006100940061009000610099005100950051009e0041009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046
+000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000540056ff60005aff540056ff600052ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000004a0000008b0000005a0000009700000002000000040000000200000002000000c00410098005d008c004100980055009250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f8ffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000048063376000000004806337680013376201a971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276d94021c47b0084017eb40000493f21f41900b00175322f760100493f7c0086017eb400008ce3c5773f8f172670374b0b9401300b08000000ecbbba26000000001098bf2348004b0b5c014b0b
+38961a24f0374b0b8ce3c577bc53e1027db40000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000004bbba265c014b0b493f21f408340a2860bcba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c00000000000000540000005c0100008f0000007f0000005d0100008b0000
+000100000000400d4200040dc29700000068ffffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000670065007400540072006100660066006900630049006e0063006900640065006e0074004900640073005200650070006c0079002800540072006100660066006900630049006e0063006900640065006e0074004900640029000c0006000000060000000300000007000000030000000600
+00000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000040000000700000006000000060000000300000005000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000a0000001000000008
+000000e7ffffff0c000000100000000000000000000000280000000c0000000300000046000000780000006c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000540029ff700129ff0001000115400100100000000400000000000000210000000800000062000000
+0c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c0000000500008057000000240000004a000000bc0000
+006a010000c000000002000000c004e00b8016e00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db000000000000
+00ff084001032c000000200000000210c0db0400000000400000700129ff64012dff700129ff640125ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c0000000300000025
+0000000c000000050000805a000000380000005a010000b80000006a010000c4000000020000000400000002000000020000008016e00bc015a00b8016e00bc015200c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f8ffffffe7ffffff120000000c000000020000
+00190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000048063376000000004806337680013376201a971c8ce3c577ab8f
+172646e0c5779401300b0000300bc70f3276d94021c48300a20194b40000493f21f41900b00175322f760100493f8400a40194b400008ce3c5773f8f172670374b0b9401300b08000000c484ba26000000001098bf2348004b0b5c014b0b28971a24f0374b0b8ce3c577bc53e10293b40000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000dc83ba265c014b0b493f21f408340a283885ba2650
+54e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000003000000180000000c0000000000000054000000f00100008c000000a9000000cb010000b50000000100000000400d4200040dc2940000003effffff460000004c000000000000000000000000000000ffffffffffffffffd80000006700650074005400650078007400730028005400
+72006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072002c002000540072006100660066006900630049006e0063006900640065006e007400490064002c0020005400650078007400440065007400610069006c004c006500760065006c0029000600000006000000030000000700000006000000050000000300000004000000030000000700000003000000060000
+0003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000030000000300
+0000070000000600000005000000030000000700000006000000030000000600000003000000030000000600000006000000050000000600000003000000030000000a0000001000000008000000e7ffffff0c000000100000000000000000000000280000000c00000003000000460000007001000064010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f020000000000000002
+10c0db00000000000000ff084001031c010000100100000210c0db3400000000400000700106ff690106ff650106ff5e0106ff5a0106ff530106ff4f0106ff480106ff440106ff3d0106ff390106ff320106ff2e0106ff270106ff230106ff1c0106ff180106ff110106ff0d0106ff060106ff020106fffb0006fff70006fff00006ffec0006ffe50006ffe10006ffda0006ffd60006ffcf0006ffcb0006ffc40006ffc00006ff
+b90006ffb50006ffae0006ffaa0006ffa30006ff9f0006ff980006ff940006ff8d0006ff890006ff820006ff7e0006ff770006ff730006ff6c0006ff680006ff610006ff5d0006ff560006ff00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000
+000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000580100004c000000df0000006a010000e30000001a00
+00003400000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000008016100e1016100ed015100e6015100e2015100eb014100e7014100e0014100ec013100e5013100e1013100ea012100e6012100ef011100eb0
+11100e4011100e0011100e9010100e5010100ee00f100ea00f100e300f100ef00e100e800e100e400e100ed00d100e900d100e200d100ee00c100e700c100e300c100ec00b100e800b100e100b100ed00a100e600a100e200a100eb009100e7009100e0009100ec008100e5008100e1008100ea007100e6007100ef006100eb006100e4006100e0006100e9005100e5005100ee004100e250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000300000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000540006ff60000aff540006
+ff600002ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805a000000380000004a000000db0000005a000000e70000000200
+0000040000000200000002000000c004100e8005d00dc004100e8005500e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000003000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f8ffffffe7ffffff120000000c00000002000000190000000c000000ffffff00520000007001000003000000f6ffffff0000000000000000
+0000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000048063376000000004806337680013376201a971c8ce3c577ab8f172646e0c5779401300b0000300bc70f3276d94021c48b009401aab40000493f21f41900b0
+0175322f760100493f8c00cc01aab400008ce3c5773f8f172670374b0b9401300b08000000f4c6ba26000000001098bf2348004b0b5c014b0b68981a24f0374b0b8ce3c577bc53e102a9b40000b455e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000000cc6ba265c014b0b493f21f408340a2868c7ba265054e1022c55e1024856e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000
+00006476000800000000250000000c00000003000000180000000c0000000000000054000000cc000000a8000000d30000000d010000df0000000100000000400d4200040dc2b000000014ffffff150000004c000000000000000000000000000000ffffffffffffffff78000000670065007400540065007800740073005200650070006c007900280053007400720069006e0067002900021006000000060000000300000007
+00000006000000050000000300000004000000070000000600000006000000030000000500000003000000070000000300000003000000030000000600000006000000030000000a0000001000000008000000e7ffffff0c000000100000000000000000000000280000000c00000003000000280000000c000000020000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000
+00000000000000004c000000640000000000000000000000bf010000240100000000000000000000c0010000250100002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e000000140000000000000010000000140000
+00}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+Figure: \lang1033\hich\f6\dbch\f6\loch\f6\protect 16\hich\f3\dbch\f3\loch\f3\protect0 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart TrafficIncidentsService_D_Bus_UML_Description}{\*\bkmkend TrafficIncidentsService_D_Bus_UML_Description}{\*\bkmkstart BKM_E2925D26_62EB_405d_80C3_F22A139A10C2}{\*\bkmkend BKM_E2925D26_62EB_405d_80C3_F22A139A10C2}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page
+TrafficIncidentService D-Bus UML Description \lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart trafficincidentsservice}{\*\bkmkend trafficincidentsservice}{\*\bkmkstart BKM_BA2C2EA2_7407_437e_A436_9D84BDCE4733}{\*\bkmkend BKM_BA2C2EA2_7407_437e_A436_9D84BDCE4733}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentsservice}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+\lang1033\hich\f5\dbch\f5\loch\f5 General description of this package.\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart common}{\*\bkmkend common}{\*\bkmkstart BKM_998481D2_6E4A_405d_824E_8081F6D38093}{\*\bkmkend BKM_998481D2_6E4A_405d_824E_8081F6D38093}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 common}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_FD64AFB6_4F92_41c6_84BE_F7063F2F7955}{\*\bkmkend BKM_FD64AFB6_4F92_41c6_84BE_F7063F2F7955}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 common}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw14831\pich8812\picwgoal8415\pichgoal4995\picscalex100\picscaley100\sspicalign0 010000006c000000f8ffffffffffffffae010000040100000000000000000000ef3900006d22000020454d4600000100c8970000c2060000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c
+00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff0840010334000000
+280000000210c0db05000000004000000100ffff010007ffa30107ffa301ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000001000000380000000000000038000000000000000001010001000000000000000000000000000000000000
+0000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffa5010000fb00000005000000100010001000900f301a900f301a100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c40
+00c02c00000020000000ffffffff060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000003400000001000000010000005d000000140000000600000010
+00400100054001d0056000d00510001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff
+0d400060280000001c000000060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffffff
+ffffffffff5f00000016000000060000001000400100054001d0056000d00510001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000
+000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7668981a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b60a3d00ec859e1028800d801a9b90000dc59e102188d1701
+0e360aed68981a2489001401a9b9000037bb40000e360aed70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0ba8921a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19a8b900008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5ae1
+026476000800000000250000000c00000002000000180000000c00000000000000540000005400000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000667348000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+0000540000009400000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000063006c00610073007300200063006f006d006d006f006e000600000003000000060000000600000006000000030000000600000006000000090000000900000006000000060000001b00000010000000000000000000000016
+0000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000014c2000000400a4000c01c00000010000000c0bfc0ff010000003d008fff7a004500280000000c000000010000002100000008000000
+620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000180000002e0000009200000073000000050000008001e00280013007200930072009e0028001e002250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003d008fff7a0045003a0000000c0000000a00000024000000240000000000
+803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000100000017000000a90000008a0000000400000080013007200930072009e0028001e002250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000068420000dcc20000f44200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcff
+bed7e8ff0a4000401c0000001000000002000000010000003a0092ff7a004500250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c000000080000805600000030000000150000002b00000053000000700000000500000015002b00150070005300700053002b0015002b00250000000c00000008000080250000000c00000000000080280000
+000c0000000200000027000000180000000200000000000000fcf2e20000000000250000000c00000002000000250000000c000000080000805600000030000000530000002b00000054000000700000000500000053002b00530070005400700054002b0053002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e200000000002500
+00000c00000002000000250000000c000000080000805600000030000000540000002b00000055000000700000000500000054002b00540070005500700055002b0054002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000550000002b
+00000056000000700000000500000055002b00550070005600700056002b0055002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000250000000c000000080000805600000030000000560000002b00000058000000700000000500000056002b00560070005800700058002b0056002b00
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000580000002b00000059000000700000000500000058002b00580070005900700059002b0058002b00250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000faefde0000000000250000000c00000002000000250000000c000000080000805600000030000000590000002b0000005b000000700000000500000059002b00590070005b0070005b002b0059002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c0000000200
+0000250000000c0000000800008056000000300000005b0000002b0000005d00000070000000050000005b002b005b0070005d0070005d002b005b002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000005d0000002b0000005e00000070
+000000050000005d002b005d0070005e0070005e002b005d002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000005e0000002b0000005f00000070000000050000005e002b005e0070005f0070005f002b005e002b00250000000c000000
+08000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000005f0000002b0000006000000070000000050000005f002b005f0070006000700060002b005f002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000
+000200000000000000f7ecdb0000000000250000000c00000002000000250000000c000000080000805600000030000000600000002b00000061000000700000000500000060002b00600070006100700061002b0060002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c00
+0000080000805600000030000000610000002b00000063000000700000000500000061002b00610070006300700063002b0061002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ead90000000000250000000c00000002000000250000000c000000080000805600000030000000630000002b00000064000000700000000500000063
+002b00630070006400700064002b0063002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c000000080000805600000030000000640000002b00000066000000700000000500000064002b00640070006600700066002b0064002b00250000000c0000000800008025000000
+0c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c000000080000805600000030000000660000002b00000067000000700000000500000066002b00660070006700700067002b0066002b00250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000000000
+00f5e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000670000002b00000068000000700000000500000067002b00670070006800700068002b0067002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d60000000000250000000c00000002000000250000000c000000080000805600
+000030000000680000002b00000069000000700000000500000068002b00680070006900700069002b0068002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c000000080000805600000030000000690000002b0000006a000000700000000500000069002b00690070006a
+0070006a002b0069002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c0000000800008056000000300000006a0000002b0000006b00000070000000050000006a002b006a0070006b0070006b002b006a002b00250000000c00000008000080250000000c00000000000080
+280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000006b0000002b0000006c00000070000000050000006b002b006b0070006c0070006c002b006b002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d300000000
+00250000000c00000002000000250000000c0000000800008056000000300000006c0000002b0000006d00000070000000050000006c002b006c0070006d0070006d002b006c002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c0000000800008056000000300000006d00
+00002b0000006e00000070000000050000006d002b006d0070006e0070006e002b006d002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c0000000800008056000000300000006e0000002b0000007000000070000000050000006e002b006e0070007000700070002b006e
+002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000805600000030000000700000002b00000072000000700000000500000070002b00700070007200700072002b0070002b00250000000c00000008000080250000000c00000000000080280000000c000000
+0200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c000000080000805600000030000000720000002b00000073000000700000000500000072002b00720070007300700073002b0072002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c0000
+0002000000250000000c000000080000805600000030000000730000002b00000074000000700000000500000073002b00730070007400700074002b0073002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c00000002000000250000000c000000080000805600000030000000740000002b0000007500
+0000700000000500000074002b00740070007500700075002b0074002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c000000080000805600000030000000750000002b00000076000000700000000500000075002b00750070007600700076002b0075002b00250000000c
+00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2cd0000000000250000000c00000002000000250000000c000000080000805600000030000000760000002b00000077000000700000000500000076002b00760070007700700077002b0076002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000
+180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c000000080000805600000030000000770000002b00000078000000700000000500000077002b00770070007800700078002b0077002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000
+000c000000080000805600000030000000780000002b00000079000000700000000500000078002b00780070007900700079002b0078002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c000000080000805600000030000000790000002b0000007a000000700000000500
+000079002b00790070007a0070007a002b0079002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c0000000800008056000000300000007a0000002b0000007b00000070000000050000007a002b007a0070007b0070007b002b007a002b00250000000c0000000800008025
+0000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000007b0000002b0000007c00000070000000050000007b002b007b0070007c0070007c002b007b002b00250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000
+00000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000007c0000002b0000007e00000070000000050000007c002b007c0070007e0070007e002b007c002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00000002000000250000000c000000080000
+8056000000300000007e0000002b0000007f00000070000000050000007e002b007e0070007f0070007f002b007e002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec80000000000250000000c00000002000000250000000c0000000800008056000000300000007f0000002b0000008000000070000000050000007f002b007f00
+70008000700080002b007f002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000800000002b00000081000000700000000500000080002b00800070008100700081002b0080002b00250000000c00000008000080250000000c00000000
+000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c000000080000805600000030000000810000002b00000082000000700000000500000081002b00810070008200700082002b0081002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecddc600
+00000000250000000c00000002000000250000000c000000080000805600000030000000820000002b00000083000000700000000500000082002b00820070008300700083002b0082002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c0000000800008056000000300000
+00830000002b00000085000000700000000500000083002b00830070008500700085002b0083002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c000000080000805600000030000000850000002b00000086000000700000000500000085002b0085007000860070008600
+2b0085002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdbc40000000000250000000c00000002000000250000000c000000080000805600000030000000860000002b00000087000000700000000500000086002b00860070008700700087002b0086002b00250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000870000002b00000089000000700000000500000087002b00870070008900700089002b0087002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c2000000000025000000
+0c00000002000000250000000c000000080000805600000030000000890000002b0000008a000000700000000500000089002b00890070008a0070008a002b0089002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c0000000800008056000000300000008a0000002b0000
+008c00000070000000050000008a002b008a0070008c0070008c002b008a002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c0000000800008056000000300000008c0000002b0000008d00000070000000050000008c002b008c0070008d0070008d002b008c002b002500
+00000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8bf0000000000250000000c00000002000000250000000c0000000800008056000000300000008d0000002b0000008e00000070000000050000008d002b008d0070008e0070008e002b008d002b00250000000c00000008000080250000000c00000000000080280000000c0000000200000027
+000000180000000200000000000000e8d7bf0000000000250000000c00000002000000250000000c0000000800008056000000300000008e0000002b0000008f00000070000000050000008e002b008e0070008f0070008f002b008e002b00250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b0840000238000000
+2c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003a0092ff7a0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000
+000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000feffffff14000000a6000000870000000400000050010007f0080007f008b0025001b002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c00
+0000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e7658961a2408654501cc57e1021458e102
+245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b63a3d0021c58e1027e00cc01adb900003058e102188d170130360a2d58961a247f001401adb9000037bb400030360a2d70374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0ba8921a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000
+008882dd19acb900008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000002000000180000000c00000000000000540000008800000038000000340000006d0000003f0000000100000000400d4200040dc25d000000ceffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000
+000043006f006f007200640069006e00610074006500070000000600000006000000040000000600000003000000060000000600000003000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08
+40010324000000180000000210c0db02000000004000003a00bcffb400bcff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000030000003800000000000000
+380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805700000024000000feffffff2f000000a60000005d0000000200000050016004f0086004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000030000
+003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e10224
+5736019c58530b1457e1029696190130360a2c9c58530bb29619010000000058961a248ce3c577738c172646e0c5779401300b0000300b188d170130360a2c7d008801abb90000c457e10237bb400030360a2c58961a247e008a01abb900008882dd193c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b58961a24f0374b0b000000001457e10200000000b058e102f571ca7793093353
+feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000050961a24dc57e10223e0c57758961a243a6c2e760865450150961a24f057e102ad148b756476000800000000250000000c00000003000000180000000c0000008b00000054000000580000001a0000004a00000023000000560000000100000000400d4200040dc23f000000b8ffffff020000004c000000000000
+000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000ac0000002b0000004a00000075000000560000000100000000400d4200040dc250000000b8ffffff100000004c
+000000000000000000000000000000ffffffffffffffff6c00000061006c00740069007400750064006500200020003a0049004e00540033003200060000000300000003000000030000000300000006000000060000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000001a0000005700000023000000630000000100000000400d4200040dc23f000000abffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff0200000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000b40000002b0000005700000082000000630000000100000000400d4200040dc250000000abffffff110000004c000000000000000000000000000000ffffffffffffffff700000006c006100740069007400750064006500200020003a0044004f00550042004c00450065760300000006000000
+0300000003000000030000000600000006000000060000000300000003000000030000000700000008000000070000000700000006000000070000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000001a00000064000000230000007000
+00000100000000400d4200040dc23f0000009effffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000b80000002b00000064000000
+8b000000700000000100000000400d4200040dc2500000009effffff120000004c000000000000000000000000000000ffffffffffffffff700000006c006f006e00670069007400750064006500200020003a0044004f00550042004c0045000300000006000000060000000600000003000000030000000600000006000000060000000300000003000000030000000700000008000000070000000700000006000000070000
+000a0000001000000025000000020000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003201a1ff8a0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00
+000001000000250000000c0000000800008056000000300000000d0100001c000000970100006100000005000000d010c001d0101006701910067019c001d010c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000
+0000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003201a1ff8a0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000
+04000000250000000c00000005000080560000002c000000f600000005000000ae0100007800000004000000d0101006701910067019c001d010c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000
+004c0000000210c0db040000000400000000000000008097430000b8c200000a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002f01a4ff8a004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800
+008056000000300000000a01000019000000520100005e000000050000000a0119000a015e0052015e00520119000a011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000005201000019000000560100005e000000050000005201190052
+015e0056015e005601190052011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000005601000019000000590100005e000000050000005601190056015e0059015e005901190056011900250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000059010000190000005c0100005e000000050000005901190059015e005c015e005c01190059011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc
+0000000000250000000c00000004000000250000000c0000000800008056000000300000005c01000019000000600100005e000000050000005c0119005c015e0060015e00600119005c011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000
+00006001000019000000630100005e000000050000006001190060015e0063015e006301190060011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000006301000019000000670100005e000000050000006301190063015e0067015e0067
+01190063011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000067010000190000006a0100005e000000050000006701190067015e006a015e006a01190067011900250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000006a010000190000006e0100005e000000050000006a0119006a015e006e015e006e0119006a011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000
+000c00000004000000250000000c0000000800008056000000300000006e01000019000000710100005e000000050000006e0119006e015e0071015e00710119006e011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000710100001900
+0000750100005e000000050000007101190071015e0075015e007501190071011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000007501000019000000780100005e000000050000007501190075015e0078015e00780119007501190025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000078010000190000007c0100005e000000050000007801190078015e007c015e007c01190078011900250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000007c010000190000007f0100005e000000050000007c0119007c015e007f015e007f0119007c011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c000000040000
+00250000000c0000000800008056000000300000007f01000019000000820100005e000000050000007f0119007f015e0082015e00820119007f011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000008201000019000000870100005e00
+0000050000008201190082015e0087015e008701190082011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000087010000190000008b0100005e000000050000008701190087015e008b015e008b01190087011900250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000008b010000190000008e0100005e000000050000008b0119008b015e008e015e008e0119008b011900250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000008e01000019000000920100005e000000050000008e0119008e015e0092015e00920119008e011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000
+000800008056000000300000009201000019000000940100005e000000050000009201190092015e0094015e009401190092011900250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000000000ff0b400040180000000c000000010000002f01a4ff8a0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f3
+00000002000000ab0100007500000004000000a010e0054019e00540199001a0109001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000000000000054000000a80000002601000022000000780100002d0000000100000000400d4200040dc24b010000e0ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000520065006300740061006e00670075006c006100720041007200650061000000070000000600000006000000030000000600000006000000060000000600000003000000060000000400
+0000070000000400000006000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002f01ceffb901ceff00010101154001001000000004
+000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000
+04000000250000000c000000050000805700000024000000f30000001d000000ab0100004b00000002000000a010400340194003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000000f0100003800000018010000440000000100000000400d4200040dc234010000caffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000d8000000200100003800000090010000440000000100000000400d4200040dc245010000caffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000062006f00740074006f006d004c00650066007400200020003a0043006f006f007200640069006e006100740065004e65060000
+00060000000300000003000000060000000900000006000000060000000300000003000000030000000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c
+0000008b00000054000000580000000f0100004500000018010000510000000100000000400d4200040dc234010000bdffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c000000030000
+00180000000c0000008b00000054000000cc000000200100004500000085010000510000000100000000400d4200040dc245010000bdffffff150000004c000000000000000000000000000000ffffffffffffffff7800000074006f00700052006900670068007400200020003a0043006f006f007200640069006e00610074006500000003000000060000000600000007000000030000000600000006000000030000000300
+00000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000370015ff900045002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000
+0000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000a8000000a2000000ed000000050000002001800a2001d00e200ad00e200a800a2001800a250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000370015ff900045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000
+00000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff91000000b900000004010000040000002001d00e200ad00e200a800a2001800a250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000005042000068c30000104300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000340018ff90004500250000000c00000008
+00008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f000000a50000005a000000ea000000050000000f00a5000f00ea005a00ea005a00a5000f00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c000000
+04000000250000000c0000000800008056000000300000005a000000a50000005e000000ea000000050000005a00a5005a00ea005e00ea005e00a5005a00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000005e000000a5000000620000
+00ea000000050000005e00a5005e00ea006200ea006200a5005e00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000062000000a500000066000000ea000000050000006200a5006200ea006600ea006600a5006200a500250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000066000000a50000006a000000ea000000050000006600a5006600ea006a00ea006a00a5006600a500250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000006a000000a50000006e000000ea000000050000006a00a5006a00ea006e00ea006e00a5006a00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c0000000400000025000000
+0c0000000800008056000000300000006e000000a500000072000000ea000000050000006e00a5006e00ea007200ea007200a5006e00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000072000000a500000076000000ea000000050000
+007200a5007200ea007600ea007600a5007200a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000076000000a50000007a000000ea000000050000007600a5007600ea007a00ea007a00a5007600a500250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000007a000000a50000007e000000ea000000050000007a00a5007a00ea007e00ea007e00a5007a00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000007e000000a500000081000000ea000000050000007e00a5007e00ea008100ea008100a5007e00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080
+560000003000000081000000a500000084000000ea000000050000008100a5008100ea008400ea008400a5008100a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000084000000a500000087000000ea000000050000008400a5008400ea
+008700ea008700a5008400a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000087000000a50000008b000000ea000000050000008700a5008700ea008b00ea008b00a5008700a500250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000008b000000a50000008f000000ea000000050000008b00a5008b00ea008f00ea008f00a5008b00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000
+000000250000000c00000004000000250000000c0000000800008056000000300000008f000000a500000093000000ea000000050000008f00a5008f00ea009300ea009300a5008f00a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000
+93000000a500000097000000ea000000050000009300a5009300ea009700ea009700a5009300a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000097000000a50000009b000000ea000000050000009700a5009700ea009b00ea009b00a5
+009700a500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000a50000009f000000ea000000050000009b00a5009b00ea009f00ea009f00a5009b00a500250000000c00000008000080250000000c00000000000080280000000c00
+000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000340018ff900045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038
+000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffff8e000000b60000000101000004000000f000a00ef009a00ef009500af000500a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041
+000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000000000054000000a800000031000000ae0000007d000000b90000000100000000400d4200040dc25600000054ffffff0f0000004c000000000000000000000000000000ffff
+ffffffffffff6c0000004c006f00630061006c0069007a006500640053007400720069006e00670000000600000006000000060000000600000003000000030000000500000006000000060000000700000003000000040000000300000006000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000340042ffc40042ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffffa9000000b6000000d700000002000000f000000cf009000c250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000014000000c40000001d000000d00000000100000000400d4200040dc2390000003effffff020000004c
+000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000c400000025000000c400000090000000d00000000100000000400d4200040dc24a0000003effff
+ff140000004c000000000000000000000000000000ffffffffffffffff7400000063006f0075006e0074007200790043006f0064006500200020003a0053005400520049004e00470005000000060000000600000006000000030000000300000005000000070000000600000006000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000250000000200
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000014000000d10000001d000000dd0000000100000000400d4200040dc23900000031ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000
+25000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000cc00000025000000d10000009b000000dd0000000100000000400d4200040dc24a00000031ffffff150000004c000000000000000000000000000000ffffffffffffffff780000006c0061006e006700750061006700
+650043006f0064006500200020003a0053005400520049004e00470000000300000006000000060000000600000006000000060000000600000006000000070000000600000006000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000014000000de0000001d000000ea0000000100000000400d4200040dc23900000024ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000a800000025000000de0000006e000000ea0000000100000000400d4200040dc24a00000024ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000073007400720069006e006700200020003a0053005400520049004e0047000000040000000300000003000000030000000600000006
+0000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000025000000020000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000480118ff620057002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000
+240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000230100009300000085010000ea00000005000000301230093012a00e5018a00e5018300930123009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000
+006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000480118ff620057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000
+0000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000c0100007c0000009c01000001010000040000003012a00e5018a00e5018300930123009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+0000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080a243000065c30000c4420000ae42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000045011bff62005700250000000c000000080000802700000018000000
+0400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000200100009000000052010000e700000005000000200190002001e7005201e7005201900020019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c0000
+00080000805600000030000000520100009000000053010000e700000005000000520190005201e7005301e7005301900052019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000530100009000000055010000e7000000050000005301
+90005301e7005501e7005501900053019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000550100009000000056010000e700000005000000550190005501e7005601e7005601900055019000250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000560100009000000057010000e700000005000000560190005601e7005701e7005701900056019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000570100009000000058010000e700000005000000570190005701e7005801e7005801900057019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000
+0030000000580100009000000059010000e700000005000000580190005801e7005901e7005901900058019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000059010000900000005a010000e700000005000000590190005901e7005a01
+e7005a01900059019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000005a010000900000005b010000e7000000050000005a0190005a01e7005b01e7005b0190005a019000250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000005b010000900000005d010000e7000000050000005b0190005b01e7005d01e7005d0190005b019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000
+250000000c00000004000000250000000c0000000800008056000000300000005d010000900000005e010000e7000000050000005d0190005d01e7005e01e7005e0190005d019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000005e0100
+00900000005f010000e7000000050000005e0190005e01e7005f01e7005f0190005e019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000005f0100009000000060010000e7000000050000005f0190005f01e7006001e700600190005f01
+9000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000600100009000000061010000e700000005000000600190006001e7006101e7006101900060019000250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000610100009000000062010000e700000005000000610190006101e7006201e7006201900061019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c000000
+04000000250000000c000000080000805600000030000000620100009000000063010000e700000005000000620190006201e7006301e7006301900062019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000006301000090000000650100
+00e700000005000000630190006301e7006501e7006501900063019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000650100009000000066010000e700000005000000650190006501e7006601e7006601900065019000250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000660100009000000067010000e700000005000000660190006601e7006701e7006701900066019000250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000670100009000000068010000e700000005000000670190006701e7006801e7006801900067019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c0000000400000025000000
+0c000000080000805600000030000000680100009000000069010000e700000005000000680190006801e7006901e7006901900068019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000069010000900000006b010000e7000000050000
+00690190006901e7006b01e7006b01900069019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000006b010000900000006c010000e7000000050000006b0190006b01e7006c01e7006c0190006b019000250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006c010000900000006d010000e7000000050000006c0190006c01e7006d01e7006d0190006c019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006d010000900000006e010000e7000000050000006d0190006d01e7006e01e7006e0190006d019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080
+56000000300000006e010000900000006f010000e7000000050000006e0190006e01e7006f01e7006f0190006e019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cd0000000000250000000c00000004000000250000000c0000000800008056000000300000006f0100009000000070010000e7000000050000006f0190006f01e7
+007001e700700190006f019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000700100009000000071010000e700000005000000700190007001e7007101e7007101900070019000250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000710100009000000072010000e700000005000000710190007101e7007201e7007201900071019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000
+000000250000000c00000004000000250000000c000000080000805600000030000000720100009000000073010000e700000005000000720190007201e7007301e7007301900072019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000
+730100009000000074010000e700000005000000730190007301e7007401e7007401900073019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000740100009000000075010000e700000005000000740190007401e7007501e700750190
+0074019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000750100009000000076010000e700000005000000750190007501e7007601e7007601900075019000250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000760100009000000077010000e700000005000000760190007601e7007701e7007701900076019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c
+00000004000000250000000c000000080000805600000030000000770100009000000078010000e700000005000000770190007701e7007801e7007801900077019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000007801000090000000
+79010000e700000005000000780190007801e7007901e7007901900078019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000079010000900000007a010000e700000005000000790190007901e7007a01e7007a01900079019000250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007a010000900000007b010000e7000000050000007a0190007a01e7007b01e7007b0190007a019000250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007b010000900000007c010000e7000000050000007b0190007b01e7007c01e7007c0190007b019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c0000000400000025
+0000000c0000000800008056000000300000007c010000900000007d010000e7000000050000007c0190007c01e7007d01e7007d0190007c019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000007d010000900000007e010000e7000000
+050000007d0190007d01e7007e01e7007e0190007d019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000007e010000900000007f010000e7000000050000007e0190007e01e7007f01e7007f0190007e019000250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000007f0100009000000081010000e7000000050000007f0190007f01e7008101e700810190007f019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000810100009000000082010000e700000005000000810190008101e7008201e7008201900081019000250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000045011bff620057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c00000005000080560000002c000000090100007900000099010000fe000000040000000012700e2018700e2018000900120009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff0200
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000000000054000000780000003e0100009900000064010000a40000000100000000400d4200040dc26301000069ffffff070000004c000000000000000000000000000000ffffffffffffffff5c000000560065007200730069006f006e00000007000000060000000400000006000000030000000600000006
+0000000a0000001000000025000000020000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000450157ffa70157ff00010101154001001000000004000000000000002100000008000000
+620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000
+805700000024000000090100009400000099010000c2000000020000000012b00a2018b00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000003000000180000000c0000008b000000540000005800000025010000af0000002e010000bb0000000100000000400d4200040dc24a01000053ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000003000000180000000c0000008b000000540000009c00000036010000af0000007b010000bb0000000100000000400d4200040dc25b01000053ffffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006400610074006500200020003a0053005400520049004e0047001a220600000006000000030000000600000003000000030000000300000007000000070000000700
+00000300000007000000080000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000025010000bc0000002e010000c80000000100000000400d4200040dc24a01000046ffffff020000004c000000000000000000000000000000ffffffff
+ffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000a000000036010000bc0000007e010000c80000000100000000400d4200040dc25b01000046ffffff0e0000004c00000000000000000000000000
+0000ffffffffffffffff680000006d0061006a006f007200200020003a00550049004e0054003100360009000000060000000300000006000000030000000300000003000000030000000700000003000000070000000700000006000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+03000000180000000c0000008b000000540000005800000025010000c90000002e010000d50000000100000000400d4200040dc24a01000039ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000003000000180000000c0000008b00000054000000a000000036010000c90000007d010000d50000000100000000400d4200040dc25b01000039ffffff0e0000004c000000000000000000000000000000ffffffffffffffff680000006d006900630072006f00200020003a00550049004e005400310036000900000003000000050000000300000006000000030000000300000003000000070000000300000007
+0000000700000006000000060000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000025010000d60000002e010000e20000000100000000400d4200040dc24a0100002cffffff020000004c000000000000000000000000000000ffffff
+ffffffffff500000002b00200006000000030000000a0000001000000025000000020000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000dbffffff02000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000a000000036010000d60000007e010000e20000000100000000400d4200040dc25b0100002cffffff0e0000004c000000000000000000000000
+000000ffffffffffffffff680000006d0069006e006f007200200020003a00550049004e0054003100360009000000030000000600000006000000030000000300000003000000030000000700000003000000070000000700000006000000060000000a0000001000000025000000020000000c00000010000000000000000000000046000000e4000000d8000000454d462b0840000234000000280000000210c0db00000000
+88000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db1800000000400000b500b9ffbc00b9ffc000b9ffc700baffcb00baffd200bbffd600bbffdd00bbffe100bcffe800bcffec00bdfff300bdfff700bdfffe00beff0201beff0901bfff0d01bfff1401c0ff1801c0ff1f01c0ff2301c1ff2a01c1ff2e01c1ff2f01c2ff000100010001000100010001000100
+010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000000201001000000000000000000000000000000000000000000000002500
+00000c00000004000000250000000c000000050000805a000000b00000008e0000003e0000000c0100004b0000000c000000180000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000009900470099004b0099004200a8004600a8004d00a7004100b7004800b7004c00b6004300c6004700c5004e00c5004200d5004900d4004d00d4004400e300480
+0e3004f00e2004300f2004a00f2004e00f10045010100490101004a0100004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100000000000000
+0210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000b500b9ffc400bfffb500b9ffc400b5ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000
+000c00000004000000250000000c000000050000805a000000380000008e00000041000000a10000004f0000000200000004000000020000000200000000099004f009300400099004f009d004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c00000003000000280000000c00
+0000020000004c000000640000000000000000000000a4010000fa0000000000000000000000a5010000fb0000002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 17\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2AE73D11_E9B3_47c0_98CE_3EE49AD500E1}{\*\bkmkend BKM_2AE73D11_E9B3_47c0_98CE_3EE49AD500E1}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Coordinate}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E4E7D98D_3630_41a6_97E9_80B0B7AEE81E}{\*\bkmkend BKM_E4E7D98D_3630_41a6_97E9_80B0B7AEE81E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b altitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_31BC7699_7AFF_4166_9DBA_9E4B753B765D}{\*\bkmkend BKM_31BC7699_7AFF_4166_9DBA_9E4B753B765D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+latitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt DOUBLE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3912C22_EDD2_4cbe_A84F_8F869BCA9C67}{\*\bkmkend BKM_F3912C22_EDD2_4cbe_A84F_8F869BCA9C67}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+longitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt DOUBLE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A4C8BD46_7104_4e1c_BE52_A0EF439C2450}{\*\bkmkend BKM_A4C8BD46_7104_4e1c_BE52_A0EF439C2450}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocalizedString}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_88067380_1813_471d_9D1E_9B0FE24A86C3}{\*\bkmkend BKM_88067380_1813_471d_9D1E_9B0FE24A86C3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b countryCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional, an empty string indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A7502A8E_C185_4140_B612_590FAFCBB10F}{\*\bkmkend BKM_A7502A8E_C185_4140_B612_590FAFCBB10F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+languageCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D9AF7062_6571_47e5_B02A_2D3681F150A5}{\*\bkmkend BKM_D9AF7062_6571_47e5_B02A_2D3681F150A5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+string}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_B619CC88_FA16_496a_BA65_E761A6F9DE4D}{\*\bkmkend BKM_B619CC88_FA16_496a_BA65_E761A6F9DE4D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RectangularArea}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_919CA8FD_93B6_4c35_BA5F_201A21CE4473}{\*\bkmkend BKM_919CA8FD_93B6_4c35_BA5F_201A21CE4473}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b bottomLeft}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Coordinate}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8526FB07_E2A8_4ee6_934A_DCA400CAFC88}{\*\bkmkend BKM_8526FB07_E2A8_4ee6_934A_DCA400CAFC88}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+topRight}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Coordinate}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9CAD70AA_51A5_473f_AA67_45629716E228}{\*\bkmkend BKM_9CAD70AA_51A5_473f_AA67_45629716E228}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Version}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_217E2958_52EB_4164_8CB3_F763C173C88C}{\*\bkmkend BKM_217E2958_52EB_4164_8CB3_F763C173C88C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b date}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DA024884_A0BC_4aad_B094_AF167D7EE995}{\*\bkmkend BKM_DA024884_A0BC_4aad_B094_AF167D7EE995}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+major}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UINT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7BCAE10D_BA71_4f55_9D5E_E694779057E0}{\*\bkmkend BKM_7BCAE10D_BA71_4f55_9D5E_E694779057E0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+micro}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UINT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_07B0FD0B_9D57_4827_AF44_AF8153772D2F}{\*\bkmkend BKM_07B0FD0B_9D57_4827_AF44_AF8153772D2F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+minor}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UINT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart iconset}{\*\bkmkend iconset}{\*\bkmkstart BKM_D8510AD2_B9C5_4992_A5E0_503BC28C1AB0}{\*\bkmkend BKM_D8510AD2_B9C5_4992_A5E0_503BC28C1AB0}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 iconset}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_D79AD250_FBC9_4a58_A647_3A6EBC51B479}{\*\bkmkend BKM_D79AD250_FBC9_4a58_A647_3A6EBC51B479}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 IconSet}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw16632\pich21258\picwgoal9435\pichgoal12045\picscalex99\picscaley99\sspicalign0 010000006c000000f8ffffffffffffffe1010000650200000000000000000000f84000000a53000020454d4600000100244b0100a50e0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c
+00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff0840010334000000
+280000000210c0db05000000004000000100ffff0100a6fdd601a6fdd601ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000001000000380000000000000038000000000000000001010001000000000000000000000000000000000000
+0000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffd80100005c02000005000000100010001000a025601da025601d100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c40
+00c02c00000020000000ffffffff060000000100ecff4b00ecff5800faff5800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000034000000010000000100000058000000140000000600000010
+004001b004400180056000800510001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff
+0d400060280000001c000000060000000100ecff4b00ecff5800faff5800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffffff
+ffffffffff5a000000160000000600000010004001b004400180056000800510001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000
+000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76e8941a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bd6a38008c859e1024c00ec0141bd0000dc59e102188d1701
+653d0a88e8941a244d004e0141bd000037bb4000653d0a8870374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b78941a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1940bd00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5ae1
+026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000490000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000043000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+0000540000009c0000000600000004000000490000000f0000000100000000400d4200040dc206000000fcffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000063006c006100730073002000490063006f006e005300650074001090060000000300000006000000060000000600000003000000030000000600000006000000060000000700000006000000030000001b0000001000000000
+00000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000048c2000090c10a4000c01c00000010000000c0bfc0ff010000004a0037ff9a008b00280000000c00000001000000
+2100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000180000002c000000b2000000b7000000050000008001c0028001700b200b700b200bc0028001c002250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004a0037ff9a008b003a0000000c0000000a0000002400
+0000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000100000015000000c9000000ce000000040000008001700b200b700b200bc0028001c002250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000008e42000046c300001a4300000b43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803f
+e3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000047003aff9a008b00250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c000000080000805600000030000000150000002900000065000000b400000005000000150029001500b4006500b4006500290015002900250000000c00000008000080250000000c0000
+0000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000650000002900000069000000b400000005000000650029006500b4006900b4006900290065002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0
+df0000000000250000000c00000002000000250000000c00000008000080560000003000000069000000290000006d000000b400000005000000690029006900b4006d00b4006d00290069002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c000000080000805600000030
+0000006d0000002900000071000000b4000000050000006d0029006d00b4007100b400710029006d002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000710000002900000075000000b400000005000000710029007100b4007500b400
+7500290071002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000750000002900000079000000b400000005000000750029007500b4007900b4007900290075002900250000000c00000008000080250000000c00000000000080280000
+000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c00000008000080560000003000000079000000290000007d000000b400000005000000790029007900b4007d00b4007d00290079002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d600000000002500
+00000c00000002000000250000000c0000000800008056000000300000007d0000002900000081000000b4000000050000007d0029007d00b4008100b400810029007d002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000008100000029
+00000085000000b400000005000000810029008100b4008500b4008500290081002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c00000008000080560000003000000085000000290000008a000000b400000005000000850029008500b4008a00b4008a00290085002900
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800008056000000300000008a000000290000008e000000b4000000050000008a0029008a00b4008e00b4008e0029008a002900250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c0000000800008056000000300000008e0000002900000091000000b4000000050000008e0029008e00b4009100b400910029008e002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c0000000200
+0000250000000c000000080000805600000030000000910000002900000094000000b400000005000000910029009100b4009400b4009400290091002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c000000080000805600000030000000940000002900000097000000b4
+00000005000000940029009400b4009700b4009700290094002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c00000008000080560000003000000097000000290000009b000000b400000005000000970029009700b4009b00b4009b00290097002900250000000c000000
+08000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c0000000800008056000000300000009b00000029000000a0000000b4000000050000009b0029009b00b400a000b400a00029009b002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000
+000200000000000000ecdcc50000000000250000000c00000002000000250000000c000000080000805600000030000000a000000029000000a5000000b400000005000000a0002900a000b400a500b400a5002900a0002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c00
+0000080000805600000030000000a500000029000000a9000000b400000005000000a5002900a500b400a900b400a9002900a5002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000a900000029000000ad000000b400000005000000a9
+002900a900b400ad00b400ad002900a9002900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7bf0000000000250000000c00000002000000250000000c000000080000805600000030000000ad00000029000000af000000b400000005000000ad002900ad00b400af00b400af002900ad002900250000000c0000000800008025000000
+0c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000047003aff9a008b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000feffffff12000000c6000000cb000000040000005001400bf00a400bf00a900250019002250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e7698901a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b6ea3e0041c58e10242005c0145bd00003058e102188d1701e6360a4e98901a2443004e0145bd000037bb4000e6360a4e70374b0ba8d56b0008000000a05ae102000000001098bf2348004b
+0b5c014b0b78941a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1944bd00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000002000000180000000c00000000000000540000007800000050000000320000007500
+00003d0000000100000000400d4200040dc282000000bcffffff070000004c000000000000000000000000000000ffffffffffffffff5c000000490063006f006e005300650074000000030000000600000006000000060000000700000006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004700aaffe100aaff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000030000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000003000000250000000c000000050000805700000024000000feffffff2d000000c60000005b0000000200000050014004f00a4004250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000030000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901e6360a4d9c58530bb29619010000000098901a248ce3c577738c172646e0c5779401300b0000300b188d1701e6360a4d4100f60043bd0000c457e10237bb4000e6360a4d98901a244200d20043bd00008882dd193c5ce10270374b0b000000000800000000000000000000001098bf23
+48004b0b5c014b0b98901a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000090901a24dc57e10223e0c57798901a243a6c2e760865450190901a24f057e102ad148b756476000800000000250000000c00000003000000180000000c0000008b00000054000000580000001a000000480000
+0023000000540000000100000000400d4200040dc24c000000a6ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000cc0000002b
+0000004800000094000000540000000100000000400d4200040dc25d000000a6ffffff150000004c000000000000000000000000000000ffffffffffffffff7800000063006f006c006f0072005400790070006500200020003a0043006f006c006f007200540079007000650000000500000006000000030000000600000003000000070000000500000006000000060000000300000003000000030000000700000006000000
+030000000600000003000000070000000500000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000001a0000005500000023000000610000000100000000400d4200040dc24c00000099ffffff020000004c0000000000
+00000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000cc0000002b00000055000000a4000000610000000100000000400d4200040dc25d00000099ffffff15000000
+4c000000000000000000000000000000ffffffffffffffff78000000640061007900540069006d006500490063006f006e00200020003a0042004f004f004c00450041004e0000000600000006000000050000000700000003000000090000000600000003000000050000000600000006000000030000000300000003000000070000000800000008000000060000000700000007000000070000000a00000010000000320000
+00eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000001a00000062000000230000006e0000000100000000400d4200040dc24c0000008cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010
+00000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000e40000002b00000062000000ab0000006e0000000100000000400d4200040dc25d0000008cffffff190000004c000000000000000000000000000000ffffffffffffffff80000000640069006d0065006e0073
+0069006f006e00200020003a00490063006f006e00440069006d0065006e00730069006f006e000000060000000300000009000000060000000600000004000000030000000600000006000000030000000300000003000000030000000500000006000000060000000700000003000000090000000600000006000000040000000300000006000000060000000a0000001000000032000000eeffffff0c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000001a0000006f000000230000007b0000000100000000400d4200040dc24c0000007fffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000b40000002b0000006f0000007e0000007b0000000100000000400d4200040dc25d0000007fffffff110000004c000000000000000000000000000000ffffffffffffffff70000000690063006f006e0053006500740049006400200020003a004900
+4e00540033003200000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000
+580000001a0000007c00000023000000880000000100000000400d4200040dc24c00000072ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00
+000054000000c00000002b0000007c0000009a000000880000000100000000400d4200040dc25d00000072ffffff130000004c000000000000000000000000000000ffffffffffffffff740000006d0065006400690075006d005400790070006500200020003a0053005400520049004e004700000009000000060000000600000003000000060000000900000007000000050000000600000006000000030000000300000003
+0000000700000007000000070000000300000007000000080000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000001a0000008900000023000000950000000100000000400d4200040dc24c00000065ffffff020000004c000000000000
+000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000a80000002b0000008900000078000000950000000100000000400d4200040dc25d00000065ffffff0f0000004c
+000000000000000000000000000000ffffffffffffffff6c0000007400680065006d00650049006400200020003a0049004e0054003300320000000300000006000000060000000900000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b
+0a4000c01c00000010000000c0bfc0ff010000006c014aff900088002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003a0100001c000000ca010000a400000005000000a013c0
+01a013400aa01c400aa01cc001a013c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006c01
+4aff900088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002301000005000000e1010000bb00000004000000a013400aa0
+1c400aa01cc001a013c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080b443000033c30000104300000843bed7e8ffe3f2fcffbed7e8ff
+e3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000069014dff90008800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000370100001900000082010000a100000005000000370119003701a1008201a10082011900370119
+00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000820100001900000086010000a100000005000000820119008201a1008601a1008601190082011900250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000086010000190000008a010000a100000005000000860119008601a1008a01a1008a01190086011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004
+000000250000000c0000000800008056000000300000008a010000190000008e010000a1000000050000008a0119008a01a1008e01a1008e0119008a011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000008e0100001900000092010000
+a1000000050000008e0119008e01a1009201a100920119008e011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000920100001900000096010000a100000005000000920119009201a1009601a1009601190092011900250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000096010000190000009a010000a100000005000000960119009601a1009a01a1009a01190096011900250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000009a010000190000009e010000a1000000050000009a0119009a01a1009e01a1009e0119009a011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c
+0000000800008056000000300000009e01000019000000a2010000a1000000050000009e0119009e01a100a201a100a20119009e011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000a201000019000000a6010000a100000005000000
+a2011900a201a100a601a100a6011900a2011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000a601000019000000a9010000a100000005000000a6011900a601a100a901a100a9011900a6011900250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000a901000019000000ac010000a100000005000000a9011900a901a100ac01a100ac011900a9011900250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000019000000af010000a100000005000000ac011900ac01a100af01a100af011900ac011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056
+00000030000000af01000019000000b3010000a100000005000000af011900af01a100b301a100b3011900af011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000b301000019000000b7010000a100000005000000b3011900b301a100
+b701a100b7011900b3011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b701000019000000bb010000a100000005000000b7011900b701a100bb01a100bb011900b7011900250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000bb01000019000000bf010000a100000005000000bb011900bb01a100bf01a100bf011900bb011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac2000000
+0000250000000c00000004000000250000000c000000080000805600000030000000bf01000019000000c3010000a100000005000000bf011900bf01a100c301a100c3011900bf011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000c3
+01000019000000c7010000a100000005000000c3011900c301a100c701a100c7011900c3011900250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b40004018000000
+0c0000000100000069014dff900088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002001000002000000de010000b80000
+00040000007013100a701c100a701c900170139001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000
+0000001e0000001800000073010000cffffffff0010000c2ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000005b0100001f000000a30100002b0000000100000000400d4200040dc28d010000cfffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d006500
+72006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c000000000000005400000084000000670100002c00000097010000370000000100000000400d4200040dc299010000c2ffffff090000004c000000000000000000000000000000ffffffffffffffff6000000043006f006c006f007200540079007000650000000700000006000000030000000600000004000000050000000500000006000000060000000a00000010
+00000032000000eeffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006901b0fff901b0ff00010101154001001000000004000000000000002100000008000000620000000c000000
+01000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000
+002001000027000000de01000055000000020000007013e003701ce003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018
+0000000c0000008b00000054000000540000003c010000420000003f0100004e0000000100000000400d4200040dc26e010000acffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c000000030000
+00180000000c0000008b00000054000000b40000004d01000042000000b10100004e0000000100000000400d4200040dc27f010000acffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030000000070000000800000007000000060000000700000007000000070000000700000003000000060000000300
+00000700000007000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003c0100004f0000003f0100005b0000000100000000400d4200040dc26e0100009fffffff010000004c00000000000000
+0000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000c00000004d0100004f000000c30100005b0000000100000000400d4200040dc27f0100009fffffff130000004c0000000000
+00000000000000000000ffffffffffffffff7400000042004c00410043004b005f0041004e0044005f005700480049005400450020003d00200031000000070000000600000007000000070000000700000006000000070000000700000007000000060000000900000007000000030000000700000007000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003c0100005c0000003f010000680000000100000000400d4200040dc26e01000092ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000880000004d0100005c00000088010000680000000100000000400d4200040dc27f01000092ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000047005200410059005f00340020003d002000320008000000070000000700000007
+0000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003c010000690000003f010000750000000100000000400d4200040dc26e01000085ffffff010000004c000000000000
+000000000000000000ffffffffffffffff5000000020000010030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000880000004d0100006900000088010000750000000100000000400d4200040dc27f01000085ffffff0a0000004c00000000
+0000000000000000000000ffffffffffffffff6000000047005200410059005f00380020003d0020003300080000000700000007000000070000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000
+0054000000540000003c010000760000003f010000820000000100000000400d4200040dc26e01000078ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b
+00000054000000880000004d0100007600000087010000820000000100000000400d4200040dc27f01000078ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000052004700420035003500350020003d0020003400070000000800000007000000060000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003c010000830000003f0100008f0000000100000000400d4200040dc26e0100006bffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000880000004d01000083000000870100008f0000000100000000400d4200040dc27f0100006bffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000052004700420035003600350020003d0020003500070000000800000007000000
+060000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003c010000900000003f0100009c0000000100000000400d4200040dc26e0100005effffff010000004c0000000000
+00000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000880000004d01000090000000870100009c0000000100000000400d4200040dc27f0100005effffff0a0000004c000000
+000000000000000000000000ffffffffffffffff6000000052004700420038003800380020003d0020003600070000000800000007000000060000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000006f01d3fe8400540021000000080000
+00620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003d010000c7000000c10100001b01000005000000d013700cd013b011101cb011101c700cd013700c250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006f01d3fe840054003a0000000c0000000a00000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000026010000b0000000d80100003201000004000000d013b011101cb011101c700cd013700c250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b643000095c3000004430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000
+401c0000001000000002000000010000006c01d6fe84005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000003a010000c40000007f01000018010000050000003a01c4003a0118017f0118017f01c4003a01c400250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000007f010000c40000008201000018010000050000007f01c4007f011801820118018201c4007f01c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004
+000000250000000c00000008000080560000003000000082010000c40000008601000018010000050000008201c40082011801860118018601c4008201c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000086010000c40000008a010000
+18010000050000008601c400860118018a0118018a01c4008601c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000008a010000c40000008e01000018010000050000008a01c4008a0118018e0118018e01c4008a01c400250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000008e010000c40000009101000018010000050000008e01c4008e011801910118019101c4008e01c400250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000091010000c40000009401000018010000050000009101c40091011801940118019401c4009101c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c
+00000008000080560000003000000094010000c40000009801000018010000050000009401c40094011801980118019801c4009401c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000098010000c40000009c0100001801000005000000
+9801c400980118019c0118019c01c4009801c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000009c010000c4000000a001000018010000050000009c01c4009c011801a0011801a001c4009c01c400250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000a0010000c4000000a30100001801000005000000a001c400a0011801a3011801a301c400a001c400250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000a3010000c4000000a70100001801000005000000a301c400a3011801a7011801a701c400a301c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056
+00000030000000a7010000c4000000aa0100001801000005000000a701c400a7011801aa011801aa01c400a701c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000aa010000c4000000ad0100001801000005000000aa01c400aa011801
+ad011801ad01c400aa01c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000ad010000c4000000b10100001801000005000000ad01c400ad011801b1011801b101c400ad01c400250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000b1010000c4000000b50100001801000005000000b101c400b1011801b5011801b501c400b101c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac3000000
+0000250000000c00000004000000250000000c000000080000805600000030000000b5010000c4000000b90100001801000005000000b501c400b5011801b9011801b901c400b501c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000b9
+010000c4000000bc0100001801000005000000b901c400b9011801bc011801bc01c400b901c400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000bc010000c4000000be0100001801000005000000bc01c400bc011801be011801be01c400
+bc01c400250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000006c01d6fe840054003a0000000c0000000a00000024000000240000
+000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000023010000ad000000d50100002f01000004000000a0138011e01b8011e01b400ca013400c250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000001e000000180000007601000024ffffffe701000017ffffff160000000c000000
+01000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000058010000ca000000a0010000d60000000100000000400d4200040dc28a01000024ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000006000000060000000600000006000000090000
+0006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000540000009c
+00000058010000d7000000a1010000e20000000100000000400d4200040dc28a01000017ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e00440069006d0065006e00730069006f006e000000030000000600000006000000060000000700000003000000090000000600000006000000060000000300000006000000060000000a0000001000000032000000eeffffff
+0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006c0105fff00105ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c0000
+00010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000023010000d2000000d501
+00000001000002000000a013900ee01b900e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000
+54000000540000003f010000ed00000042010000f90000000100000000400d4200040dc27101000001ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00
+000054000000b400000050010000ed000000b4010000f90000000100000000400d4200040dc28201000001ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300000000700000008000000070000000600000007000000070000000700000007000000030000000600000003000000070000000700000003
+0000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003f010000fa00000042010000060100000100000000400d4200040dc271010000f4feffff010000004c000000000000000000000000000000ffffff
+ffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000007c00000050010000fa0000007c010000060100000100000000400d4200040dc282010000f4feffff080000004c000000000000000000000000000000ff
+ffffffffffffff5c00000044005f003200440020003d002000310007000000060000000600000007000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000540000003f0100000701000042010000130100
+000100000000400d4200040dc271010000e7feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000008800000050010000070100008801000013
+0100000100000000400d4200040dc282010000e7feffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000044005f0032005f003500440020003d0020003200070000000600000006000000060000000600000007000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c0
+1c00000010000000c0bfc0ff01000000ed009bfe590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000bb0000000e010000140100005301000005000000b00be010b00b30
+15401130154011e010b00be010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000ed009bfe5900
+45003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a4000000f70000002b0100006a01000004000000b00b30154011301540
+11e010b00be010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000006a430000b1c30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff
+03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ea009efe59004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000b80000000b010000e60000005001000005000000b8000b01b8005001e6005001e6000b01b8000b01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000e60000000b010000e70000005001000005000000e6000b01e6005001e7005001e7000b01e6000b01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000e70000000b010000e80000005001000005000000e7000b01e7005001e8005001e8000b01e7000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c0000000400000025
+0000000c000000080000805600000030000000e80000000b010000e90000005001000005000000e8000b01e8005001e9005001e9000b01e8000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000e90000000b010000ea00000050010000
+05000000e9000b01e9005001ea005001ea000b01e9000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000ea0000000b010000eb0000005001000005000000ea000b01ea005001eb005001eb000b01ea000b01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000eb0000000b010000ed0000005001000005000000eb000b01eb005001ed005001ed000b01eb000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ed0000000b010000ee0000005001000005000000ed000b01ed005001ee005001ee000b01ed000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000ee0000000b010000ef0000005001000005000000ee000b01ee005001ef005001ef000b01ee000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000ef0000000b010000f10000005001000005000000ef000b01
+ef005001f1005001f1000b01ef000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000f10000000b010000f20000005001000005000000f1000b01f1005001f2005001f2000b01f1000b01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000f20000000b010000f30000005001000005000000f2000b01f2005001f3005001f3000b01f2000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9
+d70000000000250000000c00000004000000250000000c000000080000805600000030000000f30000000b010000f40000005001000005000000f3000b01f3005001f4005001f4000b01f3000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030
+000000f40000000b010000f50000005001000005000000f4000b01f4005001f5005001f5000b01f4000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000f50000000b010000f60000005001000005000000f5000b01f5005001f6005001
+f6000b01f5000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000f60000000b010000f70000005001000005000000f6000b01f6005001f7005001f7000b01f6000b01250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000f70000000b010000f80000005001000005000000f7000b01f7005001f8005001f8000b01f7000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d300000000002500
+00000c00000004000000250000000c000000080000805600000030000000f80000000b010000f90000005001000005000000f8000b01f8005001f9005001f9000b01f8000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000f90000000b
+010000fa0000005001000005000000f9000b01f9005001fa005001fa000b01f9000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000fa0000000b010000fb0000005001000005000000fa000b01fa005001fb005001fb000b01fa000b01
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000fb0000000b010000fc0000005001000005000000fb000b01fb005001fc005001fc000b01fb000b01250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000fc0000000b010000fd0000005001000005000000fc000b01fc005001fd005001fd000b01fc000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c0000000400
+0000250000000c000000080000805600000030000000fd0000000b010000fe0000005001000005000000fd000b01fd005001fe005001fe000b01fd000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000fe0000000b010000ff00000050
+01000005000000fe000b01fe005001ff005001ff000b01fe000b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ff0000000b010000000100005001000005000000ff000b01ff0050010001500100010b01ff000b01250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000000100000b01000001010000500100000500000000010b01000150010101500101010b0100010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000010100000b01000002010000500100000500000001010b01010150010201500102010b0101010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000020100000b01000004010000500100000500000002010b01020150010401500104010b0102010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000040100000b01000005010000500100000500000004
+010b01040150010501500105010b0104010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000050100000b01000006010000500100000500000005010b01050150010601500106010b0105010b01250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000060100000b01000007010000500100000500000006010b01060150010701500107010b0106010b01250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000070100000b01000008010000500100000500000007010b01070150010801500108010b0107010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600
+000030000000080100000b0100000a010000500100000500000008010b01080150010a0150010a010b0108010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000a0100000b0100000b01000050010000050000000a010b010a0150010b
+0150010b010b010a010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000000b0100000b0100000d01000050010000050000000b010b010b0150010d0150010d010b010b010b01250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000000d0100000b0100000e01000050010000050000000d010b010d0150010e0150010e010b010d010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c100000000
+00250000000c00000004000000250000000c0000000800008056000000300000000e0100000b0100000f01000050010000050000000e010b010e0150010f0150010f010b010e010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000000f01
+00000b0100001001000050010000050000000f010b010f0150011001500110010b010f010b01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000100100000b01000011010000500100000500000010010b01100150011101500111010b0110
+010b01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ea009efe590045003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a1000000f4000000280100006701000004000000800b0015101100151011b010800bb010250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000540000007c000000d000000014010000fa0000001f0100000100000000400d4200
+040dc202010000dafeffff080000004c000000000000000000000000000000ffffffffffffffff5c000000490063006f006e00530069007a00650003000000060000000600000006000000070000000300000005000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ea00c8fe4301c8fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000a10000000f010000280100003d01000002000000800b601210116012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000bd0000002a010000c6000000360100000100000000400d4200040dc2ef000000c4feffff020000004c0000000000000000000000
+00000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000090000000ce0000002a01000003010000360100000100000000400d4200040dc200010000c4feffff0b0000004c0000000000
+00000000000000000000ffffffffffffffff64000000640070006900200020003a0049004e00540033003200000006000000060000000300000003000000030000000300000003000000070000000700000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000008b0000005400000058000000bd00000037010000c6000000430100000100000000400d4200040dc2ef000000b7feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300
+0000180000000c0000008b00000054000000a0000000ce0000003701000012010000430100000100000000400d4200040dc200010000b7feffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000680065006900670068007400200020003a0049004e0054003300320006000000060000000300000006000000060000000300000003000000030000000300000003000000070000000700000006
+000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000bd00000044010000c6000000500100000100000000400d4200040dc2ef000000aafeffff020000004c000000000000000000000000000000ffffffffffffffff500000
+002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000009c000000ce000000440100000d010000500100000100000000400d4200040dc200010000aafeffff0d0000004c000000000000000000000000000000ffffffffff
+ffffff6800000077006900640074006800200020003a0049004e005400330032000101070000000300000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000044009ffe7100450021000000
+08000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000120000000a010000830000004f010000050000002001a0102001f0143008f0143008a0102001a010250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000044009ffe710045003a0000000c0000000a00000024000000240000000000803d0000
+0000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbfffffff30000009a00000066010000040000002001f0143008f0143008a0102001a010250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000082420000afc30000e24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff
+0a4000401c0000001000000002000000010000004100a2fe71004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f00000007010000490000004c010000050000000f0007010f004c0149004c01490007010f000701250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c00000008000080560000003000000049000000070100004a0000004c010000050000004900070149004c014a004c014a00070149000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00
+000004000000250000000c0000000800008056000000300000004a000000070100004c0000004c010000050000004a0007014a004c014c004c014c0007014a000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000004c000000070100004d
+0000004c010000050000004c0007014c004c014d004c014d0007014c000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000004d000000070100004e0000004c010000050000004d0007014d004c014e004c014e0007014d00070125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000004e00000007010000500000004c010000050000004e0007014e004c0150004c01500007014e000701250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000005000000007010000520000004c010000050000005000070150004c0152004c015200070150000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c000000040000002500
+00000c0000000800008056000000300000005200000007010000530000004c010000050000005200070152004c0153004c015300070152000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000005300000007010000540000004c01000005
+0000005300070153004c0154004c015400070153000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000005400000007010000550000004c010000050000005400070154004c0155004c015500070154000701250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000005500000007010000570000004c010000050000005500070155004c0157004c015700070155000701250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000005700000007010000580000004c010000050000005700070157004c0158004c015800070157000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800
+0080560000003000000058000000070100005a0000004c010000050000005800070158004c015a004c015a00070158000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000005a000000070100005b0000004c010000050000005a0007015a
+004c015b004c015b0007015a000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000005b000000070100005c0000004c010000050000005b0007015b004c015c004c015c0007015b000701250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c0000000800008056000000300000005c000000070100005d0000004c010000050000005c0007015c004c015d004c015d0007015c000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d5
+0000000000250000000c00000004000000250000000c0000000800008056000000300000005d000000070100005e0000004c010000050000005d0007015d004c015e004c015e0007015d000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000
+00005e00000007010000600000004c010000050000005e0007015e004c0160004c01600007015e000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000006000000007010000610000004c010000050000006000070160004c0161004c0161
+00070160000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000006100000007010000620000004c010000050000006100070161004c0162004c016200070161000701250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000006200000007010000630000004c010000050000006200070162004c0163004c016300070162000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000
+000c00000004000000250000000c0000000800008056000000300000006300000007010000650000004c010000050000006300070163004c0165004c016500070163000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000650000000701
+0000660000004c010000050000006500070165004c0166004c016600070165000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006600000007010000670000004c010000050000006600070166004c0167004c01670007016600070125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006700000007010000680000004c010000050000006700070167004c0168004c016800070167000701250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000006800000007010000690000004c010000050000006800070168004c0169004c016900070168000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c000000040000
+00250000000c00000008000080560000003000000069000000070100006a0000004c010000050000006900070169004c016a004c016a00070169000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cd0000000000250000000c00000004000000250000000c0000000800008056000000300000006a000000070100006b0000004c01
+0000050000006a0007016a004c016b004c016b0007016a000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006b000000070100006c0000004c010000050000006b0007016b004c016c004c016c0007016b000701250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000006c000000070100006d0000004c010000050000006c0007016c004c016d004c016d0007016c000701250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000006d000000070100006f0000004c010000050000006d0007016d004c016f004c016f0007016d000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000
+000800008056000000300000006f00000007010000700000004c010000050000006f0007016f004c0170004c01700007016f000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000007000000007010000710000004c010000050000007000
+070170004c0171004c017100070170000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c0000000800008056000000300000007100000007010000720000004c010000050000007100070171004c0172004c017200070171000701250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000007200000007010000730000004c010000050000007200070172004c0173004c017300070172000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000007300000007010000740000004c010000050000007300070173004c0174004c017400070173000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c00000008000080560000
+00300000007400000007010000750000004c010000050000007400070174004c0175004c017500070174000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000007500000007010000770000004c010000050000007500070175004c017700
+4c017700070175000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007700000007010000780000004c010000050000007700070177004c0178004c017800070177000701250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007800000007010000790000004c010000050000007800070178004c0179004c017900070178000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000
+250000000c00000004000000250000000c00000008000080560000003000000079000000070100007a0000004c010000050000007900070179004c017a004c017a00070179000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000007a0000
+00070100007b0000004c010000050000007a0007017a004c017b004c017b0007017a000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000007b000000070100007c0000004c010000050000007b0007017b004c017c004c017c0007017b00
+0701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000007c000000070100007d0000004c010000050000007c0007017c004c017d004c017d0007017c000701250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000007d000000070100007e0000004c010000050000007d0007017d004c017e004c017e0007017d000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c000000
+04000000250000000c0000000800008056000000300000007e000000070100007f0000004c010000050000007e0007017e004c017f004c017f0007017e000701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000007f00000007010000800000
+004c010000050000007f0007017f004c0180004c01800007017f000701250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004100
+a2fe710045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8fffffff0000000970000006301000004000000f000c01400
+08c01400087010f0007010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000000000054000000a00000
+0024000000100100006c0000001b0100000100000000400d4200040dc256000000defeffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e00440065007300630072006900700074006f00720003000000060000000600000006000000070000000600000006000000060000000400000003000000060000000300000006000000040000000a0000001000000032000000eeff
+ffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004100ccfeb200ccfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c
+000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff0b010000
+970000003901000002000000f000201200082012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00
+0000540000005800000014000000260100001d000000320100000100000000400d4200040dc246000000c8feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000008b00000054000000a0000000250000002601000068000000320100000100000000400d4200040dc257000000c8feffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000690063006f006e0049006400200020003a0049004e0054003300320003000000050000000600000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000
+000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b000000540000005800000014000000330100001d0000003f0100000100000000400d4200040dc246000000bbfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006
+000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000940000002500000033010000610000003f0100000100000000400d4200040dc257000000bbfeffff0c0000004c000000000000000000000000000000ffffffffffffffff640000
+00750072006c00200020003a0053005400520049004e0047000600000003000000030000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002e01a0fd6d0045002100000008000000620000000c0000000100
+0000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000fc00000009020000690100004e02000005000000c00f9020c00fe0249016e02490169020c00f9020250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002e01a0fd6d0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e5000000f2010000800100006502000004000000c00fe0249016e02490169020c00f9020250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000809543004017c40000da4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200
+0000010000002b01a3fd6d004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000f900000006020000310100004b02000005000000f9000602f9004b0231014b0231010602f9000602250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000fcf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000003101000006020000320100004b020000050000003101060231014b0232014b023201060231010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000
+0800008056000000300000003201000006020000330100004b020000050000003201060232014b0233014b023301060232010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000003301000006020000350100004b02000005000000330106
+0233014b0235014b023501060233010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000003501000006020000360100004b020000050000003501060235014b0236014b023601060235010602250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000003601000006020000380100004b020000050000003601060236014b0238014b023801060236010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9
+eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000003801000006020000390100004b020000050000003801060238014b0239014b023901060238010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c0000000800008056000000
+3000000039010000060200003a0100004b020000050000003901060239014b023a014b023a01060239010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000003a010000060200003b0100004b020000050000003a0106023a014b023b014b
+023b0106023a010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000003b010000060200003d0100004b020000050000003b0106023b014b023d014b023d0106023b010602250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000003d010000060200003e0100004b020000050000003d0106023d014b023e014b023e0106023d010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd9000000000025
+0000000c00000004000000250000000c0000000800008056000000300000003e010000060200003f0100004b020000050000003e0106023e014b023f014b023f0106023e010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000003f010000
+06020000400100004b020000050000003f0106023f014b0240014b02400106023f010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000004001000006020000410100004b020000050000004001060240014b0241014b0241010602400106
+02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000004101000006020000420100004b020000050000004101060241014b0242014b024201060241010602250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000004201000006020000430100004b020000050000004201060242014b0243014b024301060242010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004
+000000250000000c0000000800008056000000300000004301000006020000440100004b020000050000004301060243014b0244014b024401060243010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000440100000602000045010000
+4b020000050000004401060244014b0245014b024501060244010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000004501000006020000460100004b020000050000004501060245014b0246014b024601060245010602250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000004601000006020000470100004b020000050000004601060246014b0247014b024701060246010602250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000004701000006020000480100004b020000050000004701060247014b0248014b024801060247010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c
+0000000800008056000000300000004801000006020000490100004b020000050000004801060248014b0249014b024901060248010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000049010000060200004a0100004b02000005000000
+4901060249014b024a014b024a01060249010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000004a010000060200004c0100004b020000050000004a0106024a014b024c014b024c0106024a010602250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000004c010000060200004d0100004b020000050000004c0106024c014b024d014b024d0106024c010602250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000004d010000060200004e0100004b020000050000004d0106024d014b024e014b024e0106024d010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056
+000000300000004e010000060200004f0100004b020000050000004e0106024e014b024f014b024f0106024e010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000004f01000006020000500100004b020000050000004f0106024f014b02
+50014b02500106024f010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000005001000006020000510100004b020000050000005001060250014b0251014b025101060250010602250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000005101000006020000530100004b020000050000005101060251014b0253014b025301060251010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb000000
+0000250000000c00000004000000250000000c0000000800008056000000300000005301000006020000540100004b020000050000005301060253014b0254014b025401060253010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000054
+01000006020000550100004b020000050000005401060254014b0255014b025501060254010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000005501000006020000570100004b020000050000005501060255014b0257014b0257010602
+55010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000005701000006020000580100004b020000050000005701060257014b0258014b025801060257010602250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000058010000060200005a0100004b020000050000005801060258014b025a014b025a01060258010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00
+000004000000250000000c0000000800008056000000300000005a010000060200005b0100004b020000050000005a0106025a014b025b014b025b0106025a010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000005b010000060200005d
+0100004b020000050000005b0106025b014b025d014b025d0106025b010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000005d010000060200005e0100004b020000050000005d0106025d014b025e014b025e0106025d01060225000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000005e010000060200005f0100004b020000050000005e0106025e014b025f014b025f0106025e010602250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000005f01000006020000600100004b020000050000005f0106025f014b0260014b02600106025f010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c000000040000002500
+00000c0000000800008056000000300000006001000006020000610100004b020000050000006001060260014b0261014b026101060260010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000006101000006020000620100004b02000005
+0000006101060261014b0262014b026201060261010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000006201000006020000630100004b020000050000006201060262014b0263014b026301060262010602250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000006301000006020000640100004b020000050000006301060263014b0264014b026401060263010602250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000e9d8bf0000000000250000000c00000004000000250000000c0000000800008056000000300000006401000006020000650100004b020000050000006401060264014b0265014b026501060264010602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800
+008056000000300000006501000006020000660100004b020000050000006501060265014b0266014b026601060265010602250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000000000
+0000ff0b400040180000000c000000010000002b01a3fd6d0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e2000000
+ef0100007d0100006202000004000000900fb0246016b02460166020900f6020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c00000000000000540000007c0000001a0100000f020000450100001a0200000100000000400d4200040dc24c010000dffdffff080000004c000000000000000000000000000000ffffffffffffffff5c000000490063006f006e00440061007400610003000000060000000600000006000000070000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000
+000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002b01cdfd9801cdfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000
+00000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000e20000000a0200007d0100003802000002000000900f10
+2260161022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b0000005400000058000000fe00000025
+02000007010000310200000100000000400d4200040dc230010000c9fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000b80000
+000f0100002502000062010000310200000100000000400d4200040dc241010000c9fdffff120000004c000000000000000000000000000000ffffffffffffffff700000006400610074006100200020003a00420059005400450020005b0031002e002e002a005d000600000006000000030000000600000003000000030000000300000007000000070000000700000007000000030000000300000006000000030000000300
+000004000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007900a5fd6d0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+000000250000000c00000001000000250000000c0000000800008056000000300000004700000004020000b400000049020000050000007004402070049024400b9024400b402070044020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007900a5fd6d0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc0000000000000000000000000
+00250000000c00000004000000250000000c00000005000080560000002c00000030000000ed010000cb000000600200000400000070049024400b9024400b402070044020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d
+462b08400201580000004c0000000210c0db0400000004000000000000000000ec42000016c40000da4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000007600a8fd6d004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c0000000400000025
+0000000c00000008000080560000003000000044000000010200007c000000460200000500000044000102440046027c0046027c00010244000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000007c000000010200007d00000046020000
+050000007c0001027c0046027d0046027d0001027c000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000007d000000010200007e00000046020000050000007d0001027d0046027e0046027e0001027d000102250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000007e000000010200008000000046020000050000007e0001027e00460280004602800001027e000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000080000000010200008100000046020000050000008000010280004602810046028100010280000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008
+000080560000003000000081000000010200008300000046020000050000008100010281004602830046028300010281000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000830000000102000084000000460200000500000083000102
+83004602840046028400010283000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000084000000010200008500000046020000050000008400010284004602850046028500010284000102250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000085000000010200008600000046020000050000008500010285004602860046028600010285000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ec
+db0000000000250000000c00000004000000250000000c00000008000080560000003000000086000000010200008800000046020000050000008600010286004602880046028800010286000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030
+00000088000000010200008900000046020000050000008800010288004602890046028900010288000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000089000000010200008a000000460200000500000089000102890046028a004602
+8a00010289000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000008a000000010200008b00000046020000050000008a0001028a0046028b0046028b0001028a000102250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000008b000000010200008c00000046020000050000008b0001028b0046028c0046028c0001028b000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d700000000002500
+00000c00000004000000250000000c0000000800008056000000300000008c000000010200008d00000046020000050000008c0001028c0046028d0046028d0001028c000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000008d00000001
+0200008e00000046020000050000008d0001028d0046028e0046028e0001028d000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c0000000800008056000000300000008e000000010200008f00000046020000050000008e0001028e0046028f0046028f0001028e000102
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000008f000000010200009000000046020000050000008f0001028f00460290004602900001028f000102250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000090000000010200009100000046020000050000009000010290004602910046029100010290000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c0000000400
+0000250000000c00000008000080560000003000000091000000010200009200000046020000050000009100010291004602920046029200010291000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000092000000010200009300000046
+020000050000009200010292004602930046029300010292000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000093000000010200009400000046020000050000009300010293004602940046029400010293000102250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000094000000010200009500000046020000050000009400010294004602950046029500010294000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000095000000010200009700000046020000050000009500010295004602970046029700010295000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00
+000008000080560000003000000097000000010200009800000046020000050000009700010297004602980046029800010297000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000980000000102000099000000460200000500000098
+00010298004602990046029900010298000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000099000000010200009a000000460200000500000099000102990046029a0046029a00010299000102250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000009a000000010200009b00000046020000050000009a0001029a0046029b0046029b0001029a000102250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000010200009c00000046020000050000009b0001029b0046029c0046029c0001029b000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600
+0000300000009c000000010200009e00000046020000050000009c0001029c0046029e0046029e0001029c000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000009e000000010200009f00000046020000050000009e0001029e0046029f
+0046029f0001029e000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000009f00000001020000a000000046020000050000009f0001029f004602a0004602a00001029f000102250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000a000000001020000a20000004602000005000000a0000102a0004602a2004602a2000102a0000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc800000000
+00250000000c00000004000000250000000c000000080000805600000030000000a200000001020000a30000004602000005000000a2000102a2004602a3004602a3000102a2000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000a300
+000001020000a50000004602000005000000a3000102a3004602a5004602a5000102a3000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000a500000001020000a60000004602000005000000a5000102a5004602a6004602a6000102a5
+000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000a600000001020000a80000004602000005000000a6000102a6004602a8004602a8000102a6000102250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000a800000001020000a90000004602000005000000a8000102a8004602a9004602a9000102a8000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c0000
+0004000000250000000c000000080000805600000030000000a900000001020000aa0000004602000005000000a9000102a9004602aa004602aa000102a9000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000aa00000001020000ab00
+00004602000005000000aa000102aa004602ab004602ab000102aa000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000ab00000001020000ac0000004602000005000000ab000102ab004602ac004602ac000102ab000102250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000ac00000001020000ad0000004602000005000000ac000102ac004602ad004602ad000102ac000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000ad00000001020000ae0000004602000005000000ad000102ad004602ae004602ae000102ad000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000
+000c000000080000805600000030000000ae00000001020000af0000004602000005000000ae000102ae004602af004602af000102ae000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000af00000001020000b0000000460200000500
+0000af000102af004602b0004602b0000102af000102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b000000001020000b10000004602000005000000b0000102b0004602b1004602b1000102b0000102250000000c0000000800008025
+0000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000007600a8fd6d0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002d000000ea010000c80000005d0200000400000040046024100b6024100b102040041020250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000540000007c000000670000000a0200008e000000150200000100000000400d4200040dc299000000e4fdffff080000004c
+000000000000000000000000000000ffffffffffffffff5c000000490063006f006e0049006e0066006f0003000000060000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000000000
+0210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007600d2fde300d2fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000
+00040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002d00000005020000c800000033020000020000004004c021100bc021250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000580000004900000020020000520000002c0200000100000000400d4200040dc27b000000cefdffff020000004c000000000000000000000000000000ffffffffffffffff50000000
+2b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000008b00000054000000a00000005a000000200200009d0000002c0200000100000000400d4200040dc28c000000cefdffff0e0000004c000000000000000000000000000000ffffffffffff
+ffff68000000690063006f006e0049006400200020003a0049004e0054003300320003000000050000000600000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000008b0000005400000058000000490000002d02000052000000390200000100000000400d4200040dc27b000000c1fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000300
+0000180000000c0000008b00000054000000b40000005a0000002d020000ad000000390200000100000000400d4200040dc28c000000c1fdffff110000004c000000000000000000000000000000ffffffffffffffff70000000690063006f006e0053006500740049006400200020003a0049004e0054003300320000000300000005000000060000000600000007000000060000000300000003000000060000000300000003
+0000000300000003000000070000000700000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d40015fe590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000
+000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000a200000094010000fb000000d901000005000000200a4019200a901db00f901db00f4019200a4019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d46
+2b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d40015fe590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000
+0000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008b0000007d01000012010000f001000004000000200a901db00f901db00f4019200a4019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a
+000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000051430000f4c30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d10018fe59004500250000000c0000000800008027000000180000000400000000000000fcf2e300
+00000000250000000c00000004000000250000000c0000000800008056000000300000009f00000091010000cd000000d6010000050000009f0091019f00d601cd00d601cd0091019f009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000
+00cd00000091010000ce000000d601000005000000cd009101cd00d601ce00d601ce009101cd009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000ce00000091010000cf000000d601000005000000ce009101ce00d601cf00d601cf00
+9101ce009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000cf00000091010000d0000000d601000005000000cf009101cf00d601d000d601d0009101cf009101250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000d000000091010000d1000000d601000005000000d0009101d000d601d100d601d1009101d0009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde000000000025000000
+0c00000004000000250000000c000000080000805600000030000000d100000091010000d2000000d601000005000000d1009101d100d601d200d601d2009101d1009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d2000000910100
+00d4000000d601000005000000d2009101d200d601d400d601d4009101d2009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d400000091010000d5000000d601000005000000d4009101d400d601d500d601d5009101d40091012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000d500000091010000d6000000d601000005000000d5009101d500d601d600d601d6009101d5009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d600000091010000d8000000d601000005000000d6009101d600d601d800d601d8009101d6009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000
+250000000c000000080000805600000030000000d800000091010000d9000000d601000005000000d8009101d800d601d900d601d9009101d8009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000d900000091010000da000000d60100
+0005000000d9009101d900d601da00d601da009101d9009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000da00000091010000db000000d601000005000000da009101da00d601db00d601db009101da009101250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000db00000091010000dc000000d601000005000000db009101db00d601dc00d601dc009101db009101250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000dc00000091010000dd000000d601000005000000dc009101dc00d601dd00d601dd009101dc009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000
+080000805600000030000000dd00000091010000de000000d601000005000000dd009101dd00d601de00d601de009101dd009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000de00000091010000df000000d601000005000000de0091
+01de00d601df00d601df009101de009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000df00000091010000e0000000d601000005000000df009101df00d601e000d601e0009101df009101250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e000000091010000e1000000d601000005000000e0009101e000d601e100d601e1009101e0009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2
+e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000e100000091010000e2000000d601000005000000e1009101e100d601e200d601e2009101e1009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000
+30000000e200000091010000e3000000d601000005000000e2009101e200d601e300d601e3009101e2009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000e300000091010000e4000000d601000005000000e3009101e300d601e400d6
+01e4009101e3009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000e400000091010000e5000000d601000005000000e4009101e400d601e500d601e5009101e4009101250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e500000091010000e6000000d601000005000000e5009101e500d601e600d601e6009101e5009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd000000000025
+0000000c00000004000000250000000c000000080000805600000030000000e600000091010000e7000000d601000005000000e6009101e600d601e700d601e7009101e6009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e7000000
+91010000e8000000d601000005000000e7009101e700d601e800d601e8009101e7009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000e800000091010000e9000000d601000005000000e8009101e800d601e900d601e9009101e80091
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e900000091010000eb000000d601000005000000e9009101e900d601eb00d601eb009101e9009101250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000eb00000091010000ec000000d601000005000000eb009101eb00d601ec00d601ec009101eb009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004
+000000250000000c000000080000805600000030000000ec00000091010000ed000000d601000005000000ec009101ec00d601ed00d601ed009101ec009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000ed00000091010000ee000000
+d601000005000000ed009101ed00d601ee00d601ee009101ed009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000ee00000091010000ef000000d601000005000000ee009101ee00d601ef00d601ef009101ee009101250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000ef00000091010000f1000000d601000005000000ef009101ef00d601f100d601f1009101ef009101250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f100000091010000f2000000d601000005000000f1009101f100d601f200d601f2009101f1009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c
+000000080000805600000030000000f200000091010000f4000000d601000005000000f2009101f200d601f400d601f4009101f2009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000f400000091010000f5000000d601000005000000
+f4009101f400d601f500d601f5009101f4009101250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000f500000091010000f6000000d601000005000000f5009101f500d601f600d601f6009101f5009101250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000f600000091010000f7000000d601000005000000f6009101f600d601f700d601f7009101f6009101250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000f700000091010000f8000000d601000005000000f7009101f700d601f800d601f8009101f7009101250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086
+000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d10018fe590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025000000
+0c00000004000000250000000c00000005000080560000002c000000880000007a0100000f010000ed01000004000000f009601d800f601d800f1019f0091019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff1200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000000000054000000a0000000aa0000009a010000ed000000a50100000100000000400d4200040dc2dc00000054feffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e0044006500660069006e006900740069006f006e000300000006000000060000000600000007
+0000000600000003000000030000000600000003000000030000000300000006000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000
+d10042fe2a0142fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000088000000950100000f010000c301000002000000f009c01a800fc01a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000046000000f0000000e400
+0000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a0000000040000069018dff62018dff5e018dff57018cff53018cff4c018cff48018bff41018bff3d018bff36018aff32018aff2b0189ff270189ff200189ff1c0188ff150188ff110188ff0a0187ff060187ffff0086fffb0086fff4
+0086fff00085ffe90085ffe50085ffe20084ff000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000
+250000000c000000050000805a000000bc000000ae0000005f000000390100006c0000000d0000001a000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000007013100600131006c01210065012200610122006a011200660113006f0103006b01030064010400600104006900f5006500f5006e00e5006a00e6006300e6006f00d6006800d70
+06400d7006d00c8006900c8006200c8006e00b9006700b9006300b9006000ba006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000069018dff5a0187ff69018dff5a0191ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c000000050000805a00000038000000260100005b0000003901000069000000020000000400000002000000020000007013100680127006701310068012d005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000f0000000e4000000454d462b
+0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a000000004000006c011eff650121ff610122ff5a0126ff560127ff4f012bff4b012cff44012fff400131ff390134ff350136ff2e0139ff2a013bff23013eff1f0140ff180143ff140145ff0d0148ff09014aff02014dfffe004ffff70052fff30054
+ffec0057ffe80059ffe2005cff000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00
+0000050000805a000000bc000000ae000000900000003c010000d20000000d0000001a00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000a013000d3013d00cf012c00c8012800c4012700cd011300c9011200c2011f00be010d00b7010a00b3010800bc00f500b800f300b100f000bd00ee00a600eb00a200e900ab00d600a700d400a00
+0d100ac00cf009500cc009100ca009a00b7009600b5009000b2009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db
+00000000000000ff084001032c000000200000000210c0db04000000004000006c011eff5c0120ff6c011eff600129ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c0000
+0004000000250000000c000000050000805a0000003800000028010000c30000003c010000d200000002000000040000000200000002000000a013000da012e00ca013000de012500c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b084000023c00
+0000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000fe00e3fec40039ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000
+00000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000090000000b3000000ce0000000d01000002000000c00cb0102009500b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000
+3400000028000000454d462b0c4000c02400000018000000000000ff04000000ce0034ffc40039ffc5002effcf0028ff280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000920000
+00b50000009d000000c600000004000000c009a00b2009500b3009000cd009600c250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff0d400060200000001400000004000000ce0034ffc40039ffc5002effcf0028ff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c
+00000090000000b30000009f000000c800000004000000c009a00b2009500b3009000cd009600c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffff
+ff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000c007337600000000c007337680013376e019971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276513621925600c000b4bd
+0000d94021821900b00175322f760100d9405700a600b4bd00008ce3c577b389172670374b0b9401300b08000000f4c6ba26000000001098bf2348004b0b5c014b0b388f1a24f0374b0b8ce3c5774051e102b3bd00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b0c4ba265c014b0bd9402182e6360a4e68c7ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2
+e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c000000000000005400000064000000cf000000fa000000e1000000060100000100000000400d4200040dc201010000f4feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e003100060000000300000003000000060000000a0000001000000032000000eeffffff0c00000010000000
+0000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000ceffffffeeffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b5869
+ec26f8200c03ac90a6014f03651ac2aa02000100d940ac90a601513621928ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f765600c000b5bd000018000000d9402182904300008051e1025700a600b5bd0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b388f1a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8c
+e3c577f2e0c57746e0c577000000000cc6ba260000000008000000000000003c5ce102000000000000000000000000ece56d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c000000000000005400000064000000a6000000d2000000b8000000de0000000100000000400d4200040dc2d80000001cffffff040000004c0000000000000000000000
+00000000ffffffffffffffff54000000730069007a006500040000000300000005000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff08400103240000
+00180000000210c0db02000000004000007e00e7fe8a0039ff00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000
+000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000004a000000b30000005a0000000901000002000000c00470108005500b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c
+4000c02400000018000000000000ff040000008d002eff8a0039ff840030ff870025ff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c00000052000000b50000005b000000c900000004000000b005000c8005500b2005e00b5005900c250000000c0000000700008013000000
+0c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000602000000014000000040000008d002eff8a0039ff840030ff870025ff240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000050000000b30000005d000000cb00000004000000b005000c8005500b2005e00b5005900c250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000c007337600000000c007337680013376e019971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276513621925e001001c9bd0000d94021821900b00175322f760100d9405f00ce01c9bd00008ce3c577b389172670374b0b9401300b08000000fcd1ba
+26000000001098bf2348004b0b5c014b0b78981a24f0374b0b8ce3c5774051e102c8bd00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b8cfba265c014b0bd9402182e6360a4e70d2ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000006400
+00004f000000f60000005f000000020100000100000000400d4200040dc281000000f8feffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a0000001000000032000000eeffffff0c000000100000000000000000000000280000000c00000004000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000002000000190000000c000000ffffff00
+520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300b5869ec26f8200c03ac90a6014f03651ad3aa02000100d940ac90a601513621928ce3c5772f8a172646e0c5779401300b000030
+0b6c51e10266302f765e001001cabd000018000000d9402182c05400008051e1025f00ce01cabd0000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0b78981a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000014d1ba260000000008000000000000003c5ce102000000000000000000000000ece5
+6d01000000000000000000000000e8756a01000000002452e1026476000800000000250000000c00000004000000180000000c0000000000000054000000a80000002f000000e300000075000000ef0000000100000000400d4200040dc2610000000bffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e00440065007300630072006900700074006f0072007300410003
+00000005000000060000000600000007000000060000000400000005000000030000000300000006000000030000000600000003000000040000000a0000001000000032000000eeffffff0c000000100000000000000000000000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100000000000000
+0210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004401e8fd1b0117fe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+00380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000e7000000d501000014010000080200000200000020116020900e701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400
+0000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000250113fe1b0117fe1e010cfe280108fe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000e9000000d7010000f6000000e601000004000000300fb01d900e701dc00e201e60
+0f601e250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000
+250113fe1b0117fe1e010cfe280108fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e7000000d5010000f8000000e801000004000000300fb01d900e70
+1dc00e201e600f601e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000ceffffffeeffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff0000000000000000000000000000000000000001000005004100520049
+0041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000c007337600000000c007337680013376e019971c8ce3c5772f8a172646e0c5779401300b0000300bc70f32765136219266005401debd0000d94021821900b00175322f760100d9406700d000debd00008ce3c577
+b389172670374b0b9401300b08000000e4b0ba26000000001098bf2348004b0b5c014b0b88901a24f0374b0b8ce3c5774051e102ddbd00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000fcafba265c014b0bd9402182e6360a4e58b1ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c000000040000
+00180000000c00000000000000540000007c000000ed000000eb01000017010000f70100000100000000400d4200040dc21f01000003feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000690063006f006e00440061007400610003000000050000000600000006000000070000000600000003000000060000000a0000001000000032000000eeffffff0c00000010000000000000000000
+0000280000000c00000004000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c600edfde40017fe00010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c
+000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000092000000d5010000b40000000302000002000000
+40091020200b701d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000e2000cfee40017feda0012fed80007fe24000000240000000000803d00000000000000000000803d0000000000000000020000
+00250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000a6000000d7010000b2000000e701000004000000000b201e200b701d800ac01d600a701e250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d
+462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000e2000cfee40017feda0012fed80007fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000
+00000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a4000000d5010000b4000000e901000004000000000b201e200b701d800ac01d600a701e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000
+ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00ceffffffeeffffff120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c00000000000000000000000000000000000000c00733760000
+0000c007337680013376e019971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276513621926e005a01f2bd0000d94021821900b00175322f760100d9406f00e400f2bd00008ce3c577b389172670374b0b9401300b080000000ce8ba26000000001098bf2348004b0b5c014b0b28911a24f0374b0b8ce3c5774051e102f1bd00003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000024
+e7ba265c014b0bd9402182e6360a4e80e8ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000007c0000008d000000ed010000b3000000f90100000100000000400d4200040dc2bf00000001feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000
+690063006f006e0049006e0066006f0003000000050000000600000006000000030000000600000003000000060000000a0000001000000032000000eeffffff0c000000100000000000000000000000280000000c00000004000000280000000c00000003000000280000000c000000020000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c0000
+00640000000000000000000000d70100005b0200000000000000000000d80100005c0200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 18\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9F1C4BAD_A91F_41ee_A862_A3463CED00C5}{\*\bkmkend BKM_9F1C4BAD_A91F_41ee_A862_A3463CED00C5}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ColorType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7230F14A_ABDA_4fd8_BCD8_3BDF408B8AF5}{\*\bkmkend BKM_7230F14A_ABDA_4fd8_BCD8_3BDF408B8AF5}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4698A29C_5DE4_41e4_B353_995A1077035F}{\*\bkmkend BKM_4698A29C_5DE4_41e4_B353_995A1077035F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLACK_AND_WHITE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A17B6674_76C3_4fd1_97AF_4FD661883D36}{\*\bkmkend BKM_A17B6674_76C3_4fd1_97AF_4FD661883D36}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GRAY_4}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_71AF6850_59F0_4ca5_8FA2_28ECE586DB07}{\*\bkmkend BKM_71AF6850_59F0_4ca5_8FA2_28ECE586DB07}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GRAY_8}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_60A8D802_CA11_426d_ADD4_FF122377C676}{\*\bkmkend BKM_60A8D802_CA11_426d_ADD4_FF122377C676}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RGB555}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_437ED52A_9234_464a_81F6_1DE4F833F642}{\*\bkmkend BKM_437ED52A_9234_464a_81F6_1DE4F833F642}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RGB565}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_41E6DB3C_F2BF_4a6d_8142_5E5963C5BA36}{\*\bkmkend BKM_41E6DB3C_F2BF_4a6d_8142_5E5963C5BA36}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RGB888}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2EBC676E_5259_4555_897D_6E76F2B6706C}{\*\bkmkend BKM_2EBC676E_5259_4555_897D_6E76F2B6706C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconData}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_AE077CD7_3B49_49cc_83EA_289E10096876}{\*\bkmkend BKM_AE077CD7_3B49_49cc_83EA_289E10096876}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b data}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BYTE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [1..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_E559AB82_3B01_4100_874E_14AEABD075C9}{\*\bkmkend BKM_E559AB82_3B01_4100_874E_14AEABD075C9}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconDefinition}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A34F9421_AE9C_4f1a_9F2B_03CBC840ED91}{\*\bkmkend BKM_A34F9421_AE9C_4f1a_9F2B_03CBC840ED91}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconDescriptor}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_959F7741_FFAD_47cd_940A_97B877262D0D}{\*\bkmkend BKM_959F7741_FFAD_47cd_940A_97B877262D0D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b iconId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F03C5FA6_49E0_4d19_A067_4289B38F826B}{\*\bkmkend BKM_F03C5FA6_49E0_4d19_A067_4289B38F826B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+url}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional, an empty string indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_100FFB76_0A7F_405e_9432_FBAF37CCA369}{\*\bkmkend BKM_100FFB76_0A7F_405e_9432_FBAF37CCA369}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconDimension}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_06B7CA15_B46C_4a4e_B8A8_FB3D426361DF}{\*\bkmkend BKM_06B7CA15_B46C_4a4e_B8A8_FB3D426361DF}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_619907CC_C6B1_41ba_AF05_7EED84F123E3}{\*\bkmkend BKM_619907CC_C6B1_41ba_AF05_7EED84F123E3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+D_2D}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D8B3F365_B5E3_4838_B973_8B20CB59DCD7}{\*\bkmkend BKM_D8B3F365_B5E3_4838_B973_8B20CB59DCD7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+D_2_5D}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_700C1FC1_F87A_484e_979A_1ED21CF00909}{\*\bkmkend BKM_700C1FC1_F87A_484e_979A_1ED21CF00909}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_9D95C908_4DC0_4013_B663_49B95EA22999}{\*\bkmkend BKM_9D95C908_4DC0_4013_B663_49B95EA22999}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b iconId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2192B833_4237_4b9c_8690_A6213669AC73}{\*\bkmkend BKM_2192B833_4237_4b9c_8690_A6213669AC73}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+iconSetId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F3AAFDAD_E4DB_4e8d_ACFD_3C1E77B4D608}{\*\bkmkend BKM_F3AAFDAD_E4DB_4e8d_ACFD_3C1E77B4D608}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconSet}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_37662224_CF0E_486c_A5E9_E5CF2C57E8C1}{\*\bkmkend BKM_37662224_CF0E_486c_A5E9_E5CF2C57E8C1}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b colorType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt ColorType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5D24537E_5571_41c0_80E4_1B0205139647}{\*\bkmkend BKM_5D24537E_5571_41c0_80E4_1B0205139647}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+dayTimeIcon}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BOOLEAN}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CCF40ACE_9BD1_4159_9907_5D52E1C6A6F7}{\*\bkmkend BKM_CCF40ACE_9BD1_4159_9907_5D52E1C6A6F7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+dimension}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconDimension}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4DC17C23_E01F_420f_A29A_610A44669FEA}{\*\bkmkend BKM_4DC17C23_E01F_420f_A29A_610A44669FEA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+iconSetId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_31396B21_F875_41b1_B0BB_57D4E98C02D3}{\*\bkmkend BKM_31396B21_F875_41b1_B0BB_57D4E98C02D3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+mediumType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20 As this is an image, the medium type is of course also 'image'.\ql\par
+The following subtypes are allowed:\par
+jpeg\par
+png\par
+gif\lang3081\hich\f3\dbch\f3\loch\f3\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_25975774_5D09_49b8_A1D7_01CBA279DDF2}{\*\bkmkend BKM_25975774_5D09_49b8_A1D7_01CBA279DDF2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+themeId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9ECF745D_8455_4208_A4FD_8DD544B10801}{\*\bkmkend BKM_9ECF745D_8455_4208_A4FD_8DD544B10801}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+IconSize}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_9B4756A7_BA06_4ba2_B712_EADF375079C3}{\*\bkmkend BKM_9B4756A7_BA06_4ba2_B712_EADF375079C3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b dpi}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FEB83A0C_28DC_424b_B25F_DDE59B0795A7}{\*\bkmkend BKM_FEB83A0C_28DC_424b_B25F_DDE59B0795A7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+height}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E42B56BE_C429_467d_850A_7B8DDFA0424D}{\*\bkmkend BKM_E42B56BE_C429_467d_850A_7B8DDFA0424D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+width}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart location}{\*\bkmkend location}{\*\bkmkstart BKM_D20234E9_05EB_4dec_B2EB_2693CADA3746}{\*\bkmkend BKM_D20234E9_05EB_4dec_B2EB_2693CADA3746}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 location}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_764D5E70_81A8_4f68_AF74_78D0A9F3982F}{\*\bkmkend BKM_764D5E70_81A8_4f68_AF74_78D0A9F3982F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 Location}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw28250\pich27497\picwgoal16020\pichgoal15585\picscalex58\picscaley58\sspicalign0 010000006c000000f8ffffffffffffff2a0300001603000000000000000000005a6e00006a6b000020454d460000010018320200ae180000060000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100f5fc1f03f5fc1f03ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff210300000d03000005000000100010001000b030f031b030f031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000003400000001000000010000005d0000001400000006000000
+1000400100054001d0056000d00510001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff5000ecff5d00faff5d00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff5f00000016000000060000001000400100054001d0056000d00510001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76a8ff5f23086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b9da30007c859e1020000ffff41c40000dc59e102188d17
+01de390a70a8ff5f230100320141c4000037bb4000de390a7070374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b98931a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1940c400008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c00000000000000540000005400000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000048000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000a000000006000000040000004e0000000f0000000100000000400d4200040dc206000000fcffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000063006c0061007300730020004c006f0063006100740069006f006e0006000000030000000600000006000000060000000300000006000000060000000600000006000000030000000300000006000000060000001b000000
+100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000010410000b0c10a4000c01c00000010000000c0bfc0ff01000000b70088ff59004500280000000c0000
+00010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000c00000001d000000190100006200000005000000000cd001000c2006901120069011d001000c
+d001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000b70088ff590045003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000a900000006000000300100007900000004000000000c2006901120069011d001000cd00125000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000034430000eac20000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000000000000000
+3f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000b4008bff59004500250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c000000080000805600000030000000bd0000001a000000eb0000005f00000005000000bd001a00bd005f00eb005f00eb001a00bd001a00250000000c000000080000802500
+00000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e20000000000250000000c00000002000000250000000c000000080000805600000030000000eb0000001a000000ec0000005f00000005000000eb001a00eb005f00ec005f00ec001a00eb001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000ec0000001a000000ed0000005f00000005000000ec001a00ec005f00ed005f00ed001a00ec001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0e00000000000250000000c00000002000000250000000c00000008000080
+5600000030000000ed0000001a000000ee0000005f00000005000000ed001a00ed005f00ee005f00ee001a00ed001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000ee0000001a000000ef0000005f00000005000000ee001a00ee005f
+00ef005f00ef001a00ee001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faefde0000000000250000000c00000002000000250000000c000000080000805600000030000000ef0000001a000000f00000005f00000005000000ef001a00ef005f00f0005f00f0001a00ef001a00250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000f00000001a000000f20000005f00000005000000f0001a00f0005f00f2005f00f2001a00f0001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000
+000000250000000c00000002000000250000000c000000080000805600000030000000f20000001a000000f30000005f00000005000000f2001a00f2005f00f3005f00f3001a00f2001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c000000080000805600000030000000
+f30000001a000000f40000005f00000005000000f3001a00f3005f00f4005f00f4001a00f3001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000f40000001a000000f60000005f00000005000000f4001a00f4005f00f6005f00f6001a
+00f4001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ead90000000000250000000c00000002000000250000000c000000080000805600000030000000f60000001a000000f70000005f00000005000000f6001a00f6005f00f7005f00f7001a00f6001a00250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c000000080000805600000030000000f70000001a000000f80000005f00000005000000f7001a00f7005f00f8005f00f8001a00f7001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c
+00000002000000250000000c000000080000805600000030000000f80000001a000000f90000005f00000005000000f8001a00f8005f00f9005f00f9001a00f8001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000f90000001a000000
+fa0000005f00000005000000f9001a00f9005f00fa005f00fa001a00f9001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c000000080000805600000030000000fa0000001a000000fb0000005f00000005000000fa001a00fa005f00fb005f00fb001a00fa001a00250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c000000080000805600000030000000fb0000001a000000fc0000005f00000005000000fb001a00fb005f00fc005f00fc001a00fb001a00250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c000000080000805600000030000000fc0000001a000000fd0000005f00000005000000fc001a00fc005f00fd005f00fd001a00fc001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c0000000200000025
+0000000c000000080000805600000030000000fd0000001a000000fe0000005f00000005000000fd001a00fd005f00fe005f00fe001a00fd001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c000000080000805600000030000000fe0000001a000000ff0000005f000000
+05000000fe001a00fe005f00ff005f00ff001a00fe001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d20000000000250000000c00000002000000250000000c000000080000805600000030000000ff0000001a000000000100005f00000005000000ff001a00ff005f0000015f0000011a00ff001a00250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000805600000030000000000100001a000000010100005f0000000500000000011a0000015f0001015f0001011a0000011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200
+000000000000f2e4d00000000000250000000c00000002000000250000000c000000080000805600000030000000010100001a000000020100005f0000000500000001011a0001015f0002015f0002011a0001011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c00000002000000250000000c00000008
+0000805600000030000000020100001a000000030100005f0000000500000002011a0002015f0003015f0003011a0002011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c000000080000805600000030000000030100001a000000040100005f0000000500000003011a00
+03015f0004015f0004011a0003011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c000000080000805600000030000000040100001a000000050100005f0000000500000004011a0004015f0005015f0005011a0004011a00250000000c00000008000080250000000c0000
+0000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c000000080000805600000030000000050100001a000000060100005f0000000500000005011a0005015f0006015f0006011a0005011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1
+cb0000000000250000000c00000002000000250000000c000000080000805600000030000000060100001a000000070100005f0000000500000006011a0006015f0007015f0007011a0006011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c000000080000805600000030
+000000070100001a000000090100005f0000000500000007011a0007015f0009015f0009011a0007011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c000000080000805600000030000000090100001a0000000a0100005f0000000500000009011a0009015f000a015f00
+0a011a0009011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec80000000000250000000c00000002000000250000000c0000000800008056000000300000000a0100001a0000000b0100005f000000050000000a011a000a015f000b015f000b011a000a011a00250000000c00000008000080250000000c00000000000080280000
+000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c0000000800008056000000300000000b0100001a0000000c0100005f000000050000000b011a000b015f000c015f000c011a000b011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc600000000002500
+00000c00000002000000250000000c0000000800008056000000300000000c0100001a0000000d0100005f000000050000000c011a000c015f000d015f000d011a000c011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c0000000800008056000000300000000d0100001a
+0000000f0100005f000000050000000d011a000d015f000f015f000f011a000d011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000000f0100001a000000100100005f000000050000000f011a000f015f0010015f0010011a000f011a00
+250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000100100001a000000120100005f0000000500000010011a0010015f0012015f0012011a0010011a00250000000c00000008000080250000000c00000000000080280000000c000000020000
+0027000000180000000200000000000000ead9c20000000000250000000c00000002000000250000000c000000080000805600000030000000120100001a000000130100005f0000000500000012011a0012015f0013015f0013011a0012011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c0000000200
+0000250000000c000000080000805600000030000000130100001a000000140100005f0000000500000013011a0013015f0014015f0014011a0013011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030000000140100001a000000150100005f
+0000000500000014011a0014015f0015015f0015011a0014011a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8bf0000000000250000000c00000002000000250000000c000000080000805600000030000000150100001a000000160100005f0000000500000015011a0015015f0016015f0016011a0015011a00250000000c000000
+08000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b4008bff590045003a0000000c0000000a00000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000a6000000030000002d0100007600000004000000d00bf0056011f0056011a001d00ba001250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901bb3f0a669c58530bb296190100000000580060238ce3c577738c172646e0c5779401300b0000300b188d1701bb3f0a66df0040009df6c7ffc457e10237bb4000bb3f0a6658006023e0003e009df6c7ff8882dd193c5ce10270374b0b000000000800000000000000000000
+0018c8612348004b0b5c014b0b58006023f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a2460fe5f230100000050006023dc57e10223e0c577580060233a6c2e760865450150006023f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e00000018000000be00
+0000caffffff04010000bdffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000d000000020000000030100002c0000000100000000400d4200040dc2c7000000caffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006
+000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000
+000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e765800602308654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bfba370061c58e1020000ffff42c400003058
+e102188d1701bb3f0a67580060230100320142c4000037bb4000bb3f0a6770374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b98931a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1941c400008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c
+030200d058e1026476000800000000250000000c00000003000000180000000c00000000000000540000007c000000d50000002d000000ff000000380000000100000000400d4200040dc2cc000000bdffffff080000004c000000000000000000000000000000ffffffffffffffff5c0000004c006f0063006100740069006f006e0006000000060000000600000006000000030000000300000006000000060000000a000000
+10000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000b400abff0d01abff00010101154001001000000004000000000000002100000008000000620000000c0000
+0001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400
+0000a6000000280000002d0100005600000002000000d00bf0036011f003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000090010ff59004500240000002400000000
+00803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000950000006b000000da00000005000000200150092001a00db006a00db006500920015009250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060000000
+54000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000090010ff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101
+001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff7e00000082000000f1000000040000002001a00db006a00db006500920015009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a00
+00000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c04000006dc30000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000060013ff59004500250000000c0000000800008027000000180000000400000000
+000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f000000920000003d000000d7000000050000000f0092000f00d7003d00d7003d0092000f009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c00000008000080
+56000000300000003d000000920000003e000000d7000000050000003d0092003d00d7003e00d7003e0092003d009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000003e000000920000003f000000d7000000050000003e0092003e00d7
+003f00d7003f0092003e009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000003f0000009200000040000000d7000000050000003f0092003f00d7004000d700400092003f009200250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000400000009200000041000000d700000005000000400092004000d7004100d7004100920040009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000
+000000250000000c00000004000000250000000c000000080000805600000030000000410000009200000042000000d700000005000000410092004100d7004200d7004200920041009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000
+420000009200000044000000d700000005000000420092004200d7004400d7004400920042009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000440000009200000045000000d700000005000000440092004400d7004500d700450092
+0044009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000450000009200000046000000d700000005000000450092004500d7004600d7004600920045009200250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000460000009200000048000000d700000005000000460092004600d7004800d7004800920046009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c
+00000004000000250000000c000000080000805600000030000000480000009200000049000000d700000005000000480092004800d7004900d7004900920048009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000004900000092000000
+4a000000d700000005000000490092004900d7004a00d7004a00920049009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000004a000000920000004b000000d7000000050000004a0092004a00d7004b00d7004b0092004a009200250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000004b000000920000004c000000d7000000050000004b0092004b00d7004c00d7004c0092004b009200250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000004c000000920000004d000000d7000000050000004c0092004c00d7004d00d7004d0092004c009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c0000000400000025
+0000000c0000000800008056000000300000004d000000920000004e000000d7000000050000004d0092004d00d7004e00d7004e0092004d009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000004e000000920000004f000000d7000000
+050000004e0092004e00d7004f00d7004f0092004e009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000004f0000009200000050000000d7000000050000004f0092004f00d7005000d700500092004f009200250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000500000009200000051000000d700000005000000500092005000d7005100d7005100920050009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000510000009200000052000000d700000005000000510092005100d7005200d7005200920051009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008
+0000805600000030000000520000009200000053000000d700000005000000520092005200d7005300d7005300920052009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000530000009200000054000000d70000000500000053009200
+5300d7005400d7005400920053009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000540000009200000055000000d700000005000000540092005400d7005500d7005500920054009200250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000550000009200000056000000d700000005000000550092005500d7005600d7005600920055009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2
+cd0000000000250000000c00000004000000250000000c000000080000805600000030000000560000009200000057000000d700000005000000560092005600d7005700d7005700920056009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030
+000000570000009200000058000000d700000005000000570092005700d7005800d7005800920057009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000580000009200000059000000d700000005000000580092005800d7005900d700
+5900920058009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000059000000920000005b000000d700000005000000590092005900d7005b00d7005b00920059009200250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000005b000000920000005c000000d7000000050000005b0092005b00d7005c00d7005c0092005b009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec800000000002500
+00000c00000004000000250000000c0000000800008056000000300000005c000000920000005d000000d7000000050000005c0092005c00d7005d00d7005d0092005c009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000005d00000092
+0000005e000000d7000000050000005d0092005d00d7005e00d7005e0092005d009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000005e000000920000005f000000d7000000050000005e0092005e00d7005f00d7005f0092005e009200
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000005f0000009200000061000000d7000000050000005f0092005f00d7006100d700610092005f009200250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000610000009200000062000000d700000005000000610092006100d7006200d7006200920061009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c0000000400
+0000250000000c000000080000805600000030000000620000009200000064000000d700000005000000620092006200d7006400d7006400920062009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000640000009200000065000000d7
+00000005000000640092006400d7006500d7006500920064009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000650000009200000066000000d700000005000000650092006500d7006600d7006600920065009200250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000660000009200000067000000d700000005000000660092006600d7006700d7006700920066009200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000670000009200000068000000d700000005000000670092006700d7006800d7006800920067009200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000060013ff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000
+000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffff7b0000007f000000ee00000004000000f000700d8006700d80062009f0002009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000090000
+00eaffffff120000000c00000001000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000010000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e765800602308654501cc57e1021458e102245736019c58
+530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bfba370061c58e102e00028009ff6c7ff3058e102188d1701bb3f0a6758006023e1002a009ff6c7ff37bb4000bb3f0a6770374b0ba8d56b0008000000a05ae1020000000018c8612348004b0b5c014b0bb8ff5f23f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a48d6a01ac
+58e102f0f31a01ac90a60160fe5f2301000000b0ff5f23c458e10223e0c577b8ff5f233a6c2e76a48d6a01b0ff5f23d858e102ad148b756476000800000000250000000c00000004000000180000000c00000000000000540000007c0000003c0000009500000065000000a10000000100000000400d4200040dc23300000055ffffff080000004c000000000000000000000000000000ffffffffffffffff5c0000004c006f00
+63006100740069006f006e0006000000060000000500000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001000000042ffffff5600000035ffffff160000000c000000010000001200
+00000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000022000000a800000055000000b40000000100000000400d4200040dc21900000042ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300000006000000050000000300000006
+0000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c0000001a000000b50000005d000000c00000
+000100000000400d4200040dc21100000035ffffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000050006f0069006e0074004c006f0063006100740069006f006e000000070000000600000003000000060000000300000006000000060000000600000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c0000001000000000000000000000004600
+00007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000060023ff5f0023ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000
+0000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000f8ffffffb00000007f000000de00000002000000f000700c8006700c
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000009500f5fe9900640024000000240000000000803d00000000000000000000803d000000000000000002000000250000
+000c00000001000000250000000c0000000800008056000000300000009e0000009100000037010000f500000005000000e0091009e009500f7013500f70131009e0091009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000009500f5fe990064003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c
+00000005000000250000000c00000005000080560000002c000000870000007a0000004e0100000c01000004000000e009500f7013500f70131009e0091009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201
+580000004c0000000210c0db04000000040000000000000000001243000084c3000019430000c842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000009200f8fe99006400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000
+000800008056000000300000009b0000008e000000eb000000f2000000050000009b008e009b00f200eb00f200eb008e009b008e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000eb0000008e000000ef000000f200000005000000eb00
+8e00eb00f200ef00f200ef008e00eb008e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000ef0000008e000000f3000000f200000005000000ef008e00ef00f200f300f200f3008e00ef008e00250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000f30000008e000000f8000000f200000005000000f3008e00f300f200f800f200f8008e00f3008e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000f80000008e000000fc000000f200000005000000f8008e00f800f200fc00f200fc008e00f8008e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c00000008000080560000
+0030000000fc0000008e00000000010000f200000005000000fc008e00fc00f2000001f20000018e00fc008e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000000100008e00000004010000f20000000500000000018e000001f2000401
+f20004018e0000018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000040100008e00000008010000f20000000500000004018e000401f2000801f20008018e0004018e00250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000080100008e0000000d010000f20000000500000008018e000801f2000d01f2000d018e0008018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000
+250000000c00000005000000250000000c0000000800008056000000300000000d0100008e00000011010000f2000000050000000d018e000d01f2001101f20011018e000d018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c000000080000805600000030000000110100
+008e00000014010000f20000000500000011018e001101f2001401f20014018e0011018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c000000080000805600000030000000140100008e00000017010000f20000000500000014018e001401f2001701f20017018e001401
+8e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000170100008e0000001b010000f20000000500000017018e001701f2001b01f2001b018e0017018e00250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800008056000000300000001b0100008e0000001f010000f2000000050000001b018e001b01f2001f01f2001f018e001b018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c000000
+05000000250000000c0000000800008056000000300000001f0100008e00000023010000f2000000050000001f018e001f01f2002301f20023018e001f018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000230100008e000000270100
+00f20000000500000023018e002301f2002701f20027018e0023018e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000270100008e0000002c010000f20000000500000027018e002701f2002c01f2002c018e0027018e00250000000c00
+000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c0000000800008056000000300000002c0100008e00000030010000f2000000050000002c018e002c01f2003001f20030018e002c018e00250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000300100008e00000034010000f20000000500000030018e003001f2003401f20034018e0030018e00250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c000000
+0210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009200f8fe990064003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000000000000000000000000000
+0000000000250000000c00000005000000250000000c00000005000080560000002c00000084000000770000004b0100000901000004000000b009200f4013200f4013e008b009e008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffff
+ffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009
+000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000007c0000000801000091000000310100009d0000000100000000400d4200040dc2ff00000059ffffff080000004c000000000000000000000000000000ffffffffffffffff5c0000004c006f0063006100740069006f006e000600000006000000050000000600000003000000
+0300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009c00000046ffffff2201000039ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00
+0000000000005400000090000000ce000000a400000001010000b00000000100000000400d4200040dc2c500000046ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b00000010000000000000000000000016
+0000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a0000000c3000000b10000000c010000bc0000000100000000400d4200040dc2ba00000039ffffff0e0000004c000000000000
+000000000000000000ffffffffffffffff680000004c0069006e006500610072004c006f0063006100740069006f006e0006000000030000000600000006000000060000000400000006000000060000000600000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000920027ff2b0127ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000084000000ac0000004b010000da00000002000000b009300c4013300c250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a0000000c7000000a9000000d30000000100000000400d4200040dc29700000023ffffff0200
+00004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000b1000000c700000022010000d30000000100000000400d4200040dc2a8000000
+23ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006e0065006700610074006900760065004f0066006600730065007400200020003a00550049004e0054003300320000000600000006000000060000000600000003000000030000000500000006000000080000000300000003000000040000000600000003000000030000000300000003000000070000000300000007000000070000
+0006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a0000000d4000000a9000000e00000000100000000400d4200040dc29700000016ffffff020000004c000000000000000000000000000000ffffffffffffffff50
+0000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000b1000000d40000001d010000e00000000100000000400d4200040dc2a800000016ffffff170000004c000000000000000000000000000000ffffff
+ffffffffff7c00000070006f007300690074006900760065004f0066006600730065007400200020003a00550049004e00540033003200000006000000060000000400000003000000030000000300000005000000060000000800000003000000030000000400000006000000030000000300000003000000030000000700000003000000070000000700000006000000060000000a00000010000000f7ffffffeaffffff0c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a0000000e1000000a9000000ed0000000100000000400d4200040dc29700000009ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffff
+eaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000b1000000e100000023010000ed0000000100000000400d4200040dc2a800000009ffffff180000004c000000000000000000000000000000ffffffffffffffff7c0000007300650067006d0065006e00740073002000
+20003a00550049004e0054003600340020005b0031002e002e002a005d000400000006000000060000000900000006000000060000000300000004000000030000000300000003000000070000000300000007000000070000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020
+000000454d462b0a4000c01c00000010000000c0bfc0ff010000005f010aff590045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000680100009b000000c1010000e0000000
+050000008016b0098016000e101c000e101cb0098016b009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000
+00010000005f010aff590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000005101000084000000d8010000f70000000400
+00008016000e101c000e101cb0098016b009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000ae43000073c30000b24200008a42bed7e8ffe3
+f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000005c010dff59004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000650100009800000093010000dd00000005000000650198006501dd009301dd00
+9301980065019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e20000000000250000000c00000005000000250000000c000000080000805600000030000000930100009800000094010000dd00000005000000930198009301dd009401dd009401980093019800250000000c00000008000080250000000c00000000000080280000
+000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000940100009800000095010000dd00000005000000940198009401dd009501dd009501980094019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0e000000000002500
+00000c00000005000000250000000c000000080000805600000030000000950100009800000096010000dd00000005000000950198009501dd009601dd009601980095019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000009601000098
+00000097010000dd00000005000000960198009601dd009701dd009701980096019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c000000080000805600000030000000970100009800000098010000dd00000005000000970198009701dd009801dd009801980097019800
+250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000098010000980000009a010000dd00000005000000980198009801dd009a01dd009a01980098019800250000000c00000008000080250000000c00000000000080280000000c000000050000
+0027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c0000000800008056000000300000009a010000980000009b010000dd000000050000009a0198009a01dd009b01dd009b0198009a019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c0000000500
+0000250000000c0000000800008056000000300000009b010000980000009c010000dd000000050000009b0198009b01dd009c01dd009c0198009b019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000009c010000980000009e010000dd
+000000050000009c0198009c01dd009e01dd009e0198009c019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c0000000800008056000000300000009e010000980000009f010000dd000000050000009e0198009e01dd009f01dd009f0198009e019800250000000c000000
+08000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000009f01000098000000a0010000dd000000050000009f0198009f01dd00a001dd00a00198009f019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000
+000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000a001000098000000a1010000dd00000005000000a0019800a001dd00a101dd00a1019800a0019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c00
+0000080000805600000030000000a101000098000000a2010000dd00000005000000a1019800a101dd00a201dd00a2019800a1019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000a201000098000000a3010000dd00000005000000a2
+019800a201dd00a301dd00a3019800a2019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000a301000098000000a4010000dd00000005000000a3019800a301dd00a401dd00a4019800a3019800250000000c0000000800008025000000
+0c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000a401000098000000a5010000dd00000005000000a4019800a401dd00a501dd00a5019800a4019800250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000000000
+00f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030000000a501000098000000a6010000dd00000005000000a5019800a501dd00a601dd00a6019800a5019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600
+000030000000a601000098000000a7010000dd00000005000000a6019800a601dd00a701dd00a7019800a6019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000a701000098000000a8010000dd00000005000000a7019800a701dd00a8
+01dd00a8019800a7019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000a801000098000000a9010000dd00000005000000a8019800a801dd00a901dd00a9019800a8019800250000000c00000008000080250000000c00000000000080
+280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000a901000098000000aa010000dd00000005000000a9019800a901dd00aa01dd00aa019800a9019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf00000000
+00250000000c00000005000000250000000c000000080000805600000030000000aa01000098000000ab010000dd00000005000000aa019800aa01dd00ab01dd00ab019800aa019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000ab01
+000098000000ac010000dd00000005000000ab019800ab01dd00ac01dd00ac019800ab019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000ac01000098000000ad010000dd00000005000000ac019800ac01dd00ad01dd00ad019800ac
+019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000ad01000098000000ae010000dd00000005000000ad019800ad01dd00ae01dd00ae019800ad019800250000000c00000008000080250000000c00000000000080280000000c000000
+0500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c000000080000805600000030000000ae01000098000000af010000dd00000005000000ae019800ae01dd00af01dd00af019800ae019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c0000
+0005000000250000000c000000080000805600000030000000af01000098000000b1010000dd00000005000000af019800af01dd00b101dd00b1019800af019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000b101000098000000b201
+0000dd00000005000000b1019800b101dd00b201dd00b2019800b1019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c000000080000805600000030000000b201000098000000b3010000dd00000005000000b2019800b201dd00b301dd00b3019800b2019800250000000c
+00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000b301000098000000b4010000dd00000005000000b3019800b301dd00b401dd00b4019800b3019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000
+180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000b401000098000000b5010000dd00000005000000b4019800b401dd00b501dd00b5019800b4019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000
+000c000000080000805600000030000000b501000098000000b7010000dd00000005000000b5019800b501dd00b701dd00b7019800b5019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000b701000098000000b8010000dd0000000500
+0000b7019800b701dd00b801dd00b8019800b7019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000b801000098000000ba010000dd00000005000000b8019800b801dd00ba01dd00ba019800b8019800250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c000000080000805600000030000000ba01000098000000bb010000dd00000005000000ba019800ba01dd00bb01dd00bb019800ba019800250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000bb01000098000000bc010000dd00000005000000bb019800bb01dd00bc01dd00bc019800bb019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000
+805600000030000000bc01000098000000bd010000dd00000005000000bc019800bc01dd00bd01dd00bd019800bc019800250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c000000080000805600000030000000bd01000098000000be010000dd00000005000000bd019800bd01
+dd00be01dd00be019800bd019800250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005c010dff590045003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000004e01000081000000d5010000f4000000040000005016d00de01bd00de01b80095016800925000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000007c000000920100009b000000bb010000a700
+00000100000000400d4200040dc2890100004fffffff080000004c000000000000000000000000000000ffffffffffffffff5c0000004c006f0063006100740069006f006e0006000000060000000500000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c000000000000001e00000018000000660100003cffffffac0100002fffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000078010000ae000000ab010000ba0000000100000000400d4200040dc26f0100003cffffff0b0000004c000000000000000000000000000000ffffffffffffff
+ff64000000ab00730074007200750063007400750072006500bb00ffff06000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c0000000100000019
+0000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009400000071010000bb000000b2010000c60000000100000000400d4200040dc2680100002fffffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000041007200650061004c006f0063006100740069006f006e000700000004000000060000000600000006000000060000000600000006000000
+030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005c011dffb5011dff000101011540010010000000040000
+00000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000000500
+0000250000000c0000000500008057000000240000004e010000b6000000d5010000e4000000020000005016d00ce01bd00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01
+0000000a0189fe9800450024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000130100001c010000ab01000061010000050000003011c01130111016b01a1016b01ac0113011c011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041
+000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000a0189fe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000
+0038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000fc00000005010000c2010000780100000400000030111016b01a1016b01ac0113011c011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000008083430000bac30000184300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000007018cfe98004500250000000c
+0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000010010000190100005f0100005e010000050000001001190110015e015f015e015f01190110011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e1000000000025000000
+0c00000005000000250000000c0000000800008056000000300000005f01000019010000630100005e010000050000005f0119015f015e0163015e01630119015f011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c00000008000080560000003000000063010000190100
+00670100005e010000050000006301190163015e0167015e016701190163011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c00000008000080560000003000000067010000190100006b0100005e010000050000006701190167015e016b015e016b011901670119012500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c0000000800008056000000300000006b010000190100006e0100005e010000050000006b0119016b015e016e015e016e0119016b011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027
+000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000006e01000019010000720100005e010000050000006e0119016e015e0172015e01720119016e011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000
+250000000c0000000800008056000000300000007201000019010000760100005e010000050000007201190172015e0176015e017601190172011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c00000008000080560000003000000076010000190100007a0100005e0100
+00050000007601190176015e017a015e017a01190176011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c0000000800008056000000300000007a010000190100007e0100005e010000050000007a0119017a015e017e015e017e0119017a011901250000000c0000000800
+0080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c0000000800008056000000300000007e01000019010000810100005e010000050000007e0119017e015e0181015e01810119017e011901250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005
+00000000000000f2e5d10000000000250000000c00000005000000250000000c0000000800008056000000300000008101000019010000850100005e010000050000008101190181015e0185015e018501190181011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c000000
+0800008056000000300000008501000019010000880100005e010000050000008501190185015e0188015e018801190185011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c00000008000080560000003000000088010000190100008b0100005e01000005000000880119
+0188015e018b015e018b01190188011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000008b010000190100008f0100005e010000050000008b0119018b015e018f015e018f0119018b011901250000000c00000008000080250000000c00
+000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800008056000000300000008f01000019010000930100005e010000050000008f0119018f015e0193015e01930119018f011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ee
+dfc80000000000250000000c00000005000000250000000c0000000800008056000000300000009301000019010000970100005e010000050000009301190193015e0197015e019701190193011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c0000000800008056000000
+3000000097010000190100009b0100005e010000050000009701190197015e019b015e019b01190197011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c0000000800008056000000300000009b01000019010000a00100005e010000050000009b0119019b015e01a0015e
+01a00119019b011901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000a001000019010000a40100005e01000005000000a0011901a0015e01a4015e01a4011901a0011901250000000c00000008000080250000000c000000000000802800
+00000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000a401000019010000a80100005e01000005000000a4011901a4015e01a8015e01a8011901a4011901250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c0000000700008046000000600000005400000045
+4d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000007018cfe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000
+0000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000f900000002010000bf01000075010000040000000011e015801ae015801a901100119011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000
+000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000011010000cbfeffff96010000befeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000430100001f010000760100002b
+0100000100000000400d4200040dc23a010000cbfeffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000000000000005000000
+0a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000940000003e0100002c0100007a010000370100000100000000400d4200040dc235010000befeffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004c006f006300
+6100740069006f006e0049006e0066006f000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000000000
+0000ff0840010324000000180000000210c0db02000000004000000701acfe9f01acfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000
+00000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000f900000027010000bf01000055010000020000000011e013801ae013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000015010000420100001e0100004e0100000100000000400d4200040dc20c010000a8feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600000003
+0000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000002601000042010000710100004e0100000100000000400d4200040dc21d010000a8feffff0d0000004c000000000000000000000000000000ffffffffffffffff680000006e0061
+006d006500200020003a0053005400520049004e0047000100060000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000000e014ffd680054002100000008000000620000000c00
+000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000017010000470200007f0100009b02000005000000701170247011b029f017b029f017702470117024250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000e014ffd680054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000000100003002000096010000b2020000040000007011b029f017b029f017702470117024250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080854300802bc40000d0420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000
+000002000000010000000b0152fd68005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000014010000440200004901000098020000050000001401440214019802490198024901440214014402250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000fcf2e20000000000250000000c00000005000000250000000c00000008000080560000003000000049010000440200004a010000980200000500000049014402490198024a0198024a01440249014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c0000000500000025000000
+0c0000000800008056000000300000004a010000440200004c01000098020000050000004a0144024a0198024c0198024c0144024a014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0e00000000000250000000c00000005000000250000000c0000000800008056000000300000004c010000440200004d01000098020000050000
+004c0144024c0198024d0198024d0144024c014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000004d010000440200004e01000098020000050000004d0144024d0198024e0198024e0144024d014402250000000c000000080000802500
+00000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c0000000800008056000000300000004e010000440200005001000098020000050000004e0144024e01980250019802500144024e014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000
+000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000050010000440200005101000098020000050000005001440250019802510198025101440250014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eddc0000000000250000000c00000005000000250000000c00000008000080
+560000003000000051010000440200005201000098020000050000005101440251019802520198025201440251014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000520100004402000053010000980200000500000052014402520198
+02530198025301440252014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000053010000440200005401000098020000050000005301440253019802540198025401440253014402250000000c00000008000080250000000c0000000000
+0080280000000c0000000500000027000000180000000500000000000000f7ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000054010000440200005501000098020000050000005401440254019802550198025501440254014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000
+000000250000000c00000005000000250000000c00000008000080560000003000000055010000440200005601000098020000050000005501440255019802560198025601440255014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c000000080000805600000030000000
+56010000440200005701000098020000050000005601440256019802570198025701440256014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000005701000044020000590100009802000005000000570144025701980259019802590144
+0257014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c00000008000080560000003000000059010000440200005a010000980200000500000059014402590198025a0198025a01440259014402250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c0000000800008056000000300000005a010000440200005b01000098020000050000005a0144025a0198025b0198025b0144025a014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c
+00000005000000250000000c0000000800008056000000300000005b010000440200005d01000098020000050000005b0144025b0198025d0198025d0144025b014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c0000000800008056000000300000005d01000044020000
+5e01000098020000050000005d0144025d0198025e0198025e0144025d014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c0000000800008056000000300000005e010000440200005f01000098020000050000005e0144025e0198025f0198025f0144025e014402250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c0000000800008056000000300000005f010000440200006001000098020000050000005f0144025f01980260019802600144025f014402250000000c00000008000080250000000c00000000000080280000000c000000050000002700
+0000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c00000008000080560000003000000060010000440200006101000098020000050000006001440260019802610198026101440260014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c0000000500000025
+0000000c00000008000080560000003000000061010000440200006201000098020000050000006101440261019802620198026201440261014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c00000008000080560000003000000062010000440200006301000098020000
+050000006201440262019802630198026301440262014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c00000008000080560000003000000063010000440200006401000098020000050000006301440263019802640198026401440263014402250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c00000008000080560000003000000064010000440200006501000098020000050000006401440264019802650198026501440264014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000f1e3cf0000000000250000000c00000005000000250000000c00000008000080560000003000000065010000440200006601000098020000050000006501440265019802660198026601440265014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c00000008
+000080560000003000000066010000440200006701000098020000050000006601440266019802670198026701440266014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000670100004402000068010000980200000500000067014402
+67019802680198026801440267014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c00000008000080560000003000000068010000440200006a010000980200000500000068014402680198026a0198026a01440268014402250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c0000000800008056000000300000006a010000440200006b01000098020000050000006a0144026a0198026b0198026b0144026a014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0
+ca0000000000250000000c00000005000000250000000c0000000800008056000000300000006b010000440200006c01000098020000050000006b0144026b0198026c0198026c0144026b014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030
+0000006c010000440200006e01000098020000050000006c0144026c0198026e0198026e0144026c014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c0000000800008056000000300000006e010000440200006f01000098020000050000006e0144026e0198026f019802
+6f0144026e014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c0000000800008056000000300000006f010000440200007001000098020000050000006f0144026f01980270019802700144026f014402250000000c00000008000080250000000c00000000000080280000
+000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000070010000440200007101000098020000050000007001440270019802710198027101440270014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecddc600000000002500
+00000c00000005000000250000000c00000008000080560000003000000071010000440200007201000098020000050000007101440271019802720198027201440271014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c0000000800008056000000300000007201000044
+0200007401000098020000050000007201440272019802740198027401440272014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000074010000440200007501000098020000050000007401440274019802750198027501440274014402
+250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c00000008000080560000003000000075010000440200007701000098020000050000007501440275019802770198027701440275014402250000000c00000008000080250000000c00000000000080280000000c000000050000
+0027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c00000008000080560000003000000077010000440200007801000098020000050000007701440277019802780198027801440277014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c0000000500
+0000250000000c00000008000080560000003000000078010000440200007901000098020000050000007801440278019802790198027901440278014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c00000008000080560000003000000079010000440200007b01000098
+0200000500000079014402790198027b0198027b01440279014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c0000000800008056000000300000007b010000440200007c01000098020000050000007b0144027b0198027c0198027c0144027b014402250000000c000000
+08000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000b0152fd680054003a0000000c0000000a00000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000fd0000002d02000093010000af0200000400000040118029c0178029c017402440114024250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000015010000a0fdffff6a01000093fdffff160000000c00000001000000120000000c000000
+010000001b000000100000000000000000000000160000000c0000000000000054000000900000002f0100004a02000062010000560200000100000000400d4200040dc226010000a0fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000000600000004000000030000000300000006000000050000000300000006000000030000
+0006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000880000002e0100005702000063010000620200000100000000
+400d4200040dc22501000093fdffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000043006f006f007200640069006e00610074006500070000000600000006000000040000000600000003000000060000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c000000
+0210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000b0181fd730181fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000fd0000005202000093010000800200000200000040119026c0179026250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000190100006d02000022010000790200000100000000400d4200040dc2100100007dfdffff
+020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000002a0100006d02000078010000790200000100000000400d4200040dc22101
+00007dfdffff120000004c000000000000000000000000000000ffffffffffffffff7000000061006c00740069007400750064006500200020003a0049006e00740065006700650072000600000003000000030000000300000003000000060000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a00000010000000f7ffffffeaffffff0c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000190100007a02000022010000860200000100000000400d4200040dc21001000070fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffff
+ff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000002a0100007a0200006c010000860200000100000000400d4200040dc22101000070fdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000006c006100740069007400750064006500200020003a
+0066006c006f0061007400030000000600000003000000030000000300000006000000060000000600000003000000030000000300000003000000030000000600000006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000
+00190100008702000022010000930200000100000000400d4200040dc21001000063fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+000000b40000002a0100008702000075010000930200000100000000400d4200040dc22101000063fdffff110000004c000000000000000000000000000000ffffffffffffffff700000006c006f006e00670069007400750064006500200020003a0066006c006f006100740000000300000006000000060000000600000003000000030000000600000006000000060000000300000003000000030000000300000003000000
+0600000006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000270008febb0054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000
+0002000000250000000c00000001000000250000000c000000080000805600000030000000300000008e010000eb000000e2010000050000000003e0180003201eb00e201eb00ee0180003e018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000270008febb0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000
+000000250000000c00000005000000250000000c00000005000080560000002c000000190000007701000002010000f9010000040000000003201eb00e201eb00ee0180003e018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000
+454d462b08400201580000004c0000000210c0db040000000400000000000000000010420080fac300003b430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000024000bfebb005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c000000050000
+00250000000c0000000800008056000000300000002d0000008b0100008f000000df010000050000002d008b012d00df018f00df018f008b012d008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000008f0000008b01000093000000df01
+0000050000008f008b018f00df019300df0193008b018f008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000930000008b01000098000000df0100000500000093008b019300df019800df0198008b0193008b01250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000980000008b0100009d000000df0100000500000098008b019800df019d00df019d008b0198008b01250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000f8eddc0000000000250000000c00000005000000250000000c0000000800008056000000300000009d0000008b010000a1000000df010000050000009d008b019d00df01a100df01a1008b019d008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000
+00080000805600000030000000a10000008b010000a6000000df01000005000000a1008b01a100df01a600df01a6008b01a1008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000a60000008b010000ab000000df01000005000000a600
+8b01a600df01ab00df01ab008b01a6008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000ab0000008b010000b0000000df01000005000000ab008b01ab00df01b000df01b0008b01ab008b01250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000b00000008b010000b5000000df01000005000000b0008b01b000df01b500df01b5008b01b0008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000b50000008b010000bb000000df01000005000000b5008b01b500df01bb00df01bb008b01b5008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c00000008000080560000
+0030000000bb0000008b010000c0000000df01000005000000bb008b01bb00df01c000df01c0008b01bb008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000c00000008b010000c4000000df01000005000000c0008b01c000df01c400
+df01c4008b01c0008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000c40000008b010000c9000000df01000005000000c4008b01c400df01c900df01c9008b01c4008b01250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000c90000008b010000ce000000df01000005000000c9008b01c900df01ce00df01ce008b01c9008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000
+250000000c00000005000000250000000c000000080000805600000030000000ce0000008b010000d3000000df01000005000000ce008b01ce00df01d300df01d3008b01ce008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000d30000
+008b010000d8000000df01000005000000d3008b01d300df01d800df01d8008b01d3008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000d80000008b010000de000000df01000005000000d8008b01d800df01de00df01de008b01d800
+8b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000de0000008b010000e3000000df01000005000000de008b01de00df01e300df01e3008b01de008b01250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000805600000030000000e30000008b010000e7000000df01000005000000e3008b01e300df01e700df01e7008b01e3008b01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c000000
+05000000250000000c000000080000805600000030000000e70000008b010000e8000000df01000005000000e7008b01e700df01e800df01e8008b01e7008b01250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000
+00000000000210c0db00000000000000ff0b400040180000000c0000000100000024000bfebb0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500
+0080560000002c0000001600000074010000ff000000f601000004000000d002f01d800ef01d800eb018d002b018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000
+ffffff00250000000c00000004000000180000000c000000000000005400000094000000ab0000008e010000e50000009a0100000100000000400d4200040dc2a20000005cfeffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004c006f0063006100740069006f006e0049006e0066006f00060000000600000005000000060000000300000003000000060000000600000002000000060000
+0003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002e00000049feffffd60000003cfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+000000540000009000000071000000a1010000a4000000ad0100000100000000400d4200040dc26800000049feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b00000010000000000000000000000016000000
+0c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b400000060000000ae010000b5000000b90100000100000000400d4200040dc2570000003cfeffff110000004c000000000000000000
+000000000000ffffffffffffffff7000000050006f0069006e0074004c006f0063006100740069006f006e0049006e0066006f00000007000000060000000300000006000000030000000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c0000007000000045
+4d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000024002afedf002afe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c000000
+0a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000016000000a9010000ff000000d701000002000000d002001c800e001c250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000032000000c40100003b000000d00100000100000000
+400d4200040dc22900000026feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c01000043000000c4010000e4000000d00100
+000100000000400d4200040dc23a00000026feffff200000004c000000000000000000000000000000ffffffffffffffff8c0000006c006f0063006100740069006f006e005400790070006500200020003a0050006f0069006e0074004c006f0063006100740069006f006e0054007900700065000300000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000300
+0000030000000300000007000000060000000300000006000000030000000600000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002e0050fda60072002100000008000000620000000c
+00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003700000028020000dd0000009a02000005000000700380227003a029d00da029d00d802270038022250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002e0050fda60072003a0000000c0000000a00000024000000240000000000803d0000000000000000000080
+3d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000002000000011020000f4000000b1020000040000007003a029d00da029d00d802270038022250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000002c4200402bc4000026430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010
+00000002000000010000002b0053fda6007200250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000034000000250200008b000000970200000500000034002502340097028b0097028b00250234002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000
+180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000008b000000250200008f00000097020000050000008b0025028b0097028f0097028f0025028b002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000
+000c0000000800008056000000300000008f000000250200009300000097020000050000008f0025028f00970293009702930025028f002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000930000002502000097000000970200000500
+00009300250293009702970097029700250293002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000000097000000250200009b000000970200000500000097002502970097029b0097029b00250297002502250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000009b000000250200009f00000097020000050000009b0025029b0097029f0097029f0025029b002502250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000009f00000025020000a400000097020000050000009f0025029f009702a4009702a40025029f002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000
+805600000030000000a400000025020000a80000009702000005000000a4002502a4009702a8009702a8002502a4002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000a800000025020000ad0000009702000005000000a8002502a800
+9702ad009702ad002502a8002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000ad00000025020000b20000009702000005000000ad002502ad009702b2009702b2002502ad002502250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000b200000025020000b60000009702000005000000b2002502b2009702b6009702b6002502b2002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce00
+00000000250000000c00000005000000250000000c000000080000805600000030000000b600000025020000ba0000009702000005000000b6002502b6009702ba009702ba002502b6002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000
+00ba00000025020000be0000009702000005000000ba002502ba009702be009702be002502ba002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000be00000025020000c30000009702000005000000be002502be009702c3009702c300
+2502be002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000c300000025020000c70000009702000005000000c3002502c3009702c7009702c7002502c3002502250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000c700000025020000cc0000009702000005000000c7002502c7009702cc009702cc002502c7002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc4000000000025000000
+0c00000005000000250000000c000000080000805600000030000000cc00000025020000d10000009702000005000000cc002502cc009702d1009702d1002502cc002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000d1000000250200
+00d50000009702000005000000d1002502d1009702d5009702d5002502d1002502250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000805600000030000000d500000025020000d90000009702000005000000d5002502d5009702d9009702d9002502d50025022500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000d900000025020000da0000009702000005000000d9002502d9009702da009702da002502d9002502250000000c00000008000080250000000c00000000000080280000000c0000000500000025
+0000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002b0053fda60072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000
+3800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000001d0000000e020000f1000000ae0200000400000040037029a00d7029a00d502240035022250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000035000000bffdffffc8000000b2fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+000000540000009c000000630000002b020000ab000000370200000100000000400d4200040dc25a000000bffdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b00000010000000
+0000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000005b00000038020000b4000000430200000100000000400d4200040dc252000000b2fdffff1100
+00004c000000000000000000000000000000ffffffffffffffff7000000050006f0069006e0074004c006f0063006100740069006f006e005400790070006500000007000000060000000300000006000000030000000600000006000000060000000600000003000000030000000600000006000000050000000500000006000000060000000a00000010000000f7ffffffeaffffff0c00000010000000000000000000000046
+0000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002b00a0fdd100a0fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000
+000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000001d00000033020000f100000061020000020000004003a024a00da0
+24250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c7e5f9ff010000002e008cfda0000d00280000000c0000000100000024000000240000000000803d00000000000000000000803d0000
+0000000000000200000027000000180000000100000000000000f9e5c70000000000250000000c00000001000000250000000c0000000800008056000000300000003700000051020000d70000005e02000005000000700310257003e025700de025700d102570031025250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046
+0000002c00000020000000454d462b0a4000c01c00000010000000d5ebfaff010000002f008dfd9e000b00280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000faebd50000000000250000000c00000001000000250000000c0000000800008056000000300000003800000052020000d60000005d02000005000000
+800320258003d025600dd025600d202580032025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003100000098fdffffcc0000008cfd
+ffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000880000003a00000052020000660000005d0200000100000000400d4200040dc23100000098fdffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000041007400740072006900620075007400650073000700000003000000030000000300000003
+00000006000000060000000300000006000000040000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000390000005f0200
+00420000006b0200000100000000400d4200040dc2300000008bfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004a
+0000005f020000b80000006b0200000100000000400d4200040dc2410000008bfdffff110000004c000000000000000000000000000000ffffffffffffffff700000004d004f0054004f0052005700410059005f00450058004900540020003d0020003000000009000000080000000700000008000000070000000900000007000000070000000600000007000000070000000300000007000000030000000600000003000000
+060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000390000006c02000042000000780200000100000000400d4200040dc2300000007efdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00
+200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000004a0000006c020000d4000000780200000100000000400d4200040dc2410000007efdffff150000004c000000000000000000000000000000ffffffffffffffff
+780000004d004f0054004f0052005700410059005f0054005200490041004e0047004c00450020003d002000310000000900000008000000070000000800000007000000090000000700000007000000060000000700000007000000030000000700000007000000080000000600000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaff
+ffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000390000007902000042000000850200000100000000400d4200040dc23000000071fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+09000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000004a00000079020000d6000000850200000100000000400d4200040dc24100000071fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004d004f0054004f0052005700410059005f00430052004f005300530049004e00470020
+003d002000320000000900000008000000070000000800000007000000090000000700000007000000060000000700000007000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b0000005400000058000000390000008602000042000000920200000100000000400d4200040dc23000000064fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000b80000004a00000086020000c3000000920200000100000000400d4200040dc24100000064fdffff120000004c000000000000000000000000000000ffffffffffffffff700000004d004f0054004f0052005700410059005f0045004e0054005200590020003d00200033000900000008000000070000000800000007000000090000000700000007000000060000000700
+000007000000070000000700000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000650262fe98004500280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000
+00000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c0000000800008056000000300000006e02000043010000060300008801000005000000e0263014e02680186030801860303014e0263014250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000650262fe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000000000
+00020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000570200002c0100001d0300009f01000004000000e02680186030801860303014e0263014250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000008018440080cdc30000184300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001
+000000620265fe98004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000006b02000040010000ba02000085010000050000006b0240016b028501ba028501ba0240016b024001250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000ba02000040010000be0200008501000005000000ba024001ba028501be028501be024001ba024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000
+805600000030000000be02000040010000c20200008501000005000000be024001be028501c2028501c2024001be024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000c202000040010000c60200008501000005000000c2024001c202
+8501c6028501c6024001c2024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000c602000040010000c90200008501000005000000c6024001c6028501c9028501c9024001c6024001250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000c902000040010000cd0200008501000005000000c9024001c9028501cd028501cd024001c9024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead800
+00000000250000000c00000005000000250000000c000000080000805600000030000000cd02000040010000d10200008501000005000000cd024001cd028501d1028501d1024001cd024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c0000000800008056000000300000
+00d102000040010000d50200008501000005000000d1024001d1028501d5028501d5024001d1024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000d502000040010000d90200008501000005000000d5024001d5028501d9028501d902
+4001d5024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030000000d902000040010000dc0200008501000005000000d9024001d9028501dc028501dc024001d9024001250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000dc02000040010000e00200008501000005000000dc024001dc028501e0028501e0024001dc024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf000000000025000000
+0c00000005000000250000000c000000080000805600000030000000e002000040010000e30200008501000005000000e0024001e0028501e3028501e3024001e0024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c000000080000805600000030000000e3020000400100
+00e60200008501000005000000e3024001e3028501e6028501e6024001e3024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000e602000040010000ea0200008501000005000000e6024001e6028501ea028501ea024001e60240012500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000ea02000040010000ee0200008501000005000000ea024001ea028501ee028501ee024001ea024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027
+000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000ee02000040010000f20200008501000005000000ee024001ee028501f2028501f2024001ee024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000
+250000000c000000080000805600000030000000f202000040010000f60200008501000005000000f2024001f2028501f6028501f6024001f2024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000f602000040010000fb020000850100
+0005000000f6024001f6028501fb028501fb024001f6024001250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000fb02000040010000ff0200008501000005000000fb024001fb028501ff028501ff024001fb024001250000000c0000000800
+0080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000ff02000040010000030300008501000005000000ff024001ff0285010303850103034001ff024001250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007
+000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000620265fe980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000
+380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000054020000290100001a0300009c01000004000000b02650183030501830300014b0260014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c000000000000005400000094000000c602000043010000000300004f0100000100000000400d4200040dc2bd020000a7feffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004c006f0063
+006100740069006f006e0049006e0066006f000600000006000000050000000600000003000000030000000600000006000000020000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000006c02000094feff
+fff102000087feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000009e02000056010000d1020000620100000100000000400d4200040dc29502000094feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb000000060000000400
+00000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000
+54000000ac0000008e02000063010000e10200006e0100000100000000400d4200040dc28502000087feffff100000004c000000000000000000000000000000ffffffffffffffff6c00000041007200650061004c006f0063006100740069006f006e0049006e0066006f000700000004000000060000000600000006000000060000000600000006000000030000000300000006000000060000000300000006000000030000
+00060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000620275fefa0275fe0001010115400100100000000400000000000000210000000800
+0000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005
+0000805700000024000000540200005e0100001a0300008c01000002000000b026501730305017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000007f01e1fdd3007100
+24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000088010000980100005b02000009020000050000008018801980189020b0259020b025801980188019250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000007f01e1fdd30071003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800
+000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000710100008101000072020000200200000400000080189020b0259020b025801980188019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000be43000007c4000053430000e242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000007c01e4fdd3007100250000000c0000000800008027000000
+180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000008501000095010000f301000006020000050000008501950185010602f3010602f301950185019501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000
+000c000000080000805600000030000000f301000095010000f80100000602000005000000f3019501f3010602f8010602f8019501f3019501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000f801000095010000fe010000060200000500
+0000f8019501f8010602fe010602fe019501f8019501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000fe01000095010000040200000602000005000000fe019501fe0106020402060204029501fe019501250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000004020000950100000b020000060200000500000004029501040206020b0206020b02950104029501250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000f7ebd90000000000250000000c00000005000000250000000c0000000800008056000000300000000b020000950100001002000006020000050000000b0295010b02060210020602100295010b029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000
+80560000003000000010020000950100001502000006020000050000001002950110020602150206021502950110029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000015020000950100001c0200000602000005000000150295011502
+06021c0206021c02950115029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c0000000800008056000000300000001c020000950100002202000006020000050000001c0295011c02060222020602220295011c029501250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c00000008000080560000003000000022020000950100002802000006020000050000002202950122020602280206022802950122029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf00
+00000000250000000c00000005000000250000000c00000008000080560000003000000028020000950100002c020000060200000500000028029501280206022c0206022c02950128029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c0000000800008056000000300000
+002c020000950100003002000006020000050000002c0295012c02060230020602300295012c029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c00000008000080560000003000000030020000950100003502000006020000050000003002950130020602350206023502
+950130029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c00000008000080560000003000000035020000950100003a020000060200000500000035029501350206023a0206023a02950135029501250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c0000000800008056000000300000003a020000950100004002000006020000050000003a0295013a02060240020602400295013a029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc6000000000025000000
+0c00000005000000250000000c00000008000080560000003000000040020000950100004602000006020000050000004002950140020602460206024602950140029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000046020000950100
+004d020000060200000500000046029501460206024d0206024d02950146029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c0000000800008056000000300000004d020000950100005202000006020000050000004d0295014d02060252020602520295014d0295012500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c00000008000080560000003000000052020000950100005702000006020000050000005202950152020602570206025702950152029501250000000c00000008000080250000000c00000000000080280000000c0000000500000027
+000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c00000008000080560000003000000057020000950100005802000006020000050000005702950157020602580206025802950157029501250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b0840000238000000
+2c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000007c01e4fdd30071003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000
+000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000006e0100007e0100006f0200001d0200000400000050186020802560208025501950185019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c00
+0000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+00000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c0000000000000054000000940000001b0200009801000055020000a40100000100000000400d4200040dc21202000052feffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004c006f0063006100740069006f006e0049006e0066006f000600000006000000
+050000000600000003000000030000000600000006000000020000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000860100003ffeffff4602000032feffff160000000c00000001000000120000000c00
+0000010000001b000000100000000000000000000000160000000c000000000000005400000090000000d5010000ab01000008020000b70100000100000000400d4200040dc2cc0100003ffeffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb000000060000000400000003000000030000000600000005000000030000000600000003
+00000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b8000000c1010000b80100001c020000c3010000010000
+0000400d4200040dc2b801000032feffff120000004c000000000000000000000000000000ffffffffffffffff700000004c0069006e006500610072004c006f0063006100740069006f006e0049006e0066006f000600000003000000060000000600000006000000040000000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000f7ff
+ffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000007c0120fe4f0220fe00010101154001001000000004000000000000002100000008000000620000000c0000000100000011
+0000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000006e010000
+b30100006f020000e1010000020000005018a01c8025a01c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000580000008a010000ce01000093010000da0100000100000000400d4200040dc2810100001cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000e40000009b010000ce01000025020000da0100000100000000400d4200040dc2920100001cfeffff190000004c000000000000000000000000000000ffffffffffffffff80000000660072006f006d004c006f0063006100740069006f006e004e0061006d006500200020003a0053005400520049004e0047000000030000000300000006000000090000000600000006000000050000
+000600000003000000030000000600000006000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008a
+010000db01000093010000e70100000100000000400d4200040dc2810100000ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00080100009b010000db01000044020000e70100000100000000400d4200040dc2920100000ffeffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000660072006f006d004c006f0063006100740069006f006e0050006100720065006e0074004e0061006d006500200020003a0053005400520049004e0047000000030000000300000006000000090000000600000006000000050000000600
+000003000000030000000600000006000000070000000600000003000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000580000008a010000e801000093010000f40100000100000000400d4200040dc28101000002feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000d80000009b010000e801000019020000f40100000100000000400d4200040dc29201000002feffff170000004c000000000000000000000000000000ffffffffffffffff7c00000074006f004c006f0063006100740069006f006e004e0061006d006500200020003a0053005400520049004e004700000003000000060000000600000006000000050000000600000003
+000000030000000600000006000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008a010000f50100
+0093010000010200000100000000400d4200040dc281010000f5fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000009b
+010000f501000038020000010200000100000000400d4200040dc292010000f5fdffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000074006f004c006f0063006100740069006f006e0050006100720065006e0074004e0061006d006500200020003a0053005400520049004e004700000003000000060000000600000006000000050000000600000003000000030000000600000006000000
+070000000600000003000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000e70102ff590054002100000008000000620000000c0000
+0001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f00100009400000049020000e800000005000000001f4009001f800e9024800e90244009001f4009250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000e70102ff590054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00
+00000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000d90100007d00000060020000ff00000004000000001f800e9024800e90244009001f4009250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f24300007bc30000b2420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000
+000200000001000000e40105ff59005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000ed010000910000001b020000e500000005000000ed019100ed01e5001b02e5001b029100ed019100250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800
+00000500000000000000fbf1e20000000000250000000c00000005000000250000000c0000000800008056000000300000001b020000910000001c020000e5000000050000001b0291001b02e5001c02e5001c0291001b029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c
+0000000800008056000000300000001c020000910000001d020000e5000000050000001c0291001c02e5001d02e5001d0291001c029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0e00000000000250000000c00000005000000250000000c0000000800008056000000300000001d020000910000001e020000e500000005000000
+1d0291001d02e5001e02e5001e0291001d029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000001e020000910000001f020000e5000000050000001e0291001e02e5001f02e5001f0291001e029100250000000c00000008000080250000
+000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c0000000800008056000000300000001f0200009100000020020000e5000000050000001f0291001f02e5002002e500200291001f029100250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000000000
+0000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000200200009100000022020000e500000005000000200291002002e5002202e5002202910020029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c0000000800008056
+00000030000000220200009100000023020000e500000005000000220291002202e5002302e5002302910022029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000230200009100000024020000e500000005000000230291002302e500
+2402e5002402910023029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000240200009100000026020000e500000005000000240291002402e5002602e5002602910024029100250000000c00000008000080250000000c000000000000
+80280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c000000080000805600000030000000260200009100000027020000e500000005000000260291002602e5002702e5002702910026029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead8000000
+0000250000000c00000005000000250000000c000000080000805600000030000000270200009100000028020000e500000005000000270291002702e5002802e5002802910027029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c00000008000080560000003000000028
+0200009100000029020000e500000005000000280291002802e5002902e5002902910028029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c00000008000080560000003000000029020000910000002a020000e500000005000000290291002902e5002a02e5002a029100
+29029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c0000000800008056000000300000002a020000910000002b020000e5000000050000002a0291002a02e5002b02e5002b0291002a029100250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c0000000800008056000000300000002b020000910000002c020000e5000000050000002b0291002b02e5002c02e5002c0291002b029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00
+000005000000250000000c0000000800008056000000300000002c020000910000002d020000e5000000050000002c0291002c02e5002d02e5002d0291002c029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c0000000800008056000000300000002d020000910000002e
+020000e5000000050000002d0291002d02e5002e02e5002e0291002d029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c0000000800008056000000300000002e020000910000002f020000e5000000050000002e0291002e02e5002f02e5002f0291002e02910025000000
+0c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c0000000800008056000000300000002f0200009100000030020000e5000000050000002f0291002f02e5003002e500300291002f029100250000000c00000008000080250000000c00000000000080280000000c00000005000000270000
+00180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000300200009100000031020000e500000005000000300291003002e5003102e5003102910030029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c000000050000002500
+00000c000000080000805600000030000000310200009100000032020000e500000005000000310291003102e5003202e5003202910031029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000320200009100000033020000e500000005
+000000320291003202e5003302e5003302910032029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000330200009100000034020000e500000005000000330291003302e5003402e5003402910033029100250000000c00000008000080
+250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000340200009100000035020000e500000005000000340291003402e5003502e5003502910034029100250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000
+0000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000350200009100000036020000e500000005000000350291003502e5003602e5003602910035029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c0000000800
+00805600000030000000360200009100000037020000e500000005000000360291003602e5003702e5003702910036029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000370200009100000039020000e5000000050000003702910037
+02e5003902e5003902910037029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c00000008000080560000003000000039020000910000003a020000e500000005000000390291003902e5003a02e5003a02910039029100250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c0000000800008056000000300000003a020000910000003b020000e5000000050000003a0291003a02e5003b02e5003b0291003a029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec7
+0000000000250000000c00000005000000250000000c0000000800008056000000300000003b020000910000003c020000e5000000050000003b0291003b02e5003c02e5003c0291003b029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000
+00003c020000910000003d020000e5000000050000003c0291003c02e5003d02e5003d0291003c029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c0000000800008056000000300000003d020000910000003f020000e5000000050000003d0291003d02e5003f02e5003f
+0291003d029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c0000000800008056000000300000003f0200009100000040020000e5000000050000003f0291003f02e5004002e500400291003f029100250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000400200009100000042020000e500000005000000400291004002e5004202e5004202910040029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000
+000c00000005000000250000000c000000080000805600000030000000420200009100000043020000e500000005000000420291004202e5004302e5004302910042029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000430200009100
+000044020000e500000005000000430291004302e5004402e5004402910043029100250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000805600000030000000440200009100000045020000e500000005000000440291004402e5004502e500450291004402910025
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c000000080000805600000030000000450200009100000046020000e500000005000000450291004502e5004602e5004602910045029100250000000c00000008000080250000000c00000000000080280000000c00000005000000
+250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000e40105ff590054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000
+003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000d60100007a0000005d020000fc00000004000000d01e500e6024500e60241009d01e1009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000
+000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000ee01000053ffffff3402000046ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000
+0000000054000000a0000000f7010000970000003c020000a30000000100000000400d4200040dc2ee01000053ffffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f002e002e002e0006000000060000000600000006000000090000000600000003000000060000000300000003000000060000000300000003000000030000001b0000
+00100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000094000000fa010000a40000003a020000af0000000100000000400d4200040dc2f101000046
+ffffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004c006f0063006100740069006f006e0054007900700065000600000006000000060000000600000003000000030000000600000006000000050000000500000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c000000
+0210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e40134ff3d0234ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000d60100009f0000005d020000cd00000002000000d01e600b6024600b250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000f2010000ba000000f5010000c60000000100000000400d4200040dc2e901000030ffffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000008400000003020000ba00000035020000c60000000100000000400d4200040dc2fa01000030ff
+ffff090000004c000000000000000000000000000000ffffffffffffffff6000000050004f0049004e00540020003d002000310000000700000008000000030000000700000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b0000005400000054000000f2010000c7000000f5010000d30000000100000000400d4200040dc2e901000023ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b000000540000008800000003020000c70000003a020000d30000000100000000400d4200040dc2fa01000023ffffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004c0049004e0045004100520020003d0020003200060000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000f2010000d4000000f5010000e00000000100000000400d4200040dc2e901000016ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f7ffffffeaffffff0c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007c00000003020000d400000031020000e00000000100000000400d4200040dc2fa01000016ffffff080000004c000000000000000000000000000000ffffffffffffffff5c000000410052004500410020003d0020003300070000000700000007
+00000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000560205ffae0054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000000000
+0000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000005f020000910000000d030000e500000005000000f0251009f025500ed030500ed0301009f0251009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b084000
+02380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000560205ffae0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bf
+c000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000480200007a00000024030000fc00000004000000f025500ed030500ed0301009f0251009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a00000046
+0000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c01444000078c300002e430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000530208ffae005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000
+250000000c00000005000000250000000c0000000800008056000000300000005c0200008e000000b7020000e2000000050000005c028e005c02e200b702e200b7028e005c028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000b70200
+008e000000bb020000e200000005000000b7028e00b702e200bb02e200bb028e00b7028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000bb0200008e000000c0020000e200000005000000bb028e00bb02e200c002e200c0028e00bb02
+8e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000c00200008e000000c5020000e200000005000000c0028e00c002e200c502e200c5028e00c0028e00250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000c50200008e000000ca020000e200000005000000c5028e00c502e200ca02e200ca028e00c5028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c000000
+05000000250000000c000000080000805600000030000000ca0200008e000000cf020000e200000005000000ca028e00ca02e200cf02e200cf028e00ca028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000cf0200008e000000d30200
+00e200000005000000cf028e00cf02e200d302e200d3028e00cf028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000d30200008e000000d8020000e200000005000000d3028e00d302e200d802e200d8028e00d3028e00250000000c00
+000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000d80200008e000000dd020000e200000005000000d8028e00d802e200dd02e200dd028e00d8028e00250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000dd0200008e000000e0020000e200000005000000dd028e00dd02e200e002e200e0028e00dd028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c0000000500000025000000
+0c000000080000805600000030000000e00200008e000000e4020000e200000005000000e0028e00e002e200e402e200e4028e00e0028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000e40200008e000000e9020000e2000000050000
+00e4028e00e402e200e902e200e9028e00e4028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000e90200008e000000ed020000e200000005000000e9028e00e902e200ed02e200ed028e00e9028e00250000000c000000080000802500
+00000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000ed0200008e000000f2020000e200000005000000ed028e00ed02e200f202e200f2028e00ed028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000
+000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000f20200008e000000f6020000e200000005000000f2028e00f202e200f602e200f6028e00f2028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080
+5600000030000000f60200008e000000fc020000e200000005000000f6028e00f602e200fc02e200fc028e00f6028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000fc0200008e00000001030000e200000005000000fc028e00fc02e2
+000103e20001038e00fc028e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c000000080000805600000030000000010300008e00000005030000e20000000500000001038e000103e2000503e20005038e0001038e00250000000c00000008000080250000000c0000000000
+0080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000805600000030000000050300008e00000009030000e20000000500000005038e000503e2000903e20009038e0005038e00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000
+000000250000000c00000005000000250000000c000000080000805600000030000000090300008e0000000a030000e20000000500000009038e000903e2000a03e2000a038e0009038e00250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000530208ffae0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000050000
+00250000000c00000005000080560000002c000000450200007700000021030000f900000004000000c025200ea030200ea030e008c025e008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000005d02000056fffffff802000049ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000078000000a002000094000000c7020000a00000000100000000400d4200040dc29702000056ffffff070000004c000000
+000000000000000000000000ffffffffffffffff5c000000ab0075006e0069006f006e00bb000000060000000600000006000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c00
+0000ffffff00250000000c00000003000000180000000c00000000000000540000009c00000090020000a1000000d6020000ac0000000100000000400d4200040dc28702000049ffffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004c006f0063006100740069006f006e0055006e0069006f006e000000060000000600000006000000060000000300000003000000060000000600000007
+000000060000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000530237ff010337ff000101011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000
+0005000000250000000c000000050000805700000024000000450200009c00000021030000ca00000002000000c025300ba030300b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000061020000b70000006a020000c30000000100000000400d4200040dc25802000033ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f000000072020000b7000000f8020000c30000000100000000400d4200040dc26902000033ffffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000061007200650061004c006f0063006100740069006f006e00200020003a0041007200650061004c006f006300610074006900
+6f006e0000000600000003000000060000000600000006000000060000000500000006000000030000000300000006000000060000000300000003000000030000000700000003000000060000000600000006000000060000000500000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000061020000c40000006a020000d00000000100000000400d4200040dc25802000026ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000072020000c400000006030000d00000000100000000400d4200040dc26902000026ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006c0069006e006500610072004c006f0063006100740069006f006e00200020003a004c0069006e006500610072004c006f00630061
+00740069006f006e000000030000000300000006000000060000000600000003000000060000000600000005000000060000000300000003000000060000000600000003000000030000000300000006000000030000000600000006000000060000000300000006000000060000000500000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000090000
+00eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000061020000d10000006a020000dd0000000100000000400d4200040dc25802000019ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+00000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000072020000d1000000fe020000dd0000000100000000400d4200040dc26902000019ffffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000070006f0069006e0074004c006f0063006100740069006f006e00200020003a00
+50006f0069006e0074004c006f0063006100740069006f006e00000006000000060000000300000006000000030000000600000006000000050000000600000003000000030000000600000006000000030000000300000003000000070000000600000003000000060000000300000006000000060000000500000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000
+000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001c0289ffaa0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000
+0000250200001c000000cf02000061000000050000005022c00150221006f02c1006f02cc0015022c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000c0bfc0ff0b400040180000000c000000010000001c0289ffaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000
+0e02000005000000e6020000780000000400000050221006f02c1006f02cc0015022c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000004006
+440000e8c200002a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000019028cffaa004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000022020000190000007b0200005e00
+0000050000002202190022025e007b025e007b02190022021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000007b020000190000007f0200005e000000050000007b0219007b025e007f025e007f0219007b021900250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000007f02000019000000830200005e000000050000007f0219007f025e0083025e00830219007f021900250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000faeedd0000000000250000000c00000005000000250000000c0000000800008056000000300000008302000019000000870200005e000000050000008302190083025e0087025e008702190083021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c0000
+0008000080560000003000000087020000190000008b0200005e000000050000008702190087025e008b025e008b02190087021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000008b02000019000000900200005e000000050000008b02
+19008b025e0090025e00900219008b021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000009002000019000000940200005e000000050000009002190090025e0094025e009402190090021900250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c0000000800008056000000300000009402000019000000990200005e000000050000009402190094025e0099025e009902190094021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f4e7d40000000000250000000c00000005000000250000000c00000008000080560000003000000099020000190000009e0200005e000000050000009902190099025e009e025e009e02190099021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c00000008000080560000
+00300000009e02000019000000a30200005e000000050000009e0219009e025e00a3025e00a30219009e021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000a302000019000000a70200005e00000005000000a3021900a3025e00a702
+5e00a7021900a3021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000a702000019000000ab0200005e00000005000000a7021900a7025e00ab025e00ab021900a7021900250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000f0e1cd0000000000250000000c00000005000000250000000c000000080000805600000030000000ab02000019000000ae0200005e00000005000000ab021900ab025e00ae025e00ae021900ab021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000
+250000000c00000005000000250000000c000000080000805600000030000000ae02000019000000b20200005e00000005000000ae021900ae025e00b2025e00b2021900ae021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000b20200
+0019000000b60200005e00000005000000b2021900b2025e00b6025e00b6021900b2021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000b602000019000000bb0200005e00000005000000b6021900b6025e00bb025e00bb021900b602
+1900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000bb02000019000000c10200005e00000005000000bb021900bb025e00c1025e00c1021900bb021900250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000c102000019000000c50200005e00000005000000c1021900c1025e00c5025e00c5021900c1021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c000000
+05000000250000000c000000080000805600000030000000c502000019000000c90200005e00000005000000c5021900c5025e00c9025e00c9021900c5021900250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000c902000019000000cc0200
+005e00000005000000c9021900c9025e00cc025e00cc021900c9021900250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001902
+8cffaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000000b02000002000000e302000075000000040000002022e005c0
+2ce005c02c900120229001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e80000
+003202000022000000bc0200002d0000000100000000400d4200040dc229020000c8ffffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004c006f0063006100740069006f006e004400690073006300720069006d0069006e00610074006500640055006e0069006f006e0006000000060000000600000006000000030000000300000006000000060000000700000003000000060000000600
+000004000000030000000900000003000000060000000600000003000000060000000600000007000000060000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324
+000000180000000210c0db02000000004000001902b6ffc302b6ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000
+0000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000000b0200001d000000e30200004b0000000200000020224003c02c4003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000
+000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000270200003800000030020000440000000100000000400d4200040dc21e020000b2ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010
+000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000003802000038000000c0020000440000000100000000400d4200040dc22f020000b2ffffff1b0000004c000000000000000000000000000000ffffffffffffffff840000006c006f0063006100740069
+006f006e005400790070006500200020003a004c006f0063006100740069006f006e00540079007000650000000300000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000300000003000000030000000600000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000a00000010000000f7ffffffeaff
+ffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000270200004500000030020000510000000100000000400d4200040dc21e020000a5ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000
+f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000003802000045000000c8020000510000000100000000400d4200040dc22f020000a5ffffff1d0000004c000000000000000000000000000000ffffffffffffffff880000006c006f0063006100740069006f00
+6e0055006e0069006f006e00200020003a004c006f0063006100740069006f006e0055006e0069006f006e00000003000000060000000500000006000000030000000300000006000000060000000700000006000000030000000600000006000000030000000300000003000000060000000600000005000000060000000300000003000000060000000600000007000000060000000300000006000000060000000a00000010
+000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000b301ebfc590054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000
+250000000c000000080000805600000030000000bc010000ab02000015020000ff02000005000000c01bb02ac01bf02f5021f02f5021b02ac01bb02a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000000080
+3f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000b301ebfc590054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000050000002500
+00000c00000005000080560000002c000000a5010000940200002c0200001603000004000000c01bf02f5021f02f5021b02ac01bb02a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c00000002
+10c0db0400000004000000000000000000d843008044c40000b2420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000b001eefc59005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000
+30000000b9010000a8020000e7010000fc02000005000000b901a802b901fc02e701fc02e701a802b901a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e20000000000250000000c00000005000000250000000c000000080000805600000030000000e7010000a8020000e8010000fc02000005000000e701a802e701fc02e801fc
+02e801a802e701a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000e8010000a8020000e9010000fc02000005000000e801a802e801fc02e901fc02e901a802e801a802250000000c00000008000080250000000c000000000000802800
+00000c0000000500000027000000180000000500000000000000fbf0e00000000000250000000c00000005000000250000000c000000080000805600000030000000e9010000a8020000ea010000fc02000005000000e901a802e901fc02ea01fc02ea01a802e901a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df000000000025
+0000000c00000005000000250000000c000000080000805600000030000000ea010000a8020000eb010000fc02000005000000ea01a802ea01fc02eb01fc02eb01a802ea01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c000000080000805600000030000000eb010000
+a8020000ec010000fc02000005000000eb01a802eb01fc02ec01fc02ec01a802eb01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000ec010000a8020000ee010000fc02000005000000ec01a802ec01fc02ee01fc02ee01a802ec01a8
+02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000ee010000a8020000ef010000fc02000005000000ee01a802ee01fc02ef01fc02ef01a802ee01a802250000000c00000008000080250000000c00000000000080280000000c0000000500
+000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000ef010000a8020000f0010000fc02000005000000ef01a802ef01fc02f001fc02f001a802ef01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005
+000000250000000c000000080000805600000030000000f0010000a8020000f2010000fc02000005000000f001a802f001fc02f201fc02f201a802f001a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c000000080000805600000030000000f2010000a8020000f3010000
+fc02000005000000f201a802f201fc02f301fc02f301a802f201a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000f3010000a8020000f4010000fc02000005000000f301a802f301fc02f401fc02f401a802f301a802250000000c0000
+0008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000f4010000a8020000f5010000fc02000005000000f401a802f401fc02f501fc02f501a802f401a802250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800
+00000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000f5010000a8020000f6010000fc02000005000000f501a802f501fc02f601fc02f601a802f501a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c
+000000080000805600000030000000f6010000a8020000f7010000fc02000005000000f601a802f601fc02f701fc02f701a802f601a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000f7010000a8020000f8010000fc02000005000000
+f701a802f701fc02f801fc02f801a802f701a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000f8010000a8020000f9010000fc02000005000000f801a802f801fc02f901fc02f901a802f801a802250000000c00000008000080250000
+000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030000000f9010000a8020000fa010000fc02000005000000f901a802f901fc02fa01fc02fa01a802f901a802250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000000000
+0000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000fa010000a8020000fb010000fc02000005000000fa01a802fa01fc02fb01fc02fb01a802fa01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c0000000800008056
+00000030000000fb010000a8020000fc010000fc02000005000000fb01a802fb01fc02fc01fc02fc01a802fb01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000fc010000a8020000fd010000fc02000005000000fc01a802fc01fc02
+fd01fc02fd01a802fc01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000fd010000a8020000fe010000fc02000005000000fd01a802fd01fc02fe01fc02fe01a802fd01a802250000000c00000008000080250000000c000000000000
+80280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000fe010000a8020000ff010000fc02000005000000fe01a802fe01fc02ff01fc02ff01a802fe01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce000000
+0000250000000c00000005000000250000000c000000080000805600000030000000ff010000a802000000020000fc02000005000000ff01a802ff01fc020002fc020002a802ff01a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c00000008000080560000003000000000
+020000a802000001020000fc020000050000000002a8020002fc020102fc020102a8020002a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c00000008000080560000003000000001020000a802000002020000fc020000050000000102a8020102fc020202fc020202a802
+0102a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c00000008000080560000003000000002020000a802000003020000fc020000050000000202a8020202fc020302fc020302a8020202a802250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c00000008000080560000003000000003020000a802000005020000fc020000050000000302a8020302fc020502fc020502a8020302a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00
+000005000000250000000c00000008000080560000003000000005020000a802000006020000fc020000050000000502a8020502fc020602fc020602a8020502a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c00000008000080560000003000000006020000a802000007
+020000fc020000050000000602a8020602fc020702fc020702a8020602a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c00000008000080560000003000000007020000a802000008020000fc020000050000000702a8020702fc020802fc020802a8020702a80225000000
+0c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000008020000a802000009020000fc020000050000000802a8020802fc020902fc020902a8020802a802250000000c00000008000080250000000c00000000000080280000000c00000005000000270000
+00180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c00000008000080560000003000000009020000a80200000b020000fc020000050000000902a8020902fc020b02fc020b02a8020902a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c000000050000002500
+00000c0000000800008056000000300000000b020000a80200000c020000fc020000050000000b02a8020b02fc020c02fc020c02a8020b02a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c0000000800008056000000300000000c020000a80200000e020000fc02000005
+0000000c02a8020c02fc020e02fc020e02a8020c02a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c0000000800008056000000300000000e020000a80200000f020000fc020000050000000e02a8020e02fc020f02fc020f02a8020e02a802250000000c00000008000080
+250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c0000000800008056000000300000000f020000a802000010020000fc020000050000000f02a8020f02fc021002fc021002a8020f02a802250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000
+0000000000e9d8c00000000000250000000c00000005000000250000000c00000008000080560000003000000010020000a802000011020000fc020000050000001002a8021002fc021102fc021102a8021002a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c0000000800
+0080560000003000000011020000a802000012020000fc020000050000001102a8021102fc021202fc021202a8021102a802250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000000000
+0000ff0b400040180000000c00000001000000b001eefc590054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000a2010000
+91020000290200001303000004000000901bc02f2021c02f2021802a901b802a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c000000000000001e00000018000000ba0100003cfdffff000200002ffdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000a0000000c3010000ae02000008020000ba0200000100000000400d4200040dc2ba0100003cfdffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000ab
+0065006e0075006d00650072006100740069006f002e002e002e0006000000060000000600000006000000090000000600000003000000060000000300000003000000060000000300000003000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000
+000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac000000bd010000bb0200000f020000c60200000100000000400d4200040dc2b40100002ffdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004c006f0063006100740069006f006e0049006e0066006f0054007900700065000600000006000000060000000600
+00000300000003000000060000000600000003000000060000000300000006000000050000000500000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000001800000002
+10c0db0200000000400000b0011dfd09021dfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000a2010000b602000029020000e402000002000000901bd02c2021d02c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a0000
+00220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000be010000d1020000c1010000dd0200000100000000400d4200040dc2b501000019fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f7ffffffeaffffff0c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000084000000cf010000d102000001020000dd0200000100000000400d4200040dc2c601000019fdffff090000004c000000000000000000000000000000ffffffffffffffff6000000050004f0049004e00540020003d00200031000000070000
+0008000000030000000700000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000be010000de020000c1010000ea0200000100000000400d4200040dc2b50100000cfdffff010000004c
+000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000088000000cf010000de02000006020000ea0200000100000000400d4200040dc2c60100000cfdffff0a0000
+004c000000000000000000000000000000ffffffffffffffff600000004c0049004e0045004100520020003d0020003200060000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000054000000be010000eb020000c1010000f70200000100000000400d4200040dc2b5010000fffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b000000540000007c000000cf010000eb020000fd010000f70200000100000000400d4200040dc2c6010000fffcffff080000004c000000000000000000000000000000ffffffffffffffff5c000000410052004500410020003d002000330007000000070000000700000007000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c0000001000000000000000000000004600
+00002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003802ebfcd20054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000041020000ab02000013
+030000ff020000050000001024b02a1024f02f3031f02f3031b02a1024b02a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040
+180000000c000000010000003802ebfcd20054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000002a020000940200002a0300
+0016030000040000001024f02f3031f02f3031b02a1024b02a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000400d44008044c4000052430000
+a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003502eefcd2005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000003e020000a8020000ab020000fc020000050000003e02a8023e
+02fc02ab02fc02ab02a8023e02a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000ab020000a8020000b1020000fc02000005000000ab02a802ab02fc02b102fc02b102a802ab02a802250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000b1020000a8020000b6020000fc02000005000000b102a802b102fc02b602fc02b602a802b102a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd
+0000000000250000000c00000005000000250000000c000000080000805600000030000000b6020000a8020000bb020000fc02000005000000b602a802b602fc02bb02fc02bb02a802b602a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000
+0000bb020000a8020000c0020000fc02000005000000bb02a802bb02fc02c002fc02c002a802bb02a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000c0020000a8020000c6020000fc02000005000000c002a802c002fc02c602fc02c6
+02a802c002a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000c6020000a8020000cb020000fc02000005000000c602a802c602fc02cb02fc02cb02a802c602a802250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000cb020000a8020000d1020000fc02000005000000cb02a802cb02fc02d102fc02d102a802cb02a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000
+000c00000005000000250000000c000000080000805600000030000000d1020000a8020000d7020000fc02000005000000d102a802d102fc02d702fc02d702a802d102a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000d7020000a802
+0000dd020000fc02000005000000d702a802d702fc02dd02fc02dd02a802d702a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000dd020000a8020000e1020000fc02000005000000dd02a802dd02fc02e102fc02e102a802dd02a80225
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000e1020000a8020000e5020000fc02000005000000e102a802e102fc02e502fc02e502a802e102a802250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000e5020000a8020000ea020000fc02000005000000e502a802e502fc02ea02fc02ea02a802e502a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c000000050000
+00250000000c000000080000805600000030000000ea020000a8020000f0020000fc02000005000000ea02a802ea02fc02f002fc02f002a802ea02a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000f0020000a8020000f5020000fc02
+000005000000f002a802f002fc02f502fc02f502a802f002a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000f5020000a8020000fb020000fc02000005000000f502a802f502fc02fb02fc02fb02a802f502a802250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000fb020000a802000002030000fc02000005000000fb02a802fb02fc020203fc020203a802fb02a802250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000ebdac30000000000250000000c00000005000000250000000c00000008000080560000003000000002030000a802000007030000fc020000050000000203a8020203fc020703fc020703a8020203a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c0000
+0008000080560000003000000007030000a80200000d030000fc020000050000000703a8020703fc020d03fc020d03a8020703a802250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c0000000800008056000000300000000d030000a802000010030000fc020000050000000d03
+a8020d03fc021003fc021003a8020d03a802250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003502eefcd20054003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000002702000091020000270300001303000004000000e023c02f0031c02f0031802ae023802a
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003f0200003cfdfffffe02
+00002ffdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000007800000094020000ae020000bb020000ba0200000100000000400d4200040dc28b0200003cfdffff070000004c000000000000000000000000000000ffffffffffffffff5c000000ab0075006e0069006f006e00bb0000000600000006000000060000000300000006
+00000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b40000007b020000bb020000d3020000c6020000010000
+0000400d4200040dc2720200002ffdffff110000004c000000000000000000000000000000ffffffffffffffff700000004c006f0063006100740069006f006e0049006e0066006f0055006e0069006f006e00000006000000060000000600000006000000030000000300000006000000060000000300000006000000030000000600000007000000060000000300000006000000060000000a00000010000000f7ffffffeaff
+ffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000035021dfd07031dfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c
+000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000027020000b6020000
+27030000e402000002000000e023d02c0031d02c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00
+0000540000005800000043020000d10200004c020000dd0200000100000000400d4200040dc23a02000019fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b000000540000002001000054020000d1020000fe020000dd0200000100000000400d4200040dc24b02000019fdffff230000004c000000000000000000000000000000ffffffffffffffff9400000061007200650061004c006f0063006100740069006f006e0049006e0066006f00200020003a0041007200650061004c006f0063006100740069006f006e0049006e0066006f0000000600000003000000060000
+0006000000060000000600000005000000060000000300000003000000060000000600000003000000060000000300000006000000030000000300000003000000070000000300000006000000060000000600000006000000050000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff12
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000043020000de0200004c020000ea0200000100000000400d4200040dc23a0200000cfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000090000
+00eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003801000054020000de0200000c030000ea0200000100000000400d4200040dc24b0200000cfdffff270000004c000000000000000000000000000000ffffffffffffffff9c0000006c0069006e006500610072004c006f0063006100740069006f006e0049006e0066006f002000
+20003a004c0069006e006500610072004c006f0063006100740069006f006e0049006e0066006f0000000300000003000000060000000600000006000000030000000600000006000000050000000600000003000000030000000600000006000000030000000600000003000000060000000300000003000000030000000600000003000000060000000600000006000000030000000600000006000000050000000600000003
+000000030000000600000006000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000043020000eb0200004c020000f70200000100000000400d4200040dc23a020000fffcffff020000004c0000
+00000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c01000054020000eb02000004030000f70200000100000000400d4200040dc24b020000fffcffff25
+0000004c000000000000000000000000000000ffffffffffffffff9800000070006f0069006e0074004c006f0063006100740069006f006e0049006e0066006f00200020003a0050006f0069006e0074004c006f0063006100740069006f006e0049006e0066006f000000060000000600000003000000060000000300000006000000060000000500000006000000030000000300000006000000060000000300000006000000
+030000000600000003000000030000000300000007000000060000000300000006000000030000000600000006000000050000000600000003000000030000000600000006000000030000000600000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000f70167fdce004500210000
+0008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000000200003e020000ce02000083020000050000000020e02300203028e02c3028e02ce0230020e023250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f70167fdce0045003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000e901000027020000e50200009a0200000400000000203028e02c3028e02ce0230020e023250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000fa43008025c400004e4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8
+ff0a4000401c000000100000000200000001000000f4016afdce004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000fd0100003b020000680200008002000005000000fd013b02fd0180026802800268023b02fd013b02250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000680200003b0200006e020000800200000500000068023b02680280026e0280026e023b0268023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c
+00000005000000250000000c0000000800008056000000300000006e0200003b0200007302000080020000050000006e023b026e0280027302800273023b026e023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000730200003b020000
+78020000800200000500000073023b02730280027802800278023b0273023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000780200003b0200007d020000800200000500000078023b02780280027d0280027d023b0278023b02250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000007d0200003b0200008202000080020000050000007d023b027d0280028202800282023b027d023b02250000000c00000008000080250000000c00000000000080280000000c000000050000002700
+0000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000820200003b02000087020000800200000500000082023b02820280028702800287023b0282023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c0000000500000025
+0000000c000000080000805600000030000000870200003b0200008d020000800200000500000087023b02870280028d0280028d023b0287023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c0000000800008056000000300000008d0200003b0200009302000080020000
+050000008d023b028d0280029302800293023b028d023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000930200003b02000099020000800200000500000093023b02930280029902800299023b0293023b02250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000990200003b0200009d020000800200000500000099023b02990280029d0280029d023b0299023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000f1e3cf0000000000250000000c00000005000000250000000c0000000800008056000000300000009d0200003b020000a102000080020000050000009d023b029d028002a1028002a1023b029d023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c00000008
+0000805600000030000000a10200003b020000a60200008002000005000000a1023b02a1028002a6028002a6023b02a1023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c000000080000805600000030000000a60200003b020000ab0200008002000005000000a6023b02
+a6028002ab028002ab023b02a6023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000ab0200003b020000b00200008002000005000000ab023b02ab028002b0028002b0023b02ab023b02250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000b00200003b020000b70200008002000005000000b0023b02b0028002b7028002b7023b02b0023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdc
+c50000000000250000000c00000005000000250000000c000000080000805600000030000000b70200003b020000bd0200008002000005000000b7023b02b7028002bd028002bd023b02b7023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030
+000000bd0200003b020000c30200008002000005000000bd023b02bd028002c3028002c3023b02bd023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000c30200003b020000c80200008002000005000000c3023b02c3028002c8028002
+c8023b02c3023b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000c80200003b020000cb0200008002000005000000c8023b02c8028002cb028002cb023b02c8023b02250000000c00000008000080250000000c00000000000080280000
+000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000f4016afdce0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000e601000024020000e20200009702000004000000d01f0028b02c0028b02cb023d01fb023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000000100001602000044020000b20200004f0200000100000000400d4200040dc20d020000a6fdffff1e0000004c0000000000000000000000000000
+00ffffffffffffffff880000004c006f0063006100740069006f006e0049006e0066006f004400690073006300720069006d0069006e00610074006500640055006e0069006f006e0006000000060000000600000006000000030000000300000006000000060000000300000006000000030000000600000007000000030000000600000006000000040000000300000009000000030000000600000006000000030000000600
+00000600000007000000060000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000f40194fdc20294fd0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000005000000250000000c000000050000805700000024000000e60100003f020000e20200006d02000002000000d01f6025b02c6025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000020200005a0200000b020000660200000100000000400d4200040dc2f901000090fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000130200005a020000bf020000660200000100000000400d4200040dc20a02000090fdffff230000004c000000000000000000000000000000ffffffffffffffff940000006c006f0063006100740069006f006e0049006e0066006f005400790070006500200020003a004c006f0063
+006100740069006f006e0049006e0066006f0054007900700065000000030000000600000005000000060000000300000003000000060000000600000003000000060000000300000006000000070000000500000006000000060000000300000003000000030000000600000006000000050000000600000003000000030000000600000006000000030000000600000003000000060000000700000005000000060000000600
+00000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000002020000670200000b020000730200000100000000400d4200040dc2f901000083fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c0100001302000067020000c7020000730200000100000000400d4200040dc20a02000083fdffff250000004c000000000000000000000000000000ffffffffffffffff9800
+00006c006f0063006100740069006f006e0049006e0066006f0055006e0069006f006e00200020003a004c006f0063006100740069006f006e0049006e0066006f0055006e0069006f006e0000000300000006000000050000000600000003000000030000000600000006000000030000000600000003000000060000000700000006000000030000000600000006000000030000000300000003000000060000000600000005
+00000006000000030000000300000006000000060000000300000006000000030000000600000007000000060000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff
+0840010324000000180000000210c0db0200000000400000600055ffb4008eff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000001001
+00100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000670000005a000000bf000000970000000200000090065009d00bc005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000300000002400
+0000454d462b0c4000c02000000014000000e3f2fcff03000000aa0080ffa3008affb4008eff280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000ac0000005c000000bd0000006a
+00000003000000300ba006c00a0006d00bc005250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff
+0d4000601c0000001000000003000000aa0080ffa3008affb4008eff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805600000028000000aa0000005a000000bf0000006c0000
+0003000000300ba006c00a0006d00bc005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840
+010324000000180000000210c0db0200000000400000df005cffe0008aff000101011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057
+00000024000000e60000005e000000eb0000009000000002000000800ee008900e0006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000e6007affda007affe0008aff24000000240000000000803d
+00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000e300000060000000ef0000007000000003000000f00e0007300e0007900e0006250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000e6007affda007affe0008aff24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800
+00000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805600000028000000e10000005e000000f10000007200000003000000f00e0007300e0007900e0006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005
+000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005c0151ff0e018cff000101011540010010000000040000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000
+5f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000150100005c000000670100009b00000002000000501690097011e005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000001e0187ff17017eff0e018cff24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000170100005e000000270100006c0000000300
+0000701230060012c0067011e005250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c
+00000010000000030000001e0187ff17017eff0e018cff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805600000028000000150100005c000000290100006e00000003000000
+701230060012c0067011e005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff08400103240000
+00180000000210c0db02000000004000004101a6fd50018bfe000101011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400
+0000480100005d0100005b0100004602000002000000a01440249015f015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000540181fe50018bfe4a0181fe4f0177fe280000000c0000000100000024
+000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000530100005f0100005d0100007301000004000000d01590169015f0153015901680153017250000000c00000007000080130000000c0000000100000025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000540181fe50018bfe4a0181fe4f0177fe24000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000510100005d0100005f0100007501000004000000d01590169015f0153015901680153017250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000014073376000000001407337680013376001a971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276383721ff1f00240182c400000a3b21bc1900b00175322f7601000a3b2000560182c400008ce3c577b389172670374b0b9401300b08000000ac63ba26000000001098bf2348004b
+0b5c014b0bb8941a24f0374b0b8ce3c5774051e10281c400003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006861ba265c014b0b0a3b21bcbb3f0a672064ba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c0000000000000054000000640000004d010000330200005f01
+00003f0200000100000000400d4200040dc244010000b7fdffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e003100060000000300000003000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000005000000
+f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d302d8106ace020001000a3bac90a601383721ff8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f761f0024
+0183c40000180000000a3b21bc1c6500008051e1022000560183c40000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0bb8941a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000c462ba260000000008000000000000003c5ce102000000000000000000000000ece56d0100000000000000000000
+0000e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c00000000000000540000009400000032010000c401000073010000d00100000100000000400d4200040dc22901000026feffff0c0000004c000000000000000000000000000000ffffffffffffffff640000006d00610069006e004c006f0063006100740069006f006e00090000000600000003000000060000000600000006
+0000000500000006000000030000000300000006000000060000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000
+004000006a01a6fdaa01e3fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000010010010000000000000000000000000000000000000
+0000000000250000000c00000005000000250000000c0000000500008057000000240000007101000005020000b5010000460200000200000030174024301b7020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003400000028000000454d462b0c4000c024000000180000000000
+00ff04000000a601d8fdaa01e3fd9f01e0fd9c01d5fd24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c000000a501000007020000b30100001502000004000000f01a2021301b7020801aa020501a5021250000000c00000007000080130000000c00000001000000250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d400060200000001400000004000000a601d8fdaa01e3fd9f01e0fd9c01d5fd24000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000a301000005020000b50100001702000004000000f01a2021301b7020801aa020501a5021250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000014073376000000001407337680013376001a971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276383721ff2700360194c400000a3b21bc1900b00175322f7601000a3b2800b60194c400008ce3c577b389172670374b0b9401300b080000009c4dba26000000001098bf2348004b0b
+5c014b0bb8971a24f0374b0b8ce3c5774051e10293c400003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000584bba265c014b0b0a3b21bcbb3f0a67104eba26d451e102b052e102cc53e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000005000000180000000c0000000000000054000000640000007601000033020000860100
+003f0200000100000000400d4200040dc26d010000b7fdffff040000004c000000000000000000000000000000ffffffffffffffff5400000030002e002e002a00060000000300000003000000040000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000280000000c00000005000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000009000000eaffffff120000000c00000002000000190000000c000000ffffff00520000007001000005000000f6
+ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e102000000000000300bb04dec26f8200c03ac90a601d302d8107ace020001000a3bac90a601383721ff8ce3c5772f8a172646e0c5779401300b0000300b6c51e10266302f7627003601
+95c40000180000000a3b21bc4c7600008051e1022800b60195c40000000000000000010070374b0b051d2f760800000000000000000000001098bf2348004b0b5c014b0bb8971a24f0374b0b527f17014051e102000000003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000b44cba260000000008000000000000003c5ce102000000000000000000000000ece56d010000000000000000000000
+00e8756a01000000002452e1026476000800000000250000000c00000005000000180000000c0000000000000054000000900000007501000023020000ab0100002f0200000100000000400d4200040dc26c010000c7fdffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000063006f006f007200640069006e006100740065007300000005000000060000000600000003000000060000000300
+000006000000060000000300000006000000040000000a00000010000000f7ffffffeaffffff0c000000100000000000000000000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ca
+005ffe16018bfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000
+250000000c00000005000000250000000c000000050000805700000024000000d10000005d010000210100008d01000002000000300db018f011f015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000
+000b017efe050188fe16018bfe280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000000e0100005f0100001f0100006c010000030000004011c016e0102016f011f015250000000c00
+000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000000b017efe050188fe16
+018bfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008056000000280000000c0100005d010000210100006e010000030000004011c016e0102016f011f015250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000b4000000a8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010360000000540000000210c0db0e000000004000007f00c5fd7f00ccfd7f00d0
+fd7f00d7fd7f00dbfd7f00e2fd7f00e6fd7f00edfd7f00f1fd7f00f8fd7f00fcfd7f0003fe7f0007fe80000afe000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000002010010000000000000000000000000000000000000000000
+0000250000000c00000005000000250000000c000000050000805a0000007400000086000000de0100008b00000027020000070000000e00000002000000020000000200000002000000020000000200000002000000800850228008e0218008a021800830218008f02080088020800840208008d01f8008901f8008201f8008e01e8008701e8008301e9008001e250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000007f00c5fd7a00d4fd7f00c5fd8400d4fd00010001
+1540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000081000000140200008f000000270200000200000004000000020000
+0002000000800850223008602180085022d0086021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db000000000000
+00ff0840010324000000180000000210c0db0200000000400000620290fea001a6fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005
+0000805700000024000000a7010000420100006d0200005c01000002000000b026a015901a4014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000b101aafeaf019efea001a6fe2400000024000000
+0000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000a901000040010000ba0100004c01000003000000a01b0014801bc014901a4014250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000
+00000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000b101aafeaf019efea001a6fe24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000
+0000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805600000028000000a70100003e010000bc0100004e01000003000000a01b0014801bc014901a4014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000ac0155fe76018bfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000007d0100005d010000b70100009701000002000000501b5019f017f015250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000860184fe7d017bfe76018bfe24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000007f0100005f0100008f0100006f01
+000003000000f01860166018f016f017f015250000000c00000007000080130000000c00000001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d
+4000601c0000001000000003000000860184fe7d017bfe76018bfe24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008056000000280000007d0100005d0100009101000071010000
+03000000f01860166018f016f017f015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000
+000210c0db0a000000004000002f0259ff340260ff370264ff3c026bff3f026fff440276ff47027aff4c0281ff4f0285ff54028bff0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000
+000000000000250000000c00000005000000250000000c000000050000805a0000005c000000360200005d0000005f02000093000000050000000a000000020000000200000002000000020000000200000080231009d023a008002460085024f0078024b007d0244007002500075025900680255006d025f005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000002f0259ff340268ff2f0259ff3c0262ff000100011540010010000000040000000000000024000000
+240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000360200008000000047020000930000000200000004000000020000000200000080231009d023200880231009502480
+08250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a000000004000009502
+5cff920263ff900267ff8d026eff8b0272ff870279ff85027dff820284ff800288ff7e028bff0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005
+000000250000000c000000050000805a0000005c000000850200005d000000a002000090000000050000000a0000000200000002000000020000000200000002000000e029e008b0297008902930086029c0074029800700291007e028d006b0286006902820067028f005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000
+280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000095025cff8a0267ff95025cff93026cff000100011540010010000000040000000000000024000000240000000000803d00000000000000
+000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000910200007c000000a00200009000000002000000040000000200000002000000e029e00830293008e029e008c029e007250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000000a0242fd110248fd15024cfd1c0252fd20
+0256fd27025cfd2b0260fd320267fd00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000005000000011020000
+810200003d020000aa0200000400000008000000020000000200000002000000020000003021802aa021202ae021e02950228029902240290023e0284023a028b0233028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000
+000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000a0242fd120250fd0a0242fd180249fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800
+00000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000110200009802000023020000aa020000020000000400000002000000020000003021802ab021a0293021802a1022102a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000280000000c00000005000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db0800000000400000850242fd820249fd7f024dfd7b0254fd790258fd75025ffd730263fd6f0269fd000100010001000115400100100000000400000000000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000050000000760200007f02000090020000aa020000040000000800000002000000020000000200000002000000e02880
+2ab028102a8028d0294028602920282029e027b028c027702880271028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210
+c0db00000000000000ff084001032c000000200000000210c0db0400000000400000850242fd79024dfd850242fd820252fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c
+00000005000000250000000c000000050000805a00000038000000800200009602000090020000aa02000002000000040000000200000002000000e028802a2028d029e028802ab0288029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000280000000c00000002000000280000000c000000
+030000004c000000640000000000000000000000200300000c0300000000000000000000210300000d0300002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 19\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_B619963A_99F3_4f8d_9093_35666DDF2182}{\*\bkmkend BKM_B619963A_99F3_4f8d_9093_35666DDF2182}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AreaLocation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4A94CF19_5264_408d_B166_F733D3833A04}{\*\bkmkend BKM_4A94CF19_5264_408d_B166_F733D3833A04}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AreaLocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_DD3B5A04_59E3_4dd4_A8AE_A96DAF23D355}{\*\bkmkend BKM_DD3B5A04_59E3_4dd4_A8AE_A96DAF23D355}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Coordinate}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_017C30AE_E134_438f_B6F1_96765AA0CF84}{\*\bkmkend BKM_017C30AE_E134_438f_B6F1_96765AA0CF84}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b altitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DC55D7DE_CFA3_4978_97CA_1D41DAE9F829}{\*\bkmkend BKM_DC55D7DE_CFA3_4978_97CA_1D41DAE9F829}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+latitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt float}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_87F2633E_7BB6_44b7_A41D_4367888C52F0}{\*\bkmkend BKM_87F2633E_7BB6_44b7_A41D_4367888C52F0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+longitude}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt float}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2BFA0F6B_B696_4c10_89FC_5C60F6DE8285}{\*\bkmkend BKM_2BFA0F6B_B696_4c10_89FC_5C60F6DE8285}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinearLocation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_8D5D5CFD_77BB_4ba8_ABD8_5F2ABBA9F459}{\*\bkmkend BKM_8D5D5CFD_77BB_4ba8_ABD8_5F2ABBA9F459}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b negativeOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UINT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FA3DDB1E_3280_4c9d_BF9E_CC32D34DC959}{\*\bkmkend BKM_FA3DDB1E_3280_4c9d_BF9E_CC32D34DC959}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+positiveOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UINT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5F52E08D_5AE1_4fbd_8C89_D77F95CB1192}{\*\bkmkend BKM_5F52E08D_5AE1_4fbd_8C89_D77F95CB1192}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+segments}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt UINT64}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [1..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_715BE5A1_BDF1_4714_9443_1892F2DDE428}{\*\bkmkend BKM_715BE5A1_BDF1_4714_9443_1892F2DDE428}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinearLocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_BDF887E7_D8FF_40ec_9563_E68B444B0FF2}{\*\bkmkend BKM_BDF887E7_D8FF_40ec_9563_E68B444B0FF2}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b fromLocationName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional, an empty string indicates 'not specified'.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_289D3823_E2C5_42c7_8A94_9B7321A467C9}{\*\bkmkend BKM_289D3823_E2C5_42c7_8A94_9B7321A467C9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+fromLocationParentName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional, an empty string indicates 'not specified'.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2809581A_A3B3_4589_A777_9C9D3F568BC8}{\*\bkmkend BKM_2809581A_A3B3_4589_A777_9C9D3F568BC8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+toLocationName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional, an empty string indicates 'not specified'.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_01510F9B_A477_4453_9222_F4D31111FB7C}{\*\bkmkend BKM_01510F9B_A477_4453_9222_F4D31111FB7C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+toLocationParentName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional, an empty string indicates 'not specified'.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_D19D6AFA_D124_45a1_A7CE_9A89312C4099}{\*\bkmkend BKM_D19D6AFA_D124_45a1_A7CE_9A89312C4099}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Location}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_97A2F530_5878_4d70_A3BE_4C042AA8BC39}{\*\bkmkend BKM_97A2F530_5878_4d70_A3BE_4C042AA8BC39}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationDiscriminatedUnion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_77C7D443_94B1_4550_A87C_3D79B440EA22}{\*\bkmkend BKM_77C7D443_94B1_4550_A87C_3D79B440EA22}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b locationType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E17EE2CD_B461_4f8d_96A6_38F9F891964E}{\*\bkmkend BKM_E17EE2CD_B461_4f8d_96A6_38F9F891964E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+locationUnion}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationUnion}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_64E9F78F_9373_4c9d_9262_0C444BD1910C}{\*\bkmkend BKM_64E9F78F_9373_4c9d_9262_0C444BD1910C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_55FBD8B9_AC78_49de_B495_A3C8F35D3E0E}{\*\bkmkend BKM_55FBD8B9_AC78_49de_B495_A3C8F35D3E0E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b name}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C83E5BD6_C161_43c7_8A4D_F3E4DDDE9DAE}{\*\bkmkend BKM_C83E5BD6_C161_43c7_8A4D_F3E4DDDE9DAE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationInfoDiscriminatedUnion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_61C43724_B417_47fc_BE83_EED7E2E82894}{\*\bkmkend BKM_61C43724_B417_47fc_BE83_EED7E2E82894}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b locationInfoType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationInfoType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1E59FCD8_C315_4690_A76F_DAA8993F1047}{\*\bkmkend BKM_1E59FCD8_C315_4690_A76F_DAA8993F1047}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+locationInfoUnion}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationInfoUnion}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C1CC4A30_2FE8_4d38_BB55_508FA6F02E59}{\*\bkmkend BKM_C1CC4A30_2FE8_4d38_BB55_508FA6F02E59}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationInfoType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_DAB7BEF2_80F2_4444_BE52_32A933DB42C0}{\*\bkmkend BKM_DAB7BEF2_80F2_4444_BE52_32A933DB42C0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b POINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E551C4AE_3209_488b_B6F1_0C7AA6BB019D}{\*\bkmkend BKM_E551C4AE_3209_488b_B6F1_0C7AA6BB019D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LINEAR}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BC16F66C_D8F0_4c6e_A6EE_C328A402015A}{\*\bkmkend BKM_BC16F66C_D8F0_4c6e_A6EE_C328A402015A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AREA}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8FBF2AB1_2A32_4662_83EB_C4A5306963E7}{\*\bkmkend BKM_8FBF2AB1_2A32_4662_83EB_C4A5306963E7}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationInfoUnion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_970CF791_B540_4ba7_B6C5_DC148C98D4BC}{\*\bkmkend BKM_970CF791_B540_4ba7_B6C5_DC148C98D4BC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b areaLocationInfo}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt AreaLocationInfo}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EB0900EC_5674_48de_96E2_BC5C41D942ED}{\*\bkmkend BKM_EB0900EC_5674_48de_96E2_BC5C41D942ED}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+linearLocationInfo}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LinearLocationInfo}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CCCFBA62_F069_4db8_B89F_8AC07EE09725}{\*\bkmkend BKM_CCCFBA62_F069_4db8_B89F_8AC07EE09725}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+pointLocationInfo}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt PointLocationInfo}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_CD5ECB69_9021_4648_9A33_B62B7ABBAD02}{\*\bkmkend BKM_CD5ECB69_9021_4648_9A33_B62B7ABBAD02}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_018E46C5_A9E5_4ab6_8347_13CDDA89EEEA}{\*\bkmkend BKM_018E46C5_A9E5_4ab6_8347_13CDDA89EEEA}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b POINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1C045389_15BE_4dec_A198_E462294D60D9}{\*\bkmkend BKM_1C045389_15BE_4dec_A198_E462294D60D9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LINEAR}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B922D55B_619E_4017_BA1C_83042EBE6BA3}{\*\bkmkend BKM_B922D55B_619E_4017_BA1C_83042EBE6BA3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AREA}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F202522E_2BCF_4db1_A4E8_4546A6D18A46}{\*\bkmkend BKM_F202522E_2BCF_4db1_A4E8_4546A6D18A46}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationUnion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_96247C5B_B4A5_482c_BEB1_C80AF316CCEC}{\*\bkmkend BKM_96247C5B_B4A5_482c_BEB1_C80AF316CCEC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b areaLocation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt AreaLocation}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0AB5A060_5370_471e_BB67_DEF4CA8DBEEC}{\*\bkmkend BKM_0AB5A060_5370_471e_BB67_DEF4CA8DBEEC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+linearLocation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LinearLocation}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EC2D9ADD_84C8_4c23_90E5_BA4F4D3DBAD9}{\*\bkmkend BKM_EC2D9ADD_84C8_4c23_90E5_BA4F4D3DBAD9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+pointLocation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt PointLocation}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_E71310F4_C81E_46c1_BD10_6FC313894C4F}{\*\bkmkend BKM_E71310F4_C81E_46c1_BD10_6FC313894C4F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PointLocation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\lang1033\hich\f6\dbch\f6\loch\f6 \lang3081\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F8F21BEA_66D5_4f5e_A49F_796D80C04818}{\*\bkmkend BKM_F8F21BEA_66D5_4f5e_A49F_796D80C04818}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PointLocationInfo}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_D40B77BC_6ABA_44fa_9B82_8C2EF279C4D9}{\*\bkmkend BKM_D40B77BC_6ABA_44fa_9B82_8C2EF279C4D9}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b locationType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt PointLocationType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_D85E88DB_44D0_4073_B96C_C164E5F2203F}{\*\bkmkend BKM_D85E88DB_44D0_4073_B96C_C164E5F2203F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PointLocationType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3BD000A8_311C_4d8d_8ECD_0FB3DE40FBD0}{\*\bkmkend BKM_3BD000A8_311C_4d8d_8ECD_0FB3DE40FBD0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b MOTORWAY_EXIT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B0706140_02AB_4021_B5F5_B10E9AD2676D}{\*\bkmkend BKM_B0706140_02AB_4021_B5F5_B10E9AD2676D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTORWAY_TRIANGLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E1C12321_A5EB_4977_A738_27D94817798A}{\*\bkmkend BKM_E1C12321_A5EB_4977_A738_27D94817798A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTORWAY_CROSSING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_86893FC9_72FD_45ac_AC03_4876426A1D6B}{\*\bkmkend BKM_86893FC9_72FD_45ac_AC03_4876426A1D6B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTORWAY_ENTRY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart status}{\*\bkmkend status}{\*\bkmkstart BKM_A12A5322_BFBE_4dab_88FC_FA5C87B10988}{\*\bkmkend BKM_A12A5322_BFBE_4dab_88FC_FA5C87B10988}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 status}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2C8C4250_DE33_4ca7_9EEC_1F90D3B48B11}{\*\bkmkend BKM_2C8C4250_DE33_4ca7_9EEC_1F90D3B48B11}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentFeedStatus}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_F5CF9F27_0075_4497_8911_E010E301BEB2}{\*\bkmkend BKM_F5CF9F27_0075_4497_8911_E010E301BEB2}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UNAVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0237C3CF_DF2A_486b_92F4_ED71D5E16253}{\*\bkmkend BKM_0237C3CF_DF2A_486b_92F4_ED71D5E16253}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONNECTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C4444811_7BED_4055_8FB7_073FAA57B3E0}{\*\bkmkend BKM_C4444811_7BED_4055_8FB7_073FAA57B3E0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DISCONNECTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1EB962F3_AE3E_4074_8DE2_995A08778852}{\*\bkmkend BKM_1EB962F3_AE3E_4074_8DE2_995A08778852}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentsStatus}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_969AD813_5F00_42c4_9DAC_2AC763797120}{\*\bkmkend BKM_969AD813_5F00_42c4_9DAC_2AC763797120}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UNAVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_663B4C21_D4A0_410c_900E_FCCFB4B48A04}{\*\bkmkend BKM_663B4C21_D4A0_410c_900E_FCCFB4B48A04}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARTLY_AVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EC823476_FA9F_4e66_BE64_9CB2CE302387}{\*\bkmkend BKM_EC823476_FA9F_4e66_BE64_9CB2CE302387}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AVAILABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\tab}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart trafficincidenttables}{\*\bkmkend trafficincidenttables}{\*\bkmkstart BKM_B991156A_1B84_4f59_AE4E_A3D0688DA36E}{\*\bkmkend BKM_B991156A_1B84_4f59_AE4E_A3D0688DA36E}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidenttables}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_7F7F0C0D_DC02_45f7_BECC_FE5A988C8A55}{\*\bkmkend BKM_7F7F0C0D_DC02_45f7_BECC_FE5A988C8A55}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentSubAdviceTables}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw29379\pich16603\picwgoal16650\pichgoal9420\picscalex56\picscaley56\sspicalign0 010000006c000000f8ffffffffffffff4a030000e10100000000000000000000c4720000dc40000020454d46000001009ce70000dc090000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c830500460000002c
+00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff0840010334000000
+280000000210c0db05000000004000000100ffff01002afe3f032afe3f03ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000001000000380000000000000038000000000000000001010001000000000000000000000000000000000000
+0000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff41030000d801000005000000100010001000601df033601df033100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c40
+00c02c00000020000000ffffffff060000000100ecffc100ecffce00faffce00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000ce000000140000000600000010
+004001100c4001e00c6000e00c10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff
+0d400060280000001c000000060000000100ecffc100ecffce00faffce00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffffff
+ffffffffffd0000000160000000600000010004001100c4001e00c6000e00c10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff000000000000000000
+000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7698911a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bb2a35003c859e1028200ea00f0ce0000dc59e102188d1701
+2d3b0a3598911a248300fa01f0ce000037bb40002d3b0a3570374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0bd8991a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19efce00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5ae1
+026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000bd0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006673b7000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+000054000000240100000600000004000000bf0000000f0000000100000000400d4200040dc206000000fcffffff240000004c000000000000000000000000000000ffffffffffffffff9400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e0074005300750062004100640076006900630065005400610062006c00650073000600000003000000060000000600000006
+000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000700000006000000060000000700000006000000070000000300000006000000060000000500000006000000060000000300000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c00000002000000
+0a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000098c1000098c10a4000c01c00000010000000c0bfc0ff01000000290063ff6a016e00280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000
+0024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000160000001c000000800100008a000000050000006001c0016001a0080018a0080018c0016001c001250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000290063ff6a016e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000000002
+0000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000ffffffff0500000097010000a1000000040000006001a0080018a0080018c0016001c001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000184200001ac30000b5430000dc42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000
+00260066ff6a016e00250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000001300000019000000cf00000087000000050000001300190013008700cf008700cf00190013001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000cf00000019000000d80000008700000005000000cf001900cf008700d8008700d8001900cf001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c0000000800008056
+00000030000000d800000019000000e20000008700000005000000d8001900d8008700e2008700e2001900d8001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c000000080000805600000030000000e200000019000000ea0000008700000005000000e2001900e2008700
+ea008700ea001900e2001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000ea00000019000000f30000008700000005000000ea001900ea008700f3008700f3001900ea001900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000f300000019000000fd0000008700000005000000f3001900f3008700fd008700fd001900f3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead8000000
+0000250000000c00000002000000250000000c000000080000805600000030000000fd00000019000000060100008700000005000000fd001900fd0087000601870006011900fd001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c00000008000080560000003000000006
+010000190000000f010000870000000500000006011900060187000f0187000f01190006011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c0000000800008056000000300000000f010000190000001801000087000000050000000f0119000f0187001801870018011900
+0f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c00000008000080560000003000000018010000190000002001000087000000050000001801190018018700200187002001190018011900250000000c00000008000080250000000c00000000000080280000000c0000
+000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c00000008000080560000003000000020010000190000002a010000870000000500000020011900200187002a0187002a01190020011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00
+000002000000250000000c0000000800008056000000300000002a010000190000003101000087000000050000002a0119002a01870031018700310119002a011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c000000080000805600000030000000310100001900000037
+01000087000000050000003101190031018700370187003701190031011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c0000000800008056000000300000003701000019000000400100008700000005000000370119003701870040018700400119003701190025000000
+0c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c00000008000080560000003000000040010000190000004901000087000000050000004001190040018700490187004901190040011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000
+00180000000200000000000000eedfc80000000000250000000c00000002000000250000000c00000008000080560000003000000049010000190000005301000087000000050000004901190049018700530187005301190049011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c000000020000002500
+00000c00000008000080560000003000000053010000190000005e010000870000000500000053011900530187005e0187005e01190053011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000005e01000019000000690100008700000005
+0000005e0119005e01870069018700690119005e011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c00000008000080560000003000000069010000190000007201000087000000050000006901190069018700720187007201190069011900250000000c00000008000080
+250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c00000008000080560000003000000072010000190000007b010000870000000500000072011900720187007b0187007b01190072011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000
+0000000000e8d7be0000000000250000000c00000002000000250000000c0000000800008056000000300000007b010000190000007d01000087000000050000007b0119007b0187007d0187007d0119007b011900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000
+000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000260066ff6a016e003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000002000000250000000c00000005000080560000002c000000fcffffff02000000940100009e0000000400000030017008d0177008d017900130019001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff46000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffff
+ff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901b02f0a889c58530bb29619010000
+000088951a248ce3c577738c172646e0c5779401300b0000300b188d1701b02f0a8877008401f2ce0000c457e10237bb4000b02f0a8888951a2478007001f2ce00008882dd193c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b88951a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000086545010000000088
+14400000cc2a24008a1a240100000080951a24dc57e10223e0c57788951a243a6c2e760865450180951a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000030000000ceffffff87010000c1ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000
+a40000001f000000ec0000002b0000000100000000400d4200040dc2b7000000ceffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb006576060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000
+000c000000000000004b0000001000000000000000050000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000001a013ada21883a6c2e7688951a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bfba290081c58e1027800f200f4ce00003058e102188d1701b02f0a8988951a247900fa01f4ce000037bb4000b02f0a8970374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b
+d8991a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19f3ce00008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000c4000000910000002c00000000010000370000
+000100000000400d4200040dc2a4000000c1ffffff140000004c000000000000000000000000000000ffffffffffffffff740000004f00760065007200740061006b0069006e0067004e006f00740041006c006c006f007700650064000800000007000000060000000400000003000000060000000600000003000000060000000600000007000000060000000300000007000000030000000300000006000000090000000600
+0000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002600afff9001afff00010101154001001000000004000000000000002100000008
+000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000
+050000805700000024000000fcffffff270000009401000055000000020000003001e003d017e003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b000000540000005400000018000000420000001b0000004e0000000100000000400d4200040dc22b000000abffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006e75030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000b400000029000000420000008d0000004e0000000100000000400d4200040dc23c000000abffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030005c6c07000000080000000700000006000000070000000700000007000000070000
+000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000004f0000001b0000005b0000000100000000400d4200040dc22b0000009effffff01
+0000004c000000000000000000000000000000ffffffffffffffff5000000020006c73030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000290000004f000000f30000005b0000000100000000400d4200040dc23c0000009effff
+ff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000044004f005f004e004f0054005f005500530045005f004f00560045005200540041004b0049004e0047005f004c0041004e004500530020003d0020003100766507000000080000000600000007000000080000000700000006000000070000000700000007000000060000000800000007000000070000000700000007000000070000000700
+0000030000000700000008000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000005c0000001b0000006800000001000000
+00400d4200040dc22b00000091ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c27030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000006c010000290000005c00000066010000680000000100
+000000400d4200040dc23c00000091ffffff300000004c000000000000000000000000000000ffffffffffffffffac0000004f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f005700450044005f00440052004900560045005f004f004e005f0043005200410057004c00450052005f004c0041004e00450020003d0020003200080000000700000007000000070000000700000007
+0000000700000003000000070000000800000006000000070000000800000007000000060000000700000006000000060000000800000009000000070000000700000006000000070000000700000003000000070000000700000006000000080000000700000006000000070000000700000007000000090000000600000007000000070000000600000006000000070000000700000007000000030000000600000003000000
+060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000690000001b000000750000000100000000400d4200040dc22b00000084ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000
+7374030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000078010000290000006900000073010000750000000100000000400d4200040dc23c00000084ffffff320000004c000000000000000000000000000000ffffffffffffffffb0000000
+4f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f005700450044005f00440052004900560045005f004f004e005f004c004500460054005f004d004f00530054005f004c0041004e00450020003d002000330008000000070000000700000007000000070000000700000007000000030000000700000008000000060000000700000008000000070000000600000007000000060000
+000600000008000000090000000700000007000000060000000700000007000000030000000700000007000000060000000800000007000000060000000600000007000000060000000700000006000000090000000800000007000000070000000600000006000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffed
+ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000760000001b000000820000000100000000400d4200040dc22b00000077ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006c65030000000a0000001000000013000000edffffff0c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffff
+ffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000080010000290000007600000079010000820000000100000000400d4200040dc23c00000077ffffff330000004c000000000000000000000000000000ffffffffffffffffb40000004f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f00
+5700450044005f00440052004900560045005f004f004e005f00520049004700480054005f004d004f00530054005f004c0041004e00450020003d002000340076650800000007000000070000000700000007000000070000000700000003000000070000000800000006000000070000000800000007000000060000000700000006000000060000000800000009000000070000000700000006000000070000000700000003
+000000070000000700000006000000080000000700000006000000070000000300000008000000070000000700000006000000090000000800000007000000070000000600000006000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff
+01000000250007ffba0145002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000a1000000cc010000e6000000050000002001100a2001600ec01c600ec01c100a200110
+0a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000250007ffba0145003a0000000c0000000a00
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff8a000000e3010000fd000000040000002001600ec01c600ec01c100a2001100a250000000c
+00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000000842000076c30000dd4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f
+0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000022000affba014500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f0000009e000000f5000000e3000000050000000f009e000f00e300f500e300f5009e000f009e00250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000f50000009e00000000010000e300000005000000f5009e00f500e3000001e30000019e00f5009e00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000000100009e0000000c010000e30000000500000000019e000001e3000c01e3000c019e0000019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056
+000000300000000c0100009e00000016010000e3000000050000000c019e000c01e3001601e30016019e000c019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000160100009e00000020010000e30000000500000016019e001601e300
+2001e30020019e0016019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000200100009e0000002c010000e30000000500000020019e002001e3002c01e3002c019e0020019e00250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000002c0100009e00000037010000e3000000050000002c019e002c01e3003701e30037019e002c019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d6000000
+0000250000000c00000004000000250000000c000000080000805600000030000000370100009e00000043010000e30000000500000037019e003701e3004301e30043019e0037019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000043
+0100009e0000004d010000e30000000500000043019e004301e3004d01e3004d019e0043019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000004d0100009e00000058010000e3000000050000004d019e004d01e3005801e30058019e00
+4d019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000580100009e00000063010000e30000000500000058019e005801e3006301e30063019e0058019e00250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000630100009e0000006c010000e30000000500000063019e006301e3006c01e3006c019e0063019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00
+000004000000250000000c0000000800008056000000300000006c0100009e00000074010000e3000000050000006c019e006c01e3007401e30074019e006c019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000740100009e0000007f
+010000e30000000500000074019e007401e3007f01e3007f019e0074019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000007f0100009e0000008a010000e3000000050000007f019e007f01e3008a01e3008a019e007f019e0025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000008a0100009e00000096010000e3000000050000008a019e008a01e3009601e30096019e008a019e00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000960100009e000000a4010000e30000000500000096019e009601e300a401e300a4019e0096019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c000000040000002500
+00000c000000080000805600000030000000a40100009e000000b1010000e300000005000000a4019e00a401e300b101e300b1019e00a4019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000b10100009e000000bc010000e300000005
+000000b1019e00b101e300bc01e300bc019e00b1019e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000bc0100009e000000c7010000e300000005000000bc019e00bc01e300c701e300c7019e00bc019e00250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000c70100009e000000c9010000e300000005000000c7019e00c701e300c901e300c9019e00c7019e00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c000000070000
+80460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000022000affba0145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800
+00000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffff87000000e0010000fa00000004000000f000300e901c300e901ce009f000e009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002c00000049ffffffd30100003cffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000
+00c8000000a400000010010000b00000000100000000400d4200040dc2db00000049ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b0000001000000000000000000000001600
+00000c000000000000004b0000001000000000000000050000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b4000000be000000b10000001a010000bc0000000100000000400d4200040dc2d10000003cffffff110000004c00000000000000
+0000000000000000ffffffffffffffff70000000440072006900760069006e0067004e006f00740041006c006c006f00770065006400000007000000040000000300000007000000030000000600000006000000070000000600000003000000070000000300000003000000060000000900000006000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000007c000000700000
+00454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000022002affdc012aff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c00
+00000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffffac000000e0010000da00000002000000f000300c901c300c250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000c700000017000000d3000000010000
+0000400d4200040dc22700000026ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000025000000c700000089000000d300000001
+00000000400d4200040dc23800000026ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000013000000
+edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000d400000017000000e00000000100000000400d4200040dc22700000019ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000001300
+0000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc01000025000000d4000000c5010000e00000000100000000400d4200040dc23800000019ffffff400000004c000000000000000000000000000000ffffffffffffffffcc000000440052004900560049004e0047005f00
+4e004f0054005f0041004c004c004f005700450044005f00540041004b0045005f004e004500580054005f0050004f0053005300490042004c0045005f0050004c004100430045005f0054004f005f00530054004f0050005f00560045004800490043004c00450020003d002000310007000000070000000300000007000000030000000700000008000000060000000700000008000000070000000600000007000000060000
+0006000000080000000900000007000000070000000600000007000000070000000700000007000000060000000700000007000000070000000700000006000000070000000800000007000000070000000300000007000000060000000700000006000000070000000600000007000000070000000700000006000000070000000800000006000000070000000700000008000000070000000600000007000000070000000700
+000003000000070000000600000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002d008cfef90054002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000000000240000002400000000
+00803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000001a0000000d010000130100006101000005000000a001d010a0011016301110163011d010a001d010250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060000000
+54000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002d008cfef90054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101
+001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000003000000f60000002a0100007801000004000000a0011016301110163011d010a001d010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a00
+00000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000028420080b8c3000079430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002a008ffef9005400250000000c0000000800008027000000180000000400000000
+000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000170000000a010000990000005e0100000500000017000a0117005e0199005e0199000a0117000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080
+5600000030000000990000000a0100009f0000005e0100000500000099000a0199005e019f005e019f000a0199000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009f0000000a010000a60000005e010000050000009f000a019f005e
+01a6005e01a6000a019f000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a60000000a010000ad0000005e01000005000000a6000a01a6005e01ad005e01ad000a01a6000a01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000ad0000000a010000b50000005e01000005000000ad000a01ad005e01b5005e01b5000a01ad000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000
+000000250000000c00000004000000250000000c000000080000805600000030000000b50000000a010000bb0000005e01000005000000b5000a01b5005e01bb005e01bb000a01b5000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000
+bb0000000a010000c10000005e01000005000000bb000a01bb005e01c1005e01c1000a01bb000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000c10000000a010000c90000005e01000005000000c1000a01c1005e01c9005e01c9000a
+01c1000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000c90000000a010000d00000005e01000005000000c9000a01c9005e01d0005e01d0000a01c9000a01250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000d00000000a010000d70000005e01000005000000d0000a01d0005e01d7005e01d7000a01d0000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c
+00000004000000250000000c000000080000805600000030000000d70000000a010000dc0000005e01000005000000d7000a01d7005e01dc005e01dc000a01d7000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000dc0000000a010000
+e00000005e01000005000000dc000a01dc005e01e0005e01e0000a01dc000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e00000000a010000e70000005e01000005000000e0000a01e0005e01e7005e01e7000a01e0000a01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e70000000a010000ed0000005e01000005000000e7000a01e7005e01ed005e01ed000a01e7000a01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000ed0000000a010000f30000005e01000005000000ed000a01ed005e01f3005e01f3000a01ed000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c0000000400000025
+0000000c000000080000805600000030000000f30000000a010000fb0000005e01000005000000f3000a01f3005e01fb005e01fb000a01f3000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fb0000000a010000030100005e010000
+05000000fb000a01fb005e0103015e0103010a01fb000a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000030100000a010000090100005e0100000500000003010a0103015e0109015e0109010a0103010a01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000090100000a0100000f0100005e0100000500000009010a0109015e010f015e010f010a0109010a01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000f0100000a010000100100005e010000050000000f010a010f015e0110015e0110010a010f010a01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002a008ffef90054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c00000005000080560000002c00000000000000f30000002701000075010000040000007001e0150011e0150011a0107001a010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedff
+ffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000034000000ddfeffff1a010000d0feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007000000010010000b80000001c0100000100000000400d4200040dc283000000dd
+feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000
+13000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000f4000000450000001d010000e2000000280100000100000000400d4200040dc258000000d0feffff1c0000004c000000000000000000000000000000ffffffffffffffff8400000047006900760069006e0067005000
+610074006800560065006800690063006c0065007300460072006f006d0042006500680069006e006400080000000300000007000000030000000600000006000000070000000600000003000000060000000700000006000000060000000300000006000000030000000600000006000000060000000400000006000000090000000700000006000000060000000300000006000000060000000a0000001000000013000000ed
+ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002a00befe2301befe00010101154001001000000004000000000000002100000008000000620000000c0000000100000011000000
+0c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000000000000180100
+002701000046010000020000007001f0120011f012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000540000001c000000330100001f0000003f0100000100000000400d4200040dc22f000000bafeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b00000054000000b40000002d00000033010000910000003f0100000100000000400d4200040dc240000000bafeffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300000000700000008000000070000000600000007000000070000000700000007000000030000000600000003000000070000000700
+0000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001c000000400100001f0000004c0100000100000000400d4200040dc22f000000adfeffff010000004c000000000000000000000000000000
+ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000180100002d00000040010000020100004c0100000100000000400d4200040dc240000000adfeffff220000004c00000000000000000000000000
+0000ffffffffffffffff9000000047004900560049004e0047005f0050004100540048005f0046004f0052005f005200450053004300550045005f00560045004800490043004c00450020003d002000310008000000030000000700000003000000070000000800000006000000070000000700000007000000070000000600000006000000080000000700000006000000070000000700000007000000070000000700000007
+0000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001c0000004d0100001f000000590100000100000000400d
+4200040dc22f000000a0feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000240100002d0000004d0100000c010000590100000100000000
+400d4200040dc240000000a0feffff240000004c000000000000000000000000000000ffffffffffffffff9400000047004900560049004e0047005f0050004100540048005f0046004f0052005f0053004500520056004900430045005f00560045004800490043004c004500530020003d0020003200080000000300000007000000030000000700000008000000060000000700000007000000070000000700000006000000
+0600000008000000070000000600000007000000070000000700000007000000030000000700000007000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003b0037
+febb0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002800000071010000e3000000b601000005000000800210178002601b300e601b300e101780021017250000000c00
+000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003b0037febb0045003a0000000c0000000a0000002400000024
+0000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000110000005a010000fa000000cd010000040000008002601b300e601b300e101780021017250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000060420000e3c300003b4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fc
+ffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000038003afebb004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000250000006e01000087000000b30100000500000025006e012500b3018700b30187006e0125006e01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000870000006e0100008b000000b30100000500000087006e018700b3018b00b3018b006e0187006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000
+000000250000000c00000004000000250000000c0000000800008056000000300000008b0000006e01000090000000b3010000050000008b006e018b00b3019000b30190006e018b006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000
+900000006e01000095000000b30100000500000090006e019000b3019500b30195006e0190006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000950000006e01000099000000b30100000500000095006e019500b3019900b30199006e
+0195006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000990000006e0100009e000000b30100000500000099006e019900b3019e00b3019e006e0199006e01250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000009e0000006e010000a3000000b3010000050000009e006e019e00b301a300b301a3006e019e006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c
+00000004000000250000000c000000080000805600000030000000a30000006e010000a8000000b301000005000000a3006e01a300b301a800b301a8006e01a3006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000a80000006e010000
+ad000000b301000005000000a8006e01a800b301ad00b301ad006e01a8006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000ad0000006e010000b3000000b301000005000000ad006e01ad00b301b300b301b3006e01ad006e01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b30000006e010000b8000000b301000005000000b3006e01b300b301b800b301b8006e01b3006e01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b80000006e010000bc000000b301000005000000b8006e01b800b301bc00b301bc006e01b8006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c0000000400000025
+0000000c000000080000805600000030000000bc0000006e010000c1000000b301000005000000bc006e01bc00b301c100b301c1006e01bc006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000c10000006e010000c6000000b3010000
+05000000c1006e01c100b301c600b301c6006e01c1006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c60000006e010000cb000000b301000005000000c6006e01c600b301cb00b301cb006e01c6006e01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000cb0000006e010000d0000000b301000005000000cb006e01cb00b301d000b301d0006e01cb006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d00000006e010000d6000000b301000005000000d0006e01d000b301d600b301d6006e01d0006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008
+0000805600000030000000d60000006e010000db000000b301000005000000d6006e01d600b301db00b301db006e01d6006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000db0000006e010000df000000b301000005000000db006e01
+db00b301df00b301df006e01db006e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000df0000006e010000e0000000b301000005000000df006e01df00b301e000b301e0006e01df006e01250000000c00000008000080250000000c0000
+0000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000038003afebb0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000e00000057010000f7000000ca010000040000005002301b000e301b000ee0165002e016250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004200000079feffffea0000006cfeffff160000000c00000001000000120000000c000000010000001b000000100000
+000000000000000000160000000c00000000000000540000009c0000005f00000074010000a7000000800100000100000000400d4200040dc27200000079feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600
+000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000005a00000081010000ab0000008c01000001000000
+00400d4200040dc26d0000006cfeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000046006f006c006c006f00770044006900760065007200730069006f006e0000000600000006000000030000000300000006000000090000000700000003000000070000000600000004000000060000000300000006000000060000000a0000001000000013000000edffffff0c00000010000000000000
+0000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000038005afef3005afe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000
+000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000e0000007c010000f7000000aa0100000200000050
+023019000e3019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a0000
+00970100002d000000a30100000100000000400d4200040dc23d00000056feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003b
+000000970100009f000000a30100000100000000400d4200040dc24e00000056feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000
+060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a000000a40100002d000000b00100000100000000400d4200040dc23d00000049feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000
+0000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003b000000a4010000dc000000b00100000100000000400d4200040dc24e00000049feffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000
+46004f004c004c004f0057005f0044004900560045005200530049004f004e005f005300490047004e00530020003d002000310006000000080000000600000006000000080000000900000006000000070000000300000007000000070000000700000007000000030000000800000007000000060000000700000003000000080000000700000007000000030000000600000003000000060000000a00000010000000130000
+00edffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000b60169ff900161002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00
+0000080000805600000030000000a301000023000000330300008400000005000000301a3002301a40083033400830333002301a3002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001
+000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000b60169ff900161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c000000
+05000080560000002c0000008c0100000c0000004a0300009b00000004000000301a40083033400830333002301a3002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000
+0004000000000000000080d943000014c30000c8430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000b3016cff90016100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000a001
+000020000000700200008100000005000000a0012000a00181007002810070022000a0012000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000070020000200000007a020000810000000500000070022000700281007a0281007a02200070
+022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007a020000200000008502000081000000050000007a0220007a02810085028100850220007a022000250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000085020000200000008e020000810000000500000085022000850281008e0281008e02200085022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c0000
+0004000000250000000c0000000800008056000000300000008e020000200000009802000081000000050000008e0220008e02810098028100980220008e022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000009802000020000000a202
+000081000000050000009802200098028100a2028100a202200098022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a202000020000000ac0200008100000005000000a2022000a2028100ac028100ac022000a2022000250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000ac02000020000000b70200008100000005000000ac022000ac028100b7028100b7022000ac022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b702000020000000c00200008100000005000000b7022000b7028100c0028100c0022000b7022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000
+000c000000080000805600000030000000c002000020000000ca0200008100000005000000c0022000c0028100ca028100ca022000c0022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000ca02000020000000d4020000810000000500
+0000ca022000ca028100d4028100d4022000ca022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d402000020000000dc0200008100000005000000d4022000d4028100dc028100dc022000d4022000250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000dc02000020000000e30200008100000005000000dc022000dc028100e3028100e3022000dc022000250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e302000020000000ed0200008100000005000000e3022000e3028100ed028100ed022000e3022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000
+805600000030000000ed02000020000000f70200008100000005000000ed022000ed028100f7028100f7022000ed022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000f702000020000000020300008100000005000000f7022000f702
+81000203810002032000f7022000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000002030000200000000e030000810000000500000002032000020381000e0381000e03200002032000250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000e030000200000001a03000081000000050000000e0320000e0381001a0381001a0320000e032000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac200
+00000000250000000c00000004000000250000000c0000000800008056000000300000001a030000200000002403000081000000050000001a0320001a03810024038100240320001a032000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000
+0024030000200000002e030000810000000500000024032000240381002e0381002e03200024032000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000002e030000200000003003000081000000050000002e0320002e038100300381003003
+20002e032000250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b3016cff900161003a0000000c0000000a0000002400000024
+0000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000008901000009000000470300009800000004000000001a10080033100800330002001a0002250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000bd010000c7ffffff3a030000baffffff160000000c00
+000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000044020000260000008c020000320000000100000000400d4200040dc257020000c7ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00ffff0600000006000000060000000600000009
+00000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000
+00a000000045020000330000008b0200003e0000000100000000400d4200040dc258020000baffffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000440072006900760065004300610072006500660075006c006c00790007000000040000000300000007000000060000000700000006000000040000000600000003000000060000000300000003000000050000000a000000100000001300
+0000edffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000b301a8ff4303a8ff00010101154001001000000004000000000000002100000008000000620000000c0000000100000011
+0000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000089010000
+2e000000470300005c00000002000000001a500400335004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b0000005400000054000000a501000049000000a8010000550000000100000000400d4200040dc2b8010000a4ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000b4000000b6010000490000001a020000550000000100000000400d4200040dc2c9010000a4ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300061000700000008000000070000000600000007000000070000000700000007000000030000000600000003000000070000
+0007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a501000056000000a8010000620000000100000000400d4200040dc2b801000097ffffff010000004c000000000000000000000000
+000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8010000b6010000560000002c030000620000000100000000400d4200040dc2c901000097ffffff3a0000004c00000000000000000000
+0000000000ffffffffffffffffc0000000440052004900560045005f004300410052004500460055004c004c0059005f00440041004e004700450052004f00550053005f0053004900540055004100540049004f004e005f004f004e005f0045004e005400520059005f0053004c00490050005f0052004f004100440020003d002000310007000000070000000300000007000000070000000600000007000000070000000700
+0000070000000600000007000000060000000600000007000000060000000700000007000000070000000800000007000000070000000800000007000000070000000600000007000000030000000700000007000000070000000700000003000000080000000700000006000000080000000700000006000000070000000700000007000000070000000700000006000000070000000600000003000000070000000600000007
+000000080000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a501000063000000a80100006f0000000100000000400d4200040dc2b80100008affffff010000004c0000
+00000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a4010000b601000063000000210300006f0000000100000000400d4200040dc2c90100008affffff390000004c
+000000000000000000000000000000ffffffffffffffffc0000000440052004900560045005f004300410052004500460055004c004c0059005f00440041004e004700450052004f00550053005f0053004900540055004100540049004f004e005f004f004e005f0045005800490054005f0053004c00490050005f0052004f004100440020003d00200032000000070000000700000003000000070000000700000006000000
+0700000007000000070000000700000006000000070000000600000006000000070000000600000007000000070000000700000008000000070000000700000008000000070000000700000006000000070000000300000007000000070000000700000007000000030000000800000007000000060000000800000007000000060000000700000007000000030000000700000006000000070000000600000003000000070000
+000600000007000000080000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000a501000070000000a80100007c0000000100000000400d4200040dc2b80100007dffffff01
+0000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000078010000b601000070000000f40200007c0000000100000000400d4200040dc2c90100007dffff
+ff320000004c000000000000000000000000000000ffffffffffffffffb0000000440052004900560045005f004300410052004500460055004c004c0059005f004900430045005f004200550049004c004400550050005f004f004e005f004300410042004c0045005f0053005400520055004300540055005200450020003d002000330007000000070000000300000007000000070000000600000007000000070000000700
+000007000000060000000700000006000000060000000700000006000000030000000700000007000000060000000700000007000000030000000600000007000000070000000700000006000000080000000700000006000000070000000700000007000000060000000700000006000000070000000700000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a
+0000001000000013000000edffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000a2018afe350154002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c000000
+01000000250000000c0000000800008056000000300000008f0100000f010000c40200006301000005000000f018f010f0183016402c3016402cf010f018f010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000
+000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000a2018afe350154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c0000000400
+0000250000000c00000005000080560000002c00000078010000f8000000db0200007a01000004000000f0183016402c3016402cf010f018f010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c
+0000000210c0db0400000004000000000000000080cf430080b9c300809a430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000009f018dfe35015400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080
+56000000300000008c0100000c0100002d02000060010000050000008c010c018c0160012d0260012d020c018c010c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000002d0200000c0100003502000060010000050000002d020c012d0260
+013502600135020c012d020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000350200000c0100003d020000600100000500000035020c01350260013d0260013d020c0135020c01250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000003d0200000c0100004402000060010000050000003d020c013d0260014402600144020c013d020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000
+000000250000000c00000004000000250000000c000000080000805600000030000000440200000c0100004b020000600100000500000044020c01440260014b0260014b020c0144020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000
+4b0200000c0100005302000060010000050000004b020c014b0260015302600153020c014b020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000530200000c0100005b020000600100000500000053020c01530260015b0260015b020c
+0153020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000005b0200000c0100006302000060010000050000005b020c015b0260016302600163020c015b020c01250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000630200000c0100006b020000600100000500000063020c01630260016b0260016b020c0163020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c
+00000004000000250000000c0000000800008056000000300000006b0200000c0100007202000060010000050000006b020c016b0260017202600172020c016b020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000720200000c010000
+7a020000600100000500000072020c01720260017a0260017a020c0172020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000007a0200000c0100008002000060010000050000007a020c017a0260018002600180020c017a020c01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000800200000c01000086020000600100000500000080020c01800260018602600186020c0180020c01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000860200000c0100008d020000600100000500000086020c01860260018d0260018d020c0186020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c0000000400000025
+0000000c0000000800008056000000300000008d0200000c0100009502000060010000050000008d020c018d0260019502600195020c018d020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000950200000c0100009d02000060010000
+0500000095020c01950260019d0260019d020c0195020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009d0200000c010000a702000060010000050000009d020c019d026001a7026001a7020c019d020c01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000a70200000c010000b00200006001000005000000a7020c01a7026001b0026001b0020c01a7020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000b00200000c010000b80200006001000005000000b0020c01b0026001b8026001b8020c01b0020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008
+0000805600000030000000b80200000c010000c00200006001000005000000b8020c01b8026001c0026001c0020c01b8020c01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000c00200000c010000c10200006001000005000000c0020c01
+c0026001c1026001c1020c01c0020c01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000009f018dfe350154003a0000000c0000
+000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000075010000f5000000d80200007701000004000000c0180016102c0016102cc010c018c0102500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000a9010000dbfeffffcb020000
+cefeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000003020000120100004b0200001e0100000100000000400d4200040dc216020000dbfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000006000000060000
+0006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c
+0000000000000054000000cc000000eb0100001f010000630200002a0100000100000000400d4200040dc2fe010000cefeffff150000004c000000000000000000000000000000ffffffffffffffff7800000044006f004e006f0074004c00650061007600650059006f0075007200560065006800690063006c006500000007000000060000000700000006000000030000000600000006000000060000000700000006000000
+07000000060000000600000004000000070000000600000006000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000
+00004000009f01bcfed402bcfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000
+000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000750100001a010000d80200004801000002000000c0181013102c1013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c
+000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000910100003501000094010000410100000100000000400d4200040dc2a4010000b8feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000a20100003501000006020000410100000100000000400d4200040dc2b5010000b8feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d
+00200030006c0007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000
+009101000042010000940100004e0100000100000000400d4200040dc2a4010000abfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc
+000000a2010000420100005c0200004e0100000100000000400d4200040dc2b5010000abfeffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000044004f005f004e004f0054005f004c0045004100560045005f0059004f00550052005f00560045004800490043004c00450020003d00200031000000070000000800000006000000070000000800000007000000060000000600000007000000
+07000000070000000700000006000000070000000800000007000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+000054000000910100004f010000940100005b0100000100000000400d4200040dc2a40100009efeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+5400000050010000a20100004f010000bd0200005b0100000100000000400d4200040dc2b50100009efeffff2b0000004c000000000000000000000000000000ffffffffffffffffa400000044004f005f004e004f0054005f004c0045004100560045005f0059004f00550052005f00560045004800490043004c0045005f0043004c004f00530045005f00570049004e0044004f005700530020003d00200032000000070000
+0008000000060000000700000008000000070000000600000006000000070000000700000007000000070000000600000007000000080000000700000007000000060000000700000007000000070000000300000007000000060000000700000006000000070000000600000008000000070000000700000006000000090000000300000007000000070000000800000009000000070000000300000006000000030000000600
+00000a0000001000000013000000edffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000940123fe070154002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c
+00000001000000250000000c000000080000805600000030000000810100007601000088020000ca01000005000000101860171018a01c8028a01c8028601710186017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000
+000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000940123fe070154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c0000
+0004000000250000000c00000005000080560000002c0000006a0100005f0100009f020000e1010000040000001018a01c8028a01c8028601710186017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b084002015800
+00004c0000000210c0db0400000004000000000000000080c8430000edc3008083430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000910126fe07015400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008
+00008056000000300000007e0100007301000007020000c7010000050000007e0173017e01c7010702c701070273017e017301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000007020000730100000e020000c70100000500000007027301
+0702c7010e02c7010e02730107027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000000e0200007301000015020000c7010000050000000e0273010e02c7011502c701150273010e027301250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000015020000730100001d020000c701000005000000150273011502c7011d02c7011d02730115027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ec
+db0000000000250000000c00000004000000250000000c0000000800008056000000300000001d0200007301000025020000c7010000050000001d0273011d02c7012502c701250273011d027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030
+00000025020000730100002b020000c701000005000000250273012502c7012b02c7012b02730125027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000002b0200007301000032020000c7010000050000002b0273012b02c7013202c701
+320273012b027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000032020000730100003a020000c701000005000000320273013202c7013a02c7013a02730132027301250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000003a0200007301000041020000c7010000050000003a0273013a02c7014102c701410273013a027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d200000000002500
+00000c00000004000000250000000c000000080000805600000030000000410200007301000045020000c701000005000000410273014102c7014502c7014502730141027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c0000000800008056000000300000004502000073
+0100004a020000c701000005000000450273014502c7014a02c7014a02730145027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000004a020000730100004f020000c7010000050000004a0273014a02c7014f02c7014f0273014a027301
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000004f0200007301000056020000c7010000050000004f0273014f02c7015602c701560273014f027301250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000056020000730100005c020000c701000005000000560273015602c7015c02c7015c02730156027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c0000000400
+0000250000000c0000000800008056000000300000005c0200007301000063020000c7010000050000005c0273015c02c7016302c701630273015c027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000063020000730100006b020000c7
+01000005000000630273016302c7016b02c7016b02730163027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000006b0200007301000073020000c7010000050000006b0273016b02c7017302c701730273016b027301250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000073020000730100007a020000c701000005000000730273017302c7017a02c7017a02730173027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000007a0200007301000081020000c7010000050000007a0273017a02c7018102c701810273017a027301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000810200007301000085020000c701000005000000810273018102c7018502c7018502730181027301250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000000000ff0b400040180000000c00000001000000910126fe070154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000
+670100005c0100009c020000de01000004000000e017701c5028701c50283017e0173017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c000000000000001e000000180000009b01000074feffff8f02000067feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000de0100007901000026020000850100000100000000400d4200040dc2f101000074feffff0d0000004c000000000000000000000000000000ffffffffffffffff68
+000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000
+000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000094000000e10100008601000023020000910100000100000000400d4200040dc2f401000067feffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000055007300650054006f006c006c004c0061006e006500730007000000060000000600000005000000060000000300
+00000300000006000000060000000600000006000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000910155fe980255fe0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c00000005000080570000002400000067010000810100009c020000af01000002000000e017801950288019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000830100009c01000086010000a80100000100000000400d4200040dc29601000051feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff12000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000940100009c010000f8010000a80100000100000000400d4200040dc2a701000051feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000656d0700000008000000070000
+0006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000083010000a901000086010000b501000001
+00000000400d4200040dc29601000044feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000001401000094010000a90100006e020000b50100
+000100000000400d4200040dc2a701000044feffff210000004c000000000000000000000000000000ffffffffffffffff900000005500530045005f004d0041004e00550041004c005f005000410059004d0045004e0054005f0054004f004c004c005f004c0041004e004500530020003d0020003100000007000000070000000700000006000000090000000700000007000000070000000700000006000000060000000700
+00000700000007000000090000000700000007000000070000000600000007000000080000000600000006000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b000000540000005400000083010000b601000086010000c20100000100000000400d4200040dc29601000037feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000013000000edffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000edffffffedffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b000000540000002401000094010000b601000081020000c20100000100000000400d4200040dc2a701000037feffff240000004c000000000000000000000000000000ffffffffffffffff940000005500530045005f004100550054004f004d0041005400490043005f005000410059004d0045004e0054005f0054004f004c004c005f004c0041004e004500530020003d002000320007000000070000000700000006
+00000007000000070000000700000008000000090000000700000007000000030000000700000006000000070000000700000007000000090000000700000007000000070000000600000007000000080000000600000006000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000013000000edffffff0c00000010000000000000000000000028000000
+0c00000002000000280000000c000000030000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c00000064000000000000000000000040030000d7010000000000000000000041030000d80100002900aa0000000000000000000000803f00000000000000000000803f00000000000000000000000000000000000000000000000000000000000000
+00220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 20\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_0C4F7460_1AC9_4638_9B7F_087FAD6A9ADC}{\*\bkmkend BKM_0C4F7460_1AC9_4638_9B7F_087FAD6A9ADC}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentSubCauseTables1}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw28145\pich37511\picwgoal15960\pichgoal21270\picscalex59\picscaley59\sspicalign0 010000006c000000f8ffffffffffffff27030000320400000000000000000000f06d00008692000020454d46000001002c2b030020240000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100d9fb1c03d9fb1c03ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff1e03000029040000050000001000100010007042c0317042c031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d00000001400000006000000
+10004001300c4001000d6000000d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd2000000160000000600000010004001300c4001000d6000000d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76f8911a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b6da1d006c859e10237007c01f6d00000dc59e102188d17
+01d3160a6df8911a243800ce00f6d0000037bb4000d3160a6d70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b78901a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000bf0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305cb9000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000240100000600000004000000c10000000f0000000100000000400d4200040dc206000000fcffffff240000004c000000000000000000000000000000ffffffffffffffff9400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400530075006200430061007500730065005400610062006c0065007300310006000000030000000600000006000000
+06000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000700000006000000060000000700000006000000060000000600000006000000050000000600000006000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000
+000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf00008040000030410a4000c01c00000010000000c0bfc0ff010000001c00a9ffde004500280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100
+000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000200000001d000000fe00000062000000050000000002d00100022006e00f2006e00fd0010002d001250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001c00a9ffde0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000090000000600000015010000790000000400000000022006e00f2006e00fd0010002d001250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c8410000a8c200005e4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+00001900acffde004500250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000001d0000001a000000910000005f000000050000001d001a001d005f0091005f0091001a001d001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000910000001a000000960000005f0000000500000091001a0091005f0096005f0096001a0091001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080
+5600000030000000960000001a0000009c0000005f0000000500000096001a0096005f009c005f009c001a0096001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c0000000800008056000000300000009c0000001a000000a10000005f000000050000009c001a009c005f
+00a1005f00a1001a009c001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c000000080000805600000030000000a10000001a000000a70000005f00000005000000a1001a00a1005f00a7005f00a7001a00a1001a00250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000a70000001a000000ac0000005f00000005000000a7001a00a7005f00ac005f00ac001a00a7001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000
+000000250000000c00000002000000250000000c000000080000805600000030000000ac0000001a000000b20000005f00000005000000ac001a00ac005f00b2005f00b2001a00ac001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000
+b20000001a000000b80000005f00000005000000b2001a00b2005f00b8005f00b8001a00b2001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c000000080000805600000030000000b80000001a000000bf0000005f00000005000000b8001a00b8005f00bf005f00bf001a
+00b8001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c000000080000805600000030000000bf0000001a000000c50000005f00000005000000bf001a00bf005f00c5005f00c5001a00bf001a00250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f2e5d00000000000250000000c00000002000000250000000c000000080000805600000030000000c50000001a000000c90000005f00000005000000c5001a00c5005f00c9005f00c9001a00c5001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3cf0000000000250000000c
+00000002000000250000000c000000080000805600000030000000c90000001a000000ce0000005f00000005000000c9001a00c9005f00ce005f00ce001a00c9001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e2cd0000000000250000000c00000002000000250000000c000000080000805600000030000000ce0000001a000000
+d30000005f00000005000000ce001a00ce005f00d3005f00d3001a00ce001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c000000080000805600000030000000d30000001a000000d90000005f00000005000000d3001a00d3005f00d9005f00d9001a00d3001a00250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c000000080000805600000030000000d90000001a000000de0000005f00000005000000d9001a00d9005f00de005f00de001a00d9001a00250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000de0000001a000000e50000005f00000005000000de001a00de005f00e5005f00e5001a00de001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c0000000200000025
+0000000c000000080000805600000030000000e50000001a000000ec0000005f00000005000000e5001a00e5005f00ec005f00ec001a00e5001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000ec0000001a000000f20000005f000000
+05000000ec001a00ec005f00f2005f00f2001a00ec001a00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000f20000001a000000f70000005f00000005000000f2001a00f2005f00f7005f00f7001a00f2001a00250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000f70000001a000000fb0000005f00000005000000f7001a00f7005f00fb005f00fb001a00f7001a00250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c0000000700
+0080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001900acffde0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000000600000003000000120100007600000004000000d001f005b00ff005b00fa001d001a001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+e1021857e102245736019c58530b1457e10296961901653c0ac59c58530bb296190100000000e8951a248ce3c577738c172646e0c5779401300b0000300b188d1701653c0ac53600ba0002d10000c457e10237bb4000653c0ac5e8951a2437007c0102d100008882dd193c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0be8951a24f0374b0b000000001457e10200000000b058e102f5
+71ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000e0951a24dc57e10223e0c577e8951a243a6c2e7608654501e0951a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000023000000ebffffffee000000deffffff160000000c00000001000000120000000c00000001000000
+1b000000100000000000000000000000160000000c00000000000000540000009c0000006800000020000000b00000002c0000000100000000400d4200040dc264000000ebffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0027300600000006000000060000000600000009000000060000000300000006000000030000
+00030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc02000000000001000005004100520049
+0041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76e8951a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bc6a3600c1c58e1023700fe0004d100003058e102188d1701653c0ac6e8951a243800ce0004d1000037bb4000
+653c0ac670374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b78901a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd1903d100008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c000000030000
+00180000000c0000000000000054000000b4000000620000002d000000b7000000380000000100000000400d4200040dc25e000000deffffff110000004c000000000000000000000000000000ffffffffffffffff70000000540072006100660066006900630043006f006e00670065007300740069006f006e003031050000000400000006000000030000000300000003000000060000000700000006000000060000000600
+00000600000006000000030000000300000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001900ccfff700ccff0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c0000000500008057000000240000000600000028000000120100005600000002000000d001f003b00ff003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002200000043000000250000004f0000000100000000400d4200040dc21e000000c8ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305c030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b00000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003300000043000000970000004f0000000100000000400d4200040dc22f000000c8ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030003b7d0700000008000000070000
+0006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002200000050000000250000005c00000001
+00000000400d4200040dc21e000000bbffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000656c030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100003300000050000000f70000005c0000
+000100000000400d4200040dc22f000000bbffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000049004e0043005200450041005300450044005f0056004f004c0055004d0045005f004f0046005f00540052004100460046004900430020003d00200031006c650300000007000000070000000700000007000000070000000700000007000000070000000600000007000000080000000600
+00000700000009000000070000000600000008000000060000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001500fdfe250199002100000008000000620000000c00000001
+000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000019000000750000003e0100000e01000005000000900150079001e010e013e010e013500790015007250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001500fdfe250199003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000020000005e0000005501000025010000040000009001e010e013e010e013500790015007250000000c00000007000080250000000c0000000000008024000000240000000000
+8041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000009041000080c30080924300001943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002
+00000001000000120000ff25019900250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001600000072000000ae0000000b010000050000001600720016000b01ae000b01ae00720016007200250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000ae00000072000000b60000000b01000005000000ae007200ae000b01b6000b01b6007200ae007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000b600000072000000be0000000b01000005000000b6007200b6000b01be000b01be007200b6007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000be00000072000000c70000000b01000005000000be00
+7200be000b01c7000b01c7007200be007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000c700000072000000cf0000000b01000005000000c7007200c7000b01cf000b01cf007200c7007200250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000cf00000072000000d70000000b01000005000000cf007200cf000b01d7000b01d7007200cf007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000d700000072000000de0000000b01000005000000d7007200d7000b01de000b01de007200d7007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000
+0030000000de00000072000000e70000000b01000005000000de007200de000b01e7000b01e7007200de007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000e700000072000000ef0000000b01000005000000e7007200e7000b01ef00
+0b01ef007200e7007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000ef00000072000000f40000000b01000005000000ef007200ef000b01f4000b01f4007200ef007200250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000f400000072000000f90000000b01000005000000f4007200f4000b01f9000b01f9007200f4007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000
+250000000c00000004000000250000000c000000080000805600000030000000f900000072000000ff0000000b01000005000000f9007200f9000b01ff000b01ff007200f9007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ff0000
+0072000000060100000b01000005000000ff007200ff000b0106010b0106017200ff007200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000006010000720000000e0100000b010000050000000601720006010b010e010b010e0172000601
+7200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000000e01000072000000150100000b010000050000000e0172000e010b0115010b01150172000e017200250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000015010000720000001e0100000b010000050000001501720015010b011e010b011e01720015017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c000000
+04000000250000000c0000000800008056000000300000001e01000072000000270100000b010000050000001e0172001e010b0127010b01270172001e017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000027010000720000002f0100
+000b010000050000002701720027010b012f010b012f01720027017200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000002f01000072000000360100000b010000050000002f0172002f010b0136010b01360172002f017200250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000036010000720000003b0100000b010000050000003601720036010b013b010b013b01720036017200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c
+00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000120000ff250199003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000
+00000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ffffffff5b0000005201000022010000040000006001b010b013b010b013200760012007250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001c00000093ffffff2e01000086ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054
+0000009c0000008500000078000000cd000000840000000100000000400d4200040dc28100000093ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb006330060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b0000001000000000000000
+00000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c0000009300000085000000be000000900000000100000000400d4200040dc28f00000086ffffff080000004c00
+0000000000000000000000000000ffffffffffffffff5c0000004100630063006900640065006e00740007000000060000000600000003000000060000000600000006000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000000000ff0840010324000000180000000210c0db0200000000400000120074ff370174ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000ffffffff8000000052010000ae0000000200000060017009b0137009250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b0000009b0000001e000000a70000000100000000400d4200040dc21700000070ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020
+006170030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000002c0000009b00000090000000a70000000100000000400d4200040dc22800000070ffffff110000004c000000000000000000000000000000ffffffffffffffff700000
+004e004f0054005f0053005000450043004900460049004500440020003d0020003000384307000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b00000054000000540000001b000000a80000001e000000b40000000100000000400d4200040dc21700000063ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c66030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b00000054000000e80000002c000000a8000000ca000000b40000000100000000400d4200040dc22800000063ffffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004d0055004c00540049005f00560045004800490043004c0045005f004100430043004900440045004e00540020003d00200031000900000007000000060000000700
+0000030000000600000007000000070000000700000003000000070000000600000007000000060000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000540000001b000000b50000001e000000c10000000100000000400d4200040dc21700000056ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000b80000002c000000b50000009b000000c10000000100000000400d4200040dc22800000056ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f004100430043004900440045004e00540020003d0020003200070000000700000007000000070000000700000006000000070000000700000007000000030000000700000007
+0000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000c20000001e000000ce0000000100000000400d4200040dc21700000049ffffff010000004c000000000000
+000000000000000000ffffffffffffffff5000000020000080030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000002c000000c2000000d9000000ce0000000100000000400d4200040dc22800000049ffffff1c0000004c00000000
+0000000000000000000000ffffffffffffffff840000004100430043004900440045004e0054005f0049004e0056004f004c00560049004e0047005f004c004f0052005200590020003d002000330007000000070000000700000003000000070000000700000007000000070000000600000003000000070000000700000008000000060000000700000003000000070000000800000006000000060000000800000007000000
+0700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000cf0000001e000000db0000000100000000400d4200040dc2170000003cffffff010000004c000000000000000000
+000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000002c000000cf000000cb000000db0000000100000000400d4200040dc2280000003cffffff1a0000004c00000000000000
+0000000000000000ffffffffffffffff800000004100430043004900440045004e0054005f0049004e0056004f004c00560049004e0047005f0042005500530020003d00200034000700000007000000070000000300000007000000070000000700000007000000060000000300000007000000070000000800000006000000070000000300000007000000080000000600000007000000070000000700000003000000060000
+0003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001b000000dc0000001e000000e80000000100000000400d4200040dc2170000002fffffff010000004c000000000000000000000000000000ffffffffffffffff50
+0000002000ffff030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000480100002c000000dc00000037010000e80000000100000000400d4200040dc2280000002fffffff2a0000004c000000000000000000000000000000ffffffffffffff
+ffa00000004100430043004900440045004e0054005f0049004e0056004f004c00560049004e0047005f00480041005a004100520044004f00550053005f004d004100540045005200490041004c00530020003d0020003500070000000700000007000000030000000700000007000000070000000700000006000000030000000700000007000000080000000600000007000000030000000700000008000000060000000700
+0000070000000600000007000000070000000700000008000000070000000700000006000000090000000700000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000540000001b000000e90000001e000000f50000000100000000400d4200040dc21700000022ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020001016030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000fc0000002c000000e9000000e4000000f50000000100000000400d4200040dc22800000022ffffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004100430043004900440045004e0054005f004f004e005f004f00500050004f0053004900540045005f004c0041004e00450020003d00200036000000070000000700000007000000030000000700000007
+00000007000000070000000600000008000000070000000600000008000000070000000700000008000000070000000300000007000000070000000600000006000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b00000054000000540000001b000000f60000001e000000020100000100000000400d4200040dc21700000015ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000d00000002c000000f6000000b7000000020100000100000000400d4200040dc22800000015ffffff160000004c000000000000000000000000000000ffffffffffffffff7800000055004e0053004500430055005200450044005f004100430043004900440045004e00540020003d00200037000700000007000000070000000700000007000000070000000700000007000000
+07000000060000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000000e007afeee0065002100000008000000620000000c00000001000000110000000c000000010000000a0000
+0010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000120000002c0100000001000091010000050000002001c01220011019001010190010c0122001c012250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000
+8041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000e007afeee0065003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004
+00000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffff1501000017010000a80100000400000020011019001010190010c0122001c012250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000030410080c1c300006e430000ca42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000b007dfeee006500250000
+000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f000000290100008b0000008e010000050000000f0029010f008e018b008e018b0029010f002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e100000000002500
+00000c00000004000000250000000c0000000800008056000000300000008b00000029010000910000008e010000050000008b0029018b008e0191008e01910029018b002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009100000029
+010000970000008e010000050000009100290191008e0197008e019700290191002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000097000000290100009d0000008e010000050000009700290197008e019d008e019d00290197002901
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000009d00000029010000a20000008e010000050000009d0029019d008e01a2008e01a20029019d002901250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a200000029010000a90000008e01000005000000a2002901a2008e01a9008e01a9002901a2002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c0000000400
+0000250000000c000000080000805600000030000000a900000029010000af0000008e01000005000000a9002901a9008e01af008e01af002901a9002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000af00000029010000b50000008e
+01000005000000af002901af008e01b5008e01b5002901af002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b500000029010000bb0000008e01000005000000b5002901b5008e01bb008e01bb002901b5002901250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000bb00000029010000c00000008e01000005000000bb002901bb008e01c0008e01c0002901bb002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000c000000029010000c60000008e01000005000000c0002901c0008e01c6008e01c6002901c0002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000c600000029010000cb0000008e01000005000000c6002901c6008e01cb008e01cb002901c6002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000cb00000029010000cf0000008e01000005000000cb
+002901cb008e01cf008e01cf002901cb002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000cf00000029010000d50000008e01000005000000cf002901cf008e01d5008e01d5002901cf002901250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d500000029010000db0000008e01000005000000d5002901d5008e01db008e01db002901d5002901250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000db00000029010000e20000008e01000005000000db002901db008e01e2008e01e2002901db002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600
+000030000000e200000029010000e90000008e01000005000000e2002901e2008e01e9008e01e9002901e2002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000e900000029010000f00000008e01000005000000e9002901e9008e01f0
+008e01f0002901e9002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000f000000029010000f60000008e01000005000000f0002901f0008e01f6008e01f6002901f0002901250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000f600000029010000fc0000008e01000005000000f6002901f6008e01fc008e01fc002901f6002901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be00000000
+00250000000c00000004000000250000000c000000080000805600000030000000fc00000029010000fd0000008e01000005000000fc002901fc008e01fd008e01fd002901fc002901250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000
+803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000b007dfeee0065003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000000400000025
+0000000c00000005000080560000002c000000f8ffffff1201000014010000a501000004000000f000e018d00fe018d00f9012f0009012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000015000000dcfefffff0000000cffeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000620000002f010000aa0000003b0100000100000000400d4200040dc25e000000dcfeffff0d0000004c0000000000
+00000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00ffff060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000840000006a0000003c010000a2000000470100000100000000400d4200040dc266000000cffeffff090000004c000000000000000000000000000000ffffffffffffffff6000000052006f006100640057006f0072006b007300000007000000060000
+00060000000600000009000000060000000400000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000b00bdfef900bdfe0001
+0101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000
+000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff37010000140100006501000002000000f000e014d00fe014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000052010000170000005e0100000100000000400d4200040dc210000000b9feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000002500000052010000890000005e0100000100000000400d4200040dc221000000b9feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300000000700000008000000
+0700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000005f010000170000006b01
+00000100000000400d4200040dc210000000acfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000250000005f010000a4000000
+6b0100000100000000400d4200040dc221000000acfeffff130000004c000000000000000000000000000000ffffffffffffffff740000004d0041004a004f0052005f0052004f004100440057004f0052004b00530020003d002000310000000900000007000000050000000800000007000000060000000700000008000000070000000700000009000000080000000700000007000000070000000300000006000000030000
+00060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000006c01000017000000780100000100000000400d4200040dc2100000009ffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020
+000080030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000250000006c010000af000000780100000100000000400d4200040dc2210000009ffeffff150000004c000000000000000000000000000000ffffffffffffffff780000
+0052004f00410044005f004d00410052004b0049004e0047005f0057004f0052004b0020003d002000320000000700000008000000070000000700000006000000090000000700000007000000070000000300000007000000080000000600000009000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000007901000017000000850100000100000000400d4200040dc21000000092feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000080030000000a00000010000000fcffffff0b0000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b0000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c0100002500000079010000f9000000850100000100000000400d4200040dc22100000092feffff200000004c000000000000000000000000000000ffffffffffffffff8c00000053004c004f0057005f004d004f00560049004e0047005f0052004f00410044005f004d00410049004e00
+540045004e0041004e004300450020003d002000330007000000060000000800000009000000060000000900000008000000070000000300000007000000080000000600000007000000080000000700000007000000060000000900000007000000030000000700000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c
+000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003200e9fdb60072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080
+560000003000000036000000b0010000ec00000022020000050000006003001b60032022c00e2022c00e001b6003001b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000
+000210c0db00000000c0bfc0ff0b400040180000000c000000010000003200e9fdb60072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c000000050000805600
+00002c0000001f0000009901000003010000390200000400000060032022c00e2022c00e001b6003001b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000
+00000000003c42000005c4000036430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002f00ecfdb6007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000033000000ad010000
+920000001f020000050000003300ad0133001f0292001f029200ad013300ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000092000000ad010000970000001f020000050000009200ad0192001f0297001f029700ad019200ad01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000097000000ad0100009b0000001f020000050000009700ad0197001f029b001f029b00ad019700ad01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000ad010000a00000001f020000050000009b00ad019b001f02a0001f02a000ad019b00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c0000000400000025
+0000000c000000080000805600000030000000a0000000ad010000a40000001f02000005000000a000ad01a0001f02a4001f02a400ad01a000ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a4000000ad010000a90000001f020000
+05000000a400ad01a4001f02a9001f02a900ad01a400ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a9000000ad010000ad0000001f02000005000000a900ad01a9001f02ad001f02ad00ad01a900ad01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000ad000000ad010000b20000001f02000005000000ad00ad01ad001f02b2001f02b200ad01ad00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000b2000000ad010000b60000001f02000005000000b200ad01b2001f02b6001f02b600ad01b200ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008
+0000805600000030000000b6000000ad010000bb0000001f02000005000000b600ad01b6001f02bb001f02bb00ad01b600ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000bb000000ad010000bf0000001f02000005000000bb00ad01
+bb001f02bf001f02bf00ad01bb00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000bf000000ad010000c30000001f02000005000000bf00ad01bf001f02c3001f02c300ad01bf00ad01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c3000000ad010000c60000001f02000005000000c300ad01c3001f02c6001f02c600ad01c300ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1
+cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c6000000ad010000cb0000001f02000005000000c600ad01c6001f02cb001f02cb00ad01c600ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030
+000000cb000000ad010000cf0000001f02000005000000cb00ad01cb001f02cf001f02cf00ad01cb00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000cf000000ad010000d40000001f02000005000000cf00ad01cf001f02d4001f02
+d400ad01cf00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000d4000000ad010000da0000001f02000005000000d400ad01d4001f02da001f02da00ad01d400ad01250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000da000000ad010000df0000001f02000005000000da00ad01da001f02df001f02df00ad01da00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac200000000002500
+00000c00000004000000250000000c000000080000805600000030000000df000000ad010000e40000001f02000005000000df00ad01df001f02e4001f02e400ad01df00ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000e4000000ad
+010000e80000001f02000005000000e400ad01e4001f02e8001f02e800ad01e400ad01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e8000000ad010000e90000001f02000005000000e800ad01e8001f02e9001f02e900ad01e800ad01
+250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002f00ecfdb60072003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001c000000960100000001000036020000040000003003f021900ef021900ed01a3003d01a250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003900000058feffffdc0000004bfeffff160000000c00000001000000
+120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006a000000b3010000b2000000bf0100000100000000400d4200040dc26600000058feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000000600000009000000060000
+00030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000900000006d
+000000c0010000af000000cb0100000100000000400d4200040dc2690000004bfeffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004e006100720072006f0077004c0061006e0065007300804107000000060000000400000004000000060000000900000006000000060000000600000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000
+460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002f0039fee50039fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000
+00000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001c000000bb01000000010000e9010000020000003003201d900e
+201d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000038000000d6010000
+3b000000e20100000100000000400d4200040dc23400000035feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000049000000d601
+0000ad000000e20100000100000000400d4200040dc24500000035feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a
+00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000038000000e30100003b000000ef0100000100000000400d4200040dc23400000028feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000
+000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a000000049000000e3010000a3000000ef0100000100000000400d4200040dc24500000028feffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000043004f004e
+0054005200410046004c004f00570020003d002000310007000000080000000700000007000000070000000700000006000000060000000800000009000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+005400000038000000f00100003b000000fc0100000100000000400d4200040dc2340000001bfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020008100030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+000000dc00000049000000f0010000e5000000fc0100000100000000400d4200040dc2450000001bfeffff180000004c000000000000000000000000000000ffffffffffffffff7c00000048004100520044005f00530048004f0055004c004400450052005f0043004c004f0053004500440020003d00200032000700000007000000070000000700000006000000070000000700000008000000070000000600000007000000
+070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000038000000fd0100003b00000009020000010000000040
+0d4200040dc2340000000efeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000049000000fd010000c30000000902000001000000
+00400d4200040dc2450000000efeffff140000004c000000000000000000000000000000ffffffffffffffff7400000053004c00490050005f004c0041004e0045005f0043004c004f0053004500440020003d002000330007000000060000000300000007000000060000000600000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000
+000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000380000000a0200003b000000160200000100000000400d4200040dc23400000001feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003
+0000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000490000000a020000de000000160200000100000000400d4200040dc24500000001feffff170000004c000000000000000000000000000000ffffffffffffffff7c000000430052
+00410057004c00450052005f004c0041004e0045005f0043004c004f0053004500440020003d0020003400000007000000070000000700000009000000060000000700000007000000060000000600000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c00000010000000000000000000
+0000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000240045fdbf008c002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000280000003a
+020000e7000000c6020000050000008002a0238002602c700e602c700ea0238002a023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff
+0b400040180000000c00000001000000240045fdbf008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000011000000230200
+00fe000000dd020000040000008002602c700e602c700ea0238002a023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000044200002ec40000
+3f4300000c43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000210048fdbf008c00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000250000003702000089000000c30200000500000025
+0037022500c3028900c3028900370225003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000089000000370200008d000000c302000005000000890037028900c3028d00c3028d00370289003702250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008d0000003702000092000000c3020000050000008d0037028d00c3029200c302920037028d003702250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000920000003702000097000000c302000005000000920037029200c3029700c3029700370292003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600
+00003000000097000000370200009b000000c302000005000000970037029700c3029b00c3029b00370297003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000009b00000037020000a0000000c3020000050000009b0037029b00c302a0
+00c302a00037029b003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a000000037020000a5000000c302000005000000a0003702a000c302a500c302a5003702a0003702250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a500000037020000aa000000c302000005000000a5003702a500c302aa00c302aa003702a5003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d400000000
+00250000000c00000004000000250000000c000000080000805600000030000000aa00000037020000af000000c302000005000000aa003702aa00c302af00c302af003702aa003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000af00
+000037020000b3000000c302000005000000af003702af00c302b300c302b3003702af003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b300000037020000b8000000c302000005000000b3003702b300c302b800c302b8003702b3
+003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b800000037020000bc000000c302000005000000b8003702b800c302bc00c302bc003702b8003702250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000bc00000037020000c0000000c302000005000000bc003702bc00c302c000c302c0003702bc003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c0000
+0004000000250000000c000000080000805600000030000000c000000037020000c4000000c302000005000000c0003702c000c302c400c302c4003702c0003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000c400000037020000c900
+0000c302000005000000c4003702c400c302c900c302c9003702c4003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c900000037020000ce000000c302000005000000c9003702c900c302ce00c302ce003702c9003702250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000ce00000037020000d4000000c302000005000000ce003702ce00c302d400c302d4003702ce003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d400000037020000da000000c302000005000000d4003702d400c302da00c302da003702d4003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000
+000c000000080000805600000030000000da00000037020000df000000c302000005000000da003702da00c302df00c302df003702da003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000df00000037020000e3000000c30200000500
+0000df003702df00c302e300c302e3003702df003702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e300000037020000e4000000c302000005000000e3003702e300c302e400c302e4003702e3003702250000000c0000000800008025
+0000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000210048fdbf008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000e00000020020000fb000000da020000040000005002302c400e302c400e702350027023250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002b000000cefdffffd7000000c1fdffff160000000c00000001000000120000000c000000010000001b
+000000100000000000000000000000160000000c00000000000000540000009c000000610000003d020000a9000000490200000100000000400d4200040dc25d000000cefdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000
+030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c000000660000004a020000a40000005502
+00000100000000400d4200040dc262000000c1fdffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000049006d0070006100730073006900620069006c006900740079000000030000000900000006000000060000000600000006000000030000000600000003000000030000000300000003000000050000000a00000010000000fcffffff0b0000000c00000010000000000000000000000046
+0000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002100affde000affd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000
+000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000e00000045020000fb00000073020000020000005002c025400ec0
+25250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a000000600200002d
+0000006c0200000100000000400d4200040dc226000000abfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000080030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003b000000600200
+009f0000006c0200000100000000400d4200040dc237000000abfdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000d80007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00
+000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a0000006d0200002d000000790200000100000000400d4200040dc2260000009efdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003000000
+0a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000940000003b0000006d02000082000000790200000100000000400d4200040dc2370000009efdffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000046004c004f00
+4f00440049004e00470020003d00200031000600000006000000080000000800000007000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a0000007a020000
+2d000000860200000100000000400d4200040dc22600000091fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000003b0000007a02
+0000d7000000860200000100000000400d4200040dc23700000091fdffff180000004c000000000000000000000000000000ffffffffffffffff7c000000440041004e004700450052005f004f0046005f004100560041004c0041004e00430048004500530020003d0020003200070000000700000007000000080000000700000007000000060000000800000006000000060000000700000007000000070000000600000007
+0000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a000000870200002d000000930200000100000000400d4200040dc22600000084fdff
+ff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003b00000087020000e0000000930200000100000000400d4200040dc23700000084
+fdffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000042004c0041005300540049004e0047005f004f0046005f004100560041004c0041004e00430048004500530020003d00200033000700000006000000070000000700000007000000030000000700000008000000060000000800000006000000060000000700000007000000070000000600000007000000070000000700000007000000
+0700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a000000940200002d000000a00200000100000000400d4200040dc22600000077fdffff010000004c000000000000000000
+000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000003b0000009402000086000000a00200000100000000400d4200040dc23700000077fdffff0d0000004c00000000000000
+0000000000000000ffffffffffffffff680000004c0041004e00440053004c0049005000530020003d00200034000000060000000700000007000000070000000700000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000540000002a000000a10200002d000000ad0200000100000000400d4200040dc2260000006afdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000cc0000003b000000a1020000bb000000ad0200000100000000400d4200040dc2370000006afdffff150000004c000000000000000000000000000000ffffffffffffffff780000004300480045004d004900430041004c005f005300500049004c004c0041004700450020003d0020003500ffff070000000700000007000000090000000300000007000000070000
+0006000000060000000700000007000000030000000600000006000000070000000800000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002a000000ae0200002d000000ba02000001
+00000000400d4200040dc2260000005dfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c64030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000003b000000ae020000ac000000ba0200
+000100000000400d4200040dc2370000005dfdffff120000004c000000000000000000000000000000ffffffffffffffff70000000570049004e005400450052005f0043004c004f00530055005200450020003d00200036000900000003000000070000000700000007000000070000000600000007000000060000000800000007000000070000000700000007000000030000000600000003000000060000000a0000001000
+0000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000300071fcb000c0002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000000100000025
+0000000c00000008000080560000003000000034000000da020000e40000009a030000050000004003a02d4003a039400ea039400ea02d4003a02d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f
+0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000300071fcb000c0003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000
+000c00000005000080560000002c0000001d000000c3020000fb000000b1030000040000004003a039400ea039400ea02d4003a02d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210
+c0db04000000040000000000000000003442000063c40000304300004043bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002d0074fcb000c000250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030
+00000031000000d70200008d00000097030000050000003100d702310097038d0097038d00d7023100d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000008d000000d70200009100000097030000050000008d00d7028d00970391009703
+9100d7028d00d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000091000000d70200009600000097030000050000009100d70291009703960097039600d7029100d702250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000096000000d70200009b00000097030000050000009600d702960097039b0097039b00d7029600d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb00000000002500
+00000c00000004000000250000000c0000000800008056000000300000009b000000d7020000a100000097030000050000009b00d7029b009703a1009703a100d7029b00d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000a1000000d7
+020000a50000009703000005000000a100d702a1009703a5009703a500d702a100d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000a5000000d7020000a90000009703000005000000a500d702a5009703a9009703a900d702a500d702
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a9000000d7020000af0000009703000005000000a900d702a9009703af009703af00d702a900d702250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000af000000d7020000b40000009703000005000000af00d702af009703b4009703b400d702af00d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c0000000400
+0000250000000c000000080000805600000030000000b4000000d7020000b90000009703000005000000b400d702b4009703b9009703b900d702b400d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b9000000d7020000bc00000097
+03000005000000b900d702b9009703bc009703bc00d702b900d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000bc000000d7020000bf0000009703000005000000bc00d702bc009703bf009703bf00d702bc00d702250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000bf000000d7020000c40000009703000005000000bf00d702bf009703c4009703c400d702bf00d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000c4000000d7020000c80000009703000005000000c400d702c4009703c8009703c800d702c400d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00
+0000080000805600000030000000c8000000d7020000cd0000009703000005000000c800d702c8009703cd009703cd00d702c800d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000cd000000d7020000d20000009703000005000000cd
+00d702cd009703d2009703d200d702cd00d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d2000000d7020000d80000009703000005000000d200d702d2009703d8009703d800d702d200d702250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000d8000000d7020000dc0000009703000005000000d800d702d8009703dc009703dc00d702d800d702250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000dc000000d7020000e00000009703000005000000dc00d702dc009703e0009703e000d702dc00d702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600
+000030000000e0000000d7020000e10000009703000005000000e000d702e0009703e1009703e100d702e000d702250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b
+400040180000000c000000010000002d0074fcb000c0003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001a000000c0020000
+f8000000ae0300000400000010037039100e7039100e702d1003702d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c000000000000001e00000018000000370000002efdffffd400000021fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000065000000dd020000ad000000e90200000100000000400d4200040dc2610000002efdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e
+0075006d00650072006100740069006f006e00bb006b7b060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009400000069000000ea020000aa000000f50200000100000000400d4200040dc26500000021fdffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000053006c0069007000700065007200790052006f0061006400070000000300000003000000060000000600000006000000040000000500
+0000070000000600000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002d000ffddd000ffd00010101154001001000000004
+000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000
+04000000250000000c0000000500008057000000240000001a000000e5020000f800000013030000020000001003c02f100ec02f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003600000000030000390000000c0300000100000000400d4200040dc2320000000bfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007d5c030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004700000000030000ab0000000c0300000100000000400d4200040dc2430000000bfdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030004b4d07000000080000000700000006000000070000
+000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000000d03000039000000190300000100000000400d4200
+040dc232000000fefcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000d0a030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000470000000d030000dd000000190300000100000000400d
+4200040dc243000000fefcffff170000004c000000000000000000000000000000ffffffffffffffff7c000000480045004100560059005f00460052004f00530054005f004f004e005f0052004f004100440020003d002000310073320700000007000000070000000700000007000000060000000600000007000000080000000700000007000000060000000800000007000000060000000700000008000000070000000700
+0000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000001a03000039000000260300000100000000400d4200040dc232000000f1fcffff010000004c000000000000000000000000000000
+ffffffffffffffff500000002000305c030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000470000001a030000ab000000260300000100000000400d4200040dc243000000f1fcffff100000004c00000000000000000000000000
+0000ffffffffffffffff6c0000004600550045004c005f004f004e005f0052004f004100440020003d0020003200060000000700000007000000060000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000002703000039000000330300000100000000400d4200040dc232000000e4fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007264030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000004700000027030000a8000000330300000100000000400d4200040dc243000000e4fcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004d00550044005f004f004e005f0052004f004100440020003d002000330073740900000007000000070000000600000008000000070000000600000007
+000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000003403000039000000400300000100000000400d4200040dc232000000d7fcffff010000004c0000
+00000000000000000000000000ffffffffffffffff5000000020005c66030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000004700000034030000b0000000400300000100000000400d4200040dc243000000d7fcffff100000004c
+000000000000000000000000000000ffffffffffffffff6c00000053004e004f0057005f004f004e005f0052004f004100440020003d0020003400070000000700000008000000090000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003600000041030000390000004d0300000100000000400d4200040dc232000000cafcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020003831030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000004700000041030000a20000004d0300000100000000400d4200040dc243000000cafcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004900430045005f004f004e005f0052004f004100440020003d0020003500335c03000000070000000700000006000000
+08000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000004e030000390000005a0300000100000000400d4200040dc23200
+0000bdfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006472030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000470000004e030000ca0000005a0300000100000000400d4200040dc2
+43000000bdfcffff150000004c000000000000000000000000000000ffffffffffffffff7800000042004c00410043004b005f004900430045005f004f004e005f0052004f004100440020003d00200036005c700700000006000000070000000700000007000000060000000300000007000000070000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000
+000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000005b03000039000000670300000100000000400d4200040dc232000000b0fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000747d03
+0000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000470000005b030000a2000000670300000100000000400d4200040dc243000000b0fcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004f0049
+004c005f004f004e005f0052004f004100440020003d0020003700335f0800000003000000060000000600000008000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000054000000360000006803000039000000740300000100000000400d4200040dc232000000a3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020004b4d030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000c00000004700000068030000bb000000740300000100000000400d4200040dc243000000a3fcffff130000004c000000000000000000000000000000ffffffffffffffff740000004c004f004f00530045005f004300480049005000500049004e004700530020003d00200038006965060000000800000008000000070000000700000006000000070000000700000003000000070000000700
+000003000000070000000800000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000360000007503000039000000810300000100000000400d4200040dc23200000096fcffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020005c66030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000004700000075030000c5000000810300000100000000400d4200040dc24300000096fcffff1500
+00004c000000000000000000000000000000ffffffffffffffff7800000049004e005300540041004e0054005f0042004c00410043004b005f0049004300450020003d002000390075780300000007000000070000000700000007000000070000000700000006000000070000000600000007000000070000000700000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fc
+ffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003600000082030000390000008e0300000100000000400d4200040dc23200000089fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006673030000000a000000100000
+00fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004700000082030000b20000008e0300000100000000400d4200040dc24300000089fcffff110000004c000000000000000000000000000000ffffffffffffffff7000000052004f004100440053005f0053
+0041004c0054004500440020003d002000310030005c6607000000080000000700000007000000070000000600000007000000070000000600000007000000070000000700000003000000060000000300000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000530007fc7e005400
+2100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000057000000b0030000d500000004040000050000007005003b70054040500d4040500d003b7005003b250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000530007fc7e0054003a0000000c0000000a00000024000000240000000000
+803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000004000000099030000ec0000001b0400000400000070054040500d4040500d003b7005003b250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000a04200807dc40000fc420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcff
+bed7e8ff0a4000401c00000010000000020000000100000050000afc7e005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000054000000ad0300009400000001040000050000005400ad0354000104940001049400ad035400ad03250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c00000008000080560000003000000094000000ad0300009500000001040000050000009400ad0394000104950001049500ad039400ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e200000000002500
+00000c00000004000000250000000c00000008000080560000003000000095000000ad0300009600000001040000050000009500ad0395000104960001049600ad039500ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000096000000ad
+0300009700000001040000050000009600ad0396000104970001049700ad039600ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000097000000ad0300009900000001040000050000009700ad0397000104990001049900ad039700ad03
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000099000000ad0300009a00000001040000050000009900ad03990001049a0001049a00ad039900ad03250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c0000000800008056000000300000009a000000ad0300009b00000001040000050000009a00ad039a0001049b0001049b00ad039a00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c0000000400
+0000250000000c0000000800008056000000300000009b000000ad0300009c00000001040000050000009b00ad039b0001049c0001049c00ad039b00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009c000000ad0300009d00000001
+040000050000009c00ad039c0001049d0001049d00ad039c00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009d000000ad0300009e00000001040000050000009d00ad039d0001049e0001049e00ad039d00ad03250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000009e000000ad0300009f00000001040000050000009e00ad039e0001049f0001049f00ad039e00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000009f000000ad030000a000000001040000050000009f00ad039f000104a0000104a000ad039f00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000a0000000ad030000a20000000104000005000000a000ad03a0000104a2000104a200ad03a000ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a2000000ad030000a40000000104000005000000a2
+00ad03a2000104a4000104a400ad03a200ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000a4000000ad030000a50000000104000005000000a400ad03a4000104a5000104a500ad03a400ad03250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c000000080000805600000030000000a5000000ad030000a60000000104000005000000a500ad03a5000104a6000104a600ad03a500ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a6000000ad030000a70000000104000005000000a600ad03a6000104a7000104a700ad03a600ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600
+000030000000a7000000ad030000a90000000104000005000000a700ad03a7000104a9000104a900ad03a700ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a9000000ad030000aa0000000104000005000000a900ad03a9000104aa
+000104aa00ad03a900ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000aa000000ad030000ac0000000104000005000000aa00ad03aa000104ac000104ac00ad03aa00ad03250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000ac000000ad030000ae0000000104000005000000ac00ad03ac000104ae000104ae00ad03ac00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d300000000
+00250000000c00000004000000250000000c000000080000805600000030000000ae000000ad030000af0000000104000005000000ae00ad03ae000104af000104af00ad03ae00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000af00
+0000ad030000b00000000104000005000000af00ad03af000104b0000104b000ad03af00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000b0000000ad030000b20000000104000005000000b000ad03b0000104b2000104b200ad03b0
+00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b2000000ad030000b40000000104000005000000b200ad03b2000104b4000104b400ad03b200ad03250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b4000000ad030000b50000000104000005000000b400ad03b4000104b5000104b500ad03b400ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c0000
+0004000000250000000c000000080000805600000030000000b5000000ad030000b60000000104000005000000b500ad03b5000104b6000104b600ad03b500ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b6000000ad030000b700
+00000104000005000000b600ad03b6000104b7000104b700ad03b600ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b7000000ad030000b80000000104000005000000b700ad03b7000104b8000104b800ad03b700ad03250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b8000000ad030000b90000000104000005000000b800ad03b8000104b9000104b900ad03b800ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000b9000000ad030000ba0000000104000005000000b900ad03b9000104ba000104ba00ad03b900ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000
+000c000000080000805600000030000000ba000000ad030000bc0000000104000005000000ba00ad03ba000104bc000104bc00ad03ba00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000bc000000ad030000bd000000010400000500
+0000bc00ad03bc000104bd000104bd00ad03bc00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000bd000000ad030000bf0000000104000005000000bd00ad03bd000104bf000104bf00ad03bd00ad03250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000bf000000ad030000c00000000104000005000000bf00ad03bf000104c0000104c000ad03bf00ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c0000000ad030000c10000000104000005000000c000ad03c0000104c1000104c100ad03c000ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000
+805600000030000000c1000000ad030000c20000000104000005000000c100ad03c1000104c2000104c200ad03c100ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000c2000000ad030000c40000000104000005000000c200ad03c200
+0104c4000104c400ad03c200ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000c4000000ad030000c50000000104000005000000c400ad03c4000104c5000104c500ad03c400ad03250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000c5000000ad030000c60000000104000005000000c500ad03c5000104c6000104c600ad03c500ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc500
+00000000250000000c00000004000000250000000c000000080000805600000030000000c6000000ad030000c80000000104000005000000c600ad03c6000104c8000104c800ad03c600ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000
+00c8000000ad030000c90000000104000005000000c800ad03c8000104c9000104c900ad03c800ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000c9000000ad030000ca0000000104000005000000c900ad03c9000104ca000104ca00
+ad03c900ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ca000000ad030000cb0000000104000005000000ca00ad03ca000104cb000104cb00ad03ca00ad03250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000cb000000ad030000cc0000000104000005000000cb00ad03cb000104cc000104cc00ad03cb00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c2000000000025000000
+0c00000004000000250000000c000000080000805600000030000000cc000000ad030000cd0000000104000005000000cc00ad03cc000104cd000104cd00ad03cc00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000cd000000ad0300
+00cf0000000104000005000000cd00ad03cd000104cf000104cf00ad03cd00ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000cf000000ad030000d00000000104000005000000cf00ad03cf000104d0000104d000ad03cf00ad032500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000d0000000ad030000d10000000104000005000000d000ad03d0000104d1000104d100ad03d000ad03250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000d1000000ad030000d20000000104000005000000d100ad03d1000104d2000104d200ad03d100ad03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b0840000238000000
+2c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000050000afc7e0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000
+000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003d00000096030000e9000000180400000400000040051040200d1040200dd03a4005d03a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c00
+0000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000005a00000058fcffffc50000004bfcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006f000000b3030000b7000000bf0300000100000000400d42
+00040dc26b00000058fcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb005c62060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000
+000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000640000008a000000c00300009d000000cb0300000100000000400d4200040dc2860000004bfcffff040000004c000000000000000000000000000000ffffffffffffffff540000004600690072
+006500060000000300000004000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000500039fcce0039fc000101011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000
+0004000000250000000c0000000500008057000000240000003d000000bb030000e9000000e9030000020000004005203d200d203d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000059000000d60300005c000000e20300000100000000400d4200040dc25500000035fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007374030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000006a000000d6030000ce000000e20300000100000000400d4200040dc26600000035fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030007332070000000800000007000000060000000700
+00000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000059000000e30300005c000000ef0300000100000000400d42
+00040dc25500000028fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005c2a030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000006a000000e3030000bd000000ef030000010000000040
+0d4200040dc26600000028fcffff0e0000004c000000000000000000000000000000ffffffffffffffff680000004d0041004a004f0052005f00460049005200450020003d002000310009000000070000000500000008000000070000000600000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000059000000f00300005c000000fc0300000100000000400d4200040dc2550000001bfcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000445f030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b00
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000006a000000f0030000c3000000fc0300000100000000400d4200040dc2660000001bfcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000046004f0052004500530054005f00460049005200450020003d0020003200335c060000000800000007
+0000000700000007000000070000000600000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000006b012bffa600c4002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000
+000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000006f0100001c00000015020000e000000005000000f016c001f016000e5021000e5021c001f016c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006b012bffa600c4003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800
+0000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000058010000050000002c020000f700000004000000f016000e5021000e5021c001f016c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002
+000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b443000052c30000264300004443bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000068012effa600c400250000000c000000
+0800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000006c01000019000000c3010000dd000000050000006c0119006c01dd00c301dd00c30119006c011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c0000
+0004000000250000000c000000080000805600000030000000c301000019000000c7010000dd00000005000000c3011900c301dd00c701dd00c7011900c3011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000c701000019000000cb01
+0000dd00000005000000c7011900c701dd00cb01dd00cb011900c7011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000cb01000019000000cf010000dd00000005000000cb011900cb01dd00cf01dd00cf011900cb011900250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000cf01000019000000d3010000dd00000005000000cf011900cf01dd00d301dd00d3011900cf011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d301000019000000d7010000dd00000005000000d3011900d301dd00d701dd00d7011900d3011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000
+000c000000080000805600000030000000d701000019000000dc010000dd00000005000000d7011900d701dd00dc01dd00dc011900d7011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000dc01000019000000e0010000dd0000000500
+0000dc011900dc01dd00e001dd00e0011900dc011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000e001000019000000e5010000dd00000005000000e0011900e001dd00e501dd00e5011900e0011900250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e501000019000000ea010000dd00000005000000e5011900e501dd00ea01dd00ea011900e5011900250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000ea01000019000000ee010000dd00000005000000ea011900ea01dd00ee01dd00ee011900ea011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000
+805600000030000000ee01000019000000f2010000dd00000005000000ee011900ee01dd00f201dd00f2011900ee011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000f201000019000000f6010000dd00000005000000f2011900f201
+dd00f601dd00f6011900f2011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f601000019000000fb010000dd00000005000000f6011900f601dd00fb01dd00fb011900f6011900250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000fb01000019000000ff010000dd00000005000000fb011900fb01dd00ff01dd00ff011900fb011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc600
+00000000250000000c00000004000000250000000c000000080000805600000030000000ff0100001900000004020000dd00000005000000ff011900ff01dd000402dd0004021900ff011900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000
+00040200001900000009020000dd00000005000000040219000402dd000902dd000902190004021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000009020000190000000d020000dd00000005000000090219000902dd000d02dd000d02
+190009021900250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000000d0200001900000011020000dd000000050000000d0219000d02dd001102dd00110219000d021900250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000110200001900000012020000dd00000005000000110219001102dd001202dd001202190011021900250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000068012effa600c4003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000
+0000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000550100000200000029020000f400000004000000c016d00d2021d00d20219001c0169001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00
+0000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000072010000ecffffff05020000dfffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000009b0100001f000000e30100002b000000
+0100000000400d4200040dc297010000ecffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb005c66060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000
+0000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e8000000790100002c00000005020000370000000100000000400d4200040dc275010000dfffffff1a0000004c000000000000000000000000000000ffffffffffffffff80
+000000480061007a006100720064006f0075007300440072006900760069006e00670043006f006e0064006900740069006f006e00730007000000060000000500000006000000040000000600000006000000060000000600000007000000040000000300000007000000030000000600000006000000070000000600000006000000060000000300000003000000030000000600000006000000060000000a00000010000000
+fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006801cdff0e02cdff00010101154001001000000004000000000000002100000008000000620000000c000000010000
+00110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000005501
+000027000000290200005500000002000000c016e0032021e003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000540000007101000042000000740100004e0000000100000000400d4200040dc26d010000c9ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020004c44030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000b40000008201000042000000e60100004e0000000100000000400d4200040dc27e010000c9ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000685c070000000800000007000000060000000700000007000000070000000700000003000000060000000300000007
+00000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000710100004f000000740100005b0000000100000000400d4200040dc26d010000bcffffff010000004c00000000000000000000
+0000000000ffffffffffffffff5000000020006362030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000820100004f000000d10100005b0000000100000000400d4200040dc27e010000bcffffff0d0000004c0000000000000000
+00000000000000ffffffffffffffff6800000052004f0043004b00460041004c004c00530020003d00200031006c0d070000000800000007000000070000000600000007000000060000000600000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b0000005400000054000000710100005c00000074010000680000000100000000400d4200040dc26d010000afffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000616e030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b00000054000000b8000000820100005c000000f6010000680000000100000000400d4200040dc27e010000afffffff120000004c000000000000000000000000000000ffffffffffffffff70000000530045005700450052005f0043004f004c004c00410050005300450020003d0020003300070000000700000009000000070000000700000006000000070000000800000006000000
+0600000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000710100006900000074010000750000000100000000400d4200040dc26d010000a2ffffff0100
+00004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc00000082010000690000000e020000750000000100000000400d4200040dc27e010000a2ffffff
+150000004c000000000000000000000000000000ffffffffffffffff78000000450041005200540048005100550041004b0045005f00440041004d0041004700450020003d0020003200105b0700000007000000070000000700000007000000080000000700000007000000070000000700000006000000070000000700000009000000070000000800000007000000030000000600000003000000060000000a000000100000
+00fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000710100007600000074010000820000000100000000400d4200040dc26d01000095ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010
+000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000008201000076000000d6010000820000000100000000400d4200040dc27e01000095ffffff0e0000004c000000000000000000000000000000ffffffffffffffff680000005300550042005300490044
+0045004e004300450020003d002000340007000000070000000700000007000000030000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000071
+01000083000000740100008f0000000100000000400d4200040dc26d01000088ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020008652030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000
+008201000083000000de0100008f0000000100000000400d4200040dc27e01000088ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000053004e004f0057005f0044005200490046005400530020003d0020003500bc2b0700000007000000080000000900000006000000070000000700000003000000060000000700000007000000030000000600000003000000060000000a0000001000
+0000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000007101000090000000740100009c0000000100000000400d4200040dc26d0100007bffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020003827030000000a000000
+10000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000008201000090000000ed0100009c0000000100000000400d4200040dc27e0100007bffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000530054004f0052004d00
+5f00440041004d0041004700450020003d0020003600070000000700000008000000070000000900000006000000070000000700000009000000070000000800000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000054000000710100009d00000074010000a90000000100000000400d4200040dc26d0100006effffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000a0000000820100009d000000d5010000a90000000100000000400d4200040dc27e0100006effffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000420055005200530054005f00500049005000450020003d002000370007000000070000000700000007000000070000000600000007000000030000000700000007000000030000000600000003000000060000000a
+00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000071010000aa00000074010000b60000000100000000400d4200040dc26d01000061ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000
+000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000082010000aa00000001020000b60000000100000000400d4200040dc27e01000061ffffff140000004c000000000000000000000000000000ffffffffffffffff7400000056004f004c
+00430041004e004f005f004500520055005000540049004f004e0020003d002000380007000000080000000600000007000000070000000700000008000000060000000700000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000071010000b700000074010000c30000000100000000400d4200040dc26d01000054ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000841d030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000082010000b7000000d6010000c30000000100000000400d4200040dc27e01000054ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000460041004c004c0049004e0047005f0049004300450020003d00200039002020060000000700000006000000060000000300000007000000
+0800000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000011015bfe9c0095002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000
+000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000150100001b010000b1010000b0010000050000005011b0115011001b101b001b101bb0115011b011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000011015bfe9c0095003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+2101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fe00000004010000c8010000c7010000040000005011001b101b001b101bb0115011b011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000087430000d1c300001c4300001543bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000e015efe9c009500250000000c000000080000802700000018000000040000
+0000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000120100001801000063010000ad01000005000000120118011201ad016301ad016301180112011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800
+00805600000030000000630100001801000067010000ad01000005000000630118016301ad016701ad016701180163011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000067010000180100006c010000ad010000050000006701180167
+01ad016c01ad016c01180167011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000006c0100001801000070010000ad010000050000006c0118016c01ad017001ad01700118016c011801250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000700100001801000075010000ad01000005000000700118017001ad017501ad017501180170011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd9
+0000000000250000000c00000004000000250000000c000000080000805600000030000000750100001801000079010000ad01000005000000750118017501ad017901ad017901180175011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000
+000079010000180100007d010000ad01000005000000790118017901ad017d01ad017d01180179011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000007d0100001801000081010000ad010000050000007d0118017d01ad018101ad0181
+0118017d011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000810100001801000086010000ad01000005000000810118018101ad018601ad018601180181011801250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000086010000180100008a010000ad01000005000000860118018601ad018a01ad018a01180186011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000
+000c00000004000000250000000c0000000800008056000000300000008a010000180100008e010000ad010000050000008a0118018a01ad018e01ad018e0118018a011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000008e0100001801
+000092010000ad010000050000008e0118018e01ad019201ad01920118018e011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000920100001801000096010000ad01000005000000920118019201ad019601ad01960118019201180125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000096010000180100009a010000ad01000005000000960118019601ad019a01ad019a01180196011801250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000009a010000180100009f010000ad010000050000009a0118019a01ad019f01ad019f0118019a011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c000000040000
+00250000000c0000000800008056000000300000009f01000018010000a4010000ad010000050000009f0118019f01ad01a401ad01a40118019f011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000a401000018010000a8010000ad01
+000005000000a4011801a401ad01a801ad01a8011801a4011801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000a801000018010000ac010000ad01000005000000a8011801a801ad01ac01ad01ac011801a8011801250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000018010000ae010000ad01000005000000ac011801ac01ad01ae01ad01ae011801ac011801250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c000000
+07000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000e015efe9c0095003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+00380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fb00000001010000c5010000c4010000040000002011d01ae01ad01ae01a801120118011250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000018010000edfeffffa1010000e0feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000
+9c0000003c0100001e010000840100002a0100000100000000400d4200040dc238010000edfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00d2b7060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b0000001000000000000000000000
+00160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac000000310100002b01000090010000360100000100000000400d4200040dc22d010000e0feffff100000004c00000000
+0000000000000000000000ffffffffffffffff6c0000004f0062006a0065006300740073004f006e0054006800650052006f0061006400080000000600000004000000060000000600000003000000060000000800000006000000050000000600000006000000070000000600000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000e01cefeaa01cefe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000fb00000026010000c501000054010000020000002011d013e01ad013250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000017010000410100001a0100004d0100000100000000400d42
+00040dc213010000cafeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000002030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000028010000410100008c0100004d010000010000000040
+0d4200040dc224010000cafeffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000170100004e0100001a0100005a0100000100000000400d4200040dc213010000bdfeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000d2b7030000000a00000010000000fcffffff0b0000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000280100004e010000780100005a0100000100000000400d4200040dc224010000bdfeffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000053004800450044005f004c004f004100440020003d
+00200031007373070000000700000007000000070000000600000006000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000170100005b0100001a010000670100
+000100000000400d4200040dc213010000b0feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020008f17030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000280100005b010000aa01000067
+0100000100000000400d4200040dc224010000b0feffff150000004c000000000000000000000000000000ffffffffffffffff78000000500041005200540053005f004f0046005f00560045004800490043004c004500530020003d002000320000000700000007000000070000000700000007000000060000000800000006000000060000000700000007000000070000000300000007000000060000000700000007000000
+030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000017010000680100001a010000740100000100000000400d4200040dc213010000a3feffff010000004c000000000000000000000000000000ffff
+ffffffffffff5000000020001d10030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000028010000680100009a010000740100000100000000400d4200040dc224010000a3feffff120000004c000000000000000000000000000000
+ffffffffffffffff70000000500041005200540053005f004f0046005f005400590052004500530020003d00200033000700000007000000070000000700000007000000060000000800000006000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000017010000750100001a010000810100000100000000400d4200040dc21301000096feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000280100007501000082010000810100000100000000400d4200040dc22401000096feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004200490047005f004f0042004a00450043005400530020003d0020003400000007000000030000000800000006000000080000
+00070000000500000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000017010000820100001a0100008e0100000100000000400d4200040dc21301000089
+feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000925030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac00000028010000820100008a0100008e0100000100000000400d4200040dc2240100
+0089feffff100000004c000000000000000000000000000000ffffffffffffffff6c000000460041004c004c0045004e005f005400520045004500530020003d0020003500060000000700000006000000060000000700000007000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000170100008f0100001a0100009b0100000100000000400d4200040dc2130100007cfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020009324030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000
+000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000094000000280100008f010000710100009b0100000100000000400d4200040dc2240100007cfeffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004800550042005f00430041005000530020003d00200036000700000007000000070000000600
+000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000170100009c0100001a010000a80100000100000000400d4200040dc2130100006ffeffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000280100009c0100009f010000a80100000100000000400d4200040dc2240100006ffeffff1400
+00004c000000000000000000000000000000ffffffffffffffff74000000570041004900540049004e0047005f00560045004800490043004c004500530020003d002000370009000000070000000300000007000000030000000700000008000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c
+000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001e01dcfd900072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080
+560000003000000022010000bd010000b20100002f020000050000002012d01b2012f022201bf022201bd01b2012d01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000
+000210c0db00000000c0bfc0ff0b400040180000000c000000010000001e01dcfd900072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c000000050000805600
+00002c0000000b010000a6010000c901000046020000040000002012f022201bf022201bd01b2012d01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000
+00000000808d43004008c4000010430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001b01dffd90007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001f010000ba010000
+6a0100002c020000050000001f01ba011f012c026a012c026a01ba011f01ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000006a010000ba0100006e0100002c020000050000006a01ba016a012c026e012c026e01ba016a01ba01250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000006e010000ba010000720100002c020000050000006e01ba016e012c0272012c027201ba016e01ba01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000072010000ba010000760100002c020000050000007201ba0172012c0276012c027601ba017201ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c0000000400000025
+0000000c00000008000080560000003000000076010000ba0100007a0100002c020000050000007601ba0176012c027a012c027a01ba017601ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000007a010000ba0100007e0100002c020000
+050000007a01ba017a012c027e012c027e01ba017a01ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000007e010000ba010000820100002c020000050000007e01ba017e012c0282012c028201ba017e01ba01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000082010000ba010000860100002c020000050000008201ba0182012c0286012c028601ba018201ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000086010000ba0100008a0100002c020000050000008601ba0186012c028a012c028a01ba018601ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008
+00008056000000300000008a010000ba0100008e0100002c020000050000008a01ba018a012c028e012c028e01ba018a01ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000008e010000ba010000910100002c020000050000008e01ba01
+8e012c0291012c029101ba018e01ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000091010000ba010000940100002c020000050000009101ba0191012c0294012c029401ba019101ba01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000094010000ba010000970100002c020000050000009401ba0194012c0297012c029701ba019401ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0
+ca0000000000250000000c00000004000000250000000c00000008000080560000003000000097010000ba0100009b0100002c020000050000009701ba0197012c029b012c029b01ba019701ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030
+0000009b010000ba0100009f0100002c020000050000009b01ba019b012c029f012c029f01ba019b01ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009f010000ba010000a30100002c020000050000009f01ba019f012c02a3012c02
+a301ba019f01ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000a3010000ba010000a70100002c02000005000000a301ba01a3012c02a7012c02a701ba01a301ba01250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000a7010000ba010000ab0100002c02000005000000a701ba01a7012c02ab012c02ab01ba01a701ba01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf00000000002500
+00000c00000004000000250000000c000000080000805600000030000000ab010000ba010000af0100002c02000005000000ab01ba01ab012c02af012c02af01ba01ab01ba01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01
+00000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001b01dffd900072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000000400000025000000
+0c00000005000080560000002c00000008010000a3010000c60100004302000004000000f011c022f01ac022f01aa01bf011a01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000250100004bfeffffa20100003efeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000043010000c00100008b010000cc0100000100000000400d4200040dc23f0100004bfeffff0d0000004c0000000000000000
+00000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac00000036010000cd01000099010000d80100000100000000400d4200040dc2320100003efeffff100000004c000000000000000000000000000000ffffffffffffffff6c00000041006e0069006d0061006c0073004f006e0052006f006100640077006100
+7900070000000600000003000000090000000600000003000000060000000800000006000000070000000600000006000000060000000900000006000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000000000
+0000ff0840010324000000180000000210c0db02000000004000001b012cfeab012cfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000
+00000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000008010000c8010000c6010000f601000002000000f011f01df01af01d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024010000e301000027010000ef0100000100000000400d4200040dc22001000028feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a
+00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000035010000e301000099010000ef0100000100000000400d4200040dc23101000028feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f
+0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b000000540000005400000024010000f001000027010000fc0100000100000000400d4200040dc2200100001bfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000ac00000035010000f001000094010000fc0100000100000000400d4200040dc2310100001bfeffff100000004c000000000000000000000000000000ffffffffffffffff6c000000570049004c0044005f0041004e0049004d0041004c00530020003d0020003100090000000300000006000000070000000600000007000000070000000300000009000000070000000600
+000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024010000fd01000027010000090200000100000000400d4200040dc2200100000efeffff010000004c0000000000000000000000
+00000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000035010000fd010000ab010000090200000100000000400d4200040dc2310100000efeffff130000004c000000000000000000
+000000000000ffffffffffffffff7400000048004500520044005f004f0046005f0041004e0049004d0041004c00530020003d00200032000000070000000700000007000000070000000600000008000000060000000600000007000000070000000300000009000000070000000600000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000004000000
+0b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240100000a02000027010000160200000100000000400d4200040dc22001000001feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005e25030000000a00000010000000fcffffff0b0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000400
+00000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000350100000a0200009e010000160200000100000000400d4200040dc23101000001feffff110000004c000000000000000000000000000000ffffffffffffffff7000000053004d0041004c004c005f0041004e0049004d0041004c00530020003d0020003300000007
+000000090000000700000006000000060000000600000007000000070000000300000009000000070000000600000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024010000170200
+0027010000230200000100000000400d4200040dc220010000f4fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003501000017
+0200009e010000230200000100000000400d4200040dc231010000f4fdffff110000004c000000000000000000000000000000ffffffffffffffff700000004c0041005200470045005f0041004e0049004d0041004c00530020003d002000340000000600000007000000070000000800000007000000060000000700000007000000030000000900000007000000060000000700000003000000060000000300000006000000
+0a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000190167fdd40061002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000
+0001000000250000000c0000000800008056000000300000001d01000043020000f1010000a402000005000000d0113024d011402a101f402a101f3024d0113024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000000000
+00000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000190167fdd40061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004
+000000250000000c00000005000080560000002c000000060100002c02000008020000bb02000004000000d011402a101f402a101f3024d0113024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b0840020158000000
+4c0000000210c0db04000000040000000000000000008b43008025c4000054430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000016016afdd4006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000
+8056000000300000001a0100004002000088010000a1020000050000001a0140021a01a1028801a102880140021a014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000088010000400200008e010000a102000005000000880140028801
+a1028e01a1028e01400288014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008e0100004002000093010000a1020000050000008e0140028e01a1029301a102930140028e014002250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000930100004002000098010000a102000005000000930140029301a1029801a1029801400293014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc00
+00000000250000000c00000004000000250000000c00000008000080560000003000000098010000400200009d010000a102000005000000980140029801a1029d01a1029d01400298014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000
+009d01000040020000a3010000a1020000050000009d0140029d01a102a301a102a30140029d014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a301000040020000a8010000a102000005000000a3014002a301a102a801a102a801
+4002a3014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a801000040020000ae010000a102000005000000a8014002a801a102ae01a102ae014002a8014002250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000ae01000040020000b5010000a102000005000000ae014002ae01a102b501a102b5014002ae014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d2000000000025000000
+0c00000004000000250000000c000000080000805600000030000000b501000040020000bb010000a102000005000000b5014002b501a102bb01a102bb014002b5014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000bb010000400200
+00c0010000a102000005000000bb014002bb01a102c001a102c0014002bb014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c001000040020000c5010000a102000005000000c0014002c001a102c501a102c5014002c00140022500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c501000040020000cb010000a102000005000000c5014002c501a102cb01a102cb014002c5014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000cb01000040020000d0010000a102000005000000cb014002cb01a102d001a102d0014002cb014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000
+250000000c000000080000805600000030000000d001000040020000d6010000a102000005000000d0014002d001a102d601a102d6014002d0014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000d601000040020000dc010000a10200
+0005000000d6014002d601a102dc01a102dc014002d6014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000dc01000040020000e3010000a102000005000000dc014002dc01a102e301a102e3014002dc014002250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000e301000040020000e8010000a102000005000000e3014002e301a102e801a102e8014002e3014002250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000e801000040020000ed010000a102000005000000e8014002e801a102ed01a102ed014002e8014002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000
+080000805600000030000000ed01000040020000ee010000a102000005000000ed014002ed01a102ee01a102ee014002ed014002250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0b400040180000000c0000000100000016016afdd40061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000301
+00002902000005020000b802000004000000a011102ae01e102ae01e0024a0110024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c000000000000001e0000001800000020010000c5fdffffe1010000b8fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006001000046020000a8010000520200000100000000400d4200040dc25c010000c5fdffff0d0000004c000000000000000000000000000000ffffffffffffffff680000
+00ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000005601000053020000b30100005e0200000100000000400d4200040dc252010000b8fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000500065006f0070006c0065004f006e0052006f0061006400770061007900000007000000060000000600000006000000
+03000000060000000800000006000000070000000600000006000000060000000900000006000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000
+00004000001601a6fdea01a6fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000
+000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000030100004e020000050200007c02000002000000a0115026e01e5026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c
+000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001f0100006902000022010000750200000100000000400d4200040dc21b010000a2fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000300100006902000094010000750200000100000000400d4200040dc22c010000a2fdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d
+0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000
+001f0100007602000022010000820200000100000000400d4200040dc21b01000095fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8
+0000003001000076020000c4010000820200000100000000400d4200040dc22c01000095fdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004300480049004c004400520045004e005f004f004e005f0052004f004100440057004100590020003d00200031000000070000000700000003000000060000000700000007000000070000000700000006000000080000000700000006000000
+07000000080000000700000007000000090000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001f01000083020000220100008f0200000100000000400d4200040dc21b01
+000088fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000003001000083020000c40100008f0200000100000000400d4200040dc2
+2c01000088fdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004300590043004c0049005300540053005f004f004e005f0052004f004100440057004100590020003d0020003200000007000000070000000700000006000000030000000700000007000000070000000600000008000000070000000600000007000000080000000700000007000000090000000700000007000000030000
+000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001f01000090020000220100009c0200000100000000400d4200040dc21b0100007bfdffff010000004c000000000000000000000000000000ffffffffff
+ffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f40000003001000090020000ea0100009c0200000100000000400d4200040dc22c0100007bfdffff1c0000004c000000000000000000000000000000ffffff
+ffffffffff840000004d004f0054004f0052005f004300590043004c004900530054005f004f004e005f0052004f004100440057004100590020003d0020003300090000000800000007000000080000000700000006000000070000000700000007000000060000000300000007000000070000000600000008000000070000000600000007000000080000000700000007000000090000000700000007000000030000000600
+000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000220104fde20054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+000000250000000c00000001000000250000000c00000008000080560000003000000026010000b30200000802000007030000050000006012302b60127030802070308020302b6012302b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000220104fde20054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc0000000000000000000000000
+00250000000c00000004000000250000000c00000005000080560000002c0000000f0100009c0200001f0200001e0300000400000060127030802070308020302b6012302b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d
+462b08400201580000004c0000000210c0db04000000040000000000000000808f4300403ec4000062430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001f0107fde2005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c0000000400000025
+0000000c00000008000080560000003000000023010000b00200009901000004030000050000002301b00223010403990104039901b0022301b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000099010000b00200009e01000004030000
+050000009901b002990104039e0104039e01b0029901b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000009e010000b0020000a401000004030000050000009e01b0029e010403a4010403a401b0029e01b002250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a4010000b0020000aa0100000403000005000000a401b002a4010403aa010403aa01b002a401b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000aa010000b0020000af0100000403000005000000aa01b002aa010403af010403af01b002aa01b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000af010000b0020000b50100000403000005000000af01b002af010403b5010403b501b002af01b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000b5010000b0020000bb0100000403000005000000b501b002
+b5010403bb010403bb01b002b501b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000bb010000b0020000c10100000403000005000000bb01b002bb010403c1010403c101b002bb01b002250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000c1010000b0020000c80100000403000005000000c101b002c1010403c8010403c801b002c101b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6
+d20000000000250000000c00000004000000250000000c000000080000805600000030000000c8010000b0020000ce0100000403000005000000c801b002c8010403ce010403ce01b002c801b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030
+000000ce010000b0020000d20100000403000005000000ce01b002ce010403d2010403d201b002ce01b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d2010000b0020000d70100000403000005000000d201b002d2010403d7010403
+d701b002d201b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000d7010000b0020000dd0100000403000005000000d701b002d7010403dd010403dd01b002d701b002250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000dd010000b0020000e20100000403000005000000dd01b002dd010403e2010403e201b002dd01b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc900000000002500
+00000c00000004000000250000000c000000080000805600000030000000e2010000b0020000e80100000403000005000000e201b002e2010403e8010403e801b002e201b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000e8010000b0
+020000ef0100000403000005000000e801b002e8010403ef010403ef01b002e801b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000ef010000b0020000f60100000403000005000000ef01b002ef010403f6010403f601b002ef01b002
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000f6010000b0020000fc0100000403000005000000f601b002f6010403fc010403fc01b002f601b002250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000fc010000b0020000010200000403000005000000fc01b002fc010403010204030102b002fc01b002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c0000000400
+0000250000000c00000008000080560000003000000001020000b00200000502000004030000050000000102b00201020403050204030502b0020102b002250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000
+0000000210c0db00000000000000ff0b400040180000000c000000010000001f0107fde20054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+560000002c0000000c010000990200001c0200001b0300000400000030124030502040305020002b3012002b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c000000000000001e000000180000002901000055fdfffff801000048fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000070010000b6020000b8010000c20200000100000000400d4200040dc26c01000055fdffff0d0000004c000000000000000000000000000000ff
+ffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000
+000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b80000005f010000c3020000c9010000ce0200000100000000400d4200040dc25b01000048fdffff120000004c000000000000000000000000000000ffffffffffffffff70000000420072006f006b0065006e0044006f0077006e00560065006800690063006c00650073000700
+000004000000060000000600000006000000060000000700000006000000090000000600000007000000060000000600000003000000060000000300000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000000000ff0840010324000000180000000210c0db02000000004000001f0136fd010236fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000
+3800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000c010000be0200001c020000ec020000020000003012502d5020502d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000028010000d90200002b010000e50200000100000000400d4200040dc22401000032fdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003
+0000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000039010000d90200009d010000e50200000100000000400d4200040dc23501000032fdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f
+0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b000000540000005400000028010000e60200002b010000f20200000100000000400d4200040dc22401000025fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b000000540000000801000039010000e602000001020000f20200000100000000400d4200040dc23501000025fdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000420052004f004b0045004e005f0044004f0057004e005f00560045004800490043004c0045005f004200550052004e0049004e00470020003d00200031000000070000000700
+000008000000070000000700000007000000060000000700000008000000090000000700000006000000070000000700000007000000030000000700000006000000070000000600000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000028010000f30200002b010000ff0200000100000000400d4200040dc22401000018fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000039010000f3020000f1010000ff0200000100000000400d4200040dc23501000018fdffff1d0000004c000000000000000000000000000000ffffffffffffffff88000000420052004f004b0045004e005f0044004f0057004e005f0055004e004c00490054005f00560045004800490043004c00450020003d
+0020003200000007000000070000000800000007000000070000000700000006000000070000000800000009000000070000000600000007000000070000000600000003000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000
+454d462b0a4000c01c00000010000000c0bfc0ff0100000034017bfcd9007b002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000038010000150300001102000090030000050000
+008013503180130039102100391021503180135031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100
+000034017bfcd9007b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000021010000fe02000028020000a70300000400000080
+130039102100391021503180135031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000809843008060c4000059430000f642bed7e8ffe3f2fcff
+bed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000031017efcd9007b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000003501000012030000a60100008d030000050000003501120335018d03a6018d03a60112
+0335011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a601000012030000ac0100008d03000005000000a6011203a6018d03ac018d03ac011203a6011203250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000012030000b10100008d03000005000000ac011203ac018d03b1018d03b1011203ac011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c
+00000004000000250000000c000000080000805600000030000000b101000012030000b60100008d03000005000000b1011203b1018d03b6018d03b6011203b1011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000b601000012030000
+bb0100008d03000005000000b6011203b6018d03bb018d03bb011203b6011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000bb01000012030000c10100008d03000005000000bb011203bb018d03c1018d03c1011203bb011203250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000c101000012030000c70100008d03000005000000c1011203c1018d03c7018d03c7011203c1011203250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000c701000012030000cc0100008d03000005000000c7011203c7018d03cc018d03cc011203c7011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c0000000400000025
+0000000c000000080000805600000030000000cc01000012030000d20100008d03000005000000cc011203cc018d03d2018d03d2011203cc011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000d201000012030000d70100008d030000
+05000000d2011203d2018d03d7018d03d7011203d2011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000d701000012030000dc0100008d03000005000000d7011203d7018d03dc018d03dc011203d7011203250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000dc01000012030000e10100008d03000005000000dc011203dc018d03e1018d03e1011203dc011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e101000012030000e40100008d03000005000000e1011203e1018d03e4018d03e4011203e1011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000e401000012030000ea0100008d03000005000000e4011203e4018d03ea018d03ea011203e4011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ea01000012030000ef0100008d03000005000000ea011203
+ea018d03ef018d03ef011203ea011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000ef01000012030000f50100008d03000005000000ef011203ef018d03f5018d03f5011203ef011203250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f501000012030000fc0100008d03000005000000f5011203f5018d03fc018d03fc011203f5011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdb
+c40000000000250000000c00000004000000250000000c000000080000805600000030000000fc01000012030000020200008d03000005000000fc011203fc018d0302028d0302021203fc011203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030
+0000000202000012030000080200008d030000050000000202120302028d0308028d030802120302021203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000008020000120300000d0200008d030000050000000802120308028d030d028d03
+0d02120308021203250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000d020000120300000e0200008d030000050000000d0212030d028d030e028d030e0212030d021203250000000c00000008000080250000000c00000000000080280000
+000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000031017efcd9007b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001e010000fb02000025020000a4030000040000005013d038e020d038e020203150132031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003b010000f3fcffff01020000e6fcffff160000000c00000001000000120000000c000000010000001b0000001000000000000000000000
+00160000000c00000000000000540000009c0000007e01000018030000c6010000240300000100000000400d4200040dc27a010000f3fcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000000600000009000000060000000300000006000000030000000300000006000000060000000600
+00001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000080100004701000025030000fd010000300300000100000000400d4200040dc2
+43010000e6fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000052006500730063007500650041006e0064005200650063006f00760065007200790057006f0072006b0049006e00500072006f00670072006500730073000000070000000600000006000000060000000600000006000000070000000600000006000000070000000600000006000000060000000700000006000000040000
+000500000009000000060000000400000006000000030000000600000007000000040000000600000006000000040000000600000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840
+010324000000180000000210c0db02000000004000003101d4fc0a02d4fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001e01000020030000250200004e0300000200000050137033e0207033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003a0100003b0300003d010000470300000100000000400d4200040dc236010000d0fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000
+0000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004b0100003b030000af010000470300000100000000400d4200040dc247010000d0fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000
+450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000540000003a010000480300003d010000540300000100000000400d4200040dc236010000c3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000d00000004b01000048030000d8010000540300000100000000400d4200040dc247010000c3fcffff160000004c000000000000000000000000000000ffffffffffffffff7800000045004d0045005200470045004e00430059005f00560045004800490043004c004500530020003d00200031000700000009000000070000000700000008000000070000000700000007000000070000
+00060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003a010000550300003d010000610300000100000000
+400d4200040dc236010000b6fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000004b010000550300000202000061030000010000
+0000400d4200040dc247010000b6fcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000005200450053004300550045005f00480045004c00490043004f0050005400450052005f004c0041004e00440049004e00470020003d0020003200000007000000070000000700000007000000070000000700000006000000070000000700000006000000030000000700000008000000070000000700
+000007000000070000000600000006000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003a010000620300003d0100006e030000
+0100000000400d4200040dc236010000a9fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000004b01000062030000f00100006e03
+00000100000000400d4200040dc247010000a9fcffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000050004f004c004900430045005f00410043005400490056004900540059005f004f004e0047004f0049004e00470020003d00200033000000070000000800000006000000030000000700000007000000060000000700000007000000070000000300000007000000030000000700000007
+0000000600000008000000070000000800000008000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003a0100006f0300003d0100007b0300000100000000400d
+4200040dc2360100009cfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000004b0100006f0300000a0200007b0300000100000000
+400d4200040dc2470100009cfcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004d00450044004900430041004c005f0045004d0045005200470045004e00430059005f004f004e0047004f0049004e00470020003d00200034000000090000000700000007000000030000000700000007000000060000000600000007000000090000000700000007000000080000000700000007000000
+07000000070000000600000008000000070000000800000008000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003a0100007c0300003d010000880300000100
+000000400d4200040dc2360100008ffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100004b0100007c0300000d02000088030000
+0100000000400d4200040dc2470100008ffcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000004300480049004c0044005f0041004200440055004300540049004f004e005f0049004e005f00500052004f004700520045005300530020003d00200035000000070000000700000003000000060000000700000006000000070000000700000007000000070000000700000007000000030000
+000800000007000000060000000300000007000000060000000700000007000000080000000800000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003b01f0fb41017f002100000008000000620000000c0000000100
+0000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003f0100009c030000800200001b04000005000000f013c039f013b0410028b0410028c039f013c039250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003b01f0fb41017f003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002801000085030000970200003204000004000000f013b0410028b0410028c039f013c039250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000009c4300a081c40080a0430000fe42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200
+0000010000003801f3fb41017f00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000003c01000099030000e301000018040000050000003c0199033c011804e3011804e30199033c019903250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000e301000099030000eb0100001804000005000000e3019903e3011804eb011804eb019903e3019903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000
+080000805600000030000000eb01000099030000f40100001804000005000000eb019903eb011804f4011804f4019903eb019903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000f401000099030000fe0100001804000005000000f40199
+03f4011804fe011804fe019903f4019903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000fe01000099030000070200001804000005000000fe019903fe0118040702180407029903fe019903250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000007020000990300000f020000180400000500000007029903070218040f0218040f02990307029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6
+e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000000f020000990300001702000018040000050000000f0299030f02180417021804170299030f029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000
+3000000017020000990300002102000018040000050000001702990317021804210218042102990317029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000021020000990300002a020000180400000500000021029903210218042a0218
+042a02990321029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c0000000800008056000000300000002a020000990300002f02000018040000050000002a0299032a0218042f0218042f0299032a029903250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c0000000800008056000000300000002f020000990300003502000018040000050000002f0299032f02180435021804350299032f029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf000000000025
+0000000c00000004000000250000000c00000008000080560000003000000035020000990300003b020000180400000500000035029903350218043b0218043b02990335029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000003b020000
+990300004302000018040000050000003b0299033b02180443021804430299033b029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000043020000990300004b020000180400000500000043029903430218044b0218044b029903430299
+03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000004b020000990300005302000018040000050000004b0299034b02180453021804530299034b029903250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000053020000990300005d020000180400000500000053029903530218045d0218045d02990353029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004
+000000250000000c0000000800008056000000300000005d020000990300006702000018040000050000005d0299035d02180467021804670299035d029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000067020000990300006f020000
+180400000500000067029903670218046f0218046f02990367029903250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000006f020000990300007802000018040000050000006f0299036f02180478021804780299036f029903250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000078020000990300007d020000180400000500000078029903780218047d0218047d02990378029903250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00
+000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003801f3fb41017f003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000
+000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002501000082030000940200002f04000004000000c0138041d0278041d0279039c0139039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000
+280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000420100006cfcffff700200005ffcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400
+00009c000000b90100009f03000001020000ab0300000100000000400d4200040dc2b50100006cfcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000
+000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b4000000ad010000ac0300000c020000b70300000100000000400d4200040dc2a90100005ffcffff110000004c0000
+00000000000000000000000000ffffffffffffffff7000000052006500670075006c00610074006f00720079004d00650061007300750072006500000007000000060000000600000006000000030000000600000003000000060000000400000005000000090000000600000006000000060000000600000004000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00
+000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000038014dfc79024dfc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a
+0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000025010000a703000094020000d503000002000000c013e03bd027e03b25000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000041010000c203000044010000ce03
+00000100000000400d4200040dc23d01000049fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000052010000c2030000b6010000
+ce0300000100000000400d4200040dc24e01000049fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a000000100000
+00fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000041010000cf03000044010000db0300000100000000400d4200040dc23d0100003cfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010
+000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000052010000cf030000c0010000db0300000100000000400d4200040dc24e0100003cfcffff120000004c000000000000000000000000000000ffffffffffffffff700000005300450043005500520049
+00540059005f0041004c0045005200540020003d00200031000700000007000000070000000700000007000000030000000700000007000000060000000700000006000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b000000540000005400000041010000dc03000044010000e80300000100000000400d4200040dc23d0100002ffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000d000000052010000dc030000dc010000e80300000100000000400d4200040dc24e0100002ffcffff160000004c000000000000000000000000000000ffffffffffffffff7800000043004f004e0054004100470049004f00550053005f00440049005300450041005300450020003d0020003200070000000800000007000000070000000700000008000000030000000800
+000007000000070000000600000007000000030000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000041010000e903000044010000f5030000
+0100000000400d4200040dc23d01000022fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000052010000e9030000bd010000f503
+00000100000000400d4200040dc24e01000022fcffff110000004c000000000000000000000000000000ffffffffffffffff7000000045004e005600490052004f004e004d0045004e00540041004c0020003d0020003300000007000000070000000700000003000000070000000800000007000000090000000700000007000000070000000700000006000000030000000600000003000000060000000a00000010000000fc
+ffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000041010000f603000044010000020400000100000000400d4200040dc23d01000015fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000
+00fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a000000052010000f6030000ac010000020400000100000000400d4200040dc24e01000015fcffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000053004d004f0047005f0041004c
+0045005200540020003d002000340007000000090000000800000008000000060000000700000006000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000410100
+0003040000440100000f0400000100000000400d4200040dc23d01000008fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000052
+010000030400000a0200000f0400000100000000400d4200040dc24e01000008fcffff1d0000004c000000000000000000000000000000ffffffffffffffff88000000420041005400430048005f0053004500520056004900430045005f0049004e005f00500052004f004700520045005300530020003d0020003500000007000000070000000700000007000000070000000600000007000000070000000700000007000000
+030000000700000007000000060000000300000007000000060000000700000007000000080000000800000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400
+00004101000010040000440100001c0400000100000000400d4200040dc23d010000fbfbffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000
+5c0100005201000010040000790200001c0400000100000000400d4200040dc24e010000fbfbffff2d0000004c000000000000000000000000000000ffffffffffffffffa800000052004f00410044005f0043004c004f005300450044005f00420059005f005400480045005f0052004500470055004c00410054004f00520059005f0041005500540048004f0052004900540049004500530020003d00200036000000070000
+0008000000070000000700000006000000070000000600000008000000070000000700000007000000060000000700000007000000060000000700000007000000070000000600000007000000070000000800000007000000060000000700000007000000080000000700000007000000060000000700000007000000070000000700000008000000070000000300000007000000030000000700000007000000030000000600
+000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000560250ff8c008c002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+000000250000000c00000001000000250000000c0000000800008056000000300000005a0200002f000000e6020000bb00000005000000a025f002a025b00b602eb00b602ef002a025f002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000560250ff8c008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc0000000000000000000000000
+00250000000c00000004000000250000000c00000005000080560000002c0000004302000018000000fd020000d200000004000000a025b00b602eb00b602ef002a025f002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d
+462b08400201580000004c0000000210c0db04000000040000000000000000c0144400002dc300000c4300000c43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000530253ff8c008c00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c0000000400000025
+0000000c000000080000805600000030000000570200002c000000a0020000b80000000500000057022c005702b800a002b800a0022c0057022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a00200002c000000a4020000b8000000
+05000000a0022c00a002b800a402b800a4022c00a0022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000a40200002c000000a7020000b800000005000000a4022c00a402b800a702b800a7022c00a4022c00250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000a70200002c000000ab020000b800000005000000a7022c00a702b800ab02b800ab022c00a7022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000ab0200002c000000ae020000b800000005000000ab022c00ab02b800ae02b800ae022c00ab022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000ae0200002c000000b2020000b800000005000000ae022c00ae02b800b202b800b2022c00ae022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000b20200002c000000b5020000b800000005000000b2022c00
+b202b800b502b800b5022c00b2022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000b50200002c000000b9020000b800000005000000b5022c00b502b800b902b800b9022c00b5022c00250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000b90200002c000000bd020000b800000005000000b9022c00b902b800bd02b800bd022c00b9022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6
+d20000000000250000000c00000004000000250000000c000000080000805600000030000000bd0200002c000000c1020000b800000005000000bd022c00bd02b800c102b800c1022c00bd022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030
+000000c10200002c000000c4020000b800000005000000c1022c00c102b800c402b800c4022c00c1022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c40200002c000000c7020000b800000005000000c4022c00c402b800c702b800
+c7022c00c4022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000c70200002c000000ca020000b800000005000000c7022c00c702b800ca02b800ca022c00c7022c00250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000ca0200002c000000ce020000b800000005000000ca022c00ca02b800ce02b800ce022c00ca022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc900000000002500
+00000c00000004000000250000000c000000080000805600000030000000ce0200002c000000d1020000b800000005000000ce022c00ce02b800d102b800d1022c00ce022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000d10200002c
+000000d5020000b800000005000000d1022c00d102b800d502b800d5022c00d1022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000d50200002c000000da020000b800000005000000d5022c00d502b800da02b800da022c00d5022c00
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000da0200002c000000dd020000b800000005000000da022c00da02b800dd02b800dd022c00da022c00250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000dd0200002c000000e1020000b800000005000000dd022c00dd02b800e102b800e1022c00dd022c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c0000000400
+0000250000000c000000080000805600000030000000e10200002c000000e3020000b800000005000000e1022c00e102b800e302b800e3022c00e1022c00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000
+0000000210c0db00000000000000ff0b400040180000000c00000001000000530253ff8c008c003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+560000002c0000004002000015000000fa020000cf000000040000007025800b302e800b302ec0027025c002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c000000000000001e000000180000005d020000d9ffffffd6020000ccffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000007902000032000000c10200003e0000000100000000400d4200040dc275020000d9ffffff0d0000004c000000000000000000000000000000ff
+ffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000
+000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000dc0000005b0200003f000000e00200004a0000000100000000400d4200040dc257020000ccffffff180000004c000000000000000000000000000000ffffffffffffffff7c000000450078007400720065006d006500570065006100740068006500720043006f006e0064006900
+740069006f006e0073000700000006000000030000000400000006000000090000000600000009000000060000000600000003000000060000000600000004000000070000000600000006000000060000000300000003000000030000000600000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c00000002
+10c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005302baffdf02baff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000400200003a000000fa020000680000000200000070251005302e1005250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c020000550000005f020000610000000100000000400d4200040dc258020000b6ffffff01
+0000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000006d02000055000000d1020000610000000100000000400d4200040dc269020000b6ffff
+ff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000004
+0000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c020000620000005f0200006e0000000100000000400d4200040dc258020000a9ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000006d02000062000000d20200006e0000000100000000400d4200040dc269020000a9ffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000005300540052004f004e0047005f00570049004e004400530020003d00200031000700
+00000700000007000000080000000700000008000000060000000900000003000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c0200006f0000005f020000
+7b0000000100000000400d4200040dc2580200009cffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000006d0200006f000000d402
+00007b0000000100000000400d4200040dc2690200009cffffff110000004c000000000000000000000000000000ffffffffffffffff70000000440041004d004100470049004e0047005f004800410049004c0020003d0020003200000007000000070000000900000007000000080000000300000007000000080000000600000007000000070000000300000006000000030000000600000003000000060000000a00000010
+000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c0200007c0000005f020000880000000100000000400d4200040dc2580200008fffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000
+0010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000006d0200007c000000ba020000880000000100000000400d4200040dc2690200008fffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000480055005200520049
+00430041004e00450020003d00200033000000070000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c0200
+00890000005f020000950000000100000000400d4200040dc25802000082ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000006d
+02000089000000d6020000950000000100000000400d4200040dc26902000082ffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000005400480055004e00440045005200530054004f0052004d0020003d0020003400070000000700000007000000070000000700000007000000070000000700000007000000080000000700000009000000030000000600000003000000060000000a000000
+10000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c020000960000005f020000a20000000100000000400d4200040dc25802000075ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00
+000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000900000006d02000096000000b2020000a20000000100000000400d4200040dc26902000075ffffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000054004f0052004e00
+410044004f0020003d0020003500000007000000080000000700000007000000070000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005c020000a30000005f020000af00
+00000100000000400d4200040dc25802000068ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000900000006d020000a3000000aa020000
+af0000000100000000400d4200040dc26902000068ffffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000042004c0049005a0041005200440020003d0020003600000007000000060000000300000006000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c000000200000
+00454d462b0a4000c01c00000010000000c0bfc0ff01000000c8014efe4301a6002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000cc010000170100000f030000bd0100000500
+0000c01c7011c01cd01bf030d01bf0307011c01c7011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001
+000000c8014efe4301a6003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b50100000001000026030000d401000004000000
+c01cd01bf030d01bf0307011c01c7011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080e2430080d7c30080a14300002643bed7e8ffe3f2fc
+ffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000c50151fe4301a600250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000c90100001401000071020000ba01000005000000c9011401c901ba017102ba017102
+1401c9011401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000710200001401000079020000ba01000005000000710214017102ba017902ba017902140171021401250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000790200001401000082020000ba01000005000000790214017902ba018202ba018202140179021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd000000000025000000
+0c00000004000000250000000c000000080000805600000030000000820200001401000089020000ba01000005000000820214018202ba018902ba018902140182021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000089020000140100
+0091020000ba01000005000000890214018902ba019102ba019102140189021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000910200001401000099020000ba01000005000000910214019102ba019902ba0199021401910214012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000009902000014010000a2020000ba01000005000000990214019902ba01a202ba01a202140199021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a202000014010000aa020000ba01000005000000a2021401a202ba01aa02ba01aa021401a2021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000
+250000000c000000080000805600000030000000aa02000014010000b2020000ba01000005000000aa021401aa02ba01b202ba01b2021401aa021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000b202000014010000b9020000ba0100
+0005000000b2021401b202ba01b902ba01b9021401b2021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b902000014010000c2020000ba01000005000000b9021401b902ba01c202ba01c2021401b9021401250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c202000014010000c8020000ba01000005000000c2021401c202ba01c802ba01c8021401c2021401250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c802000014010000ce020000ba01000005000000c8021401c802ba01ce02ba01ce021401c8021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000
+080000805600000030000000ce02000014010000d6020000ba01000005000000ce021401ce02ba01d602ba01d6021401ce021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d602000014010000de020000ba01000005000000d60214
+01d602ba01de02ba01de021401d6021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000de02000014010000e7020000ba01000005000000de021401de02ba01e702ba01e7021401de021401250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000e702000014010000f1020000ba01000005000000e7021401e702ba01f102ba01f1021401e7021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ec
+dbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f102000014010000fa020000ba01000005000000f1021401f102ba01fa02ba01fa021401f1021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000
+30000000fa0200001401000003030000ba01000005000000fa021401fa02ba010303ba0103031401fa021401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000003030000140100000b030000ba01000005000000030314010303ba010b03ba
+010b03140103031401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000b030000140100000c030000ba010000050000000b0314010b03ba010c03ba010c0314010b031401250000000c00000008000080250000000c000000000000802800
+00000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000c50151fe4301a6003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b2010000fd00000023030000d101000004000000901ca01bc030a01bc0304011901c4011250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000cf010000f1feffffff020000e4feffff160000000c00000001000000120000000c000000010000001b00000010000000000000000000
+0000160000000c00000000000000540000009c000000470200001a0100008f020000260100000100000000400d4200040dc243020000f1feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000006000000060000000600000006000000090000000600000003000000060000000300000003000000060000000600000006
+0000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b4000000400200002701000095020000320100000100000000400d4200040d
+c23c020000e4feffff110000004c000000000000000000000000000000ffffffffffffffff700000005600690073006900620069006c006900740079005200650064007500630065006400000007000000030000000600000003000000060000000300000003000000030000000300000005000000070000000600000006000000060000000600000006000000060000000a00000010000000fcffffff0b0000000c0000001000
+00000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c501d2fe0803d2fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a
+0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000b2010000220100002303000050010000
+02000000901c9013c0309013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400
+0000ce0100003d010000d1010000490100000100000000400d4200040dc2ca010000cefeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000
+b4000000df0100003d01000043020000490100000100000000400d4200040dc2db010000cefeffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300000000700000008000000070000000600000007000000070000000700000007000000030000000600000003000000070000000700000003000000060000
+0003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ce0100004a010000d1010000560100000100000000400d4200040dc2ca010000c1feffff010000004c000000000000000000000000000000ffffffffffffffff50
+00000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000df0100004a010000a9020000560100000100000000400d4200040dc2db010000c1feffff210000004c000000000000000000000000000000ffffffffffffff
+ff900000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f0046004f00470020003d0020003100000007000000030000000700000003000000070000000300000006000000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000060000000700
+00000800000006000000060000000800000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ce01000057010000d1010000630100000100000000400d4200040dc2ca010000b4feffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000df01000057010000b9020000630100000100000000400d4200040dc2db010000b4fe
+ffff230000004c000000000000000000000000000000ffffffffffffffff940000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f0053004d004f004b00450020003d0020003200000007000000030000000700000003000000070000000300000006000000030000000700000007000000060000000700000007000000070000000700000007
+000000070000000700000006000000070000000700000007000000060000000700000008000000060000000700000009000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+0054000000ce01000064010000d1010000700100000100000000400d4200040dc2ca010000a7feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+00000054010000df01000064010000f4020000700100000100000000400d4200040dc2db010000a7feffff2c0000004c000000000000000000000000000000ffffffffffffffffa40000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00480045004100560059005f0053004e004f005700460041004c004c0020003d002000330007000000
+0300000007000000030000000700000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000000600000007000000070000000700000007000000070000000600000007000000070000000800000009000000060000000700000006000000060000000300000006000000030000
+00060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ce01000071010000d10100007d0100000100000000400d4200040dc2ca0100009afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020
+000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c010000df01000071010000d40200007d0100000100000000400d4200040dc2db0100009afeffff280000004c000000000000000000000000000000ffffffffffffffff9c0000
+005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00480045004100560059005f005200410049004e0020003d00200034000700000003000000070000000300000007000000030000000600000003000000070000000700000006000000070000000700000007000000070000000700000007000000070000000600000007000000070000000700
+00000600000007000000080000000600000007000000070000000700000007000000070000000600000007000000070000000300000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000
+ce0100007e010000d10100008a0100000100000000400d4200040dc2ca0100008dfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c01
+0000df0100007e010000d30200008a0100000100000000400d4200040dc2db0100008dfeffff280000004c000000000000000000000000000000ffffffffffffffff9c0000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00480045004100560059005f004800410049004c0020003d00200035000700000003000000070000000300000007
+00000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000000600000007000000070000000700000007000000070000000600000007000000070000000300000006000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ce0100008b010000d1010000970100000100000000400d4200040dc2ca01000080feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000050010000df0100008b010000ee020000970100000100000000400d4200040dc2db01000080feffff2b0000004c000000000000000000000000000000ffffffffffffffffa40000005600490053004900420049004c004900540059005f00520045004400
+55004300450044005f004400550045005f0054004f005f004c004f0057005f00530055004e005f0047004c0041005200450020003d002000360000000700000003000000070000000300000007000000030000000600000003000000070000000700000006000000070000000700000007000000070000000700000007000000070000000600000007000000070000000700000006000000070000000800000006000000060000
+00080000000900000006000000070000000700000007000000060000000800000006000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ce01000098010000d1
+010000a40100000100000000400d4200040dc2ca01000073feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c010000df010000980100
+00dc020000a40100000100000000400d4200040dc2db01000073feffff280000004c000000000000000000000000000000ffffffffffffffff9c0000005600490053004900420049004c004900540059005f0052004500440055004300450044005f004400550045005f0054004f005f00530041004e004400530054004f0052004d00530020003d00200037000700000003000000070000000300000007000000030000000600
+00000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000000600000007000000070000000700000007000000070000000700000008000000070000000900000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000004000000
+0b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ce010000a5010000d1010000b10100000100000000400d4200040dc2ca01000066feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000400
+00000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000df010000a501000008030000b10100000100000000400d4200040dc2db01000066feffff2f0000004c000000000000000000000000000000ffffffffffffffffac0000005600490053004900420049004c004900540059005f0052004500440055004300450044005f
+004400550045005f0054004f005f0053005700410052004d0053005f004f0046005f0049004e005300450043005400530020003d00200038000000070000000300000007000000030000000700000003000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000007000000080000000600000007000000
+09000000070000000700000009000000070000000600000008000000060000000600000003000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004802d5fd8d0065002100000008000000620000
+000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000004c020000d1010000d90200003602000005000000c024101dc0246023902d6023902d101dc024101d250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004802d5fd8d0065003a0000000c0000000a00000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000035020000ba010000f00200004d02000004000000c0246023902d6023902d101dc024101d250000000c00000007000080250000000c0000000000008024000000
+2400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000040114400000ac400000d430000ca42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000
+001000000002000000010000004502d8fd8d006500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000049020000ce0100009302000033020000050000004902ce0149023302930233029302ce014902ce01250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000093020000ce0100009602000033020000050000009302ce0193023302960233029602ce019302ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c0000000400000025
+0000000c00000008000080560000003000000096020000ce0100009a02000033020000050000009602ce01960233029a0233029a02ce019602ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009a020000ce0100009e02000033020000
+050000009a02ce019a0233029e0233029e02ce019a02ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000009e020000ce010000a302000033020000050000009e02ce019e023302a3023302a302ce019e02ce01250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000a3020000ce010000a60200003302000005000000a302ce01a3023302a6023302a602ce01a302ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000a6020000ce010000aa0200003302000005000000a602ce01a6023302aa023302aa02ce01a602ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008
+0000805600000030000000aa020000ce010000ae0200003302000005000000aa02ce01aa023302ae023302ae02ce01aa02ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000ae020000ce010000b20200003302000005000000ae02ce01
+ae023302b2023302b202ce01ae02ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b2020000ce010000b60200003302000005000000b202ce01b2023302b6023302b602ce01b202ce01250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b6020000ce010000b90200003302000005000000b602ce01b6023302b9023302b902ce01b602ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2
+cd0000000000250000000c00000004000000250000000c000000080000805600000030000000b9020000ce010000bd0200003302000005000000b902ce01b9023302bd023302bd02ce01b902ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030
+000000bd020000ce010000c00200003302000005000000bd02ce01bd023302c0023302c002ce01bd02ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000c0020000ce010000c40200003302000005000000c002ce01c0023302c4023302
+c402ce01c002ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000c4020000ce010000c80200003302000005000000c402ce01c4023302c8023302c802ce01c402ce01250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000c8020000ce010000cd0200003302000005000000c802ce01c8023302cd023302cd02ce01c802ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac300000000002500
+00000c00000004000000250000000c000000080000805600000030000000cd020000ce010000d00200003302000005000000cd02ce01cd023302d0023302d002ce01cd02ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000d0020000ce
+010000d40200003302000005000000d002ce01d0023302d4023302d402ce01d002ce01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000d4020000ce010000d60200003302000005000000d402ce01d4023302d6023302d602ce01d402ce01
+250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004502d8fd8d0065003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000032020000b7010000ed0200004a0200000400000090243023602d3023602de01c9024e01c250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000004f02000037feffffc90200002afeffff160000000c00000001000000
+120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006c020000d4010000b4020000e00100000100000000400d4200040dc26802000037feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000000600000009000000060000
+00030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c00000071
+020000e1010000af020000ec0100000100000000400d4200040dc26d0200002afeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000500072006500630069007000690074006100740069006f006e000000070000000400000006000000060000000300000006000000030000000300000006000000030000000300000006000000060000000a00000010000000fcffffff0b0000000c000000
+100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000450218fed20218fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000
+000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000032020000dc010000ed0200000a02
+0000020000009024301f602d301f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000
+540000004e020000f701000051020000030200000100000000400d4200040dc24a02000014feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+0000b40000005f020000f7010000c3020000030200000100000000400d4200040dc25b02000014feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030000000070000000800000007000000060000000700000007000000070000000700000003000000060000000300000007000000070000000300000006
+00000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004e0200000402000051020000100200000100000000400d4200040dc24a02000007feffff010000004c000000000000000000000000000000ffffffffffffff
+ff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000005f02000004020000b2020000100200000100000000400d4200040dc25b02000007feffff0e0000004c000000000000000000000000000000ffffffffff
+ffffff68000000480045004100560059005f005200410049004e0020003d002000310007000000070000000700000007000000070000000600000007000000070000000300000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000540000004e02000011020000510200001d0200000100000000400d4200040dc24a020000fafdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b00000054000000b80000005f02000011020000d20200001d0200000100000000400d4200040dc25b020000fafdffff120000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f0053004e004f005700460041004c004c0020003d00200032000700000007000000070000000700000007000000060000000700000007000000080000000900000006000000
+070000000600000006000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000004e0200001e020000510200002a0200000100000000400d4200040dc24a020000edfdffff010000004c0000000000
+00000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000005f0200001e020000aa0200002a0200000100000000400d4200040dc25b020000edfdffff0d0000004c000000
+000000000000000000000000ffffffffffffffff6800000053004f00460054005f004800410049004c0020003d00200033000000070000000800000006000000070000000600000007000000070000000300000006000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0
+ff01000000270254fdc60061002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002b02000056020000f1020000b702000005000000b0226025b022702b102f702b102f6025b022
+6025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000270254fdc60061003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000140200003f02000008030000ce02000004000000b022702b102f702b102f6025b022602525000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000094400402ac4000046430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000000000000000
+3f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000240257fdc6006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000028020000530200008f020000b402000005000000280253022802b4028f02b4028f02530228025302250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000008f0200005302000094020000b4020000050000008f0253028f02b4029402b402940253028f025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000940200005302000099020000b402000005000000940253029402b4029902b4029902530294025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080
+560000003000000099020000530200009e020000b402000005000000990253029902b4029e02b4029e02530299025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000009e02000053020000a3020000b4020000050000009e0253029e02b4
+02a302b402a30253029e025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a302000053020000a8020000b402000005000000a3025302a302b402a802b402a8025302a3025302250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a802000053020000ad020000b402000005000000a8025302a802b402ad02b402ad025302a8025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000
+000000250000000c00000004000000250000000c000000080000805600000030000000ad02000053020000b2020000b402000005000000ad025302ad02b402b202b402b2025302ad025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000
+b202000053020000b7020000b402000005000000b2025302b202b402b702b402b7025302b2025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000b702000053020000bb020000b402000005000000b7025302b702b402bb02b402bb0253
+02b7025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000bb02000053020000c1020000b402000005000000bb025302bb02b402c102b402c1025302bb025302250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c102000053020000c5020000b402000005000000c1025302c102b402c502b402c5025302c1025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c
+00000004000000250000000c000000080000805600000030000000c502000053020000c8020000b402000005000000c5025302c502b402c802b402c8025302c5025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c802000053020000
+cd020000b402000005000000c8025302c802b402cd02b402cd025302c8025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000cd02000053020000d2020000b402000005000000cd025302cd02b402d202b402d2025302cd025302250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000d202000053020000d7020000b402000005000000d2025302d202b402d702b402d7025302d2025302250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000d702000053020000de020000b402000005000000d7025302d702b402de02b402de025302d7025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c0000000400000025
+0000000c000000080000805600000030000000de02000053020000e3020000b402000005000000de025302de02b402e302b402e3025302de025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000e302000053020000e8020000b4020000
+05000000e3025302e302b402e802b402e8025302e3025302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000e802000053020000ed020000b402000005000000e8025302e802b402ed02b402ed025302e8025302250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000ed02000053020000ee020000b402000005000000ed025302ed02b402ee02b402ee025302ed025302250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000000700
+0080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000240257fdc60061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000110200003c02000005030000cb020000040000008022402be02e402be02e302580223025250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002e020000b2fdffffe1020000a5fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00
+00006702000059020000af020000650200000100000000400d4200040dc263020000b2fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b00000010000000000000000000000016
+0000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000006002000066020000b7020000710200000100000000400d4200040dc25c020000a5fdffff0f0000004c000000000000
+000000000000000000ffffffffffffffff6c0000005200650063006b006c0065007300730050006500720073006f006e00730000000700000006000000060000000600000003000000060000000600000006000000070000000600000004000000060000000600000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b084000023800
+00002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000240293fdea0293fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024
+0000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001102000061020000050300008f0200000200000080228027e02e8027250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002d0200007c02000030020000880200000100000000400d4200040dc22902
+00008ffdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000003e0200007c020000a2020000880200000100000000400d4200040dc2
+3a0200008ffdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002d0200008902000030020000950200000100000000400d4200040dc22902000082fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000003e02000089020000b3020000950200000100000000400d4200040dc23a02000082fdffff130000004c000000000000000000000000000000ffffffffffffffff740000005200450043004b004c004500530053005f00440052004900560045
+00520020003d00200031000000070000000700000007000000070000000600000007000000070000000700000006000000070000000700000003000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b00000054000000540000002d0200009602000030020000a20200000100000000400d4200040dc22902000075fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000c00000003e02000096020000b5020000a20200000100000000400d4200040dc23a02000075fdffff130000004c000000000000000000000000000000ffffffffffffffff74000000470055004e0046004900520045005f004f004e005f0052004f004100440020003d00200032000000080000000700000007000000060000000300000007000000070000000600000008000000070000000600
+000007000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002d020000a302000030020000af0200000100000000400d4200040dc22902000068fdffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003e020000a3020000ea020000af0200000100000000400d4200040dc23a02000068fdffff1a00
+00004c000000000000000000000000000000ffffffffffffffff80000000530054004f004e0045005f005400480052004f00570049004e0047005f0050004500520053004f004e00530020003d002000330007000000070000000800000007000000070000000600000007000000070000000700000008000000090000000300000007000000080000000600000007000000070000000700000007000000080000000700000007
+000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002c0292fce000af002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d
+000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000030020000ca0200001003000079030000050000000023a02c00239037003190370031a02c0023a02c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000
+002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002c0292fce000af003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc0000000
+00000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000019020000b302000027030000900300000400000000239037003190370031a02c0023a02c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000004600000084
+00000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000400a4400c05ac40000604300002f43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000290295fce000af00250000000c0000000800008027000000180000000400000000000000fcf2e3000000000025000000
+0c00000004000000250000000c0000000800008056000000300000002d020000c7020000a202000076030000050000002d02c7022d027603a2027603a202c7022d02c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a2020000c70200
+00a70200007603000005000000a202c702a2027603a7027603a702c702a202c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000a7020000c7020000ad0200007603000005000000a702c702a7027603ad027603ad02c702a702c7022500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ad020000c7020000b30200007603000005000000ad02c702ad027603b3027603b302c702ad02c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000b3020000c7020000b80200007603000005000000b302c702b3027603b8027603b802c702b302c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000
+250000000c000000080000805600000030000000b8020000c7020000be0200007603000005000000b802c702b8027603be027603be02c702b802c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000be020000c7020000c3020000760300
+0005000000be02c702be027603c3027603c302c702be02c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000c3020000c7020000c90200007603000005000000c302c702c3027603c9027603c902c702c302c702250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000c9020000c7020000cf0200007603000005000000c902c702c9027603cf027603cf02c702c902c702250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000cf020000c7020000d40200007603000005000000cf02c702cf027603d4027603d402c702cf02c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000
+080000805600000030000000d4020000c7020000da0200007603000005000000d402c702d4027603da027603da02c702d402c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000da020000c7020000de0200007603000005000000da02c7
+02da027603de027603de02c702da02c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000de020000c7020000e20200007603000005000000de02c702de027603e2027603e202c702de02c702250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e2020000c7020000e80200007603000005000000e202c702e2027603e8027603e802c702e202c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ef
+e0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e8020000c7020000ed0200007603000005000000e802c702e8027603ed027603ed02c702e802c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000
+30000000ed020000c7020000f30200007603000005000000ed02c702ed027603f3027603f302c702ed02c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f3020000c7020000fa0200007603000005000000f302c702f3027603fa0276
+03fa02c702f302c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fa020000c7020000010300007603000005000000fa02c702fa027603010376030103c702fa02c702250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000001030000c70200000703000076030000050000000103c70201037603070376030703c7020103c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c0000000000025
+0000000c00000004000000250000000c00000008000080560000003000000007030000c70200000c03000076030000050000000703c702070376030c0376030c03c7020703c702250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000c030000
+c70200000d03000076030000050000000c03c7020c0376030d0376030d03c7020c03c702250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000
+0001000000290295fce000af003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000016020000b0020000240300008d0300000400
+0000d0226037d0306037d030702cd022702c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000
+1e00000018000000330200003efdffff0003000031fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000079020000cd020000c1020000d90200000100000000400d4200040dc2750200003efdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d006500720061
+00740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000003000000180000000c00000000000000540000008800000080020000da020000ba020000e50200000100000000400d4200040dc27c02000031fdffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004d0061006a006f0072004500760065006e007400090000000600000004000000060000000400000007000000070000000600000006000000030000000a000000
+10000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000029021ffd09031ffd00010101154001001000000004000000000000002100000008000000620000000c0000
+0001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400
+000016020000d5020000240300000303000002000000d022c02ed030c02e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b000000540000005400000032020000f002000035020000fc0200000100000000400d4200040dc22e0200001bfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000008b00000054000000b400000043020000f0020000a7020000fc0200000100000000400d4200040dc23f0200001bfdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300000000700000008000000070000000600000007000000070000000700000007000000030000000600000003
+0000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000032020000fd02000035020000090300000100000000400d4200040dc22e0200000efdffff010000004c000000000000
+000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac00000043020000fd020000a9020000090300000100000000400d4200040dc23f0200000efdffff100000004c00000000
+0000000000000000000000ffffffffffffffff6c000000530050004f005200540053005f004500560045004e00540020003d0020003100070000000700000008000000070000000700000007000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000320200000a03000035020000160300000100000000400d4200040dc22e02000001fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000430200000a030000b0020000160300000100000000400d4200040dc23f02000001fdffff110000004c000000000000000000000000000000ffffffffffffffff70000000440045004d004f004e005300540052004100540049004f004e0020003d0020003200000007000000070000000900000008000000
+070000000700000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000032020000170300003502000023030000010000000040
+0d4200040dc22e020000f4fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100004302000017030000090300002303000001000000
+00400d4200040dc23f020000f4fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000440045004d004f004e005300540052004100540049004f004e005f0057004900540048005f00560045004800490043004c004500530020003d0020003300000007000000070000000900000008000000070000000700000007000000070000000700000007000000030000000800000007000000060000
+0009000000030000000700000007000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003202000024
+03000035020000300300000100000000400d4200040dc22e020000e7fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000090000000430200
+002403000087020000300300000100000000400d4200040dc23f020000e7fcffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000043004f004e00430045005200540020003d0020003400000007000000080000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003202000031030000350200003d0300000100000000400d4200040dc22e020000dafcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000
+000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007c00000043020000310300006c0200003d0300000100000000400d4200040dc23f020000dafcffff080000004c000000000000000000000000000000ffffffffffffffff5c000000460041004900520020003d002000350006000000070000000300000007000000030000000600
+000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000320200003e030000350200004a0300000100000000400d4200040dc22e020000cdfcffff010000004c000000000000000000000000000000ffffffffffffffff
+5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000430200003e030000bd0200004a0300000100000000400d4200040dc23f020000cdfcffff150000004c000000000000000000000000000000ffffffffffff
+ffff780000004d0049004c00490054004100520059005f0054005200410049004e0049004e00470020003d002000360000000900000003000000060000000300000007000000070000000700000007000000060000000700000007000000070000000300000007000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000004000000
+0b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000320200004b03000035020000570300000100000000400d4200040dc22e020000c0fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000400
+00000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000430200004b030000ce020000570300000100000000400d4200040dc23f020000c0fcffff160000004c000000000000000000000000000000ffffffffffffffff7800000045004d0045005200470045004e00430059005f0054005200410049004e0049004e00470020
+003d0020003700070000000900000007000000070000000800000007000000070000000700000007000000060000000700000007000000070000000300000007000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b0000005400000054000000320200005803000035020000640300000100000000400d4200040dc22e020000b3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b000000540000009c00000043020000580300008b020000640300000100000000400d4200040dc23f020000b3fcffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000046004500530054004900560049005400590020003d00200038000000060000000700000007000000070000000300000007000000030000000700000007000000030000000600000003000000
+060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000320200006503000035020000710300000100000000400d4200040dc22e020000a6fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000
+0000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a0000000430200006503000099020000710300000100000000400d4200040dc23f020000a6fcffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000
+500052004f00430045005300530049004f004e0020003d002000390007000000070000000800000007000000070000000700000007000000030000000800000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000290200fce000720021000000080000
+00620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002d020000990300000d0300000b04000005000000d0229039d022b040d030b040d0309039d0229039250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000290200fce00072003a0000000c0000000a00000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001602000082030000240300002204000004000000d022b040d030b040d0309039d0229039250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080094400407fc4000060430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000
+401c000000100000000200000001000000260203fce0007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002a020000960300009f02000008040000050000002a0296032a0208049f0208049f0296032a029603250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000009f02000096030000a402000008040000050000009f0296039f020804a4020804a40296039f029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004
+000000250000000c000000080000805600000030000000a402000096030000aa0200000804000005000000a4029603a4020804aa020804aa029603a4029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000aa02000096030000b0020000
+0804000005000000aa029603aa020804b0020804b0029603aa029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000b002000096030000b50200000804000005000000b0029603b0020804b5020804b5029603b0029603250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000b502000096030000bb0200000804000005000000b5029603b5020804bb020804bb029603b5029603250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000bb02000096030000c00200000804000005000000bb029603bb020804c0020804c0029603bb029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c
+000000080000805600000030000000c002000096030000c60200000804000005000000c0029603c0020804c6020804c6029603c0029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000c602000096030000cc0200000804000005000000
+c6029603c6020804cc020804cc029603c6029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000cc02000096030000d10200000804000005000000cc029603cc020804d1020804d1029603cc029603250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000d102000096030000d70200000804000005000000d1029603d1020804d7020804d7029603d1029603250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d702000096030000db0200000804000005000000d7029603d7020804db020804db029603d7029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056
+00000030000000db02000096030000df0200000804000005000000db029603db020804df020804df029603db029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000df02000096030000e50200000804000005000000df029603df020804
+e5020804e5029603df029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e502000096030000ea0200000804000005000000e5029603e5020804ea020804ea029603e5029603250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000ea02000096030000f00200000804000005000000ea029603ea020804f0020804f0029603ea029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc6000000
+0000250000000c00000004000000250000000c000000080000805600000030000000f002000096030000f70200000804000005000000f0029603f0020804f7020804f7029603f0029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f7
+02000096030000fe0200000804000005000000f7029603f7020804fe020804fe029603f7029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000fe02000096030000040300000804000005000000fe029603fe0208040403080404039603
+fe029603250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000004030000960300000903000008040000050000000403960304030804090308040903960304039603250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000009030000960300000a030000080400000500000009039603090308040a0308040a03960309039603250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000260203fce00072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000
+000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000130200007f030000210300001f04000004000000a0228040a0308040a0306039a0226039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000
+220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000300200006ffcfffffd02000062fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000760200009c030000be020000a80300000100
+000000400d4200040dc2720200006ffcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000
+000000050000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c000000067020000a9030000ce020000b40300000100000000400d4200040dc26302000062fcffff130000004c000000000000000000000000000000ffffffffffffffff740000
+0053006500720076006900630065004e006f0074004f007000650072006100740069006e0067000000070000000600000004000000070000000300000006000000060000000700000006000000030000000800000006000000060000000400000006000000030000000300000006000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000007c00000070000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000260250fc060350fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024
+000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000013020000a403000021030000d203000002000000a022b03ba030b03b250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+00100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f020000bf03000032020000cb0300000100000000400d420004
+0dc22b0200004cfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000040020000bf030000a4020000cb0300000100000000400d42
+00040dc23c0200004cfcffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f020000cc03000032020000d80300000100000000400d4200040dc22b0200003ffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000040020000cc03000006030000d80300000100000000400d4200040dc23c0200003ffcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000460045005200520059005f005300450052005600490043
+0045005f004e004f0054005f004f005000450052004100540049004e00470020003d00200031000000060000000700000007000000070000000700000006000000070000000700000007000000070000000300000007000000070000000600000007000000080000000700000006000000080000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a00
+000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f020000d903000032020000e50300000100000000400d4200040dc22b02000032fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003000000
+0a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000040020000d903000006030000e50300000100000000400d4200040dc23c02000032fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000050004c004100
+4e0045005f0053004500520056004900430045005f004e004f0054005f004f005000450052004100540049004e00470020003d0020003200000007000000060000000700000007000000070000000600000007000000070000000700000007000000030000000700000007000000060000000700000008000000070000000600000008000000070000000700000007000000070000000700000003000000070000000800000003
+0000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f020000e603000032020000f20300000100000000400d4200040dc22b02000025fcffff010000004c000000000000000000000000000000ffffff
+ffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000040020000e603000003030000f20300000100000000400d4200040dc23c02000025fcffff1f0000004c000000000000000000000000000000ff
+ffffffffffffff8c00000054005200410049004e005f0053004500520056004900430045005f004e004f0054005f004f005000450052004100540049004e00470020003d002000330000000700000007000000070000000300000007000000060000000700000007000000070000000700000003000000070000000700000006000000070000000800000007000000060000000800000007000000070000000700000007000000
+07000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002f020000f303000032020000ff0300000100000000400d4200040dc22b02000018fcffff010000004c00
+0000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0b0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000b000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000040020000f3030000f9020000ff0300000100000000400d4200040dc23c02000018fcffff1d000000
+4c000000000000000000000000000000ffffffffffffffff880000004200550053005f0053004500520056004900430045005f004e004f0054005f004f005000450052004100540049004e00470020003d0020003400000007000000070000000700000006000000070000000700000007000000070000000300000007000000070000000600000007000000080000000700000006000000080000000700000007000000070000
+000700000007000000030000000700000008000000030000000600000003000000060000000a00000010000000fcffffff0b0000000c000000100000000000000000000000280000000c00000002000000280000000c000000030000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c0000006400000000000000000000001d030000280400000000
+0000000000001e030000290400002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 21\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_01A62542_4020_4c5e_AD80_95B39726C804}{\*\bkmkend BKM_01A62542_4020_4c5e_AD80_95B39726C804}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentSubCauseTables2}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw29132\pich18755\picwgoal16515\pichgoal10635\picscalex57\picscaley57\sspicalign0 010000006c000000f8ffffffffffffff430300001e0200000000000000000000cc7100004349000020454d460000010074090100810b0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100edfd3803edfd3803ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff3a03000015020000050000001000100010003021803330218033100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d00000001400000006000000
+10004001300c4001000d6000000d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc300ecffd000faffd000ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd2000000160000000600000010004001300c4001000d6000000d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7648941a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300ba0a3a00ec859e10282001201add20000dc59e102188d17
+010d3a0aea48941a248300ea00add2000037bb40000d3a0aea70374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b58911a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19acd200008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000bf0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305cb9000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000240100000600000004000000c10000000f0000000100000000400d4200040dc206000000fcffffff240000004c000000000000000000000000000000ffffffffffffffff9400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400530075006200430061007500730065005400610062006c0065007300320006000000030000000600000006000000
+06000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000700000006000000060000000700000006000000060000000600000006000000050000000600000006000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000
+000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000c0c1000070c10a4000c01c00000010000000c0bfc0ff010000002a005affaa007b00280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100
+000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000bc00000097000000050000002001c00120017009c00b7009c00bc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002a005affaa007b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff05000000d3000000ae0000000400000020017009c00b7009c00bc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000001c42000023c300002a430000f642bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+000027005dffaa007b00250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f000000190000006800000094000000050000000f0019000f00940068009400680019000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000
+000000fbf1e10000000000250000000c00000002000000250000000c00000008000080560000003000000068000000190000006c000000940000000500000068001900680094006c0094006c00190068001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080
+56000000300000006c000000190000007000000094000000050000006c0019006c00940070009400700019006c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c000000080000805600000030000000700000001900000074000000940000000500000070001900700094
+00740094007400190070001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c00000008000080560000003000000074000000190000007800000094000000050000007400190074009400780094007800190074001900250000000c00000008000080250000000c0000000000
+0080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c00000008000080560000003000000078000000190000007d000000940000000500000078001900780094007d0094007d00190078001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000
+000000250000000c00000002000000250000000c0000000800008056000000300000007d000000190000008100000094000000050000007d0019007d00940081009400810019007d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c000000080000805600000030000000
+81000000190000008600000094000000050000008100190081009400860094008600190081001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c00000008000080560000003000000086000000190000008b000000940000000500000086001900860094008b0094008b0019
+0086001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d20000000000250000000c00000002000000250000000c0000000800008056000000300000008b000000190000009000000094000000050000008b0019008b00940090009400900019008b001900250000000c00000008000080250000000c00000000000080280000000c00
+00000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c00000008000080560000003000000090000000190000009400000094000000050000009000190090009400940094009400190090001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c
+00000002000000250000000c00000008000080560000003000000094000000190000009800000094000000050000009400190094009400980094009800190094001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c00000002000000250000000c0000000800008056000000300000009800000019000000
+9b000000940000000500000098001900980094009b0094009b00190098001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0cb0000000000250000000c00000002000000250000000c0000000800008056000000300000009b000000190000009f00000094000000050000009b0019009b0094009f0094009f0019009b001900250000
+000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc90000000000250000000c00000002000000250000000c0000000800008056000000300000009f00000019000000a300000094000000050000009f0019009f009400a3009400a30019009f001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700
+0000180000000200000000000000eddec70000000000250000000c00000002000000250000000c000000080000805600000030000000a300000019000000a80000009400000005000000a3001900a3009400a8009400a8001900a3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c0000000200000025
+0000000c000000080000805600000030000000a800000019000000ae0000009400000005000000a8001900a8009400ae009400ae001900a8001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000ae00000019000000b200000094000000
+05000000ae001900ae009400b2009400b2001900ae001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000b200000019000000b60000009400000005000000b2001900b2009400b6009400b6001900b2001900250000000c000000080000
+80250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000b600000019000000b90000009400000005000000b6001900b6009400b9009400b9001900b6001900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c0000000700
+0080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000027005dffaa007b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038
+0000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000f8ffffff02000000d0000000ab00000004000000f0004009900b4009900b9001f0009001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028000000
+0c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+e1021857e102245736019c58530b1457e10296961901de390ab29c58530bb296190100000000488f1a248ce3c577738c172646e0c5779401300b0000300b188d1701de390ab277001601afd20000c457e10237bb4000de390ab2488f1a247800a800afd200008882dd193c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b488f1a24f0374b0b000000001457e10200000000b058e102f5
+71ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a2401000000408f1a24dc57e10223e0c577488f1a243a6c2e7608654501408f1a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000031000000d2ffffffc8000000c5ffffff160000000c00000001000000120000000c00000001000000
+1b000000100000000000000000000000160000000c00000000000000540000009c000000400000001f000000880000002b0000000100000000400d4200040dc258000000d2ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0027300600000006000000060000000600000009000000060000000300000006000000030000
+00030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc02000000000001000005004100520049
+0041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76488f1a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b9da3300b1c58e10278004801b1d200003058e102188d1701de390ab3488f1a247900ea00b1d2000037bb4000
+de390ab370374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b58911a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19b0d200008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c000000030000
+00180000000c0000000000000054000000ac000000380000002c00000091000000370000000100000000400d4200040dc250000000c5ffffff100000004c000000000000000000000000000000ffffffffffffffff6c00000053006500720076006900630065004e006f00740055007300610062006c00650007000000060000000400000007000000030000000600000006000000070000000600000003000000070000000600
+0000060000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002700b3ffd100b3ff00010101154001001000000004
+000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000
+04000000250000000c000000050000805700000024000000f8ffffff27000000d00000005500000002000000f000e003900be003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000042000000170000004e0000000100000000400d4200040dc22c000000afffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006c65030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000002500000042000000890000004e0000000100000000400d4200040dc23d000000afffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030006d6507000000080000000700000006000000070000
+000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000004f000000170000005b0000000100000000400d4200
+040dc22c000000a2ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000332e030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000250000004f000000b50000005b0000000100000000400d
+4200040dc23d000000a2ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004600550045004c005f00530054004100540049004f004e005f0043004c004f0053004500440020003d0020003100656c0600000007000000070000000600000006000000070000000700000007000000070000000300000008000000070000000600000007000000060000000800000007000000070000000700
+0000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000005c00000017000000680000000100000000400d4200040dc22c00000095ffffff010000004c000000000000000000000000000000
+ffffffffffffffff5000000020002730030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000250000005c000000b6000000680000000100000000400d4200040dc23d00000095ffffff170000004c00000000000000000000000000
+0000ffffffffffffffff7c00000053004500520056004900430045005f0041005200450041005f0043004c004f0053004500440020003d0020003200657607000000070000000700000007000000030000000700000007000000060000000700000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000018000000f1
+ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000006900000017000000750000000100000000400d4200040dc22c00000088ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007420030000000a00000010000000180000
+00f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000002500000069000000a8000000750000000100000000400d4200040dc23d00000088ffffff150000004c000000000000000000000000000000ffffffffffffffff7800000053004500520056004900430045005f0041
+005200450041005f00420055005300590020003d002000330030320700000007000000070000000700000003000000070000000700000006000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000007600000017000000820000000100000000400d4200040dc22c0000007bffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006c65030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000250000007600000084000000820000000100000000400d4200040dc23d0000007bffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000005000410052004b0049004e0047005f00460055004c004c0020003d002000340007000000070000000700000007000000030000000700000008000000
+0600000006000000070000000600000006000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000083000000170000008f0000000100000000400d4200040dc22c0000006effffff0100
+00004c000000000000000000000000000000ffffffffffffffff5000000020005c27030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000025000000830000009e0000008f0000000100000000400d4200040dc23d0000006effffff
+130000004c000000000000000000000000000000ffffffffffffffff740000004300410052005f005000410052004b005f0043004c004f0053004500440020003d00200035000d0a070000000700000007000000060000000700000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c0000
+00100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000530083fe1b0195002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600
+0000300000003b000000d9000000560100006e01000005000000b003900db003e0166015e0166015900db003900d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000c0bfc0ff0b400040180000000c00000001000000530083fe1b0195003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000000500008056000000
+2c00000024000000c20000006d0100008501000004000000b003e0166015e0166015900db003900d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000
+000000a0420000bdc300808d4300001543bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000500086fe1b019500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000038000000d6000000cb00
+00006b010000050000003800d60038006b01cb006b01cb00d6003800d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000cb000000d6000000d20000006b01000005000000cb00d600cb006b01d2006b01d200d600cb00d600250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000d2000000d6000000da0000006b01000005000000d200d600d2006b01da006b01da00d600d200d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000da000000d6000000e10000006b01000005000000da00d600da006b01e1006b01e100d600da00d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000
+000c000000080000805600000030000000e1000000d6000000e70000006b01000005000000e100d600e1006b01e7006b01e700d600e100d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000e7000000d6000000ef0000006b0100000500
+0000e700d600e7006b01ef006b01ef00d600e700d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000ef000000d6000000f60000006b01000005000000ef00d600ef006b01f6006b01f600d600ef00d600250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000f6000000d6000000fd0000006b01000005000000f600d600f6006b01fd006b01fd00d600f600d600250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000fd000000d6000000040100006b01000005000000fd00d600fd006b0104016b010401d600fd00d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000
+80560000003000000004010000d60000000b0100006b010000050000000401d60004016b010b016b010b01d6000401d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000000b010000d6000000120100006b010000050000000b01d6000b01
+6b0112016b011201d6000b01d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000000012010000d6000000180100006b010000050000001201d60012016b0118016b011801d6001201d600250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000018010000d60000001d0100006b010000050000001801d60018016b011d016b011d01d6001801d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc00
+00000000250000000c00000004000000250000000c0000000800008056000000300000001d010000d6000000240100006b010000050000001d01d6001d016b0124016b012401d6001d01d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000
+0024010000d60000002b0100006b010000050000002401d60024016b012b016b012b01d6002401d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000002b010000d6000000320100006b010000050000002b01d6002b016b0132016b013201
+d6002b01d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000032010000d60000003b0100006b010000050000003201d60032016b013b016b013b01d6003201d600250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000003b010000d6000000440100006b010000050000003b01d6003b016b0144016b014401d6003b01d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac2000000000025000000
+0c00000004000000250000000c00000008000080560000003000000044010000d60000004b0100006b010000050000004401d60044016b014b016b014b01d6004401d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000004b010000d60000
+00520100006b010000050000004b01d6004b016b0152016b015201d6004b01d600250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000052010000d6000000530100006b010000050000005201d60052016b0153016b015301d6005201d6002500
+00000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000500086fe1b0195003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000021000000bf0000006a01000082010000040000008003b0163015b0163015600d8003600d250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000005a00000015ffffff6201000008ffffff160000000c000000010000001200
+00000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000a2000000dc000000ea000000e80000000100000000400d4200040dc2ba00000015ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00100006000000060000000600000006000000090000000600000003
+0000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b8000000910000
+00e9000000fa000000f40000000100000000400d4200040dc2a900000008ffffff120000004c000000000000000000000000000000ffffffffffffffff7000000053006c006f0077004d006f00760069006e006700560065006800690063006c0065007300070000000300000006000000090000000900000006000000070000000300000006000000060000000700000006000000060000000300000006000000030000000600
+0000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005000f6fe6b01f6fe00010101154001001000000004000000000000002100000008
+000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000
+05000080570000002400000021000000e40000006a01000012010000020000008003b00f3015b00f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b00000054000000540000003d000000ff000000400000000b0100000100000000400d4200040dc255000000f2feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006500030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000b40000004e000000ff000000b20000000b0100000100000000400d4200040dc266000000f2feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000803d07000000080000000700000006000000070000000700000007000000070000
+000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003d0000000c01000040000000180100000100000000400d4200040dc255000000e5feffff01
+0000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000200100004e0000000c01000031010000180100000100000000400d4200040dc266000000e5feff
+ff230000004c000000000000000000000000000000ffffffffffffffff9400000053004c004f0057005f004d004f00560049004e0047005f004d00410049004e00540045004e0041004e00430045005f00560045004800490043004c00450020003d002000310000000700000006000000080000000900000006000000090000000800000007000000030000000700000008000000060000000900000007000000030000000700
+0000070000000700000007000000070000000700000007000000070000000600000007000000070000000700000003000000070000000600000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000
+540000003d0000001901000040000000250100000100000000400d4200040dc255000000d8feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+00003c0100004e000000190100004f010000250100000100000000400d4200040dc266000000d8feffff280000004c000000000000000000000000000000ffffffffffffffff9c000000560045004800490043004c00450053005f0053004c004f00570049004e0047005f0054004f005f004c004f004f004b005f00410054005f004100430043004900440045004e00540020003d002000320007000000070000000700000003
+0000000700000006000000070000000700000006000000070000000600000008000000090000000300000007000000080000000600000007000000080000000600000006000000080000000800000007000000060000000700000007000000060000000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003d0000002601000040000000320100000100000000400d4200040dc255000000cbfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000004e00000026010000bc000000320100000100000000400d4200040dc266000000cbfeffff110000004c000000000000000000000000000000ffffffffffffffff70000000410042004e004f0052004d0041004c005f004c004f004100
+440020003d0020003300000007000000070000000700000008000000070000000900000007000000060000000600000006000000080000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+0000540000003d00000033010000400000003f0100000100000000400d4200040dc255000000befeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000d00000004e00000033010000dc0000003f0100000100000000400d4200040dc266000000befeffff160000004c000000000000000000000000000000ffffffffffffffff78000000410042004e004f0052004d0041004c005f0057004900440045005f004c004f004100440020003d00200034000700000007000000070000000800000007000000090000000700000006000000060000000900000003000000070000
+00070000000600000006000000080000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003d00000040010000400000004c0100000100000000400d4200040dc255000000b1
+feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000880000004e000000400100008c0000004c0100000100000000400d4200040dc2660000
+00b1feffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000043004f004e0056004f00590020003d0020003500070000000800000007000000070000000800000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000540000003d0000004d01000040000000590100000100000000400d4200040dc255000000a4feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b00000054000000900000004e0000004d0100008a000000590100000100000000400d4200040dc266000000a4feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000440045004900430049004e00470020003d0020003700050007000000070000000300000007000000030000000700000008000000030000000600000003000000060000000a0000001000
+000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000003d0000005a01000040000000660100000100000000400d4200040dc25500000097feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000
+1000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c40000004e0000005a010000c6000000660100000100000000400d4200040dc26600000097feffff140000004c000000000000000000000000000000ffffffffffffffff74000000530041004c0054004900
+4e0047005f00560045004800490043004c004500530020003d002000380007000000070000000600000007000000030000000700000008000000060000000700000007000000070000000300000007000000060000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010
+000000c0bfc0ff010000006700eafdb00072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000004f00000095010000ff0000000702000005000000f0045019f0047020f00f7020
+f00f5019f0045019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006700eafdb00072003a0000
+000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000380000007e010000160100001e02000004000000f0047020f00f7020f00f5019f004
+5019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c84200c004c4000030430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff0300000000
+0000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000006400edfdb0007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000004c00000092010000a800000004020000050000004c0092014c000402a8000402a80092014c009201250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a800000092010000ac0000000402000005000000a8009201a8000402ac000402ac009201a8009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ac00000092010000b10000000402000005000000ac009201ac000402b1000402b1009201ac009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000b100000092010000b60000000402000005000000b1009201b1000402b6000402b6009201b1009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000b600000092010000bc0000000402000005000000b6
+009201b6000402bc000402bc009201b6009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000bc00000092010000c00000000402000005000000bc009201bc000402c0000402c0009201bc009201250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000c000000092010000c40000000402000005000000c0009201c0000402c4000402c4009201c0009201250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000c400000092010000ca0000000402000005000000c4009201c4000402ca000402ca009201c4009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600
+000030000000ca00000092010000cf0000000402000005000000ca009201ca000402cf000402cf009201ca009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000cf00000092010000d40000000402000005000000cf009201cf000402d4
+000402d4009201cf009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d400000092010000d70000000402000005000000d4009201d4000402d7000402d7009201d4009201250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000d700000092010000da0000000402000005000000d7009201d7000402da000402da009201d7009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc00000000
+00250000000c00000004000000250000000c000000080000805600000030000000da00000092010000df0000000402000005000000da009201da000402df000402df009201da009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000df00
+000092010000e30000000402000005000000df009201df000402e3000402e3009201df009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000e300000092010000e80000000402000005000000e3009201e3000402e8000402e8009201e3
+009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000e800000092010000ed0000000402000005000000e8009201e8000402ed000402ed009201e8009201250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ed00000092010000f30000000402000005000000ed009201ed000402f3000402f3009201ed009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c0000
+0004000000250000000c000000080000805600000030000000f300000092010000f70000000402000005000000f3009201f3000402f7000402f7009201f3009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000f700000092010000fb00
+00000402000005000000f7009201f7000402fb000402fb009201f7009201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000fb00000092010000fc0000000402000005000000fb009201fb000402fc000402fc009201fb009201250000000c
+00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000006400edfdb00072003a0000000c0000000a00000024000000240000000000803d00000000
+000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000350000007b010000130100001b02000004000000c0044020c00f4020c00f2019c0042019250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000006e00000059feffff0b0100004cfeffff160000000c00000001000000120000000c
+000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000008000000098010000c8000000a40100000100000000400d4200040dc29800000059feffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000006000000060000000600000006000000090000000600000003000000
+0600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c00000006b000000a501
+0000de000000b00100000100000000400d4200040dc2830000004cfeffff130000004c000000000000000000000000000000ffffffffffffffff74000000440061006e006700650072006f007500730045006e0064004f0066005100750065007500650000000700000006000000060000000600000006000000040000000600000006000000060000000700000006000000060000000800000003000000080000000600000006
+00000006000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000064003afe14013afe0001010115400100100000000400000000000000
+2100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000
+000c00000005000080570000002400000035000000a001000013010000ce01000002000000c004701bc00f701b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b000000540000005400000051000000bb01000054000000c70100000100000000400d4200040dc26900000036feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000062000000bb010000c6000000c70100000100000000400d4200040dc27a00000036feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300000000700000008000000070000000600000007000000070000000700
+0000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000051000000c801000054000000d40100000100000000400d4200040dc269000000
+29feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000062000000c8010000f7000000d40100000100000000400d4200040dc27a00
+000029feffff170000004c000000000000000000000000000000ffffffffffffffff7c000000530055004400440045004e005f0045004e0044005f004f0046005f005100550045005500450020003d00200031000000070000000700000007000000070000000700000007000000060000000700000007000000070000000600000008000000060000000600000008000000070000000700000007000000070000000300000006
+00000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000051000000d501000054000000e10100000100000000400d4200040dc2690000001cfeffff010000004c000000000000000000000000000000ffffffffffffff
+ff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000062000000d5010000d7000000e10100000100000000400d4200040dc27a0000001cfeffff130000004c000000000000000000000000000000ffffffffff
+ffffff74000000510055004500550045005f004f005600450052005f00480049004c004c0020003d00200032000000080000000700000007000000070000000700000006000000080000000700000007000000070000000600000007000000030000000600000006000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000051000000e201000054000000ee0100000100000000400d4200040dc2690000000ffeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ff00030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000062000000e2010000f8000000ee0100000100000000400d4200040dc27a0000000ffeffff170000004c000000000000000000000000000000ffffffffffffffff7c000000510055004500550045005f00410052004f0055004e0044005f0041005f00420045004e00440020003d00200033000000
+08000000070000000700000007000000070000000600000007000000070000000800000007000000070000000700000006000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b000000540000005400000051000000ef01000054000000fb0100000100000000400d4200040dc26900000002feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000c000000062000000ef010000d7000000fb0100000100000000400d4200040dc27a00000002feffff130000004c000000000000000000000000000000ffffffffffffffff74000000510055004500550045005f0049004e005f00540055004e004e0045004c0020003d00200034000000080000000700000007000000070000000700000006000000030000000700000006000000070000
+000700000007000000070000000700000006000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000380168ff910054002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000000000240000002400
+00000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002001000035000000b101000089000000050000000012500300129008101b9008101b500300125003250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060
+00000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000380168ff910054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000090100001e000000c8010000a00000000400000000129008101b9008101b500300125003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000
+003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000809a43000015c3000011430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000035016bff91005400250000000c0000000800008027000000180000000400
+000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001d010000320000006901000086000000050000001d0132001d01860069018600690132001d013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008
+000080560000003000000069010000320000006c010000860000000500000069013200690186006c0186006c01320069013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000006c010000320000007001000086000000050000006c013200
+6c01860070018600700132006c013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000070010000320000007401000086000000050000007001320070018600740186007401320070013200250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000074010000320000007701000086000000050000007401320074018600770186007701320074013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7eb
+da0000000000250000000c00000004000000250000000c00000008000080560000003000000077010000320000007b010000860000000500000077013200770186007b0186007b01320077013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030
+0000007b010000320000007e01000086000000050000007b0132007b0186007e0186007e0132007b013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000007e010000320000008201000086000000050000007e0132007e01860082018600
+820132007e013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000082010000320000008601000086000000050000008201320082018600860186008601320082013200250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000086010000320000008901000086000000050000008601320086018600890186008901320086013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d100000000002500
+00000c00000004000000250000000c00000008000080560000003000000089010000320000008d010000860000000500000089013200890186008d0186008d01320089013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000008d01000032
+0000009001000086000000050000008d0132008d01860090018600900132008d013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000090010000320000009201000086000000050000009001320090018600920186009201320090013200
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000092010000320000009601000086000000050000009201320092018600960186009601320092013200250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000096010000320000009a010000860000000500000096013200960186009a0186009a01320096013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c0000000400
+0000250000000c0000000800008056000000300000009a010000320000009e01000086000000050000009a0132009a0186009e0186009e0132009a013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009e01000032000000a201000086
+000000050000009e0132009e018600a2018600a20132009e013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000a201000032000000a60100008600000005000000a2013200a2018600a6018600a6013200a2013200250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000a601000032000000aa0100008600000005000000a6013200a6018600aa018600aa013200a6013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000aa01000032000000ae0100008600000005000000aa013200aa018600ae018600ae013200aa013200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210
+c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000035016bff910054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000
+000000250000000c00000004000000250000000c00000005000080560000002c000000060100001b000000c50100009d00000004000000d0116008e01a6008e01a2003d0112003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8ffff
+fff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003f010000b9ffffffbd010000acffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000042010000380000008a010000440000000100000000400d4200040dc25a01
+0000b9ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb005f00060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010
+00000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000880000004c0100004500000080010000500000000100000000400d4200040dc264010000acffffff0a0000004c000000000000000000000000000000ffffffffffffffff600000005200690073006b004f0066
+004600690072006500070000000300000006000000060000000800000003000000060000000300000004000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210
+c0db020000000040000035019affc6019aff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010
+0000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000601000040000000c50100006e00000002000000d0117005e01a7005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000
+220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000220100005b00000025010000670000000100000000400d4200040dc23a01000096ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020008e01030000000a0000001000000018000000f1ffffff0c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000330100005b00000097010000670000000100000000400d4200040dc24b01000096ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500
+440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+000054000000220100006800000025010000740000000100000000400d4200040dc23a01000089ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000c00000003301000068000000aa010000740000000100000000400d4200040dc24b01000089ffffff130000004c000000000000000000000000000000ffffffffffffffff740000004c00450041004b004100470045005f004f0046005f004600550045004c0020003d00200031000000060000000700000007000000070000000700000008000000070000000600000008000000060000000600000006000000070000
+000700000006000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000220100007500000025010000810000000100000000400d4200040dc23a0100007cffffff010000004c0000000000000000
+00000000000000ffffffffffffffff5000000020000080030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000003301000075000000a6010000810000000100000000400d4200040dc24b0100007cffffff120000004c000000000000
+000000000000000000ffffffffffffffff700000004c00450041004b004100470045005f004f0046005f0047004100530020003d00200032000600000007000000070000000700000007000000080000000700000006000000080000000600000006000000080000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000002c00
+000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000a601a2fe210165002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008e010000ea000000af0200004f
+01000005000000e018a00ee018f014f02af014f02aa00ee018a00e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b40004018000000
+0c00000001000000a601a2fe210165003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000077010000d3000000c6020000660100
+0004000000e018f014f02af014f02aa00ee018a00e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080d1430080adc3008090430000ca42bed7
+e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000a301a5fe21016500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008b010000e7000000210200004c010000050000008b01e7008b014c0121
+024c012102e7008b01e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000021020000e7000000290200004c010000050000002102e70021024c0129024c012902e7002102e700250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000029020000e7000000300200004c010000050000002902e70029024c0130024c013002e7002902e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd00000000
+00250000000c00000004000000250000000c00000008000080560000003000000030020000e7000000370200004c010000050000003002e70030024c0137024c013702e7003002e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000003702
+0000e70000003e0200004c010000050000003702e70037024c013e024c013e02e7003702e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000003e020000e7000000460200004c010000050000003e02e7003e024c0146024c014602e7003e
+02e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000046020000e70000004d0200004c010000050000004602e70046024c014d024c014d02e7004602e700250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000004d020000e7000000550200004c010000050000004d02e7004d024c0155024c015502e7004d02e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c0000
+0004000000250000000c00000008000080560000003000000055020000e70000005e0200004c010000050000005502e70055024c015e024c015e02e7005502e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000005e020000e70000006602
+00004c010000050000005e02e7005e024c0166024c016602e7005e02e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c00000008000080560000003000000066020000e70000006b0200004c010000050000006602e70066024c016b024c016b02e7006602e700250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000006b020000e7000000710200004c010000050000006b02e7006b024c0171024c017102e7006b02e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000071020000e7000000780200004c010000050000007102e70071024c0178024c017802e7007102e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000
+000c00000008000080560000003000000078020000e70000007f0200004c010000050000007802e70078024c017f024c017f02e7007802e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000007f020000e7000000870200004c0100000500
+00007f02e7007f024c0187024c018702e7007f02e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000087020000e70000008f0200004c010000050000008702e70087024c018f024c018f02e7008702e700250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000008f020000e7000000980200004c010000050000008f02e7008f024c0198024c019802e7008f02e700250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000098020000e7000000a00200004c010000050000009802e70098024c01a0024c01a002e7009802e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000
+805600000030000000a0020000e7000000a70200004c01000005000000a002e700a0024c01a7024c01a702e700a002e700250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000a7020000e7000000ac0200004c01000005000000a702e700a702
+4c01ac024c01ac02e700a702e700250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000a301a5fe210165003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000074010000d0000000c30200006301000004000000b018c014c02ac014c02a700eb018700e25000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000ad01000004ffffffbb020000f7fe
+ffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000f8010000ed00000040020000f90000000100000000400d4200040dc21002000004ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006
+000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000
+0000000000540000008400000003020000fa00000035020000050100000100000000400d4200040dc21b020000f7feffff090000004c000000000000000000000000000000ffffffffffffffff60000000540069006d006500440065006c006100790000000500000003000000090000000600000007000000060000000300000006000000050000000a0000001000000018000000f1ffffff0c00000010000000000000000000
+0000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a301e5fec402e5fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000
+000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000074010000f5000000c30200002301000002000000b018c010
+c02ac010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000900100001001
+0000930100001c0100000100000000400d4200040dc2a8010000e1feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000a1010000
+10010000050200001c0100000100000000400d4200040dc2b9010000e1feffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000
+000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000900100001d01000093010000290100000100000000400d4200040dc2a8010000d4feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000008003
+0000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000a10100001d01000043020000290100000100000000400d4200040dc2b9010000d4feffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000540049
+004d0045005f00440045004c00410059005f00410054005f00460052004f004e00540049004500520020003d002000310007000000030000000900000007000000060000000700000007000000060000000700000007000000060000000700000007000000060000000600000007000000080000000700000007000000030000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ff
+ffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000900100002a01000093010000360100000100000000400d4200040dc2a8010000c7feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000
+f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f4000000a10100002a01000054020000360100000100000000400d4200040dc2b9010000c7feffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000540049004d0045005f00440045004c004100
+59005f00410054005f00460045005200520059005f0050004f005200540020003d0020003200070000000300000009000000070000000600000007000000070000000600000007000000070000000600000007000000070000000600000006000000070000000700000007000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000900100003701000093010000430100000100000000400d4200040dc2a8010000bafeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffff
+ff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000048010000a101000037010000a8020000430100000100000000400d4200040dc2b9010000bafeffff2a0000004c000000000000000000000000000000ffffffffffffffffa0000000540049004d0045005f00440045004c00410059005f
+00410054005f00560045004800490043004c0045005f004f004e005f005200410049004c005f005400450052004d0049004e0041004c0020003d00200033000700000003000000090000000700000006000000070000000700000006000000070000000700000006000000070000000700000006000000070000000700000007000000030000000700000006000000070000000600000008000000070000000600000007000000
+070000000300000006000000060000000700000007000000070000000900000003000000070000000700000006000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000006a01f8fde20058002100000008000000620000000c00000001000000110000000c0000
+00010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000052010000a101000034020000f9010000050000002015101a2015901f4023901f4023101a2015101a250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006a01f8fde20058003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003b0100008a0100004b02000010020000040000002015901f4023901f4023101a2015101a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080b343004001c4000062430000b042bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000006701fb
+fde2005800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000004f0100009e010000c5010000f6010000050000004f019e014f01f601c501f601c5019e014f019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1
+e10000000000250000000c00000004000000250000000c000000080000805600000030000000c50100009e010000ca010000f601000005000000c5019e01c501f601ca01f601ca019e01c5019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030
+000000ca0100009e010000d0010000f601000005000000ca019e01ca01f601d001f601d0019e01ca019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d00100009e010000d6010000f601000005000000d0019e01d001f601d601f601
+d6019e01d0019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d60100009e010000db010000f601000005000000d6019e01d601f601db01f601db019e01d6019e01250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000db0100009e010000e1010000f601000005000000db019e01db01f601e101f601e1019e01db019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead800000000002500
+00000c00000004000000250000000c000000080000805600000030000000e10100009e010000e7010000f601000005000000e1019e01e101f601e701f601e7019e01e1019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000e70100009e
+010000ed010000f601000005000000e7019e01e701f601ed01f601ed019e01e7019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000ed0100009e010000f4010000f601000005000000ed019e01ed01f601f401f601f4019e01ed019e01
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000f40100009e010000fa010000f601000005000000f4019e01f401f601fa01f601fa019e01f4019e01250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000fa0100009e010000fe010000f601000005000000fa019e01fa01f601fe01f601fe019e01fa019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c0000000400
+0000250000000c000000080000805600000030000000fe0100009e01000003020000f601000005000000fe019e01fe01f6010302f60103029e01fe019e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000030200009e01000009020000f6
+0100000500000003029e010302f6010902f60109029e0103029e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000090200009e0100000e020000f60100000500000009029e010902f6010e02f6010e029e0109029e01250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000000e0200009e01000014020000f6010000050000000e029e010e02f6011402f60114029e010e029e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000140200009e0100001b020000f60100000500000014029e011402f6011b02f6011b029e0114029e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00
+00000800008056000000300000001b0200009e01000022020000f6010000050000001b029e011b02f6012202f60122029e011b029e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000220200009e01000028020000f60100000500000022
+029e012202f6012802f60128029e0122029e01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000280200009e0100002d020000f60100000500000028029e012802f6012d02f6012d029e0128029e01250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000002d0200009e01000031020000f6010000050000002d029e012d02f6013102f60131029e012d029e01250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000
+006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000006701fbfde20058003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000
+000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003801000087010000480200000d02000004000000f014601f1023601f1023e019f014e019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004
+0000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000710100004dfeffff4002000040feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000009c0100
+00a4010000e4010000b00100000100000000400d4200040dc2b40100004dfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c00
+0000000000004b0000001000000000000000050000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac00000095010000b1010000eb010000bc0100000100000000400d4200040dc2ad01000040feffff100000004c0000000000000000000000
+00000000ffffffffffffffff6c00000050006f006c0069006300650043006800650063006b0070006f0069006e007400070000000600000003000000030000000600000006000000070000000600000006000000060000000600000006000000060000000300000006000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000007c00000070000000454d462b08400002380000
+002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000067012efe49022efe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000038010000ac01000048020000da01000002000000f014301c1023301c250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000054010000c701000057010000d30100000100000000400d4200040dc26c0100
+002afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000065010000c7010000c9010000d30100000100000000400d4200040dc27d
+0100002afeffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030000d4207000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000054010000d401000057010000e00100000100000000400d4200040dc26c0100001dfeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000a023030000000a0000001000000018000000f1ffffff0c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000065010000d40100002d020000e00100000100000000400d4200040dc27d0100001dfeffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000005000450052004d0041004e0045004e0054005f0050004f004c004900
+430045005f0043004800450043004b0050004f0049004e00540020003d00200031000000070000000700000007000000090000000700000007000000070000000700000007000000060000000700000008000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000008000000030000000700000007000000030000000600000003000000060000000a000000100000
+0018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000054010000e101000057010000ed0100000100000000400d4200040dc26c01000010feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010
+00000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000065010000e10100002e020000ed0100000100000000400d4200040dc27d01000010feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000540045004d0050004f0052
+004100520059005f0050004f004c004900430045005f0043004800450043004b0050004f0049004e00540020003d00200032000000070000000700000009000000070000000800000007000000070000000700000007000000060000000700000008000000060000000300000007000000070000000600000007000000070000000700000007000000070000000700000008000000030000000700000007000000030000000600
+000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000fc0141ff48017b002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+000000250000000c00000001000000250000000c000000080000805600000030000000e4010000350000002c030000b000000005000000401e5003401e000bc032000bc0325003401e5003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000fc0141ff48017b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc0000000000000000000000000
+00250000000c00000004000000250000000c00000005000080560000002c000000cd0100001e00000043030000c700000004000000401e000bc032000bc0325003401e5003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d
+462b08400201580000004c0000000210c0db0400000004000000000000000080fc4300003cc30000a4430000f642bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000f90144ff48017b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c0000000400000025
+0000000c000000080000805600000030000000e1010000320000008c020000ad00000005000000e1013200e101ad008c02ad008c023200e1013200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000008c0200003200000094020000ad000000
+050000008c0232008c02ad009402ad00940232008c023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000094020000320000009d020000ad00000005000000940232009402ad009d02ad009d02320094023200250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009d02000032000000a7020000ad000000050000009d0232009d02ad00a702ad00a70232009d023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000a702000032000000b1020000ad00000005000000a7023200a702ad00b102ad00b1023200a7023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008
+0000805600000030000000b102000032000000b9020000ad00000005000000b1023200b102ad00b902ad00b9023200b1023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000b902000032000000c1020000ad00000005000000b9023200
+b902ad00c102ad00c1023200b9023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000c102000032000000cb020000ad00000005000000c1023200c102ad00cb02ad00cb023200c1023200250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000cb02000032000000d4020000ad00000005000000cb023200cb02ad00d402ad00d4023200cb023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5
+d20000000000250000000c00000004000000250000000c000000080000805600000030000000d402000032000000da020000ad00000005000000d4023200d402ad00da02ad00da023200d4023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030
+000000da02000032000000e2020000ad00000005000000da023200da02ad00e202ad00e2023200da023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e202000032000000ea020000ad00000005000000e2023200e202ad00ea02ad00
+ea023200e2023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ea02000032000000f2020000ad00000005000000ea023200ea02ad00f202ad00f2023200ea023200250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f202000032000000fa020000ad00000005000000f2023200f202ad00fa02ad00fa023200f2023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc800000000002500
+00000c00000004000000250000000c000000080000805600000030000000fa0200003200000003030000ad00000005000000fa023200fa02ad000303ad0003033200fa023200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000303000032
+0000000d030000ad00000005000000030332000303ad000d03ad000d03320003033200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000d0300003200000017030000ad000000050000000d0332000d03ad001703ad00170332000d033200
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000017030000320000001f030000ad00000005000000170332001703ad001f03ad001f03320017033200250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000001f0300003200000027030000ad000000050000001f0332001f03ad002703ad00270332001f033200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c0000000400
+0000250000000c000000080000805600000030000000270300003200000029030000ad00000005000000270332002703ad002903ad002903320027033200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000
+0000000210c0db00000000000000ff0b400040180000000c00000001000000f90144ff48017b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+560000002c000000ca0100001b00000040030000c400000004000000101ed00a9032d00a90322003101e2003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c000000000000001e0000001800000003020000b9ffffff38030000acffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006102000038000000a9020000440000000100000000400d4200040dc279020000b9ffffff0d0000004c000000000000000000000000000000ff
+ffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000018000000f1ffffff0c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8ffff
+fff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000080100003002000045000000da020000500000000100000000400d4200040dc248020000acffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000004d0061006c00660075006e006300740069006f006e0069006e00670052006f00610064007300
+690064006500450071007500690070006d0065006e0074000000090000000600000003000000030000000600000006000000060000000300000003000000060000000600000003000000060000000600000007000000060000000600000006000000060000000300000006000000060000000700000006000000060000000300000006000000090000000600000006000000030000000a0000001000000018000000f1ffffff0c
+000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000f9019aff41039aff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000
+010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000ca01000040000000400300
+006e00000002000000101e700590327005250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+00000054000000e60100005b000000e9010000670000000100000000400d4200040dc2fe01000096ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000b4000000f70100005b0000005b020000670000000100000000400d4200040dc20f02000096ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030000000070000000800000007000000060000000700000007000000070000000700000003000000060000000300000007000000070000000300
+00000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e601000068000000e9010000740000000100000000400d4200040dc2fe01000089ffffff010000004c000000000000000000000000000000ffffffff
+ffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000000010000f701000068000000b0020000740000000100000000400d4200040dc20f02000089ffffff1e0000004c000000000000000000000000000000ffff
+ffffffffffff8800000052004f00410044005f005200410049004c005f00430052004f005300530049004e0047005f004600410049004c0055005200450020003d002000310007000000080000000700000007000000060000000700000007000000030000000600000006000000070000000700000008000000070000000700000003000000070000000800000006000000060000000700000003000000060000000700000007
+00000007000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e601000075000000e9010000810000000100000000400d4200040dc2fe0100007cffffff010000004c00000000000000000000
+0000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000018010000f701000075000000d0020000810000000100000000400d4200040dc20f0200007cffffff220000004c0000000000000000
+00000000000000ffffffffffffffff90000000540055004e004e0045004c005f00560045004e00540049004c004100540049004f004e005f004e004f0054005f0057004f0052004b0049004e00470020003d00200032000700000007000000070000000700000007000000060000000600000007000000070000000700000007000000030000000600000007000000070000000300000008000000070000000600000007000000
+08000000070000000600000009000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e601000082000000e90100008e0000000100
+000000400d4200040dc2fe0100006fffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000f701000082000000250300008e000000
+0100000000400d4200040dc20f0200006fffffff2f0000004c000000000000000000000000000000ffffffffffffffffac00000054005200410046004600490043005f0043004f004e00540052004f004c005f005300490047004e0041004c0053005f0057004f0052004b0049004e0047005f0049004e0043004f00520052004500430054004c00590020003d0020003300000007000000070000000700000006000000060000
+0003000000070000000600000007000000080000000700000007000000070000000800000006000000060000000700000003000000080000000700000007000000060000000700000006000000090000000800000007000000070000000300000007000000080000000600000003000000070000000700000008000000070000000700000007000000070000000700000006000000070000000300000006000000030000000600
+00000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e60100008f000000e90100009b0000000100000000400d4200040dc2fe01000062ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff
+030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000024010000f70100008f000000ea0200009b0000000100000000400d4200040dc20f02000062ffffff240000004c000000000000000000000000000000ffffffffffffffff940000004500
+4d0045005200470045004e00430059005f00540045004c004500500048004f004e00450053005f004e004f0054005f0057004f0052004b0049004e00470020003d002000340007000000090000000700000007000000080000000700000007000000070000000700000006000000070000000700000006000000070000000700000007000000080000000700000007000000070000000600000007000000080000000700000006
+00000009000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e60100009c000000e9010000a80000000100000000400d4200040d
+c2fe01000055ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000018000000f1ffffff0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900
+0000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000e8fffffff1ffffff120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000038010000f70100009c000000fb020000a80000000100000000400d4200
+040dc20f02000055ffffff270000004c000000000000000000000000000000ffffffffffffffff9c0000004100550054004f004d0041005400490043005f005000410059004d0045004e0054005f004c0041004e00450053005f004e004f0054005f0057004f0052004b0049004e00470020003d002000350000000700000007000000070000000800000009000000070000000700000003000000070000000600000007000000
+070000000700000009000000070000000700000007000000060000000600000007000000070000000700000007000000060000000700000008000000070000000600000009000000080000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000018000000f1ffffff0c000000100000000000000000000000280000000c00000002000000280000000c000000030000
+002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000004c000000640000000000000000000000390300001402000000000000000000003a030000150200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00
+000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 22\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_45E5A73E_E24F_4efe_B8B3_A874850B183B}{\*\bkmkend BKM_45E5A73E_E24F_4efe_B8B3_A874850B183B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentTables}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw27720\pich36768\picwgoal15720\pichgoal20850\picscalex60\picscaley60\sspicalign0 010000006c000000f8ffffffffffffff1b0300001d0400000000000000000000486c0000a18f000020454d4600000100b44202000a180000060000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100eefb1003eefb1003ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff1203000014040000050000001000100010002041003120410031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff8b00ecff9800faff9800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000980000001400000006000000
+10004001b008400180096000800910001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff8b00ecff9800faff9800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff9a000000160000000600000010004001b008400180096000800910001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76e8941a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bb2a37004c859e10256003001a2d30000dc59e102188d17
+012d3b0a47e8941a245700d000a2d3000037bb40002d3b0a4770374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b88901a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19a1d300008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000870000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305c81000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000f00000000600000004000000890000000f0000000100000000400d4200040dc206000000fcffffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e0074005400610062006c006500730077300600000003000000060000000600000006000000030000000500000004000000
+060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000500000006000000060000000300000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c0000000200000046000000500000
+0044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000080c00000a0400a4000c01c00000010000000c0bfc0ff01000000160050ffb4009900280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000002700000018000000010000000000
+0000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000c6000000b5000000050000002001c0012001500b600c500b600cc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000160050ffb40099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc00000000000
+0000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff05000000dd000000cc000000040000002001500b600c500b600cc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a00000046000000840000
+0078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000984100002dc30000344300001943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000130053ffb4009900250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00
+000002000000250000000c0000000800008056000000300000000f000000190000006d000000b2000000050000000f0019000f00b2006d00b2006d0019000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c0000000800008056000000300000006d0000001900000071
+000000b2000000050000006d0019006d00b2007100b200710019006d001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000710000001900000076000000b200000005000000710019007100b2007600b200760019007100190025000000
+0c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c00000008000080560000003000000076000000190000007a000000b200000005000000760019007600b2007a00b2007a00190076001900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000
+00180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000007a000000190000007f000000b2000000050000007a0019007a00b2007f00b2007f0019007a001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebda0000000000250000000c000000020000002500
+00000c0000000800008056000000300000007f0000001900000083000000b2000000050000007f0019007f00b2008300b200830019007f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c000000080000805600000030000000830000001900000088000000b200000005
+000000830019008300b2008800b2008800190083001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e9d60000000000250000000c00000002000000250000000c00000008000080560000003000000088000000190000008d000000b200000005000000880019008800b2008d00b2008d00190088001900250000000c00000008000080
+250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d40000000000250000000c00000002000000250000000c0000000800008056000000300000008d0000001900000092000000b2000000050000008d0019008d00b2009200b200920019008d001900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000
+0000000000f3e6d20000000000250000000c00000002000000250000000c000000080000805600000030000000920000001900000098000000b200000005000000920019009200b2009800b2009800190092001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e4d00000000000250000000c00000002000000250000000c0000000800
+0080560000003000000098000000190000009c000000b200000005000000980019009800b2009c00b2009c00190098001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e3ce0000000000250000000c00000002000000250000000c0000000800008056000000300000009c00000019000000a0000000b2000000050000009c0019009c
+00b200a000b200a00019009c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cd0000000000250000000c00000002000000250000000c000000080000805600000030000000a000000019000000a3000000b200000005000000a0001900a000b200a300b200a3001900a0001900250000000c00000008000080250000000c000000
+00000080280000000c0000000200000027000000180000000200000000000000f0e1cb0000000000250000000c00000002000000250000000c000000080000805600000030000000a300000019000000a7000000b200000005000000a3001900a300b200a700b200a7001900a3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc9
+0000000000250000000c00000002000000250000000c000000080000805600000030000000a700000019000000ac000000b200000005000000a7001900a700b200ac00b200ac001900a7001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eddec70000000000250000000c00000002000000250000000c00000008000080560000003000
+0000ac00000019000000b1000000b200000005000000ac001900ac00b200b100b200b1001900ac001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdcc50000000000250000000c00000002000000250000000c000000080000805600000030000000b100000019000000b7000000b200000005000000b1001900b100b200b700b200b7
+001900b1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac30000000000250000000c00000002000000250000000c000000080000805600000030000000b700000019000000bc000000b200000005000000b7001900b700b200bc00b200bc001900b7001900250000000c00000008000080250000000c0000000000008028000000
+0c0000000200000027000000180000000200000000000000ead9c10000000000250000000c00000002000000250000000c000000080000805600000030000000bc00000019000000c0000000b200000005000000bc001900bc00b200c000b200c0001900bc001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000
+000c00000002000000250000000c000000080000805600000030000000c000000019000000c3000000b200000005000000c0001900c000b200c300b200c3001900c0001900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100
+000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000130053ffb40099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c
+00000005000080560000002c000000f8ffffff02000000da000000c900000004000000f000200b300c200b300c9001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000
+000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901bb3f0aa19c58530bb29619010000000058941a248ce3c577738c172646e0
+c5779401300b0000300b188d1701bb3f0aa14b006601a4d30000c457e10237bb4000bb3f0aa158941a244c004a01a4d300008882dd193c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b58941a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a240100000050
+941a24dc57e10223e0c57758941a243a6c2e760865450150941a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e000000180000001d000000e6ffffffbe000000d9ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000450000001f0000008d0000002b000000
+0100000000400d4200040dc249000000e6ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb006576060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000
+0000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000001a013ada21883a6c2e7658941a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bfba3200a1c58e1024c005c01a6d300003058e102188d1701bb3f0aa258941a244d00d000a6d3000037bb4000bb3f0aa270374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b88901a24f0374b0b00000000fc57e102
+00000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19a5d300008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000880000004f0000002c00000084000000370000000100000000400d4200040dc2530000
+00d9ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000045006600660065006300740043006f0064006500070000000300000003000000060000000600000003000000070000000600000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001300c7ffc700c7ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff27000000da0000005500000002000000f000e003300ce003250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000042000000170000004e0000000100000000400d4200040dc218000000c3ffffff010000004c0000000000
+00000000000000000000ffffffffffffffff5000000020006e66030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000002500000042000000890000004e0000000100000000400d4200040dc229000000c3ffffff110000004c000000
+000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000657607000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff050000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000004f000000170000005b0000000100000000400d4200040dc218000000b6ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006c65030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000250000004f000000bf0000005b0000000100000000400d4200040dc229000000b6ffffff180000004c000000000000000000000000000000ffffffffffffffff7c00000054005200410046004600490043005f0046004c004f0057005f0055004e004b004e004f0057004e0020003d
+00200031000700000007000000070000000600000006000000030000000700000006000000060000000600000008000000090000000600000007000000070000000700000007000000080000000900000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b0000005400000054000000140000005c00000017000000680000000100000000400d4200040dc218000000a9ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007665030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b00000054000000cc000000250000005c000000a6000000680000000100000000400d4200040dc229000000a9ffffff150000004c000000000000000000000000000000ffffffffffffffff7800000046005200450045005f0054005200410046004600490043005f0046004c004f00570020003d0020003200756d0600000007000000070000000700000006000000070000000700
+000007000000060000000600000003000000070000000600000006000000060000000800000009000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000014000000690000001700000075000000
+0100000000400d4200040dc2180000009cffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000302e030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000025000000690000008b0000007500
+00000100000000400d4200040dc2290000009cffffff110000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f00540052004100460046004900430020003d0020003300657607000000070000000700000007000000070000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a0000001000000004
+000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000007600000017000000820000000100000000400d4200040dc2180000008fffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006d62030000000a000000100000
+0004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000250000007600000086000000820000000100000000400d4200040dc2290000008fffffff100000004c000000000000000000000000000000ffffffffffffffff6c00000053004c004f0057005f00540052
+004100460046004900430020003d0020003400070000000600000008000000090000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000540000001400000083000000170000008f0000000100000000400d4200040dc21800000082ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305c030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000c00000002500000083000000970000008f0000000100000000400d4200040dc22900000082ffffff130000004c000000000000000000000000000000ffffffffffffffff74000000510055004500550049004e0047005f00540052004100460046004900430020003d00200035005c27080000000700000007000000070000000300000007000000080000000600000007000000070000000700000006000000
+060000000300000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001400000090000000170000009c0000000100000000400d4200040dc21800000075ffffff010000004c0000000000
+00000000000000000000ffffffffffffffff5000000020006576030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000002500000090000000ab0000009c0000000100000000400d4200040dc22900000075ffffff160000004c000000
+000000000000000000000000ffffffffffffffff78000000530054004100540049004f004e004100520059005f00540052004100460046004900430020003d0020003600070000000700000007000000070000000300000008000000070000000700000007000000070000000600000007000000070000000700000006000000060000000300000007000000030000000600000003000000060000000a00000010000000040000
+00050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000140000009d00000017000000a90000000100000000400d4200040dc21800000068ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007d7d030000000a0000001000000004
+000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000250000009d0000009a000000a90000000100000000400d4200040dc22900000068ffffff130000004c000000000000000000000000000000ffffffffffffffff740000004e004f005f00540052004100460046
+00490043005f0046004c004f00570020003d00200037007d7d070000000800000006000000070000000700000007000000060000000600000003000000070000000600000006000000060000000800000009000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100
+0000e3004dffb20099002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000df0000001f00000091010000b800000005000000f00df001f00d800b1019800b1019f001f00df00125
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000e3004dffb20099003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c800000008000000a8010000cf00000004000000f00d800b1019800b1019f001f00df001250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000006043000030c30000324300001943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000
+803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000e00050ffb2009900250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000dc0000001c00000039010000b500000005000000dc001c00dc00b5003901b50039011c00dc001c00250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000390100001c0000003d010000b50000000500000039011c003901b5003d01b5003d011c0039011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000003d0100001c00000042010000b5000000050000003d011c003d01b5004201b50042011c003d011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000
+0030000000420100001c00000048010000b50000000500000042011c004201b5004801b50048011c0042011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000480100001c0000004d010000b50000000500000048011c004801b5004d01
+b5004d011c0048011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000004d0100001c00000051010000b5000000050000004d011c004d01b5005101b50051011c004d011c00250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000510100001c00000056010000b50000000500000051011c005101b5005601b50056011c0051011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000
+250000000c00000004000000250000000c000000080000805600000030000000560100001c0000005b010000b50000000500000056011c005601b5005b01b5005b011c0056011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000005b0100
+001c00000060010000b5000000050000005b011c005b01b5006001b50060011c005b011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000600100001c00000063010000b50000000500000060011c006001b5006301b50063011c006001
+1c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000630100001c00000068010000b50000000500000063011c006301b5006801b50068011c0063011c00250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000680100001c0000006c010000b50000000500000068011c006801b5006c01b5006c011c0068011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c000000
+04000000250000000c0000000800008056000000300000006c0100001c00000070010000b5000000050000006c011c006c01b5007001b50070011c006c011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000700100001c000000750100
+00b50000000500000070011c007001b5007501b50075011c0070011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000750100001c0000007a010000b50000000500000075011c007501b5007a01b5007a011c0075011c00250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000007a0100001c0000007f010000b5000000050000007a011c007a01b5007f01b5007f011c007a011c00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000007f0100001c00000085010000b5000000050000007f011c007f01b5008501b50085011c007f011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c0000000400000025000000
+0c000000080000805600000030000000850100001c00000089010000b50000000500000085011c008501b5008901b50089011c0085011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000890100001c0000008d010000b5000000050000
+0089011c008901b5008d01b5008d011c0089011c00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000008d0100001c0000008e010000b5000000050000008d011c008d01b5008e01b5008e011c008d011c00250000000c000000080000802500
+00000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000e00050ffb20099003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00
+00000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c500000005000000a5010000cc00000004000000c00d500be018500be018c001c00dc001250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000ea000000e3ffffff89010000d6ffffff160000000c00000001000000120000000c000000010000001b00
+0000100000000000000000000000160000000c00000000000000540000009c0000001101000022000000590100002e0000000100000000400d4200040dc215010000e3ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000506000000060000000600000006000000090000000600000003000000060000000300000003
+0000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c0000001e0100002f0000004c0100003a0000
+000100000000400d4200040dc222010000d6ffffff080000004c000000000000000000000000000000ffffffffffffffff5c000000540065006e00640065006e006300790005000000060000000600000006000000060000000600000006000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000
+000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000e000c4ff9201c4ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000c50000002a000000a50100005800000002000000c00d1004e0181004250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e100000045000000e4000000510000000100000000400d4200040dc2e5000000c0ffffff010000004c00
+0000000000000000000000000000ffffffffffffffff500000002000006c030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000f20000004500000056010000510000000100000000400d4200040dc2f6000000c0ffffff11000000
+4c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000001907000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff0500
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e100000052000000e40000005e0000000100000000400d4200040dc2e5000000b3ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000086030000000a0000001000000004000000050000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff
+05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f2000000520000007c0100005e0000000100000000400d4200040dc2f6000000b3ffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000053004c0049004700480054004c0059005f0049004e004300520045004100530049004e00470020
+003d0020003100805607000000060000000300000008000000070000000700000006000000070000000600000003000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b0000005400000054000000e10000005f000000e40000006b0000000100000000400d4200040dc2e5000000a6ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000009b030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b00000054000000a0000000f20000005f000000430100006b0000000100000000400d4200040dc2f6000000a6ffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000049004e004300520045004100530049004e00470020003d0020003200030000000700000007000000070000000700000007000000070000000300000007000000080000000300
+00000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010
+00000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e10000006c000000e4000000780000000100000000400d4200040dc2e500000099ffffff010000004c000000000000000000000000000000ffffffff
+ffffffff5000000020000002030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f20000006c00000082010000780000000100000000400d4200040dc2f600000099ffffff170000004c000000000000000000000000000000ffff
+ffffffffffff7c0000005300540052004f004e0047004c0059005f0049004e004300520045004100530049004e00470020003d0020003300012507000000070000000700000008000000070000000800000006000000070000000600000003000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000004000000050000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e100000079000000e4000000850000000100000000400d4200040dc2e50000008cffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000b29c030000000a0000001000000004000000050000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f20000007900000080010000850000000100000000400d4200040dc2f60000008cffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000053004c0049004700480054004c0059005f00440045
+004300520045004100530049004e00470020003d0020003400ff0d07000000060000000300000008000000070000000700000006000000070000000600000007000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e100000086000000e4000000920000000100000000400d4200040dc2e50000007fffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000041030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a0000000f20000008600000047010000920000000100000000400d4200040dc2f60000007fffffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000440045004300520045004100530049004e00470020003d0020003500070000000700000007000000070000000700000007000000
+07000000030000000700000008000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e100000093000000e40000009f0000000100000000400d4200040dc2e500000072ffffff010000004c00
+0000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000f200000093000000860100009f0000000100000000400d4200040dc2f600000072ffffff17000000
+4c000000000000000000000000000000ffffffffffffffff7c0000005300540052004f004e0047004c0059005f00440045004300520045004100530049004e00470020003d0020003600006407000000070000000700000008000000070000000800000006000000070000000600000007000000070000000700000007000000070000000700000007000000030000000700000008000000030000000600000003000000060000
+000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000e1000000a0000000e4000000ac0000000100000000400d4200040dc2e500000065ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000002503
+0000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000094000000f2000000a00000003d010000ac0000000100000000400d4200040dc2f600000065ffffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000043004f
+004e005300540041004e00540020003d00200037000700000008000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001a002efd4e0105022100000008000000620000000c000000010000001100
+00000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000016000000d200000064010000d7020000050000006001200d6001702d4016702d4016200d6001200d250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001a002efd4e0105023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ffffffffbb0000007b010000ee020000040000006001702d4016702d4016200d6001200d250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b84100c033c40000a74300400144bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100
+0000170031fd4e010502250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000013000000cf000000c1000000d4020000050000001300cf001300d402c100d402c100cf001300cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000c1000000cf000000c9000000d402000005000000c100cf00c100d402c900d402c900cf00c100cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080
+5600000030000000c9000000cf000000d2000000d402000005000000c900cf00c900d402d200d402d200cf00c900cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d2000000cf000000da000000d402000005000000d200cf00d200d4
+02da00d402da00cf00d200cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000da000000cf000000e2000000d402000005000000da00cf00da00d402e200d402e200cf00da00cf00250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000e2000000cf000000eb000000d402000005000000e200cf00e200d402eb00d402eb00cf00e200cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000
+000000250000000c00000004000000250000000c000000080000805600000030000000eb000000cf000000f3000000d402000005000000eb00cf00eb00d402f300d402f300cf00eb00cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000
+f3000000cf000000fc000000d402000005000000f300cf00f300d402fc00d402fc00cf00f300cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000fc000000cf00000004010000d402000005000000fc00cf00fc00d4020401d4020401cf
+00fc00cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000004010000cf0000000c010000d4020000050000000401cf000401d4020c01d4020c01cf000401cf00250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000000c010000cf00000014010000d4020000050000000c01cf000c01d4021401d4021401cf000c01cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c
+00000004000000250000000c00000008000080560000003000000014010000cf0000001b010000d4020000050000001401cf001401d4021b01d4021b01cf001401cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000001b010000cf000000
+21010000d4020000050000001b01cf001b01d4022101d4022101cf001b01cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000021010000cf00000029010000d4020000050000002101cf002101d4022901d4022901cf002101cf00250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000029010000cf00000032010000d4020000050000002901cf002901d4023201d4023201cf002901cf00250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000032010000cf0000003a010000d4020000050000003201cf003201d4023a01d4023a01cf003201cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c0000000400000025
+0000000c0000000800008056000000300000003a010000cf00000045010000d4020000050000003a01cf003a01d4024501d4024501cf003a01cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000045010000cf0000004f010000d4020000
+050000004501cf004501d4024f01d4024f01cf004501cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000004f010000cf00000057010000d4020000050000004f01cf004f01d4025701d4025701cf004f01cf00250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000057010000cf00000060010000d4020000050000005701cf005701d4026001d4026001cf005701cf00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000060010000cf00000061010000d4020000050000006001cf006001d4026101d4026101cf006001cf00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000170031fd4e0105023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c00000005000080560000002c000000fcffffffb800000078010000eb020000040000003001402d1016402d1016f00c3001f00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff0500
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002100000030ffffff5c01000023ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c00000096000000d5000000de000000e10000000100000000400d4200040dc29a00000030
+ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000004060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000
+04000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000840000009e000000e2000000d6000000ed0000000100000000400d4200040dc2a200000023ffffff090000004c000000000000000000000000000000ffffffffffffffff600000004300610075007300650043006f00
+6400650000000700000006000000060000000600000006000000070000000600000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000
+400000170011ff650111ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000
+00000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000fcffffffdd000000780100000b010000020000003001400f1016400f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c0000
+00ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000f80000001b000000040100000100000000400d4200040dc21c0000000dffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000c030000000a0000001000000004000000050000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000029000000f80000008d000000040100000100000000400d4200040dc22d0000000dffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020
+003000002707000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018
+000000050100001b000000110100000100000000400d4200040dc21c00000000ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000018030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000
+002900000005010000b1000000110100000100000000400d4200040dc22d00000000ffffff160000004c000000000000000000000000000000ffffffffffffffff7800000054005200410046004600490043005f0043004f004e00470045005300540049004f004e0020003d0020003100070000000700000007000000060000000600000003000000070000000600000007000000080000000700000008000000070000000700
+000007000000030000000800000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000120100001b0000001e0100000100000000400d4200040dc21c000000f3feffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020000004030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009400000029000000120100006f0000001e0100000100000000400d4200040dc22d000000f3feffff0c00
+00004c000000000000000000000000000000ffffffffffffffff640000004100430043004900440045004e00540020003d00200032000700000007000000070000000300000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b0000005400000054000000180000001f0100001b0000002b0100000100000000400d4200040dc21c000000e6feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ff62030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b000000540000009c000000290000001f0100007e0000002b0100000100000000400d4200040dc22d000000e6feffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000052004f004100440057004f0052004b00530020003d002000330000000700000008000000070000000700000009000000080000000700000007000000070000000300000006
+00000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000002c0100001b000000380100000100000000400d4200040dc21c000000d9feffff010000004c000000000000000000000000000000ffffffffffffff
+ff5000000020002b08030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000290000002c01000090000000380100000100000000400d4200040dc22d000000d9feffff100000004c000000000000000000000000000000ffffffffff
+ffffff6c0000004e004100520052004f0057005f004c0041004e004500530020003d0020003400070000000700000007000000070000000800000009000000060000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b000000540000005400000018000000390100001b000000450100000100000000400d4200040dc21c000000ccfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000010030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b00000054000000b4000000290000003901000087000000450100000100000000400d4200040dc22d000000ccfeffff110000004c000000000000000000000000000000ffffffffffffffff7000000049004d0050004100530053004900420049004c0049005400590020003d002000350000070300000009000000070000000700000007000000070000000300000007000000
+0300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000460100001b000000520100000100000000400d4200040dc21c000000bffeffff0100
+00004c000000000000000000000000000000ffffffffffffffff5000000020000010030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000290000004601000091000000520100000100000000400d4200040dc22d000000bffeffff
+110000004c000000000000000000000000000000ffffffffffffffff7000000053004c004900500050004500520059005f0052004f004100440020003d0020003600000807000000060000000300000007000000070000000700000007000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcff
+ffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000530100001b0000005f0100000100000000400d4200040dc21c000000b2feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000040030000000a0000001000000004000000050000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000002900000053010000850000005f0100000100000000400d4200040dc22d000000b2feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000410051005500410050004c0041004e0049004e00470020003d0020003700ff28070000
+0008000000070000000700000007000000060000000700000007000000030000000700000008000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000600100001b0000006c01000001
+00000000400d4200040dc21c000000a5feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000010030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007c0000002900000060010000520000006c0100
+000100000000400d4200040dc22d000000a5feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000460049005200450020003d002000380006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b0000005400000054000000180000006d0100001b000000790100000100000000400d4200040dc21c00000098feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000010030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b000000540000000c010000290000006d010000f0000000790100000100000000400d4200040dc22d00000098feffff200000004c000000000000000000000000000000ffffffffffffffff8c000000480041005a004100520044004f00550053005f00440052004900560049004e0047005f0043004f004e0044004900540049004f004e00530020003d0020003900070000000700
+00000600000007000000070000000700000008000000070000000700000006000000070000000700000003000000070000000300000007000000080000000600000007000000080000000700000007000000030000000700000003000000080000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000007a0100001b000000860100000100000000400d4200040dc21c0000008bfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000017030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000290000007a010000c4000000860100000100000000400d4200040dc22d0000008bfeffff180000004c000000000000000000000000000000ffffffffffffffff7c0000004f0042004a0045004300540053005f004f004e005f005400480045005f0052004f004100440020003d0020003100300008
+00000007000000050000000700000007000000070000000700000006000000080000000700000006000000070000000700000007000000060000000700000008000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b000000540000005400000018000000870100001b000000930100000100000000400d4200040dc21c0000007efeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000c030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b00000054000000d80000002900000087010000be000000930100000100000000400d4200040dc22d0000007efeffff170000004c000000000000000000000000000000ffffffffffffffff7c00000041004e0049004d0041004c0053005f004f004e005f0052004f004100440057004100590020003d00200031003100005407000000070000000300000009000000070000000600000007000000
+060000000800000007000000060000000700000008000000070000000700000009000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000940100001b00
+0000a00100000100000000400d4200040dc21c00000071feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000002900000094010000
+ba000000a00100000100000000400d4200040dc22d00000071feffff160000004c000000000000000000000000000000ffffffffffffffff78000000500045004f0050004c0045005f004f004e005f0052004f004100440057004100590020003d00200031003200070000000700000008000000070000000600000007000000060000000800000007000000060000000700000008000000070000000700000009000000070000
+000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000a10100001b000000ad0100000100000000400d4200040dc21c00000064feffff010000004c0000000000000000
+00000000000000ffffffffffffffff5000000020000046030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e400000029000000a1010000ca000000ad0100000100000000400d4200040dc22d00000064feffff190000004c000000000000
+000000000000000000ffffffffffffffff80000000420052004f004b0045004e005f0044004f0057004e005f00560045004800490043004c004500530020003d00200031003300db0407000000070000000800000007000000070000000700000006000000070000000800000009000000070000000600000007000000070000000700000003000000070000000600000007000000070000000300000006000000030000000600
+0000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000ae0100001b000000ba0100000100000000400d4200040dc21c00000057feffff010000004c000000000000000000000000000000ffffffffffffffff50000000
+200000ac030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000001401000029000000ae01000001010000ba0100000100000000400d4200040dc22d00000057feffff210000004c000000000000000000000000000000ffffffffffffffff9000
+0000560045004800490043004c0045005f004f004e005f00570052004f004e0047005f004300410052005200490041004700450057004100590020003d00200031003400009207000000070000000700000003000000070000000600000007000000060000000800000007000000060000000900000007000000080000000700000008000000060000000700000007000000070000000700000003000000070000000800000007
+00000009000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000bb0100001b000000c70100000100000000400d4200040dc21c0000004afeffff010000
+004c000000000000000000000000000000ffffffffffffffff5000000020000004030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000004401000029000000bb0100003a010000c70100000100000000400d4200040dc22d0000004afeffff29
+0000004c000000000000000000000000000000ffffffffffffffffa00000005200450053004300550045005f0041004e0044005f005200450043004f0056004500520059005f0057004f0052004b005f0049004e005f00500052004f004700520045005300530020003d0020003100350000f007000000070000000700000007000000070000000700000006000000070000000700000007000000060000000700000007000000
+070000000800000007000000070000000700000007000000060000000900000008000000070000000700000006000000030000000700000006000000070000000700000008000000080000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000c80100001b000000d40100000100000000400d4200040dc21c0000003dfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000029000000c8010000c1000000d40100000100000000400d4200040dc22d0000003dfeffff170000004c000000000000000000000000000000ffffffffffffffff7c00000052004500470055004c00410054004f00520059005f004d0045004100530055005200450020003d00200031003600000c0700000007000000080000
+0007000000060000000700000007000000080000000700000007000000060000000900000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+0000005400000018000000d50100001b000000e10100000100000000400d4200040dc21c00000030feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000004030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+00540000000801000029000000d5010000f3000000e10100000100000000400d4200040dc22d00000030feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000450058005400520045004d0045005f0057004500410054004800450052005f0043004f004e0044004900540049004f004e00530020003d0020003100370000000700000007000000070000000700000007000000090000000700
+00000600000009000000070000000700000007000000070000000700000007000000060000000700000008000000070000000700000003000000070000000300000008000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b000000540000005400000018000000e20100001b000000ee0100000100000000400d4200040dc21c00000023feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000018030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000d800000029000000e2010000ad000000ee0100000100000000400d4200040dc22d00000023feffff170000004c000000000000000000000000000000ffffffffffffffff7c0000005600490053004900420049004c004900540059005f00520045004400550043004500440020003d00200031003800001107000000030000000700000003000000070000000300000006
+000000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000ef0100
+001b000000fb0100000100000000400d4200040dc21c00000016feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000018030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000029000000ef
+01000091000000fb0100000100000000400d4200040dc22d00000016feffff120000004c000000000000000000000000000000ffffffffffffffff70000000500052004500430049005000490054004100540049004f004e0020003d002000310039000700000007000000070000000700000003000000070000000300000007000000070000000700000003000000080000000700000003000000060000000300000006000000
+060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000fc0100001b000000080200000100000000400d4200040dc21c00000009feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000
+0064030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc00000029000000fc010000b0000000080200000100000000400d4200040dc22d00000009feffff150000004c000000000000000000000000000000ffffffffffffffff78000000
+5200450043004b004c004500530053005f0050004500520053004f004e00530020003d0020003200300000010700000007000000070000000700000006000000070000000700000007000000060000000700000007000000070000000700000008000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff050000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000090200001b000000150200000100000000400d4200040dc21c000000fcfdffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000a0030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000044010000290000000902000036010000150200000100000000400d4200040dc22d000000fcfdffff290000004c000000000000000000000000000000ffffffffffffffffa00000004f005600450052005f004800450049004700480054005f005700410052004e0049004e0047005f00530059
+005300540045004d005f0054005200490047004700450052004500440020003d002000320031000018080000000700000007000000070000000600000007000000070000000300000008000000070000000700000006000000090000000700000007000000070000000300000007000000080000000600000007000000070000000700000007000000070000000900000006000000070000000700000003000000080000000800
+00000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000160200001b000000220200000100000000400d4200040dc21c000000effdffff
+010000004c000000000000000000000000000000ffffffffffffffff500000002000000f030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c0100002900000016020000f4000000220200000100000000400d4200040dc22d000000effd
+ffff200000004c000000000000000000000000000000ffffffffffffffff8c00000054005200410046004600490043005f0052004500470055004c004100540049004f004e0053005f004300480041004e0047004500440020003d00200032003200070000000700000007000000060000000600000003000000070000000600000007000000070000000800000007000000060000000700000007000000030000000800000007
+00000007000000060000000700000007000000070000000700000008000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000230200001b0000002f0200
+000100000000400d4200040dc21c000000e2fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020002c02030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac00000029000000230200008e0000002f
+0200000100000000400d4200040dc22d000000e2fdffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004d0041004a004f0052005f004500560045004e00540020003d00200032003300090000000700000005000000080000000700000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a000000100000000400000005000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000300200001b0000003c0200000100000000400d4200040dc21c000000d5fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000040000000500
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000002900000030020000cd0000003c0200000100000000400d4200040dc22d000000d5fdffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000053004500520056004900430045005f004e004f00
+54005f004f005000450052004100540049004e00470020003d0020003200340007000000070000000700000007000000030000000700000007000000060000000700000008000000070000000600000008000000070000000700000007000000070000000700000003000000070000000800000003000000060000000300000006000000060000000a0000001000000004000000050000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcff
+ffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000003d0200001b000000490200000100000000400d4200040dc21c000000c8fdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff030000000a0000001000000004000000050000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000290000003d020000c0000000490200000100000000400d4200040dc22d000000c8fdffff180000004c000000000000000000000000000000ffffffffffffffff7c00000053004500520056004900430045005f004e004f0054005f00550053004500410042004c
+00450020003d002000320035000700000007000000070000000700000003000000070000000700000006000000070000000800000007000000060000000700000007000000070000000700000007000000060000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000004a0200001b000000560200000100000000400d4200040dc21c000000bbfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000290000004a020000c8000000560200000100000000400d4200040dc22d000000bbfdffff190000004c000000000000000000000000000000ffffffffffffffff8000000053004c004f0057005f004d004f00560049004e0047005f00560045004800490043004c004500530020003d00200032003600000007000000060000000800
+0000090000000600000009000000080000000700000003000000070000000800000006000000070000000700000007000000030000000700000006000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b000000540000005400000018000000570200001b000000630200000100000000400d4200040dc21c000000aefdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000f00000002900000057020000db000000630200000100000000400d4200040dc22d000000aefdffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000440041004e004700450052004f00550053005f0045004e0044005f004f0046005f005100550045005500450020003d00200032003700000007000000070000000700000008000000070000000700000008
+00000007000000070000000600000007000000070000000700000006000000080000000600000006000000080000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+00540000005400000018000000640200001b000000700200000100000000400d4200040dc21c000000a1fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000b400000029000000640200008a000000700200000100000000400d4200040dc22d000000a1fdffff110000004c000000000000000000000000000000ffffffffffffffff700000005200490053004b005f004f0046005f00460049005200450020003d00200032003800000007000000030000000700000007000000060000000800000006000000060000000600000003000000070000000700000003000000
+060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000710200001b0000007d0200000100000000400d4200040dc21c00000094fdffff010000004c000000000000000000000000000000ffff
+ffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000002900000071020000830000007d0200000100000000400d4200040dc22d00000094fdffff0f0000004c000000000000000000000000000000
+ffffffffffffffff6c000000540049004d0045005f00440045004c004100590020003d0020003200390000000700000003000000090000000700000006000000070000000700000006000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b0000005400000054000000180000007e0200001b0000008a0200000100000000400d4200040dc21c00000087fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000d0000000290000007e020000b00000008a0200000100000000400d4200040dc22d00000087fdffff160000004c000000000000000000000000000000ffffffffffffffff7800000050004f004c004900430045005f0043004800450043004b0050004f0049004e00540020003d002000330030000700000008000000060000000300000007000000070000
+00060000000700000007000000070000000700000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000180000008b0200001b
+000000970200000100000000400d4200040dc21c0000007afdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000030010000290000008b0200
+001c010000970200000100000000400d4200040dc22d0000007afdffff260000004c000000000000000000000000000000ffffffffffffffff980000004d0041004c00460055004e004300540049004f004e0049004e0047005f0052004f004100440053004900440045005f00450051005500490050004d0045004e00540020003d00200033003100090000000700000006000000060000000700000007000000070000000700
+00000300000008000000070000000300000007000000080000000600000007000000080000000700000007000000070000000300000007000000070000000600000007000000080000000700000003000000070000000900000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000002c0000002000000045
+4d462b0a4000c01c00000010000000c0bfc0ff01000000b2016fff8a0072002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ae01000024000000380200009600000005000000
+e01a4002e01a60098023600980234002e01a4002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000
+00b2016fff8a0072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000970100000d0000004f020000ad00000004000000e01a
+60098023600980234002e01a4002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080d74300000ec300000a430000e442bed7e8ffe3f2fcffbe
+d7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000af0172ff8a007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000ab01000021000000f30100009300000005000000ab012100ab019300f3019300f3012100
+ab012100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000f301000021000000f70100009300000005000000f3012100f3019300f7019300f7012100f3012100250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000f701000021000000fa0100009300000005000000f7012100f7019300fa019300fa012100f7012100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00
+000004000000250000000c000000080000805600000030000000fa01000021000000fd0100009300000005000000fa012100fa019300fd019300fd012100fa012100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000fd0100002100000001
+0200009300000005000000fd012100fd0193000102930001022100fd012100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000000102000021000000040200009300000005000000010221000102930004029300040221000102210025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000004020000210000000802000093000000050000000402210004029300080293000802210004022100250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000008020000210000000b020000930000000500000008022100080293000b0293000b02210008022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c000000040000002500
+00000c0000000800008056000000300000000b020000210000000f02000093000000050000000b0221000b0293000f0293000f0221000b022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000000f02000021000000120200009300000005
+0000000f0221000f02930012029300120221000f022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000012020000210000001602000093000000050000001202210012029300160293001602210012022100250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000016020000210000001902000093000000050000001602210016029300190293001902210016022100250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f1e2cd0000000000250000000c00000004000000250000000c00000008000080560000003000000019020000210000001d020000930000000500000019022100190293001d0293001d02210019022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800
+008056000000300000001d020000210000002002000093000000050000001d0221001d02930020029300200221001d022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c00000008000080560000003000000020020000210000002302000093000000050000002002210020
+029300230293002302210020022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000023020000210000002802000093000000050000002302210023029300280293002802210023022100250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000028020000210000002c020000930000000500000028022100280293002c0293002c02210028022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac3
+0000000000250000000c00000004000000250000000c0000000800008056000000300000002c020000210000002f02000093000000050000002c0221002c0293002f0293002f0221002c022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000
+00002f020000210000003302000093000000050000002f0221002f02930033029300330221002f022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000330200002100000035020000930000000500000033022100330293003502930035
+02210033022100250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000af0172ff8a0072003a0000000c0000000a00000024000000
+240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000940100000a0000004c020000aa00000004000000b01a30095023300950231002b01a1002250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000b9010000deffffff30020000d1ffffff160000000c
+00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000cc0100002700000014020000330000000100000000400d4200040dc2d0010000deffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00000006000000060000000600000006000000
+0900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400
+000094000000ce01000034000000120200003f0000000100000000400d4200040dc2d2010000d1ffffff0c0000004c000000000000000000000000000000ffffffffffffffff640000005700610072006e0069006e0067004c006500760065006c000900000006000000040000000600000003000000060000000600000006000000060000000700000006000000030000000a0000001000000004000000050000000c00000010
+0000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000af01bfff3902bfff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c00000001000000
+0a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000940100002f0000004c0200005d0000
+0002000000b01a600450236004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054
+000000b00100004a000000b3010000560000000100000000400d4200040dc2b4010000bbffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00b4000000c10100004a00000025020000560000000100000000400d4200040dc2c5010000bbffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600
+000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000b001000057000000b3010000630000000100000000400d4200040dc2b4010000aeffffff010000004c000000000000000000000000000000ffffffffffffffff
+5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000c1010000570000001a020000630000000100000000400d4200040dc2c5010000aeffffff0f0000004c000000000000000000000000000000ffffffffffff
+ffff6c00000049004e0046004f0052004d004100540049005600450020003d002000310000000300000007000000060000000800000007000000090000000700000007000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b0000005400000054000000b001000064000000b3010000700000000100000000400d4200040dc2b4010000a1ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000b8000000c10100006400000031020000700000000100000000400d4200040dc2c5010000a1ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000440041004e004700450052005f004c004500560045004c005f00310020003d002000320007000000070000000700000008000000070000000700000006000000060000000700000007
+00000007000000060000000600000006000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000b001000071000000b30100007d0000000100000000400d4200040dc2b401000094ffffff010000
+004c000000000000000000000000000000ffffffffffffffff500000002000e102030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000c101000071000000310200007d0000000100000000400d4200040dc2c501000094ffffff12
+0000004c000000000000000000000000000000ffffffffffffffff70000000440041004e004700450052005f004c004500560045004c005f00320020003d00200033000700000007000000070000000800000007000000070000000600000006000000070000000700000007000000060000000600000006000000030000000600000003000000060000000a0000001000000004000000050000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000b00100007e000000b30100008a0000000100000000400d4200040dc2b401000087ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000c10100007e000000310200008a0000000100000000400d4200040dc2c501000087ffffff120000004c000000000000000000000000000000ffffffffffffffff70000000440041004e004700450052005f004c004500560045004c005f00330020003d00
+200034000700000007000000070000000800000007000000070000000600000006000000070000000700000007000000060000000600000006000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005c026fffa40072002100000008000000620000000c0000
+0001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000005802000024000000fc02000096000000050000008025400280256009c02f6009c02f400280254002250000000c00000007000080250000000c000000000000802400
+00002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005c026fffa40072003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00
+00000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000410200000d00000013030000ad0000000400000080256009c02f6009c02f400280254002250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000040164400000ec3000024430000e442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000
+000200000001000000590272ffa4007200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000005502000021000000ab02000093000000050000005502210055029300ab029300ab02210055022100250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000ab02000021000000af0200009300000005000000ab022100ab029300af029300af022100ab022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c
+000000080000805600000030000000af02000021000000b30200009300000005000000af022100af029300b3029300b3022100af022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000b302000021000000b80200009300000005000000
+b3022100b3029300b8029300b8022100b3022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000b802000021000000bd0200009300000005000000b8022100b8029300bd029300bd022100b8022100250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000bd02000021000000c10200009300000005000000bd022100bd029300c1029300c1022100bd022100250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000c102000021000000c50200009300000005000000c1022100c1029300c5029300c5022100c1022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056
+00000030000000c502000021000000ca0200009300000005000000c5022100c5029300ca029300ca022100c5022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000ca02000021000000cf0200009300000005000000ca022100ca029300
+cf029300cf022100ca022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000021000000d40200009300000005000000cf022100cf029300d4029300d4022100cf022100250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000d402000021000000d80200009300000005000000d4022100d4029300d8029300d8022100d4022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd000000
+0000250000000c00000004000000250000000c000000080000805600000030000000d802000021000000dc0200009300000005000000d8022100d8029300dc029300dc022100d8022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000dc
+02000021000000e00200009300000005000000dc022100dc029300e0029300e0022100dc022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000e002000021000000e40200009300000005000000e0022100e0029300e4029300e4022100
+e0022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000e402000021000000e90200009300000005000000e4022100e4029300e9029300e9022100e4022100250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000e902000021000000ee0200009300000005000000e9022100e9029300ee029300ee022100e9022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00
+000004000000250000000c000000080000805600000030000000ee02000021000000f20200009300000005000000ee022100ee029300f2029300f2022100ee022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000f202000021000000f6
+0200009300000005000000f2022100f2029300f6029300f6022100f2022100250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000f602000021000000f90200009300000005000000f6022100f6029300f9029300f9022100f602210025000000
+0c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000590272ffa40072003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000003e0200000a00000010030000aa0000000400000050253009902f3009902f100250251002250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000063020000defffffff4020000d1ffffff160000000c0000000100000012000000
+0c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000008302000027000000cb020000330000000100000000400d4200040dc287020000deffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000
+000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c00000007602000034
+000000d90200003f0000000100000000400d4200040dc27a020000d1ffffff130000004c000000000000000000000000000000ffffffffffffffff740000004c0061006e0065005200650073007400720069006300740069006f006e005400790070006500000006000000060000000600000006000000070000000600000006000000030000000400000003000000060000000300000003000000060000000600000005000000
+0500000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005902bffffd02bfff00010101154001001000000004000000000000
+002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000040000002500
+00000c0000000500008057000000240000003e0200002f000000100300005d0000000200000050256004902f6004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005a0200004a0000005d020000560000000100000000400d4200040dc25e020000bbffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007431030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000006b0200004a000000cf020000560000000100000000400d4200040dc26f020000bbffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000657607000000080000000700000006000000070000000700000007
+000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005a020000570000005d020000630000000100000000400d4200040dc25e0200
+00aeffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007665030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac0000006b02000057000000cf020000630000000100000000400d4200040dc26f
+020000aeffffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004c0041004e00450053005f0043004c004f0053004500440020003d0020003100060000000700000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffff
+ff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005a020000640000005d020000700000000100000000400d4200040dc25e020000a1ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007465030000000a0000001000000004000000050000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fc
+ffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a00000006b02000064000000c2020000700000000100000000400d4200040dc26f020000a1ffffff0e0000004c000000000000000000000000000000ffffffffffffffff680000004c0041004e00450053005f004f00500045004e0020003d00200032000600000007000000
+0700000007000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000
+00100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005a020000710000005d0200007d0000000100000000400d420004
+0dc25e02000094ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007d0d030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d00000006b02000071000000f50200007d0000000100000000400d42
+00040dc26f02000094ffffff160000004c000000000000000000000000000000ffffffffffffffff78000000520049004700480054005f004c0041004e00450053005f0043004c004f0053004500440020003d002000330007000000030000000800000007000000070000000600000006000000070000000700000007000000070000000600000007000000060000000800000007000000070000000700000003000000060000
+0003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000005a0200007e0000005d0200008a0000000100000000400d4200040dc25e02000087ffffff010000004c000000000000000000000000000000ffffffffffffffff50
+00000020006265030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000006b0200007e000000ef0200008a0000000100000000400d4200040dc26f02000087ffffff150000004c000000000000000000000000000000ffffffffffffff
+ff780000004c004500460054005f004c0041004e00450053005f0043004c004f0053004500440020003d0020003400205c0600000007000000060000000700000006000000060000000700000007000000070000000700000006000000070000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c0000001000000000000000000000004600
+00002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002200fffb2b0117012100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000001e000000ef02000049
+0100000604000005000000e001f02ee0016040901460409014f02ee001f02e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040
+180000000c000000010000002200fffb2b0117013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000007000000d8020000600100
+001d04000004000000e0016040901460409014f02ee001f02e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f84100807fc4008095430080
+8b43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001f0002fc2b011701250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001b000000ec020000b700000003040000050000001b00ec021b
+000304b7000304b700ec021b00ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000b7000000ec020000be0000000304000005000000b700ec02b7000304be000304be00ec02b700ec02250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000be000000ec020000c60000000304000005000000be00ec02be000304c6000304c600ec02be00ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd
+0000000000250000000c00000004000000250000000c000000080000805600000030000000c6000000ec020000cd0000000304000005000000c600ec02c6000304cd000304cd00ec02c600ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000
+0000cd000000ec020000d40000000304000005000000cd00ec02cd000304d4000304d400ec02cd00ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d4000000ec020000dc0000000304000005000000d400ec02d4000304dc000304dc
+00ec02d400ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000dc000000ec020000e40000000304000005000000dc00ec02dc000304e4000304e400ec02dc00ec02250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000e4000000ec020000eb0000000304000005000000e400ec02e4000304eb000304eb00ec02e400ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000
+000c00000004000000250000000c000000080000805600000030000000eb000000ec020000f20000000304000005000000eb00ec02eb000304f2000304f200ec02eb00ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000f2000000ec02
+0000f90000000304000005000000f200ec02f2000304f9000304f900ec02f200ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000f9000000ec020000010100000304000005000000f900ec02f9000304010103040101ec02f900ec0225
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000000001010000ec0200000701000003040000050000000101ec0201010304070103040701ec020101ec02250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000007010000ec0200000d01000003040000050000000701ec02070103040d0103040d01ec020701ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c000000040000
+00250000000c0000000800008056000000300000000d010000ec0200001401000003040000050000000d01ec020d010304140103041401ec020d01ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000014010000ec0200001c0100000304
+0000050000001401ec02140103041c0103041c01ec021401ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000001c010000ec0200002401000003040000050000001c01ec021c010304240103042401ec021c01ec02250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000024010000ec0200002d01000003040000050000002401ec02240103042d0103042d01ec022401ec02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000002d010000ec0200003601000003040000050000002d01ec022d010304360103043601ec022d01ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000
+0008000080560000003000000036010000ec0200003d01000003040000050000003601ec02360103043d0103043d01ec023601ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000003d010000ec0200004501000003040000050000003d01
+ec023d010304450103044501ec023d01ec02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c00000008000080560000003000000045010000ec0200004601000003040000050000004501ec0245010304460103044601ec024501ec02250000000c00000008000080250000000c
+00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001f0002fc2b0117013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000004000000d50200005d0100001a04000004000000b0013040601430406014c02eb001c02e250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002900000013fdffff4101000006fdffff160000000c00000001000000120000000c000000010000001b00000010
+0000000000000000000000160000000c00000000000000540000009c0000008d000000f2020000d5000000fe0200000100000000400d4200040dc29100000013fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb007b5c06000000060000000600000006000000090000000600000003000000060000000300000003000000
+0600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000008800000093000000ff020000cf0000000a0300000100
+000000400d4200040dc29700000006fdffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000041006400760069006300650043006f0064006500070000000600000007000000030000000600000006000000070000000600000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001f00f4fc4a01f4fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000004000000fa0200005d0100002803000002000000b001103160141031250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000001503000023000000210300000100000000400d4200040dc224000000f0
+fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020007330030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000310000001503000095000000210300000100000000400d4200040dc2350000
+00f0fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000454307000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002000000022030000230000002e0300000100000000400d4200040dc224000000e3fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006636030000000a0000001000000004000000050000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000440100003100000022030000340100002e0300000100000000400d4200040dc235000000e3fcffff290000004c000000000000000000000000000000ffffffffffffffffa0000000440052004900560045005f0054004f005f004e004500580054005f004100
+5600410049004c00410042004c0045005f005000410052004b0049004e0047005f0050004c0041004300450020003d0020003100656e0700000007000000030000000700000007000000060000000700000008000000060000000700000007000000070000000700000006000000070000000700000007000000030000000600000007000000070000000600000007000000060000000700000007000000070000000700000003
+0000000700000008000000060000000700000006000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000002f030000230000003b0300000100000000400d
+4200040dc224000000d6fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000685c030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000310000002f030000db0000003b0300000100000000
+400d4200040dc235000000d6fcffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004f00560045005200540041004b0049004e0047005f004e004f0054005f0041004c004c004f0057004500440020003d00200032000800000007000000070000000700000007000000070000000700000003000000070000000800000006000000070000000800000007000000060000000700000006000000
+0600000008000000090000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000003c03000023000000480300000100000000400d4200040dc224000000c9fcffff0100
+00004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000310000003c030000c1000000480300000100000000400d4200040dc235000000c9fcffff
+170000004c000000000000000000000000000000ffffffffffffffff7c000000440052004900560049004e0047005f004e004f0054005f0041004c004c004f0057004500440020003d0020003300e015070000000700000003000000070000000300000007000000080000000600000007000000080000000700000006000000070000000600000006000000080000000900000007000000070000000300000006000000030000
+00060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000004903000023000000550300000100000000400d4200040dc224000000bcfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020
+000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000003100000049030000ed000000550300000100000000400d4200040dc235000000bcfcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000
+005500530045005f0048004100520044005f00530048004f0055004c004400450052005f00410053005f004c0041004e00450020003d0020003400000007000000070000000700000006000000070000000700000007000000070000000600000007000000070000000800000007000000060000000700000007000000070000000600000007000000070000000600000006000000070000000700000007000000030000000600
+000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060
+000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000005603000023000000620300000100000000400d4200040dc224000000affcffff010000004c000000000000000000000000000000ffffffffffffffff
+5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003100000056030000d4000000620300000100000000400d4200040dc235000000affcffff1a0000004c000000000000000000000000000000ffffffffffff
+ffff8000000057004100490054005f0046004f0052005f0050004f004c004900430045005f0050004100540052004f004c0020003d002000350009000000070000000300000007000000060000000600000008000000070000000600000007000000080000000600000003000000070000000700000006000000070000000700000007000000070000000800000006000000030000000600000003000000060000000a00000010
+00000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002000000063030000230000006f0300000100000000400d4200040dc224000000a2fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000
+001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000003100000063030000ee0000006f0300000100000000400d4200040dc235000000a2fcffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000057004100490054005f
+0046004f0052005f0049004d00500052004f005600450044005f00570045004100540048004500520020003d002000360000000900000007000000030000000700000006000000060000000800000007000000060000000300000009000000070000000700000008000000070000000700000007000000060000000900000007000000070000000700000007000000070000000700000003000000060000000300000006000000
+0a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002000000070030000230000007c0300000100000000400d4200040dc22400000095fcffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000000300
+00000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000500100003100000070030000420100007c0300000100000000400d4200040dc23500000095fcffff2b0000004c000000000000000000000000000000ffffffffffffffffa400000047004900
+560049004e0047005f0050004100540048005f00560045004800490043004c00450053005f0043004f004d0049004e0047005f00460052004f004d005f0042004500480049004e00440020003d002000370000000800000003000000070000000300000007000000080000000600000007000000070000000700000007000000060000000700000007000000070000000300000007000000060000000700000007000000060000
+00070000000800000009000000030000000700000008000000060000000600000007000000080000000900000006000000070000000700000007000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000054000000200000007d03000023000000890300000100000000400d4200040dc22400000088fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020005400030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000c4000000310000007d030000ac000000890300000100000000400d4200040dc23500000088fcffff140000004c000000000000000000000000000000ffffffffffffffff7400000046004f004c004c004f0057005f0044004900560045005200530049004f004e0020003d0020003800060000000800000006000000060000000800000009000000060000000700000003000000070000000700
+00000700000007000000030000000800000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000008a03000023000000960300000100000000400d4200040dc2240000007bfcffff
+010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc000000310000008a030000ef000000960300000100000000400d4200040dc2350000007bfc
+ffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004e004f005f0044004900560045005200530049004f004e005f0054004f005f005200450043004f004d004d0045004e00440020003d0020003900000007000000080000000600000007000000030000000700000007000000070000000700000003000000080000000700000006000000070000000800000006000000070000000700000007
+000000080000000900000009000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000200000009703000023000000a30300000100000000400d4200040dc2240000
+006efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000003100000097030000a0000000a30300000100000000400d4200040dc235
+0000006efcffff120000004c000000000000000000000000000000ffffffffffffffff7000000044004f005f004e004f0054005f0044004900560045005200540020003d002000310030000700000008000000060000000700000008000000070000000600000007000000030000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000a403000023000000b00300000100000000400d4200040dc22400000061fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020006e01030000000a0000001000000004000000050000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000031000000a4030000f3000000b00300000100000000400d4200040dc23500000061fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000046004f004c004c004f0057005f0050004f004c0049004300
+45005f0049004e0053005400520055004300540049004f004e00530020003d002000310031006e01060000000800000006000000060000000800000009000000060000000700000008000000060000000300000007000000070000000600000003000000070000000700000007000000070000000700000007000000070000000300000008000000070000000700000003000000060000000300000006000000060000000a0000
+001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000b103000023000000bd0300000100000000400d4200040dc22400000054fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000c200030000000a
+0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000031000000b1030000a6000000bd0300000100000000400d4200040dc23500000054fcffff130000004c000000000000000000000000000000ffffffffffffffff74000000410056004f0049
+0044005f005400480045005f00410052004500410020003d002000310032000000070000000700000008000000030000000700000006000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000be03000023000000ca0300000100000000400d4200040dc22400000047fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000031000000be030000aa000000ca0300000100000000400d4200040dc23500000047fcffff140000004c000000000000000000000000000000ffffffffffffffff74000000440052004900560045005f004300410052004500460055004c004c00590020003d0020003100330007000000070000000300000007000000070000000600
+000007000000070000000700000007000000060000000700000006000000060000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000cb03000023000000d7030000
+0100000000400d4200040dc2240000003afcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000001000031000000cb030000f1000000d703
+00000100000000400d4200040dc2350000003afcffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000044004f005f004e004f0054005f004c0045004100560045005f0059004f00550052005f00560045004800490043004c00450020003d002000310034000700000008000000060000000700000008000000070000000600000006000000070000000700000007000000070000000600000007
+000000080000000700000007000000060000000700000007000000070000000300000007000000060000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000d80300
+0023000000e40300000100000000400d4200040dc2240000002dfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000031000000d8
+030000ac000000e40300000100000000400d4200040dc2350000002dfcffff140000004c000000000000000000000000000000ffffffffffffffff740000005300570049005400430048005f004f004e005f0052004100440049004f0020003d0020003100350007000000090000000300000007000000070000000700000006000000080000000700000006000000070000000700000007000000030000000800000003000000
+060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000e503000023000000f10300000100000000400d4200040dc22400000020fcffff010000004c000000000000000000000000000000ffff
+ffffffffffff500000002000ffff030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000031000000e5030000a7000000f10300000100000000400d4200040dc23500000020fcffff130000004c000000000000000000000000000000
+ffffffffffffffff740000005500530045005f0054004f004c004c005f004c0041004e004500530020003d002000310036004e00070000000700000007000000060000000700000008000000060000000600000006000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff050000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000020000000f203000023000000fe0300000100000000400d4200040dc22400000013fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000031000000f2030000ac000000fe0300000100000000400d4200040dc23500000013fcffff140000004c000000000000000000000000000000ffffffffffffffff7400000057004100490054005f0046004f0052005f0043004f004e0056004f00490020003d00200031003700090000
+00070000000300000007000000060000000600000008000000070000000600000007000000080000000700000007000000080000000300000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000000f0204fef300c9002100000008000000620000000c00
+000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000000b02000038010000fe0200000102000005000000b0208013b0201020e02f1020e02f8013b0208013250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000f0204fef300c9003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d
+0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f401000021010000150300001802000004000000b0201020e02f1020e02f8013b0208013250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000003440080fcc30000734300004943bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000
+000002000000010000000c0207fef300c900250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000080200003501000087020000fe01000005000000080235010802fe018702fe018702350108023501250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000087020000350100008d020000fe01000005000000870235018702fe018d02fe018d02350187023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c0000000400000025000000
+0c0000000800008056000000300000008d0200003501000093020000fe010000050000008d0235018d02fe019302fe01930235018d023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000930200003501000099020000fe010000050000
+00930235019302fe019902fe019902350193023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000099020000350100009f020000fe01000005000000990235019902fe019f02fe019f02350199023501250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000009f02000035010000a5020000fe010000050000009f0235019f02fe01a502fe01a50235019f023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a502000035010000ab020000fe01000005000000a5023501a502fe01ab02fe01ab023501a5023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080
+5600000030000000ab02000035010000b2020000fe01000005000000ab023501ab02fe01b202fe01b2023501ab023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000b202000035010000b9020000fe01000005000000b2023501b202fe
+01b902fe01b9023501b2023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000b902000035010000c0020000fe01000005000000b9023501b902fe01c002fe01c0023501b9023501250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000c002000035010000c5020000fe01000005000000c0023501c002fe01c502fe01c5023501c0023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000
+000000250000000c00000004000000250000000c000000080000805600000030000000c502000035010000c9020000fe01000005000000c5023501c502fe01c902fe01c9023501c5023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000
+c902000035010000cf020000fe01000005000000c9023501c902fe01cf02fe01cf023501c9023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000035010000d6020000fe01000005000000cf023501cf02fe01d602fe01d60235
+01cf023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000d602000035010000dc020000fe01000005000000d6023501d602fe01dc02fe01dc023501d6023501250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000dc02000035010000e3020000fe01000005000000dc023501dc02fe01e302fe01e3023501dc023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c
+00000004000000250000000c000000080000805600000030000000e302000035010000ea020000fe01000005000000e3023501e302fe01ea02fe01ea023501e3023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ea02000035010000
+f1020000fe01000005000000ea023501ea02fe01f102fe01f1023501ea023501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000f102000035010000f7020000fe01000005000000f1023501f102fe01f702fe01f7023501f1023501250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000f702000035010000fb020000fe01000005000000f7023501f702fe01fb02fe01fb023501f7023501250000000c00000008000080250000000c00000000000080280000000c000000040000002500
+00000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000c0207fef300c9003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f10100001e0100001203000015020000040000008020e01fb02fe01fb02f501380205013250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000016020000cafefffff6020000bdfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000
+0000540000009c0000005e0200003b010000a6020000470100000100000000400d4200040dc262020000cafeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00c0db060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b0000001000000000
+00000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009000000064020000480100009f020000530100000100000000400d4200040dc268020000bdfeffff0b0000
+004c000000000000000000000000000000ffffffffffffffff64000000560065006800690063006c0065005400790070006500000007000000060000000600000003000000060000000300000006000000050000000500000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000c02abfeff02abfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f1010000430100001203000071010000020000008020a015b02fa015250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d0200005e010000100200006a0100000100000000400d4200040dc211020000a7feffff010000004c0000000000
+00000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000001e0200005e010000820200006a0100000100000000400d4200040dc222020000a7feffff110000004c000000
+000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000000007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff050000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d0200006b01000010020000770100000100000000400d4200040dc2110200009afeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000
+120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000780000001e0200006b01000045020000770100000100000000400d4200040dc2220200009afeffff070000004c000000000000000000000000000000ffffffffffffffff5c00000043004100520020003d00200031000000070000000700000007000000030000000600000003000000060000
+000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d0200007801000010020000840100000100000000400d4200040dc2110200008dfeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003
+0000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000840000001e0200007801000053020000840100000100000000400d4200040dc2220200008dfeffff090000004c000000000000000000000000000000ffffffffffffffff600000004c004f
+0052005200590020003d002000320000000600000008000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d0200008501000010020000910100000100000000
+400d4200040dc21102000080feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000780000001e020000850100004502000091010000010000
+0000400d4200040dc22202000080feffff070000004c000000000000000000000000000000ffffffffffffffff5c00000042005500530020003d00200033005f00070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b00000054000000540000000d02000092010000100200009e0100000100000000400d4200040dc21102000073feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020008afe030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b000000540000007c0000001e02000092010000480200009e0100000100000000400d4200040dc22202000073feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000540041005800490020003d002000340007000000070000000700000003000000030000000600000003000000060000000a0000001000000004000000050000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fc
+ffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d0200009f01000010020000ab0100000100000000400d4200040dc21102000066feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000840000001e0200009f0100004f020000ab0100000100000000400d4200040dc22202000066feffff090000004c000000000000000000000000000000ffffffffffffffff6000000054005200410049004e0020003d002000350060010700000007000000070000000300
+000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d020000ac01000010020000b80100000100000000400d4200040dc21102000059feffff010000004c0000000000000000000000
+00000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000001e020000ac0100007f020000b80100000100000000400d4200040dc22202000059feffff0f0000004c000000000000000000
+000000000000ffffffffffffffff6c0000004d004f0054004f0052005f004300590043004c00450020003d002000360000000900000008000000070000000800000007000000060000000700000007000000070000000600000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d020000b901000010020000c50100000100000000400d4200040dc2110200004cfeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000cf00030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000001e020000b9010000ae020000c50100000100000000400d4200040dc2220200004cfeffff180000004c000000000000000000000000000000ffffffffffffffff7c000000560045004800490043004c0045005f0057004900540048005f0054005200410049004c004500520020003d002000370007000000070000000700000003
+00000007000000060000000700000006000000090000000300000007000000070000000600000007000000070000000700000003000000060000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000540000000d020000c601000010020000d20100000100000000400d4200040dc2110200003ffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000b80000001e020000c601000090020000d20100000100000000400d4200040dc2220200003ffeffff120000004c000000000000000000000000000000ffffffffffffffff700000004d004f0054004f0052005f00560045004800490043004c004500530020003d002000380009000000080000000700000008000000070000000600000007000000070000000700000003000000070000000600000007000000
+07000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d020000d301000010020000df0100000100000000400d4200040dc21102000032feffff010000004c00000000000000000000000000
+0000ffffffffffffffff500000002000c010030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000c0100001e020000d3010000f7020000df0100000100000000400d4200040dc22202000032feffff200000004c0000000000000000000000
+00000000ffffffffffffffff8c0000005400520041004e00530050004f00520054005f004f0046005f00440041004e004700450052004f00550053005f0047004f004f004400530020003d0020003900070000000700000007000000070000000700000007000000080000000700000007000000060000000800000006000000060000000700000007000000070000000800000007000000070000000800000007000000070000
+00060000000800000008000000080000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d020000e001000010020000ec0100000100000000400d4200040dc21102000025
+feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000080100001e020000e0010000ec020000ec0100000100000000400d4200040dc2220200
+0025feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000005400520041004e00530050004f00520054005f004f0046005f00410042004e004f0052004d0041004c005f004c004f004100440020003d002000310030000000070000000700000007000000070000000700000007000000080000000700000007000000060000000800000006000000060000000700000007000000070000000800
+000007000000090000000700000006000000060000000600000008000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000000d020000ed01000010020000f9010000
+0100000000400d4200040dc21102000018feffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ff00030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000001e020000ed0100008b020000f901
+00000100000000400d4200040dc22202000018feffff120000004c000000000000000000000000000000ffffffffffffffff70000000480045004100560059005f00560045004800490043004c00450020003d002000310031000700000007000000070000000700000007000000060000000700000007000000070000000300000007000000060000000700000003000000060000000300000006000000060000000a00000010
+00000004000000050000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000cc0135fc3c01b7012100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000
+250000000c000000080000805600000030000000c80100001902000004030000d003000005000000801c9021801c003d4030003d40309021801c9021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000000080
+3f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000cc0135fc3c01b7013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000040000002500
+00000c00000005000080560000002c000000b1010000020200001b030000e703000004000000801c003d4030003d40309021801c9021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c00000002
+10c0db0400000004000000000000000080e443000072c400009e430080db43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000c90138fc3c01b701250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000
+30000000c50100001602000069020000cd03000005000000c5011602c501cd036902cd0369021602c5011602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000690200001602000071020000cd03000005000000690216026902cd037102cd
+037102160269021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000071020000160200007a020000cd03000005000000710216027102cd037a02cd037a02160271021602250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007a0200001602000081020000cd030000050000007a0216027a02cd038102cd03810216027a021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc000000000025
+0000000c00000004000000250000000c000000080000805600000030000000810200001602000089020000cd03000005000000810216028102cd038902cd038902160281021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000089020000
+1602000091020000cd03000005000000890216028902cd039102cd039102160289021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000910200001602000099020000cd03000005000000910216029102cd039902cd0399021602910216
+02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000009902000016020000a1020000cd03000005000000990216029902cd03a102cd03a102160299021602250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000a102000016020000a9020000cd03000005000000a1021602a102cd03a902cd03a9021602a1021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004
+000000250000000c000000080000805600000030000000a902000016020000b0020000cd03000005000000a9021602a902cd03b002cd03b0021602a9021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b002000016020000b8020000
+cd03000005000000b0021602b002cd03b802cd03b8021602b0021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b802000016020000bf020000cd03000005000000b8021602b802cd03bf02cd03bf021602b8021602250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000bf02000016020000c4020000cd03000005000000bf021602bf02cd03c402cd03c4021602bf021602250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000c402000016020000cc020000cd03000005000000c4021602c402cd03cc02cd03cc021602c4021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c
+000000080000805600000030000000cc02000016020000d4020000cd03000005000000cc021602cc02cd03d402cd03d4021602cc021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000d402000016020000dd020000cd03000005000000
+d4021602d402cd03dd02cd03dd021602d4021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000dd02000016020000e6020000cd03000005000000dd021602dd02cd03e602cd03e6021602dd021602250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000e602000016020000f0020000cd03000005000000e6021602e602cd03f002cd03f0021602e6021602250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000f002000016020000f8020000cd03000005000000f0021602f002cd03f802cd03f8021602f0021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056
+00000030000000f80200001602000000030000cd03000005000000f8021602f802cd030003cd0300031602f8021602250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000000300001602000001030000cd03000005000000000316020003cd03
+0103cd030103160200031602250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000c90138fc3c01b7013a0000000c0000000a0000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ae010000ff01000018030000e403000004000000501cd03c1030d03c10306021501c6021250000000c00
+000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000d3010000e9fdfffffc020000dcfdffff
+160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000003f0200001c02000087020000280200000100000000400d4200040dc243020000e9fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000
+00060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000
+00000054000000a80000003e0200002902000089020000340200000100000000400d4200040dc242020000dcfdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005200650073007400720069006300740069006f006e00540079007000650000000700000006000000060000000300000004000000030000000600000003000000030000000600000006000000050000000500000006000000
+060000000a0000001000000004000000050000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000c901cafd0503cafd000101011540010010000000040000000000000021000000080000
+00620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500
+00805700000024000000ae01000024020000180300005202000002000000501cb0231030b023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b0000005400000054000000ca0100003f020000cd0100004b0200000100000000400d4200040dc2ce010000c6fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000002000000180000000c0000008b00000054000000b4000000db0100003f0200003f0200004b0200000100000000400d4200040dc2df010000c6fdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d00200030000000070000000800000007000000060000000700000007000000070000000700000003
+00000006000000030000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100004c020000cd010000580200000100000000400d4200040dc2ce010000b9fdffff010000
+004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000db0100004c02000051020000580200000100000000400d4200040dc2df010000b9fdffff13
+0000004c000000000000000000000000000000ffffffffffffffff74000000570049004400540048005f004c004500530053005f005400480041004e0020003d00200031000000090000000300000007000000070000000700000006000000060000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000059020000cd010000650200000100000000400d4200040dc2ce010000acfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000db0100005902000068020000650200000100000000400d4200040dc2df010000acfdffff160000004c000000000000000000000000000000ffffffffffffffff78000000570049004400540048005f00470052004500410054004500
+52005f005400480041004e0020003d0020003200090000000300000007000000070000000700000006000000080000000700000007000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000066020000cd010000720200000100000000400d4200040dc2ce0100009ffdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000db0100006602000057020000720200000100000000400d4200040dc2df0100009ffdffff140000004c000000000000000000000000000000ffffffffffffffff740000004800450049004700540048005f004c004500530053005f005400480041004e0020003d00200033000700000007000000030000000800000007000000070000
+0006000000060000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000073020000cd0100007f02000001
+00000000400d4200040dc2ce01000092fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000db010000730200006e0200007f0200
+000100000000400d4200040dc2df01000092fdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000004800450049004700540048005f0047005200450041005400450052005f005400480041004e0020003d00200034000000070000000700000003000000080000000700000007000000060000000800000007000000070000000700000007000000070000000700000006000000070000000700
+00000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000080020000cd0100008c0200000100000000400d4200040dc2ce01000085fdffff010000004c00000000000000
+0000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000db01000080020000590200008c0200000100000000400d4200040dc2df01000085fdffff140000004c0000000000
+00000000000000000000ffffffffffffffff740000005700450049004700480054005f004c004500530053005f005400480041004e0020003d002000350009000000070000000300000008000000070000000700000006000000060000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100008d020000cd010000990200000100000000400d4200040dc2ce01000078fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000db0100008d02000070020000990200000100000000400d4200040dc2df01000078fdffff170000004c000000000000000000000000000000ffffffffffffffff7c0000005700450049004700480054005f0047005200450041005400450052005f
+005400480041004e0020003d0020003600000009000000070000000300000008000000070000000700000006000000080000000700000007000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c0000
+00ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100009a020000cd010000a60200000100000000400d4200040dc2ce0100006bfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000db0100009a0200006d020000a60200000100000000400d4200040dc2df0100006bfdffff170000004c000000000000000000000000000000ffffffffffffffff7c00000057004900540048004f00550054005f00570049004e005400450052005f00540059005200450020003d00200037000000090000000300000007000000
+07000000080000000700000007000000060000000900000003000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+000054000000ca010000a7020000cd010000b30200000100000000400d4200040dc2ce0100005efdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000d0000000db010000a702000067020000b30200000100000000400d4200040dc2df0100005efdffff160000004c000000000000000000000000000000ffffffffffffffff7800000057004900540048004f00550054005f0053004e004f0057005f0043004800410049004e0020003d00200038000900000003000000070000000700000008000000070000000700000006000000070000000700000008000000090000
+00060000000700000007000000070000000300000007000000030000000600000003000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca010000b4020000cd010000c00200000100000000400d4200040dc2ce01000051
+fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000db010000b402000039020000c00200000100000000400d4200040dc2df0100
+0051fdffff100000004c000000000000000000000000000000ffffffffffffffff6c00000057004900540048005f0054005200410049004c004500520020003d0020003900090000000300000007000000070000000600000007000000070000000700000003000000060000000700000007000000030000000600000003000000060000000a0000001000000004000000050000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca010000c1020000cd010000cd0200000100000000400d4200040dc2ce01000044fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffff
+ff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000db010000c102000044020000cd0200000100000000400d4200040dc2df01000044fdffff110000004c000000000000000000000000000000ffffffffffffffff7000000057004900540048005f004300410052004100560041004e0020003d0020003100300000000900
+0000030000000700000007000000060000000700000007000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca010000ce020000
+cd010000da0200000100000000400d4200040dc2ce01000037fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000014010000db010000ce02
+0000aa020000da0200000100000000400d4200040dc2df01000037fdffff210000004c000000000000000000000000000000ffffffffffffffff9000000050004500520053004f004e0053005f0049004e005f00560045004800490043004c0045005f004c004500530053005f005400480041004e0020003d00200031003100000007000000070000000700000007000000080000000700000007000000060000000300000007
+00000006000000070000000700000007000000030000000700000006000000070000000600000006000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b0000005400000054000000ca010000db020000cd010000e70200000100000000400d4200040dc2ce0100002afdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b0000005400000014010000db010000db020000ae020000e70200000100000000400d4200040dc2df0100002afdffff210000004c000000000000000000000000000000ffffffffffffffff9000000050004500520053004f004e0053005f0049004e005f00560045004800490043004c0045005f004d004f00520045005f005400480041004e0020003d0020003100320000000700000007000000
+070000000700000008000000070000000700000006000000030000000700000006000000070000000700000007000000030000000700000006000000070000000600000009000000080000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca010000e8020000cd010000f40200000100000000400d4200040dc2ce0100001dfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff0500000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000db010000e802000069020000f40200000100000000400d4200040dc2df0100001dfdffff160000004c000000000000000000000000000000ffffffffffffffff780000004500560045004e005f004e0055004d004200450052005f0050004c0041005400450020003d00200031003300070000
+000700000007000000070000000600000007000000070000000900000007000000070000000700000006000000070000000600000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+0000005400000054000000ca010000f5020000cd010000010300000100000000400d4200040dc2ce01000010fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b00000054000000cc000000db010000f502000063020000010300000100000000400d4200040dc2df01000010fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004f00440044005f004e0055004d004200450052005f0050004c0041005400450020003d002000310034000000080000000700000007000000060000000700000007000000090000000700000007000000070000000600
+0000070000000600000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000002030000cd0100000e0300000100000000400d4200040dc2ce010000
+03fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000db01000002030000600200000e0300000100000000400d4200040dc2df01
+000003fdffff150000004c000000000000000000000000000000ffffffffffffffff780000004c0045004e004700540048005f004c004500530053005f005400480041004e0020003d0020003100350000000600000007000000070000000800000007000000070000000600000006000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a
+0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100000f030000cd0100001b0300000100000000400d4200040dc2ce010000f6fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000
+000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000db0100000f030000770200001b0300000100000000400d4200040dc2df010000f6fcffff180000004c000000000000000000000000000000ffffffffffffffff7c0000004c0045004e
+004700540048005f0047005200450041005400450052005f005400480041004e0020003d002000310036000600000007000000070000000800000007000000070000000600000008000000070000000700000007000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100001c030000cd010000280300000100000000400d4200040dc2ce010000e9fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000db0100001c03000073020000280300000100000000400d4200040dc2df010000e9fcffff180000004c000000000000000000000000000000ffffffffffffffff7c000000410058004c0045005f004c004f00410044005f004c004500530053005f005400
+480041004e0020003d002000310037000700000007000000060000000700000006000000060000000800000007000000070000000600000006000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000029030000cd010000350300000100000000400d4200040dc2ce010000dcfcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f0000000db010000290300008a020000350300000100000000400d4200040dc2df010000dcfcffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000410058004c0045005f004c004f00410044005f0047005200450041005400450052005f005400480041004e0020003d002000310038000000070000
+0007000000060000000700000006000000060000000800000007000000070000000600000008000000070000000700000007000000070000000700000007000000060000000700000007000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b0000005400000054000000ca01000036030000cd010000420300000100000000400d4200040dc2ce010000cffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b000000540000005c010000db01000036030000f4020000420300000100000000400d4200040dc2df010000cffcffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000560045004800490043004c0045005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e00440041005200
+44005f004500550052004f00330020003d002000310039000000070000000700000007000000030000000700000006000000070000000600000006000000070000000600000006000000030000000600000006000000070000000600000007000000090000000300000007000000070000000300000008000000070000000600000007000000070000000700000007000000070000000700000007000000070000000600000007
+0000000700000007000000080000000600000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000043030000cd0100004f0300000100000000400d4200040dc2ce010000c2fcff
+ff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000db01000043030000010300004f0300000100000000400d4200040dc2df010000c2
+fcffff2f0000004c000000000000000000000000000000ffffffffffffffffac000000560045004800490043004c0045005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e0044004100520044005f004500550052004f0033004400340020003d002000320030000000070000000700000007000000030000000700000006000000070000000600000006000000
+07000000060000000600000003000000060000000600000007000000060000000700000009000000030000000700000007000000030000000800000007000000060000000700000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000800000006000000070000000600000003000000060000000300000006000000060000000a0000001000000004000000050000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000050030000cd0100005c0300000100000000400d4200040dc2ce010000b5fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000000400000005
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005c010000db01000050030000f40200005c0300000100000000400d4200040dc2df010000b5fcffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000560045004800490043004c0045005f00460055
+004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e0044004100520044005f004500550052004f00340020003d00200032003100000007000000070000000700000003000000070000000600000007000000060000000600000007000000060000000600000003000000060000000600000007000000060000000700000009000000030000000700000007000000030000000800
+00000700000006000000070000000700000007000000070000000700000007000000070000000700000006000000070000000700000007000000080000000600000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000054000000ca0100005d030000cd010000690300000100000000400d4200040dc2ce010000a8fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b000000540000005c010000db0100005d030000f4020000690300000100000000400d4200040dc2df010000a8fcffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000560045004800490043004c0045005f00460055004c00460049004c004c0053005f0045004d0049005300530049004f004e005f005300540041004e0044004100520044005f004500550052004f00350020003d0020
+0032003200000007000000070000000700000003000000070000000600000007000000060000000600000007000000060000000600000003000000060000000600000007000000060000000700000009000000030000000700000007000000030000000800000007000000060000000700000007000000070000000700000007000000070000000700000007000000060000000700000007000000070000000800000006000000
+03000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100006a030000cd010000760300000100000000400d4200040dc2ce0100009bfcffff010000004c00000000000000000000000000
+0000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000db0100006a0300006a020000760300000100000000400d4200040dc2df0100009bfcffff170000004c0000000000000000000000
+00000000ffffffffffffffff7c00000057004900540048005f0050004500540052004f004c005f0045004e00470049004e00450020003d00200032003300000009000000030000000700000007000000060000000700000007000000070000000700000008000000060000000600000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a00000010000000040000
+00050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000077030000cd010000830300000100000000400d4200040dc2ce0100008efcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004
+000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000db0100007703000065020000830300000100000000400d4200040dc2df0100008efcffff170000004c000000000000000000000000000000ffffffffffffffff7c00000057004900540048005f004400490045
+00530045004c005f0045004e00470049004e00450020003d00200032003400000009000000030000000700000007000000060000000700000003000000070000000700000007000000060000000600000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca01000084030000cd010000900300000100000000400d4200040dc2ce01000081fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000db0100008403000055020000900300000100000000400d4200040dc2df01000081fcffff140000004c000000000000000000000000000000ffffffffffffffff7400000057004900540048005f004c00500047005f0045004e00470049004e00450020003d00200032003500090000000300
+00000700000007000000060000000600000007000000080000000600000007000000070000000800000003000000070000000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000
+ca01000091030000cd0100009d0300000100000000400d4200040dc2ce01000074fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400
+0000db01000091030000570200009d0300000100000000400d4200040dc2df01000074fcffff140000004c000000000000000000000000000000ffffffffffffffff740000005400480052004f005500470048005f00540052004100460046004900430020003d00200032003600070000000700000007000000080000000700000008000000070000000600000007000000070000000700000006000000060000000300000007
+00000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca0100009e030000cd010000aa0300000100000000400d4200040dc2ce01000067fcffff010000004c00000000000000000000
+0000000000ffffffffffffffff5000000020000000030000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000db0100009e0300005f020000aa0300000100000000400d4200040dc2df01000067fcffff160000004c0000000000000000
+00000000000000ffffffffffffffff780000005200450053004900440045004e00540053005f00540052004100460046004900430020003d00200032003700070000000700000007000000030000000700000007000000070000000700000007000000060000000700000007000000070000000600000006000000030000000700000003000000060000000300000006000000060000000a000000100000000400000005000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000ca010000ab030000cd010000b70300000100000000400d4200040dc2ce0100005afcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000040000000500
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000db010000ab030000b1020000b70300000100000000400d4200040dc2df0100005afcffff230000004c000000000000000000000000000000ffffffffffffffff9400000057004900540048005f0044004500530054004900
+4e004100540049004f004e005f0049004e005f0047004900560045004e005f00410052004500410020003d00200032003800000009000000030000000700000007000000060000000700000007000000070000000700000003000000070000000700000007000000030000000800000007000000060000000300000007000000060000000800000003000000070000000700000007000000060000000700000007000000070000
+000700000003000000060000000300000006000000060000000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000180000000c00000000000000190000000c000000ffffff004d000000e400000070010000df0300007f010000ee0300007401000016fcffff10
+00000010000000c600880000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c000000300000009c0000004800000010000000100000002800000010000000120000000100010000000000480000000000000000000000000000000000000000000000ffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000004d000000a004000070010000df0300007f010000ee0300007401000016fcffff10000000100000004600660000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c00000034000000a000000000040000100000001000000028000000100000001000000001002000030000000004000000000000000000
+0000000000000000000000ff0000ff0000ff00000066cccc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc00ffffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff00003399000099cc0099ffff0099ccff00ff996600ff99
+6600ff996600ff99660099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600f0fbff00f0caa600ff99330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600ff993300ff663300ff66330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099
+99cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff00ff663300ff663300ff663300ff663300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff009999cc00003399000099cc0099ffff00ff996600ff996600ff99660099ccff00ff996600ff996600
+ff996600ff99660099ccff00ff996600ff996600ff9966009999cc00003399000099cc0099ffff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00f0caa600ff99330099ccff00ff996600f0fbff00ff9933009999cc00003399000099cc0099ffff00ff996600ff993300ff66330099ccff00ff996600ff996600ff993300ff66330099ccff00ff996600ff993300ff6633009999cc00003399000099cc0099ffff
+0099ccff0099ccff0099ccff0099ccff0099ccff00ff66330099ccff00ff66330099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff996600ff99660099ccff00ff996600ff996600ff99660099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00ff99
+330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff993300ff66330099ccff00ff996600ff993300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc00003399000099cc000033990000339900003399000033990000
+3399000033990000339900003399000033990000339900003399000033990000339900003399000066cc000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000250000000c00000002000000180000000c0000000000000021000000080000000b000000100000
+006000000060000000190000000c000000ffffff00160000000c00000000000000120000000c00000001000000520000007001000004000000f6ffffff00000000000000000000000090010000000000000040000041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000530e383de102ce38c67738010103aa38
+c677d3e61726000000000a000000c441e102080000002038e102480048004080408040804080408040804800080050010103d33cc677000000008e010000803de102050000000000510e4893530e803de102a43cc677d33cc6776be6172600000000ac01510e0000510e5001510e0000530e0000510e3812510e010000003292530e010000008e0100000066530e3812510e130100008ce3c5779fe61726704f2e76ec02010300
+000103e766530e0000c57767e6172600000000f451010300000103386d530e0000510e1c008501b600000000000000ff07000008910103930100921d000401b6000000000000006476000800000000250000000c00000004000000180000000c0000000000000054000000e400000089010000e4030000fc010000f00300000100000000400d4200040d428d010000df030000190000004c000000000000000000000000000000
+ffffffffffffffff800000005300650065002000740068006900730020006400690061006700720061006d00200066006f00720020007400680065002000000007000000060000000600000003000000030000000600000003000000040000000300000006000000030000000600000006000000030000000600000009000000030000000300000006000000030000000300000003000000060000000600000003000000540000
+00b400000089010000f1030000e1010000fd0300000100000000400d4200040d428d010000ec030000110000004c000000000000000000000000000000ffffffffffffffff700000005300750062002000410064007600690063006500200043006f006400650073002e00000007000000060000000600000003000000070000000600000005000000030000000500000006000000030000000700000006000000060000000600
+00000400000003000000220000000c000000ffffffff0a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000180000000c00000000000000190000000c000000ffffff004d000000e4000000a1010000c9000000b0010000d8000000a50100002cffffff10000000
+10000000c600880000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c000000300000009c0000004800000010000000100000002800000010000000120000000100010000000000480000000000000000000000000000000000000000000000ffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000004d000000a0040000a1010000c9000000b0010000d8000000a50100002cffffff10000000100000004600660000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c00000034000000a000000000040000100000001000000028000000100000001000000001002000030000000004000000000000000000000000
+0000000000000000ff0000ff0000ff00000066cccc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc00ffffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff00003399000099cc0099ffff0099ccff00ff996600ff996600ff
+996600ff99660099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600f0fbff00f0caa600ff99330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600ff993300ff663300ff66330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00
+003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff00ff663300ff663300ff663300ff663300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff009999cc00003399000099cc0099ffff00ff996600ff996600ff99660099ccff00ff996600ff996600ff9966
+00ff99660099ccff00ff996600ff996600ff9966009999cc00003399000099cc0099ffff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00f0caa600ff99330099ccff00ff996600f0fbff00ff9933009999cc00003399000099cc0099ffff00ff996600ff993300ff66330099ccff00ff996600ff996600ff993300ff66330099ccff00ff996600ff993300ff6633009999cc00003399000099cc0099ffff0099cc
+ff0099ccff0099ccff0099ccff0099ccff00ff66330099ccff00ff66330099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff996600ff99660099ccff00ff996600ff996600ff99660099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00ff99330099
+ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff993300ff66330099ccff00ff996600ff993300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc00003399000099cc000033990000339900003399000033990000339900
+0033990000339900003399000033990000339900003399000033990000339900003399000066cc000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000250000000c00000002000000180000000c0000000000000021000000080000000b000000100000006000
+000060000000190000000c000000ffffff00160000000c00000000000000120000000c00000001000000250000000c00000004000000180000000c0000000000000054000000e4000000ba010000ce0000002d020000da0000000100000000400d4200040d42be010000c9000000190000004c000000000000000000000000000000ffffffffffffffff8000000053006500650020007400680069007300200064006900610067
+00720061006d00200066006f0072002000740068006500200000000700000006000000060000000300000003000000060000000300000004000000030000000600000003000000060000000600000003000000060000000900000003000000030000000600000003000000030000000300000006000000060000000300000054000000dc000000ba010000db00000022020000e70000000100000000400d4200040d42be010000
+d6000000180000004c000000000000000000000000000000ffffffffffffffff7c00000066006900720073007400200073006500740020006f006600200053007500620020004300610075007300650073002e000300000003000000030000000400000003000000030000000400000006000000030000000300000006000000030000000300000007000000060000000600000003000000070000000600000006000000040000
+00060000000400000003000000220000000c000000ffffffff0a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000180000000c00000000000000190000000c000000ffffff004d000000e4000000d701000001010000e601000010010000db010000f4feffff10
+00000010000000c600880000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c000000300000009c0000004800000010000000100000002800000010000000120000000100010000000000480000000000000000000000000000000000000000000000ffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000004d000000a0040000d701000001010000e601000010010000db010000f4feffff10000000100000004600660000000000000000000000803f00000000000000000000803f0000000000000000ffffff00000000006c00000034000000a000000000040000100000001000000028000000100000001000000001002000030000000004000000000000000000
+0000000000000000000000ff0000ff0000ff00000066cccc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc000099cc00ffffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff0099ffff00003399000099cc0099ffff0099ccff00ff996600ff99
+6600ff996600ff99660099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600f0fbff00f0caa600ff99330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff00ff996600ff993300ff663300ff66330099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099ccff0099
+99cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff00ff663300ff663300ff663300ff663300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff0099ccff0099ccff00ff66330099ccff009999cc00003399000099cc0099ffff00ff996600ff996600ff99660099ccff00ff996600ff996600
+ff996600ff99660099ccff00ff996600ff996600ff9966009999cc00003399000099cc0099ffff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00f0caa600ff99330099ccff00ff996600f0fbff00ff9933009999cc00003399000099cc0099ffff00ff996600ff993300ff66330099ccff00ff996600ff996600ff993300ff66330099ccff00ff996600ff993300ff6633009999cc00003399000099cc0099ffff
+0099ccff0099ccff0099ccff0099ccff0099ccff00ff66330099ccff00ff66330099ccff0099ccff0099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff996600ff99660099ccff00ff996600ff996600ff99660099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600f0fbff00ff99330099ccff00ff996600f0fbff00ff99
+330099ccff0099ccff009999cc00003399000099cc0099ffff0099ccff0099ccff0099ccff00ff996600ff993300ff66330099ccff00ff996600ff993300ff66330099ccff0099ccff009999cc00003399000099cc0099ffff009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc009999cc00003399000099cc000033990000339900003399000033990000
+3399000033990000339900003399000033990000339900003399000033990000339900003399000066cc000a0000001000000004000000050000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000fcffffff05000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000000000250000000c00000002000000180000000c0000000000000021000000080000000b000000100000
+006000000060000000190000000c000000ffffff00160000000c00000000000000120000000c00000001000000250000000c00000004000000180000000c0000000000000054000000e4000000f00100000601000063020000120100000100000000400d4200040d42f401000001010000190000004c000000000000000000000000000000ffffffffffffffff8000000053006500650020007400680069007300200064006900
+61006700720061006d00200066006f0072002000740068006500200000000700000006000000060000000300000003000000060000000300000004000000030000000600000003000000060000000600000003000000060000000900000003000000030000000600000003000000030000000300000006000000060000000300000054000000e4000000f001000013010000690200001f0100000100000000400d4200040d42f4
+0100000e010000190000004c000000000000000000000000000000ffffffffffffffff800000007300650063006f006e006400200073006500740020006f006600200053007500620020004300610075007300650073002e00000004000000060000000500000006000000060000000600000003000000040000000600000003000000030000000600000003000000030000000700000006000000060000000300000007000000
+060000000600000004000000060000000400000003000000220000000c000000ffffffff0a0000001000000004000000050000000c00000010000000000000000000000046000000dc000000d0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db16000000004000004b0149fc4e0148
+fc520146fc550145fc590143fc5c0142fc600140fc63013efc67013dfc6a013bfc6e0139fc710138fc750136fc780135fc7c0133fc7f0132fc830130fc86012efc8a012cfc8d012bfc910129fc940128fc000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000a400000045010000ba03000092010000df0300000b000000160000000200000002000000020000000200000002
+0000000200000002000000020000000200000002000000020000007014c03ba014d03be014f03b1015003c5015203c8015303cc015503cf015703c3016803c6016a03ca016c03cd016d03c1017f03c4017003d8017203db017303df017503d2018703d6018903d9018a03dd018c03d0019d03d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c0000000500000046000000180100000c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103c4000000b80000000210c0db22000000004000006601bbfe6901bdfe6d01c0fe7001c3fe7401c6fe7701c8fe7b01cbfe7e01cefe8201d1fe8501d4fe8901d7fe8c01d9fe9001dcfe9301df
+fe9701e2fe9a01e5fe9e01e8fea101eafea501edfea801f0feac01f3feaf01f6feb301f9feb601fbfeba01fefebd0101ffc10104ffc40107ffc8010affcb010cffcf010fffd20112ffd60115ffd90118ff0001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+00005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000ec00000060010000eb000000d70100004c01000011000000220000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+0000000200000002000000020000002016a0145016801490165014c01620140017f0133017d0137017a013a0177013e0174013101810135018e0128018c012c0189012f01860123019301260190012a019d011d019b011101a8011401a5011801a2011b01af010f01ac010201ba010601b7010901b4010d01b1010001ce00f401cb00f701c900fb01c600fe01c300f201d000f501dd00e250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000005401000048010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010300010000f40000000210c0db2e0000000040000066018dfe69018efe6d0190fe700192fe740194
+fe770195fe7b0198fe7e0199fe82019bfe85019dfe89019ffe8c01a0fe9001a3fe9301a4fe9701a6fe9a01a8fe9e01aafea101abfea501aefea801affeac01b1feaf01b3feb301b5feb601b7feba01b9febd01bafec101bcfec401befec801c0fecb01c2fecf01c4fed201c5fed601c7fed901c9fedd01cbfee001cdfee401cffee701d0feeb01d2feee01d4fef201d6fef501d8fef901dafefc01dbfe0002ddfe0302dffe0001
+000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c0000000500000025
+0000000c000000050000805a000000340100006001000024010000010200007a010000170000002e0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000201680175016701790165017c016301700171017301700177017d016a017c016
+e017a016101880165018601680185016c0182016f01810163019f0156019d015a019b015d019a015101a7015401a6015801a4015b01a2015f01a0015201be014601bc014901bb014d01b9014001c7014401c5014701c3014b01c1014e01c0014201de013501dc013901da013c01d8013001e6013301e5013701e3013a01e1013e01ef012101fd012501fb012801fa012c01f8012f01f6012250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000280000000c00000002000000280000000c000000030000004c0000006400000000000000000000001103000013040000000000000000000012030000140400002900aa0000000000000000000000803f00000000000000000000803f000000000000000000000000000000000000
+0000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 23\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_086EDBBC_BEC7_469a_AC95_14160C3BC5A2}{\*\bkmkend BKM_086EDBBC_BEC7_469a_AC95_14160C3BC5A2}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Accident}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A04D4D5A_91DB_4a57_A088_0BE70CFBEF92}{\*\bkmkend BKM_A04D4D5A_91DB_4a57_A088_0BE70CFBEF92}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BF1D44E1_4147_42ee_B858_60032F0394AF}{\*\bkmkend BKM_BF1D44E1_4147_42ee_B858_60032F0394AF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MULTI_VEHICLE_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_612BA0C2_6A2D_4fcf_BE6D_006C8DB593DF}{\*\bkmkend BKM_612BA0C2_6A2D_4fcf_BE6D_006C8DB593DF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_617B0735_8F44_4e7b_B009_D19B18DA204E}{\*\bkmkend BKM_617B0735_8F44_4e7b_B009_D19B18DA204E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_INVOLVING_LORRY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7E3E602F_AC92_41cc_93FE_5A38FF428025}{\*\bkmkend BKM_7E3E602F_AC92_41cc_93FE_5A38FF428025}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_INVOLVING_BUS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5A9D1E9B_A33C_480f_AC74_9AE64271C094}{\*\bkmkend BKM_5A9D1E9B_A33C_480f_AC74_9AE64271C094}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A5D734A4_6C71_4f95_8177_98C5673C2BA5}{\*\bkmkend BKM_A5D734A4_6C71_4f95_8177_98C5673C2BA5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT_ON_OPPOSITE_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_86DA4502_E958_4849_9322_F59FDB3247FF}{\*\bkmkend BKM_86DA4502_E958_4849_9322_F59FDB3247FF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+UNSECURED_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A41EED84_7BAB_415b_B8E5_16E48C297636}{\*\bkmkend BKM_A41EED84_7BAB_415b_B8E5_16E48C297636}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AdviceCode}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_48870BAC_C691_4dc0_B25A_8CDE18C9ED15}{\*\bkmkend BKM_48870BAC_C691_4dc0_B25A_8CDE18C9ED15}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DD183995_1DE0_492a_B27B_9E5EF2550601}{\*\bkmkend BKM_DD183995_1DE0_492a_B27B_9E5EF2550601}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_225E4EE5_9017_423d_AB7F_CA7DF7F63A77}{\*\bkmkend BKM_225E4EE5_9017_423d_AB7F_CA7DF7F63A77}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_80D9677E_DB22_4514_83B8_43B9CEC1655E}{\*\bkmkend BKM_80D9677E_DB22_4514_83B8_43B9CEC1655E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVING_NOT_ALLOWED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_43E9E71F_810D_4039_852D_CD82218FC792}{\*\bkmkend BKM_43E9E71F_810D_4039_852D_CD82218FC792}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_HARD_SHOULDER_AS_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1EFA8195_4D58_4a66_BFAD_D2DEFB42FFC9}{\*\bkmkend BKM_1EFA8195_4D58_4a66_BFAD_D2DEFB42FFC9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAIT_FOR_POLICE_PATROL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5A0C6F71_F9C8_47e0_B16D_EE0725EA3A2A}{\*\bkmkend BKM_5A0C6F71_F9C8_47e0_B16D_EE0725EA3A2A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAIT_FOR_IMPROVED_WEATHER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3A1ABF17_4690_4528_A6EB_6BFB73121E45}{\*\bkmkend BKM_3A1ABF17_4690_4528_A6EB_6BFB73121E45}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GIVING_PATH_VEHICLES_COMING_FROM_BEHIND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_88A1EFFA_0F5D_4039_B66C_BE39F5066B45}{\*\bkmkend BKM_88A1EFFA_0F5D_4039_B66C_BE39F5066B45}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOLLOW_DIVERSION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3E4EF175_7544_44b9_965A_3D8E65E290C8}{\*\bkmkend BKM_3E4EF175_7544_44b9_965A_3D8E65E290C8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+NO_DIVERSION_TO_RECOMMEND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E3DA6DFB_3354_4574_94A5_E7736D2BA5E6}{\*\bkmkend BKM_E3DA6DFB_3354_4574_94A5_E7736D2BA5E6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_DIVERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_21AE2B75_D621_45e9_877E_59BE1AA1834D}{\*\bkmkend BKM_21AE2B75_D621_45e9_877E_59BE1AA1834D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOLLOW_POLICE_INSTRUCTIONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9C008887_9FDA_4a43_9C0A_1A7A016F97FD}{\*\bkmkend BKM_9C008887_9FDA_4a43_9C0A_1A7A016F97FD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AVOID_THE_AREA}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8EF24489_61B4_4d59_9B57_B39138DDFA50}{\*\bkmkend BKM_8EF24489_61B4_4d59_9B57_B39138DDFA50}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D0050EEC_5F76_43df_98B2_05839991AC1D}{\*\bkmkend BKM_D0050EEC_5F76_43df_98B2_05839991AC1D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_LEAVE_YOUR_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FB9B132D_EED3_4b7f_9F8D_BC0B97CF9896}{\*\bkmkend BKM_FB9B132D_EED3_4b7f_9F8D_BC0B97CF9896}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SWITCH_ON_RADIO}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_299B9703_9FD3_4acd_BE6E_53FFF9434505}{\*\bkmkend BKM_299B9703_9FD3_4acd_BE6E_53FFF9434505}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_TOLL_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3A399A6_681B_40a8_874D_4AF068CD52F9}{\*\bkmkend BKM_F3A399A6_681B_40a8_874D_4AF068CD52F9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAIT_FOR_CONVOI}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F192DF9E_2DAB_4e86_8DD2_ECF400324EF7}{\*\bkmkend BKM_F192DF9E_2DAB_4e86_8DD2_ECF400324EF7}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+AnimalsOnRoadway}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C34457FF_3883_4315_8164_8FF954A5F668}{\*\bkmkend BKM_C34457FF_3883_4315_8164_8FF954A5F668}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F7395072_AE10_4dbf_A54E_CB1D6A929AE5}{\*\bkmkend BKM_F7395072_AE10_4dbf_A54E_CB1D6A929AE5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WILD_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BD29B6B1_B46D_471a_9611_D4751C6A5E97}{\*\bkmkend BKM_BD29B6B1_B46D_471a_9611_D4751C6A5E97}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HERD_OF_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_601C3E18_70B0_43bc_B8F2_7A02932FD73E}{\*\bkmkend BKM_601C3E18_70B0_43bc_B8F2_7A02932FD73E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SMALL_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D48C6ABA_76A0_4aac_8D58_5C67016D59B7}{\*\bkmkend BKM_D48C6ABA_76A0_4aac_8D58_5C67016D59B7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LARGE_ANIMALS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_149CB691_1BA2_4ee5_AD77_1BE4B16577A0}{\*\bkmkend BKM_149CB691_1BA2_4ee5_AD77_1BE4B16577A0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+BrokenDownVehicles}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_AB2B1614_C3DD_4cda_888B_90E495B2E42E}{\*\bkmkend BKM_AB2B1614_C3DD_4cda_888B_90E495B2E42E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_46ACF7D9_F9CF_4bd3_8ED0_953623DE9A9C}{\*\bkmkend BKM_46ACF7D9_F9CF_4bd3_8ED0_953623DE9A9C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BROKEN_DOWN_VEHICLE_BURNING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E3DD07E6_C9D3_409b_9587_CCC2BF33984F}{\*\bkmkend BKM_E3DD07E6_C9D3_409b_9587_CCC2BF33984F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BROKEN_DOWN_UNLIT_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_3B12321B_DE38_4609_AD54_E026E9780A3A}{\*\bkmkend BKM_3B12321B_DE38_4609_AD54_E026E9780A3A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseCode}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_AAF6B702_4201_4d4f_A4A8_232CAC1BF04C}{\*\bkmkend BKM_AAF6B702_4201_4d4f_A4A8_232CAC1BF04C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_29BDCB41_BA85_4e7b_8138_87B8A58565E9}{\*\bkmkend BKM_29BDCB41_BA85_4e7b_8138_87B8A58565E9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_CONGESTION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F9376563_DA36_4177_96CA_ED28A87D6F3D}{\*\bkmkend BKM_F9376563_DA36_4177_96CA_ED28A87D6F3D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_155A7146_6482_4995_AC7C_996F7B051928}{\*\bkmkend BKM_155A7146_6482_4995_AC7C_996F7B051928}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROADWORKS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CC638F08_3982_44f0_9502_528B34EF4909}{\*\bkmkend BKM_CC638F08_3982_44f0_9502_528B34EF4909}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+NARROW_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A772E871_781C_4dbe_A35E_D978D60957BB}{\*\bkmkend BKM_A772E871_781C_4dbe_A35E_D978D60957BB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+IMPASSIBILITY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8B480F18_3B08_46e8_AC6D_4F368E0F1CE5}{\*\bkmkend BKM_8B480F18_3B08_46e8_AC6D_4F368E0F1CE5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIPPERY_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_69B71E46_2D04_47ed_9396_2B44DDF75235}{\*\bkmkend BKM_69B71E46_2D04_47ed_9396_2B44DDF75235}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AQUAPLANING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_45CF0A86_0BDA_443b_98F6_6ACBB5C07894}{\*\bkmkend BKM_45CF0A86_0BDA_443b_98F6_6ACBB5C07894}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C7BCC78F_92BE_4934_8F0C_78C4718C3906}{\*\bkmkend BKM_C7BCC78F_92BE_4934_8F0C_78C4718C3906}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HAZARDOUS_DRIVING_CONDITIONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7518CEA4_FF28_4901_98E3_A2FF069716AC}{\*\bkmkend BKM_7518CEA4_FF28_4901_98E3_A2FF069716AC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OBJECTS_ON_THE_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5C5C3687_E038_4554_90F6_D9B5B52F5528}{\*\bkmkend BKM_5C5C3687_E038_4554_90F6_D9B5B52F5528}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ANIMALS_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0C72BD3D_D80C_455e_B920_10D8E5837241}{\*\bkmkend BKM_0C72BD3D_D80C_455e_B920_10D8E5837241}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PEOPLE_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_68591E92_FFCB_4f4d_AFFF_72D19EAA28A2}{\*\bkmkend BKM_68591E92_FFCB_4f4d_AFFF_72D19EAA28A2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BROKEN_DOWN_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_01C16B8B_286F_4117_BDC9_CC14150660C9}{\*\bkmkend BKM_01C16B8B_286F_4117_BDC9_CC14150660C9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_ON_WRONG_CARRIAGEWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E11DEE7E_EA0F_456e_892E_4D88E0EF91C2}{\*\bkmkend BKM_E11DEE7E_EA0F_456e_892E_4D88E0EF91C2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RESCUE_AND_RECOVERY_WORK_IN_PROGRESS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4A5B0B34_EFB1_49d5_8945_6A63F3A36672}{\*\bkmkend BKM_4A5B0B34_EFB1_49d5_8945_6A63F3A36672}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+REGULATORY_MEASURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_202F80D6_F90B_4ace_8DFE_74BDB8BF74EF}{\*\bkmkend BKM_202F80D6_F90B_4ace_8DFE_74BDB8BF74EF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EXTREME_WEATHER_CONDITIONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_12468462_F81C_4b01_AA42_850B0FCC3890}{\*\bkmkend BKM_12468462_F81C_4b01_AA42_850B0FCC3890}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_242AFC26_4CC4_458b_8218_E1553B5BFF00}{\*\bkmkend BKM_242AFC26_4CC4_458b_8218_E1553B5BFF00}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PRECIPITATION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D889401C_28EC_4024_9C64_0973656005BA}{\*\bkmkend BKM_D889401C_28EC_4024_9C64_0973656005BA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RECKLESS_PERSONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_12A1001F_0946_4d17_B7FF_2610647B9B01}{\*\bkmkend BKM_12A1001F_0946_4d17_B7FF_2610647B9B01}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FFB54EFD_C258_4950_AC75_BDBA8665DE66}{\*\bkmkend BKM_FFB54EFD_C258_4950_AC75_BDBA8665DE66}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_REGULATIONS_CHANGED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F675B3FE_63AF_4f3d_8187_A45ED8F3B8AE}{\*\bkmkend BKM_F675B3FE_63AF_4f3d_8187_A45ED8F3B8AE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MAJOR_EVENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2E2DC163_F806_4cfa_995D_2BFE724F56BA}{\*\bkmkend BKM_2E2DC163_F806_4cfa_995D_2BFE724F56BA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A6FC6205_1792_464e_B5B5_9CC501515E9F}{\*\bkmkend BKM_A6FC6205_1792_464e_B5B5_9CC501515E9F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_NOT_USEABLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2B497E06_D48C_4323_98CC_5DD4A4BDB948}{\*\bkmkend BKM_2B497E06_D48C_4323_98CC_5DD4A4BDB948}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_MOVING_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_635F7847_DBB4_4d2e_B2AC_95535604FAFB}{\*\bkmkend BKM_635F7847_DBB4_4d2e_B2AC_95535604FAFB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGEROUS_END_OF_QUEUE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_364E07F9_DE09_4c44_9685_50397E4F26A8}{\*\bkmkend BKM_364E07F9_DE09_4c44_9685_50397E4F26A8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RISK_OF_FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_849A4C5B_E4F6_4d21_9C43_EF211BAC65A2}{\*\bkmkend BKM_849A4C5B_E4F6_4d21_9C43_EF211BAC65A2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_889FC621_4B90_4beb_BF89_AD31E0CFE956}{\*\bkmkend BKM_889FC621_4B90_4beb_BF89_AD31E0CFE956}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+POLICE_CHECKPOINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1B9808FE_EC0A_4e63_A68A_5F03B11C26B8}{\*\bkmkend BKM_1B9808FE_EC0A_4e63_A68A_5F03B11C26B8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MALFUNCTIONING_ROADSIDE_EQUIPMENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_96A7A379_AB2C_44ee_955E_E08EA63BBC76}{\*\bkmkend BKM_96A7A379_AB2C_44ee_955E_E08EA63BBC76}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DangerousEndOfQueue}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E66BFE08_43F4_430b_962C_1EEEAF936D5E}{\*\bkmkend BKM_E66BFE08_43F4_430b_962C_1EEEAF936D5E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A1E0996E_68B2_4f29_A38C_7CCAB9111CA0}{\*\bkmkend BKM_A1E0996E_68B2_4f29_A38C_7CCAB9111CA0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SUDDEN_END_OF_QUEUE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B2722D89_3CD0_4fbe_AAE4_1F073A0FB417}{\*\bkmkend BKM_B2722D89_3CD0_4fbe_AAE4_1F073A0FB417}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUE_OVER_HILL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EAC34091_5B98_4845_904B_2397D29931F5}{\*\bkmkend BKM_EAC34091_5B98_4845_904B_2397D29931F5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUE_AROUND_A_BEND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E63ED2A9_DB56_455c_929D_86A5E36699D6}{\*\bkmkend BKM_E63ED2A9_DB56_455c_929D_86A5E36699D6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUE_IN_TUNNEL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_ADCA39B9_EA01_415b_A2B2_A567205EDAC5}{\*\bkmkend BKM_ADCA39B9_EA01_415b_A2B2_A567205EDAC5}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DoNotLeaveYourVehicle}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4C6AD2F8_B23A_4163_9E48_663AC4F5E58A}{\*\bkmkend BKM_4C6AD2F8_B23A_4163_9E48_663AC4F5E58A}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D2CC1C1C_C8EC_45a9_9368_B98620A602F2}{\*\bkmkend BKM_D2CC1C1C_C8EC_45a9_9368_B98620A602F2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_LEAVE_YOUR_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1EC6F256_A28D_40a2_A648_BB76517B3E6F}{\*\bkmkend BKM_1EC6F256_A28D_40a2_A648_BB76517B3E6F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4823828C_49A6_4d09_93C2_8430E312AB4F}{\*\bkmkend BKM_4823828C_49A6_4d09_93C2_8430E312AB4F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DriveCarefully}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_8FE4FB73_DA98_4929_8970_6059FB2DB357}{\*\bkmkend BKM_8FE4FB73_DA98_4929_8970_6059FB2DB357}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FA2D414C_DE02_42c2_9B0B_11830DB8C5BE}{\*\bkmkend BKM_FA2D414C_DE02_42c2_9B0B_11830DB8C5BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E91A3201_7DDA_4a52_B7D6_47F6BA3B97E4}{\*\bkmkend BKM_E91A3201_7DDA_4a52_B7D6_47F6BA3B97E4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_093B38D0_A3EE_4069_B3B3_5247D6E504AC}{\*\bkmkend BKM_093B38D0_A3EE_4069_B3B3_5247D6E504AC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_5820AE78_CB1D_425d_AF8F_105F9AEE13C6}{\*\bkmkend BKM_5820AE78_CB1D_425d_AF8F_105F9AEE13C6}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DrivingNotAllowed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_11E6DC3F_711D_414e_9B42_EEA53AD84617}{\*\bkmkend BKM_11E6DC3F_711D_414e_9B42_EEA53AD84617}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B07FD30F_7421_4a50_90F2_9C270021A9E6}{\*\bkmkend BKM_B07FD30F_7421_4a50_90F2_9C270021A9E6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_49CFD369_E222_4c88_A9F8_476A2B3DCD2D}{\*\bkmkend BKM_49CFD369_E222_4c88_A9F8_476A2B3DCD2D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+EffectCode}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A10DCA06_9797_420d_8004_59EC1A1976B0}{\*\bkmkend BKM_A10DCA06_9797_420d_8004_59EC1A1976B0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F1A8E96D_91D5_4bae_B1A5_C18FBF0D4B58}{\*\bkmkend BKM_F1A8E96D_91D5_4bae_B1A5_C18FBF0D4B58}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_FLOW_UNKNOWN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C3E92339_3B1D_4045_87FC_A6029FB87930}{\*\bkmkend BKM_C3E92339_3B1D_4045_87FC_A6029FB87930}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FREE_TRAFFIC_FLOW}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8527AEB8_FE44_4f70_AFF1_7A4AF0B4ED43}{\*\bkmkend BKM_8527AEB8_FE44_4f70_AFF1_7A4AF0B4ED43}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3421B3B_A02D_44c0_AC02_A0999B8235FA}{\*\bkmkend BKM_F3421B3B_A02D_44c0_AC02_A0999B8235FA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_68EB6A8C_2F26_48e1_BE47_D5ED4C418F3A}{\*\bkmkend BKM_68EB6A8C_2F26_48e1_BE47_D5ED4C418F3A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+QUEUING_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E99C4DA7_188A_48da_968E_52F9E6FC7DCE}{\*\bkmkend BKM_E99C4DA7_188A_48da_968E_52F9E6FC7DCE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STATIONARY_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DA9A277F_91D0_4f30_811C_E227902B1351}{\*\bkmkend BKM_DA9A277F_91D0_4f30_811C_E227902B1351}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+NO_TRAFFIC_FLOW}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A8CD09B5_26DC_4664_8633_CC968B0B0FB3}{\*\bkmkend BKM_A8CD09B5_26DC_4664_8633_CC968B0B0FB3}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ExtremeWeatherConditions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1823410C_FED4_48f0_8AC2_44F00BCA99EC}{\*\bkmkend BKM_1823410C_FED4_48f0_8AC2_44F00BCA99EC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D9ECB127_3E4C_4b36_81B4_23F8A442B88C}{\*\bkmkend BKM_D9ECB127_3E4C_4b36_81B4_23F8A442B88C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STRONG_WINDS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1F683EA4_C76A_4e55_9686_4847A187A7EF}{\*\bkmkend BKM_1F683EA4_C76A_4e55_9686_4847A187A7EF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DAMAGING_HAIL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E327A40D_1607_4a09_B578_E2E93DCF4F77}{\*\bkmkend BKM_E327A40D_1607_4a09_B578_E2E93DCF4F77}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HURRICANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4CF450FA_31B4_4fe7_A0E2_7C429D2F0F1C}{\*\bkmkend BKM_4CF450FA_31B4_4fe7_A0E2_7C429D2F0F1C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+THUNDERSTORM}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B46406D2_F95C_445a_A924_A3BE182A23B9}{\*\bkmkend BKM_B46406D2_F95C_445a_A924_A3BE182A23B9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TORNADO}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C8E0E277_A197_4c75_80E4_F14685A3FCB5}{\*\bkmkend BKM_C8E0E277_A197_4c75_80E4_F14685A3FCB5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLIZARD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_19227CDF_2B2A_4d6e_AF2B_9114CC328106}{\*\bkmkend BKM_19227CDF_2B2A_4d6e_AF2B_9114CC328106}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Fire}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_EBF99F2C_91BB_4f54_BC74_7C56D9C0C7E2}{\*\bkmkend BKM_EBF99F2C_91BB_4f54_BC74_7C56D9C0C7E2}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F94C585F_18E8_4f85_8642_01F5A288A327}{\*\bkmkend BKM_F94C585F_18E8_4f85_8642_01F5A288A327}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MAJOR_FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0071A9A7_6144_4953_8C54_08144226C7F2}{\*\bkmkend BKM_0071A9A7_6144_4953_8C54_08144226C7F2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOREST_FIRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_98F45DAC_EB87_4b6e_83E8_75C048AB8E5D}{\*\bkmkend BKM_98F45DAC_EB87_4b6e_83E8_75C048AB8E5D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+FollowDiversion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_ACC582E2_D6E7_4892_BD1C_963CEDE20D13}{\*\bkmkend BKM_ACC582E2_D6E7_4892_BD1C_963CEDE20D13}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E8C2B2BB_896C_4f52_A187_B25079B043C1}{\*\bkmkend BKM_E8C2B2BB_896C_4f52_A187_B25079B043C1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FOLLOW_DIVERSION_SIGNS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F690F6E2_178B_4817_B5C7_E30E0111D168}{\*\bkmkend BKM_F690F6E2_178B_4817_B5C7_E30E0111D168}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+GivingPathVehiclesFromBehind}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C78479F2_3407_47a3_9C21_66C029D972F0}{\*\bkmkend BKM_C78479F2_3407_47a3_9C21_66C029D972F0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A7636188_FB7D_4237_8329_86A022A81AB9}{\*\bkmkend BKM_A7636188_FB7D_4237_8329_86A022A81AB9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GIVING_PATH_FOR_RESCUE_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E37E2DA6_6F2D_4512_86FE_CCA218382E13}{\*\bkmkend BKM_E37E2DA6_6F2D_4512_86FE_CCA218382E13}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GIVING_PATH_FOR_SERVICE_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_B96862B5_3162_4407_8E8C_235B7D03480A}{\*\bkmkend BKM_B96862B5_3162_4407_8E8C_235B7D03480A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+HazardousDrivingConditions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_98F592D8_0331_4174_894F_62505F1B3E4A}{\*\bkmkend BKM_98F592D8_0331_4174_894F_62505F1B3E4A}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0DA8412F_C681_4f8f_807E_8B1A8AA49FAD}{\*\bkmkend BKM_0DA8412F_C681_4f8f_807E_8B1A8AA49FAD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROCKFALLS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FCC9FDDA_5B0A_4c20_AF4D_57670AC76124}{\*\bkmkend BKM_FCC9FDDA_5B0A_4c20_AF4D_57670AC76124}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SEWER_COLLAPSE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_011F0BD3_DA5B_48f5_96F7_6BCC2E430FC1}{\*\bkmkend BKM_011F0BD3_DA5B_48f5_96F7_6BCC2E430FC1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EARTHQUAKE_DAMAGE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A236FFE0_77B9_44b4_B935_BFDF18840A1E}{\*\bkmkend BKM_A236FFE0_77B9_44b4_B935_BFDF18840A1E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SUBSIDENCE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4F9433C3_EA1F_4090_99F1_2C081AA590F0}{\*\bkmkend BKM_4F9433C3_EA1F_4090_99F1_2C081AA590F0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SNOW_DRIFTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A42B9C49_6C7F_4733_B886_F4A45CBE93DB}{\*\bkmkend BKM_A42B9C49_6C7F_4733_B886_F4A45CBE93DB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STORM_DAMAGE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3BBDE38B_0F54_4623_A9B2_E790BA152511}{\*\bkmkend BKM_3BBDE38B_0F54_4623_A9B2_E790BA152511}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BURST_PIPE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_45562C21_AB0A_49b7_B5B0_AFD82838C493}{\*\bkmkend BKM_45562C21_AB0A_49b7_B5B0_AFD82838C493}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VOLCANO_ERUPTION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_72706FC8_26D6_4fbd_94CC_137D694029CB}{\*\bkmkend BKM_72706FC8_26D6_4fbd_94CC_137D694029CB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FALLING_ICE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C01301CD_1108_4566_9A7D_51CDBF52F184}{\*\bkmkend BKM_C01301CD_1108_4566_9A7D_51CDBF52F184}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Impassibility}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C35F48B5_D49D_4c60_9278_7EA086B40209}{\*\bkmkend BKM_C35F48B5_D49D_4c60_9278_7EA086B40209}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9CAD70B6_9C92_4df3_B75F_4B2C122F0BF3}{\*\bkmkend BKM_9CAD70B6_9C92_4df3_B75F_4B2C122F0BF3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FLOODING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BD1D430E_5B72_4dab_BA08_58881B8FEE89}{\*\bkmkend BKM_BD1D430E_5B72_4dab_BA08_58881B8FEE89}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_OF_AVALANCHES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A87CF93C_2C7A_468c_94AC_AF6077A42F39}{\*\bkmkend BKM_A87CF93C_2C7A_468c_94AC_AF6077A42F39}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLASTING_OF_AVALANCHES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4DA8AD9F_C7B2_4c6a_B7AF_4F39714BBAA1}{\*\bkmkend BKM_4DA8AD9F_C7B2_4c6a_B7AF_4F39714BBAA1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LANDSLIPS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EA885943_F861_4c8d_8419_024A0B4E664A}{\*\bkmkend BKM_EA885943_F861_4c8d_8419_024A0B4E664A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CHEMICAL_SPILLAGE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A6345531_5F34_4cf8_9B9A_B8C433D0FB46}{\*\bkmkend BKM_A6345531_5F34_4cf8_9B9A_B8C433D0FB46}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WINTER_CLOSURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C71924C1_418C_48c4_B303_64569D0FD267}{\*\bkmkend BKM_C71924C1_418C_48c4_B303_64569D0FD267}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LaneRestrictionType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_758FC316_FF5D_4c0e_95D3_0E02FBB35151}{\*\bkmkend BKM_758FC316_FF5D_4c0e_95D3_0E02FBB35151}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0D0B7032_6A75_4ecf_A99B_B4C796B7C7BC}{\*\bkmkend BKM_0D0B7032_6A75_4ecf_A99B_B4C796B7C7BC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LANES_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_628354DF_0E4D_4895_B6E0_D2B9129E06D1}{\*\bkmkend BKM_628354DF_0E4D_4895_B6E0_D2B9129E06D1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LANES_OPEN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_50267E8A_8AAC_41bf_BA08_10AD8B557737}{\*\bkmkend BKM_50267E8A_8AAC_41bf_BA08_10AD8B557737}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RIGHT_LANES_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B0C6E7EB_B6A2_455c_BD94_A7137F91B03E}{\*\bkmkend BKM_B0C6E7EB_B6A2_455c_BD94_A7137F91B03E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LEFT_LANES_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9C2DF111_0EFF_4bfb_B593_C63C2A2A6B93}{\*\bkmkend BKM_9C2DF111_0EFF_4bfb_B593_C63C2A2A6B93}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+MajorEvent}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_2DC2744C_34E1_4705_9C65_70B81D6FA53B}{\*\bkmkend BKM_2DC2744C_34E1_4705_9C65_70B81D6FA53B}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4A5CFB68_AAC8_445c_8336_338BA884C0F0}{\*\bkmkend BKM_4A5CFB68_AAC8_445c_8336_338BA884C0F0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SPORTS_EVENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A0295A5A_8E82_4cde_AC87_4183E442EE04}{\*\bkmkend BKM_A0295A5A_8E82_4cde_AC87_4183E442EE04}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DEMONSTRATION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A038F33A_5021_431c_B4C5_C480EDD85653}{\*\bkmkend BKM_A038F33A_5021_431c_B4C5_C480EDD85653}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DEMONSTRATION_WITH_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0876333A_304C_43e8_B526_C5DF0085B4C8}{\*\bkmkend BKM_0876333A_304C_43e8_B526_C5DF0085B4C8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONCERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4C908B78_5809_45bc_84DD_01FCE15AF62B}{\*\bkmkend BKM_4C908B78_5809_45bc_84DD_01FCE15AF62B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FAIR}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_73641690_8DA5_4368_B021_E8BBD560342A}{\*\bkmkend BKM_73641690_8DA5_4368_B021_E8BBD560342A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MILITARY_TRAINING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3875AB49_E7B0_4773_8DBC_9426C0BE84BB}{\*\bkmkend BKM_3875AB49_E7B0_4773_8DBC_9426C0BE84BB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EMERGENCY_TRAINING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EE52364D_0425_4c4a_A021_7EE53BB8A011}{\*\bkmkend BKM_EE52364D_0425_4c4a_A021_7EE53BB8A011}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FESTIVITY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D16246E8_11EF_4ab8_AD37_3C5F6E0531EC}{\*\bkmkend BKM_D16246E8_11EF_4ab8_AD37_3C5F6E0531EC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PROCESSION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_DF131212_A82E_449a_B904_FA663662685E}{\*\bkmkend BKM_DF131212_A82E_449a_B904_FA663662685E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+MalfunctioningRoadsideEquipment}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_712E963F_D337_4327_B479_5740FABFD505}{\*\bkmkend BKM_712E963F_D337_4327_B479_5740FABFD505}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5B1237CD_0652_4604_96F3_FDE7DE7288EC}{\*\bkmkend BKM_5B1237CD_0652_4604_96F3_FDE7DE7288EC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROAD_RAIL_CROSSING_FAILURE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_084C86C2_8E8F_450a_B238_E589683189A1}{\*\bkmkend BKM_084C86C2_8E8F_450a_B238_E589683189A1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TUNNEL_VENTILATION_NOT_WORKING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8719893A_112F_4aa3_B117_97BB6F44F4B8}{\*\bkmkend BKM_8719893A_112F_4aa3_B117_97BB6F44F4B8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3F119CDD_D312_4360_9007_94699E092C2F}{\*\bkmkend BKM_3F119CDD_D312_4360_9007_94699E092C2F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EMERGENCY_TELEPHONES_NOT_WORKING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_940FD2B6_A571_4e43_807A_1289EFFDE828}{\*\bkmkend BKM_940FD2B6_A571_4e43_807A_1289EFFDE828}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AUTOMATIC_PAYMENT_LANES_NOT_WORKING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_95993D49_0F4A_4656_A2B8_F570690FB110}{\*\bkmkend BKM_95993D49_0F4A_4656_A2B8_F570690FB110}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+NarrowLanes}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_072FD05F_6433_4372_9E40_CD44954C5FF6}{\*\bkmkend BKM_072FD05F_6433_4372_9E40_CD44954C5FF6}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_93C6EF82_F618_4c90_9EA7_FE07BAC1208E}{\*\bkmkend BKM_93C6EF82_F618_4c90_9EA7_FE07BAC1208E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONTRAFLOW}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9F461EDC_B504_4c7c_87AC_E87A83F4A44D}{\*\bkmkend BKM_9F461EDC_B504_4c7c_87AC_E87A83F4A44D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HARD_SHOULDER_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1CBFCE68_01CF_486f_87D6_F9E06201A787}{\*\bkmkend BKM_1CBFCE68_01CF_486f_87D6_F9E06201A787}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIP_LANE_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1F784842_C6BD_4b2a_8C42_75E15474F3AB}{\*\bkmkend BKM_1F784842_C6BD_4b2a_8C42_75E15474F3AB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CRAWLER_LANE_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F1669583_6654_4466_A4BB_F747CFD5D4D7}{\*\bkmkend BKM_F1669583_6654_4466_A4BB_F747CFD5D4D7}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ObjectsOnTheRoad}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_443250FF_2B83_49f3_8087_F5444E397A98}{\*\bkmkend BKM_443250FF_2B83_49f3_8087_F5444E397A98}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_29F6B1C7_D616_4ea8_8188_04AB70E9A333}{\*\bkmkend BKM_29F6B1C7_D616_4ea8_8188_04AB70E9A333}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SHED_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3EC83D89_8B7C_468e_9BC0_5E01EC1FB967}{\*\bkmkend BKM_3EC83D89_8B7C_468e_9BC0_5E01EC1FB967}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARTS_OF_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5DA80EBB_EF9C_42da_9AE9_D78B3550AF8B}{\*\bkmkend BKM_5DA80EBB_EF9C_42da_9AE9_D78B3550AF8B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARTS_OF_TYRES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_86268EF7_B1CB_4603_B2B1_1C37B42801F4}{\*\bkmkend BKM_86268EF7_B1CB_4603_B2B1_1C37B42801F4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BIG_OBJECTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_82D2C9DE_D405_432e_817D_CDB1564C9D2D}{\*\bkmkend BKM_82D2C9DE_D405_432e_817D_CDB1564C9D2D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FALLEN_TREES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_32A977DD_3570_4645_AD97_3CF1952277DF}{\*\bkmkend BKM_32A977DD_3570_4645_AD97_3CF1952277DF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HUB_CAPS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_88C1C095_6843_4ac3_A98C_B5DA8A33FEB0}{\*\bkmkend BKM_88C1C095_6843_4ac3_A98C_B5DA8A33FEB0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WAITING_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_76A6C1BC_581C_4f39_9756_D09E81EF359E}{\*\bkmkend BKM_76A6C1BC_581C_4f39_9756_D09E81EF359E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+OvertakingNotAllowed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_72FAFEBE_2B07_4196_9558_7B2E626E42AC}{\*\bkmkend BKM_72FAFEBE_2B07_4196_9558_7B2E626E42AC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9400D5DE_E70B_4813_88BB_0CF8402B0A32}{\*\bkmkend BKM_9400D5DE_E70B_4813_88BB_0CF8402B0A32}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DO_NOT_USE_OVERTAKING_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_49F8E4CF_FCB4_4c25_9E58_C7AB6E1EE3FB}{\*\bkmkend BKM_49F8E4CF_FCB4_4c25_9E58_C7AB6E1EE3FB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_461E2723_29AE_4b0a_9043_76ACEB676455}{\*\bkmkend BKM_461E2723_29AE_4b0a_9043_76ACEB676455}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_192654A9_AD45_4564_870A_520356EBAE3E}{\*\bkmkend BKM_192654A9_AD45_4564_870A_520356EBAE3E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2BB435A6_EC15_4090_B0CD_9930D86CE86A}{\*\bkmkend BKM_2BB435A6_EC15_4090_B0CD_9930D86CE86A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PeopleOnRoadway}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3A88E739_AE2A_49d1_B305_DCD351754F7F}{\*\bkmkend BKM_3A88E739_AE2A_49d1_B305_DCD351754F7F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CA97CBC0_AA6E_40b7_B8D3_A235343D1C6E}{\*\bkmkend BKM_CA97CBC0_AA6E_40b7_B8D3_A235343D1C6E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CHILDREN_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5F8BB3E2_CAFD_463c_B234_F318B26D32D1}{\*\bkmkend BKM_5F8BB3E2_CAFD_463c_B234_F318B26D32D1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CYCLISTS_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_731668E1_5DA8_459a_A84E_9053EEB8F72A}{\*\bkmkend BKM_731668E1_5DA8_459a_A84E_9053EEB8F72A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTOR_CYCLIST_ON_ROADWAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_19ECD660_E639_486c_B84D_E526160E0D8C}{\*\bkmkend BKM_19ECD660_E639_486c_B84D_E526160E0D8C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+PoliceCheckpoint}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_AA9B6672_5763_4fa5_BF19_2BB32D48A635}{\*\bkmkend BKM_AA9B6672_5763_4fa5_BF19_2BB32D48A635}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DA292E99_7D57_495e_A4BD_C5BE53DA752C}{\*\bkmkend BKM_DA292E99_7D57_495e_A4BD_C5BE53DA752C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PERMANENT_POLICE_CHECKPOINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1F3A07B7_B4D2_4f04_AAD8_D08589F072EB}{\*\bkmkend BKM_1F3A07B7_B4D2_4f04_AAD8_D08589F072EB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TEMPORARY_POLICE_CHECKPOINT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4AD0095F_20E1_4726_A1EA_D049531F7199}{\*\bkmkend BKM_4AD0095F_20E1_4726_A1EA_D049531F7199}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Precipitation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E4EBAE39_E726_4bbc_8F52_30040404BE66}{\*\bkmkend BKM_E4EBAE39_E726_4bbc_8F52_30040404BE66}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8768FEA6_70E9_429f_AAE6_0FFD5C19AB99}{\*\bkmkend BKM_8768FEA6_70E9_429f_AAE6_0FFD5C19AB99}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_RAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0F3A3BD3_7CB2_4dee_981E_D99394908E07}{\*\bkmkend BKM_0F3A3BD3_7CB2_4dee_981E_D99394908E07}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_SNOWFALL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ECA124EB_DE0F_4080_AF27_6EC5BD675B6C}{\*\bkmkend BKM_ECA124EB_DE0F_4080_AF27_6EC5BD675B6C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SOFT_HAIL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_E804CB19_0614_427a_B2E6_FE7E0B503320}{\*\bkmkend BKM_E804CB19_0614_427a_B2E6_FE7E0B503320}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RecklessPersons}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_CD98A3BA_0083_414c_ACAF_5F4ABC0DB4DB}{\*\bkmkend BKM_CD98A3BA_0083_414c_ACAF_5F4ABC0DB4DB}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4324B17A_EBE7_495c_B2DD_C054C26BD733}{\*\bkmkend BKM_4324B17A_EBE7_495c_B2DD_C054C26BD733}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RECKLESS_DRIVER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_276E38F6_519B_4830_93CD_AC41A761C82A}{\*\bkmkend BKM_276E38F6_519B_4830_93CD_AC41A761C82A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+GUNFIRE_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4FD0572A_4EB1_4228_A325_89CD2C78AEC8}{\*\bkmkend BKM_4FD0572A_4EB1_4228_A325_89CD2C78AEC8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STONE_THROWING_PERSONS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_15150246_F803_4c69_B66C_3EB7C619877D}{\*\bkmkend BKM_15150246_F803_4c69_B66C_3EB7C619877D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RegulatoryMeasure}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_83645394_3D17_4b4c_811D_2A9CD66C31A7}{\*\bkmkend BKM_83645394_3D17_4b4c_811D_2A9CD66C31A7}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2DD9D6D8_5929_4869_B1C7_1FB11BCAF515}{\*\bkmkend BKM_2DD9D6D8_5929_4869_B1C7_1FB11BCAF515}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SECURITY_ALERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_47F6AB57_1DD1_4c35_926C_BBB5A336AB33}{\*\bkmkend BKM_47F6AB57_1DD1_4c35_926C_BBB5A336AB33}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONTAGIOUS_DISEASE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EE9FAAE6_1B2F_4a72_924E_200365EE9174}{\*\bkmkend BKM_EE9FAAE6_1B2F_4a72_924E_200365EE9174}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ENVIRONMENTAL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D430ADFC_5F02_4daf_9C2D_038131D47FD5}{\*\bkmkend BKM_D430ADFC_5F02_4daf_9C2D_038131D47FD5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SMOG_ALERT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_46269B4C_D91A_491f_983B_6256BE8D4825}{\*\bkmkend BKM_46269B4C_D91A_491f_983B_6256BE8D4825}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BATCH_SERVICE_IN_PROGRESS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DCCE0600_BA97_46a1_94C1_0E3F1CCE5EDC}{\*\bkmkend BKM_DCCE0600_BA97_46a1_94C1_0E3F1CCE5EDC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_91654112_D1C4_4d2b_96DA_E41588CC96B2}{\*\bkmkend BKM_91654112_D1C4_4d2b_96DA_E41588CC96B2}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RescueAndRecoveryWorkInProgress}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3FAB77DB_8ECE_4919_A846_14F1B8F62D48}{\*\bkmkend BKM_3FAB77DB_8ECE_4919_A846_14F1B8F62D48}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CC2A6242_06FD_4a32_9814_12255D51EFAA}{\*\bkmkend BKM_CC2A6242_06FD_4a32_9814_12255D51EFAA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EMERGENCY_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7A55F728_4A43_4398_996B_669F91CA1E74}{\*\bkmkend BKM_7A55F728_4A43_4398_996B_669F91CA1E74}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RESCUE_HELICOPTER_LANDING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_23D3A6B3_F0BC_4d6d_AECD_BEE5AA2C390D}{\*\bkmkend BKM_23D3A6B3_F0BC_4d6d_AECD_BEE5AA2C390D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+POLICE_ACTIVITY_ONGOING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4981DD23_416E_4a53_B684_938FA9C49053}{\*\bkmkend BKM_4981DD23_416E_4a53_B684_938FA9C49053}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MEDICAL_EMERGENCY_ONGOING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_93FBD3CF_A71E_49db_B417_2404B9EC5F84}{\*\bkmkend BKM_93FBD3CF_A71E_49db_B417_2404B9EC5F84}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CHILD_ABDUCTION_IN_PROGRESS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_57B39716_BA88_4da9_B069_AE66C828587B}{\*\bkmkend BKM_57B39716_BA88_4da9_B069_AE66C828587B}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RestrictionType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_02162C35_8531_4146_9D5A_461CA0BDC4A9}{\*\bkmkend BKM_02162C35_8531_4146_9D5A_461CA0BDC4A9}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2DD24871_125A_427f_A7C4_627B22772489}{\*\bkmkend BKM_2DD24871_125A_427f_A7C4_627B22772489}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WIDTH_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A2526C93_DBBA_4242_B8EB_90E58F161A8D}{\*\bkmkend BKM_A2526C93_DBBA_4242_B8EB_90E58F161A8D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WIDTH_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5CA11758_12EF_4686_AC46_39612372449C}{\*\bkmkend BKM_5CA11758_12EF_4686_AC46_39612372449C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEIGTH_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_254C3746_5C52_4818_95E0_9C2DB57C974A}{\*\bkmkend BKM_254C3746_5C52_4818_95E0_9C2DB57C974A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEIGTH_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5D8920A4_8EC2_496c_B04B_71A76B8E4B06}{\*\bkmkend BKM_5D8920A4_8EC2_496c_B04B_71A76B8E4B06}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WEIGHT_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_14A92FEF_C9EB_4a7b_B404_8AFDDFAABE76}{\*\bkmkend BKM_14A92FEF_C9EB_4a7b_B404_8AFDDFAABE76}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WEIGHT_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_183F98FB_235B_45c4_9AEE_D7EF60B519A6}{\*\bkmkend BKM_183F98FB_235B_45c4_9AEE_D7EF60B519A6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITHOUT_WINTER_TYRE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_610317FA_67FD_4438_A449_9803DDCE14A0}{\*\bkmkend BKM_610317FA_67FD_4438_A449_9803DDCE14A0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITHOUT_SNOW_CHAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3A06F666_B179_4658_9053_F0B7553382D0}{\*\bkmkend BKM_3A06F666_B179_4658_9053_F0B7553382D0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_TRAILER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A0F72711_F752_433e_98E3_0D1653ABB437}{\*\bkmkend BKM_A0F72711_F752_433e_98E3_0D1653ABB437}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_CARAVAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FA3DC979_2A97_4c09_B9A4_5157B2FFBB38}{\*\bkmkend BKM_FA3DC979_2A97_4c09_B9A4_5157B2FFBB38}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PERSONS_IN_VEHICLE_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_20B62EB6_A1BF_4f5c_AA29_78414A09BBEC}{\*\bkmkend BKM_20B62EB6_A1BF_4f5c_AA29_78414A09BBEC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PERSONS_IN_VEHICLE_MORE_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BEACC4C9_A66C_42a6_A0F4_3E2A159B3D82}{\*\bkmkend BKM_BEACC4C9_A66C_42a6_A0F4_3E2A159B3D82}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EVEN_NUMBER_PLATE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6A38F348_037F_41ad_BBD1_07EB9EC01AE6}{\*\bkmkend BKM_6A38F348_037F_41ad_BBD1_07EB9EC01AE6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ODD_NUMBER_PLATE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3AD1E509_4A43_45c3_BE88_E599646063D2}{\*\bkmkend BKM_3AD1E509_4A43_45c3_BE88_E599646063D2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LENGTH_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5ECEF73A_78A7_4b1d_B251_3C284E67D320}{\*\bkmkend BKM_5ECEF73A_78A7_4b1d_B251_3C284E67D320}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LENGTH_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8456A05F_09DE_42f6_9EDC_405ACAD1AB9F}{\*\bkmkend BKM_8456A05F_09DE_42f6_9EDC_405ACAD1AB9F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AXLE_LOAD_LESS_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_642AF46F_AD48_4651_9839_20D85D9D5241}{\*\bkmkend BKM_642AF46F_AD48_4651_9839_20D85D9D5241}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AXLE_LOAD_GREATER_THAN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4529C8C2_BC73_4bbc_B1A0_5776D6A472E2}{\*\bkmkend BKM_4529C8C2_BC73_4bbc_B1A0_5776D6A472E2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CAB08806_473E_44d9_A311_BD27B00F8A5A}{\*\bkmkend BKM_CAB08806_473E_44d9_A311_BD27B00F8A5A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_145BBC5D_D226_4ed9_8224_AE8C1D22B7A6}{\*\bkmkend BKM_145BBC5D_D226_4ed9_8224_AE8C1D22B7A6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D4DF8267_6D83_4a2d_B534_D6BC60CE2A65}{\*\bkmkend BKM_D4DF8267_6D83_4a2d_B534_D6BC60CE2A65}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2379970B_F04D_40ba_84DA_05B819BD1972}{\*\bkmkend BKM_2379970B_F04D_40ba_84DA_05B819BD1972}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_PETROL_ENGINE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D773CB47_D09E_4f86_A8D0_0B783B1A1FA5}{\*\bkmkend BKM_D773CB47_D09E_4f86_A8D0_0B783B1A1FA5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_DIESEL_ENGINE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_673C19A8_9FF8_41b7_B121_DECF8B6C2812}{\*\bkmkend BKM_673C19A8_9FF8_41b7_B121_DECF8B6C2812}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_LPG_ENGINE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F93ABEE4_0DED_48a4_AE1E_BAE2FC7BB3FA}{\*\bkmkend BKM_F93ABEE4_0DED_48a4_AE1E_BAE2FC7BB3FA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+THROUGH_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E07A2A48_5761_4bb6_8B71_9ADC4ED80E03}{\*\bkmkend BKM_E07A2A48_5761_4bb6_8B71_9ADC4ED80E03}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+RESIDENTS_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A5F9B81E_0617_41f7_B679_263EB908C4DD}{\*\bkmkend BKM_A5F9B81E_0617_41f7_B679_263EB908C4DD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+WITH_DESTINATION_IN_GIVEN_AREA}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_FB6F5D97_E1B4_4e8c_A872_153F1F671690}{\*\bkmkend BKM_FB6F5D97_E1B4_4e8c_A872_153F1F671690}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RiskOfFire}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C4BE9E99_65B2_4546_8E8F_E758ED543961}{\*\bkmkend BKM_C4BE9E99_65B2_4546_8E8F_E758ED543961}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_851120B2_0673_433f_9AEE_F117E66088C8}{\*\bkmkend BKM_851120B2_0673_433f_9AEE_F117E66088C8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LEAKAGE_OF_FUEL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BD24775F_2CC5_4290_8234_EAB941F1BD4A}{\*\bkmkend BKM_BD24775F_2CC5_4290_8234_EAB941F1BD4A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LEAKAGE_OF_GAS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_17811D0E_5C48_4c2c_B44E_588FF8C47CF4}{\*\bkmkend BKM_17811D0E_5C48_4c2c_B44E_588FF8C47CF4}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+RoadWorks}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_F1B4EA2E_D5B9_4631_B9BE_E443ACD414B8}{\*\bkmkend BKM_F1B4EA2E_D5B9_4631_B9BE_E443ACD414B8}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_602B420E_D461_4316_93EC_73F903AFEBFC}{\*\bkmkend BKM_602B420E_D461_4316_93EC_73F903AFEBFC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MAJOR_ROADWORKS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F90F6DD1_739A_49b2_9A9B_3469C780C9A6}{\*\bkmkend BKM_F90F6DD1_739A_49b2_9A9B_3469C780C9A6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROAD_MARKING_WORK}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C78B0774_7BD4_48b6_B92C_6CF373883CC1}{\*\bkmkend BKM_C78B0774_7BD4_48b6_B92C_6CF373883CC1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_MOVING_ROAD_MAINTENANCE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_5D55A97F_2DB5_4a29_9B9C_D449AA75DD30}{\*\bkmkend BKM_5D55A97F_2DB5_4a29_9B9C_D449AA75DD30}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ServiceNotOperating}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_62C6D134_A850_4c2d_9C17_54806DD49C9A}{\*\bkmkend BKM_62C6D134_A850_4c2d_9C17_54806DD49C9A}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6D28504A_D8E4_484a_A8C5_62F579A04646}{\*\bkmkend BKM_6D28504A_D8E4_484a_A8C5_62F579A04646}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FERRY_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_578B97BF_DB4B_482d_B8F1_F0FA03B1EE0C}{\*\bkmkend BKM_578B97BF_DB4B_482d_B8F1_F0FA03B1EE0C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PLANE_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D61567C0_DE21_4a6b_B160_AAC96525E143}{\*\bkmkend BKM_D61567C0_DE21_4a6b_B160_AAC96525E143}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAIN_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FBEB1872_D9EC_415b_A892_59FC5BAAC6DC}{\*\bkmkend BKM_FBEB1872_D9EC_415b_A892_59FC5BAAC6DC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BUS_SERVICE_NOT_OPERATING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_8B717328_9CFC_4271_88BC_3E3E7160072A}{\*\bkmkend BKM_8B717328_9CFC_4271_88BC_3E3E7160072A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+ServiceNotUsable}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_DA8808DF_F9FA_48cd_81D4_55A3936DF918}{\*\bkmkend BKM_DA8808DF_F9FA_48cd_81D4_55A3936DF918}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A7F82825_E6BC_4109_ADD9_27916236D4E4}{\*\bkmkend BKM_A7F82825_E6BC_4109_ADD9_27916236D4E4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FUEL_STATION_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EC55E47A_C2EB_484d_8DC5_3A977810DF29}{\*\bkmkend BKM_EC55E47A_C2EB_484d_8DC5_3A977810DF29}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_AREA_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ABFE6A75_EE0B_4c54_8EF7_508AD1C599BE}{\*\bkmkend BKM_ABFE6A75_EE0B_4c54_8EF7_508AD1C599BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SERVICE_AREA_BUSY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6562CFC7_0300_424f_9357_C662105D7B61}{\*\bkmkend BKM_6562CFC7_0300_424f_9357_C662105D7B61}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+PARKING_FULL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EE3A1266_4E7C_47c8_9810_DBDE5EF5C0D4}{\*\bkmkend BKM_EE3A1266_4E7C_47c8_9810_DBDE5EF5C0D4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAR_PARK_CLOSED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_450AD794_CD7D_44cc_A8A5_539BBD6C08BE}{\*\bkmkend BKM_450AD794_CD7D_44cc_A8A5_539BBD6C08BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+SlipperyRoad}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_E48EF868_87B2_4c90_929C_8BD863F978AD}{\*\bkmkend BKM_E48EF868_87B2_4c90_929C_8BD863F978AD}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D43E26ED_ED99_476f_A79E_4D1CEB8E0E12}{\*\bkmkend BKM_D43E26ED_ED99_476f_A79E_4D1CEB8E0E12}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_FROST_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_23712091_724C_495d_ADF1_76B39FFC4BDC}{\*\bkmkend BKM_23712091_724C_495d_ADF1_76B39FFC4BDC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FUEL_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F83AC4DF_435E_479b_8B07_918B3E741946}{\*\bkmkend BKM_F83AC4DF_435E_479b_8B07_918B3E741946}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MUD_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2B213B93_6FFB_4ee0_A05B_830DB5E350CE}{\*\bkmkend BKM_2B213B93_6FFB_4ee0_A05B_830DB5E350CE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SNOW_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3670007B_AE54_4790_9792_5E119E843B7A}{\*\bkmkend BKM_3670007B_AE54_4790_9792_5E119E843B7A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ICE_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7F5384F6_C800_40fa_81AF_527DB80870AF}{\*\bkmkend BKM_7F5384F6_C800_40fa_81AF_527DB80870AF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BLACK_ICE_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C2AD1025_FF32_4bbf_8802_34B9CD1A56DC}{\*\bkmkend BKM_C2AD1025_FF32_4bbf_8802_34B9CD1A56DC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+OIL_ON_ROAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_129B9328_6120_4f71_B297_95B00EAD2B3A}{\*\bkmkend BKM_129B9328_6120_4f71_B297_95B00EAD2B3A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOOSE_CHIPPINGS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E2A2E949_0353_4e20_9F5B_4DFE063C5573}{\*\bkmkend BKM_E2A2E949_0353_4e20_9F5B_4DFE063C5573}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+INSTANT_BLACK_ICE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F4775B40_708E_40da_82A0_2960B8B4FDA5}{\*\bkmkend BKM_F4775B40_708E_40da_82A0_2960B8B4FDA5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ROADS_SALTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A1C22B0C_ACD1_4512_98DC_6F6FBE2D187F}{\*\bkmkend BKM_A1C22B0C_ACD1_4512_98DC_6F6FBE2D187F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+SlowMovingVehicles}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C6843225_F3BF_464c_9E0D_2F39D4A799F3}{\*\bkmkend BKM_C6843225_F3BF_464c_9E0D_2F39D4A799F3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3524327E_54B8_478f_AC8B_7004426053AF}{\*\bkmkend BKM_3524327E_54B8_478f_AC8B_7004426053AF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLOW_MOVING_MAINTENANCE_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_74E37C85_F3D7_4fd7_BB1D_C1F77CFAA233}{\*\bkmkend BKM_74E37C85_F3D7_4fd7_BB1D_C1F77CFAA233}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FD680D45_CC8E_4efa_B97D_4A9D68CC85B2}{\*\bkmkend BKM_FD680D45_CC8E_4efa_B97D_4A9D68CC85B2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ABNORMAL_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DA2BA7DB_244C_4d22_BE2A_AA6218A132D5}{\*\bkmkend BKM_DA2BA7DB_244C_4d22_BE2A_AA6218A132D5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ABNORMAL_WIDE_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B6E01B8F_1488_4f6c_821B_058EEC79FCBE}{\*\bkmkend BKM_B6E01B8F_1488_4f6c_821B_058EEC79FCBE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONVOY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_71CE540A_0B84_4d68_811A_82CFABDF52E7}{\*\bkmkend BKM_71CE540A_0B84_4d68_811A_82CFABDF52E7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DEICING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EB7A238F_8D11_444a_8DC9_2EFFE794579E}{\*\bkmkend BKM_EB7A238F_8D11_444a_8DC9_2EFFE794579E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SALTING_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C7B74E3C_B521_4a26_B67F_2DF087177444}{\*\bkmkend BKM_C7B74E3C_B521_4a26_B67F_2DF087177444}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Tendency}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_479277D0_2238_416b_A4AB_26FEABAC9E06}{\*\bkmkend BKM_479277D0_2238_416b_A4AB_26FEABAC9E06}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_60C90B36_6089_40b0_94AE_E9CCBC258FDA}{\*\bkmkend BKM_60C90B36_6089_40b0_94AE_E9CCBC258FDA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIGHTLY_INCREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ED452F42_0D00_446f_AA59_6F48665994D6}{\*\bkmkend BKM_ED452F42_0D00_446f_AA59_6F48665994D6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+INCREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C9F28161_89BB_4e85_A563_5D2274187E04}{\*\bkmkend BKM_C9F28161_89BB_4e85_A563_5D2274187E04}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STRONGLY_INCREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F919BAC6_7747_4c33_8D8A_00D84DA21592}{\*\bkmkend BKM_F919BAC6_7747_4c33_8D8A_00D84DA21592}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SLIGHTLY_DECREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E1435520_E217_44b2_A1BC_C716C5E9D3B6}{\*\bkmkend BKM_E1435520_E217_44b2_A1BC_C716C5E9D3B6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DECREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EA624C8C_EA9A_4c21_9E71_5305545A03BE}{\*\bkmkend BKM_EA624C8C_EA9A_4c21_9E71_5305545A03BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STRONGLY_DECREASING}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5A48FDEF_19D9_4cf1_9351_7ED1E40F6F91}{\*\bkmkend BKM_5A48FDEF_19D9_4cf1_9351_7ED1E40F6F91}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CONSTANT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_5D0B3838_EDE7_49c1_B3FD_6525D7CDC732}{\*\bkmkend BKM_5D0B3838_EDE7_49c1_B3FD_6525D7CDC732}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TimeDelay}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_C3BE8A73_2B0C_4a06_BF92_36E2F1CBD71E}{\*\bkmkend BKM_C3BE8A73_2B0C_4a06_BF92_36E2F1CBD71E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9AB95C7B_0E94_41f7_8A92_7C5BE5D530D9}{\*\bkmkend BKM_9AB95C7B_0E94_41f7_8A92_7C5BE5D530D9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY_AT_FRONTIER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_99A7166E_9BAC_496a_91A5_941598998D45}{\*\bkmkend BKM_99A7166E_9BAC_496a_91A5_941598998D45}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY_AT_FERRY_PORT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0FA4D1D9_2F8C_4ec1_BE8D_7DF42449DF60}{\*\bkmkend BKM_0FA4D1D9_2F8C_4ec1_BE8D_7DF42449DF60}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F2E9C94D_2EC3_4b41_BC0E_C0EACBFD5D08}{\*\bkmkend BKM_F2E9C94D_2EC3_4b41_BC0E_C0EACBFD5D08}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficCongestion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_810A3BD6_7D65_4184_838F_B9C2FDA20AD7}{\*\bkmkend BKM_810A3BD6_7D65_4184_838F_B9C2FDA20AD7}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0977581E_8D23_41b1_AAF8_AAD156C49F80}{\*\bkmkend BKM_0977581E_8D23_41b1_AAF8_AAD156C49F80}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+INCREASED_VOLUME_OF_TRAFFIC}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_68816380_8C2A_4f02_8ADB_5361DFAF1990}{\*\bkmkend BKM_68816380_8C2A_4f02_8ADB_5361DFAF1990}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+UseTollLanes}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7C88D3A2_B006_4144_85B1_7F421E1F1DC1}{\*\bkmkend BKM_7C88D3A2_B006_4144_85B1_7F421E1F1DC1}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_583AB487_29D8_40d4_A1D6_B0C99315FD12}{\*\bkmkend BKM_583AB487_29D8_40d4_A1D6_B0C99315FD12}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_MANUAL_PAYMENT_TOLL_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_30F5F9DA_8E2B_4051_81FC_DB62FFD7EDF3}{\*\bkmkend BKM_30F5F9DA_8E2B_4051_81FC_DB62FFD7EDF3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+USE_AUTOMATIC_PAYMENT_TOLL_LANES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1B2704C3_1D69_4c68_A4B3_35FE76B0973E}{\*\bkmkend BKM_1B2704C3_1D69_4c68_A4B3_35FE76B0973E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VehicleType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_13A15682_8638_4c10_BF96_A10A9FB0FC65}{\*\bkmkend BKM_13A15682_8638_4c10_BF96_A10A9FB0FC65}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E0D46F47_91A1_4390_A400_1AFFD207D812}{\*\bkmkend BKM_E0D46F47_91A1_4390_A400_1AFFD207D812}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAR}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AEA9274B_D5A2_403e_AC60_C6F5B38D0917}{\*\bkmkend BKM_AEA9274B_D5A2_403e_AC60_C6F5B38D0917}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LORRY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_72B9C6AF_C418_4809_B845_608046087AA7}{\*\bkmkend BKM_72B9C6AF_C418_4809_B845_608046087AA7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+BUS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_83CACFE9_0D22_4c4b_A029_E022BBB5481F}{\*\bkmkend BKM_83CACFE9_0D22_4c4b_A029_E022BBB5481F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TAXI}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EBB7BAF5_E615_48cc_B84B_BD466825BDA6}{\*\bkmkend BKM_EBB7BAF5_E615_48cc_B84B_BD466825BDA6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A9A9C1F8_57B0_4f6c_8C38_19717269B29B}{\*\bkmkend BKM_A9A9C1F8_57B0_4f6c_8C38_19717269B29B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTOR_CYCLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_961DD0EC_5374_44a9_8A1E_1BAC4DFE73B4}{\*\bkmkend BKM_961DD0EC_5374_44a9_8A1E_1BAC4DFE73B4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VEHICLE_WITH_TRAILER}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_32FFF45D_4B8F_4cff_98DA_05F55E64AFF1}{\*\bkmkend BKM_32FFF45D_4B8F_4cff_98DA_05F55E64AFF1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MOTOR_VEHICLES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7060C23D_FAD4_4615_A39C_C5706F0DF029}{\*\bkmkend BKM_7060C23D_FAD4_4615_A39C_C5706F0DF029}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRANSPORT_OF_DANGEROUS_GOODS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E017FA06_4AFC_4a04_9731_BB46CC34FCDD}{\*\bkmkend BKM_E017FA06_4AFC_4a04_9731_BB46CC34FCDD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRANSPORT_OF_ABNORMAL_LOAD}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E0C97C27_E560_4fa3_BD18_232A8C29923A}{\*\bkmkend BKM_E0C97C27_E560_4fa3_BD18_232A8C29923A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+HEAVY_VEHICLE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_252200D3_8A4E_4afe_98BF_F119DF59C7E1}{\*\bkmkend BKM_252200D3_8A4E_4afe_98BF_F119DF59C7E1}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VisibilityReduced}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_AC467508_EB9D_4095_A5D6_ED4B0652829D}{\*\bkmkend BKM_AC467508_EB9D_4095_A5D6_ED4B0652829D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E3071DB0_32BF_439a_91FD_397AD01254CB}{\*\bkmkend BKM_E3071DB0_32BF_439a_91FD_397AD01254CB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_FOG}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_568AC76D_618E_4759_BAC8_8C463ACAED6E}{\*\bkmkend BKM_568AC76D_618E_4759_BAC8_8C463ACAED6E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_SMOKE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_71BEF1A5_3F11_4cb4_9067_6719949CCC74}{\*\bkmkend BKM_71BEF1A5_3F11_4cb4_9067_6719949CCC74}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9D126543_A36E_4f07_9F4E_8BAD49CD83DE}{\*\bkmkend BKM_9D126543_A36E_4f07_9F4E_8BAD49CD83DE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_218D28B2_D547_4eef_95CD_1E526BEC1638}{\*\bkmkend BKM_218D28B2_D547_4eef_95CD_1E526BEC1638}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9A9C087D_E6D4_4427_B527_194450AFC5C7}{\*\bkmkend BKM_9A9C087D_E6D4_4427_B527_194450AFC5C7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B1599F04_0C9E_40a8_A024_2C322FCDD830}{\*\bkmkend BKM_B1599F04_0C9E_40a8_A024_2C322FCDD830}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_SANDSTORMS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2E8A6EE7_600B_410b_A38D_3BAD8D9BC78B}{\*\bkmkend BKM_2E8A6EE7_600B_410b_A38D_3BAD8D9BC78B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A5EC4F66_F4F9_4295_A7A9_4BB6A0C2FB34}{\*\bkmkend BKM_A5EC4F66_F4F9_4295_A7A9_4BB6A0C2FB34}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+WarningLevel}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1AA56EAB_D1D8_4e33_AA5D_46E4048AFF03}{\*\bkmkend BKM_1AA56EAB_D1D8_4e33_AA5D_46E4048AFF03}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DFE3BF43_FC02_4fa9_8EA5_E19716CC58BF}{\*\bkmkend BKM_DFE3BF43_FC02_4fa9_8EA5_E19716CC58BF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+INFORMATIVE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_97A08063_0386_4b13_900D_8464185E536B}{\*\bkmkend BKM_97A08063_0386_4b13_900D_8464185E536B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_LEVEL_1}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B7E54BC3_2FB5_42d0_972E_643DE646900A}{\*\bkmkend BKM_B7E54BC3_2FB5_42d0_972E_643DE646900A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_LEVEL_2}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CA4C24CE_B303_42a3_B05F_92CE5B885927}{\*\bkmkend BKM_CA4C24CE_B303_42a3_B05F_92CE5B885927}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DANGER_LEVEL_3}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart trafficincidents}{\*\bkmkend trafficincidents}{\*\bkmkstart BKM_4E733244_0855_4d1d_91F1_B69AE1B4045E}{\*\bkmkend BKM_4E733244_0855_4d1d_91F1_B69AE1B4045E}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidents}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_4711F4C2_0F85_4e63_BDD6_041CF47167FC}{\*\bkmkend BKM_4711F4C2_0F85_4e63_BDD6_041CF47167FC}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncident}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw28178\pich37262\picwgoal15975\pichgoal21120\picscalex59\picscaley59\sspicalign0 010000006c000000f8ffffffffffffff28030000220400000000000000000000136e00008f91000020454d4600000100a06802003d190000060000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100e0fb1d03e0fb1d03ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff1f03000022040000050000001000100010000042d0310042d031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000780000001400000006000000
+10004001b006400180076000800710001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff7a000000160000000600000010004001b006400180076000800710001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7698086023086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b77a3f004c859e1025a004a01305b0e0edc59e102188d17
+0178370a4f980860235b004801305b0e0e37bb400078370a4f70374b0ba8d56b0008000000000000000000000058c8612348004b0b5c014b0ba8086023f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000680000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000667362000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000cc0000000600000004000000690000000f0000000100000000400d4200040dc206000000fcffffff150000004c000000000000000000000000000000ffffffffffffffff7800000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e0074006e640600000003000000060000000600000006000000030000000500000004000000060000000300000003000000
+030000000600000003000000060000000600000003000000060000000600000006000000030000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080
+bf0000803f000040400a4000c01c00000010000000c0bfc0ff010000002e018ffe10015801280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600
+0000300000002f0100001c0000003f0200007401000005000000f012c001f0124017f0234017f023c001f012c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000c0bfc0ff0b400040180000000c000000010000002e018ffe100158013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c0000000500008056000000
+2c0000001801000005000000560200008b01000004000000f0124017f0234017f023c001f012c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000
+00008095430000b7c3000088430000ac43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002b0192fe10015801250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000002c01000019000000ba01
+000071010000050000002c0119002c017101ba017101ba0119002c011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c000000080000805600000030000000ba01000019000000c00100007101000005000000ba011900ba017101c0017101c0011900ba011900250000000c
+00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c000000080000805600000030000000c001000019000000c80100007101000005000000c0011900c0017101c8017101c8011900c0011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000
+180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c000000080000805600000030000000c801000019000000d00100007101000005000000c8011900c8017101d0017101d0011900c8011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000
+000c000000080000805600000030000000d001000019000000d80100007101000005000000d0011900d0017101d8017101d8011900d0011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c000000080000805600000030000000d801000019000000df010000710100000500
+0000d8011900d8017101df017101df011900d8011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c000000080000805600000030000000df01000019000000e60100007101000005000000df011900df017101e6017101e6011900df011900250000000c0000000800008025
+0000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c000000080000805600000030000000e601000019000000ee0100007101000005000000e6011900e6017101ee017101ee011900e6011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000
+00000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000ee01000019000000f60100007101000005000000ee011900ee017101f6017101f6011900ee011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000
+805600000030000000f601000019000000fe0100007101000005000000f6011900f6017101fe017101fe011900f6011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c000000080000805600000030000000fe01000019000000030200007101000005000000fe011900fe01
+71010302710103021900fe011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c00000008000080560000003000000003020000190000000802000071010000050000000302190003027101080271010802190003021900250000000c00000008000080250000000c00000000
+000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c00000008000080560000003000000008020000190000000f020000710100000500000008021900080271010f0271010f02190008021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca00
+00000000250000000c00000002000000250000000c0000000800008056000000300000000f020000190000001502000071010000050000000f0219000f02710115027101150219000f021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00000002000000250000000c0000000800008056000000300000
+0015020000190000001d020000710100000500000015021900150271011d0271011d02190015021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056000000300000001d020000190000002502000071010000050000001d0219001d027101250271012502
+19001d021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c00000008000080560000003000000025020000190000002d020000710100000500000025021900250271012d0271012d02190025021900250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c0000000800008056000000300000002d020000190000003402000071010000050000002d0219002d02710134027101340219002d021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c0000000000025000000
+0c00000002000000250000000c00000008000080560000003000000034020000190000003b020000710100000500000034021900340271013b0271013b02190034021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c0000000800008056000000300000003b020000190000
+003c02000071010000050000003b0219003b0271013c0271013c0219003b021900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100
+00002b0192fe100158013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000001501000002000000530200008801000004000000c0
+121017c0231017c0239001c0129001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000000000
+0000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e1029696190187400afe9c58530bb296190100000000b80860238ce3c577738c172646e0c5779401300b0000300b188d170187400afe59004c013c5b0e0ec457e10237bb40008740
+0afeb80860235a004a013c5b0e0e8882dd193c5ce10270374b0b0000000008000000000000000000000058c8612348004b0b5c014b0bb8086023f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a2460fe5f2301000000b0086023dc57e10223e0c577b80860233a6c2e7608654501b0086023f057e102ad148b7564
+76000800000000250000000c00000002000000180000000c000000000000001e0000001800000035010000e4ffffff32020000d7ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000009b0100001f000000ce0100002b0000000100000000400d4200040dc29a010000e4ffffff0b0000004c0000000000000000000000
+00000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb002e7d06000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000001000000030000001200
+00000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76b808602308654501cc57e1021458e102245736019c58530b1058e10296
+9619018ce3c5776b83172646e0c5779401300b0000300b08a4f00f1c58e1025a0046013e5b0e0e3058e102188d170187400affb80860235b0048013e5b0e0e37bb400087400aff70374b0ba8d56b0008000000a05ae1020000000058c8612348004b0b5c014b0ba8086023f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd193d5b0e0e88144000
+00cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000a8000000920100002c000000d7010000370000000100000000400d4200040dc291010000d7ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005400720061006600660069
+00630049006e0063006900640065006e007400756d0500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100
+0000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002b01c5ff3b02c5ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001501000027000000530200005500000002000000c012e003c023e003250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000420000003a0100004e0000000100000000400d4200040dc230010000c1ffffff020000004c000000000000000000000000000000ffffffffffff
+ffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e40000004201000042000000b10100004e0000000100000000400d4200040dc241010000c1ffffff190000004c000000000000000000000000000000
+ffffffffffffffff80000000740072006100660066006900630049006e0063006900640065006e00740049006400200020003a0049004e005400330032006330030000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a0000
+0010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000310100004f0000003a0100005b0000000100000000400d4200040dc230010000b4ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600000003
+0000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000420100004f000000b20100005b0000000100000000400d4200040dc241010000b4ffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000650066
+00660065006300740043006f0064006500200020003a0045006600660065006300740043006f00640065006c6c06000000030000000300000006000000050000000300000007000000060000000600000006000000030000000300000003000000070000000300000003000000060000000500000003000000070000000600000006000000060000000a00000010000000ffffffff030000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000001
+00000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000310100005c0000003a010000680000000100000000400d4200040dc230010000a7ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+00100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000420100005c000000a1010000680000000100000000400d4200040dc241010000a7ffffff130000004c000000000000000000000000000000ffffffffffffffff740000006500660066006500630074005400650078007400200020003a0053005400
+520049004e0047006576060000000300000003000000060000000500000003000000070000000600000005000000030000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b000000540000005800000031010000690000003a010000750000000100000000400d4200040dc2300100009affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000b4000000420100006900000094010000750000000100000000400d4200040dc2410100009affffff110000004c000000000000000000000000000000ffffffffffffffff7000000073007400610072007400540069006d006500200020003a0049004e005400330032005c27040000000300000006000000030000000300000007000000030000000900000006000000030000000300000003
+00000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000760000003a010000820000000100000000400d4200040dc2300100008dffffff020000004c00000000000000000000
+0000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000420100007600000094010000820000000100000000400d4200040dc2410100008dffffff100000004c00000000
+0000000000000000000000ffffffffffffffff6c000000730074006f007000540069006d006500200020003a0049004e00540033003200040000000300000006000000060000000700000003000000090000000600000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000830000003a0100008f0000000100000000400d4200040dc23001000080ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000004201000083000000a50100008f0000000100000000400d4200040dc24101000080ffffff130000004c000000000000000000000000000000ffffffffffffffff74000000740065006e00640065006e0063007900200020003a00540065006e00640065006e006300790065760300000006000000
+06000000060000000600000006000000050000000500000003000000030000000300000007000000060000000600000006000000060000000600000005000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000310100009000
+00003a0100009c0000000100000000400d4200040dc23001000073ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000
+4201000090000000b20100009c0000000100000000400d4200040dc24101000073ffffff150000004c000000000000000000000000000000ffffffffffffffff78000000740065006e00640065006e00630079005400650078007400200020003a0053005400520049004e004700636603000000060000000600000006000000060000000600000005000000050000000700000006000000050000000300000003000000030000
+00030000000700000007000000070000000300000007000000080000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000310100009d0000003a010000a90000000100000000400d4200040dc23001000066ffffff020000004c00000000
+0000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000420100009d000000ad010000a90000000100000000400d4200040dc24101000066ffffff160000
+004c000000000000000000000000000000ffffffffffffffff780000006c0065006e0067007400680041006600660065006300740065006400200020003a0049004e00540033003200030000000600000006000000060000000300000006000000070000000300000003000000060000000500000003000000060000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000
+0000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000aa0000003a010000b60000000100000000400d4200040dc23001000059ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600000003000000
+0a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f400000042010000aa000000d6010000b60000000100000000400d4200040dc24101000059ffffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000610076006500
+7200610067006500530070006500650064004100620073006f006c00750074006500200020003a0049004e00540033003200060000000500000006000000030000000600000006000000060000000700000006000000060000000600000006000000070000000600000004000000060000000300000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a00000010
+000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000b70000003a010000c30000000100000000400d4200040dc2300100004cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000
+000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c00000042010000b700000082010000c30000000100000000400d4200040dc2410100004cffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000640065006c
+0061007900200020003a0049004e005400330032004e61060000000600000003000000060000000500000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000
+0031010000c40000003a010000d00000000100000000400d4200040dc2300100003fffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054
+000000e400000042010000c4000000c7010000d00000000100000000400d4200040dc2410100003fffffff190000004c000000000000000000000000000000ffffffffffffffff800000007300650067006d0065006e007400530070006500650064004c0069006d0069007400200020003a0049004e00540033003200000004000000060000000600000009000000060000000600000003000000070000000600000006000000
+0600000006000000060000000300000009000000030000000300000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000d10000003a010000dd00
+00000100000000400d4200040dc23001000032ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc00000042010000d1000000
+db010000dd0000000100000000400d4200040dc24101000032ffffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000065007800700065006300740065006400530070006500650064004100620073006f006c00750074006500200020003a0049004e0054003300320001000600000005000000060000000600000005000000030000000600000006000000070000000600000006000000060000
+0006000000070000000600000004000000060000000300000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000de
+0000003a010000ea0000000100000000400d4200040dc23001000025ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000440100
+0042010000de00000002020000ea0000000100000000400d4200040dc24101000025ffffff290000004c000000000000000000000000000000ffffffffffffffffa0000000630061007500730065007300200020003a00430061007500730065004400690073006300720069006d0069006e006100740065006400560061007200690061006e00740020005b0030002e002e002a005d0000000500000006000000060000000400
+0000060000000400000003000000030000000300000007000000060000000600000004000000060000000700000003000000040000000500000003000000030000000900000003000000060000000600000003000000060000000600000007000000060000000300000003000000060000000600000003000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000eb0000003a010000f70000000100000000400d4200040dc23001000018ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffff
+ff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005401000042010000eb00000011020000f70000000100000000400d4200040dc24101000018ffffff2c0000004c000000000000000000000000000000ffffffffffffffffa40000006c006f0063006100740069006f006e0020
+0020003a004c006f0063006100740069006f006e004400690073006300720069006d0069006e00610074006500640055006e0069006f006e0020005b0030002e002e0031005d00030000000600000005000000060000000300000003000000060000000600000003000000030000000300000006000000060000000500000006000000030000000300000006000000060000000700000003000000040000000500000003000000
+03000000090000000300000006000000060000000300000006000000060000000700000006000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+00005800000031010000f80000003a010000040100000100000000400d4200040dc2300100000bffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b00000054000000d800000042010000f8000000a7010000040100000100000000400d4200040dc2410100000bffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006100640076006900630065007300200020003a0041006400760069006300650020005b0030002e002e002a005d00ffff060000000600000005000000030000000500000006000000040000000300000003000000030000
+00070000000600000005000000030000000500000006000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000050100003a010000110100000100000000
+400d4200040dc230010000fefeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000240100004201000005010000d9010000110100
+000100000000400d4200040dc241010000fefeffff240000004c000000000000000000000000000000ffffffffffffffff940000006100700070006c00690063006100620069006c00690074007900200020003a004100700070006c00690063006100620069006c0069007400790020005b0030002e002e002a005d00060000000600000006000000030000000300000005000000060000000600000003000000030000000300
+0000030000000500000003000000030000000300000007000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b000000540000005800000031010000120100003a0100001e0100000100000000400d4200040dc230010000f1feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c0000008b00000054000000740100004201000012010000380200001e0100000100000000400d4200040dc241010000f1feffff310000004c000000000000000000000000000000ffffffffffffffffb0000000740065006d0070006f007200610072007900530070006500650064004c0069006d00690074007300200020003a00540065006d0070006f00720061007200790053
+0070006500650064004c0069006d006900740020005b0030002e002e002a005d000100030000000600000009000000060000000600000003000000060000000300000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000400000003000000030000000300000007000000060000000900000006000000060000000300000006000000030000000500000007000000
+060000000600000006000000060000000600000003000000090000000300000003000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000310100001f0100003a01
+00002b0100000100000000400d4200040dc230010000e4feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005c01000042010000
+1f0100001a0200002b0100000100000000400d4200040dc241010000e4feffff2d0000004c000000000000000000000000000000ffffffffffffffffa80000006c006f0063006100740069006f006e0049006e0066006f00200020003a004c006f0063006100740069006f006e0049006e0066006f004400690073006300720069006d0069006e00610074006500640055006e0069006f006e0000000300000006000000050000
+0006000000030000000300000006000000060000000300000006000000030000000600000003000000030000000300000006000000060000000500000006000000030000000300000006000000060000000300000006000000030000000600000007000000030000000400000005000000030000000300000009000000030000000600000006000000030000000600000006000000070000000600000003000000060000000600
+00000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000310100002c0100003a010000380100000100000000400d4200040dc230010000d7feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000420100002c010000bf010000380100000100000000400d4200040dc241010000d7feffff1a0000004c000000000000000000000000000000ffffffffffffffff8000
+00006300610075007300650054006500780074007300200020003a0053005400520049004e00470020005b0030002e002e002a005d0005000000060000000600000004000000060000000700000006000000050000000300000004000000030000000300000003000000070000000700000007000000030000000700000008000000030000000300000006000000030000000300000004000000030000000a00000010000000ff
+ffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000390100003a010000450100000100000000400d4200040dc230010000cafeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000
+0010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000180100004201000039010000de010000450100000100000000400d4200040dc241010000cafeffff220000004c000000000000000000000000000000ffffffffffffffff900000006100700070006c0069
+0063006100620069006c0069007400790054006500780074007300200020003a0053005400520049004e00470020005b0030002e002e002a005d00060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000700000006000000050000000300000004000000030000000300000003000000070000000700000007000000030000000700000008000000
+030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000460100003a010000520100000100000000400d4200040dc230010000bdfeffff020000004c0000000000
+00000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000004201000046010000c3010000520100000100000000400d4200040dc241010000bdfeffff1b000000
+4c000000000000000000000000000000ffffffffffffffff8400000061006400760069006300650054006500780074007300200020003a0053005400520049004e00470020005b0030002e002e002a005d0000000600000006000000050000000300000005000000060000000700000006000000050000000300000004000000030000000300000003000000070000000700000007000000030000000700000008000000030000
+000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031010000530100003a0100005f0100000100000000400d4200040dc230010000b0feffff020000004c0000000000000000
+00000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c0100004201000053010000000200005f0100000100000000400d4200040dc241010000b0feffff250000004c0000
+00000000000000000000000000ffffffffffffffff980000006c006f0063006100740069006f006e0042006f0075006e00640069006e00670042006f007800200020003a00520065006300740061006e00670075006c006100720041007200650061000100030000000600000005000000060000000300000003000000060000000600000007000000060000000600000006000000060000000300000006000000060000000700
+000006000000050000000300000003000000030000000700000006000000050000000300000006000000060000000600000006000000030000000600000003000000070000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+540000005800000031010000600100003a0100006c0100000100000000400d4200040dc230010000a3feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000e80000004201000060010000b60100006c0100000100000000400d4200040dc241010000a3feffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000630061007400650067006f0072007900490064007300200020003a0049004e0054003300320020005b0030002e002e002a005d00050000000600000003000000060000000600000006000000030000000500000003
+00000006000000040000000300000003000000030000000300000007000000070000000600000006000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000b80105fd580148002100000008000000620000000c00000001000000
+110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000b9010000b602000011030000fe02000005000000901b602b901be02f1031e02f1031602b901b602b250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000b80105fd580148003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000a20100009f020000280300001503000004000000901be02f1031e02f1031602b901b602b250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080da4300003ec40000ac4300009042bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000
+01000000b50108fd58014800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000b6010000b302000069020000fb02000005000000b601b302b601fb026902fb026902b302b601b302250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000069020000b302000072020000fb020000050000006902b3026902fb027202fb027202b3026902b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800
+0080560000003000000072020000b30200007b020000fb020000050000007202b3027202fb027b02fb027b02b3027202b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007b020000b302000083020000fb020000050000007b02b3027b
+02fb028302fb028302b3027b02b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000083020000b30200008b020000fb020000050000008302b3028302fb028b02fb028b02b3028302b302250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000008b020000b302000094020000fb020000050000008b02b3028b02fb029402fb029402b3028b02b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead8
+0000000000250000000c00000004000000250000000c00000008000080560000003000000094020000b30200009d020000fb020000050000009402b3029402fb029d02fb029d02b3029402b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000
+00009d020000b3020000a6020000fb020000050000009d02b3029d02fb02a602fb02a602b3029d02b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000a6020000b3020000ae020000fb02000005000000a602b302a602fb02ae02fb02ae
+02b302a602b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000ae020000b3020000b6020000fb02000005000000ae02b302ae02fb02b602fb02b602b302ae02b302250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000b6020000b3020000bf020000fb02000005000000b602b302b602fb02bf02fb02bf02b302b602b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000
+000c00000004000000250000000c000000080000805600000030000000bf020000b3020000c6020000fb02000005000000bf02b302bf02fb02c602fb02c602b302bf02b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c6020000b302
+0000cc020000fb02000005000000c602b302c602fb02cc02fb02cc02b302c602b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000cc020000b3020000d4020000fb02000005000000cc02b302cc02fb02d402fb02d402b302cc02b30225
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d4020000b3020000dd020000fb02000005000000d402b302d402fb02dd02fb02dd02b302d402b302250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000dd020000b3020000e6020000fb02000005000000dd02b302dd02fb02e602fb02e602b302dd02b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c000000040000
+00250000000c000000080000805600000030000000e6020000b3020000f1020000fb02000005000000e602b302e602fb02f102fb02f102b302e602b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f1020000b3020000fb020000fb02
+000005000000f102b302f102fb02fb02fb02fb02b302f102b302250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000fb020000b302000004030000fb02000005000000fb02b302fb02fb020403fb020403b302fb02b302250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000004030000b30200000c030000fb020000050000000403b3020403fb020c03fb020c03b3020403b302250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000000c030000b30200000e030000fb020000050000000c03b3020c03fb020e03fb020e03b3020c03b302250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0
+db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000b50108fd580148003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000
+0000250000000c00000004000000250000000c00000005000080560000002c0000009f0100009c020000250300001203000004000000601bb02fe030b02fe030302b601b302b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff46
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000001000000
+03000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000bf0100004afdffff040300003dfdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000049020000b90200007c020000c50200000100000000400d4200040dc2480200
+004afdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009c00000044020000c602000080020000d10200000100000000400d4200040dc2430200003dfdffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004100700070006c00690063006100620069006c0069007400
+79000000070000000600000006000000030000000300000006000000060000000600000003000000030000000300000003000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000
+00180000000210c0db0200000000400000b5012bfd0d032bfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000
+000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000009f010000c102000025030000ef02000002000000601b802de030802d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c
+0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000bb010000dc020000c4010000e80200000100000000400d4200040dc2ba01000027fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000
+00ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000cc010000dc0200004b020000e80200000100000000400d4200040dc2cb01000027fdffff190000004c000000000000000000000000000000ffffffffffffffff80000000760065006800690063006c0065
+005400790070006500200020003a00560065006800690063006c0065005400790070006500ffff050000000600000006000000030000000500000003000000060000000700000005000000060000000600000003000000030000000300000007000000060000000600000003000000050000000300000006000000070000000500000006000000060000000a00000010000000ffffffff030000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000bb010000e9020000c4010000f50200000100000000400d4200040dc2ba0100001afdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000bc010000cc010000e9020000e4020000f50200000100000000400d4200040dc2cb0100001afdffff3d0000004c000000000000000000000000000000ffffffffffffffffc8000000760065006800690063006c006500520065006c006100740065006400
+5200650073007400720069006300740069006f006e007300200020003a00560065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e0020005b0030002e002e002a005d0000000500000006000000060000000300000005000000030000000600000007000000060000000300000006000000030000000600000006000000070000000600000004000000030000
+0003000000030000000500000003000000030000000600000006000000040000000300000003000000030000000700000006000000060000000300000005000000030000000600000007000000060000000300000006000000030000000600000006000000070000000600000004000000030000000300000003000000050000000300000003000000060000000600000003000000030000000600000003000000030000000400
+0000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000006e02dcfe940057002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200000025
+0000000c00000001000000250000000c0000000800008056000000300000006f020000d0000000030300002701000005000000f026000df0267012303070123030000df026000d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00000000
+86000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000006e02dcfe940057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000
+000c00000004000000250000000c00000005000080560000002c00000058020000b90000001a0300003e01000004000000f0267012303070123030000df026000d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b0840
+0201580000004c0000000210c0db04000000040000000000000000c01a44008090c3000014430000ae42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000006b02dffe94005700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c
+0000000800008056000000300000006c020000cd000000b902000024010000050000006c02cd006c022401b9022401b902cd006c02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000b9020000cd000000bd0200002401000005000000
+b902cd00b9022401bd022401bd02cd00b902cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000bd020000cd000000c10200002401000005000000bd02cd00bd022401c1022401c102cd00bd02cd00250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000c1020000cd000000c60200002401000005000000c102cd00c1022401c6022401c602cd00c102cd00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000c6020000cd000000ca0200002401000005000000c602cd00c6022401ca022401ca02cd00c602cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056
+00000030000000ca020000cd000000ce0200002401000005000000ca02cd00ca022401ce022401ce02cd00ca02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000ce020000cd000000d10200002401000005000000ce02cd00ce022401
+d1022401d102cd00ce02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000d1020000cd000000d60200002401000005000000d102cd00d1022401d6022401d602cd00d102cd00250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000d6020000cd000000da0200002401000005000000d602cd00d6022401da022401da02cd00d602cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d1000000
+0000250000000c00000004000000250000000c000000080000805600000030000000da020000cd000000de0200002401000005000000da02cd00da022401de022401de02cd00da02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000de
+020000cd000000e10200002401000005000000de02cd00de022401e1022401e102cd00de02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e1020000cd000000e40200002401000005000000e102cd00e1022401e4022401e402cd00
+e102cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e4020000cd000000e80200002401000005000000e402cd00e4022401e8022401e802cd00e402cd00250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e8020000cd000000eb0200002401000005000000e802cd00e8022401eb022401eb02cd00e802cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00
+000004000000250000000c000000080000805600000030000000eb020000cd000000ef0200002401000005000000eb02cd00eb022401ef022401ef02cd00eb02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000ef020000cd000000f4
+0200002401000005000000ef02cd00ef022401f4022401f402cd00ef02cd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f4020000cd000000f80200002401000005000000f402cd00f4022401f8022401f802cd00f402cd0025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000f8020000cd000000fc0200002401000005000000f802cd00f8022401fc022401fc02cd00f802cd00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000fc020000cd000000000300002401000005000000fc02cd00fc022401000324010003cd00fc02cd00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000006b02dffe940057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000000000000000
+00000000000000250000000c00000004000000250000000c00000005000080560000002c00000055020000b6000000170300003b01000004000000c0264012003040120030d00cc026d00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000
+ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000070000000a5020000d6000000c8020000e10000000100000000400d4200040dc2a40200002dffffff060000004c000000000000000000000000000000ffffffffffffffff5800000041006400760069006300650007000000060000000700000003000000060000000600
+00000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006b021bffff021bff0001010115400100100000000400000000000000210000000800000062
+0000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+570000002400000055020000d100000017030000ff00000002000000c026800e0030800e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b000000540000005800000071020000ec0000007a020000f80000000100000000400d4200040dc27002000017ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c0000008b00000054000000d800000082020000ec000000fc020000f80000000100000000400d4200040dc28102000017ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006d00610069006e00410064007600690063006500200020003a0041006400760069006300650043006f0064006500000009000000060000000300000006000000070000
+000600000005000000030000000500000006000000030000000300000003000000070000000600000005000000030000000500000006000000070000000600000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000071
+020000f90000007a020000050100000100000000400d4200040dc2700200000affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00d800000082020000f9000000f2020000050100000100000000400d4200040dc2810200000affffff170000004c000000000000000000000000000000ffffffffffffffff7c000000730075006200410064007600690063006500200020003a00420059005400450020005b0030002e002e0031005d00000004000000060000000600000007000000060000000500000003000000050000000600000003000000030000000300
+000007000000070000000700000007000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000071020000060100007a020000120100000100000000400d4200040dc2
+70020000fdfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000008202000006010000f402000012010000010000000040
+0d4200040dc281020000fdfeffff180000004c000000000000000000000000000000ffffffffffffffff7c00000066007200650065005400650078007400200020003a0053005400520049004e00470020005b0030002e002e0031005d0003000000030000000600000006000000070000000600000005000000030000000300000003000000030000000700000007000000070000000300000007000000080000000300000003
+00000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000071020000130100007a0200001f0100000100000000400d4200040dc270020000f0feffff020000004c00000000000000000000
+0000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000008202000013010000000300001f0100000100000000400d4200040dc281020000f0feffff1d0000004c00000000
+0000000000000000000000ffffffffffffffff880000006100700070006c00690063006100620069006c00690074007900200020003a004100700070006c00690063006100620069006c00690074007900ffff060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003000000050000000300000003000000030000000700000006000000060000000300000003000000
+05000000060000000600000003000000030000000300000003000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000027005efd8e0045002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000000080
+3d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002800000060020000b6000000a502000005000000800200268002502a600b502a600b002680020026250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000600000005400
+0000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000027005efd8e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010
+00000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001100000049020000cd000000bc020000040000008002502a600b502a600b002680020026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a000000
+0c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000104200c027c400000e4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000240061fd8e004500250000000c00000008000080270000001800000004000000000000
+00fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000250000005d0200006f000000a20200000500000025005d022500a2026f00a2026f005d0225005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600
+0000300000006f0000005d02000073000000a2020000050000006f005d026f00a2027300a20273005d026f005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000730000005d02000077000000a20200000500000073005d027300a20277
+00a20277005d0273005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000770000005d0200007b000000a20200000500000077005d027700a2027b00a2027b005d0277005d02250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000007b0000005d0200007f000000a2020000050000007b005d027b00a2027f00a2027f005d027b005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd900000000
+00250000000c00000004000000250000000c0000000800008056000000300000007f0000005d02000083000000a2020000050000007f005d027f00a2028300a20283005d027f005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000008300
+00005d02000086000000a20200000500000083005d028300a2028600a20286005d0283005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000860000005d0200008a000000a20200000500000086005d028600a2028a00a2028a005d0286
+005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000008a0000005d0200008f000000a2020000050000008a005d028a00a2028f00a2028f005d028a005d02250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000008f0000005d02000093000000a2020000050000008f005d028f00a2029300a20293005d028f005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c0000
+0004000000250000000c000000080000805600000030000000930000005d02000096000000a20200000500000093005d029300a2029600a20296005d0293005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000960000005d0200009a00
+0000a20200000500000096005d029600a2029a00a2029a005d0296005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000009a0000005d0200009d000000a2020000050000009a005d029a00a2029d00a2029d005d029a005d02250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000009d0000005d020000a1000000a2020000050000009d005d029d00a202a100a202a1005d029d005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000a10000005d020000a5000000a202000005000000a1005d02a100a202a500a202a5005d02a1005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000
+000c000000080000805600000030000000a50000005d020000aa000000a202000005000000a5005d02a500a202aa00a202aa005d02a5005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000aa0000005d020000ad000000a20200000500
+0000aa005d02aa00a202ad00a202ad005d02aa005d02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000ad0000005d020000b1000000a202000005000000ad005d02ad00a202b100a202b1005d02ad005d02250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b10000005d020000b3000000a202000005000000b1005d02b100a202b300a202b3005d02b1005d02250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080
+460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000240061fd8e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000
+000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000e00000046020000ca000000b9020000040000005002202a300b202a300bd0255002d025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00
+0000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002e000000a0fdffffa900000093fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000
+5300000063020000860000006f0200000100000000400d4200040dc252000000a0fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000
+001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000006c0000005d000000700200007c0000007b0200000100000000400d4200040dc25c00000093fdffff050000004c000000000000000000000000000000ffffffffff
+ffffff5800000043006100750073006500000007000000060000000600000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000
+240081fdb20081fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000e0000006b020000ca000000990200000200000050022028300b2028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffff
+ffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000001
+00000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002a0000008602000033000000920200000100000000400d4200040dc2290000007dfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+00100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000003b00000086020000af000000920200000100000000400d4200040dc23a0000007dfdffff150000004c000000000000000000000000000000ffffffffffffffff780000006d00610069006e0043006100750073006500200020003a00430061007500
+7300650043006f006400650000000900000006000000030000000600000007000000060000000600000004000000060000000300000003000000030000000700000006000000060000000400000006000000070000000600000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000011
+008efcd50098002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000dd020000e700000075030000050000002001d02d20015037700e5037700ed02d2001d02d25000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000011008efcd50098003a0000000c0000000a000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffffc6020000fe0000008c0300000400000020015037700e5037700ed02d2001d02d250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000604100c05bc40000554300001843bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3
+f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000e0091fcd5009800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f000000da0200007e00000072030000050000000f00da020f0072037e0072037e00da020f00da02250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000007e000000da0200008300000072030000050000007e00da027e007203830072038300da027e00da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df
+0000000000250000000c00000004000000250000000c00000008000080560000003000000083000000da0200008900000072030000050000008300da0283007203890072038900da028300da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000
+000089000000da0200008e00000072030000050000008900da02890072038e0072038e00da028900da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000008e000000da0200009300000072030000050000008e00da028e0072039300720393
+00da028e00da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000093000000da0200009900000072030000050000009300da0293007203990072039900da029300da02250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000099000000da0200009e00000072030000050000009900da02990072039e0072039e00da029900da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000
+000c00000004000000250000000c0000000800008056000000300000009e000000da020000a400000072030000050000009e00da029e007203a4007203a400da029e00da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000a4000000da02
+0000aa0000007203000005000000a400da02a4007203aa007203aa00da02a400da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000aa000000da020000b10000007203000005000000aa00da02aa007203b1007203b100da02aa00da0225
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b1000000da020000b60000007203000005000000b100da02b1007203b6007203b600da02b100da02250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b6000000da020000bb0000007203000005000000b600da02b6007203bb007203bb00da02b600da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c000000040000
+00250000000c000000080000805600000030000000bb000000da020000c10000007203000005000000bb00da02bb007203c1007203c100da02bb00da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000c1000000da020000c60000007203
+000005000000c100da02c1007203c6007203c600da02c100da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000c6000000da020000cc0000007203000005000000c600da02c6007203cc007203cc00da02c600da02250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000cc000000da020000d20000007203000005000000cc00da02cc007203d2007203d200da02cc00da02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000d2000000da020000d90000007203000005000000d200da02d2007203d9007203d900da02d200da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000
+00080000805600000030000000d9000000da020000de0000007203000005000000d900da02d9007203de007203de00da02d900da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000de000000da020000e30000007203000005000000de00
+da02de007203e3007203e300da02de00da02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e3000000da020000e40000007203000005000000e300da02e3007203e4007203e400da02e300da02250000000c00000008000080250000000c
+00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000e0091fcd50098003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffffc3020000fb0000008903000004000000f0002037400e2037400ea02df000a02d250000000c00000007000080250000000c000000000000802400000024000000000080
+41000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000
+000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000010000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76b808602308654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b08a4f00f1c58e1025a0046013f5b0e0e3058e102188d170187400affb80860235b0088003f5b0e0e37bb400087400aff70374b0ba8d56b0008000000a05ae1020000000058c8612348004b0b
+5c014b0ba8026023f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a48d6a01ac58e102f0f31a01ac90a60160fe5f2301000000a0026023c458e10223e0c577a80260233a6c2e76a48d6a01a0026023d858e102ad148b756476000800000000250000000c00000004000000180000000c00000000000000540000006c000000c3000000dd020000e10000
+00e90200000100000000400d4200040dc2c200000026fdffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500000007000000060000000600000005000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+000000000000001e000000180000001800000013fdffffda00000006fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000060000000f002000093000000fc0200000100000000400d4200040dc25f00000013fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200
+750063007400750072006500bb00c57706000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff002500
+00000c00000003000000180000000c0000000000000054000000900000005c000000fd02000098000000080300000100000000400d4200040dc25b00000006fdffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000044006900720065006300740043006100750073006500000007000000030000000400000006000000060000000300000007000000060000000600000006000000060000000a
+00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000e00f4fce300f4fc0001010115400100100000000400000000000000210000000800000062000000
+0c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000
+0024000000f8fffffff8020000fb0000002603000002000000f000f030400ef030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000
+000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002
+000000180000000c0000008b000000540000005800000014000000130300001d0000001f0300000100000000400d4200040dc213000000f0fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c0000008b00000054000000f00000002500000013030000ae0000001f0300000100000000400d4200040dc224000000f0fcffff1b0000004c000000000000000000000000000000ffffffffffffffff840000007700610072006e0069006e0067004c006500760065006c00200020003a005700610072006e0069006e0067004c006500760065006c008b750700000006000000030000000600
+000003000000060000000600000006000000060000000500000006000000030000000300000003000000030000000900000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b000000540000005800000014000000200300001d0000002c0300000100000000400d4200040dc213000000e3fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000008b00000054000000080100002500000020030000c50000002c0300000100000000400d4200040dc224000000e3fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000075006e007600650072006900660069006500640049006e0066006f0072006d006100740069006f006e00200020003a0042004f004f004c00450041004e000000060000000600000005
+000000060000000300000003000000030000000300000006000000060000000300000006000000030000000600000003000000090000000600000003000000030000000600000006000000030000000300000003000000070000000800000008000000060000000700000007000000070000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000002d0300001d000000390300000100000000400d4200040dc213000000d6fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000250000002d03000077000000390300000100000000400d4200040dc224000000d6fcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000073007500620043006100750073006500200020003a00420059005400450000000400000006000000060000000700000006000000
+060000000400000006000000030000000300000003000000070000000700000007000000070000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000003a0300001d000000460300000100000000400d4200040dc213000000c9fc
+ffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000250000003a03000090000000460300000100000000400d4200040dc2
+24000000c9fcffff160000004c000000000000000000000000000000ffffffffffffffff780000006c0065006e0067007400680041006600660065006300740065006400200020003a0049004e005400330032000300000006000000060000000600000003000000060000000700000003000000030000000600000005000000030000000600000006000000030000000300000003000000030000000700000007000000060000
+00060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000470300001d000000530300000100000000400d4200040dc213000000bcfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b
+00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000250000004703000081000000530300000100000000400d4200040dc224000000bcfcffff130000004c000000000000000000000000000000ffffffffffffff
+ff74000000630061007500730065004f0066006600730065007400200020003a0049004e00540033003200ffff050000000600000006000000040000000600000008000000030000000300000004000000060000000300000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000540300001d000000600300000100000000400d4200040dc213000000affcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000480100002500000054030000e0000000600300000100000000400d4200040dc224000000affcffff2a0000004c000000000000000000000000000000ffffffffffffffffa00000006c0061006e0065005200650073007400720069006300740069006f006e007300200020003a004c0061006e006500
+5200650073007400720069006300740069006f006e00730020005b0030002e002e0031005d00030000000600000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000040000000300000003000000030000000600000006000000060000000600000007000000060000000400000003000000030000000300000005000000030000000300000006
+0000000600000004000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000610300001d0000006d0300000100000000400d4200040dc213000000a2fcff
+ff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000025000000610300007c0000006d0300000100000000400d4200040dc224
+000000a2fcffff110000004c000000000000000000000000000000ffffffffffffffff7000000066007200650065005400650078007400200020003a0053005400520049004e004700335303000000030000000600000006000000070000000600000005000000030000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000ffffffff030000000c00000010000000
+0000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000028002bfce20045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000
+0029000000930300000b010000d803000005000000900230399002803db010803db010303990023039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000
+0000c0bfc0ff0b400040180000000c0000000100000028002bfce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000012
+0000007c03000022010000ef030000040000009002803db010803db010303990023039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000001442
+008074c40000624300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000025002efce2004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000026000000900300009c000000d50300
+0005000000260090032600d5039c00d5039c00900326009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000009c00000090030000a1000000d5030000050000009c0090039c00d503a100d503a10090039c009003250000000c0000000800
+0080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000a100000090030000a7000000d503000005000000a1009003a100d503a700d503a7009003a1009003250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005
+00000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000a700000090030000ad000000d503000005000000a7009003a700d503ad00d503ad009003a7009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000
+080000805600000030000000ad00000090030000b2000000d503000005000000ad009003ad00d503b200d503b2009003ad009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000b200000090030000b8000000d503000005000000b20090
+03b200d503b800d503b8009003b2009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000b800000090030000be000000d503000005000000b8009003b800d503be00d503be009003b8009003250000000c00000008000080250000000c00
+000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000be00000090030000c4000000d503000005000000be009003be00d503c400d503c4009003be009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4
+e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000c400000090030000cb000000d503000005000000c4009003c400d503cb00d503cb009003c4009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c0000000800008056000000
+30000000cb00000090030000d1000000d503000005000000cb009003cb00d503d100d503d1009003cb009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000d100000090030000d5000000d503000005000000d1009003d100d503d500d5
+03d5009003d1009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000d500000090030000da000000d503000005000000d5009003d500d503da00d503da009003d5009003250000000c00000008000080250000000c000000000000802800
+00000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000da00000090030000e0000000d503000005000000da009003da00d503e000d503e0009003da009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb000000000025
+0000000c00000005000000250000000c000000080000805600000030000000e000000090030000e5000000d503000005000000e0009003e000d503e500d503e5009003e0009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000e5000000
+90030000eb000000d503000005000000e5009003e500d503eb00d503eb009003e5009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000eb00000090030000f2000000d503000005000000eb009003eb00d503f200d503f2009003eb0090
+03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000f200000090030000f9000000d503000005000000f2009003f200d503f900d503f9009003f2009003250000000c00000008000080250000000c00000000000080280000000c0000000500
+000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000f900000090030000ff000000d503000005000000f9009003f900d503ff00d503ff009003f9009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005
+000000250000000c000000080000805600000030000000ff0000009003000004010000d503000005000000ff009003ff00d5030401d50304019003ff009003250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000040100009003000008010000
+d503000005000000040190030401d5030801d5030801900304019003250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000025002e
+fce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000000f000000790300001f010000ec030000040000006002503d8010
+503d8010003960020039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000
+2f0000006dfcfffffe00000060fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000007e00000096030000b1000000a20300000100000000400d4200040dc27d0000006dfcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb0000
+0006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c
+0000000000000054000000ac0000006e000000a3030000c1000000ae0300000100000000400d4200040dc26d00000060fcffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004c0061006e0065005200650073007400720069006300740069006f006e00730006000000060000000600000006000000070000000600000006000000030000000400000003000000060000000300000003000000
+0600000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000025004efc07014efc00010101154001001000000004000000000000
+002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000050000002500
+00000c0000000500008057000000240000000f0000009e0300001f010000cc030000020000006002503b8010503b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002b000000b903000034000000c50300000100000000400d4200040dc22a0000004afcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000440100003c000000b903000004010000c50300000100000000400d4200040dc23b0000004afcffff290000004c000000000000000000000000000000ffffffffffffffffa00000006c0061006e0065005200650073007400720069006300740069006f006e005400790070006500200020003a004c0061006e0065005200650073
+007400720069006300740069006f006e00540079007000650000000300000006000000060000000600000007000000060000000400000003000000030000000300000005000000030000000300000006000000060000000700000005000000060000000600000003000000030000000300000006000000060000000600000006000000070000000600000004000000030000000300000003000000050000000300000003000000
+0600000006000000070000000500000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002b000000c603000034000000d20300000100000000400d4200040dc22a0000003dfcffff020000004c000000000000000000
+000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000003c000000c6030000ad000000d20300000100000000400d4200040dc23b0000003dfcffff150000004c000000
+000000000000000000000000ffffffffffffffff780000006e0075006d006200650072004f0066004c0061006e0065007300200020003a0049004e0054003300320000000600000006000000090000000600000006000000030000000800000003000000060000000600000006000000060000000400000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000
+000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000fd009ffcaa0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800
+00805600000030000000fe0000001f030000a80100006403000005000000e00ff031e00f4036801a4036801af031e00ff031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100000000
+0000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000fd009ffcaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080
+560000002c000000e700000008030000bf0100007b03000004000000e00f4036801a4036801af031e00ff031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000
+000000000000007a43008057c400002a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000fa00a2fcaa004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000fb0000001c03
+0000540100006103000005000000fb001c03fb0061035401610354011c03fb001c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000540100001c03000058010000610300000500000054011c03540161035801610358011c0354011c0325
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000580100001c0300005c010000610300000500000058011c03580161035c0161035c011c0358011c03250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c0000000800008056000000300000005c0100001c0300006001000061030000050000005c011c035c0161036001610360011c035c011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c000000050000
+00250000000c000000080000805600000030000000600100001c03000064010000610300000500000060011c03600161036401610364011c0360011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000640100001c030000690100006103
+00000500000064011c03640161036901610369011c0364011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000690100001c0300006d010000610300000500000069011c03690161036d0161036d011c0369011c03250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c0000000800008056000000300000006d0100001c0300007201000061030000050000006d011c036d0161037201610372011c036d011c03250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000720100001c03000077010000610300000500000072011c03720161037701610377011c0372011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c0000
+00080000805600000030000000770100001c0300007c010000610300000500000077011c03770161037c0161037c011c0377011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c0000000800008056000000300000007c0100001c0300008001000061030000050000007c01
+1c037c0161038001610380011c037c011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000800100001c03000084010000610300000500000080011c03800161038401610384011c0380011c03250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cd0000000000250000000c00000005000000250000000c000000080000805600000030000000840100001c03000087010000610300000500000084011c03840161038701610387011c0384011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000870100001c0300008b010000610300000500000087011c03870161038b0161038b011c0387011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c00000008000080560000
+00300000008b0100001c0300008f01000061030000050000008b011c038b0161038f0161038f011c038b011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c0000000800008056000000300000008f0100001c0300009401000061030000050000008f011c038f0161039401
+610394011c038f011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000940100001c0300009a010000610300000500000094011c03940161039a0161039a011c0394011c03250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c0000000800008056000000300000009a0100001c0300009e01000061030000050000009a011c039a0161039e0161039e011c039a011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000
+250000000c00000005000000250000000c0000000800008056000000300000009e0100001c030000a201000061030000050000009e011c039e016103a2016103a2011c039e011c03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000a20100
+001c030000a50100006103000005000000a2011c03a2016103a5016103a5011c03a2011c03250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00
+000001000000fa00a2fcaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000e400000005030000bc0100007803000004
+000000b00f1036501a1036501ac031b00fc031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c000000000000
+00540000006c000000840100001f030000a20100002b0300000100000000400d4200040dc283010000e4fcffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500000007000000060000000600000005000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c000000000000001e0000001800000004010000d1fcffff9b010000c4fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000037010000320300006a0100003e0300000100000000400d4200040dc236010000d1fcffff0b0000004c000000000000000000000000000000
+ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000090000000300100003f030000700100004a0300000100000000400d4200040dc22f010000c4fcffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004c0069006e006b006500640043006100750073006500ffff06000000030000000600000006000000060000000600000007
+000000060000000600000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000fa00b2fca401b2fc000101011540010010000000
+04000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c0000
+0005000000250000000c000000050000805700000024000000e40000003a030000bc0100006803000002000000b00f1035501a1035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b0440
+00000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c0000000100000019
+0000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000000100005503000009010000610300000100000000400d4200040dc2ff000000aefcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000001000011010000550300009f010000610300000100000000400d4200040dc210010000aefcffff1e0000004c000000000000000000000000000000ffffffffffffffff8800000063006100750073006500540072006100660066006900630049006e0063006900640065006e00740049006400200020003a00
+49004e005400330032000500000006000000060000000400000006000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c
+00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000f10178fc190154002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000f2010000370300000b030000
+8b03000005000000201f7033201fb038b030b038b0307033201f7033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000
+000c00000001000000f10178fc190154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000db0100002003000022030000a203
+000004000000201fb038b030b038b0307033201f7033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f743004061c400808c430000a842be
+d7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ee017bfc19015400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000ef01000034030000810200008803000005000000ef013403ef018803
+8102880381023403ef013403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00000008000080560000003000000081020000340300008802000088030000050000008102340381028803880288038802340381023403250000000c00000008000080250000000c000000000000
+80280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c00000008000080560000003000000088020000340300009002000088030000050000008802340388028803900288039002340388023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd000000
+0000250000000c00000005000000250000000c00000008000080560000003000000090020000340300009902000088030000050000009002340390028803990288039902340390023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000099
+02000034030000a102000088030000050000009902340399028803a1028803a102340399023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c000000080000805600000030000000a102000034030000a80200008803000005000000a1023403a1028803a8028803a8023403
+a1023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000a802000034030000af0200008803000005000000a8023403a8028803af028803af023403a8023403250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000af02000034030000b70200008803000005000000af023403af028803b7028803b7023403af023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00
+000005000000250000000c000000080000805600000030000000b702000034030000bf0200008803000005000000b7023403b7028803bf028803bf023403b7023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000bf02000034030000c4
+0200008803000005000000bf023403bf028803c4028803c4023403bf023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000c402000034030000cb0200008803000005000000c4023403c4028803cb028803cb023403c402340325000000
+0c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000cb02000034030000d20200008803000005000000cb023403cb028803d2028803d2023403cb023403250000000c00000008000080250000000c00000000000080280000000c00000005000000270000
+00180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000d202000034030000d90200008803000005000000d2023403d2028803d9028803d9023403d2023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c000000050000002500
+00000c000000080000805600000030000000d902000034030000e00200008803000005000000d9023403d9028803e0028803e0023403d9023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000e002000034030000e80200008803000005
+000000e0023403e0028803e8028803e8023403e0023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000e802000034030000f00200008803000005000000e8023403e8028803f0028803f0023403e8023403250000000c00000008000080
+250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000f002000034030000f90200008803000005000000f0023403f0028803f9028803f9023403f0023403250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000
+0000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000f902000034030000000300008803000005000000f9023403f90288030003880300033403f9023403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c0000000800
+0080560000003000000000030000340300000703000088030000050000000003340300038803070388030703340300033403250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c00000008000080560000003000000007030000340300000803000088030000050000000703340307
+038803080388030803340307033403250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ee017bfc190154003a0000000c000000
+0a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000d80100001d0300001f0300009f03000004000000f01e80388030803880304033f01e4033250000
+000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000f8010000c9fcfffffe020000bc
+fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000620200003a03000095020000460300000100000000400d4200040dc261020000c9fcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb000000060000000400000003000000
+03000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e400
+00003c02000047030000bb020000520300000100000000400d4200040dc23b020000bcfcffff190000004c000000000000000000000000000000ffffffffffffffff80000000560065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e005600070000000600000006000000030000000600000003000000060000000700000006000000030000000600000003
+000000060000000600000007000000060000000600000003000000040000000300000006000000030000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000
+180000000210c0db0200000000400000ee01aafc0703aafc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000
+0000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000d8010000420300001f0300007003000002000000f01e903580309035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c00
+00000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f40100005d030000fd010000690300000100000000400d4200040dc2f3010000a6fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000
+ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000003c010000050200005d030000b7020000690300000100000000400d4200040dc204020000a6fcffff280000004c000000000000000000000000000000ffffffffffffffff9c0000007200650073007400720069006300
+740069006f006e005400790070006500200020003a005200650073007400720069006300740069006f006e00540079007000650020005b0030002e002e0031005d000300000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000500000006000000060000000300000003000000030000000700000006000000040000000300000003000000030000000500000003
+00000003000000060000000600000007000000050000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000f40100006a030000fd010000760300
+000100000000400d4200040dc2f301000099fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000050200006a0300008f
+020000760300000100000000400d4200040dc20402000099fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000007200650073007400720069006300740069006f006e00560061006c0075006500200020003a0049004e0054003300320020005b0030002e002e0031005d00e1020300000006000000040000000300000003000000030000000500000003000000030000000600000006000000
+07000000060000000300000006000000060000000300000003000000030000000300000007000000070000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+000058000000f401000077030000fd010000830300000100000000400d4200040dc2f30100008cfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b0000005400000098010000050200007703000004030000830300000100000000400d4200040dc2040200008cfcffff370000004c000000000000000000000000000000ffffffffffffffffbc0000007200650073007400720069006300740069006f006e004c006f0063006100740069006f006e00200020003a004c006f0063006100740069006f006e004400690073006300720069006d0069006e00610074006500640055
+006e0069006f006e0020005b0030002e002e0031005d00000003000000060000000400000003000000030000000300000005000000030000000300000006000000060000000600000006000000050000000600000003000000030000000600000006000000030000000300000003000000060000000600000005000000060000000300000003000000060000000600000007000000030000000400000005000000030000000300
+0000090000000300000006000000060000000300000006000000060000000700000006000000030000000600000006000000030000000300000006000000030000000300000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005f0041fe8f0045002100000008000000620000000c
+00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000600000007d010000ef000000c2010000050000000006d0170006201cf00e201cf00ed0170006d017250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005f0041fe8f0045003a0000000c0000000a00000024000000240000000000803d0000000000000000000080
+3d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000490000006601000006010000d9010000040000000006201cf00e201cf00ed0170006d017250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b8420000dec300000f4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010
+00000002000000010000005c0044fe8f004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000005d0000007a010000a8000000bf010000050000005d007a015d00bf01a800bf01a8007a015d007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000
+180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000a80000007a010000ab000000bf01000005000000a8007a01a800bf01ab00bf01ab007a01a8007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000
+000c000000080000805600000030000000ab0000007a010000af000000bf01000005000000ab007a01ab00bf01af00bf01af007a01ab007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000af0000007a010000b4000000bf0100000500
+0000af007a01af00bf01b400bf01b4007a01af007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000b40000007a010000b8000000bf01000005000000b4007a01b400bf01b800bf01b8007a01b4007a01250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c000000080000805600000030000000b80000007a010000bb000000bf01000005000000b8007a01b800bf01bb00bf01bb007a01b8007a01250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000bb0000007a010000bf000000bf01000005000000bb007a01bb00bf01bf00bf01bf007a01bb007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000
+805600000030000000bf0000007a010000c3000000bf01000005000000bf007a01bf00bf01c300bf01c3007a01bf007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000c30000007a010000c7000000bf01000005000000c3007a01c300
+bf01c700bf01c7007a01c3007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000c70000007a010000ca000000bf01000005000000c7007a01c700bf01ca00bf01ca007a01c7007a01250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000ca0000007a010000cd000000bf01000005000000ca007a01ca00bf01cd00bf01cd007a01ca007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce00
+00000000250000000c00000005000000250000000c000000080000805600000030000000cd0000007a010000d1000000bf01000005000000cd007a01cd00bf01d100bf01d1007a01cd007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000
+00d10000007a010000d4000000bf01000005000000d1007a01d100bf01d400bf01d4007a01d1007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000d40000007a010000d8000000bf01000005000000d4007a01d400bf01d800bf01d800
+7a01d4007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000d80000007a010000dc000000bf01000005000000d8007a01d800bf01dc00bf01dc007a01d8007a01250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000dc0000007a010000e0000000bf01000005000000dc007a01dc00bf01e000bf01e0007a01dc007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc4000000000025000000
+0c00000005000000250000000c000000080000805600000030000000e00000007a010000e4000000bf01000005000000e0007a01e000bf01e400bf01e4007a01e0007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000e40000007a0100
+00e8000000bf01000005000000e4007a01e400bf01e800bf01e8007a01e4007a01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000e80000007a010000ec000000bf01000005000000e8007a01e800bf01ec00bf01ec007a01e8007a012500
+00000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005c0044fe8f0045003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000460000006301000003010000d601000004000000d005f01bc00ef01bc00ea017d005a017250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e40000006200000083010000e80000008e0100000100000000400d4200040dc26100
+000080feffff190000004c000000000000000000000000000000ffffffffffffffff80000000430061007500730065004400690073006300720069006d0069006e006100740065006400560061007200690061006e00740000080700000006000000060000000600000006000000070000000300000006000000060000000400000003000000090000000300000006000000060000000300000006000000060000000700000006
+00000004000000030000000600000006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000005c006efeeb006efe0001010115400100
+1000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000
+000c00000005000000250000000c000000050000805700000024000000460000007e01000003010000ac01000002000000d0055019c00e5019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000062000000990100006b000000a50100000100000000400d4200040dc2610000006afeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000007300000099010000e4000000a50100000100000000400d4200040dc2720000006afeffff150000004c000000000000000000000000000000ffffffffffffffff78000000630061007500730065005400790070006500200020003a0043006100750073006500540079007000650000000500
+000006000000060000000400000006000000070000000500000006000000060000000300000003000000030000000700000006000000060000000400000006000000070000000500000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+540000005800000062000000a60100006b000000b20100000100000000400d4200040dc2610000005dfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b00000054000000d800000073000000a6010000ec000000b20100000100000000400d4200040dc2720000005dfeffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006300610075007300650055006e0069006f006e00200020003a004300610075007300650055006e0069006f006e00000005000000060000000600000004000000060000000700000006000000030000000600000006
+000000030000000300000003000000070000000600000006000000040000000600000007000000060000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008b0105fcaa0045002100000008000000620000000c00000001000000110000000c000000010000000a000000
+10000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008c010000b903000036020000fe03000005000000c018903bc018e03f6023e03f6023903bc018903b250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008b0105fcaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500
+000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000075010000a20300004d0200001504000004000000c018e03f6023e03f6023903bc018903b250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c44300007ec400002a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000880108fcaa00450025000000
+0c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000089010000b6030000e2010000fb030000050000008901b6038901fb03e201fb03e201b6038901b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000
+000c00000005000000250000000c000000080000805600000030000000e2010000b6030000e6010000fb03000005000000e201b603e201fb03e601fb03e601b603e201b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000e6010000b603
+0000ea010000fb03000005000000e601b603e601fb03ea01fb03ea01b603e601b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000ea010000b6030000ee010000fb03000005000000ea01b603ea01fb03ee01fb03ee01b603ea01b60325
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000ee010000b6030000f2010000fb03000005000000ee01b603ee01fb03f201fb03f201b603ee01b603250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000f2010000b6030000f7010000fb03000005000000f201b603f201fb03f701fb03f701b603f201b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c000000050000
+00250000000c000000080000805600000030000000f7010000b6030000fb010000fb03000005000000f701b603f701fb03fb01fb03fb01b603f701b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000fb010000b603000000020000fb03
+000005000000fb01b603fb01fb030002fb030002b603fb01b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c00000008000080560000003000000000020000b603000005020000fb030000050000000002b6030002fb030502fb030502b6030002b603250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c00000008000080560000003000000005020000b60300000a020000fb030000050000000502b6030502fb030a02fb030a02b6030502b603250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000f2e4d00000000000250000000c00000005000000250000000c0000000800008056000000300000000a020000b60300000e020000fb030000050000000a02b6030a02fb030e02fb030e02b6030a02b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c0000
+000800008056000000300000000e020000b603000012020000fb030000050000000e02b6030e02fb031202fb031202b6030e02b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cd0000000000250000000c00000005000000250000000c00000008000080560000003000000012020000b603000015020000fb030000050000001202
+b6031202fb031502fb031502b6031202b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c00000008000080560000003000000015020000b603000019020000fb030000050000001502b6031502fb031902fb031902b6031502b603250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c00000008000080560000003000000019020000b60300001d020000fb030000050000001902b6031902fb031d02fb031d02b6031902b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+eddec70000000000250000000c00000005000000250000000c0000000800008056000000300000001d020000b603000022020000fb030000050000001d02b6031d02fb032202fb032202b6031d02b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c00000008000080560000
+003000000022020000b603000028020000fb030000050000002202b6032202fb032802fb032802b6032202b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c00000008000080560000003000000028020000b60300002c020000fb030000050000002802b6032802fb032c02
+fb032c02b6032802b603250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c0000000800008056000000300000002c020000b603000030020000fb030000050000002c02b6032c02fb033002fb033002b6032c02b603250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c00000008000080560000003000000030020000b603000033020000fb030000050000003002b6033002fb033302fb033302b6033002b603250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000
+454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000880108fcaa0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000
+000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000720100009f0300004a02000012040000040000009018b03f3023b03f3023603b9018603b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c00
+00000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000c8010000bf030000f5010000ca0300000100000000400d4200040dc2c701000044fcffff0a0000004c000000000000000000000000000000ffffffffffffffff600000006c006f0063006100740069006f006e003a003a00
+030000000600000006000000060000000300000003000000060000000600000003000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e800000099010000cc03000023020000d70300000100000000400d4200040dc29801000037fc
+ffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004c006f0063006100740069006f006e004400690073006300720069006d0069006e00610074006500640055006e0069006f006e00060000000600000006000000060000000300000003000000060000000600000007000000030000000600000006000000040000000300000009000000030000000600000006000000030000000600000006
+00000007000000060000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000880125fc320225fc0001010115400100
+1000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000
+000c00000005000000250000000c00000005000080570000002400000072010000c70300004a020000f5030000020000009018e03d3023e03d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008e010000e203000097010000ee0300000100000000400d4200040dc28d01000021fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f00000009f010000e203000027020000ee0300000100000000400d4200040dc29e01000021fcffff1b0000004c000000000000000000000000000000ffffffffffffffff840000006c006f0063006100740069006f006e005400790070006500200020003a004c006f0063006100740069006f006e00
+540079007000650000000300000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000300000003000000030000000600000006000000050000000600000003000000030000000600000006000000070000000500000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008e010000ef03000097010000fb0300000100000000400d4200040dc28d01000014fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c000000100000
+00454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00
+000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc0000009f010000ef0300002f020000fb0300000100000000400d4200040dc29e01000014fcffff1d0000004c000000000000000000000000000000ffffffffffffffff880000006c006f0063006100740069006f006e0055006e0069006f006e00200020003a004c006f0063006100740069006f006e0055
+006e0069006f006e00000003000000060000000500000006000000030000000300000006000000060000000700000006000000030000000600000006000000030000000300000003000000060000000600000005000000060000000300000003000000060000000600000007000000060000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c000000
+20000000454d462b0a4000c01c00000010000000c0bfc0ff010000002a0050ffce0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002b0000006e000000f9000000b30000
+0005000000b002e006b002300b900f300b900fe006b002e006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00
+0000010000002a0050ffce0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000140000005700000010010000ca00000004
+000000b002300b900f300b900fe006b002e006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000001c4200002dc300004e4300008a42bed7e8ff
+e3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000270053ffce004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000280000006b00000093000000b00000000500000028006b002800b0009300b0
+0093006b0028006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000930000006b00000099000000b00000000500000093006b009300b0009900b00099006b0093006b00250000000c00000008000080250000000c000000000000802800
+00000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000990000006b0000009e000000b00000000500000099006b009900b0009e00b0009e006b0099006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd000000000025
+0000000c00000005000000250000000c0000000800008056000000300000009e0000006b000000a3000000b0000000050000009e006b009e00b000a300b000a3006b009e006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000a3000000
+6b000000a8000000b000000005000000a3006b00a300b000a800b000a8006b00a3006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000a80000006b000000ad000000b000000005000000a8006b00a800b000ad00b000ad006b00a8006b
+00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000ad0000006b000000b2000000b000000005000000ad006b00ad00b000b200b000b2006b00ad006b00250000000c00000008000080250000000c00000000000080280000000c0000000500
+000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000b20000006b000000b8000000b000000005000000b2006b00b200b000b800b000b8006b00b2006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005
+000000250000000c000000080000805600000030000000b80000006b000000be000000b000000005000000b8006b00b800b000be00b000be006b00b8006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000be0000006b000000c4000000
+b000000005000000be006b00be00b000c400b000c4006b00be006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000c40000006b000000c8000000b000000005000000c4006b00c400b000c800b000c8006b00c4006b00250000000c0000
+0008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000c80000006b000000cc000000b000000005000000c8006b00c800b000cc00b000cc006b00c8006b00250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800
+00000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000cc0000006b000000d1000000b000000005000000cc006b00cc00b000d100b000d1006b00cc006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c
+000000080000805600000030000000d10000006b000000d6000000b000000005000000d1006b00d100b000d600b000d6006b00d1006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000d60000006b000000db000000b000000005000000
+d6006b00d600b000db00b000db006b00d6006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000db0000006b000000e2000000b000000005000000db006b00db00b000e200b000e2006b00db006b00250000000c00000008000080250000
+000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000e20000006b000000e8000000b000000005000000e2006b00e200b000e800b000e8006b00e2006b00250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000000000
+0000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000e80000006b000000ee000000b000000005000000e8006b00e800b000ee00b000ee006b00e8006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c0000000800008056
+00000030000000ee0000006b000000f3000000b000000005000000ee006b00ee00b000f300b000f3006b00ee006b00250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000f30000006b000000f6000000b000000005000000f3006b00f300b000
+f600b000f6006b00f3006b00250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000270053ffce0045003a0000000c0000000a0000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000011000000540000000d010000c7000000040000008002000b600f000b600fb0068002b006250000000c00
+000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000003c0100002b00000074000000f40000007f000000
+0100000000400d4200040dc22a0000008fffffff280000004c000000000000000000000000000000ffffffffffffffff9c0000006c006f0063006100740069006f006e003a003a004c006f0063006100740069006f006e0049006e0066006f004400690073006300720069006d0069006e00610074006500640055006e0069006f006e000300000006000000060000000600000003000000030000000600000006000000030000
+00030000000600000006000000060000000600000003000000030000000600000006000000030000000600000003000000060000000700000003000000060000000600000004000000030000000900000003000000060000000600000003000000060000000600000007000000060000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c0000007000
+0000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000027007dfff5007dff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000110000006f0000000d0100009d0000000200000080026008600f6008250000000c000000
+07000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002d0000008a00000036000000960000000100
+000000400d4200040dc22c00000079ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000200100003e0000008a000000ea000000
+960000000100000000400d4200040dc23d00000079ffffff230000004c000000000000000000000000000000ffffffffffffffff940000006c006f0063006100740069006f006e0049006e0066006f005400790070006500200020003a004c006f0063006100740069006f006e0049006e0066006f0054007900700065000000030000000600000005000000060000000300000003000000060000000600000003000000060000
+00030000000600000007000000050000000600000006000000030000000300000003000000060000000600000005000000060000000300000003000000060000000600000003000000060000000300000006000000070000000500000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000
+00000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c
+00000002000000180000000c0000008b00000054000000580000002d0000009700000036000000a30000000100000000400d4200040dc22c0000006cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b000000540000002c0100003e00000097000000f2000000a30000000100000000400d4200040dc23d0000006cffffff250000004c000000000000000000000000000000ffffffffffffffff980000006c006f0063006100740069006f006e0049006e0066006f0055006e0069006f006e00200020003a004c006f0063006100740069006f006e0049006e0066006f005500
+6e0069006f006e000000030000000600000005000000060000000300000003000000060000000600000003000000060000000300000006000000070000000600000003000000060000000600000003000000030000000300000006000000060000000500000006000000030000000300000006000000060000000300000006000000030000000600000007000000060000000300000006000000060000000a00000010000000ff
+ffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000700275ff8a0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c0000000100000025000000
+0c0000000800008056000000300000007102000049000000fb0200008e00000005000000102790041027e008b02fe008b02f900410279004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000
+0001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000700275ff8a0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00
+000005000080560000002c0000005a0200003200000012030000a5000000040000001027e008b02fe008b02f900410279004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04
+000000040000000000000000401b44000008c300000a4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000006d0278ff8a004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000
+6e02000046000000b60200008b000000050000006e0246006e028b00b6028b00b60246006e024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000b602000046000000ba0200008b00000005000000b6024600b6028b00ba028b00ba0246
+00b6024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000ba02000046000000bd0200008b00000005000000ba024600ba028b00bd028b00bd024600ba024600250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000bd02000046000000c00200008b00000005000000bd024600bd028b00c0028b00c0024600bd024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c
+00000005000000250000000c000000080000805600000030000000c002000046000000c40200008b00000005000000c0024600c0028b00c4028b00c4024600c0024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000c402000046000000
+c70200008b00000005000000c4024600c4028b00c7028b00c7024600c4024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000c702000046000000cb0200008b00000005000000c7024600c7028b00cb028b00cb024600c7024600250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000cb02000046000000ce0200008b00000005000000cb024600cb028b00ce028b00ce024600cb024600250000000c00000008000080250000000c00000000000080280000000c000000050000002700
+0000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000ce02000046000000d20200008b00000005000000ce024600ce028b00d2028b00d2024600ce024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c0000000500000025
+0000000c000000080000805600000030000000d202000046000000d50200008b00000005000000d2024600d2028b00d5028b00d5024600d2024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600000030000000d502000046000000d90200008b000000
+05000000d5024600d5028b00d9028b00d9024600d5024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000d902000046000000dc0200008b00000005000000d9024600d9028b00dc028b00dc024600d9024600250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000dc02000046000000e00200008b00000005000000dc024600dc028b00e0028b00e0024600dc024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000e002000046000000e30200008b00000005000000e0024600e0028b00e3028b00e3024600e0024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c00000008
+0000805600000030000000e302000046000000e60200008b00000005000000e3024600e3028b00e6028b00e6024600e3024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000e602000046000000eb0200008b00000005000000e6024600
+e6028b00eb028b00eb024600e6024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000eb02000046000000ef0200008b00000005000000eb024600eb028b00ef028b00ef024600eb024600250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000ef02000046000000f20200008b00000005000000ef024600ef028b00f2028b00f2024600ef024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9
+c10000000000250000000c00000005000000250000000c000000080000805600000030000000f202000046000000f60200008b00000005000000f2024600f2028b00f6028b00f6024600f2024600250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030
+000000f602000046000000f80200008b00000005000000f6024600f6028b00f8028b00f8024600f6024600250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040
+180000000c000000010000006d0278ff8a0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000570200002f0000000f0300
+00a200000004000000e026b008802fb008802f6004e0266004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c
+0000000000000054000000d8000000720200004f000000f40200005a0000000100000000400d4200040dc271020000b4ffffff170000004c000000000000000000000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a00520065006300740061006e00670075006c006100720041007200650061000000060000000600000009000000090000000600000006000000030000000300000007000000
+06000000060000000300000006000000060000000600000006000000030000000600000004000000070000000400000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000
+00180000000210c0db02000000004000006d02a2fff702a2ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000
+000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000570200004a0000000f0300007800000002000000e0261006802f1006250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c
+0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000073020000650000007c020000710000000100000000400d4200040dc2720200009effffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000
+00ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000008402000065000000f4020000710000000100000000400d4200040dc2830200009effffff170000004c000000000000000000000000000000ffffffffffffffff7c00000062006f00740074006f006d004c
+00650066007400200020003a0043006f006f007200640069006e00610074006500000006000000060000000300000003000000060000000900000006000000060000000300000003000000030000000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000073020000720000007c0200007e0000000100000000400d4200040dc27202000091ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000008402000072000000e90200007e0000000100000000400d4200040dc28302000091ffffff150000004c000000000000000000000000000000ffffffffffffffff7800000074006f00700052006900670068007400200020003a0043006f006f007200640069006e0061007400
+650000000300000006000000060000000700000003000000060000000600000003000000030000000300000003000000070000000600000006000000030000000600000003000000060000000600000003000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001c00d2fd59004500210000
+0008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000001d000000ec010000760000003102000005000000d001c01ed0011023600710236007c01ed001c01e250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001c00d2fd590045003a0000000c0000000a00000024000000240000000000803d00
+000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000006000000d50100008d0000004802000004000000d0011023600710236007c01ed001c01e250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c84100c00ac40000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8
+ff0a4000401c0000001000000002000000010000001900d5fd59004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000001a000000e9010000480000002e020000050000001a00e9011a002e0248002e024800e9011a00e901250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000fbf1e20000000000250000000c00000005000000250000000c00000008000080560000003000000048000000e9010000490000002e020000050000004800e90148002e0249002e024900e9014800e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c
+00000005000000250000000c00000008000080560000003000000049000000e90100004a0000002e020000050000004900e90149002e024a002e024a00e9014900e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0e00000000000250000000c00000005000000250000000c0000000800008056000000300000004a000000e9010000
+4b0000002e020000050000004a00e9014a002e024b002e024b00e9014a00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000004b000000e90100004c0000002e020000050000004b00e9014b002e024c002e024c00e9014b00e901250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c0000000800008056000000300000004c000000e90100004d0000002e020000050000004c00e9014c002e024d002e024d00e9014c00e901250000000c00000008000080250000000c00000000000080280000000c000000050000002700
+0000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c0000000800008056000000300000004d000000e90100004f0000002e020000050000004d00e9014d002e024f002e024f00e9014d00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c0000000500000025
+0000000c0000000800008056000000300000004f000000e9010000500000002e020000050000004f00e9014f002e0250002e025000e9014f00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000050000000e9010000510000002e020000
+050000005000e90150002e0251002e025100e9015000e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c00000008000080560000003000000051000000e9010000530000002e020000050000005100e90151002e0253002e025300e9015100e901250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c00000008000080560000003000000053000000e9010000540000002e020000050000005300e90153002e0254002e025400e9015300e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000f6ead80000000000250000000c00000005000000250000000c00000008000080560000003000000054000000e9010000550000002e020000050000005400e90154002e0255002e025500e9015400e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c00000008
+000080560000003000000055000000e9010000560000002e020000050000005500e90155002e0256002e025600e9015500e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c00000008000080560000003000000056000000e9010000570000002e020000050000005600e901
+56002e0257002e025700e9015600e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000057000000e9010000580000002e020000050000005700e90157002e0258002e025800e9015700e901250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c00000008000080560000003000000058000000e9010000590000002e020000050000005800e90158002e0259002e025900e9015800e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7
+d40000000000250000000c00000005000000250000000c00000008000080560000003000000059000000e90100005a0000002e020000050000005900e90159002e025a002e025a00e9015900e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030
+0000005a000000e90100005b0000002e020000050000005a00e9015a002e025b002e025b00e9015a00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c0000000800008056000000300000005b000000e90100005c0000002e020000050000005b00e9015b002e025c002e02
+5c00e9015b00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c0000000800008056000000300000005c000000e90100005d0000002e020000050000005c00e9015c002e025d002e025d00e9015c00e901250000000c00000008000080250000000c00000000000080280000
+000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c0000000800008056000000300000005d000000e90100005e0000002e020000050000005d00e9015d002e025e002e025e00e9015d00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d000000000002500
+00000c00000005000000250000000c0000000800008056000000300000005e000000e90100005f0000002e020000050000005e00e9015e002e025f002e025f00e9015e00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c0000000800008056000000300000005f000000e9
+010000600000002e020000050000005f00e9015f002e0260002e026000e9015f00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c00000008000080560000003000000060000000e9010000610000002e020000050000006000e90160002e0261002e026100e9016000e901
+250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c00000008000080560000003000000061000000e9010000620000002e020000050000006100e90161002e0262002e026200e9016100e901250000000c00000008000080250000000c00000000000080280000000c000000050000
+0027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c00000008000080560000003000000062000000e9010000630000002e020000050000006200e90162002e0263002e026300e9016200e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c0000000500
+0000250000000c00000008000080560000003000000063000000e9010000640000002e020000050000006300e90163002e0264002e026400e9016300e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c00000008000080560000003000000064000000e9010000660000002e
+020000050000006400e90164002e0266002e026600e9016400e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c00000008000080560000003000000066000000e9010000670000002e020000050000006600e90166002e0267002e026700e9016600e901250000000c000000
+08000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c00000008000080560000003000000067000000e9010000680000002e020000050000006700e90167002e0268002e026800e9016700e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000
+000500000000000000eddec70000000000250000000c00000005000000250000000c00000008000080560000003000000068000000e9010000690000002e020000050000006800e90168002e0269002e026900e9016800e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00
+000008000080560000003000000069000000e90100006a0000002e020000050000006900e90169002e026a002e026a00e9016900e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c0000000800008056000000300000006a000000e90100006c0000002e020000050000006a
+00e9016a002e026c002e026c00e9016a00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c0000000800008056000000300000006c000000e90100006d0000002e020000050000006c00e9016c002e026d002e026d00e9016c00e901250000000c0000000800008025000000
+0c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c0000000800008056000000300000006d000000e90100006f0000002e020000050000006d00e9016d002e026f002e026f00e9016d00e901250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000000000
+00ead9c20000000000250000000c00000005000000250000000c0000000800008056000000300000006f000000e9010000700000002e020000050000006f00e9016f002e0270002e027000e9016f00e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600
+00003000000070000000e9010000710000002e020000050000007000e90170002e0271002e027100e9017000e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c00000008000080560000003000000071000000e9010000720000002e020000050000007100e90171002e0272
+002e027200e9017100e901250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c00000008000080560000003000000072000000e9010000730000002e020000050000007200e90172002e0273002e027300e9017200e901250000000c00000008000080250000000c00000000000080
+280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001900d5fd590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000
+005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000003000000d20100008a0000004502000004000000a001e0223007e0223007901ea001901e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002300000014feffff6900000007feffff160000000c00000001000000120000000c000000010000001b0000001000000000000000
+00000000160000000c0000000000000054000000a000000024000000ef01000069000000fb0100000100000000400d4200040dc22300000014feffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f002e002e002e000600000006000000060000000600000009000000060000000300000006000000030000000300000006000000030000
+0003000000030000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000840000002c000000fc01000061000000070200000100000000
+400d4200040dc22b00000007feffff090000004c000000000000000000000000000000ffffffffffffffff6000000043006100750073006500540079007000650000000700000006000000060000000600000006000000050000000500000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001900f5fd7200f5fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d000000
+00000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000003000000f70100008a0000002502000002000000a001e0203007e020250000000c00000007000080250000000c00000000000080240000002400
+000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000001f00000012020000220000001e0200000100000000400d4200040dc21e000000f1fdffff01000000
+4c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000880000003000000012020000680000001e0200000100000000400d4200040dc22f000000f1fdffff0a00
+00004c000000000000000000000000000000ffffffffffffffff6000000044004900520045004300540020003d0020003100070000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000540000001f0000001f020000220000002b0200000100000000400d4200040dc21e000000e4fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b0000005400000088000000300000001f020000670000002b0200000100000000400d4200040dc22f000000e4fdffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004c0049004e004b004500440020003d0020003200060000000300000007000000070000000700000007000000030000000600000003000000060000000a00000010000000ffffffff030000000c00000010
+0000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000e100cafd980045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000
+30000000e2000000f40100007a0100003902000005000000200e401f200e9023a0179023a017401f200e401f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0
+db00000000c0bfc0ff0b400040180000000c00000001000000e100cafd980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00
+0000cb000000dd010000910100005002000004000000200e9023a0179023a017401f200e401f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000
+005e4300c00cc40000184300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000de00cdfd98004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000df000000f10100002e010000
+3602000005000000df00f101df0036022e0136022e01f101df00f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000002e010000f10100003201000036020000050000002e01f1012e013602320136023201f1012e01f101250000000c0000
+0008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c00000008000080560000003000000032010000f10100003601000036020000050000003201f10132013602360136023601f1013201f101250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800
+00000500000000000000faeedd0000000000250000000c00000005000000250000000c00000008000080560000003000000036010000f10100003a01000036020000050000003601f101360136023a0136023a01f1013601f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c
+0000000800008056000000300000003a010000f10100003d01000036020000050000003a01f1013a0136023d0136023d01f1013a01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000003d010000f1010000410100003602000005000000
+3d01f1013d013602410136024101f1013d01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c00000008000080560000003000000041010000f10100004501000036020000050000004101f10141013602450136024501f1014101f101250000000c00000008000080250000
+000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c00000008000080560000003000000045010000f10100004901000036020000050000004501f10145013602490136024901f1014501f101250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000000000
+0000f5e8d40000000000250000000c00000005000000250000000c00000008000080560000003000000049010000f10100004d01000036020000050000004901f101490136024d0136024d01f1014901f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c0000000800008056
+000000300000004d010000f10100005001000036020000050000004d01f1014d013602500136025001f1014d01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c00000008000080560000003000000050010000f10100005401000036020000050000005001f10150013602
+540136025401f1015001f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c00000008000080560000003000000054010000f10100005701000036020000050000005401f10154013602570136025701f1015401f101250000000c00000008000080250000000c000000000000
+80280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c00000008000080560000003000000057010000f10100005a01000036020000050000005701f101570136025a0136025a01f1015701f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc000000
+0000250000000c00000005000000250000000c0000000800008056000000300000005a010000f10100005e01000036020000050000005a01f1015a0136025e0136025e01f1015a01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800008056000000300000005e
+010000f10100006201000036020000050000005e01f1015e013602620136026201f1015e01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c00000008000080560000003000000062010000f10100006601000036020000050000006201f10162013602660136026601f101
+6201f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000066010000f10100006a01000036020000050000006601f101660136026a0136026a01f1016601f101250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c0000000800008056000000300000006a010000f10100006f01000036020000050000006a01f1016a0136026f0136026f01f1016a01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00
+000005000000250000000c0000000800008056000000300000006f010000f10100007301000036020000050000006f01f1016f013602730136027301f1016f01f101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c00000008000080560000003000000073010000f101000077
+01000036020000050000007301f10173013602770136027701f1017301f101250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000
+de00cdfd980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000c8000000da0100008e0100004d02000004000000f00d60
+23701760237017101ff00d101f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018
+000000e80000000cfeffff6d010000fffdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000007800000018010000f70100003f010000030200000100000000400d4200040dc2170100000cfeffff070000004c000000000000000000000000000000ffffffffffffffff5c000000ab0075006e0069006f006e00bb00000006000000
+0600000006000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000880000000e0100000402
+0000490100000f0200000100000000400d4200040dc20d010000fffdffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004300610075007300650055006e0069006f006e00070000000600000006000000060000000600000007000000060000000300000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c0000007000000045
+4d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000de00edfd7601edfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c000000
+0a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000c8000000ff0100008e0100002d02000002000000f00d602170176021250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000e40000001a020000ed000000260200000100000000
+400d4200040dc2e3000000e9fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000f50000001a0200006d010000260200
+000100000000400d4200040dc2f4000000e9fdffff190000004c000000000000000000000000000000ffffffffffffffff8000000064006900720065006300740043006100750073006500200020003a004400690072006500630074004300610075007300650000000600000003000000030000000600000005000000030000000700000006000000060000000400000006000000030000000300000003000000070000000300
+00000300000006000000050000000300000007000000060000000600000004000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000e400000027020000ed000000330200000100000000400d4200040dc2e3000000dcfdffff
+020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000f50000002702000073010000330200000100000000400d4200040dc2f400
+0000dcfdffff190000004c000000000000000000000000000000ffffffffffffffff800000006c0069006e006b006500640043006100750073006500200020003a004c0069006e006b00650064004300610075007300650000000300000003000000060000000400000006000000060000000700000006000000060000000400000006000000030000000300000003000000060000000300000006000000040000000600000006
+00000007000000060000000600000004000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000660281fda20054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d0000000000000000
+0000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000670200002e0200000903000082020000050000007026e02270262028903020289030e0227026e022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b084000
+02380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000660281fda20054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bf
+c000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000500200001702000020030000990200000400000070262028903020289030e0227026e022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a00000046
+0000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c0184400001fc4000022430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000630284fda2005400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000
+250000000c00000005000000250000000c000000080000805600000030000000640200002b020000b90200007f0200000500000064022b0264027f02b9027f02b9022b0264022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000b90200
+002b020000bd0200007f02000005000000b9022b02b9027f02bd027f02bd022b02b9022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000bd0200002b020000c10200007f02000005000000bd022b02bd027f02c1027f02c1022b02bd02
+2b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c000000080000805600000030000000c10200002b020000c60200007f02000005000000c1022b02c1027f02c6027f02c6022b02c1022b02250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000c60200002b020000cb0200007f02000005000000c6022b02c6027f02cb027f02cb022b02c6022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c000000
+05000000250000000c000000080000805600000030000000cb0200002b020000cf0200007f02000005000000cb022b02cb027f02cf027f02cf022b02cb022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000cf0200002b020000d30200
+007f02000005000000cf022b02cf027f02d3027f02d3022b02cf022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000d30200002b020000d80200007f02000005000000d3022b02d3027f02d8027f02d8022b02d3022b02250000000c00
+000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000d80200002b020000dc0200007f02000005000000d8022b02d8027f02dc027f02dc022b02d8022b02250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018
+0000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000dc0200002b020000df0200007f02000005000000dc022b02dc027f02df027f02df022b02dc022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c0000000500000025000000
+0c000000080000805600000030000000df0200002b020000e30200007f02000005000000df022b02df027f02e3027f02e3022b02df022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000e30200002b020000e70200007f020000050000
+00e3022b02e3027f02e7027f02e7022b02e3022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000e70200002b020000eb0200007f02000005000000e7022b02e7027f02eb027f02eb022b02e7022b02250000000c000000080000802500
+00000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000eb0200002b020000ef0200007f02000005000000eb022b02eb027f02ef027f02ef022b02eb022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000
+000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000ef0200002b020000f40200007f02000005000000ef022b02ef027f02f4027f02f4022b02ef022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080
+5600000030000000f40200002b020000f90200007f02000005000000f4022b02f4027f02f9027f02f9022b02f4022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000f90200002b020000fd0200007f02000005000000f9022b02f9027f
+02fd027f02fd022b02f9022b02250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000fd0200002b020000010300007f02000005000000fd022b02fd027f0201037f0201032b02fd022b02250000000c00000008000080250000000c0000000000
+0080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000010300002b020000060300007f0200000500000001032b0201037f0206037f0206032b0201032b02250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054
+000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000630284fda20054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100
+100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000004d020000140200001d03000096020000040000004026f0276030f0276030b0224026b022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000
+000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000006d020000d2fdfffffc020000c5fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000009c02000031020000cf
+0200003d0200000100000000400d4200040dc29b020000d2fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000
+050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e80000006e0200003e020000fd020000490200000100000000400d4200040dc26d020000c5fdffff1a0000004c000000000000000000000000000000ffffffffffffffff800000005400
+65006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e0005000000060000000900000006000000060000000400000006000000040000000500000007000000060000000600000006000000060000000600000003000000090000000300000003000000070000000600000006000000030000000300000006000000060000000a00000010000000ffffffff03
+0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000006302b3fd0503b3fd00010101154001001000000004000000000000002100000008000000620000000c0000000100000011000000
+0c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000004d020000390200
+001d03000067020000020000004026002560300025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+0000005400000058000000690200005402000072020000600200000100000000400d4200040dc268020000affdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b00000054000000d80000007a02000054020000f0020000600200000100000000400d4200040dc279020000affdffff170000004c000000000000000000000000000000ffffffffffffffff7c000000730070006500650064004c0069006d0069007400560061006c0075006500200020003a0049004e00540031003600000004000000060000000600000006000000060000000600000003000000090000000300
+000003000000070000000600000003000000060000000600000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000006902000061020000720200006d020000
+0100000000400d4200040dc268020000a2fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000007a020000610200000203
+00006d0200000100000000400d4200040dc279020000a2fdffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000730070006500650064004c0069006d0069007400560061006c0075006500570065007400200020003a0049004e00540031003600040000000600000006000000060000000600000006000000030000000900000003000000030000000700000006000000030000000600000006
+00000009000000060000000300000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000690200006e020000720200007a0200000100000000400d4200040d
+c26802000095fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000007a0200006e020000f50200007a0200000100000000
+400d4200040dc27902000095fdffff180000004c000000000000000000000000000000ffffffffffffffff7c000000730070006500650064004c0069006d00690074004c0065006e00670074006800200020003a0049004e00540033003200040000000600000006000000060000000600000006000000030000000900000003000000030000000600000006000000060000000600000003000000060000000300000003000000
+0300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008c01fefd580161002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000
+000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008d010000a4010000e50200000502000005000000d018401ad0185020502e5020502e401ad018401a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008c01fefd580161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0
+bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000760100008d010000fc0200001c02000004000000d0185020502e5020502e401ad018401a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000
+460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080c4430080ffc30000ac430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000890101fe58016100250000000c0000000800008027000000180000000500000000000000fcf2e300000000
+00250000000c00000005000000250000000c0000000800008056000000300000008a010000a10100003d02000002020000050000008a01a1018a0102023d0202023d02a1018a01a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000003d02
+0000a10100004602000002020000050000003d02a1013d020202460202024602a1013d02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c00000008000080560000003000000046020000a10100004f02000002020000050000004602a101460202024f0202024f02a10146
+02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c0000000800008056000000300000004f020000a10100005702000002020000050000004f02a1014f020202570202025702a1014f02a101250000000c00000008000080250000000c00000000000080280000000c000000
+0500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000000057020000a10100005f02000002020000050000005702a101570202025f0202025f02a1015702a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c0000
+0005000000250000000c0000000800008056000000300000005f020000a10100006802000002020000050000005f02a1015f020202680202026802a1015f02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c00000008000080560000003000000068020000a10100007102
+000002020000050000006802a10168020202710202027102a1016802a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c00000008000080560000003000000071020000a10100007a02000002020000050000007102a101710202027a0202027a02a1017102a101250000000c
+00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c0000000800008056000000300000007a020000a10100008202000002020000050000007a02a1017a020202820202028202a1017a02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000
+180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c00000008000080560000003000000082020000a10100008a02000002020000050000008202a101820202028a0202028a02a1018202a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000
+000c0000000800008056000000300000008a020000a10100009302000002020000050000008a02a1018a020202930202029302a1018a02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c00000008000080560000003000000093020000a10100009a020000020200000500
+00009302a101930202029a0202029a02a1019302a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c0000000800008056000000300000009a020000a1010000a002000002020000050000009a02a1019a020202a0020202a002a1019a02a101250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000a0020000a1010000a80200000202000005000000a002a101a0020202a8020202a802a101a002a101250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000a8020000a1010000b10200000202000005000000a802a101a8020202b1020202b102a101a802a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000
+805600000030000000b1020000a1010000ba0200000202000005000000b102a101b1020202ba020202ba02a101b102a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000ba020000a1010000c50200000202000005000000ba02a101ba02
+0202c5020202c502a101ba02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000c5020000a1010000cf0200000202000005000000c502a101c5020202cf020202cf02a101c502a101250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000cf020000a1010000d80200000202000005000000cf02a101cf020202d8020202d802a101cf02a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c000
+00000000250000000c00000005000000250000000c000000080000805600000030000000d8020000a1010000e00200000202000005000000d802a101d8020202e0020202e002a101d802a101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c0000000800008056000000300000
+00e0020000a1010000e20200000202000005000000e002a101e0020202e2020202e202a101e002a101250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000401800
+00000c00000001000000890101fe580161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000730100008a010000f902000019
+02000004000000a0182020202e2020202e101aa018101a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+00000000001e00000018000000930100005cfeffffd80200004ffeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000007c00000024020000a701000048020000b30100000100000000400d4200040dc2230200005cfeffff080000004c000000000000000000000000000000ffffffffffffffff5c000000ab007300740072007500
+63007400bb0006000000040000000300000003000000060000000500000003000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000
+54000000c000000001020000b40100006b020000bf0100000100000000400d4200040dc2000200004ffeffff130000004c000000000000000000000000000000ffffffffffffffff74000000540065006d0070006f007200610072007900530070006500650064004c0069006d00690074000000050000000600000009000000060000000600000004000000060000000400000005000000070000000600000006000000060000
+000600000006000000030000000900000003000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000089013dfee1023dfe000101011540
+01001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000005000000250000000c00000005000080570000002400000073010000af010000f9020000dd01000002000000a018601c202e601c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008f010000ca01000098010000d60100000100000000400d4200040dc28e01000039feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000010000000300000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000a0010000ca01000008020000d60100000100000000400d4200040dc29f01000039feffff120000004c000000000000000000000000000000ffffffffffffffff7000000075006e006900740073004d0050004800200020003a0042004f004f004c00450041004e000600000006000000
+030000000300000004000000090000000700000007000000030000000300000003000000070000000800000008000000060000000700000007000000070000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008f010000d70100009801
+0000e30100000100000000400d4200040dc28e0100002cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a0000000a0010000
+d7010000df010000e30100000100000000400d4200040dc29f0100002cfeffff0e0000004c000000000000000000000000000000ffffffffffffffff680000006f0066006600730065007400200020003a0049004e0054003300320006000000030000000300000004000000060000000300000003000000030000000300000003000000070000000700000006000000060000000a00000010000000ffffffff030000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008f010000e401000098010000f00100000100000000400d4200040dc28e0100001ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff03
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c8010000a0010000e4010000de020000f00100000100000000400d4200040dc29f0100001ffeffff3f0000004c000000000000000000000000000000ffffffffffffffffcc000000740065006d0070006f00720061007200790053
+0070006500650064004c0069006d0069007400530065006300740069006f006e007300200020003a00540065006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e0020005b0031002e002e002a005d00990303000000060000000900000006000000060000000300000006000000030000000500000007000000060000000600000006000000060000000600
+0000030000000900000003000000030000000700000006000000050000000300000003000000060000000600000004000000030000000300000003000000070000000600000009000000060000000600000003000000060000000300000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000700000006000000050000000300000003000000060000000600000003
+0000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000008f010000f101000098010000fd0100000100000000400d4200040dc28e01000012feffff020000004c000000000000
+000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000ffffffff030000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000100000003000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000024010000a0010000f101000037020000fd0100000100000000400d4200040dc29f01000012feffff240000004c
+000000000000000000000000000000ffffffffffffffff940000006100700070006c00690063006100620069006c00690074007900200020003a004100700070006c00690063006100620069006c0069007400790020005b0030002e002e002a005d000600000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000003000000030000000300000007000000
+060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000030000000300000006000000030000000300000004000000030000000a00000010000000ffffffff030000000c00000010000000000000000000000046000000e0010000d4010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0
+db00000000000000ff084001038c010000800100000210c0db4a00000000400000670250fd680257fd68025bfd6a0262fd6a0266fd6c026dfd6c0271fd6e0278fd6e027cfd6f0283fd700287fd71028efd720292fd730299fd74029dfd7502a4fd7602a8fd7702affd7802b3fd7902bafd7a02befd7b02c5fd7c02c9fd7d02d0fd7e02d4fd7f02dbfd8002dffd8102e6fd8202eafd8302f1fd8402f5fd8502fcfd850200fe8702
+07fe87020bfe890212fe890216fe8b021dfe8b0221fe8c0228fe8d022cfe8e0233fe8f0237fe90023efe910242fe920249fe93024dfe940254fe950258fe96025ffe970263fe98026afe99026efe9a0275fe9b0279fe9c0280fe9d0284fe9e028bfe9f028ffea00296fea1029afea202a1fea202a5fea402acfea402b0fea602b7fea602bbfea802c2fea802c6feaa02cdfeaa02d1feab02d8feac02dcfead02defe0001000100
+0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000
+020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000dc0100006602000023010000b0020000b5020000250000004a000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000008026302b9026c02a9026802ab026102ab026d029d0266029d0262029f026b028f0267028002700281027c02720275027302710274027a026502760266027f0257027b0258027
+402590270025a0279024b0275024c027e023d027a023e0273023f027f02200288022102840222028d02130289021402820215028e02060287020602830208028c01f8028801fa028101fa028d01ec028601ec028201ed028b01de028701df028001d0029c01c1029501c2029101c3029a01b4029601b5029f01a6029b01a7029401a8029001a90299019a0295019b029e018c029a018d0293018e029f017f0298017002a401710
+2ad016202a9016302a2016302ae015502a7015502a3015702ac014702a8014902a1014902ad013b02a6013b02a2013c02ab012d02a7012e02a5012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db00000000
+8e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000670250fd650260fd670250fd6f025efd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000001001
+00100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000064020000a102000072020000b5020000020000000400000002000000020000008026302b6026302a8026302b0027502a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c00000005000000460000000c01000000010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103b8000000ac0000000210c0db20000000004000005a0250fd590257fd59025bfd580262fd570266fd56026dfd550271fd540278fd53027cfd520283fd510287fd50028efd500292fd4e0299fd4e029dfd4d02a4fd4c
+02a8fd4b02affd4a02b3fd4902bafd4802befd4702c5fd4702c9fd4502d0fd4502d4fd4402dbfd4302dffd4202e6fd4102eafd4002f1fd3f02f5fd3e02fcfd00010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000
+380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000e00000003d020000050200005d020000b5020000100000002000000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000b025302ba025c02aa02580
+2a9025102a8025d02970256029602520295025b02840257028302500282025c0271025502710251027f024a026f0246026e024f025d024b025c0244025b0240025a0249024902450248024e0238024a023602430236024f02250248022402440223024d02120249021102420210024e020f0237020250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005a0250fd53025efd5a0250fd5c0260fd0001000115400100100000000400000000000000240000002400000000
+00803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000052020000a10200005f020000b502000002000000040000000200000002000000b025302b4025502ab025302bd025302a25000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000004001000034010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103ec000000e00000000210c0db2a000000004000004a01e7fc4a01ee
+fc4901f2fc4801f9fc4801fdfc470104fd460108fd46010ffd450113fd44011afd44011efd430125fd420129fd420130fd410134fd40013bfd40013ffd3f0146fd3e014afd3e0151fd3d0155fd3c015cfd3c0160fd3b0167fd3a016bfd3a0172fd390176fd38017dfd380181fd370188fd36018cfd350193fd350197fd34019efd3401a2fd3301a9fd3201adfd3101b4fd3101b8fd3001bffd3001c3fd2f01cafd000100010001
+00010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005
+0000805a0000001c0100002e010000370200004d0100001e030000150000002a000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000b014c031b0145031a01410319014a030901460308014f02f7014b02f7014402f6014002f5014902e5014502e4014e02d
+3014a02d3014302d2014f02c1014802c1014402c0014d02bf013902bf013202be013e02ad013702ad013302ac013c029b0138029b0131029a013d02890136028901320288013b02770137027601300276013c02650135026501310264013a025301360252013f0242013b024101340241013002400139023250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000004a01e7fc4301f5fc4a01e7fc4d01f6fc0001000115400100100000000400000000000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000420100000b030000500100001e03000002000000040000000200000002000000b014c0314014e030b014c031e014d03025
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000004600000004010000f8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103b0000000a40000000210c0db1e00000000400000aa0029fd
+ae0030fdb10034fdb5003bfdb8003ffdbc0046fdbf004afdc30051fdc60055fdca005cfdcd0060fdd10067fdd4006bfdd90072fddb0076fde0007dfde20081fde70088fde9008cfdee0093fdf00097fdf5009efdf700a2fdfc00a9fdff00adfd0301b4fd0601b8fd0a01bffd0d01c3fd1101cafd000100010001000100010001000100010001000100010001000100010001000115400100100000000400000000000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000d4000000a90000003702000014010000dc0200000f0000001e00000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000020000000200000002000000b00aa02df00a302d200bf02c600b802c900b402cd00bd02b000c902b400c202b700ce02ab00c702ae00c302a200dc029500d8029a00d1029c00dd028100e6028300e2028800eb027a00e7027f00e0027100fc026600f5026800f1026d00fa025001060254010f0247010b024b0104024e010002420119023250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000aa0029fd
+ae0038fdaa0029fdb60033fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000a9000000c9020000b90000
+00dc02000002000000040000000200000002000000b00aa02df00ab02cb00aa02d700b002d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210
+c0db00000000000000ff084001034c000000400000000210c0db0a00000000400000020112fefb0018fef7001bfef00022feec0025fee5002bfee1002ffeda0035fed60039fecf003ffe0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000
+020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000005c000000ce000000c201000005010000f3010000050000000a00000002000000020000000200000002000000020000003010101fc00fb01e800f801e100f101ed00ee01d600e801d200e401db00de01c700da01c000d401c250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000020112fef30018fe020112fefa0020fe000100
+011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000f2000000e101000005010000f301000002000000040000000200
+0000020000003010101f400fb01e3010101fb00f301e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340
+000000340000000210c0db080000000040000063001afe680021fe6c0025fe72002cfe750030fe7b0037fe7f003bfe850042fe00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000
+250000000c00000005000000250000000c000000050000805a0000005000000062000000bf01000088000000eb0100000400000008000000020000000200000002000000020000004006901e9006201ed006e01d3007701d6007301dc007c01c0008801c6008101c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000
+000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000063001afe690029fe63001afe710022fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000
+803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000062000000d801000074000000eb010000020000000400000002000000020000004006901ea006a01d4006901e2007101e250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a80000009c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c0000000040000009024dfc100252fc140255fc1b025afc1f025efc
+260263fc2a0266fc31026cfc35026ffc3c0274fc400277fc43027afc0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000
+00050000805a00000068000000080200008703000046020000b8030000060000000c000000020000000200000002000000020000000200000002000000a020603b1021103b5021e03ac021903a0022503a7022003ab022d0392023703960234039d023f0381024c03840249038250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000009024dfc12025afc09024dfc180252fc000100011540010010000000040000000000000024000000240000000000803d0000000000
+0000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000008020000a70300001b020000b803000002000000040000000200000002000000a020603b3021903aa020603b9021103b250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000b0000000a4000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c000000004000002501e7fcbd003e
+fdbe003ffdbe0040fdbe0041fdbe0044fdbc0047fdb90047fdb70047fdb50046fdb40045fd940060fd0001030303030303030303011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00
+000005000000250000000c000000050000803b000000080000001b0000001000000060120000c03100003600000010000000e00b0000502c000058000000400000000000000000000000ffffffffffffffff09000000f00b402cf00b302cf00b202cf00bf02bd00bc02ba00bc02b800bc02b600bd02b500be02b360000001000000050090000302a00003c00000008000000400000001800000093000000a1020000280100001e
+030000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000a4005afd9c0051fd940060fd280000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000
+0200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002800000095000000a3020000a5000000b202000003000000500a902ad009202b5009302a250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000
+00000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000a4005afd9c0051fd940060fd24000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000
+0000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002800000093000000a1020000a7000000b402000003000000500a902ad009202b5009302a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+00000005000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000008b02d8fd8502dffd8102e3fd7a02eafd7602eefd6f02f5fd6b02f9fd640200fe00010001000100011540010010000000040000000000000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000005000000063020000010200008e0200002d020000040000000800000002000000020000000200000002000000c028b0226028402220280022b02790
+21702750210027e020c026a02050263020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840
+01032c000000200000000210c0db04000000004000008b02d8fd7d02dffd8b02d8fd8402e6fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c
+000000050000805a000000380000007c0200001b0200008e0200002d02000002000000040000000200000002000000c028b022e0274022c028b0225028d021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db
+000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000720029fd6d0060fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000
+000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000006c000000a102000075000000dc020000020000003007a02de006302a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d
+462b0c4000c02000000014000000e3f2fcff03000000740051fd680050fd6d0060fd24000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002800000069000000a302000075000000b3020000030000005007202b9006302be006302a250000000c00000007000080130000000c00000001
+000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000740051fd680050fd6d0060fd24000000240000000000803d
+00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002800000067000000a102000077000000b5020000030000005007202b9006302be006302a250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000980100008c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010344010000380100000210c0db3c00000000400000550250fd530257fd52025bfd500262fd4e0266fd4c026dfd4b02
+71fd480278fd47027cfd450283fd430287fd41028efd400292fd3d0299fd3c029dfd3a02a4fd3802a8fd3602affd3502b3fd3202bafd3102befd2f02c5fd2e02c9fd2b02d0fd2a02d4fd2802dbfd2602dffd2402e6fd2302eafd2002f1fd1f02f5fd1d02fcfd1b0200fe190207fe18020bfe150212fe140216fe12021dfe100221fe0e0228fe0d022cfe0b0233fe090237fe07023efe060242fe030249fe02024dfe000254fefe
+0158fefc015ffefb0163fef8016afef7016efef50175fef30179fef10180fef00184feed018bfeec018ffeeb0191fe0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000088010000ea0100007001000058020000b50200001e0000003c000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+0002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006025302b4025c02a3025802a1025102af024d029d0246029c02420299024b02880247028602400284024c0272024502710241027e023a026d0236026b023f0259023b025702340256023002530239024202350240023e023f022a023c0223023b022f02290228022702240225022
+d02140229021102220210022e020e0217020c0213020a021c01f9021801f6021101f5021d01e3021601e1021201ef020b01de020701dc020001da020c01c8020501c7020101c4020a01b3020601b1020f01af01fb01ad01f401ac01f001a901f9019801f5019601fe018401fa018201f3018101ff017e01e8017d01e4017c01e2017250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000550250fd4c025dfd550250fd550260fd00010001154001001000000004000000
+0000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000004b020000a102000058020000b5020000020000000400000002000000020000006025302bd02460
+2a6025302b6025302a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a80000009c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010354000000480000000210c0db0c00
+0000004000007202cffc7102d6fc7102dafc6f02e1fc6f02e5fc6d02ecfc6d02f0fc6b02f7fc6b02fbfc690202fd690206fd680207fd0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000000201001000000000000000000000000000000000
+00000000000000250000000c00000005000000250000000c000000050000805a0000006800000067020000fa0200007502000036030000060000000c000000020000000200000002000000020000000200000002000000302740332027d03220279032002720320027e031e0267031e0263031c026c030c0268030a0261030a026d02f9026c02f250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000007202cffc6a02ddfc7202cffc7402dffc0001000115400100100000
+00040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000069020000220300007702000036030000020000000400000002000000020000003027
+4033b02660323027403350274032250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c0000004000000002
+10c0db0a000000004000001d0262fe1a0269fe18026dfe150274fe130278fe0f027ffe0d0283fe0a028afe08028efe060291fe0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000000201001000000000000000000000000000000000000000
+00000000250000000c00000005000000250000000c000000050000805a0000005c000000050200007001000020020000a3010000050000000a0000000200000002000000020000000200000002000000e021101ab021a019902160196021f0184021b01800214018e0200018b02090179020501770202017250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000001d0262fe12026dfe1d0262fe1b0272fe0001000115400100100000000400000000000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000110200008f01000020020000a301000002000000040000000200000002000000e021101a30216019e021101ac021101925
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a000000004000006d0282ff
+660280ff62027eff5b027cff57027aff500278ff4c0276ff450274ff410272ff3c0270ff0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c000000050000
+00250000000c000000050000805a0000005c0000003b0200007f0000007002000095000000050000000a0000000200000002000000020000000200000002000000e02610087026300830265008c0257008802590081025b008d024d0086024f00820241009d0233009250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006d0282ff610278ff6d0282ff5d0282ff000100011540010010000000040000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000005c0200007f000000700200008d00000002000000040000000200000002000000e02610082026b008e0261008e0251008250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a00000000400000f60062fffd0061ff010160ff08015fff0c015e
+ff13015dff17015cff1e015bff22015aff290159ff0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00
+00005c000000f50000009f0000002c010000ac000000050000000a0000000200000002000000020000000200000002000000700f100ae00f200a2010300a9010400ad010500a4011600a8011700af011800a3012900aa012a00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000004600000088
+0000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000f60062ff060164fff60062ff04015aff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000
+5f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000f50000009d00000009010000ab00000002000000040000000200000002000000700f100a7010f009700f100a5010900a250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008002000074020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001032c020000200200000210c0db6a00000000400000db014dfcdb0154fcdb0158fcdb015ffcda0163fcda016afcda016efcd90175fcd901
+79fcd90180fcd90184fcd8018bfcd8018ffcd80196fcd7019afcd701a1fcd701a5fcd601acfcd601b0fcd601b7fcd601bbfcd501c2fcd501c6fcd501cdfcd401d1fcd401d8fcd401dcfcd301e3fcd301e7fcd301eefcd301f2fcd201f9fcd201fdfcd20104fdd20108fdd1010ffdd10113fdd1011afdd0011efdd00125fdd00129fdcf0130fdcf0134fdcf013bfdcf013ffdce0146fdce014afdce0151fdcd0155fdcd015cfdcd
+0160fdcc0167fdcc016bfdcc0172fdcc0176fdcb017dfdcb0181fdcb0188fdca018cfdca0193fdca0197fdc9019efdc901a2fdc901a9fdc901adfdc801b4fdc801b8fdc801bffdc801c3fdc701cafdc701cefdc701d5fdc601d9fdc601e0fdc601e4fdc501ebfdc501effdc501f6fdc501fafdc40101fec40105fec4010cfec30110fec30117fec3011bfec20122fec20126fec2012dfec20131fec10138fec1013cfec10143fe
+c00147fec0014efec00152febf0159febf015dfebf0164febf0168febe016ffebe0173febe017afebe017efebd0185febd0189febd0190fe000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001
+0010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000009c020000bc01000071010000de010000b8030000350000006a000000020000000200
+0000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+000000020000000200000002000000020000000200000002000000020000000200000002000000c01d603bc01df03ac01db03ac01d403ab01d003ab01d9039b01d5039a01de038a01da038a01d3038a01df037901d8037901d4037901dd036801d9036801d2036801de035701d7035701d3035701dc034701d8034601d1034601dd033601d6033501d2033501db032501d7032401d0032401dc031401d5031401d1031301da030
+301d6030301df02f301db02f201d402f201d002f201d902e101d502e101de02d101da02d001d302d001df02c001d802c001d402cf01cd02bf01c902bf01c202be01ce02ae01c702ae01c302ad01cc029d01c8029d01c1029d01cd028c01c6028c01c2028c01cb027b01c7027b01c0027b01cc026a01c5026a01c1026a01ca025a01c6025901cf024901cb024901c4024901c0024801c9023801c5023801ce022701ca022701c30
+22701cf021601c8021601c4021601cd020601c9020501c2020501ce01f501c701f401c301f401cc01e401c801e301c101e301cd01d301c601d301c201d201cb01c201c701c201c001c101cc01b101c501b101c101b001ca01a001c601a001cf019001cb019f01b4019f01b0019f01b9018f01b5018e01be017e01ba017e01b3017250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000db014dfcd5015cfcdb014dfcdf015cfc0001000115400100100000000400000000
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000d4010000a5030000e2010000b803000002000000040000000200000002000000c01d603b601d703a
+c01d603b001e703a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000c8000000bc000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010374000000680000000210c0db120000
+0000400000cf0089fed6008efeda0091fee10097fee5009afeec00a0fef000a3fef700a8fefb00abfe0201b1fe0601b4fe0d01bafe1101bdfe1801c2fe1c01c6fe2301cbfe2701cefe2b01d2fe00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000
+0000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000008c000000ce0000002f0100002e0100007c0100000900000012000000020000000200000002000000020000000200000002000000020000000200000002000000000da017700d5017b00d2017200ec016600e9016d00e3016100f0016800fb015c00f801530
+1020157010f014e01090142011601490111014d011d0134012801380125013c0121013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000
+000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000cf0089fed80096fecf0089fede008efe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000001001001000000000000000000000000000000000000000000000
+00250000000c00000005000000250000000c000000050000805a00000038000000ce0000006b010000e10000007c01000002000000040000000200000002000000000da017900dd016000da017f00d5017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d
+462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a000000004000006b0219ff64021aff60021bff59021cff55021dff4e021fff4a0220ff430221ff3f0222ff3c0223ff0001000100010001000100011540010010000000040000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000005c0000003b020000de0000006e020000ec000000050000000a0000000200000002000000020000000200000002000000c026a00e5026900e1026800ea025700e6025600e
+f024400eb024300e4024200e0024100ed023000e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000
+ff084001032c000000200000000210c0db04000000004000006b0219ff5b0217ff6b0219ff5d0221ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c000000050000002500
+00000c000000050000805a000000380000005a020000e00000006e020000ee00000002000000040000000200000002000000c026a00ec025c00ec026a00ee025200e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008c00000080000000454d462b08400002340000002800000002
+10c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103380000002c0000000210c0db06000000004000008e0073fc8d007afc8c007efc8b0085fc8a0089fc880090fc00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000
+380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000044000000870000007103000091000000920300000300000006000000020000000200000002000000f0080039e0089038d0085038c008e037b008a03790083037250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000008e0073fc860081fc8e0073fc900083fc000100011540010010000000040000000000
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000850000007e030000930000009203000002000000040000000200000002000000f008003970082038f0
+08003910090038250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000280000000c00000002000000280000000c000000030000004c0000006400000000000000000000001e0300002104000000000000000000001f030000220400002900aa0000000000000000000000803f0000000000000000
+0000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 24\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_C6C43E7A_B03D_47d6_842E_E5E9DE2052DE}{\*\bkmkend BKM_C6C43E7A_B03D_47d6_842E_E5E9DE2052DE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentsInterface}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw28145\pich33350\picwgoal15960\pichgoal18900\picscalex59\picscaley59\sspicalign0 010000006c000000f8ffffffffffffff27030000bc0300000000000000000000f06d00004682000020454d4600000100b0a602008c1c0000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff01004ffc1c034ffc1c03ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff1e030000b303000005000000100010001000103bc031103bc031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff9c00ecffa900faffa900ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000a90000001400000006000000
+10004001c0094001900a6000900a10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff9c00ecffa900faffa900ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffab000000160000000600000010004001c0094001900a6000900a10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e7628016023086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b6ea39008c859e1020000ffff77090100dc59e102188d17
+01e6360a892801602301008c017709010037bb4000e6360a8970374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b68961a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19760901008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000990000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000093000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+000000540000000801000006000000040000009a0000000f0000000100000000400d4200040dc206000000fcffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400730049006e0074006500720066006100630065000000060000000300000006000000060000000600000003000000
+050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000300000006000000030000000600000004000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c00000010000000000000
+0000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf00008040000040410a4000c01c00000010000000c0bfc0ff010000000e00defd53021202280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d0000
+0000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000650200002e020000050000002001c0012001e0225026e0225026c0012001c001250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046
+0000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000000e00defd530212023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000002000000380000000000000038000000
+00000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000007c02000045020000040000002001e0225026e0225026c0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000304100c007c400c0144400800444bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000b00e1fd53021202250000000c00000008000080270000001800
+00000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f00000019000000440100002b020000050000000f0019000f002b0244012b02440119000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c
+0000000800008056000000300000004401000019000000530100002b020000050000004401190044012b0253012b025301190044011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c0000000800008056000000300000005301000019000000630100002b02000005000000
+5301190053012b0263012b026301190053011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c0000000800008056000000300000006301000019000000710100002b020000050000006301190063012b0271012b027101190063011900250000000c00000008000080250000
+000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c00000008000080560000003000000071010000190000007f0100002b020000050000007101190071012b027f012b027f01190071011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000f7ebda0000000000250000000c00000002000000250000000c0000000800008056000000300000007f010000190000008f0100002b020000050000007f0119007f012b028f012b028f0119007f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002000000250000000c0000000800008056
+000000300000008f010000190000009e0100002b020000050000008f0119008f012b029e012b029e0119008f011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c0000000800008056000000300000009e01000019000000ad0100002b020000050000009e0119009e012b02
+ad012b02ad0119009e011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c000000080000805600000030000000ad01000019000000bb0100002b02000005000000ad011900ad012b02bb012b02bb011900ad011900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c000000080000805600000030000000bb01000019000000c90100002b02000005000000bb011900bb012b02c9012b02c9011900bb011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d1000000
+0000250000000c00000002000000250000000c000000080000805600000030000000c901000019000000d90100002b02000005000000c9011900c9012b02d9012b02d9011900c9011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c000000080000805600000030000000d9
+01000019000000e50100002b02000005000000d9011900d9012b02e5012b02e5011900d9011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c000000080000805600000030000000e501000019000000ef0100002b02000005000000e5011900e5012b02ef012b02ef011900
+e5011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c000000080000805600000030000000ef01000019000000fe0100002b02000005000000ef011900ef012b02fe012b02fe011900ef011900250000000c00000008000080250000000c00000000000080280000000c0000
+000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c000000080000805600000030000000fe010000190000000d0200002b02000005000000fe011900fe012b020d022b020d021900fe011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00
+000002000000250000000c0000000800008056000000300000000d020000190000001d0200002b020000050000000d0219000d022b021d022b021d0219000d021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056000000300000001d0200001900000030
+0200002b020000050000001d0219001d022b0230022b02300219001d021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000003002000019000000410200002b020000050000003002190030022b0241022b02410219003002190025000000
+0c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c0000000800008056000000300000004102000019000000500200002b020000050000004102190041022b0250022b025002190041021900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000
+00180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c00000008000080560000003000000050020000190000005f0200002b020000050000005002190050022b025f022b025f02190050021900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c000000020000002500
+00000c0000000800008056000000300000005f02000019000000620200002b020000050000005f0219005f022b0262022b02620219005f021900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000000000ff0b400040180000000c000000010000000b00e1fd530212023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c0000000500008056000000
+2c000000f8ffffff02000000790200004202000004000000f000b0222026b02220269001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000
+00100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff005200
+00007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901f62b0acb9c58530bb296190100000000d80160238ce3c577738c172646e0c5779401300b0000300b18
+8d1701f62b0acbc700700014746e6ec457e10237bb4000f62b0acbd8016023c8006e0014746e6e8882dd193c5ce10270374b0b0000000008000000000000000000000098c8612348004b0b5c014b0bd8016023f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a2460fe5f2301000000d0016023dc57e10223e0c577
+d80160233a6c2e7608654501d0016023f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000015000000edffffff55020000e0ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000001e0100001f000000530100002b0000000100000000400d4200040d
+c21a010000edffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00000006000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0c00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76d8016023
+08654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bbfa2c00c1c58e1020000ffff780901003058e102188d1701f62b0accd801602301008c017809010037bb4000f62b0acc70374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b68961a24f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c5
+77f2e0c57746e0c577000000008882dd19770901008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000ac000000130100002c0000005e010000370000000100000000400d4200040dc20f010000e0ffffff100000004c00000000000000000000000000
+0000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e0074007300050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000b00d4ff5e02d4ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff21000000790200004f00000002000000f000800320268003250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000003e0000001d0000004a0000000100000000400d4200040dc210000000ce
+ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000c0000000250000003e0000007c0000004a0000000100000000400d4200040d
+c221000000ceffffff130000004c000000000000000000000000000000ffffffffffffffff74000000470065007400560065007200730069006f006e0028002900200020003a0076006f00690064000000080000000600000003000000070000000600000003000000040000000300000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcff
+ffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000004b0000001d000000570000000100000000400d4200040dc210000000c1ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000
+10000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000c4000000250000004b00000089000000570000000100000000400d4200040dc221000000c1ffffff140000004c000000000000000000000000000000ffffffffffffffff740000004700650074004c006100
+6e006700750061006700650028002900200020003a0076006f006900640008000000060000000300000006000000060000000600000006000000060000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000580000001d000000640000000100000000400d4200040dc210000000b4ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000180100002500000058000000dc000000640000000100000000400d4200040dc221000000b4ffffff220000004c000000000000000000000000000000ffffffffffffffff900000005300650074004c0061006e0067007500610067006500280053005400520049004e0047002c00200053005400520049004e0047002900200020
+003a0076006f0069006400070000000600000003000000060000000600000006000000060000000600000006000000060000000600000003000000070000000700000007000000030000000700000008000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000650000001d000000710000000100000000400d4200040dc210000000a7ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c00
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f40000002500000065000000b9000000710000000100000000400d4200040dc221000000a7ffffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000530065007400540069006d00650046006f007200
+6d0061007400280053005400520049004e0047002900200020003a0076006f0069006400070000000600000003000000070000000300000009000000060000000600000006000000030000000900000006000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000720000001d0000007e0000000100000000400d4200040dc2100000009affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f40000002500000072000000b60000007e0000000100000000400d4200040dc2210000009affffff1c0000004c000000000000000000000000000000ffffffffffffffff84000000530065007400440061007400650046006f0072
+006d0061007400280053005400520049004e0047002900200020003a0076006f0069006400070000000600000003000000070000000600000003000000060000000600000006000000030000000900000006000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000007f0000001d0000008b0000000100000000400d4200040dc2100000008dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff
+0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000c010000250000007f000000c00000008b0000000100000000400d4200040dc2210000008dffffff200000004c000000000000000000000000000000ffffffffffffffff8c0000005300650074004c0065006e00670074006800
+55006e006900740028004c0065006e0067007400680055006e00690074002900200020003a0076006f006900640007000000060000000300000006000000060000000600000006000000030000000600000007000000060000000300000003000000030000000600000006000000060000000600000003000000060000000700000006000000030000000300000003000000030000000300000003000000050000000600000003
+000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000008c0000001d000000980000000100000000400d4200040dc21000000080ffffff020000004c000000000000000000000000000000ffffffffffffffff500000
+002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000c010000250000008c000000c0000000980000000100000000400d4200040dc22100000080ffffff200000004c000000000000000000000000000000ffffffffff
+ffffff8c00000053006500740057006500690067006800740055006e0069007400280057006500690067006800740055006e00690074002900200020003a0076006f0069006400070000000600000003000000090000000600000003000000060000000600000003000000070000000600000003000000030000000300000009000000060000000300000006000000060000000300000007000000060000000300000003000000
+03000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000990000001d000000a50000000100000000400d4200040dc21000000073ffffff020000004c00
+0000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000e4000000250000009900000094000000a50000000100000000400d4200040dc22100000073ffffff
+190000004c000000000000000000000000000000ffffffffffffffff800000004700650074004100700070006c00690063006100620069006c0069007400790028002900200020003a0076006f006900640000000800000006000000030000000700000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000003000000030000000300000003000000030000
+00050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000a60000001d000000b20000000100000000400d4200040dc21000000066ffffff020000004c000000000000000000000000000000ff
+ffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000801000025000000a6000000ba000000b20000000100000000400d4200040dc22100000066ffffff1f0000004c00000000000000000000
+0000000000ffffffffffffffff8c0000005300650074004100700070006c00690063006100620069006c00690074007900280053005400520049004e0047002900200020003a0076006f006900640000000700000006000000030000000700000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000003000000070000000700000007000000030000000700
+00000800000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000b30000001d000000bf0000000100000000400d4200040dc21000000059ffffff
+020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000801000025000000b3000000bb000000bf0000000100000000400d4200040dc22100
+000059ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000005200650073006500720076006500490063006f006e00530065007400490064007300280049004e005400330032002900200020003a0076006f006900640061230700000006000000040000000600000003000000050000000600000003000000050000000600000006000000070000000600000003000000030000000600000004
+00000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011000000
+0c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000c00000001d000000cc0000
+000100000000400d4200040dc2100000004cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f400000025000000c0000000ab
+000000cc0000000100000000400d4200040dc2210000004cffffff1c0000004c000000000000000000000000000000ffffffffffffffff840000004600720065006500490063006f006e00530065007400490064007300280049004e005400330032002900200020003a0076006f006900640006000000030000000600000006000000030000000500000006000000060000000700000006000000030000000300000006000000
+0400000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000cd0000001d000000d900
+00000100000000400d4200040dc2100000003fffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000c400000025000000cd000000
+81000000d90000000100000000400d4200040dc2210000003fffffff140000004c000000000000000000000000000000ffffffffffffffff74000000470065007400490063006f006e00530065007400730028002900200020003a0076006f006900640008000000060000000300000003000000050000000600000006000000070000000600000003000000040000000300000003000000030000000300000003000000050000
+000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000da0000001d000000e60000000100000000400d4200040dc21000000032ffffff020000004c000000000000000000000000000000ffffffffff
+ffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002c01000025000000da000000d5000000e60000000100000000400d4200040dc22100000032ffffff250000004c0000000000000000000000000000
+00ffffffffffffffff98000000410064006400490063006f006e0053006500740044006500660069006e006900740069006f006e0073002800490063006f006e005300650074002900200020003a0076006f00690064000000070000000600000006000000030000000500000006000000060000000700000006000000030000000700000006000000030000000300000006000000030000000300000003000000060000000600
+000004000000030000000300000005000000060000000600000007000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000
+e70000001d000000f30000000100000000400d4200040dc21000000025ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000003001
+000025000000e7000000e2000000f30000000100000000400d4200040dc22100000025ffffff260000004c000000000000000000000000000000ffffffffffffffff98000000520065006d006f0076006500490063006f006e0053006500740044006500660069006e006900740069006f006e007300280049004e005400330032002900200020003a0076006f0069006400070000000600000009000000060000000500000006
+00000003000000050000000600000006000000070000000600000003000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c0000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000f40000001d000000000100000100000000400d4200040dc21000000018ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000004
+0000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002001000025000000f4000000c5000000000100000100000000400d4200040dc22100000018ffffff230000004c000000000000000000000000000000ffffffffffffffff94000000470065007400490063006f006e0044006500660069006e006900740069006f006e007300
+2800490063006f006e0049006e0066006f002900200020003a0076006f006900640000000800000006000000030000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300000003000000050000000600000006000000030000000600000003000000060000000300000003000000030000000300000005000000060000
+0003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000010100001d0000000d0100000100000000400d4200040dc2100000000bffffff020000004c000000000000000000000000000000ffffffffffffffff50
+0000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000440100002500000001010000e30000000d0100000100000000400d4200040dc2210000000bffffff290000004c000000000000000000000000000000ffffff
+ffffffffffa0000000410064006400490063006f006e0044006500660069006e006900740069006f006e0073002800490063006f006e0044006500660069006e006900740069006f006e002900200020003a0076006f006900640000000700000006000000060000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300
+0000030000000500000006000000060000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c000000004040005400000058000000140000000e0100001d0000001a0100000100000000400d4200040dc210000000fefeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c000000004040005400000030010000250000000e010000db0000001a0100000100000000400d4200040dc221000000fefeffff260000004c000000000000000000000000000000ffffffffffffffff98000000520065006d006f0076006500490063006f006e0044006500660069006e006900740069006f006e0073002800490063006f006e0049006e0066006f002900200020003a0076006f006900640007
+000000060000000900000006000000050000000600000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000003000000030000000500000006000000060000000300000006000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000001b0100001d000000270100000100000000400d4200040dc210000000f1feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcff
+ffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000c010000250000001b010000c1000000270100000100000000400d4200040dc221000000f1feffff200000004c000000000000000000000000000000ffffffffffffffff8c00000052006500730065007200760065004300
+61007400650067006f0072007900490064007300280049004e005400330032002900200020003a0076006f00690064000700000006000000040000000600000003000000050000000600000007000000060000000300000006000000060000000600000003000000050000000300000006000000040000000300000003000000070000000700000006000000060000000300000003000000030000000300000005000000060000
+0003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000280100001d000000340100000100000000400d4200040dc210000000e4feffff020000004c000000000000000000000000000000ffffffffffffffff50
+0000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000fc0000002500000028010000b1000000340100000100000000400d4200040dc221000000e4feffff1d0000004c000000000000000000000000000000ffffff
+ffffffffff880000004600720065006500430061007400650067006f0072007900490064007300280049004e005400330032002900200020003a0076006f006900640052000600000003000000060000000600000007000000060000000300000006000000060000000600000003000000050000000300000006000000040000000300000003000000070000000700000006000000060000000300000003000000030000000300
+0000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000350100001d000000410100000100000000400d4200040dc210000000d7feffff020000004c000000000000000000000000000000
+ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000080100002500000035010000b5000000410100000100000000400d4200040dc221000000d7feffff1f0000004c000000000000000000
+000000000000ffffffffffffffff8c000000470065007400430061007400650067006f007200790044006500660069006e006900740069006f006e00730028002900200020003a0076006f0069006400000008000000060000000300000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000004
+0000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000420100001d0000004e0100000100000000400d4200040dc210000000cafeff
+ff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000007401000025000000420100000f0100004e0100000100000000400d4200040dc221
+000000cafeffff310000004c000000000000000000000000000000ffffffffffffffffb0000000410064006400430061007400650067006f007200790044006500660069006e006900740069006f006e0073002800430061007400650067006f007200790044006500660069006e006900740069006f006e002900200020003a0076006f0069006400000007000000060000000600000007000000060000000300000006000000
+0600000006000000030000000500000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000300000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000
+000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000004f0100001d0000005b0100000100000000400d4200040dc210000000bdfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006
+000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000038010000250000004f010000e80000005b0100000100000000400d4200040dc221000000bdfeffff270000004c000000000000000000000000000000ffffffffffffffff9c0000
+00520065006d006f0076006500430061007400650067006f007200790044006500660069006e006900740069006f006e007300280049004e005400330032002900200020003a0076006f00690064004b0b0700000006000000090000000600000005000000060000000700000006000000030000000600000006000000060000000300000005000000070000000600000003000000030000000600000003000000030000000300
+000006000000060000000400000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000
+5c0100001d000000680100000100000000400d4200040dc210000000b0feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000007401
+0000250000005c0100000e010000680100000100000000400d4200040dc221000000b0feffff310000004c000000000000000000000000000000ffffffffffffffffb0000000470065007400540072006100660066006900630049006e0063006900640065006e00740049006400730028005700610072006e0069006e0067004c006500760065006c002c00200049004e005400330032002900200020003a0076006f00690064
+0000000800000006000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000006000000040000000300000009000000060000000300000006000000030000000600000006000000060000000600000005000000060000000300000003000000030000000300000007000000070000000600000006000000
+03000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000690100001d000000750100000100000000400d4200040dc210000000a3feffff020000004c00
+0000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013
+040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000004020000250000006901000086010000750100000100000000400d4200040dc221000000a3feffff
+490000004c000000000000000000000000000000ffffffffffffffffe0000000470065007400540072006100660066006900630049006e0063006900640065006e00740049006400730049006e004100720065006100730028005700610072006e0069006e0067004c006500760065006c002c00200049004e005400330032002c002000520065006300740061006e00670075006c006100720041007200650061002900200020
+003a0076006f0069006400ba2608000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000400000003000000060000000700000003000000060000000600000004000000030000000900000006000000030000000600000003000000060000000600000006000000060000000500
+0000060000000300000003000000030000000300000007000000070000000600000006000000030000000300000007000000060000000500000003000000060000000600000006000000060000000300000006000000030000000700000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000760100001d000000820100000100000000400d4200040dc21000000096feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000480100002500000076010000f6000000820100000100000000400d4200040dc22100000096feffff2a0000004c000000000000000000000000000000ffffffffffffffffa0000000470065007400540072006100660066006900630049006e006300690064
+0065006e0074007300280049004e005400330032002c00200042004f004f004c00450041004e002900200020003a0076006f006900640008000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000030000000300000007000000070000000600000006000000030000000300000007000000
+08000000080000000600000007000000070000000700000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000830100001d0000008f0100000100
+000000400d4200040dc21000000089feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000bc01000025000000830100003c010000
+8f0100000100000000400d4200040dc22100000089feffff3d0000004c000000000000000000000000000000ffffffffffffffffc8000000470065007400540072006100660066006900630049006e0063006900640065006e00740073004600690065006c0064007300280049004e005400330032002c002000540072006100660066006900630049006e0063006900640065006e0074004600690065006c0064002900200020
+003a0076006f0069006400000008000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000060000000300000006000000030000000600000004000000030000000300000007000000070000000600000006000000030000000300000007000000030000000600000003000000030000000300
+0000050000000300000006000000050000000300000006000000060000000600000003000000060000000300000006000000030000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c00000000404000540000005800000014000000900100001d0000009c0100000100000000400d4200040dc2100000007cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200
+0000180000000c0000000040400054000000380100002500000090010000e00000009c0100000100000000400d4200040dc2210000007cfeffff270000004c000000000000000000000000000000ffffffffffffffff9c00000047006500740054006500780074007300280049004e005400330032002c0020005400650078007400440065007400610069006c004c006500760065006c002900200020003a0076006f00690064
+0033530800000006000000030000000700000006000000050000000300000004000000030000000300000007000000070000000600000006000000030000000300000007000000060000000500000003000000070000000600000003000000060000000300000003000000060000000600000005000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000
+fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000009d0100001d000000a90100000100000000400d4200040dc2100000006ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00
+000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000048010000250000009d010000e5000000a90100000100000000400d4200040dc2210000006ffeffff2a0000004c000000000000000000000000000000ffffffffffffffffa00000004100640064005400
+72006100660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e006500720028002900200020003a0076006f006900640007000000060000000600000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000004000000070000000300000006000000030000
+00060000000400000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058
+00000014000000aa0100001d000000b60100000100000000400d4200040dc21000000062feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040
+00540000005c01000025000000aa010000f9000000b60100000100000000400d4200040dc22100000062feffff2d0000004c000000000000000000000000000000ffffffffffffffffa8000000520065006d006f0076006500540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e006500720028002900200020003a0076006f0069006400
+c475070000000600000009000000060000000500000006000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000003000000060000000300000006000000040000000600000003000000040000000300000006000000060000000600000003000000030000000300000003000000030000000300000005
+0000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000
+1000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000b70100001d000000c30100000100000000400d4200040dc21000000055feffff020000004c000000000000000000000000000000ffffff
+ffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002001000025000000b7010000ce000000c30100000100000000400d4200040dc22100000055feffff230000004c000000000000000000000000
+000000ffffffffffffffff94000000410064006400460065006500640049006e0066006f0072006d006100740069006f006e004c0069007300740065006e006500720028002900200020003a0076006f006900640000000700000006000000060000000600000006000000060000000600000003000000060000000300000006000000030000000900000006000000030000000300000006000000060000000600000003000000
+0400000003000000060000000600000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000c40100001d000000d001
+00000100000000400d4200040dc21000000048feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000003001000025000000c4010000
+e2000000d00100000100000000400d4200040dc22100000048feffff260000004c000000000000000000000000000000ffffffffffffffff98000000520065006d006f0076006500460065006500640049006e0066006f0072006d006100740069006f006e004c0069007300740065006e006500720028002900200020003a0076006f006900640007000000060000000900000006000000050000000600000006000000060000
+000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d
+462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001
+000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000d10100001d000000dd0100000100000000400d4200040dc2100000003bfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000008401000025000000d101000029010000dd0100000100000000400d4200040dc2210000003bfeffff340000004c000000000000000000000000000000ffffffffffffffffb40000004100640064005500700064006100740065004c0069007300740065006e0065007200280049004e00540033003200
+2c0020005700610072006e0069006e0067004c006500760065006c002c00200049004e005400330032002900200020003a0076006f006900640007000000060000000600000007000000060000000600000006000000030000000600000006000000030000000400000003000000060000000600000006000000030000000300000003000000070000000700000006000000060000000300000003000000090000000600000003
+0000000600000003000000060000000600000006000000060000000500000006000000030000000300000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c00000000404000540000005800000014000000de0100001d000000ea0100000100000000400d4200040dc2100000002efeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c00000000404000540000001801000025000000de010000d3000000ea0100000100000000400d4200040dc2210000002efeffff220000004c000000000000000000000000000000ffffffffffffffff90000000520065006d006f00760065005500700064006100740065004c0069007300740065006e0065007200280049004e005400330032002900200020003a0076006f0069006400
+070000000600000009000000060000000500000006000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c0000001000000000000000000000
+00460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000400
+00000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000eb0100001d000000f70100000100000000400d4200040dc21000000021feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000802000025000000eb01000098010000f70100000100000000400d4200040dc22100000021feffff4a0000004c000000000000000000000000000000ffffffffffffffffe0000000410064006400410072006500610073005500700064006100740065004c0069
+007300740065006e0065007200280049004e005400330032002c0020005700610072006e0069006e0067004c006500760065006c002c00200049004e005400330032002c002000520065006300740061006e00670075006c006100720041007200650061002900200020003a0076006f00690064000700000006000000060000000700000003000000060000000600000004000000070000000600000006000000060000000300
+0000060000000600000003000000040000000300000006000000060000000600000003000000030000000300000007000000070000000600000006000000030000000300000009000000060000000300000006000000030000000600000006000000060000000600000005000000060000000300000003000000030000000300000007000000070000000600000006000000030000000300000007000000060000000500000003
+000000060000000600000006000000060000000300000006000000030000000700000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000
+005800000014000000f80100001d000000040200000100000000400d4200040dc21000000014feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000
+404000540000003801000025000000f8010000ed000000040200000100000000400d4200040dc22100000014feffff270000004c000000000000000000000000000000ffffffffffffffff9c000000520065006d006f0076006500410072006500610073005500700064006100740065004c0069007300740065006e0065007200280049004e005400330032002900200020003a0076006f0069006400c5770700000006000000
+090000000600000005000000060000000700000003000000060000000600000004000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a00000010000000fcffffff0c0000000c0000
+00100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000160167fc7f0027002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600
+0000300000001a0100007e03000099010000a503000005000000a011e037a011503a9019503a9019e037a011e037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000c0bfc0ff0b400040180000000c00000001000000160167fc7f0027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000000500008056000000
+2c0000000301000067030000b0010000bc03000004000000a011503a9019503a9019e037a011e037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000
+0000808943008065c40000fe4200001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000013016afc7f002700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000170100007b0300005801
+0000a20300000500000017017b031701a2035801a20358017b0317017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000580100007b03000059010000a20300000500000058017b035801a2035901a20359017b0358017b03250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000590100007b0300005b010000a20300000500000059017b035901a2035b01a2035b017b0359017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000005b0100007b0300005d010000a2030000050000005b017b035b01a2035d01a2035d017b035b017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000
+000c0000000800008056000000300000005d0100007b0300005e010000a2030000050000005d017b035d01a2035e01a2035e017b035d017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000005e0100007b03000060010000a20300000500
+00005e017b035e01a2036001a20360017b035e017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000600100007b03000062010000a20300000500000060017b036001a2036201a20362017b0360017b03250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000620100007b03000063010000a20300000500000062017b036201a2036301a20363017b0362017b03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000630100007b03000064010000a20300000500000063017b036301a2036401a20364017b0363017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000
+805600000030000000640100007b03000066010000a20300000500000064017b036401a2036601a20366017b0364017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000660100007b03000068010000a20300000500000066017b036601
+a2036801a20368017b0366017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000680100007b03000069010000a20300000500000068017b036801a2036901a20369017b0368017b03250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000690100007b0300006b010000a20300000500000069017b036901a2036b01a2036b017b0369017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d700
+00000000250000000c00000004000000250000000c0000000800008056000000300000006b0100007b0300006c010000a2030000050000006b017b036b01a2036c01a2036c017b036b017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000
+006c0100007b0300006d010000a2030000050000006c017b036c01a2036d01a2036d017b036c017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000006d0100007b0300006e010000a2030000050000006d017b036d01a2036e01a2036e01
+7b036d017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000006e0100007b03000070010000a2030000050000006e017b036e01a2037001a20370017b036e017b03250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000700100007b03000072010000a20300000500000070017b037001a2037201a20372017b0370017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d3000000000025000000
+0c00000004000000250000000c000000080000805600000030000000720100007b03000073010000a20300000500000072017b037201a2037301a20373017b0372017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000730100007b0300
+0074010000a20300000500000073017b037301a2037401a20374017b0373017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000740100007b03000075010000a20300000500000074017b037401a2037501a20375017b0374017b032500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000750100007b03000076010000a20300000500000075017b037501a2037601a20376017b0375017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000760100007b03000078010000a20300000500000076017b037601a2037801a20378017b0376017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000
+250000000c000000080000805600000030000000780100007b03000079010000a20300000500000078017b037801a2037901a20379017b0378017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000790100007b0300007a010000a20300
+000500000079017b037901a2037a01a2037a017b0379017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000007a0100007b0300007b010000a2030000050000007a017b037a01a2037b01a2037b017b037a017b03250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000007b0100007b0300007c010000a2030000050000007b017b037b01a2037c01a2037c017b037b017b03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000007c0100007b0300007d010000a2030000050000007c017b037c01a2037d01a2037d017b037c017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000
+0800008056000000300000007d0100007b0300007e010000a2030000050000007d017b037d01a2037e01a2037e017b037d017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000007e0100007b0300007f010000a2030000050000007e017b
+037e01a2037f01a2037f017b037e017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000007f0100007b03000080010000a2030000050000007f017b037f01a2038001a20380017b037f017b03250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000800100007b03000081010000a20300000500000080017b038001a2038101a20381017b0380017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ef
+e0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000810100007b03000083010000a20300000500000081017b038101a2038301a20383017b0381017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000
+30000000830100007b03000084010000a20300000500000083017b038301a2038401a20384017b0383017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000840100007b03000085010000a20300000500000084017b038401a2038501a2
+0385017b0384017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000850100007b03000086010000a20300000500000085017b038501a2038601a20386017b0385017b03250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000860100007b03000088010000a20300000500000086017b038601a2038801a20388017b0386017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc6000000000025
+0000000c00000004000000250000000c000000080000805600000030000000880100007b03000089010000a20300000500000088017b038801a2038901a20389017b0388017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c00000008000080560000003000000089010000
+7b0300008a010000a20300000500000089017b038901a2038a01a2038a017b0389017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000008a0100007b0300008c010000a2030000050000008a017b038a01a2038c01a2038c017b038a017b
+03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000008c0100007b0300008d010000a2030000050000008c017b038c01a2038d01a2038d017b038c017b03250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000008d0100007b0300008e010000a2030000050000008d017b038d01a2038e01a2038e017b038d017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004
+000000250000000c0000000800008056000000300000008e0100007b0300008f010000a2030000050000008e017b038e01a2038f01a2038f017b038e017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000008f0100007b03000090010000
+a2030000050000008f017b038f01a2039001a20390017b038f017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000900100007b03000091010000a20300000500000090017b039001a2039101a20391017b0390017b03250000000c0000
+0008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000910100007b03000093010000a20300000500000091017b039101a2039301a20393017b0391017b03250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800
+00000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000930100007b03000094010000a20300000500000093017b039301a2039401a20394017b0393017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c
+000000080000805600000030000000940100007b03000095010000a20300000500000094017b039401a2039501a20395017b0394017b03250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000950100007b03000096010000a203000005000000
+95017b039501a2039601a20396017b0395017b03250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000013016afc7f0027003a0000
+000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000001000064030000ad010000b9030000040000007011203a6019203a6019b0377011
+b037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001d0100008bfcffff
+890100007efcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000003c01000081030000710100008d0300000100000000400d4200040dc2380100008bfcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb002e7606000000030000
+000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054
+000000dc0000001d0100008e03000090010000990300000100000000400d4200040dc2190100007efcffff180000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e00740073004c0069007300740065006e00650072000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000
+060000000600000006000000030000000600000006000000030000000600000003000000060000000600000006000000040000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000
+000210c0db0200000000400000130172fc920172fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021
+0100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000001000083030000ad010000b1030000020000007011a0396019a039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a
+000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000860293ff7e00540024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008a02000025000000080300007900000005000000a0285002a02890078030900780305002a0285002250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000860293ff7e0054003a0000000c0000000a0000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000730200000e0000001f0300009000000004000000a02890078030900780305002a0285002250000000c00000007000080250000000c00
+000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c020440000d4c20000fc420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbe
+d7e8ff0a4000401c000000100000000200000001000000830296ff7e005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008702000022000000c702000076000000050000008702220087027600c7027600c702220087022200250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c000000080000805600000030000000c702000022000000c80200007600000005000000c7022200c7027600c8027600c8022200c7022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000
+000c00000004000000250000000c000000080000805600000030000000c802000022000000c90200007600000005000000c8022200c8027600c9027600c9022200c8022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000c90200002200
+0000ca0200007600000005000000c9022200c9027600ca027600ca022200c9022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000ca02000022000000cc0200007600000005000000ca022200ca027600cc027600cc022200ca02220025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000cc02000022000000cd0200007600000005000000cc022200cc027600cd027600cd022200cc022200250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c000000080000805600000030000000cd02000022000000ce0200007600000005000000cd022200cd027600ce027600ce022200cd022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c000000040000
+00250000000c000000080000805600000030000000ce02000022000000cf0200007600000005000000ce022200ce027600cf027600cf022200ce022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000022000000d00200007600
+000005000000cf022200cf027600d0027600d0022200cf022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d002000022000000d10200007600000005000000d0022200d0027600d1027600d1022200d0022200250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d102000022000000d20200007600000005000000d1022200d1027600d2027600d2022200d1022200250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d202000022000000d30200007600000005000000d2022200d2027600d3027600d3022200d2022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000
+00080000805600000030000000d302000022000000d50200007600000005000000d3022200d3027600d5027600d5022200d3022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d502000022000000d70200007600000005000000d502
+2200d5027600d7027600d7022200d5022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000d702000022000000d80200007600000005000000d7022200d7027600d8027600d8022200d7022200250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c000000080000805600000030000000d802000022000000d90200007600000005000000d8022200d8027600d9027600d9022200d8022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000d902000022000000da0200007600000005000000d9022200d9027600da027600da022200d9022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000
+0030000000da02000022000000dc0200007600000005000000da022200da027600dc027600dc022200da022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000dc02000022000000dd0200007600000005000000dc022200dc027600dd02
+7600dd022200dc022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000dd02000022000000df0200007600000005000000dd022200dd027600df027600df022200dd022200250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000df02000022000000e10200007600000005000000df022200df027600e1027600e1022200df022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000
+250000000c00000004000000250000000c000000080000805600000030000000e102000022000000e20200007600000005000000e1022200e1027600e2027600e2022200e1022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e20200
+0022000000e30200007600000005000000e2022200e2027600e3027600e3022200e2022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e302000022000000e50200007600000005000000e3022200e3027600e5027600e5022200e302
+2200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e502000022000000e70200007600000005000000e5022200e5027600e7027600e7022200e5022200250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000e702000022000000e80200007600000005000000e7022200e7027600e8027600e8022200e7022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c000000
+04000000250000000c000000080000805600000030000000e802000022000000e90200007600000005000000e8022200e8027600e9027600e9022200e8022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000e902000022000000ea0200
+007600000005000000e9022200e9027600ea027600ea022200e9022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ea02000022000000eb0200007600000005000000ea022200ea027600eb027600eb022200ea022200250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000eb02000022000000ec0200007600000005000000eb022200eb027600ec027600ec022200eb022200250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ec02000022000000ed0200007600000005000000ec022200ec027600ed027600ed022200ec022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c0000000400000025000000
+0c000000080000805600000030000000ed02000022000000ef0200007600000005000000ed022200ed027600ef027600ef022200ed022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000ef02000022000000f002000076000000050000
+00ef022200ef027600f0027600f0022200ef022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f002000022000000f20200007600000005000000f0022200f0027600f2027600f2022200f0022200250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000f202000022000000f30200007600000005000000f2022200f2027600f3027600f3022200f2022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000f302000022000000f40200007600000005000000f3022200f3027600f4027600f4022200f3022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c00000008000080
+5600000030000000f402000022000000f50200007600000005000000f4022200f4027600f5027600f5022200f4022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f502000022000000f70200007600000005000000f5022200f50276
+00f7027600f7022200f5022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f702000022000000f80200007600000005000000f7022200f7027600f8027600f8022200f7022200250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f802000022000000f90200007600000005000000f8022200f8027600f9027600f9022200f8022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000
+000000250000000c00000004000000250000000c000000080000805600000030000000f902000022000000fb0200007600000005000000f9022200f9027600fb027600fb022200f9022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000
+fb02000022000000fc0200007600000005000000fb022200fb027600fc027600fc022200fb022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fc02000022000000fd0200007600000005000000fc022200fc027600fd027600fd0222
+00fc022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000fd02000022000000fe0200007600000005000000fd022200fd027600fe027600fe022200fd022200250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000fe02000022000000ff0200007600000005000000fe022200fe027600ff027600ff022200fe022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c
+00000004000000250000000c000000080000805600000030000000ff02000022000000000300007600000005000000ff022200ff0276000003760000032200ff022200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000000003000022000000
+0203000076000000050000000003220000037600020376000203220000032200250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000002030000220000000303000076000000050000000203220002037600030376000303220002032200250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000003030000220000000403000076000000050000000303220003037600040376000403220003032200250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000004030000220000000503000076000000050000000403220004037600050376000503220004032200250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000830296ff7e0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000
+0000000000000000250000000c00000004000000250000000c00000005000080560000002c000000700200000b0000001c0300008d0000000400000070286007503060075030200270282002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c0000
+00ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000008d020000e4fffffff8020000d7ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000a202000028000000ea020000340000000100000000400d4200
+040dc29e020000e4ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b000000100000000000000005000000
+0a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000ac02000035000000e0020000400000000100000000400d4200040dc2a8020000d7ffffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004c0065006e00
+67007400680055006e0069007400060000000600000006000000060000000300000006000000070000000600000003000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff084001032400000018
+0000000210c0db02000000004000008302c5ff0103c5ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+00210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000070020000300000001c0300005e000000020000007028700450307004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000
+000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c0200004b0000008f020000570000000100000000400d4200040dc288020000c1ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000009d0200004b00000001030000570000000100000000400d4200040dc299020000c1ffffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f005300500045004300490046
+0049004500440020003d0020003000b45607000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000540000008c020000580000008f020000640000000100000000400d4200040dc288020000b4ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+008b00000054000000a00000009d02000058000000f3020000640000000100000000400d4200040dc299020000b4ffffff0e0000004c000000000000000000000000000000ffffffffffffffff680000004b0049004c004f004d004500540045005200530020003d002000310007000000030000000600000008000000090000000700000007000000070000000700000007000000030000000600000003000000060000000a00
+000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008c020000650000008f020000710000000100000000400d4200040dc288020000a7ffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000003000000
+0a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000840000009d02000065000000cf020000710000000100000000400d4200040dc299020000a7ffffff090000004c000000000000000000000000000000ffffffffffffffff600000004d0049004c00
+4500530020003d002000320000000900000003000000060000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000880220ff7e0054002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000
+0000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008c020000980000000a030000ec00000005000000c0288009c028c00ea030c00ea0308009c0288009250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000880220ff7e0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000
+00000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007502000081000000210300000301000004000000c028c00ea030c00ea0308009c0288009250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000040214400005dc30000fc420000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000850223ff7e005400250000000c00000008
+00008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008902000095000000c9020000e900000005000000890295008902e900c902e900c902950089029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c000000
+04000000250000000c000000080000805600000030000000c902000095000000ca020000e900000005000000c9029500c902e900ca02e900ca029500c9029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000ca02000095000000cb0200
+00e900000005000000ca029500ca02e900cb02e900cb029500ca029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000cb02000095000000cc020000e900000005000000cb029500cb02e900cc02e900cc029500cb029500250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000cc02000095000000ce020000e900000005000000cc029500cc02e900ce02e900ce029500cc029500250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ce02000095000000cf020000e900000005000000ce029500ce02e900cf02e900cf029500ce029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c0000000400000025000000
+0c000000080000805600000030000000cf02000095000000d0020000e900000005000000cf029500cf02e900d002e900d0029500cf029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000d002000095000000d1020000e9000000050000
+00d0029500d002e900d102e900d1029500d0029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d102000095000000d2020000e900000005000000d1029500d102e900d202e900d2029500d1029500250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d202000095000000d3020000e900000005000000d2029500d202e900d302e900d3029500d2029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d302000095000000d4020000e900000005000000d3029500d302e900d402e900d4029500d3029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080
+5600000030000000d402000095000000d5020000e900000005000000d4029500d402e900d502e900d5029500d4029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000d502000095000000d7020000e900000005000000d5029500d502e9
+00d702e900d7029500d5029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d702000095000000d9020000e900000005000000d7029500d702e900d902e900d9029500d7029500250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000d902000095000000da020000e900000005000000d9029500d902e900da02e900da029500d9029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000
+000000250000000c00000004000000250000000c000000080000805600000030000000da02000095000000db020000e900000005000000da029500da02e900db02e900db029500da029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000
+db02000095000000dc020000e900000005000000db029500db02e900dc02e900dc029500db029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000dc02000095000000de020000e900000005000000dc029500dc02e900de02e900de0295
+00dc029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000de02000095000000df020000e900000005000000de029500de02e900df02e900df029500de029500250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000df02000095000000e1020000e900000005000000df029500df02e900e102e900e1029500df029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c
+00000004000000250000000c000000080000805600000030000000e102000095000000e3020000e900000005000000e1029500e102e900e302e900e3029500e1029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000e302000095000000
+e4020000e900000005000000e3029500e302e900e402e900e4029500e3029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e402000095000000e5020000e900000005000000e4029500e402e900e502e900e5029500e4029500250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e502000095000000e7020000e900000005000000e5029500e502e900e702e900e7029500e5029500250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e702000095000000e9020000e900000005000000e7029500e702e900e902e900e9029500e7029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c0000000400000025
+0000000c000000080000805600000030000000e902000095000000ea020000e900000005000000e9029500e902e900ea02e900ea029500e9029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ea02000095000000eb020000e9000000
+05000000ea029500ea02e900eb02e900eb029500ea029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000eb02000095000000ec020000e900000005000000eb029500eb02e900ec02e900ec029500eb029500250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ec02000095000000ed020000e900000005000000ec029500ec02e900ed02e900ed029500ec029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ed02000095000000ee020000e900000005000000ed029500ed02e900ee02e900ee029500ed029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c00000008
+0000805600000030000000ee02000095000000ef020000e900000005000000ee029500ee02e900ef02e900ef029500ee029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ef02000095000000f1020000e900000005000000ef029500
+ef02e900f102e900f1029500ef029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000f102000095000000f2020000e900000005000000f1029500f102e900f202e900f2029500f1029500250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f202000095000000f4020000e900000005000000f2029500f202e900f402e900f4029500f2029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedf
+c90000000000250000000c00000004000000250000000c000000080000805600000030000000f402000095000000f5020000e900000005000000f4029500f402e900f502e900f5029500f4029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030
+000000f502000095000000f6020000e900000005000000f5029500f502e900f602e900f6029500f5029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000f602000095000000f7020000e900000005000000f6029500f602e900f702e900
+f7029500f6029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f702000095000000f9020000e900000005000000f7029500f702e900f902e900f9029500f7029500250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f902000095000000fa020000e900000005000000f9029500f902e900fa02e900fa029500f9029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc600000000002500
+00000c00000004000000250000000c000000080000805600000030000000fa02000095000000fb020000e900000005000000fa029500fa02e900fb02e900fb029500fa029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000fb02000095
+000000fd020000e900000005000000fb029500fb02e900fd02e900fd029500fb029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fd02000095000000fe020000e900000005000000fd029500fd02e900fe02e900fe029500fd029500
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000fe02000095000000ff020000e900000005000000fe029500fe02e900ff02e900ff029500fe029500250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ff0200009500000000030000e900000005000000ff029500ff02e9000003e90000039500ff029500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c0000000400
+0000250000000c000000080000805600000030000000000300009500000001030000e900000005000000000395000003e9000103e9000103950000039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000010300009500000002030000e9
+00000005000000010395000103e9000203e9000203950001039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000020300009500000004030000e900000005000000020395000203e9000403e9000403950002039500250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000040300009500000005030000e900000005000000040395000403e9000503e9000503950004039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000050300009500000006030000e900000005000000050395000503e9000603e9000603950005039500250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000060300009500000007030000e900000005000000060395000603e9000703e9000703950006039500250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00
+000000000000ff0b400040180000000c00000001000000850223ff7e0054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000
+720200007e0000001e03000000010000040000009028900e7030900e7030500990285009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c000000000000001e000000180000008f02000071fffffffa02000064ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000a40200009b000000ec020000a70000000100000000400d4200040dc2a002000071ffffff0d0000004c000000000000000000000000000000ffffffffffffffff68
+000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000ae020000a8000000e2020000b30000000100000000400d4200040dc2aa02000064ffffff0a0000004c000000000000000000000000000000ffffffffffffffff6000000057006500690067006800740055006e00690074000900000006000000030000000600000006000000030000000700
+00000600000003000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000850252ff030352ff0001010115400100100000000400000000
+0000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000
+250000000c00000005000080570000002400000072020000a30000001e030000d1000000020000009028a00b7030a00b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008e020000be00000091020000ca0000000100000000400d4200040dc28a0200004effffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000063030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b40000009f020000be00000003030000ca0000000100000000400d4200040dc29b0200004effffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300002000700000008000000070000000600000007000000070000
+0007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008e020000cb00000091020000d70000000100000000400d4200040dc28a
+02000041ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000940000009f020000cb000000e8020000d70000000100000000400d4200040d
+c29b02000041ffffff0c0000004c000000000000000000000000000000ffffffffffffffff640000004b0049004c004f004700520041004d0020003d00200031000700000003000000060000000800000008000000070000000700000009000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008e020000d800000091020000e40000000100000000400d4200040dc28a02000034ffffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b04400000
+0c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000
+000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000840000009f020000d8000000d5020000e40000000100000000400d4200040dc29b02000034ffffff090000004c000000000000000000000000000000ffffffffffffffff6000000050004f0055004e00440020003d002000320000000700000008000000070000000700000007000000030000000600000003000000060000000a00
+000010000000fcffffff0c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000370266fdd10057002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001
+000000250000000c0000000800008056000000300000003b0200004f0200000c030000a602000005000000b023f024b023602ac030602ac030f024b023f024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000370266fdd10057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000040000
+00250000000c00000005000080560000002c000000240200003802000023030000bd02000004000000b023602ac030602ac030f024b023f024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c00
+00000210c0db04000000040000000000000000000d4400c025c4000051430000ae42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000340269fdd1005700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056
+00000030000000380200004c020000a5020000a30200000500000038024c023802a302a502a302a5024c0238024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a50200004c020000aa020000a302000005000000a5024c02a502a302
+aa02a302aa024c02a5024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000aa0200004c020000b0020000a302000005000000aa024c02aa02a302b002a302b0024c02aa024c02250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000b00200004c020000b6020000a302000005000000b0024c02b002a302b602a302b6024c02b0024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb000000
+0000250000000c00000004000000250000000c000000080000805600000030000000b60200004c020000bc020000a302000005000000b6024c02b602a302bc02a302bc024c02b6024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000bc
+0200004c020000c2020000a302000005000000bc024c02bc02a302c202a302c2024c02bc024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000c20200004c020000c7020000a302000005000000c2024c02c202a302c702a302c7024c02
+c2024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000c70200004c020000cd020000a302000005000000c7024c02c702a302cd02a302cd024c02c7024c02250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000cd0200004c020000d3020000a302000005000000cd024c02cd02a302d302a302d3024c02cd024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00
+000004000000250000000c000000080000805600000030000000d30200004c020000d7020000a302000005000000d3024c02d302a302d702a302d7024c02d3024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000d70200004c020000dc
+020000a302000005000000d7024c02d702a302dc02a302dc024c02d7024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000dc0200004c020000e1020000a302000005000000dc024c02dc02a302e102a302e1024c02dc024c0225000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000e10200004c020000e6020000a302000005000000e1024c02e102a302e602a302e6024c02e1024c02250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000e60200004c020000ec020000a302000005000000e6024c02e602a302ec02a302ec024c02e6024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c000000040000002500
+00000c000000080000805600000030000000ec0200004c020000f1020000a302000005000000ec024c02ec02a302f102a302f1024c02ec024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f10200004c020000f8020000a302000005
+000000f1024c02f102a302f802a302f8024c02f1024c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f80200004c020000fe020000a302000005000000f8024c02f802a302fe02a302fe024c02f8024c02250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000fe0200004c02000003030000a302000005000000fe024c02fe02a3020303a30203034c02fe024c02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000030300004c02000008030000a30200000500000003034c020303a3020803a30208034c0203034c02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800
+00805600000030000000080300004c02000009030000a30200000500000008034c020803a3020903a30209034c0208034c02250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db0000000000
+0000ff0b400040180000000c00000001000000340269fdd10057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000021020000
+3502000020030000ba020000040000008023302a9030302a9030c0248023c024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000
+0000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000300
+0000180000000c0000000000000054000000b80000007402000055020000cd020000600200000100000000400d4200040dc270020000b7fdffff120000004c000000000000000000000000000000ffffffffffffffff70000000430061007400650067006f007200790044006500660069006e006900740069006f006e000700000006000000030000000600000006000000060000000400000005000000070000000600000003
+000000030000000600000003000000030000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003402a5fd0503a5fd
+00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000
+0000000000250000000c00000004000000250000000c0000000500008057000000240000002102000050020000200300007e020000020000008023702690307026250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c00000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003d0200006b02000046020000770200000100000000400d4200040dc239020000a1fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000
+000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000380100004e0200006b02000005030000770200000100000000400d4200040dc24a020000a1fdffff270000004c000000000000000000000000000000ffffffffffffffff9c0000006c006f00630061006c0069007a00650064004e0061006d0065007300200020003a004c006f00
+630061006c0069007a006500640053007400720069006e00670020005b0030002e002e002a005d0000000300000006000000050000000600000003000000030000000500000006000000060000000700000006000000090000000600000004000000030000000300000003000000060000000600000005000000060000000300000003000000050000000600000006000000070000000300000003000000030000000600000006
+000000030000000300000006000000030000000300000004000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003d0200007802000046020000840200000100000000400d4200040dc23902000094fdffff020000004c0000
+00000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b80000004e02000078020000a5020000840200000100000000400d4200040dc24a02000094fdffff12
+0000004c000000000000000000000000000000ffffffffffffffff70000000630061007400650067006f007200790049006400200020003a0049004e005400330032000500000006000000030000000600000006000000060000000300000005000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a00000010000000fcffffff0c0000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003d0200008502000046020000910200000100000000400d4200040dc23902000087fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c0000001000
+00000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d80000004e02000085020000ae020000910200000100000000400d4200040dc24a02000087fdffff170000004c000000000000000000000000000000ffffffffffffffff7c000000690063006f006e007300200020003a00490063006f006e0049006e00
+66006f0020005b0030002e002e002a005d00000003000000050000000600000006000000040000000300000003000000030000000300000005000000060000000600000003000000060000000300000006000000030000000300000006000000030000000300000004000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000003d02000092020000460200009e0200000100000000400d4200040dc2390200007afdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000004e02000092020000af0200009e0200000100000000400d4200040dc24a0200007afdffff130000004c000000000000000000000000000000ffffffffffffffff74000000650078007000720065007300730069006f006e00200020003a0053005400520049004e0047000000060000000500000006000000030000
+000600000004000000040000000300000006000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001e0072fcc50042012100000008000000620000000c00000001000000110000000c0000000100
+00000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002200000058020000e70000009a03000005000000200280252002a039700ea039700e802520028025250000000c00000007000080250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001e0072fcc50042013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000b00000041020000fe000000b1030000040000002002a039700ea039700e802520028025250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000d84100c062c4000045430000a143bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001b0075fcc500
+4201250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000001f000000550200008600000097030000050000001f0055021f00970386009703860055021f005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000
+000000250000000c00000004000000250000000c00000008000080560000003000000086000000550200008b000000970300000500000086005502860097038b0097038b00550286005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000
+8b000000550200009000000097030000050000008b0055028b00970390009703900055028b005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009000000055020000960000009703000005000000900055029000970396009703960055
+0290005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c00000008000080560000003000000096000000550200009c000000970300000500000096005502960097039c0097039c00550296005502250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000009c00000055020000a100000097030000050000009c0055029c009703a1009703a10055029c005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c
+00000004000000250000000c000000080000805600000030000000a100000055020000a60000009703000005000000a1005502a1009703a6009703a6005502a1005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000a600000055020000
+ac0000009703000005000000a6005502a6009703ac009703ac005502a6005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000ac00000055020000b10000009703000005000000ac005502ac009703b1009703b1005502ac005502250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000b100000055020000b40000009703000005000000b1005502b1009703b4009703b4005502b1005502250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000b400000055020000b80000009703000005000000b4005502b4009703b8009703b8005502b4005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c0000000400000025
+0000000c000000080000805600000030000000b800000055020000bc0000009703000005000000b8005502b8009703bc009703bc005502b8005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000bc00000055020000c100000097030000
+05000000bc005502bc009703c1009703c1005502bc005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000c100000055020000c60000009703000005000000c1005502c1009703c6009703c6005502c1005502250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000c600000055020000cb0000009703000005000000c6005502c6009703cb009703cb005502c6005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000cb00000055020000d10000009703000005000000cb005502cb009703d1009703d1005502cb005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c00000008
+0000805600000030000000d100000055020000d70000009703000005000000d1005502d1009703d7009703d7005502d1005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000d700000055020000dc0000009703000005000000d7005502
+d7009703dc009703dc005502d7005502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000dc00000055020000e10000009703000005000000dc005502dc009703e1009703e1005502dc005502250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000e100000055020000e40000009703000005000000e1005502e1009703e4009703e4005502e1005502250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001b0075fcc50042013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000080000003e020000fb000000ae03000004000000f0017039400e7039400e5025f0015025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000025000000b1fdffffd7000000a4fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000005e0000005b02
+0000a6000000670200000100000000400d4200040dc25a000000b1fdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000
+0000004b0000001000000000000000050000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000c40000005300000068020000b0000000730200000100000000400d4200040dc24f000000a4fdffff140000004c0000000000000000000000000000
+00ffffffffffffffff74000000540072006100660066006900630049006e0063006900640065006e0074004600690065006c00640005000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006000000060000000300000006000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c0000001000000000000000000000004600
+00007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001b0092fde00092fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000
+0000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000800000063020000fb0000009102000002000000f001a027400ea027
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000007e0200002700
+00008a0200000100000000400d4200040dc2200000008efdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000011c030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000350000007e020000
+990000008a0200000100000000400d4200040dc2310000008efdffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d0020003000010007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000030000000600000003000000060000000a0000
+0010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000008b02000027000000970200000100000000400d4200040dc22000000081fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000300030000000a
+00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000350000008b020000b8000000970200000100000000400d4200040dc23100000081fdffff170000004c000000000000000000000000000000ffffffffffffffff7c00000054005200410046
+004600490043005f0049004e0043004900440045004e0054005f004900440020003d0020003100000007000000070000000700000006000000060000000300000007000000060000000300000007000000070000000300000007000000070000000700000007000000060000000300000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000009802000027000000a40200000100000000400d4200040dc22000000074fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000161030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000
+460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000
+000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000350000009802000092000000a40200000100000000400d4200040dc23100000074fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004500460046004500430054005f0043004f004400450020003d00200032000080070000000600
+0000060000000700000007000000070000000600000007000000080000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024000000a502000027000000b102000001000000
+00400d4200040dc22000000067fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000035000000a502000091000000b10200000100
+000000400d4200040dc23100000067fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000004500460046004500430054005f00540045005800540020003d002000330001000700000006000000060000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024000000b202000027000000be0200000100000000400d4200040dc2200000005afdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a000000035000000b20200008a000000be0200000100000000400d4200040dc2310000005afdffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000530054004100520054005f00540049004d00450020003d002000340007
+000000070000000700000007000000070000000600000007000000030000000900000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024000000bf02000027000000cb020000010000
+0000400d4200040dc2200000004dfdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c00000035000000bf02000084000000cb02000001
+00000000400d4200040dc2310000004dfdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000530054004f0050005f00540049004d00450020003d00200035000000070000000700000008000000070000000600000007000000030000000900000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c0000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024000000cc02000027000000d80200000100000000400d4200040dc22000000040fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009400000035000000cc0200007f000000d80200000100000000400d4200040dc23100000040fdffff0c0000004c000000000000000000000000000000ffffffffffffffff64000000540045004e00440045004e004300590020003d002000360007000000070000000700000007000000
+07000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024000000d902000027000000e50200000100000000400d4200040dc22000000033fdffff010000004c00
+0000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000035000000d9020000a1000000e50200000100000000400d4200040dc23100000033fdffff11000000
+4c000000000000000000000000000000ffffffffffffffff70000000540045004e00440045004e00430059005f00540045005800540020003d0020003700000007000000070000000700000007000000070000000700000007000000070000000600000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c00
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000024000000e602000027000000f20200000100000000400d4200040dc22000000026fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000004000000
+0c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c000000035000000e6020000ad000000f20200000100000000400d4200040dc23100000026fdffff130000004c000000000000000000000000000000ffffffffffffffff740000004c0045004e004700540048005f004100460046004500430054004500440020003d002000380002
+34060000000700000007000000080000000700000007000000060000000700000006000000060000000700000007000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054
+00000024000000f302000027000000ff0200000100000000400d4200040dc22000000019fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00e800000035000000f3020000e0000000ff0200000100000000400d4200040dc23100000019fdffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000041005600450052004100470045005f00530050004500450044005f004100420053004f004c0055005400450020003d0020003900070000000700000007000000070000000700000008000000070000000600000007000000070000000700
+00000700000007000000060000000700000007000000070000000800000006000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000000003000027000000
+0c0300000100000000400d4200040dc2200000000cfdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000008800000035000000000300006f00
+00000c0300000100000000400d4200040dc2310000000cfdffff0a0000004c000000000000000000000000000000ffffffffffffffff60000000440045004c004100590020003d00200031003000070000000700000006000000070000000700000003000000060000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000000d03000027000000190300000100000000400d4200040dc220000000fffcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc000000350000000d030000cc000000190300000100000000400d4200040dc231000000fffcffff180000004c000000000000000000000000000000ffffffffffffffff7c0000005300450047004d0045004e0054005f00530050004500450044005f004c0049004d004900540020003d002000310031000700000007
+000000080000000900000007000000070000000700000006000000070000000700000007000000070000000700000006000000060000000300000009000000030000000700000003000000060000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b0000005400000054000000240000001a03000027000000260300000100000000400d4200040dc220000000f2fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b0000005400000090000000350000001a03000077000000260300000100000000400d4200040dc231000000f2fcffff0b0000004c000000000000000000000000000000ffffffffffffffff6400000043004100550053004500530020003d00200031003200210107000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000fcffffff
+0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000002703000027000000330300000100000000400d4200040dc220000000e5fcffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff030000000a00000010000000fcff
+ffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac000000350000002703000099000000330300000100000000400d4200040dc231000000e5fcffff100000004c000000000000000000000000000000ffffffffffffffff6c000000430041005500530045005f0054004500
+58005400530020003d00200031003300070000000700000007000000070000000700000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+000054000000240000003403000027000000400300000100000000400d4200040dc220000000d8fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000b800000035000000340300009a000000400300000100000000400d4200040dc231000000d8fcffff120000004c000000000000000000000000000000ffffffffffffffff700000004100500050004c00490043004100420049004c0049005400590020003d0020003100340007000000070000000700000006000000030000000700000007000000070000000300000006000000030000000700000007000000030000
+00060000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002400000041030000270000004d0300000100000000400d4200040dc220000000cbfcffff010000004c000000000000000000000000000000ff
+ffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060000000
+0b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000003500000041030000c30000004d0300000100000000400d4200040dc231000000cbfcffff180000004c0000000000000000000000000000
+00ffffffffffffffff7c0000004100500050004c00490043004100420049004c004900540059005f005400450058005400530020003d002000310035000700000007000000070000000600000003000000070000000700000007000000030000000600000003000000070000000700000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000fcff
+ffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000004e030000270000005a0300000100000000400d4200040dc220000000befcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000
+fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c000000350000004e030000820000005a0300000100000000400d4200040dc231000000befcffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004c004f0043004100540049004f00
+4e0020003d002000310036000000060000000800000007000000070000000700000003000000080000000700000003000000060000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000005b030000
+27000000670300000100000000400d4200040dc220000000b1fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000620030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000
+0000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000350000005b03
+0000a0000000670300000100000000400d4200040dc231000000b1fcffff120000004c000000000000000000000000000000ffffffffffffffff700000004c004f0043004100540049004f004e005f0049004e0046004f0020003d00200031003700060000000800000007000000070000000700000003000000080000000700000006000000030000000700000006000000080000000300000006000000030000000600000006
+0000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000006803000027000000740300000100000000400d4200040dc220000000a4fcffff010000004c000000000000000000000000000000ffffffffffffffff50000000200000
+00030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003500000068030000da000000740300000100000000400d4200040dc231000000a4fcffff1a0000004c000000000000000000000000000000ffffffffffffffff800000004c
+004f0043004100540049004f004e005f0042004f0055004e00440049004e0047005f0042004f00580020003d0020003100380006000000080000000700000007000000070000000300000008000000070000000600000007000000080000000700000007000000070000000300000007000000080000000600000007000000080000000700000003000000060000000300000006000000060000000a00000010000000fcffffff
+0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000240000007503000027000000810300000100000000400d4200040dc22000000097fcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcff
+ffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009400000035000000750300007a000000810300000100000000400d4200040dc23100000097fcffff0c0000004c000000000000000000000000000000ffffffffffffffff6400000041004400560049004300450053002000
+3d002000310039000700000007000000070000000300000007000000070000000700000003000000060000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000002400000082030000270000008e0300000100
+000000400d4200040dc2200000008afcffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b400000035000000820300009c0000008e030000
+0100000000400d4200040dc2310000008afcffff110000004c000000000000000000000000000000ffffffffffffffff700000004100440056004900430045005f005400450058005400530020003d00200032003000007a07000000070000000700000003000000070000000700000006000000070000000700000007000000070000000700000003000000060000000300000006000000060000000a00000010000000fcffff
+ff0c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008c029dfe7e0065002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00
+0000080000805600000030000000900200000a0100000e0300006f010000050000000029a0100029f016e030f016e030a0100029a010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001
+000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008c029dfe7e0065003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c000000
+05000080560000002c00000079020000f30000002503000086010000040000000029f016e030f016e030a0100029a010250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000
+000400000000000000004022440000b0c30000fc420000ca42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000008902a0fe7e006500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008d02
+000007010000cd0200006c010000050000008d0207018d026c01cd026c01cd0207018d020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c000000080000805600000030000000cd02000007010000ce0200006c01000005000000cd020701cd026c01ce026c01ce020701cd
+020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000ce02000007010000cf0200006c01000005000000ce020701ce026c01cf026c01cf020701ce020701250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000cf02000007010000d00200006c01000005000000cf020701cf026c01d0026c01d0020701cf020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c0000
+0004000000250000000c000000080000805600000030000000d002000007010000d20200006c01000005000000d0020701d0026c01d2026c01d2020701d0020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000d202000007010000d302
+00006c01000005000000d2020701d2026c01d3026c01d3020701d2020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c000000080000805600000030000000d302000007010000d40200006c01000005000000d3020701d3026c01d4026c01d4020701d3020701250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000d402000007010000d50200006c01000005000000d4020701d4026c01d5026c01d5020701d4020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000d502000007010000d60200006c01000005000000d5020701d5026c01d6026c01d6020701d5020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000
+000c000000080000805600000030000000d602000007010000d70200006c01000005000000d6020701d6026c01d7026c01d7020701d6020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d702000007010000d80200006c0100000500
+0000d7020701d7026c01d8026c01d8020701d7020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d802000007010000d90200006c01000005000000d8020701d8026c01d9026c01d9020701d8020701250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000d902000007010000db0200006c01000005000000d9020701d9026c01db026c01db020701d9020701250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000db02000007010000dd0200006c01000005000000db020701db026c01dd026c01dd020701db020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000
+805600000030000000dd02000007010000de0200006c01000005000000dd020701dd026c01de026c01de020701dd020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c000000080000805600000030000000de02000007010000df0200006c01000005000000de020701de02
+6c01df026c01df020701de020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000df02000007010000e00200006c01000005000000df020701df026c01e0026c01e0020701df020701250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000e002000007010000e20200006c01000005000000e0020701e0026c01e2026c01e2020701e0020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d600
+00000000250000000c00000004000000250000000c000000080000805600000030000000e202000007010000e30200006c01000005000000e2020701e2026c01e3026c01e3020701e2020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000
+00e302000007010000e50200006c01000005000000e3020701e3026c01e5026c01e5020701e3020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000e502000007010000e70200006c01000005000000e5020701e5026c01e7026c01e702
+0701e5020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000e702000007010000e80200006c01000005000000e7020701e7026c01e8026c01e8020701e7020701250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e802000007010000e90200006c01000005000000e8020701e8026c01e9026c01e9020701e8020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d2000000000025000000
+0c00000004000000250000000c000000080000805600000030000000e902000007010000eb0200006c01000005000000e9020701e9026c01eb026c01eb020701e9020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000eb020000070100
+00ed0200006c01000005000000eb020701eb026c01ed026c01ed020701eb020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000ed02000007010000ee0200006c01000005000000ed020701ed026c01ee026c01ee020701ed0207012500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ee02000007010000ef0200006c01000005000000ee020701ee026c01ef026c01ef020701ee020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ef02000007010000f00200006c01000005000000ef020701ef026c01f0026c01f0020701ef020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000
+250000000c000000080000805600000030000000f002000007010000f10200006c01000005000000f0020701f0026c01f1026c01f1020701f0020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000f102000007010000f20200006c0100
+0005000000f1020701f1026c01f2026c01f2020701f1020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000f202000007010000f30200006c01000005000000f2020701f2026c01f3026c01f3020701f2020701250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000f302000007010000f50200006c01000005000000f3020701f3026c01f5026c01f5020701f3020701250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000f502000007010000f60200006c01000005000000f5020701f5026c01f6026c01f6020701f5020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000
+080000805600000030000000f602000007010000f80200006c01000005000000f6020701f6026c01f8026c01f8020701f6020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000f802000007010000f90200006c01000005000000f80207
+01f8026c01f9026c01f9020701f8020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000f902000007010000fa0200006c01000005000000f9020701f9026c01fa026c01fa020701f9020701250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c000000080000805600000030000000fa02000007010000fb0200006c01000005000000fa020701fa026c01fb026c01fb020701fa020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ed
+dec70000000000250000000c00000004000000250000000c000000080000805600000030000000fb02000007010000fd0200006c01000005000000fb020701fb026c01fd026c01fd020701fb020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000
+30000000fd02000007010000fe0200006c01000005000000fd020701fd026c01fe026c01fe020701fd020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000fe02000007010000ff0200006c01000005000000fe020701fe026c01ff026c
+01ff020701fe020701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000ff02000007010000010300006c01000005000000ff020701ff026c0101036c0101030701ff020701250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000000103000007010000020300006c010000050000000103070101036c0102036c010203070101030701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc4000000000025
+0000000c00000004000000250000000c0000000800008056000000300000000203000007010000030300006c010000050000000203070102036c0103036c010303070102030701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000003030000
+07010000040300006c010000050000000303070103036c0104036c010403070103030701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000000403000007010000050300006c010000050000000403070104036c0105036c0105030701040307
+01250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c0000000800008056000000300000000503000007010000060300006c010000050000000503070105036c0106036c010603070105030701250000000c00000008000080250000000c00000000000080280000000c0000000400
+000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000000603000007010000080300006c010000050000000603070106036c0108036c010803070106030701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004
+000000250000000c0000000800008056000000300000000803000007010000090300006c010000050000000803070108036c0109036c010903070108030701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c00000008000080560000003000000009030000070100000a030000
+6c010000050000000903070109036c010a036c010a03070109030701250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000000a030000070100000b0300006c010000050000000a0307010a036c010b036c010b0307010a030701250000000c0000
+0008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008902a0fe7e0065003a0000000c0000000a00000024000000240000000000803d000000000000
+00000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000076020000f0000000220300008301000004000000d028c016b030c016b0307010d0287010250000000c00000007000080250000000c0000000000008024
+0000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000093020000fffefffffe020000f2feffff160000000c00000001000000120000000c0000
+00010000001b000000100000000000000000000000160000000c00000000000000540000009c000000a80200000d010000f0020000190100000100000000400d4200040dc2a4020000fffeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600
+000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a8000000a60200001a010000
+f2020000250100000100000000400d4200040dc2a2020000f2feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005400650078007400440065007400610069006c004c006500760065006c00004c0500000006000000060000000300000007000000060000000300000006000000030000000300000006000000060000000700000006000000030000000a00000010000000fcffffff0c0000
+000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000008902e0fe0703e0fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c00
+0000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000760200001501000022
+0300004301000002000000d028c012b030c012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000540000009202000030010000950200003c0100000100000000400d4200040dc28e020000dcfeffff010000004c000000000000000000000000000000ffffffffffffffff500000002000006f030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b
+00000054000000b4000000a302000030010000070300003c0100000100000000400d4200040dc29f020000dcfeffff110000004c000000000000000000000000000000ffffffffffffffff700000004e004f0054005f0053005000450043004900460049004500440020003d002000300002e007000000080000000700000006000000070000000700000007000000070000000300000006000000030000000700000007000000
+030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000920200003d01000095020000490100000100000000400d4200040dc28e020000cffeffff010000004c000000000000000000000000000000ffff
+ffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000007c000000a30200003d010000ce020000490100000100000000400d4200040dc29f020000cffeffff080000004c000000000000000000000000000000
+ffffffffffffffff5c000000460055004c004c0020003d002000310006000000070000000600000006000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000920200004a010000950200005601
+00000100000000400d4200040dc28e020000c2feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000090000000a30200004a010000ea020000
+560100000100000000400d4200040dc29f020000c2feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000530055004d004d0041005200590020003d0020003200000007000000070000000900000009000000070000000700000007000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000002c000000200000
+00454d462b0a4000c01c00000010000000c0bfc0ff01000000860280fc810021002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008a0200006b0300000b0300008c0300000500
+0000a028b036a028c038b030c038b030b036a028b036250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001
+000000860280fc810021003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000730200005403000022030000a303000004000000
+a028c038b030c038b030b036a028b036250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c0204400405fc40000014300000442bed7e8ffe3f2fc
+ffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000830283fc81002100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008702000068030000ca02000089030000050000008702680387028903ca028903ca02
+680387026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000ca02000068030000ce0200008903000005000000ca026803ca028903ce028903ce026803ca026803250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000ce02000068030000d10200008903000005000000ce026803ce028903d1028903d1026803ce026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd000000000025000000
+0c00000004000000250000000c000000080000805600000030000000d102000068030000d50200008903000005000000d1026803d1028903d5028903d5026803d1026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000d5020000680300
+00d90200008903000005000000d5026803d5028903d9028903d9026803d5026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000d902000068030000dc0200008903000005000000d9026803d9028903dc028903dc026803d90268032500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000dc02000068030000df0200008903000005000000dc026803dc028903df028903df026803dc026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000df02000068030000e30200008903000005000000df026803df028903e3028903e3026803df026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000
+250000000c000000080000805600000030000000e302000068030000e70200008903000005000000e3026803e3028903e7028903e7026803e3026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e702000068030000eb020000890300
+0005000000e7026803e7028903eb028903eb026803e7026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000eb02000068030000ee0200008903000005000000eb026803eb028903ee028903ee026803eb026803250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000ee02000068030000f10200008903000005000000ee026803ee028903f1028903f1026803ee026803250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000f102000068030000f40200008903000005000000f1026803f1028903f4028903f4026803f1026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000
+080000805600000030000000f402000068030000f80200008903000005000000f4026803f4028903f8028903f8026803f4026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f802000068030000fb0200008903000005000000f80268
+03f8028903fb028903fb026803f8026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000fb02000068030000ff0200008903000005000000fb026803fb028903ff028903ff026803fb026803250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ff02000068030000030300008903000005000000ff026803ff0289030303890303036803ff026803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ea
+d9c10000000000250000000c00000004000000250000000c00000008000080560000003000000003030000680300000603000089030000050000000303680303038903060389030603680303036803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000
+3000000006030000680300000803000089030000050000000603680306038903080389030803680306036803250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000
+40180000000c00000001000000830283fc810021003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000070020000510300001f03
+0000a00300000400000070289038803090388030803670288036250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c0000000300000018000000
+0c0000000000000054000000d80000008a02000071030000060300007c0300000100000000400d4200040dc2860200009bfcffff170000004c000000000000000000000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a004c006f00630061006c0069007a006500640053007400720069006e00670000000600000006000000090000000900000006000000060000000300000003000000060000
+0006000000060000000600000003000000030000000500000006000000060000000700000003000000040000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff084001032400
+0000180000000210c0db0200000000400000830289fc040389fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000
+00000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000700200006c0300001f0300009a030000020000007028303880303038250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a000000
+0c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000fc018ffc6100270024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000000002000056030000610200007d03000005000000002060350020d0371026d0371026603500206035250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000fc018ffc610027003a0000000c0000000a000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e90100003f0300007802000094030000040000000020d0371026d0371026603500206035250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080fc4300805bc40000c24200001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcff
+e3f2fcffbed7e8ff0a4000401c000000100000000200000001000000f90192fc61002700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000fd010000530300002f0200007a03000005000000fd015303fd017a032f027a032f025303fd015303250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000002f02000053030000300200007a030000050000002f0253032f027a0330027a03300253032f025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e1000000
+0000250000000c00000004000000250000000c0000000800008056000000300000003002000053030000310200007a030000050000003002530330027a0331027a033102530330025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000031
+02000053030000320200007a030000050000003102530331027a0332027a033202530331025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000003202000053030000330200007a030000050000003202530332027a0333027a0333025303
+32025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000003302000053030000350200007a030000050000003302530333027a0335027a033502530333025303250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000003502000053030000360200007a030000050000003502530335027a0336027a033602530335025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00
+000004000000250000000c0000000800008056000000300000003602000053030000370200007a030000050000003602530336027a0337027a033702530336025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000370200005303000038
+0200007a030000050000003702530337027a0338027a033802530337025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000003802000053030000390200007a030000050000003802530338027a0339027a03390253033802530325000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000039020000530300003b0200007a030000050000003902530339027a033b027a033b02530339025303250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000003b020000530300003c0200007a030000050000003b0253033b027a033c027a033c0253033b025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c000000040000002500
+00000c0000000800008056000000300000003c020000530300003d0200007a030000050000003c0253033c027a033d027a033d0253033c025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000003d020000530300003e0200007a03000005
+0000003d0253033d027a033e027a033e0253033d025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000003e020000530300003f0200007a030000050000003e0253033e027a033f027a033f0253033e025303250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c0000000800008056000000300000003f02000053030000400200007a030000050000003f0253033f027a0340027a03400253033f025303250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000004002000053030000410200007a030000050000004002530340027a0341027a034102530340025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800
+008056000000300000004102000053030000420200007a030000050000004102530341027a0342027a034202530341025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000004202000053030000430200007a030000050000004202530342
+027a0343027a034302530342025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000004302000053030000440200007a030000050000004302530343027a0344027a034402530343025303250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000004402000053030000450200007a030000050000004402530344027a0345027a034502530344025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d2
+0000000000250000000c00000004000000250000000c0000000800008056000000300000004502000053030000460200007a030000050000004502530345027a0346027a034602530345025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000
+00004602000053030000470200007a030000050000004602530346027a0347027a034702530346025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000004702000053030000480200007a030000050000004702530347027a0348027a0348
+02530347025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000004802000053030000490200007a030000050000004802530348027a0349027a034902530348025303250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000049020000530300004a0200007a030000050000004902530349027a034a027a034a02530349025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000
+000c00000004000000250000000c0000000800008056000000300000004a020000530300004b0200007a030000050000004a0253034a027a034b027a034b0253034a025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000004b0200005303
+00004c0200007a030000050000004b0253034b027a034c027a034c0253034b025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000004c020000530300004d0200007a030000050000004c0253034c027a034d027a034d0253034c02530325
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000004d020000530300004e0200007a030000050000004d0253034d027a034e027a034e0253034d025303250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000004e020000530300004f0200007a030000050000004e0253034e027a034f027a034f0253034e025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c000000040000
+00250000000c0000000800008056000000300000004f02000053030000510200007a030000050000004f0253034f027a0351027a03510253034f025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c0000000800008056000000300000005102000053030000520200007a03
+0000050000005102530351027a0352027a035202530351025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000005202000053030000530200007a030000050000005202530352027a0353027a035302530352025303250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000005302000053030000540200007a030000050000005302530353027a0354027a035402530353025303250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000005402000053030000550200007a030000050000005402530354027a0355027a035502530354025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000
+000800008056000000300000005502000053030000560200007a030000050000005502530355027a0356027a035602530355025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000005602000053030000570200007a030000050000005602
+530356027a0357027a035702530356025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000005702000053030000580200007a030000050000005702530357027a0358027a035802530357025303250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000005802000053030000590200007a030000050000005802530358027a0359027a035902530358025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000059020000530300005a0200007a030000050000005902530359027a035a027a035a02530359025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000
+00300000005a020000530300005b0200007a030000050000005a0253035a027a035b027a035b0253035a025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000005b020000530300005d0200007a030000050000005b0253035b027a035d02
+7a035d0253035b025303250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c0000000800008056000000300000005d020000530300005e0200007a030000050000005d0253035d027a035e027a035e0253035d025303250000000c00000008000080250000000c0000000000008028
+0000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000f90192fc610027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000000002000000
+5f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000e60100003c030000750200009103000004000000d01fa037e025a037e0253035d01f3035250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b4000000050200005c03000056020000670300000100000000400d4200040dc201020000b0fcffff110000004c000000000000000000000000
+000000ffffffffffffffff70000000690063006f006e007300650074003a003a00490063006f006e0049006e0066006f00000003000000060000000600000006000000060000000600000003000000030000000300000003000000060000000600000006000000030000000600000003000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000f9019efc5a029efc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000
+0024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000e601000057030000750200008503000002000000d01fe036e025e036250000000c000000070000802500
+00000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000008702f5fd79001b0024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c
+0000000800008056000000300000008b020000fc010000040300001702000005000000b028c01fb0287021403070214030c01fb028c01f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000
+01000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000008702f5fd79001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c0000
+0005000080560000002c00000074020000e50100001b0300002e02000004000000b0287021403070214030c01fb028c01f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400
+0000040000000000000000002144000002c40000f2420000d841bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000008402f8fd79001b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000088
+020000f9010000c602000014020000050000008802f90188021402c6021402c602f9018802f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000c6020000f9010000c70200001402000005000000c602f901c6021402c7021402c702f901
+c602f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000c7020000f9010000c90200001402000005000000c702f901c7021402c9021402c902f901c702f901250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000c9020000f9010000ca0200001402000005000000c902f901c9021402ca021402ca02f901c902f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00
+000004000000250000000c000000080000805600000030000000ca020000f9010000cb0200001402000005000000ca02f901ca021402cb021402cb02f901ca02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c000000080000805600000030000000cb020000f9010000cc
+0200001402000005000000cb02f901cb021402cc021402cc02f901cb02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000cc020000f9010000ce0200001402000005000000cc02f901cc021402ce021402ce02f901cc02f90125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000ce020000f9010000cf0200001402000005000000ce02f901ce021402cf021402cf02f901ce02f901250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000cf020000f9010000d00200001402000005000000cf02f901cf021402d0021402d002f901cf02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c000000040000002500
+00000c000000080000805600000030000000d0020000f9010000d10200001402000005000000d002f901d0021402d1021402d102f901d002f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000d1020000f9010000d30200001402000005
+000000d102f901d1021402d3021402d302f901d102f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d3020000f9010000d50200001402000005000000d302f901d3021402d5021402d502f901d302f901250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c000000080000805600000030000000d5020000f9010000d60200001402000005000000d502f901d5021402d6021402d602f901d502f901250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000d6020000f9010000d80200001402000005000000d602f901d6021402d8021402d802f901d602f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800
+00805600000030000000d8020000f9010000d90200001402000005000000d802f901d8021402d9021402d902f901d802f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000d9020000f9010000da0200001402000005000000d902f901d9
+021402da021402da02f901d902f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c000000080000805600000030000000da020000f9010000db0200001402000005000000da02f901da021402db021402db02f901da02f901250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000db020000f9010000dd0200001402000005000000db02f901db021402dd021402dd02f901db02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d4
+0000000000250000000c00000004000000250000000c000000080000805600000030000000dd020000f9010000df0200001402000005000000dd02f901dd021402df021402df02f901dd02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000
+0000df020000f9010000e00200001402000005000000df02f901df021402e0021402e002f901df02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000e0020000f9010000e20200001402000005000000e002f901e0021402e2021402e2
+02f901e002f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000e2020000f9010000e40200001402000005000000e202f901e2021402e4021402e402f901e202f901250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000e4020000f9010000e50200001402000005000000e402f901e4021402e5021402e502f901e402f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000
+000c00000004000000250000000c000000080000805600000030000000e5020000f9010000e60200001402000005000000e502f901e5021402e6021402e602f901e502f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000e6020000f901
+0000e70200001402000005000000e602f901e6021402e7021402e702f901e602f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e7020000f9010000e80200001402000005000000e702f901e7021402e8021402e802f901e702f90125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000e8020000f9010000e90200001402000005000000e802f901e8021402e9021402e902f901e802f901250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000e9020000f9010000ea0200001402000005000000e902f901e9021402ea021402ea02f901e902f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c000000040000
+00250000000c000000080000805600000030000000ea020000f9010000ec0200001402000005000000ea02f901ea021402ec021402ec02f901ea02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000ec020000f9010000ed0200001402
+000005000000ec02f901ec021402ed021402ed02f901ec02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000ed020000f9010000ef0200001402000005000000ed02f901ed021402ef021402ef02f901ed02f901250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000ef020000f9010000f00200001402000005000000ef02f901ef021402f0021402f002f901ef02f901250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000f0020000f9010000f10200001402000005000000f002f901f0021402f1021402f102f901f002f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c00000004000000250000000c0000
+00080000805600000030000000f1020000f9010000f20200001402000005000000f102f901f1021402f2021402f202f901f102f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f2020000f9010000f30200001402000005000000f202
+f901f2021402f3021402f302f901f202f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f3020000f9010000f40200001402000005000000f302f901f3021402f4021402f402f901f302f901250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c000000080000805600000030000000f4020000f9010000f50200001402000005000000f402f901f4021402f5021402f502f901f402f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000f5020000f9010000f70200001402000005000000f502f901f5021402f7021402f702f901f502f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000
+0030000000f7020000f9010000f80200001402000005000000f702f901f7021402f8021402f802f901f702f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000f8020000f9010000f90200001402000005000000f802f901f8021402f902
+1402f902f901f802f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000f9020000f9010000fb0200001402000005000000f902f901f9021402fb021402fb02f901f902f901250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000fb020000f9010000fc0200001402000005000000fb02f901fb021402fc021402fc02f901fb02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000
+250000000c00000004000000250000000c000000080000805600000030000000fc020000f9010000fe0200001402000005000000fc02f901fc021402fe021402fe02f901fc02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000fe0200
+00f9010000ff0200001402000005000000fe02f901fe021402ff021402ff02f901fe02f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000ff020000f9010000000300001402000005000000ff02f901ff021402000314020003f901ff02
+f901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000000030000f90100000103000014020000050000000003f90100031402010314020103f9010003f901250000000c00000008000080250000000c00000000000080280000000c00000004
+000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000008402f8fd79001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000071020000e2010000180300002b0200000400000080284021103040211030901f8028901f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac0000009d02000002020000ec0200000d0200000100000000400d4200040dc2990200000afeffff100000004c000000000000000000000000000000ffffffffff
+ffffff6c000000690063006f006e007300650074003a003a00490063006f006e00530065007400030000000600000006000000060000000600000006000000030000000300000003000000030000000600000006000000060000000700000006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff
+01000000070209fd4f0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000000b020000be0200005a0200000303000005000000b020e02bb0203030a0253030a025e02bb020e0
+2b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000070209fd4f0045003a0000000c0000000a00
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f4010000a7020000710200001a03000004000000b0203030a0253030a025e02bb020e02b250000000c
+00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000014400003dc400009e4200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f
+0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000004020cfd4f004500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000008020000bb0200003102000000030000050000000802bb0208020003310200033102bb020802bb02250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000031020000bb0200003202000000030000050000003102bb0231020003320200033202bb023102bb02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000032020000bb0200003302000000030000050000003202bb0232020003330200033302bb023202bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056
+0000003000000033020000bb0200003402000000030000050000003302bb0233020003340200033402bb023302bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c00000008000080560000003000000034020000bb0200003602000000030000050000003402bb0234020003
+360200033602bb023402bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000036020000bb0200003702000000030000050000003602bb0236020003370200033702bb023602bb02250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000037020000bb0200003802000000030000050000003702bb0237020003380200033802bb023702bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb000000
+0000250000000c00000004000000250000000c00000008000080560000003000000038020000bb0200003902000000030000050000003802bb0238020003390200033902bb023802bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000039
+020000bb0200003a02000000030000050000003902bb02390200033a0200033a02bb023902bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000003a020000bb0200003b02000000030000050000003a02bb023a0200033b0200033b02bb02
+3a02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000003b020000bb0200003c02000000030000050000003b02bb023b0200033c0200033c02bb023b02bb02250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000003c020000bb0200003d02000000030000050000003c02bb023c0200033d0200033d02bb023c02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00
+000004000000250000000c0000000800008056000000300000003d020000bb0200003e02000000030000050000003d02bb023d0200033e0200033e02bb023d02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000003e020000bb0200003f
+02000000030000050000003e02bb023e0200033f0200033f02bb023e02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000003f020000bb0200004002000000030000050000003f02bb023f020003400200034002bb023f02bb0225000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000040020000bb0200004102000000030000050000004002bb0240020003410200034102bb024002bb02250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000041020000bb0200004202000000030000050000004102bb0241020003420200034202bb024102bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c000000040000002500
+00000c00000008000080560000003000000042020000bb0200004302000000030000050000004202bb0242020003430200034302bb024202bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000043020000bb020000440200000003000005
+0000004302bb0243020003440200034402bb024302bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000044020000bb0200004502000000030000050000004402bb0244020003450200034502bb024402bb02250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c00000008000080560000003000000045020000bb0200004602000000030000050000004502bb0245020003460200034602bb024502bb02250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000046020000bb0200004702000000030000050000004602bb0246020003470200034702bb024602bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800
+0080560000003000000047020000bb0200004802000000030000050000004702bb0247020003480200034802bb024702bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000048020000bb0200004902000000030000050000004802bb0248
+020003490200034902bb024802bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00000008000080560000003000000049020000bb0200004a02000000030000050000004902bb02490200034a0200034a02bb024902bb02250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000004a020000bb0200004b02000000030000050000004a02bb024a0200034b0200034b02bb024a02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc9
+0000000000250000000c00000004000000250000000c0000000800008056000000300000004b020000bb0200004c02000000030000050000004b02bb024b0200034c0200034c02bb024b02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000
+00004c020000bb0200004d02000000030000050000004c02bb024c0200034d0200034d02bb024c02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000004d020000bb0200004e02000000030000050000004d02bb024d0200034e0200034e
+02bb024d02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000004e020000bb0200004f02000000030000050000004e02bb024e0200034f0200034f02bb024e02bb02250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000004f020000bb0200005102000000030000050000004f02bb024f020003510200035102bb024f02bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000
+000c00000004000000250000000c00000008000080560000003000000051020000bb0200005202000000030000050000005102bb0251020003520200035202bb025102bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000052020000bb02
+00005302000000030000050000005202bb0252020003530200035302bb025202bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000000053020000bb0200005402000000030000050000005302bb0253020003540200035402bb025302bb0225
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008000080560000003000000054020000bb0200005502000000030000050000005402bb0254020003550200035502bb025402bb02250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c00000008000080560000003000000055020000bb0200005602000000030000050000005502bb0255020003560200035602bb025502bb02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c000000040000
+00250000000c00000008000080560000003000000056020000bb0200005702000000030000050000005602bb0256020003570200035702bb025602bb02250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000000000ff0b400040180000000c0000000100000004020cfd4f0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008056
+0000002c000000f1010000a40200006e020000170300000400000080200030702500307025b02b8020b02b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000003000000180000000c0000000000000054000000840000001b020000c402000045020000cf0200000100000000400d4200040dc21702000048fdffff090000004c000000000000000000000000000000ffffffffffffffff60000000690063006f006e007300650074003a003a0000000300000006000000060000000600000006000000060000000300000003000000030000000a00000010000000fcff
+ffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a00000000e020000d102000051020000dc0200000100000000400d4200040dc20a0200003bfdffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000490063006f006e004400650066006900
+6e006900740069006f006e0003000000060000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0840010324000000180000000210c0db0200000000400000040229fd530229fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800
+000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f1010000cc0200006e020000fa020000020000008020302e7025302e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003201cffc7000320024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000360100000b030000a60100003d030000050000006013b0306013d033601ad033601ab030
+6013b030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003201cffc700032003a0000000c0000
+000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001f010000f4020000bd01000054030000040000006013d033601ad033601ab0306013b0302500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080974300804bc40000e04200004842bed7e8ffe3f2fcffbed7e8ffe3f2fcff030000000000000000
+00003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002f01d2fc70003200250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000033010000080300006c0100003a030000050000003301080333013a036c013a036c01080333010803250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c0000000800008056000000300000006c010000080300006d0100003a030000050000006c0108036c013a036d013a036d0108036c010803250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000fbf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000006d010000080300006e0100003a030000050000006d0108036d013a036e013a036e0108036d010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800
+008056000000300000006e010000080300006f0100003a030000050000006e0108036e013a036f013a036f0108036e010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000006f01000008030000700100003a030000050000006f0108036f
+013a0370013a03700108036f010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007001000008030000710100003a030000050000007001080370013a0371013a037101080370010803250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000faefdf0000000000250000000c00000004000000250000000c0000000800008056000000300000007101000008030000720100003a030000050000007101080371013a0372013a037201080371010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde
+0000000000250000000c00000004000000250000000c0000000800008056000000300000007201000008030000730100003a030000050000007201080372013a0373013a037301080372010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000
+00007301000008030000740100003a030000050000007301080373013a0374013a037401080373010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007401000008030000750100003a030000050000007401080374013a0375013a0375
+01080374010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007501000008030000760100003a030000050000007501080375013a0376013a037601080375010803250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007601000008030000770100003a030000050000007601080376013a0377013a037701080376010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000
+000c00000004000000250000000c0000000800008056000000300000007701000008030000780100003a030000050000007701080377013a0378013a037801080377010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000780100000803
+0000790100003a030000050000007801080378013a0379013a037901080378010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000079010000080300007a0100003a030000050000007901080379013a037a013a037a0108037901080325
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000007a010000080300007b0100003a030000050000007a0108037a013a037b013a037b0108037a010803250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000007b010000080300007c0100003a030000050000007b0108037b013a037c013a037c0108037b010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c000000040000
+00250000000c0000000800008056000000300000007c010000080300007d0100003a030000050000007c0108037c013a037d013a037d0108037c010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000007d010000080300007e0100003a03
+0000050000007d0108037d013a037e013a037e0108037d010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000007e010000080300007f0100003a030000050000007e0108037e013a037f013a037f0108037e010803250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c0000000800008056000000300000007f01000008030000800100003a030000050000007f0108037f013a0380013a03800108037f010803250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000008001000008030000810100003a030000050000008001080380013a0381013a038101080380010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000
+000800008056000000300000008101000008030000820100003a030000050000008101080381013a0382013a038201080381010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000008201000008030000830100003a030000050000008201
+080382013a0383013a038301080382010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000008301000008030000840100003a030000050000008301080383013a0384013a038401080383010803250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000008401000008030000850100003a030000050000008401080384013a0385013a038501080384010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000008501000008030000860100003a030000050000008501080385013a0386013a038601080385010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000
+00300000008601000008030000870100003a030000050000008601080386013a0387013a038701080386010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000008701000008030000880100003a030000050000008701080387013a038801
+3a038801080387010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000008801000008030000890100003a030000050000008801080388013a0389013a038901080388010803250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c00000008000080560000003000000089010000080300008a0100003a030000050000008901080389013a038a013a038a01080389010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000
+250000000c00000004000000250000000c0000000800008056000000300000008a010000080300008b0100003a030000050000008a0108038a013a038b013a038b0108038a010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000008b0100
+00080300008c0100003a030000050000008b0108038b013a038c013a038c0108038b010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000008c010000080300008d0100003a030000050000008c0108038c013a038d013a038d0108038c01
+0803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000008d010000080300008e0100003a030000050000008d0108038d013a038e013a038e0108038d010803250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000008e010000080300008f0100003a030000050000008e0108038e013a038f013a038f0108038e010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c000000
+04000000250000000c0000000800008056000000300000008f01000008030000900100003a030000050000008f0108038f013a0390013a03900108038f010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000009001000008030000910100
+003a030000050000009001080390013a0391013a039101080390010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000009101000008030000920100003a030000050000009101080391013a0392013a039201080391010803250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000009201000008030000930100003a030000050000009201080392013a0393013a039301080392010803250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000009301000008030000940100003a030000050000009301080393013a0394013a039401080393010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c0000000400000025000000
+0c0000000800008056000000300000009401000008030000950100003a030000050000009401080394013a0395013a039501080394010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c0000000800008056000000300000009501000008030000960100003a030000050000
+009501080395013a0396013a039601080395010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009601000008030000970100003a030000050000009601080396013a0397013a039701080396010803250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009701000008030000980100003a030000050000009701080397013a0398013a039801080397010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000ecdcc50000000000250000000c00000004000000250000000c00000008000080560000003000000098010000080300009a0100003a030000050000009801080398013a039a013a039a01080398010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080
+56000000300000009a010000080300009b0100003a030000050000009a0108039a013a039b013a039b0108039a010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000009b010000080300009c0100003a030000050000009b0108039b013a
+039c013a039c0108039b010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000009c010000080300009d0100003a030000050000009c0108039c013a039d013a039d0108039c010803250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000009d010000080300009e0100003a030000050000009d0108039d013a039e013a039e0108039d010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000
+000000250000000c00000004000000250000000c0000000800008056000000300000009e010000080300009f0100003a030000050000009e0108039e013a039f013a039f0108039e010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000
+9f01000008030000a00100003a030000050000009f0108039f013a03a0013a03a00108039f010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000a001000008030000a10100003a03000005000000a0010803a0013a03a1013a03a10108
+03a0010803250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000a101000008030000a20100003a03000005000000a1010803a1013a03a2013a03a2010803a1010803250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000a201000008030000a30100003a03000005000000a2010803a2013a03a3013a03a3010803a2010803250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08
+400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002f01d2fc700032003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000
+00000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001c010000f1020000ba01000051030000040000003013a033301aa033301a803030138030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000
+00220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000039010000fefcffff96010000f1fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000470100000e0300008f0100001a03000001
+00000000400d4200040dc243010000fefcffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b00000010000000
+00000000050000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d8000000370100001b0300009f010000260300000100000000400d4200040dc234010000f1fcffff170000004c000000000000000000000000000000ffffffffffffffff7c00
+0000740072006100660066006900630069006e0063006900640065006e0074007400610062006c00650073003a003a00000003000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006000000060000000300000003000000060000000600000003000000060000000600000003000000030000000a00000010000000fcffffff0c0000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000009400000049010000280300008d010000330300000100000000400d4200040dc245010000e4fcffff0c0000004c000000000000000000000000000000ffffffffffffffff640000005700610072006e0069006e0067004c006500760065006c0009000000060000
+00040000000600000003000000060000000600000006000000060000000700000006000000030000000a00000010000000fcffffff0c0000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000740256fe98001b002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400
+0000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000780200009b01000010030000b6010000050000008027b0198027601b0031601b0031b0198027b019250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046
+0000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000740256fe98001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000
+00000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000610200008401000027030000cd010000040000008027601b0031601b0031b0198027b019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+00040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000401c440080d3c3000018430000d841bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000710259fe98001b00250000000c00000008000080270000001800
+00000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000007502000098010000c4020000b301000005000000750298017502b301c402b301c402980175029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c
+000000080000805600000030000000c402000098010000c8020000b301000005000000c4029801c402b301c802b301c8029801c4029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000c802000098010000cc020000b301000005000000
+c8029801c802b301cc02b301cc029801c8029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000cc02000098010000d0020000b301000005000000cc029801cc02b301d002b301d0029801cc029801250000000c00000008000080250000
+000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000d002000098010000d3020000b301000005000000d0029801d002b301d302b301d3029801d0029801250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000000000
+0000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000d302000098010000d7020000b301000005000000d3029801d302b301d702b301d7029801d3029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056
+00000030000000d702000098010000db020000b301000005000000d7029801d702b301db02b301db029801d7029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000db02000098010000df020000b301000005000000db029801db02b301
+df02b301df029801db029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000df02000098010000e3020000b301000005000000df029801df02b301e302b301e3029801df029801250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000e302000098010000e6020000b301000005000000e3029801e302b301e602b301e6029801e3029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d1000000
+0000250000000c00000004000000250000000c000000080000805600000030000000e602000098010000ea020000b301000005000000e6029801e602b301ea02b301ea029801e6029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000ea
+02000098010000ed020000b301000005000000ea029801ea02b301ed02b301ed029801ea029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000ed02000098010000f0020000b301000005000000ed029801ed02b301f002b301f0029801
+ed029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000f002000098010000f4020000b301000005000000f0029801f002b301f402b301f4029801f0029801250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000f402000098010000f8020000b301000005000000f4029801f402b301f802b301f8029801f4029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00
+000004000000250000000c000000080000805600000030000000f802000098010000fc020000b301000005000000f8029801f802b301fc02b301fc029801f8029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000fc0200009801000000
+030000b301000005000000fc029801fc02b3010003b30100039801fc029801250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000000300009801000005030000b301000005000000000398010003b3010503b301050398010003980125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000050300009801000009030000b301000005000000050398010503b3010903b3010903980105039801250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000009030000980100000d030000b301000005000000090398010903b3010d03b3010d03980109039801250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000710259fe98001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000000000000000
+00000000000000250000000c00000004000000250000000c00000005000080560000002c0000005e0200008101000024030000ca010000040000005027301bd030301bd030801950278019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000
+ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00040000000c000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d800000080020000a101000002030000ac0100000100000000400d4200040dc27c0200006bfeffff170000004c000000000000000000000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a00520065006300740061006e00670075006c00
+610072004100720065006100000006000000060000000900000009000000060000000600000003000000030000000700000006000000060000000300000006000000060000000600000006000000030000000600000004000000070000000400000006000000060000000a00000010000000fcffffff0c0000000c00000010000000000000000000000046000000f0000000e4000000454d462b08400002340000002800000002
+10c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a00000000400000180251fd150258fd12025cfd0e0263fd0c0267fd08026efd060272fd020279fd00027dfdfc0184fdfa0188fdf6018ffdf40193fdf0019afded019efdea01a5fde701a9fde301b0fde101b4fddd01bbfddb01bffdd701c6fdd501cafdd101d1fdcf01d5fdcb01dcfd
+00010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000002010010000000000000
+0000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000bc000000cd0100002e0200001e020000bd0200000d0000001a00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c021b02b9021402b6021002b2021902a0021502ac020e029a020a029602030294020f02800208028e01f
+4028a01fd027801f9027401f2027101fe026e01e7026b01e3026701ec025501e8025101e1025f01dd024b01d6024901d2024501db023301d7023f01c0023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db00
+0000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000180251fd0c025cfd180251fd150261fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+00100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000000e020000a90200001e020000bd02000002000000040000000200000002000000c021b02b0021002bc021b02b9021b02a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00280000000c00000004000000460000000c01000000010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103b8000000ac0000000210c0db20000000004000003302b9fc3602c0fc3802c4fc3b02cbfc3d02cffc4002d6fc4202dafc4602e1fc4802e5fc4b02ecfc4d02f0fc5002f7fc5202fbfc560202fd570206fd5b02
+0dfd5d0211fd600218fd62021cfd650223fd670227fd6b022efd6d0232fd700239fd72023dfd750244fd770248fd7b024ffd7c0253fd80025afd82025efd850265fd00010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000
+000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000e000000035020000a50200008b0200005503000010000000200000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000070233035a023c034
+c0238034f02310341024d0334024603360242033a024b032c0247032f02400321025c0314025503160251031a025a030b0256030f025f02f1026b02f4026402f6026002f9026902eb026502ef026e02d1027a02d4027302d6027f02c9027802cb027402cf027d02b0028902b4028202b6028e02a9028702a250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000003302b9fc3502c9fc3302b9fc3e02c4fc0001000115400100100000000400000000000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000035020000410300004402000055030000020000000400000002000000020000007023303590233034702330352024803425
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000002001000014010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103cc000000c00000000210c0db2400000000400000c102a4fc
+c002abfcc002affcbf02b6fcbe02bafcbd02c1fcbc02c5fcbb02ccfcbb02d0fcba02d7fcb902dbfcb802e2fcb702e6fcb602edfcb602f1fcb502f8fcb402fcfcb30203fdb20207fdb1020efdb10212fdb00219fdaf021dfdae0224fdad0228fdac022ffdac0233fdab023afdaa023efda90245fda80249fda70250fda70254fda5025bfda5025ffda40266fd000100010001000100010001000100010001000100010001000100
+0100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000f8000000a6020000a4020000c70200006a0300001200
+000024000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000502c8036402c1036402cd035302c6035202c2035102cb034002c7034f02b0034f02bc033e02b5033d02b1033c02ba032b02b6032a02bf031a02bb031902b4031802b0031702b9030602b5030502be02f502ba02f402b302f30
+2bf02e202b802e102b402e002bd02d002b902df02a202de02ae02cd02a702cc02a302cb02ac02bb02a802b902a102b902ad02a802a602a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000
+000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000c102a4fcba02b2fcc102a4fcc402b4fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000
+000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000bc02000056030000ca0200006a03000002000000040000000200000002000000502c8036e02ba035502c8036802c8035250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00
+000004000000460000001002000004020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103bc010000b00100000210c0db5400000000400000b20258fead0251feaa024dfea50246fea20242fe9d023bfe9a0237fe950230fe92022cfe8d0225fe8a0221fe85021afe820216fe7c020ffe79020bfe740204fe710200fe6c
+02f9fd6902f5fd6402eefd6102eafd5c02e3fd5902dffd5402d8fd5102d4fd4c02cdfd4902c9fd4302c2fd4002befd3b02b7fd3802b3fd3302acfd3002a8fd2b02a1fd28029dfd230296fd200292fd1b028bfd180287fd130280fd10027cfd0a0275fd070271fd02026afdff0166fdfa015ffdf7015bfdf20154fdef0150fdea0149fde70145fde2013efddf013afdd90133fdd7012ffdd10128fdce0124fdc9011dfdc60119fd
+c10112fdbe010efdb90107fdb60103fdb101fcfcae01f8fca901f1fca601edfca001e6fc9d01e2fc9801dbfc9501d7fc9001d0fc8d01ccfc8801c5fc8501c1fc8001bafc7d01b6fc7801affc7501abfc7001a4fc6d01a0fc670199fc640195fc610191fc00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100
+01000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000001802000063010000b2010000b802
+00007d0300002a00000054000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+000000020000000200000002000000602b401b102bb01be02af01b902a601c602aa01c102a101de029501d9029c01d6029001e1029701ee028b01e9028201f6028601f0028d01fd0271020802780205027c02000273021d02670218026e0215026202200269022d025d02280254023502580230025f023d02430247024a0244024e024f0235025c02390257023002640234026f022b026c022f026702260274022a027f0211028
+c02150287021c02840210029e0207029b020b0296020202a3020602ae01fd02ab01f102b601f802b301fc02be01e302cb01e702c601ee02c301e202dd01d902db01dd02d501d402e201d802ed01cf02ea01c302f501ca02f201ce02fd01b5030a01b9030501b0031201b4031d01ab031a01af031401a6032101aa032c0191033901950334019c03310190034c01870349018b0344018203510186035c017d03590171036401780
+361017c036b0163037801670375016b037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840
+01032c000000200000000210c0db0400000000400000b20258fead0249feb20258fea5024ffe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c
+000000050000805a00000038000000a7020000b2010000b8020000c501000002000000040000000200000002000000602b401b102b301c602b401b902ad01b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000f8000000ec000000454d462b0840000234000000280000000210c0db
+0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103a4000000980000000210c0db1c0000000040000004020efdfd0109fdf90106fdf20100fdee01fdfce701f7fce301f4fcdc01eefcd801ebfcd101e5fccd01e2fcc601dcfcc201d9fcbb01d3fcb701d0fcb001cafcac01c7fca501c1fca101befc9a01b8fc9601b5fc8f01affc8b01acfc8401a6fc8001a3fc79019dfc75019a
+fc6e0194fc000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00
+0000c800000070010000fc0200000a0200007a0300000e0000001c00000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000008020e02f10203030d01f6030601fc030201ff030b01e5031701e8031001ee031c01d1032501d7032101da032a01c0033601c3033f01b9033b01bc033401b2034001b5034901ab034501ae034e0194035a0
+1970353019d035f01800368018603640189036d017f0369017203720178037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100000000000000
+0210c0db00000000000000ff084001032c000000200000000210c0db040000000040000004020efdfc0101fd04020efdf50108fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000
+000c00000004000000250000000c000000050000805a00000038000000f7010000fc0200000a0200000d030000020000000400000002000000020000008020e02f0020b0308020e02f901f4030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000b8010000ac010000454d462b0840
+000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010364010000580100000210c0db4200000000400000b302f7fdad02f0fda902ecfda302e5fd9f02e1fd9802dafd9502d6fd8e02cffd8a02cbfd8402c4fd8002c0fd7a02b9fd7602b5fd6f02aefd6c02aafd6502a3fd61029ffd5b0298fd570294fd51028dfd4d0289fd460282fd43027efd3c
+0277fd380273fd32026cfd2e0268fd280261fd24025dfd1d0256fd1a0252fd13024bfd0f0247fd090240fd05023cfdff0135fdfb0131fdf4012afdf10126fdea011ffde6011bfde00114fddc0110fdd50109fdd20105fdcb01fefcc701fafcc101f3fcbd01effcb701e8fcb301e4fcac01ddfca901d9fca201d2fc9e01cefc9801c7fc9401c3fc8e01bcfc8a01b8fc8301b1fc8001adfc7901a6fc7501a2fc6f019bfc6b0197fc
+650191fc00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000000201001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c000000050000805a000000ac0100006701000013020000b90200007d03000021000000420000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+00000200000002000000020000000200000002000000020000000200000002000000702b5021102bc021d02a0022702a7022302ab022c0292023902960232029d023e0281024802880244028c024e0273025a02770253027e02500272026902690265026d026f0254027b02580275025f02710253028a024a0287024e02800245029c02390296023002a2023402ac022b02a8022f02a1022602be021a02b7021102c3021502cd0
+20c02c9020002d3020702df01fb02d801f202e501f602ee01ed02ea01e102f401e802f001ec02f901d3030601d7030f01ce030b01c2031501c9031101cd031b01b4032701b8032001bf032d01a3033601aa033201ae033c01950348019903420190035e01840357018b0354018f035d01760369017a03630171037f01650379016b037250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000b302f7fdac02e9fdb302f7fda502effd000100011540010010000000040000
+000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000a702000013020000b90200002502000002000000040000000200000002000000702b5021002b
+3022702b5021902ad021250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000005c01000050010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010308010000fc0000000210c0db30
+00000000400000680268fd610263fd5d025ffd560259fd520256fd4b0250fd47024dfd400247fd3c0243fd35023dfd31023afd2a0234fd260231fd1f022bfd1b0227fd140221fd10021efd090218fd050215fdfe010ffdfa010bfdf30105fdef0102fde801fcfce401f9fcdd01f3fcd901effcd201eafcce01e6fcc701e0fcc301ddfcbc01d7fcb801d4fcb101cefcad01cafca601c4fca201c1fc9b01bbfc9701b8fc9001b2fc
+8c01aefc8501a8fc8101a5fc7a019ffc76019cfc6f0196fc6b0192fc6a0191fc0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000
+000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000400100006c010000a20200006e0200007d0300001800000030000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+000002000000c026402a5026902a1026d02aa025302b6025602bf024c02bb024f02b4024502c0024902c9023f02c5023202de022802da022b02d3022102ef021502e8021b02e4021e02ed020402f9020702f2020d02fe01f1030701f7030301fa030c01e0031801e3031101e9031d01dd031601d2032201d6032b01cc032701cf032001c5033c01b8033501be033101b2034a01a8034601ab034f0191035b01940354019a03500
+19e0359018403650187036e017d036a017003730176037f016a037e016b037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100000000000000
+0210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000680268fd60025afd680268fd590262fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000
+000c00000004000000250000000c000000050000805a000000380000005b020000a20200006e020000b402000002000000040000000200000002000000c026402a4026202bc026402ad025a02a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008000000074000000454d462b0840
+00023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002a02b9fc2b020bfd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002c020000ff020000310200005503000002000000e0223035f0221030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+460000003400000028000000454d462b0c4000c02400000018000000000000ff04000000300201fd2b020bfd260201fd2b02f7fc280000000c0000000100000024000000240000000000803d00000000000000000000803d000000000000000002000000270000001800000001000000000000000000000000000000250000000c00000001000000130000000c00000001000000250000000c00000008000080560000002c0000
+002a020000010300003402000015030000040000004023b030f0221030a022b030f0225031250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006c00000060000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100
+0000000000000210c0db00000000000000ff0d400060200000001400000004000000300201fd2b020bfd260201fd2b02f7fc24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008056
+0000002c00000028020000ff0200003602000017030000040000004023b030f0221030a022b030f0225031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000002000000190000000c000000ffffff005200000070010000040000
+00f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000000083376000000000008337680013376c01c971c8ce3c5772f8a172646e0c5779401300b0000300bc70f3276fd35217d3f00
+7401f8090100333221491900b00175322f76010033324000ac00f80901008ce3c577b389172670374b0b9401300b08000000dca5ba26000000001098bf2348004b0b5c014b0b688f1a24f0374b0b8ce3c5774051e102f70901003853e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000f4a4ba265c014b0b33322149f62b0acc50a6ba26d451e102b052e102cc53e102f571ca7793093353feffffff8c
+e3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c00000000000000540000007c0000001c0200001c03000042020000280300000100000000400d4200040dc218020000f0fcffff080000004c000000000000000000000000000000ffffffffffffffff5c000000690063006f006e0049006e0066006f0003000000050000000600000006000000030000000600000003000000
+060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000280000000c00000004000000460000003401000028010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103e0000000d40000000210c0db2800000000400000640104fd64010bfd63010ffd630116fd62011afd620121fd610125
+fd61012cfd600130fd600137fd5f013bfd5f0142fd5e0146fd5e014dfd5d0151fd5c0158fd5c015cfd5b0163fd5b0167fd5a016efd5a0172fd590179fd59017dfd580184fd580188fd57018ffd570193fd56019afd56019efd5501a5fd5501a9fd5401b0fd5401b4fd5301bbfd5301bffd5201c6fd5201cafd5101d1fd5101d5fd5001dcfd00010001000100010001000100010001000100010001000100010001000100010001
+000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c
+00000004000000250000000c000000050000805a00000010010000520100002e0200006a0100000a0300001400000028000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000080168030801610307016d02f7016602f6016202f6016b02e5016702e5016002e4016c02d
+4016502d3016102d3016a02c2016602c2016f02b1016b02b0016402b0016002bf015902af015502ae015e029e015a029d0153029d015f028c0158028c0154028b015d027b0159027a0152027a015e02690157026901530268015c02580158025701510257015d02460156024601520245015b0235015702340150023250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000640104fd5e0112fd640104fd680113fd00010001154001001000000004000000000000002400
+0000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000060010000f70200006e0100000a03000002000000040000000200000002000000801680302016a02f80168030c0
+16902f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a401000098010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010350010000440100000210c0db3e00000000400000
+520191fc520198fc52019cfc5201a3fc5101a7fc5101aefc5101b2fc5001b9fc5001bdfc5001c4fc5001c8fc4f01cffc4f01d3fc4f01dafc4f01defc4e01e5fc4e01e9fc4e01f0fc4d01f4fc4d01fbfc4d01fffc4d0106fd4c010afd4c0111fd4c0115fd4b011cfd4b0120fd4b0127fd4b012bfd4a0132fd4a0136fd4a013dfd4a0141fd490148fd49014cfd490153fd480157fd48015efd480162fd480169fd47016dfd470174
+fd470178fd46017ffd460183fd46018afd46018efd450195fd450199fd4501a0fd4501a4fd4401abfd4401affd4401b6fd4301bafd4301c1fd4301c5fd4301ccfd4201d0fd4201d7fd4201dbfd4101e0fd0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000115400100100000000400000000000000240000002400
+00000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000094010000430100002a020000580100007d0300001f0000003e00000002000000020000000200000002000000020000000200000002
+0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006015b037601540376015003760159036501550365015e0355015a035401530354015f03440158034401540343015d03330159033301520333015e0322015703220153032
+2015c03110158031101510311015d03010156030001520300015b02f0015702ff014002ff014c02ef014502ef014102ee014a02de014602de014f02ce014b02cd014402cd014002cd014902bc014502bc014e02ac014a02ac014302ab014f029b0148029b0144029a014d028a0149028a0142028a014e02790147027901430279014c02690148026801410268014d02580146025701420257014b02470147024701400246014c0
+2360145023601410235014c022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c00
+0000200000000210c0db0400000000400000520191fc4c01a0fc520191fc5601a0fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005
+0000805a000000380000004e0100006a0300005c0100007d030000020000000400000002000000020000006015b0370015c0366015b037a015c036250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000
+000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000040000000c000000120000000c00000002000000190000000c0000
+00fcf2e300520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c0000000000000000000000000000000000000000083376000000000008337602000000601e60238ce3c577bb89172646e0c5779401
+300b0000300b080000000000ffff4f00fc01190a0100930000000700000048134b0b2f0000005000f801190a0100202d6023a452e10270374b0b601e602308000000d8010000000000001098bf2348004b0b5c014b0bc8991a24f0374b0bab0a2000cc51e102180a0100c453e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000cc6dba26f80f00006801000078c861230000000010ca272448004b0bf4
+014b0b781e602348134b0b8ce3c5002052e10246e0c577c453e102f571ca776476000800000000250000000c00000004000000180000000c0000000000000054000000b4000000210100008a03000070010000960300000100000000400d4200040dc21d01000082fcffff110000004c000000000000000000000000000000ffffffffffffffff70000000630061006c006c006200610063006b0049006e007400650072006600
+610063006500440005000000060000000300000003000000060000000600000005000000040000000300000006000000030000000600000003000000030000000600000005000000060000000a00000010000000fcffffff0c0000000c000000100000000000000000000000280000000c0000000400000046000000b4000000a8000000454d462b0840000234000000280000000210c0db000000008800000000000000000080
+3f02000000000000000210c0db00000000000000ff0840010360000000540000000210c0db0e00000000400000a80213fea10217fe9d0219fe96021dfe92021ffe8b0224fe870226fe80022afe7c022cfe750231fe710233fe6a0237fe660239fe5f023efe00010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00
+000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000007400000061020000cc010000ae020000fb010000070000000e0000000200000002
+0000000200000002000000020000000200000002000000c02a901f502a501f102a301fa029f01e6029d01ef028801eb028601e4028201e0028001e9027b01d5027901de026501da026301d3026e01c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b
+084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000a80213fe990216fea80213fe9e021ffe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000
+003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009b020000eb010000ae020000fb01000002000000040000000200000002000000c02a901fd029601fc02a901f202ad01e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000
+000000008041000000000000000002000000280000000c00000004000000460000007c01000070010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103280100001c0100000210c0db36000000004000002102b9fc1f02c0fc1d02c4fc1a02cbfc1802cffc1502d6fc1402dafc1102e1fc0f02e5fc0c02ecfc0a02f0fc07
+02f7fc0602fbfc030202fd010206fdfe010dfdfd0111fdfa0118fdf8011cfdf50123fdf30127fdf0012efdef0132fdec0139fdea013dfde70144fde50148fde2014ffde10153fdde015afddc015efdd90165fdd80169fdd50170fdd30174fdd0017bfdce017ffdcb0186fdca018afdc70191fdc50195fdc2019cfdc001a0fdbd01a7fdbc01abfdb901b2fdb701b6fdb401bdfdb301c1fdb001c8fdae01ccfdab01d3fda901d7fd
+a601defd00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000000201001000000000000000000000000000000000000000000000
+00250000000c00000004000000250000000c000000050000805a00000064010000a80100002c02000027020000550300001b000000360000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000005022
+30353022c03410228034e0211034c021d03390216033802120335021b0323021703200210032e020c031b0205031a02010317020a030502060302020f02f1020b02fe01f402fc01f002f901f902e701f502e401fe02d301fa02d001f302de01ef02cb01e802c901e402c601ed02b501e902b201e202b001ee02ad01d702ac01d302a901dc029701d8029401d1029201dd028f01c6028e01c2028b01cb027901c7027601c002740
+1cc026101c5026001c1026d01ba025b01b6025801bf024701bb024401b4024201b0024f01a9023d01a5023a01ae022250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f
+020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000002102b9fc1702c5fc2102b9fc2002c9fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000
+00000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000190200004103000027020000550300000200000004000000020000000200000050223035b02170345022303540223034250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600
+00009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000008902d6fe8202d6fe7e02d6fe7702d7fe7302d7fe6c02d8fe6802d8fe6102d8fe00010001000100011540010010000000040000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005000000063020000320100008f02000038010000040000000800000002000000020000000200000002000000d02860136028601320286013b02750137027501300274013
+c026401350264013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000
+000210c0db04000000004000008902d6fe7a02d2fe8902d6fe7a02dcfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00
+0000380000007c0200002e0100008f0200003c01000002000000040000000200000002000000d0286013e027a013d0286013e0270013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db000000008800000000
+0000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db0800000000400000bc00b7fdbe00befdc000c2fdc300c9fdc400cdfdc700d4fdc800d8fdcb00dffd00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000
+0000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000050000000be0000002b020000d100000057020000040000000800000002000000020000000200000002000000000c5025200ce024400ca024700c3024800cf023b00c8023c00c4023f00cd022250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000bc00b7fdbd00c7fdbc00b7fdc600c3fd00010001154001001000
+0000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000be00000043020000cc000000570200000200000004000000020000000200000000
+0c5025100c5024000c5025a00c9024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008c00000080000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103380000002c000000
+0210c0db06000000004000006e02c0fd6702c6fd6302cafd5c02d1fd5802d5fd5102dcfd00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000
+000c000000050000805a00000044000000530200002e020000740200004e02000003000000060000000200000002000000020000002027c024b0266024702620240026b023c025702350250023250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b0840
+00023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006e02c0fd6002c7fd6e02c0fd6702cefd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000620200003c020000740200004e020000020000000400000002000000020000002027c024402650242027c024b026e023250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db080000000040000085023eff7e023dff7a023cff73023aff6f0239ff680237ff640236ff5f0234ff000100010001000115400100100000
+00040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005000000061020000cc0000008b020000da000000040000000800000002000000020000000200
+0000020000009028e00c2028f00ce027000d7027200d3027300dc026500d8026600d3026800d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001
+000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000085023eff780235ff85023eff75023fff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000001001001000000000000000000000000000000000000000
+00000000250000000c00000004000000250000000c000000050000805a0000003800000077020000cb0000008b020000d9000000020000000400000002000000020000009028e00cc027700d9028e00c9027d00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600000094000000880000
+00454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db080000000040000083029fff7c029cff780299ff710295ff6d0293ff66028fff62028dff5f028bff00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000050000000610200006b00000089020000830000000400000008000000020000000200000002000000020000007028d00600280007c02730075027700710279007a026d0076026f0073026100825
+0000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000
+0040000083029fff780293ff83029fff73029cff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000750200
+006b000000890200007b000000020000000400000002000000020000007028d006c02790077028d00670270007250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f0200
+0000000000000210c0db00000000000000ff084001034c000000400000000210c0db0a00000000400000930274fe8c0276fe880277fe81027afe7d027bfe76027efe72027ffe6b0281fe670283fe600285fe0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000005c0000006202000085010000990200009a010000050000000a00000002000000020000000200000002000000020000007029801900296019c02850195028201910281019a027e0186027d018f026b018b026901840267018250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000930274fe830274fe930274
+fe86027efe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000850200008c010000990200009a0100000200
+0000040000000200000002000000702980197028801970298019a028e018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c00000002000000280000000c000000030000004c0000006400000000000000000000001d030000b203000000000000000000001e030000b303000029
+00aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 25\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_F070005D_E086_447a_8524_559CB7C66C50}{\*\bkmkend BKM_F070005D_E086_447a_8524_559CB7C66C50}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentsInterfaceCallback}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw26095\pich30635\picwgoal14790\pichgoal17370\picscalex63\picscaley63\sspicalign0 010000006c000000f8ffffffffffffffed0200006f0300000000000000000000ef650000ab77000020454d460000010044ee0100a9130000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff01009cfce2029cfce202ffff0100ffff0001010101010001154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffffe402000066030000050000001000100010004036202e4036202e100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffc700ecffd400faffd400ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000d40000001400000006000000
+10004001700c4001400d6000400d10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffc700ecffd400faffd400ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffd6000000160000000600000010004001700c4001400d6000400d10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76c022af26086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300bfba22005c859e1026a002a01fdd8c6c6dc59e102188d17
+01b02f0a52c022af266b002801fdd8c6c637bb4000b02f0a5270374b0ba8d56b0008000000000000000000000038c8612348004b0b5c014b0bd022af26f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000c40000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305cbe000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000380100000600000004000000c50000000f0000000100000000400d4200040dc206000000fcffffff270000004c000000000000000000000000000000ffffffffffffffff9c00000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400730049006e007400650072006600610063006500430061006c006c006200610063006b005c6c0600000003000000
+060000000600000006000000030000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000600000003000000060000000300000006000000040000000300000006000000060000000600000007000000060000000300000003000000060000000600000006000000060000001b000000100000000000000000000000160000
+000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf0000e0c0000080400a4000c01c00000010000000c0bfc0ff010000001900c1ffb7002700280000000c0000000100000021000000080000006200
+00000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000c900000043000000050000002001c00120013004900c3004900cc0012001c001250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001900c1ffb70027003a0000000c0000000a00000024000000240000000000803d
+00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff05000000e00000005a0000000400000020013004900c3004900cc0012001c001250000000c00000007000080250000000c0000
+0000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000b041000070c20000374300001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7
+e8ff0a4000401c0000001000000002000000010000001600c4ffb7002700250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f000000190000006e00000040000000050000000f0019000f0040006e0040006e0019000f001900250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c0000000800008056000000300000006e000000190000007300000040000000050000006e0019006e00400073004000730019006e001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df000000000025000000
+0c00000002000000250000000c00000008000080560000003000000073000000190000007800000040000000050000007300190073004000780040007800190073001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c00000008000080560000003000000078000000190000
+007e000000400000000500000078001900780040007e0040007e00190078001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000000c0000000800008056000000300000007e000000190000008300000040000000050000007e0019007e00400083004000830019007e0019002500
+00000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c00000008000080560000003000000083000000190000008800000040000000050000008300190083004000880040008800190083001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027
+000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c00000008000080560000003000000088000000190000008c000000400000000500000088001900880040008c0040008c00190088001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000
+250000000c0000000800008056000000300000008c000000190000009200000040000000050000008c0019008c00400092004000920019008c001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f4e7d30000000000250000000c00000002000000250000000c000000080000805600000030000000920000001900000097000000400000
+00050000009200190092004000970040009700190092001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c00000008000080560000003000000097000000190000009c000000400000000500000097001900970040009c0040009c00190097001900250000000c0000000800
+0080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c0000000800008056000000300000009c00000019000000a000000040000000050000009c0019009c004000a0004000a00019009c001900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002
+00000000000000f1e2ce0000000000250000000c00000002000000250000000c000000080000805600000030000000a000000019000000a30000004000000005000000a0001900a0004000a3004000a3001900a0001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c000000
+080000805600000030000000a300000019000000a80000004000000005000000a3001900a3004000a8004000a8001900a3001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c000000080000805600000030000000a800000019000000ac0000004000000005000000a80019
+00a8004000ac004000ac001900a8001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00000002000000250000000c000000080000805600000030000000ac00000019000000b10000004000000005000000ac001900ac004000b1004000b1001900ac001900250000000c00000008000080250000000c00
+000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c000000080000805600000030000000b100000019000000b70000004000000005000000b1001900b1004000b7004000b7001900b1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ec
+dbc40000000000250000000c00000002000000250000000c000000080000805600000030000000b700000019000000bc0000004000000005000000b7001900b7004000bc004000bc001900b7001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c0000000800008056000000
+30000000bc00000019000000c10000004000000005000000bc001900bc004000c1004000c1001900bc001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030000000c100000019000000c50000004000000005000000c1001900c1004000c50040
+00c5001900c1001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000c500000019000000c60000004000000005000000c5001900c5004000c6004000c6001900c5001900250000000c00000008000080250000000c000000000000802800
+00000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000001600c4ffb70027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000f8ffffff02000000dd0000005700000004000000f0000004600c0004600c9001f0009001250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901e6360ac29c58530bb296190100000000e022af268ce3c577738c172646e0c5779401300b0000300b188d1701e6360ac269002c0109d9c6c6c457e10237bb4000e6360ac2e022af266a002a0109d9c6c68882dd193c5ce10270374b0b0000000008000000000000000000000038c8612348004b0b5c014b0be022af26f0
+374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a248819af2601000000d822af26dc57e10223e0c577e022af263a6c2e7608654501d822af26f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000020000000e5ffffffc4000000d8ffffff16000000
+0c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000500000001f000000850000002b0000000100000000400d4200040dc257000000e5ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00657206000000030000000600000003000000060000
+000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000
+000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc0200000000000100
+00050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e76e022af2608654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b6ea3300c1c58e1026a0026010bd9c6c63058e102188d1701e6360ac3e022af266b002801
+0bd9c6c637bb4000e6360ac370374b0ba8d56b0008000000a05ae1020000000038c8612348004b0b5c014b0bd022af26f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd190ad9c6c68814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000
+000c00000003000000180000000c0000000000000054000000ac000000450000002c00000090000000370000000100000000400d4200040dc24c000000d8ffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e00740073000500000004000000060000000300000003000000030000000600000003000000060000000600
+00000300000006000000060000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001600ccffcd00ccff0001010115
+4001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000
+250000000c00000004000000250000000c000000050000805700000024000000f8ffffff21000000dd0000004f00000002000000f0008003600c8003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c0000
+0010000000c0bfc0ff010000003e00fdfc8201240224000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000037000000e3000000b901000007030000050000007003300e70037030901b7030901b300e7003300e250000000c00000007000080250000000c000000000000802400000024000000000080410000
+00000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003e00fdfc820124023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000020000000cc000000d00100001e0300000400000070037030901b7030901b300e7003300e250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000
+00008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000006c42000040c40000c14300000944bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003b0000
+fd82012402250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00000008000080560000003000000034000000e0000000fd00000004030000050000003400e00034000403fd000403fd00e0003400e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1
+e10000000000250000000c00000004000000250000000c000000080000805600000030000000fd000000e0000000060100000403000005000000fd00e000fd000403060104030601e000fd00e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030
+00000006010000e00000001101000004030000050000000601e00006010403110104031101e0000601e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000011010000e00000001a01000004030000050000001101e000110104031a010403
+1a01e0001101e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000001a010000e00000002301000004030000050000001a01e0001a010403230104032301e0001a01e000250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000023010000e00000002d01000004030000050000002301e000230104032d0104032d01e0002301e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead800000000002500
+00000c00000004000000250000000c0000000800008056000000300000002d010000e00000003701000004030000050000002d01e0002d010403370104033701e0002d01e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000037010000e0
+0000004101000004030000050000003701e00037010403410104034101e0003701e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c00000008000080560000003000000041010000e00000004a01000004030000050000004101e000410104034a0104034a01e0004101e000
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000004a010000e00000005301000004030000050000004a01e0004a010403530104035301e0004a01e000250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000053010000e00000005d01000004030000050000005301e000530104035d0104035d01e0005301e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c0000000400
+0000250000000c0000000800008056000000300000005d010000e00000006501000004030000050000005d01e0005d010403650104036501e0005d01e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000065010000e00000006c01000004
+030000050000006501e000650104036c0104036c01e0006501e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000006c010000e00000007501000004030000050000006c01e0006c010403750104037501e0006c01e000250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000003000000075010000e00000007f01000004030000050000007501e000750104037f0104037f01e0007501e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000007f010000e00000008901000004030000050000007f01e0007f010403890104038901e0007f01e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00
+000008000080560000003000000089010000e00000009501000004030000050000008901e00089010403950104039501e0008901e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c00000008000080560000003000000095010000e0000000a1010000040300000500000095
+01e00095010403a1010403a101e0009501e000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000a1010000e0000000aa0100000403000005000000a101e000a1010403aa010403aa01e000a101e000250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000aa010000e0000000b40100000403000005000000aa01e000aa010403b4010403b401e000aa01e000250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000b4010000e0000000b60100000403000005000000b401e000b4010403b6010403b601e000b401e000250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600
+0000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003b0000fd820124023a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c
+00000004000000250000000c00000005000080560000002c0000001d000000c9000000cd0100001b0300000400000040034030601b4030601b000e4003000e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c000000
+10000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000
+000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000450000001effffffb401000011ffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000db000000e600000010010000f20000000100000000400d4200040dc2e20000001effffff0b00
+00004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00626506000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000007000000040000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000dc000000bc000000f30000002f010000fe0000000100000000400d4200040dc2c300000011ffffff180000004c000000000000000000000000000000ffffffffffffffff7c000000540072006100660066006900630049006e0063006900640065006e00740073
+004c0069007300740065006e00650072000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000600000006000000030000000600000003000000060000000600000006000000040000000a0000001000000007000000040000000c000000100000000000000000000000460000007c00000070000000454d462b084000023800
+00002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000003b0005ffbd0105ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024
+0000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000001d000000e8000000cd01000016010000020000004003f00f601bf00f250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000
+001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000000501000042000000110100000100000000400d4200040dc24000
+0000fffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000080100004a00000005010000df000000110100000100000000400d42
+00040dc251000000fffeffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000470065007400560065007200730069006f006e005200650070006c0079002800560065007200730069006f006e002900200020003a0076006f0069006400746c0800000006000000030000000700000006000000030000000400000003000000060000000600000007000000060000000600000003000000050000
+00030000000700000006000000030000000400000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000
+0000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000001201000042
+0000001e0100000100000000400d4200040dc240000000f2feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000
+0000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100004a0000
+00120100001d0100001e0100000100000000400d4200040dc251000000f2feffff270000004c000000000000000000000000000000ffffffffffffffff9c0000004700650074004c0061006e00670075006100670065005200650070006c007900280053005400520049004e0047002c00200053005400520049004e0047002900200020003a0076006f00690064002e7d08000000060000000300000006000000060000000600
+00000600000006000000060000000600000006000000070000000600000006000000030000000500000003000000070000000700000007000000030000000700000008000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff
+04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000001f010000420000002b0100000100000000400d4200040dc240000000e5feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000e40000004a0000001f010000c80000002b0100000100000000400d4200040dc251000000e5feffff190000004c000000000000000000000000000000ffffffffffffffff800000005300650074004c0061006e00670075006100670065005200650070006c00790028
+002900200020003a0076006f0069006400305c070000000600000003000000060000000600000006000000060000000600000006000000060000000600000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000002c01000042000000380100000100000000400d4200040dc240000000d8feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000004a0000002c010000d2000000380100000100000000400d4200040dc251000000d8feffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000530065007400540069006d00650046006f0072006d00610074005200650070006c00790028002900200020003a007600
+6f006900640000000700000006000000030000000700000003000000090000000600000006000000060000000300000009000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000003901000042000000450100000100000000400d4200040dc240000000cbfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000004a00000039010000cf000000450100000100000000400d4200040dc251000000cbfeffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000530065007400440061007400650046006f0072006d00610074005200650070006c00790028002900200020003a0076006f0069
+00640000000700000006000000030000000700000006000000030000000600000006000000060000000300000009000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000004601000042000000520100000100000000400d4200040dc240000000befeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b
+044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c000000010000
+00190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000004a00000046010000cc000000520100000100000000400d4200040dc251000000befeffff1b0000004c000000000000000000000000000000ffffffffffffffff840000005300650074004c0065006e0067007400680055006e00690074005200650070006c00790028002900200020003a0076006f0069006400
+ba260700000006000000030000000600000006000000060000000600000003000000060000000700000006000000030000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000000040400054000000580000003900000053010000420000005f0100000100000000400d4200040dc240000000b1feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f00000004a00000053010000cc0000005f0100000100000000400d4200040dc251000000b1feffff1b0000004c000000000000000000000000000000ffffffffffffffff8400000053006500740057006500690067006800740055006e00690074005200650070006c00790028002900200020003a0076006f0069006400c57707
+00000006000000030000000900000006000000030000000600000006000000030000000700000006000000030000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000000040400054000000580000003900000060010000420000006c0100000100000000400d4200040dc240000000a4feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100004a00000060010000fb0000006c0100000100000000400d4200040dc251000000a4feffff240000004c000000000000000000000000000000ffffffffffffffff940000004700650074004100700070006c00690063006100620069006c006900740079005200650070006c007900280053005400520049004e00470029002000
+20003a0076006f00690064000800000006000000030000000700000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000007000000060000000600000003000000050000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a00000010000000070000
+00040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000006d01000042000000790100000100000000400d4200040dc24000000097feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010
+00000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000000100004a0000006d010000d3000000790100000100000000400d4200040dc25100000097feffff1e0000004c000000000000000000000000000000ffffffffffffffff880000005300650074004100700070
+006c00690063006100620069006c006900740079005200650070006c00790028002900200020003a0076006f006900640007000000060000000300000007000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000070000000600000006000000030000000500000003000000030000000300000003000000030000000500000006000000030000000600
+00000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000007a01000042000000860100000100000000400d4200040dc2400000008afeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100004a0000007a010000fb000000860100000100000000400d4200040dc2510000008afeffff240000004c000000000000000000000000000000ffffffffffffffff9400
+00005200650073006500720076006500490063006f006e005300650074004900640073005200650070006c007900280049004e005400330032002900200020003a0076006f0069006400070000000600000004000000060000000300000005000000060000000300000005000000060000000600000007000000060000000300000003000000060000000400000007000000060000000600000003000000050000000300000003
+0000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000008701000042000000930100000100000000400d
+4200040dc2400000007dfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f40000004a00000087010000ce0000009301000001
+00000000400d4200040dc2510000007dfeffff1c0000004c000000000000000000000000000000ffffffffffffffff840000004600720065006500490063006f006e005300650074004900640073005200650070006c00790028002900200020003a0076006f0069006400060000000300000006000000060000000300000005000000060000000600000007000000060000000300000003000000060000000400000007000000
+060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000009401000042000000a0010000010000000040
+0d4200040dc24000000070feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000c0100004a00000094010000e5000000a0010000
+0100000000400d4200040dc25100000070feffff200000004c000000000000000000000000000000ffffffffffffffff8c000000470065007400490063006f006e0053006500740073005200650070006c0079002800490063006f006e005300650074002900200020003a0076006f0069006400080000000600000003000000030000000500000006000000060000000700000006000000030000000400000007000000060000
+00060000000300000005000000030000000300000005000000060000000600000007000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058
+00000039000000a101000042000000ad0100000100000000400d4200040dc24000000063feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040
+0054000000200100004a000000a1010000f1000000ad0100000100000000400d4200040dc25100000063feffff230000004c000000000000000000000000000000ffffffffffffffff94000000410064006400490063006f006e0053006500740044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f00690064000000070000000600000006000000030000000500
+00000600000006000000070000000600000003000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000ae01000042000000ba0100000100000000400d4200040dc24000000056feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff040000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000300100004a000000ae01000005010000ba0100000100000000400d4200040dc25100000056feffff260000004c000000000000000000000000000000ffffffffffffffff98000000520065006d006f0076006500490063006f006e0053006500740044006500660069006e006900740069006f006e
+0073005200650070006c00790028002900200020003a0076006f006900640007000000060000000900000006000000050000000600000003000000050000000600000006000000070000000600000003000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000
+050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000
+001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000bb01000042000000c70100000100000000400d4200040dc24000000049feffff020000004c000000000000000000000000000000ffff
+ffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000000060
+0000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000600100004a000000bb01000021010000c70100000100000000400d4200040dc25100000049feffff2e0000004c0000000000000000000000
+00000000ffffffffffffffffa8000000470065007400490063006f006e0044006500660069006e006900740069006f006e0073005200650070006c0079002800490063006f006e0044006500660069006e006900740069006f006e002900200020003a0076006f00690064000800000006000000030000000300000005000000060000000600000007000000060000000300000003000000060000000300000003000000030000
+00060000000600000004000000070000000600000006000000030000000500000003000000030000000500000006000000060000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c0000001000
+0000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c
+00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000c801000042000000d40100000100000000400d4200040dc2400000003cfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff040000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000000c0100004a000000c8010000e1000000d40100000100000000400d4200040dc2510000003cfeffff200000004c000000000000000000000000000000ffffffffffffffff8c000000410064006400490063006f006e0044006500660069006e006900740069006f006e007300520065007000
+6c00790028002900200020003a0076006f006900640007000000060000000600000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c
+000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000
+640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000d501000042000000e10100000100000000400d4200040dc2400000002ffeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000070000
+00040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400
+000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000200100004a000000d5010000f5000000e10100000100000000400d4200040dc2510000002ffeffff230000004c000000000000000000000000000000ffffffffffffffff94000000520065006d006f0076006500490063006f
+006e0044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f0069006400000007000000060000000900000006000000050000000600000003000000050000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000
+030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000
+0060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000e201000042000000ee0100000100000000400d4200040dc24000000022feffff020000004c0000000000
+00000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009
+0000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000002c0100004a000000e201000001010000ee0100000100000000400d4200040dc25100000022feffff25000000
+4c000000000000000000000000000000ffffffffffffffff980000005200650073006500720076006500430061007400650067006f00720079004900640073005200650070006c007900280049004e005400330032002900200020003a0076006f00690064000000070000000600000004000000060000000300000005000000060000000700000006000000030000000600000006000000060000000300000005000000030000
+000600000004000000070000000600000006000000030000000500000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000
+404000540000005800000039000000ef01000042000000fb0100000100000000400d4200040dc24000000015feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000000040400054000000fc0000004a000000ef010000d4000000fb0100000100000000400d4200040dc25100000015feffff1d0000004c000000000000000000000000000000ffffffffffffffff880000004600720065006500430061007400650067006f00720079004900640073005200650070006c00790028002900200020003a0076006f0069006400000006000000030000000600000006000000070000000600
+000003000000060000000600000006000000030000000500000003000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c00000000404000540000005800000039000000fc01000042000000080200000100000000400d4200040dc24000000008feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000000040400054000000900100004a000000fc0100004d010000080200000100000000400d4200040dc25100000008feffff360000004c000000000000000000000000000000ffffffffffffffffb8000000470065007400430061007400650067006f007200790044006500660069006e006900740069006f006e0073005200650070006c0079002800430061007400650067006f007200790044
+006500660069006e006900740069006f006e002900200020003a0076006f0069006400080000000600000003000000070000000600000003000000060000000600000006000000030000000500000007000000060000000300000003000000060000000300000003000000030000000600000006000000040000000700000006000000060000000300000005000000030000000700000006000000030000000600000006000000
+0600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040
+40005400000058000000390000000902000042000000150200000100000000400d4200040dc240000000fbfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000000040400054000000240100004a00000009020000f7000000150200000100000000400d4200040dc251000000fbfdffff240000004c000000000000000000000000000000ffffffffffffffff94000000410064006400430061007400650067006f007200790044006500660069006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f00690064000700000006000000060000
+000700000006000000030000000600000006000000060000000300000005000000070000000600000003000000030000000600000003000000030000000300000006000000060000000400000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c0000001000000000000000000000004600
+00001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04
+000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000001602000042000000220200000100000000400d4200040dc240000000eefdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c0000001000000000000000
+00000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000
+00f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100004a000000160200000b010000220200000100000000400d4200040dc251000000eefdffff270000004c000000000000000000000000000000ffffffffffffffff9c000000520065006d006f0076006500430061007400650067006f0072007900440065006600
+69006e006900740069006f006e0073005200650070006c00790028002900200020003a0076006f0069006400000007000000060000000900000006000000050000000600000007000000060000000300000006000000060000000600000003000000050000000700000006000000030000000300000006000000030000000300000003000000060000000600000004000000070000000600000006000000030000000500000003
+00000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000
+090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000003900000023020000420000002f0200000100000000400d4200040dc240000000e1fdffff020000
+004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000003c0100004a00000023020000070100002f0200000100000000400d4200040dc251000000e1
+fdffff280000004c000000000000000000000000000000ffffffffffffffff9c000000470065007400540072006100660066006900630049006e0063006900640065006e0074004900640073005200650070006c007900280049004e005400330032002900200020003a0076006f006900640008000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000
+0300000006000000060000000600000003000000030000000600000004000000070000000600000006000000030000000500000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c0000000040400054000000580000003900000030020000420000003c0200000100000000400d4200040dc240000000d4fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000002000000180000000c0000000040400054000000680100004a000000300200002a0100003c0200000100000000400d4200040dc251000000d4fdffff2f0000004c000000000000000000000000000000ffffffffffffffffac000000470065007400540072006100660066006900630049006e0063006900640065006e00740049006400730049006e0041007200650061007300520065
+0070006c007900280049004e005400330032002900200020003a0076006f0069006400ba2608000000060000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000400000003000000060000000700000003000000060000000600000004000000070000000600000006000000030000000500
+000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c
+0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000003d0200004200000049020000
+0100000000400d4200040dc240000000c7fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000006c0100004a0000003d0200002501
+0000490200000100000000400d4200040dc251000000c7fdffff300000004c000000000000000000000000000000ffffffffffffffffac000000470065007400540072006100660066006900630049006e0063006900640065006e00740073005200650070006c0079002800540072006100660066006900630049006e0063006900640065006e0074002900200020003a0076006f006900640008000000060000000300000007
+0000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000006000000060000000300000005000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000300000003000000030000000300000005000000
+0600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000004a02000042000000560200000100000000400d4200040dc240000000bafdffff020000004c000000000000000000000000000000ffffffffffff
+ffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000900100004a0000004a02000041010000560200000100000000400d4200040dc251000000bafdffff360000004c000000000000000000000000000000
+ffffffffffffffffb8000000470065007400540072006100660066006900630049006e0063006900640065006e00740073004600690065006c00640073005200650070006c0079002800540072006100660066006900630049006e0063006900640065006e0074002900200020003a0076006f00690064000800000006000000030000000700000003000000060000000300000003000000030000000500000003000000060000
+0005000000030000000600000006000000060000000300000004000000060000000300000006000000030000000600000004000000070000000600000006000000030000000500000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000030000000300000003000000030000000500000006000000030000000600
+00000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000005702000042000000630200000100000000400d4200040dc240000000adfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000f40000004a00000057020000d9000000630200000100000000400d4200040dc251000000adfdffff1c0000004c000000000000000000000000000000ffffffffffffffff8400
+0000470065007400540065007800740073005200650070006c007900280053005400520049004e0047002900200020003a0076006f006900640008000000060000000300000007000000060000000500000003000000040000000700000006000000060000000300000005000000030000000700000007000000070000000300000007000000080000000300000003000000030000000300000005000000060000000300000006
+0000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000006402000042000000700200000100000000400d4200040dc240000000a0fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020
+0006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000680100004a0000006402000025010000700200000100000000400d4200040dc251000000a0fdffff2f0000004c000000000000000000000000000000ffffffffffffffffac
+000000410064006400540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f0069006400ffff0700000006000000060000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000
+0300000004000000070000000300000006000000030000000600000004000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c0000000100
+0000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000003900000071020000420000007d0200000100000000400d4200040dc24000000093fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff0400000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000780100004a00000071020000390100007d0200000100000000400d4200040dc25100000093fdffff320000004c000000000000000000000000000000ffffffffffffffffb0000000520065006d006f0076006500540072006100660066006900630049006e0063006900640065006e0074007300530074
+0061007400750073004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f0069006400070000000600000009000000060000000500000006000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000003000000060000000300000006000000040000000600
+00000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+004040005400000058000000390000007e020000420000008a0200000100000000400d4200040dc24000000086fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c00000000404000540000003c0100004a0000007e0200000e0100008a0200000100000000400d4200040dc25100000086fdffff280000004c000000000000000000000000000000ffffffffffffffff9c000000410064006400460065006500640049006e0066006f0072006d006100740069006f006e004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f006900640007
+0000000600000006000000060000000600000006000000060000000300000006000000030000000600000003000000090000000600000003000000030000000600000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a00000010000000
+07000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000390000008b02000042000000970200000100000000400d4200040dc24000000079fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00
+00001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018
+000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000500100004a0000008b02000022010000970200000100000000400d4200040dc25100000079fdffff2b0000004c000000000000000000000000000000ffffffffffffffffa4000000520065006d006f00
+76006500460065006500640049006e0066006f0072006d006100740069006f006e004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f00690064000000070000000600000009000000060000000500000006000000060000000600000006000000060000000300000006000000030000000600000003000000090000000600000003000000030000000600000006000000060000
+000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00
+0000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000
+4040005400000058000000390000009802000042000000a40200000100000000400d4200040dc2400000006cfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000000040400054000000080100004a00000098020000e2000000a40200000100000000400d4200040dc2510000006cfdffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000004100640064005500700064006100740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f00690064000000070000000600000006000000070000000600
+000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a
+000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00
+250000000c00000002000000180000000c00000000404000540000005800000039000000a502000042000000b10200000100000000400d4200040dc2400000005ffdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000000040400054000000180100004a000000a5020000f6000000b10200000100000000400d4200040dc2510000005ffdffff220000004c000000000000000000000000000000ffffffffffffffff90000000520065006d006f00760065005500700064006100740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076
+006f0069006400070000000600000009000000060000000500000006000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000b202000042000000be0200000100000000400d4200040dc24000000052fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100004a000000b2020000fc000000be0200000100000000400d4200040dc25100000052fdffff240000004c000000000000000000000000000000ffffffffffffffff94000000410064006400410072006500610073005500700064006100
+740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f00690064000700000006000000060000000700000003000000060000000600000004000000070000000600000006000000060000000300000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000
+000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000bf02000042000000cb0200000100000000400d4200040dc24000000045fdffff020000004c0000000000000000
+00000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100004a000000bf02000010010000cb0200000100000000400d4200040dc25100000045fdffff270000004c0000
+00000000000000000000000000ffffffffffffffff9c000000520065006d006f0076006500410072006500610073005500700064006100740065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f0069006400ffff0700000006000000090000000600000005000000060000000700000003000000060000000600000004000000070000000600000006000000060000000300
+000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c00000000404000540000005800000039000000cc02000042000000d80200000100000000400d4200040dc24000000038fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c00000000404000540000002c0200004a000000cc020000b6010000d80200000100000000400d4200040dc25100000038fdffff500000004c000000000000000000000000000000ffffffffffffffffec000000540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073002800540072006100660066006900630049006e0063006900640065006e
+00740046006500650064005300740061007400750073002c002000540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073002900200020003a0076006f00690064000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000007000000030000000600000003000000
+0600000004000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000600000006000000060000000600000007000000030000000600000003000000060000000400000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000
+000600000006000000030000000400000007000000030000000600000003000000060000000400000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039
+000000d902000042000000e50200000100000000400d4200040dc2400000002bfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000
+00380100004a000000d902000009010000e50200000100000000400d4200040dc2510000002bfdffff270000004c000000000000000000000000000000ffffffffffffffff9c000000460065006500640049006e0066006f0072006d006100740069006f006e002800460065006500640049006e0066006f0072006d006100740069006f006e002900200020003a0076006f0069006400c5770600000006000000060000000600
+000003000000060000000300000006000000030000000900000006000000030000000300000006000000060000000300000006000000060000000600000006000000030000000600000003000000060000000300000009000000060000000300000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000e602000042000000f20200000100000000400d4200040dc2400000001efdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000480100004a000000e602000019010000f20200000100000000400d4200040dc2510000001efdffff2a0000004c000000000000000000000000000000ffffffffffffffffa00000005500700064006100740065007300280049004e005400330032
+002c00200049004e005400330032002c00200049004e005400330032002c00200049004e005400330032002900200020003a0076006f0069006400070000000600000006000000060000000300000006000000040000000300000003000000070000000700000006000000060000000300000003000000030000000700000007000000060000000600000003000000030000000300000007000000070000000600000006000000
+0300000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000
+000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000039000000f302000042000000ff02
+00000100000000400d4200040dc24000000011fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000300100004a000000f3020000
+05010000ff0200000100000000400d4200040dc25100000011fdffff260000004c000000000000000000000000000000ffffffffffffffff98000000550070006400610074006500730049006e00410072006500610073002800520065006300740061006e00670075006c006100720041007200650061002900200020003a0076006f006900640007000000060000000600000006000000030000000600000004000000030000
+000600000007000000030000000600000006000000040000000300000007000000060000000500000003000000060000000600000006000000060000000300000006000000030000000700000003000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d
+462b0a4000c01c00000010000000c0bfc0ff01000000dd0159fd940054002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000d6010000570200006a020000ab0200000500000060
+1d7025601db02aa026b02aa0267025601d7025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000
+dd0159fd940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000bf0100004002000081020000c202000004000000601db0
+2aa026b02aa0267025601d7025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000ed43000029c4000014430000a842bed7e8ffe3f2fcffbed7
+e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000da015cfd94005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000d30100005402000020020000a802000005000000d3015402d301a8022002a80220025402d3
+015402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000200200005402000024020000a802000005000000200254022002a8022402a8022402540220025402250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000240200005402000028020000a802000005000000240254022402a8022802a8022802540224025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c0000
+0004000000250000000c00000008000080560000003000000028020000540200002d020000a802000005000000280254022802a8022d02a8022d02540228025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000002d020000540200003102
+0000a8020000050000002d0254022d02a8023102a802310254022d025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000310200005402000035020000a802000005000000310254023102a8023502a8023502540231025402250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000350200005402000038020000a802000005000000350254023502a8023802a8023802540235025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000038020000540200003d020000a802000005000000380254023802a8023d02a8023d02540238025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000
+000c0000000800008056000000300000003d0200005402000041020000a8020000050000003d0254023d02a8024102a802410254023d025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000410200005402000045020000a80200000500
+0000410254024102a8024502a8024502540241025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000450200005402000048020000a802000005000000450254024502a8024802a8024802540245025402250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000048020000540200004b020000a802000005000000480254024802a8024b02a8024b02540248025402250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000004b020000540200004f020000a8020000050000004b0254024b02a8024f02a8024f0254024b025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000
+8056000000300000004f0200005402000052020000a8020000050000004f0254024f02a8025202a802520254024f025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000520200005402000056020000a802000005000000520254025202
+a8025602a8025602540252025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000056020000540200005b020000a802000005000000560254025602a8025b02a8025b02540256025402250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000005b020000540200005f020000a8020000050000005b0254025b02a8025f02a8025f0254025b025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac200
+00000000250000000c00000004000000250000000c0000000800008056000000300000005f0200005402000063020000a8020000050000005f0254025f02a8026302a802630254025f025402250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000
+00630200005402000067020000a802000005000000630254026302a8026702a8026702540263025402250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000401800
+00000c00000001000000da015cfd940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000bc0100003d0200007e020000bf
+02000004000000301d802a7026802a70264025301d4025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+00000000001e00000018000000e4010000aafdffff650200009dfdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c000000f90100005a02000041020000660200000100000000400d4200040dc200020000aafdffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00
+650072006100740069006f006e00bb004b0b060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c
+000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c0000000100000019000000
+0c000000ffffff00250000000c00000003000000180000000c000000000000005400000000010000d60100006702000064020000720200000100000000400d4200040dc2dd0100009dfdffff1e0000004c000000000000000000000000000000ffffffffffffffff880000007300740061007400750073003a003a00540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073
+000600000003000000060000000300000006000000060000000300000003000000050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000700000003000000060000000300000006000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000007c00000070000000454d
+462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000da018bfd6e028bfd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a
+00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000bc010000620200007e0200009002000002000000301d902770269027250000000c00000007000080
+250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000
+0009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000d80100007d020000db01000089020000010000000040
+0d4200040dc2df01000087fdffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008
+00000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000e90100007d020000420200008902000001000000
+00400d4200040dc2f001000087fdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020003d0020003100ba260700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000007000000040000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+0000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000d80100008a020000db010000960200000100000000400d4200040dc2df0100007afdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000c577030000000a0000001000000007000000040000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+10000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c4000000e90100008a02000063020000960200000100000000400d4200040dc2f00100007afdffff140000004c000000000000000000000000000000ffffffffffffffff7400000050004100520054004c0059005f0041005600410049004c00410042004c0045
+0020003d002000320007000000070000000700000007000000060000000700000006000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000054000000d801000097020000db010000a30200000100000000400d4200040dc2df0100006dfdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000e102030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000
+000c0000008b000000540000009c000000e90100009702000034020000a30200000100000000400d4200040dc2f00100006dfdffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000041005600410049004c00410042004c00450020003d00200033002e76070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a00
+00001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000005a02cefd830061002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001
+000000250000000c00000008000080560000003000000053020000d5010000d602000036020000050000003025501d30256023602d6023602d501d3025501d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db000000008600000000000000
+0000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000005a02cefd830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c000000040000
+00250000000c00000005000080560000002c0000003c020000be010000ed0200004d0200000400000030256023602d6023602d501d3025501d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c00
+00000210c0db04000000040000000000000000c0154400c00bc4000003430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000005702d1fd83006100250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056
+0000003000000050020000d20100009402000033020000050000005002d20150023302940233029402d2015002d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000094020000d20100009802000033020000050000009402d20194023302
+980233029802d2019402d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000098020000d20100009b02000033020000050000009802d201980233029b0233029b02d2019802d201250000000c00000008000080250000000c000000000000
+80280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000009b020000d20100009e02000033020000050000009b02d2019b0233029e0233029e02d2019b02d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc000000
+0000250000000c00000004000000250000000c0000000800008056000000300000009e020000d2010000a102000033020000050000009e02d2019e023302a1023302a102d2019e02d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000a1
+020000d2010000a50200003302000005000000a102d201a1023302a5023302a502d201a102d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000a5020000d2010000a80200003302000005000000a502d201a5023302a8023302a802d201
+a502d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a8020000d2010000ac0200003302000005000000a802d201a8023302ac023302ac02d201a802d201250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c000000080000805600000030000000ac020000d2010000b00200003302000005000000ac02d201ac023302b0023302b002d201ac02d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00
+000004000000250000000c000000080000805600000030000000b0020000d2010000b40200003302000005000000b002d201b0023302b4023302b402d201b002d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c000000080000805600000030000000b4020000d2010000b7
+0200003302000005000000b402d201b4023302b7023302b702d201b402d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000b7020000d2010000ba0200003302000005000000b702d201b7023302ba023302ba02d201b702d20125000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ba020000d2010000bd0200003302000005000000ba02d201ba023302bd023302bd02d201ba02d201250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000bd020000d2010000c10200003302000005000000bd02d201bd023302c1023302c102d201bd02d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c000000040000002500
+00000c000000080000805600000030000000c1020000d2010000c40200003302000005000000c102d201c1023302c4023302c402d201c102d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000c4020000d2010000c80200003302000005
+000000c402d201c4023302c8023302c802d201c402d201250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000c8020000d2010000cc0200003302000005000000c802d201c8023302cc023302cc02d201c802d201250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000cc020000d2010000cf0200003302000005000000cc02d201cc023302cf023302cf02d201cc02d201250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000cf020000d2010000d30200003302000005000000cf02d201cf023302d3023302d302d201cf02d201250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000
+000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000005702d1fd830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c00000005000080560000002c00000039020000bb010000ea0200004a0200000400000000253023302d3023302d201d0025201d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff46000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff040000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000610200002cfeffffd10200001ffeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009c0000006e020000d8010000b6020000e40100000100000000400d4200040dc2750200002cfe
+ffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb00e102060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000007
+000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c00000080020000e5010000a4020000f00100000100000000400d4200040dc2870200001ffeffff080000004c000000000000000000000000000000ffffffffffffffff5c0000007300740061007400750073003a003a
+0006000000030000000600000003000000060000000600000003000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e400000054020000f2010000d0020000fd0100000100000000400d4200040dc25b02000012feffff190000004c
+000000000000000000000000000000ffffffffffffffff80000000540072006100660066006900630049006e0063006900640065006e00740046006500650064005300740061007400750073002e7605000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006000000060000000300000006000000060000000600000006000000070000000300000006000000
+0300000006000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000570200feda0200fe00010101154001001000000004000000000000
+002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c000000040000002500
+00000c00000005000080570000002400000039020000ed010000ea0200001b0200000200000000254020302d4020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000550200000802000058020000140200000100000000400d4200040dc25c020000fcfdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000ffff030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000
+00000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c00
+0000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000006602000008020000bf020000140200000100000000400d4200040dc26d020000fcfdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c00450020003d002000310000000700000007000000070000000700000007000000030000000600000007
+000000070000000600000007000000030000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054000000550200001502000058020000210200000100000000400d4200040dc25c020000effdffff010000004c0000
+00000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900
+00001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000006602000015020000b8020000210200000100000000400d4200040dc26d020000effdffff0d0000004c
+000000000000000000000000000000ffffffffffffffff6800000043004f004e004e004500430054004500440020003d00200032000b0f070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b00000054000000540000005502000022020000580200002e0200000100000000400d4200040dc25c020000e2fdffff010000004c000000000000000000000000000000ffffffffffffffff500000002000e102030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c0000000000
+00000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ff
+ffff00250000000c00000002000000180000000c0000008b00000054000000ac0000006602000022020000c90200002e0200000100000000400d4200040dc26d020000e2fdffff100000004c000000000000000000000000000000ffffffffffffffff6c00000044004900530043004f004e004e004500430054004500440020003d00200033000700000003000000070000000700000008000000070000000700000007000000
+07000000070000000700000007000000030000000600000003000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000f101acfce90064002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000000080
+3d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ea010000f4020000d30200005803000005000000a01e402fa01e8035302d8035302d402fa01e402f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000600000005400
+0000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000f101acfce90064003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010
+00000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000d3010000dd020000ea0200006f03000004000000a01e8035302d8035302d402fa01e402f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a000000
+0c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000f743004054c4000069430000c842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000ee01affce9006400250000000c00000008000080270000001800000004000000000000
+00fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000e7010000f1020000600200005503000005000000e701f102e7015503600255036002f102e701f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600
+00003000000060020000f10200006602000055030000050000006002f10260025503660255036602f1026002f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000066020000f10200006c02000055030000050000006602f102660255036c
+0255036c02f1026602f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000006c020000f10200007202000055030000050000006c02f1026c025503720255037202f1026c02f102250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000072020000f10200007702000055030000050000007202f10272025503770255037702f1027202f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda00000000
+00250000000c00000004000000250000000c00000008000080560000003000000077020000f10200007e02000055030000050000007702f102770255037e0255037e02f1027702f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000007e02
+0000f10200008302000055030000050000007e02f1027e025503830255038302f1027e02f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000083020000f10200008a02000055030000050000008302f102830255038a0255038a02f10283
+02f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000008a020000f10200009102000055030000050000008a02f1028a025503910255039102f1028a02f102250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000091020000f10200009802000055030000050000009102f10291025503980255039802f1029102f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c0000
+0004000000250000000c00000008000080560000003000000098020000f10200009e02000055030000050000009802f102980255039e0255039e02f1029802f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000009e020000f1020000a302
+000055030000050000009e02f1029e025503a3025503a302f1029e02f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000a3020000f1020000a90200005503000005000000a302f102a3025503a9025503a902f102a302f102250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000a9020000f1020000af0200005503000005000000a902f102a9025503af025503af02f102a902f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000af020000f1020000b50200005503000005000000af02f102af025503b5025503b502f102af02f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000
+000c000000080000805600000030000000b5020000f1020000bd0200005503000005000000b502f102b5025503bd025503bd02f102b502f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000bd020000f1020000c3020000550300000500
+0000bd02f102bd025503c3025503c302f102bd02f102250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000c3020000f1020000c90200005503000005000000c302f102c3025503c9025503c902f102c302f102250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000c9020000f1020000cf0200005503000005000000c902f102c9025503cf025503cf02f102c902f102250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000cf020000f1020000d00200005503000005000000cf02f102cf025503d0025503d002f102cf02f102250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db000000
+0086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000ee01affce90064003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000000000000000000000000000000000002500
+00000c00000004000000250000000c00000005000080560000002c000000d0010000da020000e70200006c03000004000000701e5035002d5035002d102f701e102f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c
+00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000
+120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a800000034020000fa02000083020000050300000100000000400d4200040dc23b0200000afdffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000460065006500640049006e0066006f0072006d006100740069006f006e0000000600000006000000060000
+000600000003000000060000000300000006000000040000000900000006000000030000000300000006000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210
+c0db0200000000400000ee01f8fcd702f8fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010
+0000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000d0010000f5020000e70200002303000002000000701ec030002dc030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000
+220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ec01000010030000f50100001c0300000100000000400d4200040dc2f3010000f4fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a00000010000000070000000400
+00000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064
+000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000fd01000010030000850200001c0300000100000000400d4200040dc204020000f4fcffff190000004c000000000000000000000000000000ffffffffffffffff800000006400610074006100500072006f00760069006400
+650072004e0061006d006500200020003a0053005400520049004e0047000000060000000600000003000000060000000700000003000000060000000500000003000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000007000000040000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff0400
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ec0100001d030000f5010000290300000100000000400d4200040dc2f3010000e7fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc000000fd0100001d0300006f020000290300000100000000400d4200040dc204020000e7fcffff150000004c000000000000000000000000000000ffffffffffffffff78000000700072006f0074006f0063006f006c004e0061006d006500200020003a005300540052
+0049004e00470000000600000003000000060000000300000006000000050000000600000003000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000
+0000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018
+0000000c0000008b0000005400000058000000ec0100002a030000f5010000360300000100000000400d4200040dc2f3010000dafcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b0000005400000014010000fd0100002a030000ba020000360300000100000000400d4200040dc204020000dafcffff210000004c000000000000000000000000000000ffffffffffffffff9000000063006f006d006d0075006e00690063006100740069006f006e004300680061006e006e0065006c004e0061006d006500200020003a0053005400520049004e0047000000050000000600
+0000090000000900000006000000060000000300000005000000060000000300000003000000060000000600000007000000060000000600000006000000060000000600000003000000070000000600000009000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff0400000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ec01000037030000f5010000430300000100000000400d4200040dc2f3010000cdfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff0400
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000030010000fd01000037030000b1020000430300000100000000400d4200040dc204020000cdfcffff260000004c000000000000000000000000000000ffffffffffffffff980000006600650065006400530074006100740075007300200020003a00540072006100660066006900630049
+006e0063006900640065006e0074004600650065006400530074006100740075007300030000000600000006000000060000000700000003000000060000000300000006000000040000000300000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000600000006000000060000000600000007000000
+03000000060000000300000006000000040000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000ec01000044030000f5010000500300000100000000400d4200040dc2f3010000c0fcffff020000004c00000000000000000000000000
+0000ffffffffffffffff500000002b00200006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000068010000fd01000044030000cc020000500300000100000000400d4200040dc204020000c0fcffff2f0000004c00000000000000
+0000000000000000ffffffffffffffffac000000740072006100660066006900630049006e0063006900640065006e0074007300530074006100740075007300200020003a00540072006100660066006900630049006e0063006900640065006e0074007300530074006100740075007300c577030000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000
+00060000000300000004000000070000000300000006000000030000000600000004000000030000000300000003000000070000000300000006000000030000000300000003000000050000000300000006000000050000000300000006000000060000000600000003000000040000000700000003000000060000000300000006000000040000000a0000001000000007000000040000000c00000010000000000000000000
+0000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000e001c2ff5f001b002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000d901000027
+000000380200004200000005000000901d7002901d20048023200480237002901d7002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff
+0b400040180000000c00000001000000e001c2ff5f001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c2010000100000
+004f0200005900000004000000901d20048023200480237002901d7002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080ee4300006cc20000
+be420000d841bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000dd01c5ff5f001b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000d601000024000000070200003f00000005000000d6
+012400d6013f0007023f0007022400d6012400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000000702000024000000080200003f000000050000000702240007023f0008023f000802240007022400250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000000802000024000000090200003f000000050000000802240008023f0009023f000902240008022400250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00fbf0e00000000000250000000c00000004000000250000000c00000008000080560000003000000009020000240000000a0200003f000000050000000902240009023f000a023f000a02240009022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600
+0000300000000a020000240000000b0200003f000000050000000a0224000a023f000b023f000b0224000a022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c0000000800008056000000300000000b020000240000000d0200003f000000050000000b0224000b023f000d
+023f000d0224000b022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000000d020000240000000e0200003f000000050000000d0224000d023f000e023f000e0224000d022400250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f9eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000000e020000240000000f0200003f000000050000000e0224000e023f000f023f000f0224000e022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc00000000
+00250000000c00000004000000250000000c0000000800008056000000300000000f02000024000000100200003f000000050000000f0224000f023f0010023f00100224000f022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000001002
+000024000000110200003f000000050000001002240010023f0011023f001102240010022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000001102000024000000120200003f000000050000001102240011023f0012023f001202240011
+022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000001202000024000000130200003f000000050000001202240012023f0013023f001302240012022400250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f6ead90000000000250000000c00000004000000250000000c0000000800008056000000300000001302000024000000140200003f000000050000001302240013023f0014023f001402240013022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c0000
+0004000000250000000c0000000800008056000000300000001402000024000000150200003f000000050000001402240014023f0015023f001502240014022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000015020000240000001602
+00003f000000050000001502240015023f0016023f001602240015022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000001602000024000000170200003f000000050000001602240016023f0017023f001702240016022400250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000001702000024000000190200003f000000050000001702240017023f0019023f001902240017022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c00000008000080560000003000000019020000240000001a0200003f000000050000001902240019023f001a023f001a02240019022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000
+000c0000000800008056000000300000001a020000240000001b0200003f000000050000001a0224001a023f001b023f001b0224001a022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000001b020000240000001c0200003f0000000500
+00001b0224001b023f001c023f001c0224001b022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000001c020000240000001d0200003f000000050000001c0224001c023f001d023f001d0224001c022400250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000001d020000240000001e0200003f000000050000001d0224001d023f001e023f001e0224001d022400250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000f2e5d00000000000250000000c00000004000000250000000c0000000800008056000000300000001e020000240000001f0200003f000000050000001e0224001e023f001f023f001f0224001e022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c000000080000
+8056000000300000001f02000024000000200200003f000000050000001f0224001f023f0020023f00200224001f022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000002002000024000000210200003f00000005000000200224002002
+3f0021023f002102240020022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000000800008056000000300000002102000024000000220200003f000000050000002102240021023f0022023f002202240021022400250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c0000000800008056000000300000002202000024000000230200003f000000050000002202240022023f0023023f002302240022022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc00
+00000000250000000c00000004000000250000000c0000000800008056000000300000002302000024000000240200003f000000050000002302240023023f0024023f002402240023022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c0000000800008056000000300000
+002402000024000000250200003f000000050000002402240024023f0025023f002502240024022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000002502000024000000270200003f000000050000002502240025023f0027023f002702
+240025022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000002702000024000000280200003f000000050000002702240027023f0028023f002802240027022400250000000c00000008000080250000000c00000000000080280000000c
+0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000002802000024000000290200003f000000050000002802240028023f0029023f002902240028022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec7000000000025000000
+0c00000004000000250000000c00000008000080560000003000000029020000240000002a0200003f000000050000002902240029023f002a023f002a02240029022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000002a020000240000
+002b0200003f000000050000002a0224002a023f002b023f002b0224002a022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000002b020000240000002c0200003f000000050000002b0224002b023f002c023f002c0224002b0224002500
+00000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000002c020000240000002d0200003f000000050000002c0224002c023f002d023f002d0224002c022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027
+000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000002d020000240000002e0200003f000000050000002d0224002d023f002e023f002e0224002d022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000
+250000000c0000000800008056000000300000002e020000240000002f0200003f000000050000002e0224002e023f002f023f002f0224002e022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000000800008056000000300000002f02000024000000300200003f0000
+00050000002f0224002f023f0030023f00300224002f022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000003002000024000000310200003f000000050000003002240030023f0031023f003102240030022400250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c0000000800008056000000300000003102000024000000330200003f000000050000003102240031023f0033023f003302240031022400250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000003302000024000000340200003f000000050000003302240033023f0034023f003402240033022400250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000
+0800008056000000300000003402000024000000350200003f000000050000003402240034023f0035023f003502240034022400250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0b400040180000000c00000001000000dd01c5ff5f001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000bf01
+00000d0000004c0200005600000004000000601df0035023f00350234002601d4002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+03000000180000000c0000000000000054000000a8000000db0100002d00000031020000380000000100000000400d4200040dc2e2010000d7ffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000063006f006d006d006f006e003a003a00560065007200730069006f006e00002706000000060000000900000009000000060000000600000003000000030000000700000006000000040000
+00060000000300000006000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003701c4ff7c001f002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000
+00000000000002000000250000000c00000001000000250000000c0000000800008056000000300000003001000021000000ac01000040000000050000000013100200130004c01a0004c01a100200131002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003701c4ff7c001f003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc00000000000
+0000000000000000250000000c00000004000000250000000c00000005000080560000002c000000190100000a000000c3010000570000000400000000130004c01a0004c01a100200131002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00000046000000840000
+0078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000009a43000064c20000f8420000f841bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000003401c7ff7c001f00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00
+000004000000250000000c0000000800008056000000300000002d0100001e0000006c0100003d000000050000002d011e002d013d006c013d006c011e002d011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fcf2e20000000000250000000c00000004000000250000000c0000000800008056000000300000006c0100001e0000006d
+0100003d000000050000006c011e006c013d006d013d006d011e006c011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c0000000800008056000000300000006d0100001e0000006e0100003d000000050000006d011e006d013d006e013d006e011e006d011e0025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000006e0100001e0000006f0100003d000000050000006e011e006e013d006f013d006f011e006e011e00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c0000000800008056000000300000006f0100001e000000710100003d000000050000006f011e006f013d0071013d0071011e006f011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c000000040000002500
+00000c000000080000805600000030000000710100001e000000720100003d0000000500000071011e0071013d0072013d0072011e0071011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00000004000000250000000c000000080000805600000030000000720100001e000000740100003d00000005
+00000072011e0072013d0074013d0074011e0072011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c000000080000805600000030000000740100001e000000750100003d0000000500000074011e0074013d0075013d0075011e0074011e00250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000750100001e000000760100003d0000000500000075011e0075013d0076013d0076011e0075011e00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f9eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000760100001e000000770100003d0000000500000076011e0076013d0077013d0077011e0076011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800
+00805600000030000000770100001e000000780100003d0000000500000077011e0077013d0078013d0078011e0077011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000780100001e0000007a0100003d0000000500000078011e0078
+013d007a013d007a011e0078011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c0000000800008056000000300000007a0100001e0000007c0100003d000000050000007a011e007a013d007c013d007c011e007a011e00250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c00000004000000250000000c0000000800008056000000300000007c0100001e0000007d0100003d000000050000007c011e007c013d007d013d007d011e007c011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead8
+0000000000250000000c00000004000000250000000c0000000800008056000000300000007d0100001e0000007f0100003d000000050000007d011e007d013d007f013d007f011e007d011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000
+00007f0100001e000000800100003d000000050000007f011e007f013d0080013d0080011e007f011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000800100001e000000810100003d0000000500000080011e0080013d0081013d0081
+011e0080011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d60000000000250000000c00000004000000250000000c000000080000805600000030000000810100001e000000820100003d0000000500000081011e0081013d0082013d0082011e0081011e00250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000820100001e000000840100003d0000000500000082011e0082013d0084013d0084011e0082011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000
+000c00000004000000250000000c000000080000805600000030000000840100001e000000860100003d0000000500000084011e0084013d0086013d0086011e0084011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000860100001e00
+0000870100003d0000000500000086011e0086013d0087013d0087011e0086011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000870100001e000000880100003d0000000500000087011e0087013d0088013d0088011e0087011e0025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000880100001e000000890100003d0000000500000088011e0088013d0089013d0089011e0088011e00250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000890100001e0000008a0100003d0000000500000089011e0089013d008a013d008a011e0089011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c000000040000
+00250000000c0000000800008056000000300000008a0100001e0000008b0100003d000000050000008a011e008a013d008b013d008b011e008a011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c0000000800008056000000300000008b0100001e0000008c0100003d00
+0000050000008b011e008b013d008c013d008c011e008b011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000008c0100001e0000008d0100003d000000050000008c011e008c013d008d013d008d011e008c011e00250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000008d0100001e0000008e0100003d000000050000008d011e008d013d008e013d008e011e008d011e00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000f1e3ce0000000000250000000c00000004000000250000000c0000000800008056000000300000008e0100001e0000008f0100003d000000050000008e011e008e013d008f013d008f011e008e011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c0000
+000800008056000000300000008f0100001e000000900100003d000000050000008f011e008f013d0090013d0090011e008f011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000900100001e000000910100003d000000050000009001
+1e0090013d0091013d0091011e0090011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000910100001e000000930100003d0000000500000091011e0091013d0093013d0093011e0091011e00250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000930100001e000000940100003d0000000500000093011e0093013d0094013d0094011e0093011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+efe0cb0000000000250000000c00000004000000250000000c000000080000805600000030000000940100001e000000950100003d0000000500000094011e0094013d0095013d0095011e0094011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c00000008000080560000
+0030000000950100001e000000960100003d0000000500000095011e0095013d0096013d0096011e0095011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000960100001e000000980100003d0000000500000096011e0096013d009801
+3d0098011e0096011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000980100001e000000990100003d0000000500000098011e0098013d0099013d0099011e0098011e00250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000990100001e0000009b0100003d0000000500000099011e0099013d009b013d009b011e0099011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000
+250000000c00000004000000250000000c0000000800008056000000300000009b0100001e0000009c0100003d000000050000009b011e009b013d009c013d009c011e009b011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecddc60000000000250000000c00000004000000250000000c0000000800008056000000300000009c0100
+001e0000009d0100003d000000050000009c011e009c013d009d013d009d011e009c011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000009d0100001e0000009f0100003d000000050000009d011e009d013d009f013d009f011e009d01
+1e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000009f0100001e000000a00100003d000000050000009f011e009f013d00a0013d00a0011e009f011e00250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000ebdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000a00100001e000000a10100003d00000005000000a0011e00a0013d00a1013d00a1011e00a0011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c000000
+04000000250000000c000000080000805600000030000000a10100001e000000a30100003d00000005000000a1011e00a1013d00a3013d00a3011e00a1011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000a30100001e000000a40100
+003d00000005000000a3011e00a3013d00a4013d00a4011e00a3011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000a40100001e000000a60100003d00000005000000a4011e00a4013d00a6013d00a6011e00a4011e00250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000a60100001e000000a70100003d00000005000000a6011e00a6013d00a7013d00a7011e00a6011e00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000a70100001e000000a80100003d00000005000000a7011e00a7013d00a8013d00a8011e00a7011e00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c0000000400000025000000
+0c000000080000805600000030000000a80100001e000000a90100003d00000005000000a8011e00a8013d00a9013d00a9011e00a8011e00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0
+db00000000000000ff0b400040180000000c000000010000003401c7ff7c001f003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00
+00001601000007000000c00100005400000004000000d012d003901ad003901ae001d012e001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000003000000180000000c0000000000000054000000ac000000440100002700000093010000320000000100000000400d4200040dc24b010000ddffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000690063006f006e007300650074003a003a00490063006f006e00530065007400030000000600000006000000060000000600000006000000030000000300000003000000030000
+000600000006000000060000000700000006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d50047ff59002a002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000000000
+00000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ce0000009300000027010000bd00000005000000e00c3009e00cd00b7012d00b70123009e00c3009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08
+400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d50047ff59002a003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000
+c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000b70000007c0000003e010000d400000004000000e00cd00b7012d00b70123009e00c3009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a0000
+00460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000005243000036c30000b24200002842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d2004aff59002a00250000000c0000000800008027000000180000000400000000000000fcf2e3000000
+0000250000000c00000004000000250000000c000000080000805600000030000000cb00000090000000f9000000ba00000005000000cb009000cb00ba00f900ba00f9009000cb009000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e20000000000250000000c00000004000000250000000c000000080000805600000030000000f9
+00000090000000fa000000ba00000005000000f9009000f900ba00fa00ba00fa009000f9009000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000fa00000090000000fb000000ba00000005000000fa009000fa00ba00fb00ba00fb009000
+fa009000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0e00000000000250000000c00000004000000250000000c000000080000805600000030000000fb00000090000000fc000000ba00000005000000fb009000fb00ba00fc00ba00fc009000fb009000250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000fc00000090000000fd000000ba00000005000000fc009000fc00ba00fd00ba00fd009000fc009000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faefde0000000000250000000c00
+000004000000250000000c000000080000805600000030000000fd00000090000000fe000000ba00000005000000fd009000fd00ba00fe00ba00fe009000fd009000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000fe0000009000000000
+010000ba00000005000000fe009000fe00ba000001ba0000019000fe009000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000000100009000000001010000ba00000005000000000190000001ba000101ba00010190000001900025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000010100009000000002010000ba00000005000000010190000101ba000201ba000201900001019000250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c000000080000805600000030000000020100009000000004010000ba00000005000000020190000201ba000401ba000401900002019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ead90000000000250000000c000000040000002500
+00000c000000080000805600000030000000040100009000000005010000ba00000005000000040190000401ba000501ba000501900004019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030000000050100009000000006010000ba00000005
+000000050190000501ba000601ba000601900005019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000060100009000000007010000ba00000005000000060190000601ba000701ba000701900006019000250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000070100009000000008010000ba00000005000000070190000701ba000801ba000801900007019000250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000080100009000000009010000ba00000005000000080190000801ba000901ba000901900008019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800
+0080560000003000000009010000900000000a010000ba00000005000000090190000901ba000a01ba000a01900009019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000000a010000900000000b010000ba000000050000000a0190000a
+01ba000b01ba000b0190000a019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c0000000800008056000000300000000b010000900000000c010000ba000000050000000b0190000b01ba000c01ba000c0190000b019000250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c0000000800008056000000300000000c010000900000000d010000ba000000050000000c0190000c01ba000d01ba000d0190000c019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d2
+0000000000250000000c00000004000000250000000c0000000800008056000000300000000d010000900000000e010000ba000000050000000d0190000d01ba000e01ba000e0190000d019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000
+00000e010000900000000f010000ba000000050000000e0190000e01ba000f01ba000f0190000e019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000000f0100009000000010010000ba000000050000000f0190000f01ba001001ba0010
+0190000f019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000100100009000000011010000ba00000005000000100190001001ba001101ba001101900010019000250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000110100009000000012010000ba00000005000000110190001101ba001201ba001201900011019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e2cd0000000000250000
+000c00000004000000250000000c000000080000805600000030000000120100009000000013010000ba00000005000000120190001201ba001301ba001301900012019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000130100009000
+000014010000ba00000005000000130190001301ba001401ba001401900013019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c000000080000805600000030000000140100009000000015010000ba00000005000000140190001401ba001501ba00150190001401900025
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000150100009000000017010000ba00000005000000150190001501ba001701ba001701900015019000250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000170100009000000018010000ba00000005000000170190001701ba001801ba001801900017019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec80000000000250000000c000000040000
+00250000000c000000080000805600000030000000180100009000000019010000ba00000005000000180190001801ba001901ba001901900018019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c00000008000080560000003000000019010000900000001a010000ba00
+000005000000190190001901ba001a01ba001a01900019019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000001a010000900000001b010000ba000000050000001a0190001a01ba001b01ba001b0190001a019000250000000c00000008
+000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c0000000800008056000000300000001b010000900000001d010000ba000000050000001b0190001b01ba001d01ba001d0190001b019000250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000
+0400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000001d010000900000001e010000ba000000050000001d0190001d01ba001e01ba001e0190001d019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c0000
+000800008056000000300000001e0100009000000020010000ba000000050000001e0190001e01ba002001ba00200190001e019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c000000080000805600000030000000200100009000000021010000ba000000050000002001
+90002001ba002101ba002101900020019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000210100009000000022010000ba00000005000000210190002101ba002201ba002201900021019000250000000c00000008000080250000000c
+00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000220100009000000023010000ba00000005000000220190002201ba002301ba002301900022019000250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000
+e9d8bf0000000000250000000c00000004000000250000000c000000080000805600000030000000230100009000000024010000ba00000005000000230190002301ba002401ba002401900023019000250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000
+00000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d2004aff59002a003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00
+000004000000250000000c00000005000080560000002c000000b4000000790000003b010000d100000004000000b00ca00b4012a00b40120009b00c0009250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff0400000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000084000000e3000000990000000d010000a40000000100000000400d4200040dc2ea0000006bffffff090000004c000000000000000000000000000000ffffffffffffffff60000000690063006f006e007300650074003a003a000000030000000600000006000000060000000600000006000000030000
+0003000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a0000000d6000000a600000019010000b10000000100000000400d4200040dc2dd0000005effffff0e0000004c000000000000000000000000000000ffffffffffffffff68
+000000490063006f006e0044006500660069006e006900740069006f006e0003000000060000000600000006000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a0000001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000100250ff9b00240021000000
+08000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000000902000090000000a4020000b400000005000000902000099020400b402a400b402a000990200009250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000100250ff9b0024003a0000000c0000000a00000024000000240000000000803d0000
+0000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f201000079000000bb020000cb000000040000009020400b402a400b402a000990200009250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000040034400002dc300001b4300001042bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff
+0a4000401c0000001000000002000000010000000d0253ff9b002400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000060200008d00000057020000b10000000500000006028d000602b1005702b10057028d0006028d00250000000c00000008000080250000000c00000000000080280000000c0000
+000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000570200008d0000005b020000b10000000500000057028d005702b1005b02b1005b028d0057028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00
+000004000000250000000c0000000800008056000000300000005b0200008d0000005f020000b1000000050000005b028d005b02b1005f02b1005f028d005b028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c0000000800008056000000300000005f0200008d00000064
+020000b1000000050000005f028d005f02b1006402b10064028d005f028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000640200008d00000068020000b10000000500000064028d006402b1006802b10068028d0064028d0025000000
+0c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000680200008d0000006c020000b10000000500000068028d006802b1006c02b1006c028d0068028d00250000000c00000008000080250000000c00000000000080280000000c00000004000000270000
+00180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000006c0200008d00000070020000b1000000050000006c028d006c02b1007002b10070028d006c028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c000000040000002500
+00000c000000080000805600000030000000700200008d00000075020000b10000000500000070028d007002b1007502b10075028d0070028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000750200008d00000079020000b100000005
+00000075028d007502b1007902b10079028d0075028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000790200008d0000007c020000b10000000500000079028d007902b1007c02b1007c028d0079028d00250000000c00000008000080
+250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000007c0200008d00000080020000b1000000050000007c028d007c02b1008002b10080028d007c028d00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000800200008d00000083020000b10000000500000080028d008002b1008302b10083028d0080028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800
+00805600000030000000830200008d00000087020000b10000000500000083028d008302b1008702b10087028d0083028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000870200008d0000008b020000b10000000500000087028d0087
+02b1008b02b1008b028d0087028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c0000000800008056000000300000008b0200008d0000008f020000b1000000050000008b028d008b02b1008f02b1008f028d008b028d00250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000008f0200008d00000094020000b1000000050000008f028d008f02b1009402b10094028d008f028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc4
+0000000000250000000c00000004000000250000000c000000080000805600000030000000940200008d00000099020000b10000000500000094028d009402b1009902b10099028d0094028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c20000000000250000000c00000004000000250000000c00000008000080560000003000
+0000990200008d0000009d020000b10000000500000099028d009902b1009d02b1009d028d0099028d00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c0000000800008056000000300000009d0200008d000000a1020000b1000000050000009d028d009d02b100a102b100a1
+028d009d028d00250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000d0253ff9b0024003a0000000c0000000a00000024000000
+240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000ef01000076000000b8020000c8000000040000006020100b102a100b102ad0086020d008250000000c000000070000
+80250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000b8000000270200009600000080020000a10000000100000000
+400d4200040dc22e0200006effffff120000004c000000000000000000000000000000ffffffffffffffff70000000430061007400650067006f007200790044006500660069006e006900740069006f006e000700000006000000030000000600000006000000060000000400000005000000070000000600000003000000030000000600000003000000030000000300000006000000060000000a0000001000000007000000
+040000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000000d025cffa8025cff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000
+000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000ef0100009100
+0000b8020000bf000000020000006020800a102a800a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002f0289fe9300250024000000240000000000803d0000000000
+0000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002802000056010000bb0200007b01000005000000802260158022b017b02bb017b02b601580226015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b
+08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002f0289fe930025003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000021010010000000000000
+00c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000110200003f010000d202000092010000040000008022b017b02bb017b02b601580226015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00
+0000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000000b440000bac30000134300001442bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002c028cfe93002500250000000c0000000800008027000000180000000400000000000000fcf2e30000
+000000250000000c00000004000000250000000c00000008000080560000003000000025020000530100007202000078010000050000002502530125027801720278017202530125025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000
+72020000530100007502000078010000050000007202530172027801750278017502530172025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007502000053010000790200007801000005000000750253017502780179027801790253
+0175025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000079020000530100007d020000780100000500000079025301790278017d0278017d02530179025301250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007d020000530100008002000078010000050000007d0253017d02780180027801800253017d025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c
+00000004000000250000000c00000008000080560000003000000080020000530100008402000078010000050000008002530180027801840278018402530180025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000008402000053010000
+8802000078010000050000008402530184027801880278018802530184025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c00000004000000250000000c00000008000080560000003000000088020000530100008c020000780100000500000088025301880278018c0278018c02530188025301250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000008c020000530100009002000078010000050000008c0253018c02780190027801900253018c025301250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c00000008000080560000003000000090020000530100009502000078010000050000009002530190027801950278019502530190025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c0000000400000025
+0000000c00000008000080560000003000000095020000530100009802000078010000050000009502530195027801980278019802530195025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c00000008000080560000003000000098020000530100009c02000078010000
+0500000098025301980278019c0278019c02530198025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c0000000800008056000000300000009c02000053010000a002000078010000050000009c0253019c027801a0027801a00253019c025301250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000a002000053010000a30200007801000005000000a0025301a0027801a3027801a3025301a0025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000a302000053010000a70200007801000005000000a3025301a3027801a7027801a7025301a3025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008
+0000805600000030000000a702000053010000ac0200007801000005000000a7025301a7027801ac027801ac025301a7025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ac02000053010000b00200007801000005000000ac025301
+ac027801b0027801b0025301ac025301250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000b002000053010000b40200007801000005000000b0025301b0027801b4027801b4025301b0025301250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b402000053010000b80200007801000005000000b4025301b4027801b8027801b8025301b4025301250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002c028cfe930025003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000e0200003c010000cf0200008f0100000400000050228017802b8017802b301550223015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000
+3a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000036020000abfeffffb60200009efeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000550200005901
+000088020000650100000100000000400d4200040dc25c020000abfeffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000
+000000050000000a0000001000000007000000040000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a80000004c0200006601000091020000710100000100000000400d4200040dc2530200009efeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000
+00540072006100660066006900630049006e0063006900640065006e00740000000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000a0000001000000007000000040000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000003602e9fe8a00
+1b002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002f02000000010000b90200001b01000005000000f0220010f022b011902bb011902b0010f0220010250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000003602e9fe8a001b003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000018020000e9000000d00200003201000004000000f022b011902bb011902b0010f0220010250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000c00c4400008ac300000a430000d841bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2
+fcffbed7e8ff0a4000401c0000001000000002000000010000003302ecfe8a001b00250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002c020000fd0000007402000018010000050000002c02fd002c021801740218017402fd002c02fd00250000000c00000008000080250000000c0000000000008028
+0000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000074020000fd0000007802000018010000050000007402fd0074021801780218017802fd007402fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000
+250000000c00000004000000250000000c00000008000080560000003000000078020000fd0000007b02000018010000050000007802fd00780218017b0218017b02fd007802fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000007b0200
+00fd0000007e02000018010000050000007b02fd007b0218017e0218017e02fd007b02fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000007e020000fd0000008202000018010000050000007e02fd007e021801820218018202fd007e02
+fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000082020000fd0000008502000018010000050000008202fd0082021801850218018502fd008202fd00250000000c00000008000080250000000c00000000000080280000000c00000004
+00000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c00000008000080560000003000000085020000fd0000008902000018010000050000008502fd0085021801890218018902fd008502fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e9d60000000000250000000c000000
+04000000250000000c00000008000080560000003000000089020000fd0000008c02000018010000050000008902fd00890218018c0218018c02fd008902fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c0000000800008056000000300000008c020000fd000000900200
+0018010000050000008c02fd008c021801900218019002fd008c02fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c00000008000080560000003000000090020000fd0000009302000018010000050000009002fd0090021801930218019302fd009002fd00250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c00000008000080560000003000000093020000fd0000009702000018010000050000009302fd0093021801970218019702fd009302fd00250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c00000008000080560000003000000097020000fd0000009a02000018010000050000009702fd00970218019a0218019a02fd009702fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c0000000400000025000000
+0c0000000800008056000000300000009a020000fd0000009e02000018010000050000009a02fd009a0218019e0218019e02fd009a02fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000009e020000fd000000a102000018010000050000
+009e02fd009e021801a1021801a102fd009e02fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000a1020000fd000000a40200001801000005000000a102fd00a1021801a4021801a402fd00a102fd00250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000a4020000fd000000a90200001801000005000000a402fd00a4021801a9021801a902fd00a402fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000a9020000fd000000ad0200001801000005000000a902fd00a9021801ad021801ad02fd00a902fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080
+5600000030000000ad020000fd000000b00200001801000005000000ad02fd00ad021801b0021801b002fd00ad02fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000b0020000fd000000b40200001801000005000000b002fd00b00218
+01b4021801b402fd00b002fd00250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b4020000fd000000b60200001801000005000000b402fd00b4021801b6021801b602fd00b402fd00250000000c00000008000080250000000c0000000000
+0080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000003302ecfe8a001b003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000000002
+0000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000015020000e6000000cd0200002f01000004000000c0228011602b8011602bd00fc022d00f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000
+0000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f9ffffff04000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d80000003002000006010000b2020000110100000100000000400d4200040dc237020000fefeffff170000004c000000000000000000
+000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a00520065006300740061006e00670075006c00610072004100720065006100000006000000060000000900000009000000060000000600000003000000030000000700000006000000060000000300000006000000060000000600000006000000030000000600000004000000070000000400000006000000060000000a0000001000000007
+000000040000000c00000010000000000000000000000046000000d0000000c4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001037c000000700000000210c0db1400000000400000280213fd210219fd1d021cfd160222fd120225fd0b022bfd07022ffd000235fdfc0138fdf5013efdf10142fdea0148fde6014bfd
+df0151fddb0155fdd4015bfdd0015efdc90164fdc50167fdbe016efd0001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+00380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000098000000b50100009402000023020000f30200000a00000014000000020000000200000002000000020000000200000002000000020000000200000002000000020000001022102fa021b02e6021802ef020202eb020f02d4020902d0020502d901ff02c501f
+c02ce01e602ca01e202c301ec02bf01d902b801d302b401df02ad01c902a901c602a201c002ae01bd029701b6029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02
+0000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000280213fd190219fd280213fd200221fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000
+000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000010020000e102000023020000f3020000020000000400000002000000020000001022102f2021b02e1022102f9021302e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000
+002001000014010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103cc000000c00000000210c0db24000000004000008f02d0fd8e02c9fd8d02c5fd8c02befd8b02bafd8a02b3fd8902affd8802a8fd8702a4fd86029dfd850299fd840292fd83028efd820287fd810283fd80027cfd7f0278fd7e0271fd7d026dfd7c02
+66fd7b0262fd7a025bfd790257fd780250fd77024cfd760245fd750241fd74023afd730236fd72022ffd71022bfd700224fd6f0220fd6e0219fd6d0215fd6c0213fd0001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038
+00000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000f800000063020000320200008a020000f302000012000000240000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000
+02000000802840237028b0236028f023502860244028a02430281025202850251028c02500280026f0277026e027b026d0272027c0276027b027d027a0271028902780288027c02870273029602770295027e0294027202a3027902a2027d02a1027402b0027802bf026f02be026302cd026a02cc026e02cb026502da026902d9026002e8026402e7026b02e6026f02e5026102f250000000c00000007000080250000000c0000
+0000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000008f02d0fd9102c0fd8f02d0fd8702
+c2fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000007e020000320200008c020000460200000200000004
+000000020000000200000080284023a02840248028402300282024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000b4000000a8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff
+0840010360000000540000000210c0db0e0000000040000034025bfd360254fd380250fd3a0249fd3c0245fd3e023efd40023afd430233fd44022ffd470228fd480224fd4b021dfd4c0219fd4f0213fd000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+00380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000740000002b020000a70200004a020000f3020000070000000e00000002000000020000000200000002000000020000000200000002000000d022902af022002b1023402b3023b02b5023f02b7023602c9023a02cc023102dd023502d0024c02d1024002e4024
+702e5024b02e8024102f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c00000020
+0000000210c0db040000000040000034025bfd3e024ffd34025bfd35024bfd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080
+5a000000380000002b020000a702000039020000bb02000002000000040000000200000002000000d022902a7023502bd022902ae022902b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600000004010000f8000000454d462b0840000234000000280000000210c0db00000000880000
+00000000000000803f02000000000000000210c0db00000000000000ff08400103b0000000a40000000210c0db1e000000004000006002ebfe5902e7fe5502e5fe4e02e0fe4a02defe4302dafe3f02d7fe3802d3fe3402d1fe2d02ccfe2902cafe2202c6fe1e02c3fe1702bffe1302bcfe0c02b8fe0802b6fe0102b1fefd01affef601abfef201a8feeb01a4fee701a2fee0019dfedc019bfed50197fed10194feca0190fec601
+8dfebf0189fe00010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005
+0000805a000000d4000000b6010000170100005b0200007d0100000f0000001e000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000902590112025d011e024f0117024401230246012c023a0128023d01210231013d0223013602280132022a013b021e0137021101400215014c02080145020c0141020e014a01f3015
+601f5015f01e9015b01ec015401e0016001e2016901d7016501d9016e01cd016a01c0017301c4017f01b7017801bb017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e00000000000000000080
+3f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006002ebfe5602dffe6002ebfe5102e7fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000000000
+0000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000048020000170100005b020000270100000200000004000000020000000200000090259011f024501290259011a024d011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046
+000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db180000000040000042028bfe3b0289fe370287fe300285fe2c0283fe250281fe21027ffe1a027dfe16027bfe0f0279fe0b0277fe040274fe000273fef90170fef5016ffeee016cfeea016bfee30168fedf0167fe
+d80164fed40163fecd0160fec9015ffec2015cfe0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000
+000c000000050000805a000000b0000000b9010000770100003d020000aa0100000c00000018000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000b02390174023b0170023d0179022f01750221018e0213018a021501830217018f02090188020b0184020d018d01f0019901f1019201f4019e01e5019701e8019301e9019c01dc019801dd019101d
+001ad01c101a601c401a201c501ab01b801a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff08
+4001032c000000200000000210c0db040000000040000042028bfe360281fe42028bfe32028afe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c0000000400000025000000
+0c000000050000805a0000003800000029020000770100003d0200008501000002000000040000000200000002000000b0239017f0223018b0239017b022a017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000f0000000e4000000454d462b0840000234000000280000000210c0
+db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001039c000000900000000210c0db1a00000000400000470252ff40024cff3c0248ff350241ff31023dff2a0237ff260233ff1f022cff1b0228ff140221ff10021eff090217ff050213fffe010cfffa0108fff30102ffef01fefee801f7fee401f3fedd01ecfed901e9fed201e2fece01defec701d7fec301d3febe01cefe0001
+00010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000bc000000b5
+010000b000000042020000380100000d0000001a000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000024200b9023800b5023c00be022300ca022700c3022d00cf021100d8021800d4021c00dd020300e9020600e2020d00ee01f100f701f800f301fc00fc01e2010801e6010101ed010d01d1011601d8011201db011b01c2012701c6012
+001cd012c01b1013701b6013250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c0000
+00200000000210c0db0400000000400000470252ff400244ff470252ff39024bff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500
+00805a0000003800000030020000b000000042020000c2000000020000000400000002000000020000000024200b9023000c0024200b2023900b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088
+000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db0800000000400000fe0049fffe0042fffe003efffe0037fffe0033fffe002cfffe0028fffe0024ff00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000
+380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000050000000f5000000b9000000f9000000e2000000040000000800000002000000020000000200000002000000700fb00b700f200c700f600c700fd00c700f100d700f800d700fc00d700f000e250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000fe0049ff03013afffe0049fff9003aff000100011540
+010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000f0000000b9000000fe000000cc00000002000000040000000200000002
+000000700fb00bc00fa00c700fb00b200fa00c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000a80000009c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010354000000
+480000000210c0db0c000000004000007702ebfe7702e4fe7702e0fe7702d9fe7702d5fe7702cefe7702cafe7702c3fe7702bffe7702b8fe7702b4fe7602b1fe0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000002010010000000000000
+0000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000680000006d020000170100007202000055010000060000000c0000000200000002000000020000000200000002000000020000000027901100270012002740120027b0120027f012002760130027a01300271014002750140027c01400270015f0263015250000000c00000007000080250000000c0000000000
+0080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000007702ebfe7c02dcfe7702ebfe7202dcfe00
+0100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000006902000017010000770200002a0100000200000004000000
+0200000002000000002790115027801200279011b0268012250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600000004010000f8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001
+03b0000000a40000000210c0db1e000000004000000402c4ff0002bdfffe01b9fff901b2fff701aefff301a7fff001a3ffec019cffea0198ffe50191ffe3018dffdf0186ffdc0182ffd8017bffd50177ffd10170ffcf016cffca0165ffc80161ffc4015affc10156ffbd014fffba014bffb60144ffb40140ffaf0139ffad0135ffa9012effa6012affa20124ff0001000100010001000100010001000100010001000100010001
+0001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000d4000000990100003e000000ff010000e20000000f0000001e
+000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000d01f0004901f7004701fb004201f2005001f6005c01ed005901e1006501e8006301ec006e01d3007c01d7007801de007501d2008101d9008e01cd008a01c4009801c8009301cf009101c300ad01ba00aa01be00a601b500b301b900bf01a000cd01a400c801ab00c
+601af00c201a600df019a00db019000e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001
+032c000000200000000210c0db04000000004000000402c4ff0002b5ff0402c4fff801baff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00
+0000050000805a00000038000000ef0100003e000000ff0100005100000002000000040000000200000002000000d01f0004901ff004d01f0004101fa004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600000004010000f8000000454d462b0840000234000000280000000210c0db00
+00000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103b0000000a40000000210c0db1e00000000400000a80024ffa6002bffa5002fffa30036ffa2003affa00041ff9f0045ff9c004cff9b0050ff990057ff98005bff960062ff950066ff92006dff910071ff8f0078ff8e007cff8c0083ff8b0087ff88008eff870092ff850099ff84009dff8200a4ff8100a8ff7f00afff7d00b3ff
+7b00baff7a00beff7800c3ff00010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000
+000c000000050000805a000000d40000006f0000003f000000a3000000e20000000f0000001e000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000100a000ef009900de009500dc009e00cb009a00c9009300c8009f00b5009800b4009400b2009d00a1009900af008200ae008e009b0087009a00830098008c0087008
+8008500810084008d0071008600700082007e007b006d0077006b0070006a007c00580075005600710054007a0043007600410071004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e00000000
+0000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000a80024ff9f0031ffa80024ffa80034ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000
+0000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000003800000096000000ce000000a3000000e200000002000000040000000200000002000000100a000e8009300d100a000e100a000d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000
+0004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000f9ffffff04000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000
+00000000000000c007337600000000c007337680013376601d971c8ce3c577bb89172646e0c5779401300b0000300bc70f3276303f21e5b600b2000adac6c63f3821e31900b00175322f7601003f38b700b4000adac6c68ce3c5770f89172670374b0b9401300b08000000a458ba260000000038c8612348004b0b5c014b0b301faf26f0374b0b8ce3c577cc51e10209dac6c6c453e102f571ca7793093353feffffff8ce3c577
+f2e0c57746e0c57700000000bc57ba265c014b0b3f3821e3e6360ac31859ba266052e1023c53e1025854e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00000004000000180000000c0000000000000054000000b40000006200000083000000b10000008f0000000100000000400d4200040dc26900000081ffffff110000004c0000000000000000000000000000
+00ffffffffffffffff70000000630061006c006c006200610063006b0049006e007400650072006600610063006500000005000000060000000300000003000000060000000600000005000000040000000300000006000000030000000600000003000000030000000600000005000000060000000a0000001000000007000000040000000c000000100000000000000000000000280000000c0000000400000046000000f800
+0000ec000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103a4000000980000000210c0db1c00000000400000570204fe500204fe4c0204fe450204fe410205fe3a0205fe360205fe2f0205fe2b0206fe240206fe200206fe190206fe150207fe0e0207fe0a0207fe030207feff0108fef80108fef40108feed0108fee9
+0109fee20109fede0109fed70109fed3010afecc010afec8010afec1010afe00010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000c8000000b8010000f801000052020000020200000e0000001c000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000000250020902400
+2050240020e0230020a023f01f3023f01ff022f01f8022f01f4022e01fd021e01f9021e01f2021e01fe020d01f7020d01f3020d01fc01fd01f801fc01f101fc01fd01ec01f601ec01f201eb01fb01db01f701db01f001db01fc01ca01f501ca01f101ca01fa01ba01f250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000570204fe480200fe570204fe48020afe000100011540010010000000040000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000003f020000f80100005202000006020000020000000400000002000000020000000025002010244020002500201024a01f250000000c0000000700008025000000
+0c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000008c00000080000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103380000002c0000000210c0db0600000000400000da01a9fdd301acfdcf01aefdc801b2fdc401b4
+fdbe01b7fd00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000044000000b50100004b020000d50100005d02
+00000300000006000000020000000200000002000000301db025c01c8025801c6025101c2025d01b0025701bd024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02
+0000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000da01a9fdca01abfdda01a9fdcf01b4fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000
+000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000c10100004e020000d50100005d02000002000000040000000200000002000000301db025301c9025301db025801c0025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000460000
+00fc010000f0010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103a80100009c0100000210c0db5000000000400000570207ff500209ff4c020bff45020eff410210ff3a0213ff360215ff2f0218ff2b0219ff24021cff20021eff190221ff150223ff0e0226ff0a0227ff03022affff012cfff8012ffff40131ffed01
+34ffe90136ffe20139ffde013affd7013dffd3013fffcc0142ffc80144ffc10147ffbd0148ffb6014bffb2014dffab0150ffa70152ffa00155ff9c0157ff95015aff91015bff8a015eff860160ff7f0163ff7b0165ff740168ff700169ff69016cff65016eff5e0171ff5a0173ff530176ff4f0178ff48017bff44017cff3d017fff390181ff320184ff2e0186ff270189ff23018aff1c018dff18018fff110192ff0d0194ff06
+0197ff020199fffb009cfff7009dfff000a0ffec00a2ffe500a5ffe100a7ffda00aaffd600abffcf00aeffcb00b0ffc400b3ffc000b5ffb900b8ffb500baffae00bdffaa00beffa300c1ff0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000
+0000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000000200009a0000004100000052020000ff0000002800000050000000020000000200000002000000020000
+000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000025d00f9024b00f5024900fe023600fa023400f3023
+100ff022f00e8022c00e4022b00ed021800e9021600e2021300ee020100e7020e00d3020d00dc01fa00d801f800d101f500dd01e300d601e000d201ee00cb01db00c701da00c001d700cc01c500c501c200c101c000ca01bd00b601bc00bf01a900bb01a700b401a400b001a200b9019f00a5019d00ae018a00aa018900a3018600af017400a8017100a4017f009d016c0099016b00920168009e01560097015300930151009c0
+14e0088014c00810149008d01380086013500820133008b01200087012e0070012b007c011a0075011700710115007a010200760100007f00fd006b00fb006400f8006000f7006900e4006500e2006e00df005a00dd005300da005f00c9005800c6005400c4005d00b1005900bf004200bc004e00aa004700a7004300a6004c0093004250000000c00000007000080250000000c00000000000080240000002400000000008041
+000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000570207ff470208ff570207ff4b0212ff000100011540010010000000040000
+000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000003e020000f000000052020000ff000000020000000400000002000000020000000025d00f0024
+c00f0025d00f4024200f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000980100008c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010344010000380100000210c0db3c
+000000004000000d0277ff060278ff020279fffb017bfff7017cfff0017dffec017effe50180ffe10181ffda0182ffd60183ffcf0185ffcb0186ffc40188ffc00188ffb9018affb5018bffae018dffaa018effa3018fff9f0190ff980192ff940193ff8d0194ff890195ff820197ff7e0198ff770199ff73019aff6c019cff68019dff61019fff5d01a0ff5601a1ff5201a2ff4b01a4ff4701a5ff4001a6ff3c01a7ff3501a9ff
+3101aaff2a01abff2601acff1f01aeff1b01afff1401b1ff1001b1ff0901b3ff0501b4fffe00b6fffa00b7fff300b8ffef00b9ffe800bbffe400bcffdd00bdffd900beffd200c0ffce00c1ffc700c3ff000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000088010000be0000003f000000080200008f0000001e0000003c000000020000000200000002000000020000000200000002000000020000000200
+0000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006020d008f01fc008b01fb008401f9008001f8008901e7008501e6008e01d4008a01d3008301d2008f01c1008801cf007401ce007d01bc007901bc007201ba007e01a9007701a7007301a6007c0
+1950078019400710192007d0181007601800072018f006b017d0067017c0060017b006c016a0065016800610167006a015500660154006f0143006b0142006401400060014f0059013e0055013d005e012b005a012a00530129005f01180058011600540115005d01030059010300520101005e00f0005700fe004300fd004c00ec004800eb004100e9004d00d8004600d7004200d6004b00c4004700c3004000c100425000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000
+000d0277fffd0176ff0d0277ff00027fff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000f40100008300
+00000802000090000000020000000400000002000000020000006020d008601fe0086020d008901f5008250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000c8000000bc000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f0200000000
+0000000210c0db00000000000000ff0840010374000000680000000210c0db1200000000400000e60074ffdf0079ffdb007dffd40083ffd00086ffc9008cffc50090ffbe0095ffba0099ffb3009fffaf00a2ffa800a8ffa400acff9d00b2ff9900b5ff9200bbff8e00beff8900c3ff00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d0000000000000000
+0000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000008c000000800000003f000000e1000000920000000900000012000000020000000200000002000000020000000200000002000000020000000200000002000000f00d00
+09800db008400d7008d00c1008900ce007200c8007e00b4007700bf006300bb006c00a5006800a2006100ac005d0098005600920052009f004b00890047008600420081004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c0000003000
+00000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000e60074ffd7007affe60074ffde0082ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038
+0000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000ce00000080000000e10000009200000002000000040000000200000002000000f00d0009000da008f00d0009700d2008250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c0000000400000046000000d0000000c4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001037c000000700000000210c0db14000000004000003401d7ff2d01d7ff2901d7ff2201d7ff1e01d7ff1701d7ff1301d7ff0c01d7ff0801d7ff0101d7fffd00d7fff600d7fff200d7ffeb00d7
+ffe700d7ffe000d7ffdc00d7ffd500d7ffd100d7ffce00d7ff00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c000000040000002500
+00000c000000050000805a00000098000000c50000002b0000002f0100002f0000000a0000001400000002000000020000000200000002000000020000000200000002000000020000000200000002000000d012d0026012d0022012d002b011d0027011d0020011d002c010d0025010d0021010d002a00fd002600fd002f00ed002b00ed002400ed002000ed002900dd002500dd002e00cd002a00cd002700cd002250000000c
+00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000
+3401d7ff2501d2ff3401d7ff2501dcff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000001c010000260000
+002f0100003400000002000000040000000200000002000000d012d002e0112003d012d002e0118002250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000004600000004010000f8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f020000000000
+00000210c0db00000000000000ff08400103b0000000a40000000210c0db1e000000004000006d01c6ff6c01bfff6b01bbff6901b4ff6801b0ff6601a9ff6501a5ff63019eff62019aff600193ff5f018fff5d0188ff5c0184ff5b017dff5a0179ff580172ff57016eff550167ff540163ff52015cff510158ff4f0151ff4e014dff4c0146ff4b0142ff49013bff480137ff470130ff46012cff440125ff000100010001000100
+01000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000d40000003b010000
+3c00000068010000e10000000f0000001e0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000006016e00350165004401690042016000510164005f015b005e015f005c0156006b015a00690151007801550076015c00750150008401570083015b0081015200900156009e014d009d014100ab014800aa014c00a801430
+0b7014700b5014e00b4014200c2014900c1014d00c0014400df013800dd013f00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006d01c6ff6e01b6ff6d01c6ff6401b9ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000000038000000000000000010010010000000000000000000000000000000000000000000000025
+0000000c00000004000000250000000c000000050000805a000000380000005b0100003c0000006901000050000000020000000400000002000000020000006016e0037016e0046016e003d015b004250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000280000000c0000000200000028000000
+0c000000030000004c000000640000000000000000000000e3020000650300000000000000000000e4020000660300002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b024000000c000000000000000e000000140000000000000010000000140000
+00}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 26\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C6856078_8EE2_49ac_9D20_087621D06741}{\*\bkmkend BKM_C6856078_8EE2_49ac_9D20_087621D06741}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Advice}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_F6FB200C_ACCC_4cbe_AFD9_10758573C868}{\*\bkmkend BKM_F6FB200C_ACCC_4cbe_AFD9_10758573C868}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt AdviceCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_90AB2F16_A3EA_4865_9F6C_6B890C3ADE86}{\*\bkmkend BKM_90AB2F16_A3EA_4865_9F6C_6B890C3ADE86}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BYTE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E2D83696_149A_479c_BEEA_8DFF3ADB323A}{\*\bkmkend BKM_E2D83696_149A_479c_BEEA_8DFF3ADB323A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+freeText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, an empty string indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_88DCDEE7_6608_4662_ACAB_588A48F0F983}{\*\bkmkend BKM_88DCDEE7_6608_4662_ACAB_588A48F0F983}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicability}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Applicability}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_6F4190E5_36F6_4431_AC52_48F8D55A40F3}{\*\bkmkend BKM_6F4190E5_36F6_4431_AC52_48F8D55A40F3}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Applicability}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_1D8CDF64_3410_4bb4_AC7D_B9300717DEA3}{\*\bkmkend BKM_1D8CDF64_3410_4bb4_AC7D_B9300717DEA3}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b vehicleType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt VehicleType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C125021B_25DC_43a4_AD86_5DF5B64893B8}{\*\bkmkend BKM_C125021B_25DC_43a4_AD86_5DF5B64893B8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+vehicleRelatedRestrictions}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt VehicleRelatedRestriction}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9C01B6B8_CF81_4e58_8A31_AADD311ECEFE}{\*\bkmkend BKM_9C01B6B8_CF81_4e58_8A31_AADD311ECEFE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CategoryDefinition}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3AD50F12_49C9_4f70_A1D8_EE0668DDB5A0}{\*\bkmkend BKM_3AD50F12_49C9_4f70_A1D8_EE0668DDB5A0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b localizedNames}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocalizedString}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DCCCC5A6_A14D_4be0_9ADD_3B9E0B269CA1}{\*\bkmkend BKM_DCCCC5A6_A14D_4be0_9ADD_3B9E0B269CA1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+categoryId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_83137B59_A821_4844_A5D4_5DE2A30F31B0}{\*\bkmkend BKM_83137B59_A821_4844_A5D4_5DE2A30F31B0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+icons}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt IconInfo}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_42E08A61_8FA4_4dde_A856_6C022A811982}{\*\bkmkend BKM_42E08A61_8FA4_4dde_A856_6C022A811982}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expression}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_73DE9BC7_044F_42f8_8319_1559F42DEC9C}{\*\bkmkend BKM_73DE9BC7_044F_42f8_8319_1559F42DEC9C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Cause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_2918DA6F_836A_4647_A4C3_357AAFF2B514}{\*\bkmkend BKM_2918DA6F_836A_4647_A4C3_357AAFF2B514}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_640E0F0C_1922_4dfb_8603_E18575208862}{\*\bkmkend BKM_640E0F0C_1922_4dfb_8603_E18575208862}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseDiscriminatedVariant}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3CC7C524_0462_4870_A663_BB21A5E2A68C}{\*\bkmkend BKM_3CC7C524_0462_4870_A663_BB21A5E2A68C}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b causeType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E7B178AC_BE51_424d_A771_D9D9BC64AE71}{\*\bkmkend BKM_E7B178AC_BE51_424d_A771_D9D9BC64AE71}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeUnion}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseUnion}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_683F65C8_3B25_412c_8DB3_7D0572E85715}{\*\bkmkend BKM_683F65C8_3B25_412c_8DB3_7D0572E85715}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_8BC802EB_2A67_4f72_BF54_3D71082AEACF}{\*\bkmkend BKM_8BC802EB_2A67_4f72_BF54_3D71082AEACF}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DIRECT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A5F67B9D_B2FF_451d_B585_12306EBD38C4}{\*\bkmkend BKM_A5F67B9D_B2FF_451d_B585_12306EBD38C4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LINKED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_41CF5D4E_E6E0_4634_8209_D02FEBBDA6BE}{\*\bkmkend BKM_41CF5D4E_E6E0_4634_8209_D02FEBBDA6BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseUnion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0BAF921C_2C80_4737_82A9_6683A770A050}{\*\bkmkend BKM_0BAF921C_2C80_4737_82A9_6683A770A050}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b directCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt DirectCause}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2A77571B_CD77_4080_885F_B3457D6D6895}{\*\bkmkend BKM_2A77571B_CD77_4080_885F_B3457D6D6895}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+linkedCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LinkedCause}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_F5AEA06B_4102_4b1e_9971_15C8923BEF2E}{\*\bkmkend BKM_F5AEA06B_4102_4b1e_9971_15C8923BEF2E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DirectCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3AAD335E_2BB9_4641_99E4_ADB3BEE88840}{\*\bkmkend BKM_3AAD335E_2BB9_4641_99E4_ADB3BEE88840}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b warningLevel}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt WarningLevel}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D75D133C_0623_46a0_AE31_FEE25FFA824E}{\*\bkmkend BKM_D75D133C_0623_46a0_AE31_FEE25FFA824E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+unverifiedInformation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BOOLEAN}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F3DDB601_0342_48c2_9820_7F4A7BA2C9A4}{\*\bkmkend BKM_F3DDB601_0342_48c2_9820_7F4A7BA2C9A4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BYTE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F6054269_A910_46a5_A958_9E8A72171A8D}{\*\bkmkend BKM_F6054269_A910_46a5_A958_9E8A72171A8D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A10731D9_7611_4b7a_8EFB_2EAA86BBF011}{\*\bkmkend BKM_A10731D9_7611_4b7a_8EFB_2EAA86BBF011}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4B36ACB7_EB52_4ed9_844B_C174E8A8236F}{\*\bkmkend BKM_4B36ACB7_EB52_4ed9_844B_C174E8A8236F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+laneRestrictions}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LaneRestrictions}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_86A0E6BD_B996_423a_91EC_2D1780CBA8E1}{\*\bkmkend BKM_86A0E6BD_B996_423a_91EC_2D1780CBA8E1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+freeText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, an empty string indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_203EC57D_5FA4_4684_B041_C733263A29E5}{\*\bkmkend BKM_203EC57D_5FA4_4684_B041_C733263A29E5}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+FeedInformation}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7831FEF5_23A9_421a_88B8_366D0E9D419A}{\*\bkmkend BKM_7831FEF5_23A9_421a_88B8_366D0E9D419A}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b dataProviderName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1705BA47_42E6_4e6d_93A9_6E8F7E2DBCBE}{\*\bkmkend BKM_1705BA47_42E6_4e6d_93A9_6E8F7E2DBCBE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+protocolName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_945A48DB_852C_4359_9185_9478912EE49B}{\*\bkmkend BKM_945A48DB_852C_4359_9185_9478912EE49B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+communicationChannelName}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1C8F3EA7_69C6_4680_A719_974A0172C7EB}{\*\bkmkend BKM_1C8F3EA7_69C6_4680_A719_974A0172C7EB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+feedStatus}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TrafficIncidentFeedStatus}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6B9A79F2_2D81_4bb3_8E93_60785098F92F}{\*\bkmkend BKM_6B9A79F2_2D81_4bb3_8E93_60785098F92F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+trafficIncidentsStatus}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TrafficIncidentsStatus}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_707DEB31_F51D_48c6_9076_62FF0FAA7C8A}{\*\bkmkend BKM_707DEB31_F51D_48c6_9076_62FF0FAA7C8A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LaneRestrictions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_13807FD9_3913_49dc_A647_2D8D08397B99}{\*\bkmkend BKM_13807FD9_3913_49dc_A647_2D8D08397B99}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b laneRestrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LaneRestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8A6625CA_1E9C_4d41_9A6E_80995EF62975}{\*\bkmkend BKM_8A6625CA_1E9C_4d41_9A6E_80995EF62975}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+numberOfLanes}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_125F4C0A_644E_4b10_A2A8_9FFFD6313886}{\*\bkmkend BKM_125F4C0A_644E_4b10_A2A8_9FFFD6313886}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LengthUnit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_61B40F45_7681_49e3_9B64_72E730EF01C0}{\*\bkmkend BKM_61B40F45_7681_49e3_9B64_72E730EF01C0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_51E5384E_2FD0_4abe_A2C4_8B54B09EEBEA}{\*\bkmkend BKM_51E5384E_2FD0_4abe_A2C4_8B54B09EEBEA}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+KILOMETERS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_73B6C2A6_8F99_4fba_85C8_4BE81E133786}{\*\bkmkend BKM_73B6C2A6_8F99_4fba_85C8_4BE81E133786}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+MILES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_07F1498D_740D_4cd8_ADF6_63A2BA09A217}{\*\bkmkend BKM_07F1498D_740D_4cd8_ADF6_63A2BA09A217}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinkedCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B748834F_90A9_485a_8297_264C5098FA80}{\*\bkmkend BKM_B748834F_90A9_485a_8297_264C5098FA80}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b causeTrafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_328DE2DD_D0F2_4ef0_9BC5_236139ED216C}{\*\bkmkend BKM_328DE2DD_D0F2_4ef0_9BC5_236139ED216C}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A6ABA3D0_A11E_4b78_AC51_2021315DB722}{\*\bkmkend BKM_A6ABA3D0_A11E_4b78_AC51_2021315DB722}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b unitsMPH}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BOOLEAN}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FBA0B108_02C7_4a5d_9F76_39F72B142604}{\*\bkmkend BKM_FBA0B108_02C7_4a5d_9F76_39F72B142604}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+offset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DE9E751F_FF1C_47c2_9383_FBF47ADF53B3}{\*\bkmkend BKM_DE9E751F_FF1C_47c2_9383_FBF47ADF53B3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+temporarySpeedLimitSections}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TemporarySpeedLimitSection}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [1..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DD89BA21_ABA6_4718_A8F7_718DAAF46573}{\*\bkmkend BKM_DD89BA21_ABA6_4718_A8F7_718DAAF46573}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicability}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Applicability}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_A87083F2_C2D5_4fd3_9CC4_53AD663B9EF7}{\*\bkmkend BKM_A87083F2_C2D5_4fd3_9CC4_53AD663B9EF7}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimitSection}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_061EE946_60C2_44bf_BB90_ACD72D40A675}{\*\bkmkend BKM_061EE946_60C2_44bf_BB90_ACD72D40A675}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b speedLimitValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_084ACC78_4268_4e4a_BD8F_B160253EE929}{\*\bkmkend BKM_084ACC78_4268_4e4a_BD8F_B160253EE929}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitValueWet}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5C7C7387_FD73_4051_B45C_67927BBC8498}{\*\bkmkend BKM_5C7C7387_FD73_4051_B45C_67927BBC8498}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitLength}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_FD8CE993_169C_4f70_A227_F16C3EF0B878}{\*\bkmkend BKM_FD8CE993_169C_4f70_A227_F16C3EF0B878}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TextDetailLevel}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_FD859A19_5FDB_425b_A1E5_96CB1D158743}{\*\bkmkend BKM_FD859A19_5FDB_425b_A1E5_96CB1D158743}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D8E05063_6E76_46ef_BEBF_4144B327F521}{\*\bkmkend BKM_D8E05063_6E76_46ef_BEBF_4144B327F521}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+FULL}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D8A9512A_4DD5_430d_9239_DCE659325790}{\*\bkmkend BKM_D8A9512A_4DD5_430d_9239_DCE659325790}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SUMMARY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_45D51461_5BFB_444e_94E7_51272E1E7625}{\*\bkmkend BKM_45D51461_5BFB_444e_94E7_51272E1E7625}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncident}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_80283236_98BF_4b10_9A27_113CA473BF02}{\*\bkmkend BKM_80283236_98BF_4b10_9A27_113CA473BF02}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b trafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C909C662_D75D_4abf_8091_18396DFFD75F}{\*\bkmkend BKM_C909C662_D75D_4abf_8091_18396DFFD75F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+effectCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt EffectCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_57FD862D_3AF2_4c3b_BD90_2EEB4B8457F6}{\*\bkmkend BKM_57FD862D_3AF2_4c3b_BD90_2EEB4B8457F6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+effectText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, an empty string indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_072E1597_D363_4711_A74F_0013E5E1A58E}{\*\bkmkend BKM_072E1597_D363_4711_A74F_0013E5E1A58E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+startTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_33CB3F17_CC4E_4efa_9158_B599DCEDCEA9}{\*\bkmkend BKM_33CB3F17_CC4E_4efa_9158_B599DCEDCEA9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+stopTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_08B9E606_66DB_4edf_848A_1A3671E9C39A}{\*\bkmkend BKM_08B9E606_66DB_4edf_848A_1A3671E9C39A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+tendency}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Tendency}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_90226ACA_7A53_4b64_B053_EDF01E968126}{\*\bkmkend BKM_90226ACA_7A53_4b64_B053_EDF01E968126}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+tendencyText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, an empty string indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_87403550_F59F_4ed3_A6FF_8F0390BCD8A1}{\*\bkmkend BKM_87403550_F59F_4ed3_A6FF_8F0390BCD8A1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_204A2D3B_221C_4d32_BD39_CA4778FCCC9C}{\*\bkmkend BKM_204A2D3B_221C_4d32_BD39_CA4778FCCC9C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+averageSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_739E2A02_7EEF_4dc2_8344_FA3E0D890D11}{\*\bkmkend BKM_739E2A02_7EEF_4dc2_8344_FA3E0D890D11}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+delay}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E0AAE368_49A8_456a_9DCB_8510B171FB77}{\*\bkmkend BKM_E0AAE368_49A8_456a_9DCB_8510B171FB77}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+segmentSpeedLimit}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, -1 indicates not specified.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3C679EAB_7368_4eb7_9185_9F01F6ACA70A}{\*\bkmkend BKM_3C679EAB_7368_4eb7_9185_9F01F6ACA70A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expectedSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B08AA4B6_21F5_471c_AF34_D6BE631430AE}{\*\bkmkend BKM_B08AA4B6_21F5_471c_AF34_D6BE631430AE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causes}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseDiscriminatedVariant}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_312A89AE_A2B2_41e4_BFF1_C02D20FFC3C1}{\*\bkmkend BKM_312A89AE_A2B2_41e4_BFF1_C02D20FFC3C1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+location}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt LocationDiscriminatedUnion}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, represented by an array with 0 or 1 elements.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B7D2225A_A606_4709_9EA2_C37D63DDE63B}{\*\bkmkend BKM_B7D2225A_A606_4709_9EA2_C37D63DDE63B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+advices}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Advice}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_89C266EB_0BD1_4351_8CE2_FB22B173039E}{\*\bkmkend BKM_89C266EB_0BD1_4351_8CE2_FB22B173039E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicability}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Applicability}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9F27281F_76CA_4ec6_AFC8_6231F07E2D51}{\*\bkmkend BKM_9F27281F_76CA_4ec6_AFC8_6231F07E2D51}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+temporarySpeedLimits}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TemporarySpeedLimit}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2A4BC148_A126_40f5_8A89_6C72DA013A8A}{\*\bkmkend BKM_2A4BC148_A126_40f5_8A89_6C72DA013A8A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+locationInfo}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationInfoDiscriminatedUnion}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_234C6B8E_9482_4c05_B3E1_DC527A20837E}{\*\bkmkend BKM_234C6B8E_9482_4c05_B3E1_DC527A20837E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeTexts}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2FA1DAE3_3093_4758_9646_42E0A9D0D83B}{\*\bkmkend BKM_2FA1DAE3_3093_4758_9646_42E0A9D0D83B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicabilityTexts}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B5D88139_A50C_475f_8377_DB053DB7F85D}{\*\bkmkend BKM_B5D88139_A50C_475f_8377_DB053DB7F85D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+adviceTexts}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_75DB4143_1D3C_46b4_AB64_E89CA6A63110}{\*\bkmkend BKM_75DB4143_1D3C_46b4_AB64_E89CA6A63110}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+locationBoundingBox}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt RectangularArea}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3912403C_BDA7_4e94_82D2_77D570D5DB8F}{\*\bkmkend BKM_3912403C_BDA7_4e94_82D2_77D570D5DB8F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+categoryIds}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_643ACEDA_3224_46d5_90AF_09B5C5B6CFE4}{\*\bkmkend BKM_643ACEDA_3224_46d5_90AF_09B5C5B6CFE4}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentField}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_2818AE8B_023A_4304_82CD_F40B17812D46}{\*\bkmkend BKM_2818AE8B_023A_4304_82CD_F40B17812D46}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3D06B0BE_3431_45db_ADA6_E67A7EC3EAD1}{\*\bkmkend BKM_3D06B0BE_3431_45db_ADA6_E67A7EC3EAD1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TRAFFIC_INCIDENT_ID}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_49F43BB6_F8E8_4e29_BD2D_57D13025AEB0}{\*\bkmkend BKM_49F43BB6_F8E8_4e29_BD2D_57D13025AEB0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EFFECT_CODE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_69E16893_7979_4ab1_A683_721A14501AD9}{\*\bkmkend BKM_69E16893_7979_4ab1_A683_721A14501AD9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+EFFECT_TEXT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4D84D765_1953_4a6f_840C_CE28A33D55E2}{\*\bkmkend BKM_4D84D765_1953_4a6f_840C_CE28A33D55E2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+START_TIME}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DDB2F6F8_F56D_450f_9A46_D0541F14C1F1}{\*\bkmkend BKM_DDB2F6F8_F56D_450f_9A46_D0541F14C1F1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+STOP_TIME}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_994327AC_3A16_43e8_8948_CD3B4C478373}{\*\bkmkend BKM_994327AC_3A16_43e8_8948_CD3B4C478373}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TENDENCY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_469C82FD_8095_4188_B22C_8040DC0CFF0D}{\*\bkmkend BKM_469C82FD_8095_4188_B22C_8040DC0CFF0D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+TENDENCY_TEXT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4B90A77F_BB91_42dd_BB84_BA73B33E0FA7}{\*\bkmkend BKM_4B90A77F_BB91_42dd_BB84_BA73B33E0FA7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LENGTH_AFFECTED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B403087C_3669_4959_A3D0_B5C65CF3BF86}{\*\bkmkend BKM_B403087C_3669_4959_A3D0_B5C65CF3BF86}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+AVERAGE_SPEED_ABSOLUTE}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D0CE5AD5_0A6B_4a8e_A4C5_64487586972A}{\*\bkmkend BKM_D0CE5AD5_0A6B_4a8e_A4C5_64487586972A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+DELAY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B50BE7BA_6440_4f97_BE92_6430167B733F}{\*\bkmkend BKM_B50BE7BA_6440_4f97_BE92_6430167B733F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+SEGMENT_SPEED_LIMIT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_48398A33_2361_423a_B55F_19E80CD93CB7}{\*\bkmkend BKM_48398A33_2361_423a_B55F_19E80CD93CB7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAUSES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0DBC34CD_4737_4019_8F4C_116105B19974}{\*\bkmkend BKM_0DBC34CD_4737_4019_8F4C_116105B19974}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+CAUSE_TEXTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0A908A29_887D_484e_A3AD_97474426F72A}{\*\bkmkend BKM_0A908A29_887D_484e_A3AD_97474426F72A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+APPLICABILITY}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DF572865_28AB_4e4f_85BD_FB3B4699D672}{\*\bkmkend BKM_DF572865_28AB_4e4f_85BD_FB3B4699D672}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+APPLICABILITY_TEXTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_762F12C5_F9F4_49ea_A855_809D13292F65}{\*\bkmkend BKM_762F12C5_F9F4_49ea_A855_809D13292F65}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOCATION}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1F76306F_3DBA_4873_B38E_00C2E004EBF8}{\*\bkmkend BKM_1F76306F_3DBA_4873_B38E_00C2E004EBF8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOCATION_INFO}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DE6483CE_17ED_4e3c_B9D6_C72D67ED0C5D}{\*\bkmkend BKM_DE6483CE_17ED_4e3c_B9D6_C72D67ED0C5D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LOCATION_BOUNDING_BOX}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C4706F5D_3876_4f53_909A_A7FC05D6A5E1}{\*\bkmkend BKM_C4706F5D_3876_4f53_909A_A7FC05D6A5E1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ADVICES}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6BA581D3_860C_49c4_9EB3_EFE7A3A36859}{\*\bkmkend BKM_6BA581D3_860C_49c4_9EB3_EFE7A3A36859}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ADVICE_TEXTS}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_12029C77_E84E_4b12_8964_5266176928E7}{\*\bkmkend BKM_12029C77_E84E_4b12_8964_5266176928E7}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VehicleRelatedRestriction}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_8F618666_5052_4ad2_8F38_0679E995EDED}{\*\bkmkend BKM_8F618666_5052_4ad2_8F38_0679E995EDED}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b restrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt RestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, represented by an array with 0 or 1 elements.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_899F6C63_EFD2_41a8_BB99_AC54AEE4F53E}{\*\bkmkend BKM_899F6C63_EFD2_41a8_BB99_AC54AEE4F53E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+restrictionValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 Att.Notes}{\fldrslt}}\lang1033\hich\f6\dbch\f6\loch\f6\cf7\fs20\i Optional value, represented by an array with 0 or 1 elements.\lang3081\hich\f3\dbch\f3\loch\f3\cf2\i0\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3E5E1BB6_A177_4d9b_9762_6D130DCAC6F8}{\*\bkmkend BKM_3E5E1BB6_A177_4d9b_9762_6D130DCAC6F8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+restrictionLocation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationDiscriminatedUnion}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_6EF07EFC_7C9C_4456_9EBC_ED82ED40015E}{\*\bkmkend BKM_6EF07EFC_7C9C_4456_9EBC_ED82ED40015E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+WeightUnit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_0B70D853_094E_4a2e_908B_5B1C142F9F7D}{\*\bkmkend BKM_0B70D853_094E_4a2e_908B_5B1C142F9F7D}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b NOT_SPECIFIED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_867F2718_C766_4593_BCFD_BF406755A99D}{\*\bkmkend BKM_867F2718_C766_4593_BCFD_BF406755A99D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+KILOGRAM}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0CB1EE58_A1F9_46e2_9487_F7DDFA11B96A}{\*\bkmkend BKM_0CB1EE58_A1F9_46e2_9487_F7DDFA11B96A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+POUND}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_15E5B9DA_44AB_4b13_B607_0D23F52F8FC7}{\*\bkmkend BKM_15E5B9DA_44AB_4b13_B607_0D23F52F8FC7}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidents}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_9A2ED7AD_0582_4c2d_A5DF_D46232171355}{\*\bkmkend BKM_9A2ED7AD_0582_4c2d_A5DF_D46232171355}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetVersion}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AFEADF9B_F523_4e8d_B27F_E181CF434834}{\*\bkmkend BKM_AFEADF9B_F523_4e8d_B27F_E181CF434834}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetLanguage}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C5EFDC86_D669_461f_9339_6AC936F49A01}{\*\bkmkend BKM_C5EFDC86_D669_461f_9339_6AC936F49A01}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetLanguage}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EF1FD0EE_D70A_4ec6_A949_4D1A85357EE0}{\*\bkmkend BKM_EF1FD0EE_D70A_4ec6_A949_4D1A85357EE0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetTimeFormat}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 timeFormat}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_741DFB29_ED80_4ccb_A29D_543BA60EFD78}{\*\bkmkend BKM_741DFB29_ED80_4ccb_A29D_543BA60EFD78}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetDateFormat}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 dateFormat}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7562692F_8F3F_4952_88DE_0BBFB1DB3411}{\*\bkmkend BKM_7562692F_8F3F_4952_88DE_0BBFB1DB3411}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetLengthUnit}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b LengthUnit}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 lengthUnit}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_258031B2_E6CD_4aaa_9620_018554C460F2}{\*\bkmkend BKM_258031B2_E6CD_4aaa_9620_018554C460F2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetWeightUnit}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b WeightUnit}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 weightUnit}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CAD0DE31_9AC0_42ae_96A4_8807B188B6FD}{\*\bkmkend BKM_CAD0DE31_9AC0_42ae_96A4_8807B188B6FD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetApplicability}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_438C474A_4687_4579_8527_57006BFB8356}{\*\bkmkend BKM_438C474A_4687_4579_8527_57006BFB8356}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetApplicability}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 filterExpression}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BA7F5155_EDEF_4a37_A84D_3F52353CA40E}{\*\bkmkend BKM_BA7F5155_EDEF_4a37_A84D_3F52353CA40E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b ReserveIconSetIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 numberOfIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ADC57BEF_BC3D_4cee_BA92_8B91F6662E24}{\*\bkmkend BKM_ADC57BEF_BC3D_4cee_BA92_8B91F6662E24}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FreeIconSetIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSetIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0A83E729_5898_43e6_9752_E8F55A2EC6BD}{\*\bkmkend BKM_0A83E729_5898_43e6_9752_E8F55A2EC6BD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetIconSets}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_79E5AFA4_ED34_46a5_AAF1_DEB73F48CDDD}{\*\bkmkend BKM_79E5AFA4_ED34_46a5_AAF1_DEB73F48CDDD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddIconSetDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconSet}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSets}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D1A0561C_7705_43ae_8F6E_91E4AD971BDF}{\*\bkmkend BKM_D1A0561C_7705_43ae_8F6E_91E4AD971BDF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveIconSetDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSetIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A70C593E_F4D9_4f34_ACF4_81434BF33483}{\*\bkmkend BKM_A70C593E_F4D9_4f34_ACF4_81434BF33483}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetIconDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconInfo}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconInfos}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4C86452E_75D1_4b7d_8062_E89D6E8233B6}{\*\bkmkend BKM_4C86452E_75D1_4b7d_8062_E89D6E8233B6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddIconDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_89F31762_49DA_4139_ADE7_CA6C9A6C72A8}{\*\bkmkend BKM_89F31762_49DA_4139_ADE7_CA6C9A6C72A8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveIconDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconInfo}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconInfos}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_35FA1399_6458_4dcc_A356_EA7E6134D989}{\*\bkmkend BKM_35FA1399_6458_4dcc_A356_EA7E6134D989}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b ReserveCategoryIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 numberOfIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CC842408_4475_4466_B3A4_03ACD4464965}{\*\bkmkend BKM_CC842408_4475_4466_B3A4_03ACD4464965}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FreeCategoryIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8DE0D13B_14C3_4000_9C8D_81921C7A9718}{\*\bkmkend BKM_8DE0D13B_14C3_4000_9C8D_81921C7A9718}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetCategoryDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_024C6574_C7A8_4521_88AA_7E05854456A8}{\*\bkmkend BKM_024C6574_C7A8_4521_88AA_7E05854456A8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddCategoryDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CategoryDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_019E742C_5408_4585_886C_CA365AC46E97}{\*\bkmkend BKM_019E742C_5408_4585_886C_CA365AC46E97}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveCategoryDefinitions}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_39D61E45_14AD_4d4c_AC55_DCDEFD50494F}{\*\bkmkend BKM_39D61E45_14AD_4d4c_AC55_DCDEFD50494F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentIds}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3346C9AE_7BDC_497b_AE76_05074E2347F3}{\*\bkmkend BKM_3346C9AE_7BDC_497b_AE76_05074E2347F3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentIdsInAreas}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b RectangularArea}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+areas}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_23FC48CF_9D54_49de_B97F_A25F14978693}{\*\bkmkend BKM_23FC48CF_9D54_49de_B97F_A25F14978693}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidents}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b BOOLEAN}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+includeTextFields}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BBC17EFB_A261_416e_AFAC_5465A0E68DC1}{\*\bkmkend BKM_BBC17EFB_A261_416e_AFAC_5465A0E68DC1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentsFields}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentField}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentFields}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4F226863_7BA7_4b9e_9F64_A3BD30FB7C6F}{\*\bkmkend BKM_4F226863_7BA7_4b9e_9F64_A3BD30FB7C6F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTexts}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TextDetailLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+textDetailLevel}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_574323F4_C6CF_4d0b_90DC_514C22CA19CD}{\*\bkmkend BKM_574323F4_C6CF_4d0b_90DC_514C22CA19CD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddTrafficIncidentsStatusListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9683CD9E_06FA_4d4e_929A_12D3D58A8DB0}{\*\bkmkend BKM_9683CD9E_06FA_4d4e_929A_12D3D58A8DB0}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveTrafficIncidentsStatusListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_27EF77B1_8471_494f_A50D_5D643F12E587}{\*\bkmkend BKM_27EF77B1_8471_494f_A50D_5D643F12E587}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddFeedInformationListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B7E5C9F6_A0FE_47c8_BBB8_BC9668CF420D}{\*\bkmkend BKM_B7E5C9F6_A0FE_47c8_BBB8_BC9668CF420D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveFeedInformationListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_52F271B7_8581_4738_AD72_2E636E1526BE}{\*\bkmkend BKM_52F271B7_8581_4738_AD72_2E636E1526BE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listenerId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_972E82F3_B7A1_4669_AAC3_D78ABC1FDA42}{\*\bkmkend BKM_972E82F3_B7A1_4669_AAC3_D78ABC1FDA42}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listenerId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6EDB3E9C_5955_4bc7_8037_B14D2F541216}{\*\bkmkend BKM_6EDB3E9C_5955_4bc7_8037_B14D2F541216}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddAreasUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listenerId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b WarningLevel}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+warningLevels}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b RectangularArea}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+areas}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_320ABA78_FD23_47ad_8100_DEEA2699C59A}{\*\bkmkend BKM_320ABA78_FD23_47ad_8100_DEEA2699C59A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveAreasUpdateListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 listenerOd}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4E59025A_4731_4aa2_82B2_AAAE56BB1A72}{\*\bkmkend BKM_4E59025A_4731_4aa2_82B2_AAAE56BB1A72}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentsListener}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_015B0E94_7DAA_4a68_A2D7_F50211CDC262}{\*\bkmkend BKM_015B0E94_7DAA_4a68_A2D7_F50211CDC262}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetVersionReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getVersion().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b Version}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 version}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The API version of this interface implemented by the service.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_949B8226_ECE6_485a_A618_71D8A59C8A92}{\*\bkmkend BKM_949B8226_ECE6_485a_A618_71D8A59C8A92}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetLanguageReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getLanguage().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt The current language, specified as ISO 639-3 language code (lower case).}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt Optional value, an empty string indicates 'not specified'.}}\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2ED44D04_5DF0_450f_AC41_F3F236520046}{\*\bkmkend BKM_2ED44D04_5DF0_450f_AC41_F3F236520046}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetLanguageReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setLanguage().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8D614538_D70A_46eb_97B7_CECBFFDC83D5}{\*\bkmkend BKM_8D614538_D70A_46eb_97B7_CECBFFDC83D5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetTimeFormatReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setTimeFormat().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8FF3D689_AA66_4688_82B6_C54EC17AD68A}{\*\bkmkend BKM_8FF3D689_AA66_4688_82B6_C54EC17AD68A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetDateFormatReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setDateFormat().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C52B8F41_6F5F_4439_BFC0_73966FD2A072}{\*\bkmkend BKM_C52B8F41_6F5F_4439_BFC0_73966FD2A072}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetLengthUnitReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setLengthUnit().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_244921EC_A677_4bc1_9639_A5105B4010E2}{\*\bkmkend BKM_244921EC_A677_4bc1_9639_A5105B4010E2}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetWeightUnitReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setWeightUnit().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_212E6AA4_698A_4076_804C_1004270E3E83}{\*\bkmkend BKM_212E6AA4_698A_4076_804C_1004270E3E83}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetApplicabilityReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getApplicability().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 filterExpression}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_530A424D_0149_4fdb_B13C_7A299FFD60A8}{\*\bkmkend BKM_530A424D_0149_4fdb_B13C_7A299FFD60A8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b SetApplicabilityReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of setApplicability().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_97CDC0FA_823B_4567_AD55_F0C9C3FEA2A7}{\*\bkmkend BKM_97CDC0FA_823B_4567_AD55_F0C9C3FEA2A7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b ReserveIconSetIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of reserveIconSetIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSetIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4AE074FD_C434_4f0e_8A21_5915419EA9C1}{\*\bkmkend BKM_4AE074FD_C434_4f0e_8A21_5915419EA9C1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FreeIconSetIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of freeIconSetIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_623C6CC9_69CC_4c04_A46D_04685661C562}{\*\bkmkend BKM_623C6CC9_69CC_4c04_A46D_04685661C562}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetIconSetsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getIconSets().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconSet}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconSets}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_97150D88_F269_4bc7_9607_5550015E4061}{\*\bkmkend BKM_97150D88_F269_4bc7_9607_5550015E4061}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddIconSetDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addIconSetDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A9E08F98_ECFE_4b25_9E64_DBB6F953AA70}{\*\bkmkend BKM_A9E08F98_ECFE_4b25_9E64_DBB6F953AA70}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveIconSetDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeIconSetDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_18BB3497_717C_4a15_BFBC_D398F337A237}{\*\bkmkend BKM_18BB3497_717C_4a15_BFBC_D398F337A237}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetIconDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getIconDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b IconDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 iconDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2036C805_6AEE_4883_8111_93EFDAC2BBF3}{\*\bkmkend BKM_2036C805_6AEE_4883_8111_93EFDAC2BBF3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddIconDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addIconDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C8F34FBE_C5A5_4cc6_B62D_7BDE3A07F9B8}{\*\bkmkend BKM_C8F34FBE_C5A5_4cc6_B62D_7BDE3A07F9B8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveIconDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeIconDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F2BA8CF4_FD33_4c91_B8CC_B7974F39829E}{\*\bkmkend BKM_F2BA8CF4_FD33_4c91_B8CC_B7974F39829E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b ReserveCategoryIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of reserveCategoryIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5F55069D_4D03_45f5_B028_11A183B3DCB5}{\*\bkmkend BKM_5F55069D_4D03_45f5_B028_11A183B3DCB5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FreeCategoryIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of freeCategoryIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C2ADA753_2618_48a4_B8AA_0B014EEFC81B}{\*\bkmkend BKM_C2ADA753_2618_48a4_B8AA_0B014EEFC81B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetCategoryDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getCategoryDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b CategoryDefinition}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 categoryDefinitions}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FB6EA46F_86E4_4b83_9B72_912B97D2877A}{\*\bkmkend BKM_FB6EA46F_86E4_4b83_9B72_912B97D2877A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddCategoryDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addCategoryDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_652B58A5_A7EF_49b8_8A8E_A83C79A5ED40}{\*\bkmkend BKM_652B58A5_A7EF_49b8_8A8E_A83C79A5ED40}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveCategoryDefinitionsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeCategoryDefinitions().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F9119E34_1678_49f1_B96A_9D53BE048540}{\*\bkmkend BKM_F9119E34_1678_49f1_B96A_9D53BE048540}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentIdsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidentIds().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_20DF8690_1C90_4824_93AB_2741652D2A2A}{\*\bkmkend BKM_20DF8690_1C90_4824_93AB_2741652D2A2A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentIdsInAreasReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidentIdsInAreas().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_2B8E48C5_710E_4c5c_A650_0F9CEA71A7E1}{\*\bkmkend BKM_2B8E48C5_710E_4c5c_A650_0F9CEA71A7E1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidents().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncident}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidents}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E9F2751B_925A_4c3f_B41E_3018F15E84B3}{\*\bkmkend BKM_E9F2751B_925A_4c3f_B41E_3018F15E84B3}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTrafficIncidentsFieldsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTrafficIncidentsFields().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncident}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidents}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_50335671_283A_470f_9145_E09DAF59984B}{\*\bkmkend BKM_50335671_283A_470f_9145_E09DAF59984B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetTextsReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of getTexts().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 texts}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3A9230D5_CA07_48e5_B709_9DED00FF5D5D}{\*\bkmkend BKM_3A9230D5_CA07_48e5_B709_9DED00FF5D5D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddTrafficIncidentsStatusListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addTrafficIncidentsStatusListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EBAF440C_83E8_49e9_AA43_984E2D06AFCE}{\*\bkmkend BKM_EBAF440C_83E8_49e9_AA43_984E2D06AFCE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveTrafficIncidentsStatusListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeTrafficIncidentsStatusListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_29BD1A2F_1287_45f2_ADAD_C1F9371D063B}{\*\bkmkend BKM_29BD1A2F_1287_45f2_ADAD_C1F9371D063B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddFeedInformationListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addFeedInformationListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3E02D9FA_1C99_41f3_A1F6_8D2098EC1F3F}{\*\bkmkend BKM_3E02D9FA_1C99_41f3_A1F6_8D2098EC1F3F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveFeedInformationListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeFeedInformationListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FDCD0B37_9902_4e9f_A50F_23223548225C}{\*\bkmkend BKM_FDCD0B37_9902_4e9f_A50F_23223548225C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ABE21171_C9FC_4236_9450_CFBD7B3553BB}{\*\bkmkend BKM_ABE21171_C9FC_4236_9450_CFBD7B3553BB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B68DEAD3_95C6_4df2_B282_0133B0DE37E7}{\*\bkmkend BKM_B68DEAD3_95C6_4df2_B282_0133B0DE37E7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddAreasUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of addAreasUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_6A95A85B_3C32_41af_AEA6_3C26E2984709}{\*\bkmkend BKM_6A95A85B_3C32_41af_AEA6_3C26E2984709}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveAreasUpdateListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20 Method to receive the reply of removeAreasUpdateListener().}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_AF371360_92FC_4d2d_AE1C_421214843FDB}{\*\bkmkend BKM_AF371360_92FC_4d2d_AE1C_421214843FDB}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentsStatus}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b TrafficIncidentFeedStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 trafficIncidentFeedStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+trafficIncidentsStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4D204089_1BD3_414a_93B8_CEBDDC12B55B}{\*\bkmkend BKM_4D204089_1BD3_414a_93B8_CEBDDC12B55B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FeedInformation}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b FeedInformation}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedsInformation}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_84E3F0A1_0A4B_4a66_B2E1_D5322506E268}{\*\bkmkend BKM_84E3F0A1_0A4B_4a66_B2E1_D5322506E268}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b Updates}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 unchangedTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+changedTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+newTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+deletedTrafficIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1D620918_B66E_48ee_ACCC_A1EF50FE827D}{\*\bkmkend BKM_1D620918_B66E_48ee_ACCC_A1EF50FE827D}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UpdatesInAreas}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RectangularArea}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 areas}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s13\sb240\sa60\ql\outlinelevel2\plain\f0\fs24{\*\bkmkstart trafficincidentfeed}{\*\bkmkend trafficincidentfeed}{\*\bkmkstart BKM_686E4395_A2C4_4b79_8206_1301C7D431A4}{\*\bkmkend BKM_686E4395_A2C4_4b79_8206_1301C7D431A4}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs26\b
+Package {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Pkg.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentfeed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Pkg.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\par
+{\*\bkmkstart BKM_D13D2D68_577C_47e4_A2FF_DEE18C193409}{\*\bkmkend BKM_D13D2D68_577C_47e4_A2FF_DEE18C193409}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncident}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw27931\pich37511\picwgoal15840\pichgoal21270\picscalex59\picscaley59\sspicalign0 010000006c000000f8fffffffcffffff210300002904000000000000000000001c6d00008692000020454d46000001003043020091170000060000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100d9fb1603d9fb1603ffff0100ffff0001010101030303154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff1803000029040000050000001000100010007042603170426031100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000780000001400000006000000
+10004001b006400180076000800710001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecff6b00ecff7800faff7800ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffff7a000000160000000600000010004001b006400180076000800710001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e764043af26086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b5fa3000ac859e10262003a0140600e0edc59e102188d17
+01f2350aa04043af266300380140600e0e37bb4000f2350aa070374b0ba8d56b0008000000000000000000000058c8612348004b0b5c014b0b5043af26f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd19000000008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000680000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000000062000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000cc0000000600000004000000690000000f0000000100000000400d4200040dc206000000fcffffff150000004c000000000000000000000000000000ffffffffffffffff7800000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e00740000000600000003000000060000000600000006000000030000000500000004000000060000000300000003000000
+030000000600000003000000060000000600000003000000060000000600000006000000030000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a0000001000000000000000000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080
+bf00000000000088410a4000c01c00000010000000c0bfc0ff01000000a500e4fe10011701280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600
+000030000000a500000016000000b50100002d01000005000000500a6001500ad012501bd012501b6001500a6001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000000002
+10c0db00000000c0bfc0ff0b400040180000000c00000001000000a500e4fe100117013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c0000000500008056000000
+2c0000008e000000ffffffffcc0100004401000004000000500ad012501bd012501b6001500a6001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000
+000000224300808cc30000884300808b43bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000a200e7fe10011701250000000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c000000080000805600000030000000a2000000130000003001
+00002a01000005000000a2001300a2002a0130012a0130011300a2001300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e10000000000250000000c00000002000000250000000c0000000800008056000000300000003001000013000000360100002a010000050000003001130030012a0136012a013601130030011300250000000c
+00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080560000003000000036010000130000003e0100002a010000050000003601130036012a013e012a013e01130036011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000
+180000000200000000000000f9eedd0000000000250000000c00000002000000250000000c0000000800008056000000300000003e01000013000000460100002a010000050000003e0113003e012a0146012a01460113003e011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8ecdb0000000000250000000c00000002000000250000
+000c00000008000080560000003000000046010000130000004e0100002a010000050000004601130046012a014e012a014e01130046011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f7ebd90000000000250000000c00000002000000250000000c0000000800008056000000300000004e01000013000000550100002a0100000500
+00004e0113004e012a0155012a01550113004e011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d70000000000250000000c00000002000000250000000c00000008000080560000003000000055010000130000005c0100002a010000050000005501130055012a015c012a015c01130055011300250000000c0000000800008025
+0000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d50000000000250000000c00000002000000250000000c0000000800008056000000300000005c01000013000000640100002a010000050000005c0113005c012a0164012a01640113005c011300250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800000002000000
+00000000f4e7d30000000000250000000c00000002000000250000000c00000008000080560000003000000064010000130000006c0100002a010000050000006401130064012a016c012a016c01130064011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000
+8056000000300000006c01000013000000740100002a010000050000006c0113006c012a0174012a01740113006c011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c0000000800008056000000300000007401000013000000790100002a01000005000000740113007401
+2a0179012a017901130074011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c00000008000080560000003000000079010000130000007e0100002a010000050000007901130079012a017e012a017e01130079011300250000000c00000008000080250000000c00000000
+000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c0000000800008056000000300000007e01000013000000850100002a010000050000007e0113007e012a0185012a01850113007e011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca00
+00000000250000000c00000002000000250000000c00000008000080560000003000000085010000130000008b0100002a010000050000008501130085012a018b012a018b01130085011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000eedfc80000000000250000000c00000002000000250000000c0000000800008056000000300000
+008b01000013000000930100002a010000050000008b0113008b012a0193012a01930113008b011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c00000008000080560000003000000093010000130000009b0100002a010000050000009301130093012a019b012a019b01
+130093011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c0000000800008056000000300000009b01000013000000a30100002a010000050000009b0113009b012a01a3012a01a30113009b011300250000000c00000008000080250000000c00000000000080280000000c
+0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c000000080000805600000030000000a301000013000000aa0100002a01000005000000a3011300a3012a01aa012a01aa011300a3011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e9d8c0000000000025000000
+0c00000002000000250000000c000000080000805600000030000000aa01000013000000b10100002a01000005000000aa011300aa012a01b1012a01b1011300aa011300250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be0000000000250000000c00000002000000250000000c000000080000805600000030000000b1010000130000
+00b20100002a01000005000000b1011300b1012a01b2012a01b2011300b1011300250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100
+0000a200e7fe100117013a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c0000008b000000fcffffffc9010000410100000400000020
+0aa012201ba012201b3001200a3001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000000000
+0000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e10296961901b02f0a909c58530bb2961901000000006043af268ce3c577738c172646e0c5779401300b0000300b188d1701b02f0a9061003c014c600e0ec457e10237bb4000b02f
+0a906043af2662003a014c600e0e8882dd193c5ce10270374b0b0000000008000000000000000000000058c8612348004b0b5c014b0b6043af26f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a248839af26010000005843af26dc57e10223e0c5776043af263a6c2e76086545015843af26f057e102ad148b7564
+76000800000000250000000c00000002000000180000000c000000000000001e00000018000000ac000000f8ffffffa9010000ebffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000110100001900000044010000250000000100000000400d4200040dc211010000f8ffffff0b0000004c0000000000000000000000
+00000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000000000110000001200
+00000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e766043af2608654501cc57e1021458e102245736019c58530b1058e10296
+9619018ce3c5776b83172646e0c5779401300b0000300bfba210091c58e102620036014e600e0e3058e102188d1701b02f0a916043af26630038014e600e0e37bb4000b02f0a9170374b0ba8d56b0008000000a05ae1020000000058c8612348004b0b5c014b0b5043af26f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd194d600e0e88144000
+00cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000a800000008010000260000004d010000310000000100000000400d4200040dc208010000ebffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005400720061006600660069
+00630049006e0063006900640065006e007400ff000500000004000000060000000300000003000000030000000600000003000000060000000600000003000000060000000600000006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f010000000100
+0000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000a200d9ffb201d9ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f
+00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000008b00000021000000c90100004f00000002000000200a8003201b8003250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a70000003c000000b0000000480000000100000000400d4200040dc2a7000000d5ffffff020000004c000000000000000000000000000000ffffffffffff
+ffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000b80000003c00000031010000480000000100000000400d4200040dc2b8000000d5ffffff1a0000004c000000000000000000000000000000
+ffffffffffffffff80000000740072006100660066006900630049006e0063006900640065006e00740049006400200020003a0053005400520049004e00470003000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000060000000300000003000000030000000700000007000000070000000300000007000000080000
+000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a700000049000000b0000000550000000100000000400d4200040dc2a7000000c8ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006
+000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d8000000b80000004900000028010000550000000100000000400d4200040dc2b8000000c8ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000
+0065006600660065006300740043006f0064006500200020003a0045006600660065006300740043006f0064006500000006000000030000000300000006000000050000000300000007000000060000000600000006000000030000000300000003000000070000000300000003000000060000000500000003000000070000000600000006000000060000000a0000001000000000000000110000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+0000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a700000056000000b0000000620000000100000000400d4200040dc2a7000000bbffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b4000000b8000000560000000a010000620000000100000000400d4200040dc2b8000000bbffffff110000004c000000000000000000000000000000ffffffffffffffff7000000073007400610072007400540069006d006500200020003a004900
+4e00540033003200000004000000030000000600000003000000030000000700000003000000090000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000
+58000000a700000063000000b00000006f0000000100000000400d4200040dc2a7000000aeffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00
+000054000000ac000000b8000000630000000a0100006f0000000100000000400d4200040dc2b8000000aeffffff100000004c000000000000000000000000000000ffffffffffffffff6c000000730074006f007000540069006d006500200020003a0049004e00540033003200040000000300000006000000060000000700000003000000090000000600000003000000030000000300000003000000070000000700000006
+000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a700000070000000b00000007c0000000100000000400d4200040dc2a7000000a1ffffff020000004c000000000000000000000000000000ffffffffffffffff500000
+002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000
+000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c0000000b8000000700000001b0100007c0000000100000000400d4200040dc2b8000000a1ffffff130000004c000000000000000000000000000000ffffffffff
+ffffff74000000740065006e00640065006e0063007900200020003a00540065006e00640065006e00630079000000030000000600000006000000060000000600000006000000050000000500000003000000030000000300000007000000060000000600000006000000060000000600000005000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000
+454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c0000
+0001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a70000007d000000b0000000890000000100000000400d4200040dc2a700000094ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000000000001100000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000b80000007d00000023010000890000000100000000400d4200040dc2b800000094ffffff160000004c000000000000000000000000000000ffffffffffffffff780000006c0065006e0067007400680041006600660065006300740065006400200020003a0049004e00540033003200
+030000000600000006000000060000000300000006000000070000000300000003000000060000000500000003000000060000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000
+000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00
+00008b0000005400000058000000a70000008a000000b0000000960000000100000000400d4200040dc2a700000087ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c0000008b00000054000000f4000000b80000008a0000004c010000960000000100000000400d4200040dc2b800000087ffffff1c0000004c000000000000000000000000000000ffffffffffffffff840000006100760065007200610067006500530070006500650064004100620073006f006c00750074006500200020003a0049004e005400330032000600000005000000060000000300000006000000060000
+00060000000700000006000000060000000600000006000000070000000600000004000000060000000300000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000008b0000005400000058000000a700000097000000b0000000a30000000100000000400d4200040dc2a70000007affffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000008b000000540000009c000000b800000097000000f8000000a30000000100000000400d4200040dc2b80000007affffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000640065006c0061007900200020003a0049004e0054003300320000000600000006000000030000000600000005000000030000000300000003000000030000000700000007000000060000000600
+00000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a7000000a4000000b0000000b00000000100000000400d4200040dc2a70000006dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000
+06000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000600000
+00a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000b8000000a40000003d010000b00000000100000000400d4200040dc2b80000006dffffff190000004c000000000000000000000000000000ffffffffffffffff8000
+00007300650067006d0065006e007400530070006500650064004c0069006d0069007400200020003a0049004e005400330032000000040000000600000006000000090000000600000006000000030000000700000006000000060000000600000006000000060000000300000009000000030000000300000003000000030000000300000003000000070000000700000006000000060000000a000000100000000000000011
+0000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000
+64000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a7000000b1000000b0000000bd0000000100000000400d4200040dc2a700000060ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000
+0000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000fc000000b8000000b100000051010000bd0000000100000000400d4200040dc2b800000060ffffff1d0000004c000000000000000000000000000000ffffffffffffffff8800000065007800700065006300740065
+006400530070006500650064004100620073006f006c00750074006500200020003a0049004e00540033003200000006000000050000000600000006000000050000000300000006000000060000000700000006000000060000000600000006000000070000000600000004000000060000000300000006000000030000000600000003000000030000000300000003000000070000000700000006000000060000000a000000
+1000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a7000000be000000b0000000ca0000000100000000400d4200040dc2a700000053ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000060000000300
+00000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000044010000b8000000be00000078010000ca0000000100000000400d4200040dc2b800000053ffffff290000004c000000000000000000000000000000ffffffffffffffffa000000063006100
+7500730065007300200020003a00430061007500730065004400690073006300720069006d0069006e006100740065006400560061007200690061006e00740020005b0030002e002e002a005d000008050000000600000006000000040000000600000004000000030000000300000003000000070000000600000006000000040000000600000007000000030000000400000005000000030000000300000009000000030000
+00060000000600000003000000060000000600000007000000060000000300000003000000060000000600000003000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058
+000000a7000000cb000000b0000000d70000000100000000400d4200040dc2a700000046ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000
+0054000000d8000000b8000000cb0000001d010000d70000000100000000400d4200040dc2b800000046ffffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006100640076006900630065007300200020003a0041006400760069006300650020005b0030002e002e002a005d000000060000000600000005000000030000000500000006000000040000000300000003000000030000000700
+00000600000005000000030000000500000006000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009
+000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a7000000d8000000b0000000e40000000100000000400d42
+00040dc2a700000039ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000
+000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000024010000b8000000d80000004f010000e40000000100
+000000400d4200040dc2b800000039ffffff240000004c000000000000000000000000000000ffffffffffffffff940000006100700070006c00690063006100620069006c00690074007900200020003a004100700070006c00690063006100620069006c0069007400790020005b0030002e002e002a005d00060000000600000006000000030000000300000005000000060000000600000003000000030000000300000003
+0000000500000003000000030000000300000007000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000
+0000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c0000
+0002000000180000000c0000008b0000005400000058000000a7000000e5000000b0000000f10000000100000000400d4200040dc2a70000002cffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00
+0000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff0025
+0000000c00000002000000180000000c0000008b0000005400000074010000b8000000e5000000ae010000f10000000100000000400d4200040dc2b80000002cffffff310000004c000000000000000000000000000000ffffffffffffffffb0000000740065006d0070006f007200610072007900530070006500650064004c0069006d00690074007300200020003a00540065006d0070006f00720061007200790053007000
+6500650064004c0069006d006900740020005b0030002e002e002a005d000000030000000600000009000000060000000600000003000000060000000300000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000400000003000000030000000300000007000000060000000900000006000000060000000300000006000000030000000500000007000000060000
+000600000006000000060000000600000003000000090000000300000003000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000001100
+00000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a7000000f2000000b0000000fe
+0000000100000000400d4200040dc2a70000001fffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000
+00000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d0000000b8000000f20000
+0026010000fe0000000100000000400d4200040dc2b80000001fffffff160000004c000000000000000000000000000000ffffffffffffffff78000000650078007000690072006100740069006f006e00540069006d006500200020003a0049004e005400330032000600000005000000060000000300000003000000060000000300000003000000060000000600000007000000030000000900000006000000030000000300
+00000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a7000000ff000000b00000000b0100000100000000400d4200040dc2a700000012ffffff020000004c00000000000000
+0000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000b8000000ff000000180100000b0100000100000000400d4200040dc2b800000012ffffff120000004c00
+0000000000000000000000000000ffffffffffffffff70000000750070006400610074006500540069006d006500200020003a0049004e005400330032000600000006000000060000000600000003000000060000000700000003000000090000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000000000
+11000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000a70000000c010000b0000000180100000100000000400d4200040dc2a700000005ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+00000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002c010000b80000000c01000070010000180100000100000000400d4200040dc2b800000005ffffff250000004c000000000000000000000000000000ffffffffffffffff980000006c006f0063006100740069006f006e005200650066006500720065006e00630065
+00200020003a004c006f0063006100740069006f006e005200650066006500720065006e0063006500e10203000000060000000500000006000000030000000300000006000000060000000700000006000000030000000600000003000000060000000600000005000000060000000300000003000000030000000600000006000000050000000600000003000000030000000600000006000000070000000600000003000000
+0600000003000000060000000600000005000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000d80129fd320145002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000
+000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000d8010000a30200000a030000e802000005000000801d302a801d802ea030802ea030302a801d302a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000d80129fd320145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0
+bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000c10100008c02000021030000ff02000004000000801d802ea030802ea030302a801d302a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000
+460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080ea43000035c40000994300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d5012cfd32014500250000000c0000000800008027000000180000000400000000000000fcf2e300000000
+00250000000c00000004000000250000000c000000080000805600000030000000d5010000a002000074020000e502000005000000d501a002d501e5027402e5027402a002d501a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c0000000800008056000000300000007402
+0000a00200007c020000e5020000050000007402a0027402e5027c02e5027c02a0027402a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007c020000a002000084020000e5020000050000007c02a0027c02e5028402e5028402a0027c
+02a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c00000008000080560000003000000084020000a00200008b020000e5020000050000008402a0028402e5028b02e5028b02a0028402a002250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c0000000800008056000000300000008b020000a002000092020000e5020000050000008b02a0028b02e5029202e5029202a0028b02a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c0000
+0004000000250000000c00000008000080560000003000000092020000a00200009a020000e5020000050000009202a0029202e5029a02e5029a02a0029202a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000009a020000a0020000a202
+0000e5020000050000009a02a0029a02e502a202e502a202a0029a02a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a2020000a0020000aa020000e502000005000000a202a002a202e502aa02e502aa02a002a202a002250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d40000000000250000000c00000004000000250000000c000000080000805600000030000000aa020000a0020000b1020000e502000005000000aa02a002aa02e502b102e502b102a002aa02a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000f3e6d30000000000250000000c00000004000000250000000c000000080000805600000030000000b1020000a0020000b9020000e502000005000000b102a002b102e502b902e502b902a002b102a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000
+000c000000080000805600000030000000b9020000a0020000c1020000e502000005000000b902a002b902e502c102e502c102a002b902a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000c1020000a0020000c7020000e50200000500
+0000c102a002c102e502c702e502c702a002c102a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c000000080000805600000030000000c7020000a0020000cc020000e502000005000000c702a002c702e502cc02e502cc02a002c702a002250000000c0000000800008025
+0000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000cc020000a0020000d4020000e502000005000000cc02a002cc02e502d402e502d402a002cc02a002250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000
+00000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000d4020000a0020000dc020000e502000005000000d402a002d402e502dc02e502dc02a002d402a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000
+805600000030000000dc020000a0020000e4020000e502000005000000dc02a002dc02e502e402e502e402a002dc02a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000e4020000a0020000ed020000e502000005000000e402a002e402
+e502ed02e502ed02a002e402a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ed020000a0020000f6020000e502000005000000ed02a002ed02e502f602e502f602a002ed02a002250000000c00000008000080250000000c00000000
+000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000f6020000a0020000fe020000e502000005000000f602a002f602e502fe02e502fe02a002f602a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c000
+00000000250000000c00000004000000250000000c000000080000805600000030000000fe020000a002000006030000e502000005000000fe02a002fe02e5020603e5020603a002fe02a002250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c0000000800008056000000300000
+0006030000a002000007030000e5020000050000000603a0020603e5020703e5020703a0020603a002250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b4000401800
+00000c00000001000000d5012cfd320145003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000be010000890200001e030000fc
+02000004000000501d502e7030502e7030002a501d002a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011000000
+0c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000
+00000000001e00000018000000df0100006bfdfffffe0200005efdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000055020000a602000088020000b20200000100000000400d4200040dc2550200006bfdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab007300740072007500
+63007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000003000000180000000c00000000000000540000009c00000050020000b30200008c020000be0200000100000000400d4200040dc2500200005efdffff0d0000004c000000000000000000000000000000ffffffffffffffff680000004100700070006c00690063006100620069006c00690074007900000107000000060000000600000003000000030000000600000006000000060000000300000003000000030000
+0003000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d5014cfd07034cfd00010101154001001000000004000000000000002100
+000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c
+000000050000805700000024000000be010000ae0200001e030000dc02000002000000501d502c7030502c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000002000000180000000c0000008b0000005400000058000000da010000c9020000e3010000d50200000100000000400d4200040dc2da01000048fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00
+0000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c
+000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000eb010000c90200006a020000d50200000100000000400d4200040dc2eb01000048fdffff190000004c000000000000000000000000000000ffffffffffffffff80000000760065006800690063006c0065005400790070006500200020003a00560065006800690063006c006500540079007000650000000500000006000000
+06000000030000000500000003000000060000000700000005000000060000000600000003000000030000000300000007000000060000000600000003000000050000000300000006000000070000000500000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b0000005400000058000000da010000d6020000e3010000e20200000100000000400d4200040dc2da0100003bfdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000
+00000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c000000
+02000000180000000c0000008b00000054000000bc010000eb010000d602000003030000e20200000100000000400d4200040dc2eb0100003bfdffff3d0000004c000000000000000000000000000000ffffffffffffffffc8000000760065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e007300200020003a00560065006800690063006c006500520065
+006c0061007400650064005200650073007400720069006300740069006f006e0020005b0030002e002e002a005d00000005000000060000000600000003000000050000000300000006000000070000000600000003000000060000000300000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000040000000300000003000000030000000700
+0000060000000600000003000000050000000300000006000000070000000600000003000000060000000300000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020
+000000454d462b0a4000c01c00000010000000c0bfc0ff010000002f02f4fead0057002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002f020000c6000000dc0200001d010000
+05000000f022600cf022d011c02dd011c02d600cf022600c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000
+00010000002f02f4fead0057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000018020000af000000f3020000340100000400
+0000f022d011c02dd011c02d600cf022600c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000000b44008084c300002d430000ae42bed7e8ffe3
+f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002c02f7fead005700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002c020000c3000000860200001a010000050000002c02c3002c021a0186021a01
+8602c3002c02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000086020000c30000008b0200001a010000050000008602c30086021a018b021a018b02c3008602c300250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008b020000c30000008f0200001a010000050000008b02c3008b021a018f021a018f02c3008b02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd00000000002500
+00000c00000004000000250000000c0000000800008056000000300000008f020000c3000000930200001a010000050000008f02c3008f021a0193021a019302c3008f02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c00000008000080560000003000000093020000c3
+000000970200001a010000050000009302c30093021a0197021a019702c3009302c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebda0000000000250000000c00000004000000250000000c00000008000080560000003000000097020000c30000009c0200001a010000050000009702c30097021a019c021a019c02c3009702c300
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c0000000800008056000000300000009c020000c3000000a00200001a010000050000009c02c3009c021a01a0021a01a002c3009c02c300250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c000000080000805600000030000000a0020000c3000000a50200001a01000005000000a002c300a0021a01a5021a01a502c300a002c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c0000000400
+0000250000000c000000080000805600000030000000a5020000c3000000aa0200001a01000005000000a502c300a5021a01aa021a01aa02c300a502c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000aa020000c3000000af0200001a
+01000005000000aa02c300aa021a01af021a01af02c300aa02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000af020000c3000000b20200001a01000005000000af02c300af021a01b2021a01b202c300af02c300250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000b2020000c3000000b60200001a01000005000000b202c300b2021a01b6021a01b602c300b202c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000
+000400000000000000f0e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000b6020000c3000000ba0200001a01000005000000b602c300b6021a01ba021a01ba02c300b602c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c00000004000000250000000c00
+0000080000805600000030000000ba020000c3000000bf0200001a01000005000000ba02c300ba021a01bf021a01bf02c300ba02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000bf020000c3000000c30200001a01000005000000bf
+02c300bf021a01c3021a01c302c300bf02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000c3020000c3000000c80200001a01000005000000c302c300c3021a01c8021a01c802c300c302c300250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000c8020000c3000000cd0200001a01000005000000c802c300c8021a01cd021a01cd02c300c802c300250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000cd020000c3000000d20200001a01000005000000cd02c300cd021a01d2021a01d202c300cd02c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600
+000030000000d2020000c3000000d60200001a01000005000000d202c300d2021a01d6021a01d602c300d202c300250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000d6020000c3000000d90200001a01000005000000d602c300d6021a01d9
+021a01d902c300d602c300250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002c02f7fead0057003a0000000c0000000a000000
+24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000015020000ac000000f00200003101000004000000c022a011902da011902d300cc022300c250000000c0000
+0007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00
+00000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007000000071020000cc00000094020000d700000001
+00000000400d4200040dc27102000045ffffff060000004c000000000000000000000000000000ffffffffffffffff580000004100640076006900630065000700000006000000070000000300000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f
+0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000002c0233ffd90233ff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000000000
+00020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000015020000c7000000f0020000f500000002000000c022e00d902de00d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000
+8041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b
+0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031020000e20000003a020000ee0000000100000000400d4200040dc2310200002fffffff020000004c000000000000000000000000000000
+ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000
+00600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000042020000e2000000bc020000ee0000000100000000400d4200040dc2420200002fffffff170000004c000000000000000000
+000000000000ffffffffffffffff7c0000006d00610069006e00410064007600690063006500200020003a0041006400760069006300650043006f0064006500bf2309000000060000000300000006000000070000000600000005000000030000000500000006000000030000000300000003000000070000000600000005000000030000000500000006000000070000000600000006000000060000000a0000001000000000
+000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000
+6400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031020000ef0000003a020000fb0000000100000000400d4200040dc23102000022ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000
+001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000d800000042020000ef000000b2020000fb0000000100000000400d4200040dc24202000022ffffff170000004c000000000000000000000000000000ffffffffffffffff7c000000730075006200410064
+007600690063006500200020003a00420059005400450020005b0030002e002e0031005d00ffff04000000060000000600000007000000060000000500000003000000050000000600000003000000030000000300000007000000070000000700000007000000030000000300000006000000030000000300000006000000030000000a0000001000000000000000110000000c00000010000000000000000000000046000000
+1c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000000000110000
+00120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031020000fc0000003a020000080100000100000000400d4200040dc23102000015ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c00000010000000000000000000
+0000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000
+00000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000001401000042020000fc000000d5020000080100000100000000400d4200040dc24202000015ffffff210000004c000000000000000000000000000000ffffffffffffffff9000000066007200650065005400650078007400200020003a004c006f00630061006c0069007a00
+6500640053007400720069006e00670020005b0030002e002e002a005d0000000300000003000000060000000600000007000000060000000500000003000000030000000300000003000000060000000600000005000000060000000300000003000000050000000600000006000000070000000300000003000000030000000600000006000000030000000300000006000000030000000300000004000000030000000a0000
+001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800
+0000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000031020000090100003a020000150100000100000000400d4200040dc23102000008ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600000003
+0000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000240100004202000009010000d9020000150100000100000000400d4200040dc24202000008ffffff240000004c000000000000000000000000000000ffffffffffffffff94000000610070
+0070006c00690063006100620069006c00690074007900200020003a004100700070006c00690063006100620069006c0069007400790020005b0030002e002e002a005d000600000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000003000000030000000300000007000000060000000600000003000000030000000500000006000000060000000300
+000003000000030000000300000005000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000290094fd8e0045002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000
+00000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002900000038020000b70000007d02000005000000900280239002d027700bd027700b802390028023250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000
+02000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000290094fd8e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000001200000021020000ce00000094020000040000009002d027700bd027700b802390028023250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000184200401ac400000e4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000260097fd8e004500250000000c0000000800008027
+000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002600000035020000700000007a020000050000002600350226007a0270007a027000350226003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000
+250000000c0000000800008056000000300000007000000035020000740000007a020000050000007000350270007a0274007a027400350270003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000007400000035020000780000007a0200
+00050000007400350274007a0278007a027800350274003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000078000000350200007c0000007a020000050000007800350278007a027c007a027c00350278003502250000000c0000000800
+0080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000007c00000035020000800000007a020000050000007c0035027c007a0280007a02800035027c003502250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004
+00000000000000f7ebd90000000000250000000c00000004000000250000000c0000000800008056000000300000008000000035020000840000007a020000050000008000350280007a0284007a028400350280003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000
+0800008056000000300000008400000035020000870000007a020000050000008400350284007a0287007a028700350284003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000000087000000350200008b0000007a02000005000000870035
+0287007a028b007a028b00350287003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c0000000800008056000000300000008b00000035020000900000007a020000050000008b0035028b007a0290007a02900035028b003502250000000c00000008000080250000000c00
+000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c0000000800008056000000300000009000000035020000940000007a020000050000009000350290007a0294007a029400350290003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1
+e3cf0000000000250000000c00000004000000250000000c0000000800008056000000300000009400000035020000970000007a020000050000009400350294007a0297007a029700350294003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c0000000800008056000000
+3000000097000000350200009b0000007a020000050000009700350297007a029b007a029b00350297003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0cb0000000000250000000c00000004000000250000000c0000000800008056000000300000009b000000350200009e0000007a020000050000009b0035029b007a029e007a
+029e0035029b003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c0000000800008056000000300000009e00000035020000a20000007a020000050000009e0035029e007a02a2007a02a20035029e003502250000000c00000008000080250000000c000000000000802800
+00000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000a200000035020000a60000007a02000005000000a2003502a2007a02a6007a02a6003502a2003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc5000000000025
+0000000c00000004000000250000000c000000080000805600000030000000a600000035020000ab0000007a02000005000000a6003502a6007a02ab007a02ab003502a6003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac30000000000250000000c00000004000000250000000c000000080000805600000030000000ab000000
+35020000ae0000007a02000005000000ab003502ab007a02ae007a02ae003502ab003502250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c000000080000805600000030000000ae00000035020000b20000007a02000005000000ae003502ae007a02b2007a02b2003502ae0035
+02250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000b200000035020000b40000007a02000005000000b2003502b2007a02b4007a02b4003502b2003502250000000c00000008000080250000000c00000000000080280000000c0000000400
+0000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000260097fd8e0045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004
+0000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000000f0000001e020000cb00000091020000040000006002a027400ba027400b502360025023250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000
+0000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000
+0060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000030000000d6fdffffab000000c9fdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00
+0000000000005400000090000000540000003b02000087000000470200000100000000400d4200040dc254000000d6fdffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00c57706000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b00000010000000000000000000000016
+0000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000
+60000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000006c0000005e000000480200007d000000530200000100000000400d4200040dc25e000000c9fdffff050000004c000000000000
+000000000000000000ffffffffffffffff58000000430061007500730065002e7607000000060000000600000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff08400103240000001800
+00000210c0db02000000004000002600b7fdb400b7fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000
+210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000000f00000043020000cb00000071020000020000006002a025400ba025250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c000000
+0a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000002b0000005e020000340000006a0200000100000000400d4200040dc22b000000b3fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000100000000000
+0000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000003c0000005e020000b00000006a0200000100000000400d4200040dc23c000000b3fdffff150000004c000000000000000000000000000000ffffffffffffffff780000006d00610069006e004300610075007300
+6500200020003a004300610075007300650043006f006400650000000900000006000000030000000600000007000000060000000600000004000000060000000300000003000000030000000700000006000000060000000400000006000000070000000600000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c0000
+0010000000c0bfc0ff01000000120071fcba00a5002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000fb020000cc000000a0030000050000002001b02f2001003ac00c
+003ac00cb02f2001b02f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000120071fcba00a5003a
+0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000fbffffffe4020000e3000000b7030000040000002001003ac00c003ac00cb02f
+2001b02f250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000007041000063c400003a4300002543bed7e8ffe3f2fcffbed7e8ffe3f2fcff030000
+00000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000f0074fcba00a500250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000000f000000f8020000700000009d030000050000000f00f8020f009d0370009d037000f8020f00f802250000000c00
+000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000070000000f8020000750000009d030000050000007000f80270009d0375009d037500f8027000f802250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018
+0000000400000000000000faf0df0000000000250000000c00000004000000250000000c00000008000080560000003000000075000000f80200007a0000009d030000050000007500f80275009d037a009d037a00f8027500f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c0000000400000025000000
+0c0000000800008056000000300000007a000000f80200007f0000009d030000050000007a00f8027a009d037f009d037f00f8027a00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000007f000000f8020000850000009d030000050000
+007f00f8027f009d0385009d038500f8027f00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c00000008000080560000003000000085000000f80200008a0000009d030000050000008500f80285009d038a009d038a00f8028500f802250000000c000000080000802500
+00000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c0000000800008056000000300000008a000000f80200008e0000009d030000050000008a00f8028a009d038e009d038e00f8028a00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000
+000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000008e000000f8020000940000009d030000050000008e00f8028e009d0394009d039400f8028e00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080
+560000003000000094000000f8020000990000009d030000050000009400f80294009d0399009d039900f8029400f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c00000008000080560000003000000099000000f80200009c0000009d030000050000009900f80299009d
+039c009d039c00f8029900f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d00000000000250000000c00000004000000250000000c0000000800008056000000300000009c000000f8020000a10000009d030000050000009c00f8029c009d03a1009d03a100f8029c00f802250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000a1000000f8020000a50000009d03000005000000a100f802a1009d03a5009d03a500f802a100f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000
+000000250000000c00000004000000250000000c000000080000805600000030000000a5000000f8020000aa0000009d03000005000000a500f802a5009d03aa009d03aa00f802a500f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000
+aa000000f8020000af0000009d03000005000000aa00f802aa009d03af009d03af00f802aa00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000af000000f8020000b40000009d03000005000000af00f802af009d03b4009d03b400f8
+02af00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c000000080000805600000030000000b4000000f8020000ba0000009d03000005000000b400f802b4009d03ba009d03ba00f802b400f802250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ba000000f8020000bf0000009d03000005000000ba00f802ba009d03bf009d03bf00f802ba00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c
+00000004000000250000000c000000080000805600000030000000bf000000f8020000c40000009d03000005000000bf00f802bf009d03c4009d03c400f802bf00f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c000000080000805600000030000000c4000000f8020000
+c80000009d03000005000000c400f802c4009d03c8009d03c800f802c400f802250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000c8000000f8020000c90000009d03000005000000c800f802c8009d03c9009d03c900f802c800f802250000
+000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000f0074fcba00a5003a0000000c0000000a00000024000000240000000000803d0000
+0000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000f8ffffffe1020000e0000000b403000004000000f000d039900cd039900c802ff000802f250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000
+1703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00520000007001000004000000f6ffffff00000000000000000000000000000000010000010000050041005200490041004c0000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a013ada21883a6c2e766043af2608654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300bfba210091c58e102620036014f600e0e3058e102188d1701b02f0a916043af2663006e004f600e0e37bb4000b02f0a9170374b0ba8d56b0008000000a05a
+e1020000000058c8612348004b0b5c014b0b003daf26f0374b0b00000000fc57e10200000500c85ae102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000a48d6a01ac58e102f0f31a01ac90a6018839af2601000000f83caf26c458e10223e0c577003daf263a6c2e76a48d6a01f83caf26d858e102ad148b756476000800000000250000000c00000004000000180000000c00000000000000540000006c
+000000a8000000fb020000c6000000070300000100000000400d4200040dc2a800000016fdffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500000007000000060000000600000005000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000004000000180000000c00000000000000540000006c000000a800000008030000c6000000140300000100000000400d4200040dc2a800000009fdffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500ba2607000000060000000600000005000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00
+000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000000000001100000012
+0000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800000019000000f6fcffffc0000000e9fcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000530000001b03000086000000270300000100000000400d4200040dc253000000f6fcffff
+0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000
+000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00
+0000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000900000004e000000280300008a000000330300000100000000400d4200040dc24e000000e9fcffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004400690072006500630074004300610075007300650000000700000003
+0000000400000006000000060000000300000007000000060000000600000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000
+0f00d7fcc900d7fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000000000
+00000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000f8ffffff23030000e00000005103000002000000f000a033900ca033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffff
+ffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000
+00000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000003e0300001d0000004a0300000100000000400d4200040dc214000000d3fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+00100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000f0000000250000003e030000ae0000004a0300000100000000400d4200040dc225000000d3fcffff1b0000004c000000000000000000000000000000ffffffffffffffff840000007700610072006e0069006e0067004c006500760065006c00200020003a00
+5700610072006e0069006e0067004c006500760065006c0000000700000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000300000003000000030000000900000006000000030000000600000003000000060000000600000006000000060000000500000006000000030000000a0000001000000000000000110000000c00000010000000000000000000000046
+0000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000000000
+11000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000004b0300001d000000570300000100000000400d4200040dc214000000c6fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c00000010000000000000
+0000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000
+00000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000250000004b030000c5000000570300000100000000400d4200040dc225000000c6fcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000075006e007600650072006900660069006500640049006e0066006f0072006d0061
+00740069006f006e00200020003a0042004f004f004c00450041004e000000060000000600000005000000060000000300000003000000030000000300000006000000060000000300000006000000030000000600000003000000090000000600000003000000030000000600000006000000030000000300000003000000070000000800000008000000060000000700000007000000070000000a0000001000000000000000
+110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000
+0064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000580300001d000000640300000100000000400d4200040dc214000000b9fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000
+000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a8000000250000005803000077000000640300000100000000400d4200040dc225000000b9fcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000730075006200430061007500
+73006500200020003a0042005900540045001f240400000006000000060000000700000006000000060000000400000006000000030000000300000003000000070000000700000007000000070000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+00005800000014000000650300001d000000710300000100000000400d4200040dc214000000acfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c
+000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000
+8b00000054000000d0000000250000006503000090000000710300000100000000400d4200040dc225000000acfcffff160000004c000000000000000000000000000000ffffffffffffffff780000006c0065006e0067007400680041006600660065006300740065006400200020003a0049004e0054003300320003000000060000000600000006000000030000000600000007000000030000000300000006000000050000
+0003000000060000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000720300001d0000007e0300000100000000400d4200040dc214
+0000009ffcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000
+09000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c00000002500000072030000810000007e0300000100000000400d
+4200040dc2250000009ffcffff130000004c000000000000000000000000000000ffffffffffffffff74000000630061007500730065004f0066006600730065007400200020003a0049004e005400330032000000050000000600000006000000040000000600000008000000030000000300000004000000060000000300000003000000030000000300000003000000070000000700000006000000060000000a0000001000
+000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000007f0300001d0000008b0300000100000000400d4200040dc21400000092fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600000003000000
+0a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000020010000250000007f030000c50000008b0300000100000000400d4200040dc22500000092fcffff230000004c000000000000000000000000000000ffffffffffffffff940000006c0061006e00
+65005200650073007400720069006300740069006f006e007300200020003a004c0061006e0065005200650073007400720069006300740069006f006e0073004b0b0300000006000000060000000600000007000000060000000400000003000000030000000300000005000000030000000300000006000000060000000400000003000000030000000300000006000000060000000600000006000000070000000600000004
+0000000300000003000000030000000500000003000000030000000600000006000000040000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000140000008c0300001d000000980300000100000000400d4200040dc21400000085fcff
+ff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000
+00001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e8000000250000008c0300009f000000980300000100000000400d4200040dc225
+00000085fcffff1a0000004c000000000000000000000000000000ffffffffffffffff8000000066007200650065005400650078007400200020003a004c006f00630061006c0069007a006500640053007400720069006e00670003000000030000000600000006000000070000000600000005000000030000000300000003000000030000000600000006000000050000000600000003000000030000000500000006000000
+060000000700000003000000030000000300000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000120008fce20045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000
+00000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000012000000c4030000f400000009040000050000002001403c20019040400f9040400f403c2001403c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d
+462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000120008fce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000
+000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000fbffffffad0300000b010000200400000400000020019040400f9040400f403c2001403c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c000000
+0a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000704100407dc40000624300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000000f000bfce2004500250000000c0000000800008027000000180000000500000000000000fcf2e3
+0000000000250000000c00000005000000250000000c0000000800008056000000300000000f000000c10300008500000006040000050000000f00c1030f000604850006048500c1030f00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00000008000080560000003000
+000085000000c10300008a00000006040000050000008500c103850006048a0006048a00c1038500c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000008a000000c10300009000000006040000050000008a00c1038a0006049000060490
+00c1038a00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c00000008000080560000003000000090000000c10300009600000006040000050000009000c10390000604960006049600c1039000c103250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000000096000000c10300009b00000006040000050000009600c103960006049b0006049b00c1039600c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000
+000c00000005000000250000000c0000000800008056000000300000009b000000c1030000a100000006040000050000009b00c1039b000604a1000604a100c1039b00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000a1000000c103
+0000a70000000604000005000000a100c103a1000604a7000604a700c103a100c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000a7000000c1030000ad0000000604000005000000a700c103a7000604ad000604ad00c103a700c10325
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000ad000000c1030000b40000000604000005000000ad00c103ad000604b4000604b400c103ad00c103250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000b4000000c1030000ba0000000604000005000000b400c103b4000604ba000604ba00c103b400c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d00000000000250000000c000000050000
+00250000000c000000080000805600000030000000ba000000c1030000be0000000604000005000000ba00c103ba000604be000604be00c103ba00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c000000080000805600000030000000be000000c1030000c30000000604
+000005000000be00c103be000604c3000604c300c103be00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000c3000000c1030000c90000000604000005000000c300c103c3000604c9000604c900c103c300c103250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000c9000000c1030000ce0000000604000005000000c900c103c9000604ce000604ce00c103c900c103250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000ce000000c1030000d40000000604000005000000ce00c103ce000604d4000604d400c103ce00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000250000000c00000005000000250000000c0000
+00080000805600000030000000d4000000c1030000db0000000604000005000000d400c103d4000604db000604db00c103d400c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000db000000c1030000e20000000604000005000000db00
+c103db000604e2000604e200c103db00c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000e2000000c1030000e80000000604000005000000e200c103e2000604e8000604e800c103e200c103250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000e8000000c1030000ed0000000604000005000000e800c103e8000604ed000604ed00c103e800c103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000ed000000c1030000f10000000604000005000000ed00c103ed000604f1000604f100c103ed00c103250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000
+00000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000000f000bfce20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00
+000005000000250000000c00000005000080560000002c000000f8ffffffaa030000080100001d04000004000000f0006040100f6040100f103cf000103c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010
+000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000000000001100000012000000
+0c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000190000004afcffffe80000003dfcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000067000000c70300009a000000d30300000100000000400d4200040dc2670000004afcffff0b0000
+004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000
+000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+0000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000ac00000057000000d4030000aa000000df0300000100000000400d4200040dc2570000003dfcffff100000004c000000000000000000000000000000ffffffffffffffff6c0000004c0061006e0065005200650073007400720069006300740069006f006e007300
+060000000600000006000000060000000700000006000000060000000300000004000000030000000600000003000000030000000600000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000
+ff0840010324000000180000000210c0db02000000004000000f002bfcf1002bfc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000
+0000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000f8ffffffcf03000008010000fd03000002000000f000603e100f603e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005
+0000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000
+640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000014000000ea0300001d000000f60300000100000000400d4200040dc21400000027fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000
+000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000004401000025000000ea030000ed000000f60300000100000000400d4200040dc22500000027fcffff290000004c000000000000000000000000000000ffffffffffffffffa00000006c0061006e
+0065005200650073007400720069006300740069006f006e005400790070006500200020003a004c0061006e0065005200650073007400720069006300740069006f006e005400790070006500000003000000060000000600000006000000070000000600000004000000030000000300000003000000050000000300000003000000060000000600000007000000050000000600000006000000030000000300000003000000
+060000000600000006000000060000000700000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000500000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800
+000014000000f70300001d000000030400000100000000400d4200040dc2140000001afcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000
+54000000d800000025000000f70300009a000000030400000100000000400d4200040dc2250000001afcffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006e0075006d006200650072004f0066004c0061006e0065007300200020003a0049006e0074006500670065007200c57706000000060000000900000006000000060000000300000008000000030000000600000006000000060000
+000600000004000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000e100a6fcb20057002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000
+00000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000e100000014030000930100006b03000005000000100e4031100eb0363019b03630194031100e4031250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000
+00000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000e100a6fcb20057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000
+000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000ca000000fd020000aa0100008203000004000000100eb0363019b03630194031100e4031250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000
+00280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000005e4300c055c4000032430000ae42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000de00a9fcb2005700250000000c0000000800
+008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000de000000110300003b0100006803000005000000de001103de0068033b0168033b011103de001103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005
+000000250000000c0000000800008056000000300000003b010000110300003f01000068030000050000003b0111033b0168033f0168033f0111033b011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000003f0100001103000044010000
+68030000050000003f0111033f01680344016803440111033f011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000044010000110300004a010000680300000500000044011103440168034a0168034a01110344011103250000000c0000
+0008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c0000000800008056000000300000004a010000110300004f01000068030000050000004a0111034a0168034f0168034f0111034a011103250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800
+00000500000000000000f7ebd90000000000250000000c00000005000000250000000c0000000800008056000000300000004f010000110300005301000068030000050000004f0111034f01680353016803530111034f011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c
+00000008000080560000003000000053010000110300005801000068030000050000005301110353016803580168035801110353011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000058010000110300005d0100006803000005000000
+58011103580168035d0168035d01110358011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c0000000800008056000000300000005d010000110300006201000068030000050000005d0111035d01680362016803620111035d011103250000000c00000008000080250000
+000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c00000008000080560000003000000062010000110300006501000068030000050000006201110362016803650168036501110362011103250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000000000
+0000f2e4d00000000000250000000c00000005000000250000000c00000008000080560000003000000065010000110300006a010000680300000500000065011103650168036a0168036a01110365011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c0000000800008056
+000000300000006a010000110300006e01000068030000050000006a0111036a0168036e0168036e0111036a011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000006e010000110300007201000068030000050000006e0111036e016803
+72016803720111036e011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c00000008000080560000003000000072010000110300007701000068030000050000007201110372016803770168037701110372011103250000000c00000008000080250000000c000000000000
+80280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c00000008000080560000003000000077010000110300007c010000680300000500000077011103770168037c0168037c01110377011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc6000000
+0000250000000c00000005000000250000000c0000000800008056000000300000007c010000110300008101000068030000050000007c0111037c01680381016803810111037c011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000081
+010000110300008701000068030000050000008101110381016803870168038701110381011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c00000008000080560000003000000087010000110300008b010000680300000500000087011103870168038b0168038b011103
+87011103250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c0000000800008056000000300000008b010000110300008f01000068030000050000008b0111038b0168038f0168038f0111038b011103250000000c00000008000080250000000c00000000000080280000000c0000
+000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c0000000800008056000000300000008f010000110300009001000068030000050000008f0111038f01680390016803900111038f011103250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b0840
+0002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000de00a9fcb20057003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000
+000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000c7000000fa020000a70100007f03000004000000e00d80360019803600191031e00d1031250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000
+220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000006c0000006f010000140300008d010000200300000100000000400d4200040dc26f010000fdfcffff050000004c000000000000000000000000000000ffffffffffffffff5800000043006100750073006500e1020700000006000000060000000500
+0000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0
+ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000004000000180000000c00000000000000540000006c0000006f010000210300008d0100002d0300000100000000400d4200040dc26f010000f0fcffff050000004c000000000000000000000000000000ffffffffffffffff58000000
+430061007500730065002e7607000000060000000600000005000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000e8000000ddfcffff87010000d0fcffff160000000c00000001000000120000000c000000010000001b00
+0000100000000000000000000000160000000c0000000000000054000000900000001e0100003403000051010000400300000100000000400d4200040dc21e010000ddfcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00e1020600000004000000030000000300000006000000050000000300000006000000030000000600000006
+0000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000900000001701000041030000570100004c0300000100000000400d4200040d
+c217010000d0fcffff0b0000004c000000000000000000000000000000ffffffffffffffff640000004c0069006e006b006500640043006100750073006500000006000000030000000600000006000000060000000600000007000000060000000600000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000de00befc9001befc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a000000240000002400000000
+00803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000c70000003c030000a70100006a03000002000000e00d303500193035250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000e300000057030000ec000000630300000100000000400d4200040dc2e3000000bafc
+ffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000f4000000570300008c010000630300000100000000400d4200040dc2
+f4000000bafcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000063006100750073006500540072006100660066006900630049006e0063006900640065006e00740049006400200020003a0053005400520049004e0047000000050000000600000006000000040000000600000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000
+000600000006000000060000000300000003000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000dc01abfc1d0154002100000008000000620000000c00000001000000110000000c0000000100
+00000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000dc01000012030000f90200006603000005000000c01d2031c01d6036902f6036902f2031c01d2031250000000c00000007000080250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000dc01abfc1d0154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000
+380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000c5010000fb020000100300007d03000004000000c01d6036902f6036902f2031c01d2031250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080ec43008054c400808e430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000d901aefc1d01
+5400250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000d90100000f0300006d0200006303000005000000d9010f03d90163036d0263036d020f03d9010f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000
+000000250000000c00000005000000250000000c0000000800008056000000300000006d0200000f0300007502000063030000050000006d020f036d0263037502630375020f036d020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000
+750200000f0300007c020000630300000500000075020f03750263037c0263037c020f0375020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c0000000800008056000000300000007c0200000f0300008302000063030000050000007c020f037c0263038302630383020f
+037c020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000830200000f03000089020000630300000500000083020f03830263038902630389020f0383020f03250000000c00000008000080250000000c00000000000080280000000c00
+00000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c000000080000805600000030000000890200000f03000091020000630300000500000089020f03890263039102630391020f0389020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c
+00000005000000250000000c000000080000805600000030000000910200000f03000098020000630300000500000091020f03910263039802630398020f0391020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000980200000f030000
+a0020000630300000500000098020f0398026303a0026303a0020f0398020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c00000005000000250000000c000000080000805600000030000000a00200000f030000a90200006303000005000000a0020f03a0026303a9026303a9020f03a0020f03250000
+000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c000000080000805600000030000000a90200000f030000b10200006303000005000000a9020f03a9026303b1026303b1020f03a9020f03250000000c00000008000080250000000c00000000000080280000000c000000050000002700
+0000180000000500000000000000f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000b10200000f030000b60200006303000005000000b1020f03b1026303b6026303b6020f03b1020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c0000000500000025
+0000000c000000080000805600000030000000b60200000f030000bc0200006303000005000000b6020f03b6026303bc026303bc020f03b6020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000bc0200000f030000c302000063030000
+05000000bc020f03bc026303c3026303c3020f03bc020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c000000080000805600000030000000c30200000f030000ca0200006303000005000000c3020f03c3026303ca026303ca020f03c3020f03250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000ca0200000f030000d10200006303000005000000ca020f03ca026303d1026303d1020f03ca020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000eddec70000000000250000000c00000005000000250000000c000000080000805600000030000000d10200000f030000da0200006303000005000000d1020f03d1026303da026303da020f03d1020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c00000008
+0000805600000030000000da0200000f030000e30200006303000005000000da020f03da026303e3026303e3020f03da020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000e30200000f030000ea0200006303000005000000e3020f03
+e3026303ea026303ea020f03e3020f03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000ea0200000f030000f10200006303000005000000ea020f03ea026303f1026303f1020f03ea020f03250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000f10200000f030000f60200006303000005000000f1020f03f1026303f6026303f6020f03f1020f03250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000
+000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000d901aefc1d0154003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000
+210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000c2010000f80200000d0300007a03000004000000901d3036602f3036602ff030901df030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000
+3a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000
+006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000e3010000fcfcffffed020000effcffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000004e0200001503
+000081020000210300000100000000400d4200040dc24e020000fcfcffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000
+000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e40000002802000022030000a70200002d0300000100000000400d4200040dc228020000effcffff190000004c000000000000000000000000000000ffffffffffffffff800000
+00560065006800690063006c006500520065006c0061007400650064005200650073007400720069006300740069006f006e000001070000000600000006000000030000000600000003000000060000000700000006000000030000000600000003000000060000000600000007000000060000000600000003000000040000000300000006000000030000000300000006000000060000000a00000010000000000000001100
+00000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000d901ddfcf602ddfc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c
+000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000c20100001d030000
+0d0300004b03000002000000901d4033602f4033250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000
+00010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00
+00005400000058000000de01000038030000e7010000440300000100000000400d4200040dc2de010000d9fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b000000540000003c010000ef01000038030000a1020000440300000100000000400d4200040dc2ef010000d9fcffff280000004c000000000000000000000000000000ffffffffffffffff9c0000007200650073007400720069006300740069006f006e005400790070006500200020003a005200650073007400720069006300740069006f006e00540079007000650020005b0030002e002e0031005d00030000
+000600000004000000030000000300000003000000050000000300000003000000060000000600000007000000050000000600000006000000030000000300000003000000070000000600000004000000030000000300000003000000050000000300000003000000060000000600000007000000050000000600000006000000030000000300000006000000030000000300000006000000030000000a000000100000000000
+0000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000de01000045030000e7010000510300000100000000400d4200040dc2de010000ccfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000
+1000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000008010000ef0100004503000079020000510300000100000000400d4200040dc2ef010000ccfcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000072006500730074007200
+69006300740069006f006e00560061006c0075006500200020003a0049004e0054003300320020005b0030002e002e0031005d00ca770300000006000000040000000300000003000000030000000500000003000000030000000600000006000000070000000600000003000000060000000600000003000000030000000300000003000000070000000700000006000000060000000300000003000000060000000300000003
+00000006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000de01000052030000e70100005e0300000100000000400d4200040dc2de010000bffcffff020000004c000000000000000000000000000000ffffffffffffff
+ff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000098010000ef01000052030000f20200005e0300000100000000400d4200040dc2ef010000bffcffff370000004c000000000000000000000000000000ff
+ffffffffffffffbc0000007200650073007400720069006300740069006f006e004c006f0063006100740069006f006e005200650066006500720065006e0063006500200020003a004c006f0063006100740069006f006e005200650066006500720065006e006300650020005b0030002e002e0031005d0000000300000006000000040000000300000003000000030000000500000003000000030000000600000006000000
+0600000006000000050000000600000003000000030000000600000006000000070000000600000003000000060000000300000006000000060000000500000006000000030000000300000003000000060000000600000005000000060000000300000003000000060000000600000007000000060000000300000006000000030000000600000006000000050000000600000003000000030000000600000003000000030000
+0006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001e0212fcb20045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200
+0000250000000c00000001000000250000000c0000000800008056000000300000001e020000ba030000d0020000ff03000005000000e021a03be021f03f002df03f002da03be021a03b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db00
+00000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001e0212fcb20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000
+250000000c00000005000000250000000c00000005000080560000002c00000007020000a3030000e70200001604000004000000e021f03f002df03f002da03be021a03b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d46
+2b08400201580000004c0000000210c0db04000000040000000000000000c0064400c07ac40000324300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000001b0215fcb2004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c000000050000002500
+00000c0000000800008056000000300000001b020000b703000078020000fc030000050000001b02b7031b02fc037802fc037802b7031b02b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00000008000080560000003000000078020000b70300007c020000fc03000005
+0000007802b7037802fc037c02fc037c02b7037802b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000007c020000b703000081020000fc030000050000007c02b7037c02fc038102fc038102b7037c02b703250000000c00000008000080
+250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000081020000b703000087020000fc030000050000008102b7038102fc038702fc038702b7038102b703250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000050000
+0000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000087020000b70300008c020000fc030000050000008702b7038702fc038c02fc038c02b7038702b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c0000000800
+008056000000300000008c020000b703000090020000fc030000050000008c02b7038c02fc039002fc039002b7038c02b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c00000008000080560000003000000090020000b703000095020000fc030000050000009002b70390
+02fc039502fc039502b7039002b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000095020000b70300009a020000fc030000050000009502b7039502fc039a02fc039a02b7039502b703250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c0000000800008056000000300000009a020000b70300009f020000fc030000050000009a02b7039a02fc039f02fc039f02b7039a02b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d2
+0000000000250000000c00000005000000250000000c0000000800008056000000300000009f020000b7030000a2020000fc030000050000009f02b7039f02fc03a202fc03a202b7039f02b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c00000008000080560000003000
+0000a2020000b7030000a7020000fc03000005000000a202b703a202fc03a702fc03a702b703a202b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000a7020000b7030000ab020000fc03000005000000a702b703a702fc03ab02fc03ab
+02b703a702b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000ab020000b7030000af020000fc03000005000000ab02b703ab02fc03af02fc03af02b703ab02b703250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000af020000b7030000b4020000fc03000005000000af02b703af02fc03b402fc03b402b703af02b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000
+000c00000005000000250000000c000000080000805600000030000000b4020000b7030000b9020000fc03000005000000b402b703b402fc03b902fc03b902b703b402b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000b9020000b703
+0000be020000fc03000005000000b902b703b902fc03be02fc03be02b703b902b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000be020000b7030000c4020000fc03000005000000be02b703be02fc03c402fc03c402b703be02b70325
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c20000000000250000000c00000005000000250000000c000000080000805600000030000000c4020000b7030000c8020000fc03000005000000c402b703c402fc03c802fc03c802b703c402b703250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c000000080000805600000030000000c8020000b7030000cc020000fc03000005000000c802b703c802fc03cc02fc03cc02b703c802b703250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c000000050000
+00250000000c000000080000805600000030000000cc020000b7030000cd020000fc03000005000000cc02b703cc02fc03cd02fc03cd02b703cc02b703250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f01000000010000000000
+00000210c0db00000000000000ff0b400040180000000c000000010000001b0215fcb20045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008056
+0000002c00000004020000a0030000e40200001304000004000000b021c03fd02cc03fd02c703bb021703b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c00000000000000
+0a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff
+00250000000c00000003000000180000000c0000000000000054000000b400000046020000c0030000a2020000cb0300000100000000400d4200040dc24602000051fcffff110000004c000000000000000000000000000000ffffffffffffffff700000004c006f0063006100740069006f006e005200650066006500720065006e00630065000000060000000600000006000000060000000300000003000000060000000600
+00000700000006000000030000000600000004000000060000000600000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001b
+023ffccd023ffc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000
+000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000004020000bb030000e4020000e903000002000000b021203dd02c203d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffff
+ff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000
+000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000020020000d603000029020000e20300000100000000400d4200040dc2200200003bfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c0000001000000000
+00000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000
+100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000000801000031020000d6030000c9020000e20300000100000000400d4200040dc2310200003bfcffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000006c006f0063006100740069006f006e005200650066006500720065006e0063
+0065005400790070006500200020003a0049006e00740065006700650072000000030000000600000005000000060000000300000003000000060000000600000007000000060000000300000006000000030000000600000006000000050000000600000007000000050000000600000006000000030000000300000003000000030000000600000003000000060000000600000006000000030000000a000000100000000000
+0000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000020020000e303000029020000ef0300000100000000400d4200040dc2200200002efcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000
+1000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b800000031020000e30300007c020000ef0300000100000000400d4200040dc2310200002efcffff120000004c000000000000000000000000000000ffffffffffffffff7000000064006100740061002000
+20003a00620079007400650020005b0030002e002e002a005d000600000006000000030000000600000003000000030000000300000006000000050000000300000006000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000058
+0068fe8f0045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000005800000064010000e7000000a901000005000000800540168005901a700e901a700e40168005401625000000
+0c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000580068fe8f0045003a0000000c0000000a000000240000
+00240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000410000004d010000fe000000c0010000040000008005901a700e901a700e401680054016250000000c0000000700
+0080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000aa420080cac300000f4300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3
+f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000055006bfe8f004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c0000000800008056000000300000005500000061010000a0000000a601000005000000550061015500a601a000a601a000610155006101250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000a000000061010000a3000000a601000005000000a0006101a000a601a300a601a3006101a0006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df
+0000000000250000000c00000005000000250000000c000000080000805600000030000000a300000061010000a7000000a601000005000000a3006101a300a601a700a601a7006101a3006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000
+0000a700000061010000ac000000a601000005000000a7006101a700a601ac00a601ac006101a7006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000ac00000061010000b0000000a601000005000000ac006101ac00a601b000a601b0
+006101ac006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c000000080000805600000030000000b000000061010000b3000000a601000005000000b0006101b000a601b300a601b3006101b0006101250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000b300000061010000b7000000a601000005000000b3006101b300a601b700a601b7006101b3006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000
+000c00000005000000250000000c000000080000805600000030000000b700000061010000bb000000a601000005000000b7006101b700a601bb00a601bb006101b7006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000bb0000006101
+0000bf000000a601000005000000bb006101bb00a601bf00a601bf006101bb006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000bf00000061010000c2000000a601000005000000bf006101bf00a601c200a601c2006101bf00610125
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000000c000000080000805600000030000000c200000061010000c5000000a601000005000000c2006101c200a601c500a601c5006101c2006101250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c000000080000805600000030000000c500000061010000c9000000a601000005000000c5006101c500a601c900a601c9006101c5006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c000000050000
+00250000000c000000080000805600000030000000c900000061010000cc000000a601000005000000c9006101c900a601cc00a601cc006101c9006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000cc00000061010000d0000000a601
+000005000000cc006101cc00a601d000a601d0006101cc006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c000000080000805600000030000000d000000061010000d4000000a601000005000000d0006101d000a601d400a601d4006101d0006101250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000d400000061010000d8000000a601000005000000d4006101d400a601d800a601d8006101d4006101250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000d800000061010000dc000000a601000005000000d8006101d800a601dc00a601dc006101d8006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c0000
+00080000805600000030000000dc00000061010000e0000000a601000005000000dc006101dc00a601e000a601e0006101dc006101250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000e000000061010000e4000000a601000005000000e000
+6101e000a601e400a601e4006101e0006101250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000055006bfe8f0045003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000003e0000004a010000fb000000bd010000040000005005601a400e601a400e101650051016
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e40000005a0000006a010000e000
+0000750100000100000000400d4200040dc25a000000a7feffff190000004c000000000000000000000000000000ffffffffffffffff80000000430061007500730065004400690073006300720069006d0069006e006100740065006400560061007200690061006e0074001e00070000000600000006000000060000000600000007000000030000000600000006000000040000000300000009000000030000000600000006
+000000030000000600000006000000070000000600000004000000030000000600000006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000
+00400000550095fee40095fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000
+0000000000000000000000000000000000250000000c00000005000000250000000c0000000500008057000000240000003e00000065010000fb00000093010000020000005005c017400ec017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c00
+0000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010
+0000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000580000005a00000080010000630000008c0100000100000000400d4200040dc25a00000091feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000
+100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000
+000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc0000006b00000080010000dc0000008c0100000100000000400d4200040dc26b00000091feffff150000004c000000000000000000000000000000ffffffffffffffff78000000630061007500730065005400790070006500200020003a004300
+6100750073006500540079007000650000000500000006000000060000000400000006000000070000000500000006000000060000000300000003000000030000000700000006000000060000000400000006000000070000000500000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010
+0000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff0025000000
+0c00000002000000180000000c0000008b00000054000000580000005a0000008d01000063000000990100000100000000400d4200040dc25a00000084feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000
+000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffff
+ff00250000000c00000002000000180000000c0000008b00000054000000d80000006b0000008d010000e4000000990100000100000000400d4200040dc26b00000084feffff170000004c000000000000000000000000000000ffffffffffffffff7c0000006300610075007300650055006e0069006f006e00200020003a004300610075007300650055006e0069006f006e0000000500000006000000060000000400000006
+0000000700000006000000030000000600000006000000030000000300000003000000070000000600000006000000040000000600000007000000060000000300000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000001600fdfd590045002100000008000000620000000c000000
+01000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000016000000cf0100006f00000014020000050000006001f01c60014021f0064021f006f01c6001f01c250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001600fdfd590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000
+000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000ffffffffb8010000860000002b0200000400000060014021f0064021f006f01c6001f01c250000000c00000007000080250000000c00000000000080240000002400000000
+008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000009841000000c40000b24200008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000
+0200000001000000130000fe59004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000013000000cc0100004100000011020000050000001300cc0113001102410011024100cc011300cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000
+000500000000000000fbf1e20000000000250000000c00000005000000250000000c00000008000080560000003000000041000000cc0100004200000011020000050000004100cc0141001102420011024200cc014100cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00
+000008000080560000003000000042000000cc0100004300000011020000050000004200cc0142001102430011024300cc014200cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0e00000000000250000000c00000005000000250000000c00000008000080560000003000000043000000cc01000044000000110200000500000043
+00cc0143001102440011024400cc014300cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c00000008000080560000003000000044000000cc0100004500000011020000050000004400cc0144001102450011024500cc014400cc01250000000c0000000800008025000000
+0c00000000000080280000000c0000000500000027000000180000000500000000000000faefde0000000000250000000c00000005000000250000000c00000008000080560000003000000045000000cc0100004600000011020000050000004500cc0145001102460011024600cc014500cc01250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000000000
+00f9eedd0000000000250000000c00000005000000250000000c00000008000080560000003000000046000000cc0100004800000011020000050000004600cc0146001102480011024800cc014600cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600
+00003000000048000000cc0100004900000011020000050000004800cc0148001102490011024900cc014800cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000049000000cc0100004a00000011020000050000004900cc01490011024a
+0011024a00cc014900cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c0000000800008056000000300000004a000000cc0100004c00000011020000050000004a00cc014a0011024c0011024c00cc014a00cc01250000000c00000008000080250000000c00000000000080
+280000000c0000000500000027000000180000000500000000000000f7ead90000000000250000000c00000005000000250000000c0000000800008056000000300000004c000000cc0100004d00000011020000050000004c00cc014c0011024d0011024d00cc014c00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead800000000
+00250000000c00000005000000250000000c0000000800008056000000300000004d000000cc0100004e00000011020000050000004d00cc014d0011024e0011024e00cc014d00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c0000000800008056000000300000004e00
+0000cc0100004f00000011020000050000004e00cc014e0011024f0011024f00cc014e00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e9d60000000000250000000c00000005000000250000000c0000000800008056000000300000004f000000cc0100005000000011020000050000004f00cc014f001102500011025000cc014f
+00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c00000008000080560000003000000050000000cc0100005100000011020000050000005000cc0150001102510011025100cc015000cc01250000000c00000008000080250000000c00000000000080280000000c000000
+0500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c00000008000080560000003000000051000000cc0100005200000011020000050000005100cc0151001102520011025200cc015100cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d40000000000250000000c0000
+0005000000250000000c00000008000080560000003000000052000000cc0100005300000011020000050000005200cc0152001102530011025300cc015200cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c00000008000080560000003000000053000000cc0100005400
+000011020000050000005300cc0153001102540011025400cc015300cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d20000000000250000000c00000005000000250000000c00000008000080560000003000000054000000cc0100005500000011020000050000005400cc0154001102550011025500cc015400cc01250000000c
+00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c00000008000080560000003000000055000000cc0100005600000011020000050000005500cc0155001102560011025600cc015500cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000
+180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c00000008000080560000003000000056000000cc0100005700000011020000050000005600cc0156001102570011025700cc015600cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e4d00000000000250000000c00000005000000250000
+000c00000008000080560000003000000057000000cc0100005800000011020000050000005700cc0157001102580011025800cc015700cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c00000008000080560000003000000058000000cc01000059000000110200000500
+00005800cc0158001102590011025900cc015800cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3ce0000000000250000000c00000005000000250000000c00000008000080560000003000000059000000cc0100005a00000011020000050000005900cc01590011025a0011025a00cc015900cc01250000000c0000000800008025
+0000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c0000000800008056000000300000005a000000cc0100005b00000011020000050000005a00cc015a0011025b0011025b00cc015a00cc01250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000
+00000000f0e1cc0000000000250000000c00000005000000250000000c0000000800008056000000300000005b000000cc0100005c00000011020000050000005b00cc015b0011025c0011025c00cc015b00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cb0000000000250000000c00000005000000250000000c000000080000
+8056000000300000005c000000cc0100005d00000011020000050000005c00cc015c0011025d0011025d00cc015c00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800008056000000300000005d000000cc0100005f00000011020000050000005d00cc015d00
+11025f0011025f00cc015d00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c0000000800008056000000300000005f000000cc0100006000000011020000050000005f00cc015f001102600011026000cc015f00cc01250000000c00000008000080250000000c00000000
+000080280000000c0000000500000027000000180000000500000000000000eddec80000000000250000000c00000005000000250000000c00000008000080560000003000000060000000cc0100006100000011020000050000006000cc0160001102610011026100cc016000cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec700
+00000000250000000c00000005000000250000000c00000008000080560000003000000061000000cc0100006200000011020000050000006100cc0161001102620011026200cc016100cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c0000000800008056000000300000
+0062000000cc0100006300000011020000050000006200cc0162001102630011026300cc016200cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c00000008000080560000003000000063000000cc0100006500000011020000050000006300cc0163001102650011026500
+cc016300cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000065000000cc0100006600000011020000050000006500cc0165001102660011026600cc016500cc01250000000c00000008000080250000000c00000000000080280000000c
+0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c00000008000080560000003000000066000000cc0100006800000011020000050000006600cc0166001102680011026800cc016600cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c2000000000025000000
+0c00000005000000250000000c00000008000080560000003000000068000000cc0100006900000011020000050000006800cc0168001102690011026900cc016800cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c00000008000080560000003000000069000000cc0100
+006a00000011020000050000006900cc01690011026a0011026a00cc016900cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c00000005000000250000000c0000000800008056000000300000006a000000cc0100006b00000011020000050000006a00cc016a0011026b0011026b00cc016a00cc012500
+00000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8bf0000000000250000000c00000005000000250000000c0000000800008056000000300000006b000000cc0100006c00000011020000050000006b00cc016b0011026c0011026c00cc016b00cc01250000000c00000008000080250000000c00000000000080280000000c0000000500000025
+0000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000130000fe590045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000
+3800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000fcffffffb501000083000000280200000400000030011021c0061021c006c01c3001c01c250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b000000100000006000
+0000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000001d0000003ffeffff6300000032feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000a00000001d000000d201000062000000de0100000100000000400d4200040dc21d0000003ffeffff0e0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f002e002e002e0006000000060000000600000006000000090000000600000003000000060000000300000003000000060000000300000003000000030000001b000000
+100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000008400000025000000df0100005a000000ea0100000100000000400d4200040dc22500000032fe
+ffff090000004c000000000000000000000000000000ffffffffffffffff60000000430061007500730065005400790070006500b1000700000006000000060000000600000006000000050000000500000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db00000000860000000000000000
+00803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000130020fe6c0020fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d00000000
+00000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000fcffffffda0100008300000008020000020000003001101fc006101f250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010000000600000006000
+00000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000018000000f50100001b000000010200000100000000400d4200040dc2180000001cfeffff010000004c000000000000000000000000
+000000ffffffffffffffff5000000020008d00030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000
+600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000008800000029000000f501000061000000010200000100000000400d4200040dc2290000001cfeffff0a0000004c00000000000000000000
+0000000000ffffffffffffffff6000000044004900520045004300540020003d0020003100070000000300000007000000070000000700000007000000030000000600000003000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000054
+00000018000000020200001b0000000e0200000100000000400d4200040dc2180000000ffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00880000002900000002020000600000000e0200000100000000400d4200040dc2290000000ffeffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004c0049004e004b004500440020003d0020003200060000000300000007000000070000000700000007000000030000000600000003000000060000000a0000001000000000000000110000000c0000001000000000000000000000004600
+00002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000ce0085fd980045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c000000080000805600000030000000ce0000004702000066
+0100008c02000005000000e00c7024e00cc0286016c02860167024e00c7024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040
+180000000c00000001000000ce0085fd980045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000b7000000300200007d0100
+00a302000004000000e00cc0286016c02860167024e00c7024250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000004b4300001ec4000018430000
+8a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000cb0088fd98004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c000000080000805600000030000000cb000000440200001a0100008902000005000000cb004402cb
+0089021a0189021a014402cb004402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c0000000800008056000000300000001a010000440200001e01000089020000050000001a0144021a0189021e0189021e0144021a014402250000000c00000008000080250000000c000000
+00000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000001e010000440200002201000089020000050000001e0144021e01890222018902220144021e014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd
+0000000000250000000c00000005000000250000000c00000008000080560000003000000022010000440200002601000089020000050000002201440222018902260189022601440222014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8eddc0000000000250000000c00000005000000250000000c00000008000080560000003000
+000026010000440200002901000089020000050000002601440226018902290189022901440226014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c00000008000080560000003000000029010000440200002d010000890200000500000029014402290189022d0189022d
+01440229014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c0000000800008056000000300000002d010000440200003101000089020000050000002d0144022d01890231018902310144022d014402250000000c00000008000080250000000c0000000000008028000000
+0c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c00000008000080560000003000000031010000440200003501000089020000050000003101440231018902350189023501440231014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000
+000c00000005000000250000000c00000008000080560000003000000035010000440200003901000089020000050000003501440235018902390189023901440235014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030000000390100004402
+00003c010000890200000500000039014402390189023c0189023c01440239014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c0000000800008056000000300000003c010000440200004001000089020000050000003c0144023c01890240018902400144023c01440225
+0000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c00000008000080560000003000000040010000440200004301000089020000050000004001440240018902430189024301440240014402250000000c00000008000080250000000c00000000000080280000000c00000005000000
+27000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c00000008000080560000003000000043010000440200004601000089020000050000004301440243018902460189024601440243014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c000000050000
+00250000000c00000008000080560000003000000046010000440200004a010000890200000500000046014402460189024a0189024a01440246014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c0000000800008056000000300000004a010000440200004e0100008902
+0000050000004a0144024a0189024e0189024e0144024a014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c0000000800008056000000300000004e010000440200005201000089020000050000004e0144024e01890252018902520144024e014402250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000052010000440200005601000089020000050000005201440252018902560189025601440252014402250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000ecdbc40000000000250000000c00000005000000250000000c00000008000080560000003000000056010000440200005b010000890200000500000056014402560189025b0189025b01440256014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c0000
+000800008056000000300000005b010000440200005f01000089020000050000005b0144025b0189025f0189025f0144025b014402250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c0000000800008056000000300000005f010000440200006301000089020000050000005f01
+44025f01890263018902630144025f014402250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000cb0088fd980045003a0000000c
+0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000b40000002d0200007a010000a002000004000000b00c90283016902830164024b00c4024
+250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000d5000000c7fdffff5a01
+0000bafdffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000078000000040100004a0200002b010000560200000100000000400d4200040dc204010000c7fdffff070000004c000000000000000000000000000000ffffffffffffffff5c000000ab0075006e0069006f006e00bb0000000600000006000000060000000300000006
+00000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000
+0800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c000000000000005400000088000000fa000000570200003501000062020000010000
+0000400d4200040dc2fa000000bafdffff0a0000004c000000000000000000000000000000ffffffffffffffff600000004300610075007300650055006e0069006f006e00070000000600000006000000060000000600000007000000060000000300000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c00
+00000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000cb00a8fd6301a8fd00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a000000240000002400000000
+00803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805700000024000000b4000000520200007a0100008002000002000000b00c902630169026250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300
+0013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000d00000006d020000d9000000790200000100000000400d4200040dc2d0000000a4fd
+ffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010
+0000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000e10000006d02000059010000790200000100000000400d4200040dc2
+e1000000a4fdffff190000004c000000000000000000000000000000ffffffffffffffff8000000064006900720065006300740043006100750073006500200020003a00440069007200650063007400430061007500730065000000060000000300000003000000060000000500000003000000070000000600000006000000040000000600000003000000030000000300000007000000030000000300000006000000050000
+000300000007000000060000000600000004000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000100000006000
+0000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000d00000007a020000d9000000860200000100000000400d4200040dc2d000000097fdffff020000004c0000000000000000
+00000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304000009000000
+1000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e4000000e10000007a0200005f010000860200000100000000400d4200040dc2e100000097fdffff190000004c0000
+00000000000000000000000000ffffffffffffffff800000006c0069006e006b006500640043006100750073006500200020003a004c0069006e006b0065006400430061007500730065000000030000000300000006000000040000000600000006000000070000000600000006000000040000000600000003000000030000000300000006000000030000000600000004000000060000000600000007000000060000000600
+000004000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004f010cfc900045002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002
+000000250000000c00000001000000250000000c0000000800008056000000300000004f010000c0030000df0100000504000005000000f014003cf0145040f01d5040f01d003cf014003c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db
+0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004f010cfc900045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc0000000000000000000000000
+00250000000c00000005000000250000000c00000005000080560000002c00000038010000a9030000f60100001c04000004000000f0145040f01d5040f01d003cf014003c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000460000008400000078000000454d
+462b08400201580000004c0000000210c0db0400000004000000000000000000a64300407cc40000104300008a42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000004c010ffc90004500250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c0000000500000025
+0000000c0000000800008056000000300000004c010000bd0300009701000002040000050000004c01bd034c010204970102049701bd034c01bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c00000008000080560000003000000097010000bd0300009b01000002040000
+050000009701bd03970102049b0102049b01bd039701bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faf0df0000000000250000000c00000005000000250000000c0000000800008056000000300000009b010000bd0300009f01000002040000050000009b01bd039b0102049f0102049f01bd039b01bd03250000000c000000080000
+80250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c0000000800008056000000300000009f010000bd030000a301000002040000050000009f01bd039f010204a3010204a301bd039f01bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500
+000000000000f8ecdb0000000000250000000c00000005000000250000000c000000080000805600000030000000a3010000bd030000a70100000204000005000000a301bd03a3010204a7010204a701bd03a301bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebd90000000000250000000c00000005000000250000000c00000008
+0000805600000030000000a7010000bd030000ab0100000204000005000000a701bd03a7010204ab010204ab01bd03a701bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c000000080000805600000030000000ab010000bd030000af0100000204000005000000ab01bd03
+ab010204af010204af01bd03ab01bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000af010000bd030000b30100000204000005000000af01bd03af010204b3010204b301bd03af01bd03250000000c00000008000080250000000c0000
+0000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000b3010000bd030000b70100000204000005000000b301bd03b3010204b7010204b701bd03b301bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5
+d10000000000250000000c00000005000000250000000c000000080000805600000030000000b7010000bd030000bb0100000204000005000000b701bd03b7010204bb010204bb01bd03b701bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c000000080000805600000030
+000000bb010000bd030000be0100000204000005000000bb01bd03bb010204be010204be01bd03bb01bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c000000080000805600000030000000be010000bd030000c10100000204000005000000be01bd03be010204c1010204
+c101bd03be01bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000c1010000bd030000c40100000204000005000000c101bd03c1010204c4010204c401bd03c101bd03250000000c00000008000080250000000c00000000000080280000
+000c0000000500000027000000180000000500000000000000efe0ca0000000000250000000c00000005000000250000000c000000080000805600000030000000c4010000bd030000c80100000204000005000000c401bd03c4010204c8010204c801bd03c401bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc800000000002500
+00000c00000005000000250000000c000000080000805600000030000000c8010000bd030000cc0100000204000005000000c801bd03c8010204cc010204cc01bd03c801bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c000000080000805600000030000000cc010000bd
+030000d00100000204000005000000cc01bd03cc010204d0010204d001bd03cc01bd03250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c000000080000805600000030000000d0010000bd030000d40100000204000005000000d001bd03d0010204d4010204d401bd03d001bd03
+250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000d4010000bd030000d80100000204000005000000d401bd03d4010204d8010204d801bd03d401bd03250000000c00000008000080250000000c00000000000080280000000c000000050000
+0027000000180000000500000000000000e8d7bf0000000000250000000c00000005000000250000000c000000080000805600000030000000d8010000bd030000dc0100000204000005000000d801bd03d8010204dc010204dc01bd03d801bd03250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b084000023800
+00002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004c010ffc900045003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000000000000000
+0000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000035010000a6030000f30100001904000004000000c0142040c01d2040c01dd03bc014d03b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a00000022000000
+0c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+00100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000d800000056010000c6030000d2010000d10300000100000000400d4200040dc2560100004bfcffff170000004c000000000000000000000000000000ffffffffffffffff7c00000063006f006d006d006f006e003a003a004c006f00630061006c0069007a00
+6500640053007400720069006e006700902b06000000060000000900000009000000060000000600000003000000030000000600000006000000060000000600000003000000030000000500000006000000060000000700000003000000040000000300000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c
+0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000004c0139fcdc0139fc00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a0000002400000024000000
+0000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000035010000c1030000f3010000ef03000002000000c014803dc01d803d250000000c00000007000080250000000c000000000000
+80240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000051010000dc0300005a010000e80300000100000000400d4200040dc25101000035
+fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c400000062010000dc030000cd010000e80300000100000000400d4200040d
+c26201000035fcffff140000004c000000000000000000000000000000ffffffffffffffff7400000063006f0075006e0074007200790043006f0064006500200020003a0053005400520049004e00470005000000060000000600000006000000030000000300000005000000070000000600000006000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000
+000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064
+0000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000051010000e90300005a010000f50300000100000000400d4200040dc25101000028fcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b0020000600000003000000
+0a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000
+0018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000cc00000062010000e9030000d8010000f50300000100000000400d4200040dc26201000028fcffff150000004c000000000000000000000000000000ffffffffffffffff780000006c0061006e00
+6700750061006700650043006f0064006500200020003a0053005400520049004e00470000000300000006000000060000000600000006000000060000000600000006000000070000000600000006000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000000000000110000000c000000100000000000000000000000460000001c0000001000000045
+4d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c000000
+01000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000051010000f60300005a010000020400000100000000400d4200040dc2510100001bfcffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c0000
+0010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000001000000000000000110000001200
+00000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000062010000f6030000ab010000020400000100000000400d4200040dc2620100001bfcffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000073007400720069006e006700200020003a0053005400520049004e004700000004000000030000000300000003
+00000006000000060000000300000003000000030000000700000007000000070000000300000007000000080000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000002301d8fdc10054002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000
+0000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c00000008000080560000003000000023010000e5010000e401000039020000050000003012501e30129023401e9023401e501e3012501e250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000002301d8fdc10054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000
+00003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c0000000c010000ce010000fb010000500200000400000030129023401e9023401e501e3012501e250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000050000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db04000000040000000000000000009043004009c4000041430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000002001dbfdc1005400250000000c00000008000080
+27000000180000000500000000000000fcf2e30000000000250000000c00000005000000250000000c00000008000080560000003000000020010000e20100008501000036020000050000002001e20120013602850136028501e2012001e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c000000050000
+00250000000c00000008000080560000003000000085010000e20100008901000036020000050000008501e20185013602890136028901e2018501e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c00000008000080560000003000000089010000e20100008f0100003602
+0000050000008901e201890136028f0136028f01e2018901e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f9eedd0000000000250000000c00000005000000250000000c0000000800008056000000300000008f010000e20100009501000036020000050000008f01e2018f013602950136029501e2018f01e201250000000c00000008
+000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f8ecdb0000000000250000000c00000005000000250000000c00000008000080560000003000000095010000e20100009a01000036020000050000009501e201950136029a0136029a01e2019501e201250000000c00000008000080250000000c00000000000080280000000c000000050000002700000018000000
+0500000000000000f7ebd90000000000250000000c00000005000000250000000c0000000800008056000000300000009a010000e20100009f01000036020000050000009a01e2019a0136029f0136029f01e2019a01e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d70000000000250000000c00000005000000250000000c0000
+000800008056000000300000009f010000e2010000a401000036020000050000009f01e2019f013602a4013602a401e2019f01e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d50000000000250000000c00000005000000250000000c000000080000805600000030000000a4010000e2010000aa0100003602000005000000a401
+e201a4013602aa013602aa01e201a401e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f4e7d30000000000250000000c00000005000000250000000c000000080000805600000030000000aa010000e2010000af0100003602000005000000aa01e201aa013602af013602af01e201aa01e201250000000c00000008000080250000000c
+00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d20000000000250000000c00000005000000250000000c000000080000805600000030000000af010000e2010000b20100003602000005000000af01e201af013602b2013602b201e201af01e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000
+f2e5d00000000000250000000c00000005000000250000000c000000080000805600000030000000b2010000e2010000b60100003602000005000000b201e201b2013602b6013602b601e201b201e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e3cf0000000000250000000c00000005000000250000000c00000008000080560000
+0030000000b6010000e2010000ba0100003602000005000000b601e201b6013602ba013602ba01e201b601e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f0e2cd0000000000250000000c00000005000000250000000c000000080000805600000030000000ba010000e2010000bf0100003602000005000000ba01e201ba013602bf01
+3602bf01e201ba01e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0cb0000000000250000000c00000005000000250000000c000000080000805600000030000000bf010000e2010000c30100003602000005000000bf01e201bf013602c3013602c301e201bf01e201250000000c00000008000080250000000c0000000000008028
+0000000c0000000500000027000000180000000500000000000000eedfc90000000000250000000c00000005000000250000000c000000080000805600000030000000c3010000e2010000c80100003602000005000000c301e201c3013602c8013602c801e201c301e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eddec70000000000
+250000000c00000005000000250000000c000000080000805600000030000000c8010000e2010000ce0100003602000005000000c801e201c8013602ce013602ce01e201c801e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdcc50000000000250000000c00000005000000250000000c000000080000805600000030000000ce0100
+00e2010000d40100003602000005000000ce01e201ce013602d4013602d401e201ce01e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ebdac30000000000250000000c00000005000000250000000c000000080000805600000030000000d4010000e2010000d90100003602000005000000d401e201d4013602d9013602d901e201d401
+e201250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ead9c10000000000250000000c00000005000000250000000c000000080000805600000030000000d9010000e2010000de0100003602000005000000d901e201d9013602de013602de01e201d901e201250000000c00000008000080250000000c00000000000080280000000c00000005
+00000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c000000080000805600000030000000de010000e2010000e10100003602000005000000de01e201de013602e1013602e101e201de01e201250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002
+380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000002001dbfdc10054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000000000
+00000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c00000009010000cb010000f80100004d0200000400000000126023101e6023101e201e0012201e250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a0000002200
+00000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c
+000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000002a01000029feffffd80100001cfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000009000000067010000e80100009a010000f401000001000000
+00400d4200040dc26701000029feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb00804106000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a000000100000
+0000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400
+00006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e800000039010000f5010000c8010000000200000100000000400d4200040dc2390100001cfeffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000540065006d0070006f00720061
+0072007900530070006500650064004c0069006d0069007400530065006300740069006f006e0005000000060000000900000006000000060000000400000006000000040000000500000007000000060000000600000006000000060000000600000003000000090000000300000003000000070000000600000006000000030000000300000006000000060000000a0000001000000000000000110000000c00000010000000
+0000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db020000000040000020010afee1010afe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000
+001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080570000002400000009010000f0010000f80100001e0200000200
+000000127020101e7020250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010
+0000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000
+250100000b0200002e010000170200000100000000400d4200040dc22501000006feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400
+0000d8000000360100000b020000ac010000170200000100000000400d4200040dc23601000006feffff170000004c000000000000000000000000000000ffffffffffffffff7c000000730070006500650064004c0069006d0069007400560061006c0075006500200020003a0049004e005400310036000000040000000600000006000000060000000600000006000000030000000900000003000000030000000700000006
+00000003000000060000000600000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000
+100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000025010000180200002e010000240200000100000000400d4200040d
+c225010000f9fdffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800
+000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000e80000003601000018020000be010000240200000100000000
+400d4200040dc236010000f9fdffff1a0000004c000000000000000000000000000000ffffffffffffffff80000000730070006500650064004c0069006d0069007400560061006c0075006500570065007400200020003a0049004e005400310036000400000006000000060000000600000006000000060000000300000009000000030000000300000007000000060000000300000006000000060000000900000006000000
+0300000003000000030000000300000003000000070000000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000025010000250200002e010000310200000100000000400d4200040dc225010000ecfdffff0200
+00004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000dc0000003601000025020000b1010000310200000100000000400d4200040dc236010000
+ecfdffff180000004c000000000000000000000000000000ffffffffffffffff7c000000730070006500650064004c0069006d00690074004c0065006e00670074006800200020003a0049004e005400330032000400000006000000060000000600000006000000060000000300000009000000030000000300000006000000060000000600000006000000030000000600000003000000030000000300000003000000070000
+000700000006000000060000000a0000001000000000000000110000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000005014afe580161002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000
+000002000000250000000c00000001000000250000000c00000008000080560000003000000005010000660100005d020000c701000005000000501060165010701cd025701cd025601650106016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c00000002
+10c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000005014afe580161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000002101001000000000000000c0bfc0000000000000000000
+00000000250000000c00000005000000250000000c00000005000080560000002c000000ee0000004f01000074020000de010000040000005010701cd025701cd025601650106016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a0000004600000084000000780000
+00454d462b08400201580000004c0000000210c0db040000000400000000000000000081430080d9c30000ac430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000002014dfe58016100250000000c0000000800008027000000180000000500000000000000fcf2e30000000000250000000c0000000500
+0000250000000c0000000800008056000000300000000201000063010000b5010000c401000005000000020163010201c401b501c401b501630102016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf1e10000000000250000000c00000005000000250000000c000000080000805600000030000000b501000063010000be010000c4
+01000005000000b5016301b501c401be01c401be016301b5016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000fbf0df0000000000250000000c00000005000000250000000c000000080000805600000030000000be01000063010000c7010000c401000005000000be016301be01c401c701c401c7016301be016301250000000c000000
+08000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000faeedd0000000000250000000c00000005000000250000000c000000080000805600000030000000c701000063010000cf010000c401000005000000c7016301c701c401cf01c401cf016301c7016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000
+000500000000000000f8eddc0000000000250000000c00000005000000250000000c000000080000805600000030000000cf01000063010000d7010000c401000005000000cf016301cf01c401d701c401d7016301cf016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f7ebda0000000000250000000c00000005000000250000000c00
+0000080000805600000030000000d701000063010000e0010000c401000005000000d7016301d701c401e001c401e0016301d7016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6ead80000000000250000000c00000005000000250000000c000000080000805600000030000000e001000063010000e9010000c401000005000000e0
+016301e001c401e901c401e9016301e0016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f6e9d60000000000250000000c00000005000000250000000c000000080000805600000030000000e901000063010000f2010000c401000005000000e9016301e901c401f201c401f2016301e9016301250000000c0000000800008025000000
+0c00000000000080280000000c0000000500000027000000180000000500000000000000f5e8d40000000000250000000c00000005000000250000000c000000080000805600000030000000f201000063010000fa010000c401000005000000f2016301f201c401fa01c401fa016301f2016301250000000c00000008000080250000000c00000000000080280000000c00000005000000270000001800000005000000000000
+00f3e6d30000000000250000000c00000005000000250000000c000000080000805600000030000000fa0100006301000002020000c401000005000000fa016301fa01c4010202c40102026301fa016301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f2e5d10000000000250000000c00000005000000250000000c000000080000805600
+00003000000002020000630100000b020000c401000005000000020263010202c4010b02c4010b02630102026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e4cf0000000000250000000c00000005000000250000000c0000000800008056000000300000000b0200006301000012020000c4010000050000000b0263010b02c40112
+02c401120263010b026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000f1e2ce0000000000250000000c00000005000000250000000c000000080000805600000030000000120200006301000018020000c401000005000000120263011202c4011802c4011802630112026301250000000c00000008000080250000000c00000000000080
+280000000c0000000500000027000000180000000500000000000000f0e1cc0000000000250000000c00000005000000250000000c000000080000805600000030000000180200006301000020020000c401000005000000180263011802c4012002c4012002630118026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000efe0ca00000000
+00250000000c00000005000000250000000c000000080000805600000030000000200200006301000029020000c401000005000000200263012002c4012902c4012902630120026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000eedfc80000000000250000000c00000005000000250000000c0000000800008056000000300000002902
+00006301000032020000c401000005000000290263012902c4013202c4013202630129026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000edddc60000000000250000000c00000005000000250000000c00000008000080560000003000000032020000630100003d020000c401000005000000320263013202c4013d02c4013d02630132
+026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000ecdbc40000000000250000000c00000005000000250000000c0000000800008056000000300000003d0200006301000047020000c4010000050000003d0263013d02c4014702c401470263013d026301250000000c00000008000080250000000c00000000000080280000000c000000
+0500000027000000180000000500000000000000ebdac20000000000250000000c00000005000000250000000c000000080000805600000030000000470200006301000050020000c401000005000000470263014702c4015002c4015002630147026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e9d8c00000000000250000000c0000
+0005000000250000000c000000080000805600000030000000500200006301000058020000c401000005000000500263015002c4015802c4015802630150026301250000000c00000008000080250000000c00000000000080280000000c0000000500000027000000180000000500000000000000e8d7be0000000000250000000c00000005000000250000000c00000008000080560000003000000058020000630100005a02
+0000c401000005000000580263015802c4015a02c4015a02630158026301250000000c00000008000080250000000c00000000000080280000000c00000005000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000002
+014dfe580161003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002c000000eb0000004c01000071020000db010000040000002010401c
+a025401ca025301620103016250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000
+00100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e0000001800
+00000c010000a8feffff510200009bfeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c0000000000000054000000900000009501000069010000c8010000750100000100000000400d4200040dc295010000a8feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab00730074007200750063007400750072006500bb
+00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000
+110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000
+000c0000000000000054000000c00000007901000076010000e3010000810100000100000000400d4200040dc2790100009bfeffff130000004c000000000000000000000000000000ffffffffffffffff74000000540065006d0070006f007200610072007900530070006500650064004c0069006d00690074000000050000000600000009000000060000000600000004000000060000000400000005000000070000000600
+000006000000060000000600000006000000030000000900000003000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db0200000000400000020189fe5a
+0289fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000021010010000000000000000000000000000000
+0000000000000000250000000c00000005000000250000000c000000050000805700000024000000eb00000071010000710200009f0100000200000020108018a0258018250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000050000003a0000000c0000000a000000220000000c000000ffffffff460000
+001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000000000001100
+0000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b0000005400000058000000070100008c01000010010000980100000100000000400d4200040dc20701000085feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000
+000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000
+0000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000b8000000180100008c01000080010000980100000100000000400d4200040dc21801000085feffff120000004c000000000000000000000000000000ffffffffffffffff7000000075006e006900740073004d0050004800200020003a0042004f004f004c00450041004e
+000600000006000000030000000300000004000000090000000700000007000000030000000300000003000000070000000800000008000000060000000700000007000000070000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000007
+0100009901000010010000a50100000100000000400d4200040dc20701000078feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000
+00a0000000180100009901000057010000a50100000100000000400d4200040dc21801000078feffff0e0000004c000000000000000000000000000000ffffffffffffffff680000006f0066006600730065007400200020003a0049004e0054003300320006000000030000000300000004000000060000000300000003000000030000000300000003000000070000000700000006000000060000000a000000100000000000
+0000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064
+00000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000007010000a601000010010000b20100000100000000400d4200040dc2070100006bfeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a000000
+1000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000
+00640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000c801000018010000a601000056020000b20100000100000000400d4200040dc2180100006bfeffff3f0000004c000000000000000000000000000000ffffffffffffffffcc000000740065006d0070006f00
+7200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e007300200020003a00540065006d0070006f007200610072007900530070006500650064004c0069006d0069007400530065006300740069006f006e0020005b0031002e002e002a005d00000003000000060000000900000006000000060000000300000006000000030000000500000007000000060000000600000006
+0000000600000006000000030000000900000003000000030000000700000006000000050000000300000003000000060000000600000004000000030000000300000003000000070000000600000009000000060000000600000003000000060000000300000005000000070000000600000006000000060000000600000006000000030000000900000003000000030000000700000006000000050000000300000003000000
+0600000006000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400
+00090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005800000007010000b301000010010000bf0100000100000000400d4200040dc2070100005efeffff0200
+00004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017
+03000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000011000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000002401000018010000b3010000af010000bf0100000100000000400d4200040dc218010000
+5efeffff240000004c000000000000000000000000000000ffffffffffffffff940000006100700070006c00690063006100620069006c00690074007900200020003a004100700070006c00690063006100620069006c0069007400790020005b0030002e002e002a005d000600000006000000060000000300000003000000050000000600000006000000030000000300000003000000030000000500000003000000030000
+000300000007000000060000000600000003000000030000000500000006000000060000000300000003000000030000000300000005000000030000000300000006000000030000000300000004000000030000000a0000001000000000000000110000000c000000100000000000000000000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f0200
+0000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000007b0050fc7a0057fc7a005bfc790062fc780066fc77006dfc770071fc760073fc0001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d000000000000000000
+00803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000050000000740000009c0300007d000000c3030000040000000800000002000000020000000200000002000000b007103ca007a03ba007603b9007f03a8007b03a7007403a
+7007003a6007e039250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000
+000210c0db04000000004000007b0050fc74005efc7b0050fc7e0060fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00
+00003800000072000000af03000080000000c303000002000000040000000200000002000000b007103c4007303bb007103ce007103b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003401000028010000454d462b0840000234000000280000000210c0db000000008800000000
+0000000000803f02000000000000000210c0db00000000000000ff08400103e0000000d40000000210c0db2800000000400000600271fd5e0278fd5c027cfd590283fd580287fd55028efd530292fd510299fd4f029dfd4c02a4fd4b02a8fd4802affd4602b3fd4302bafd4202befd3f02c5fd3e02c9fd3b02d0fd3902d4fd3602dbfd3502dffd3202e6fd3002eafd2e02f1fd2c02f5fd2902fcfd280200fe250207fe23020bfe
+210212fe1f0216fe1c021dfe1b0221fe180228fe16022cfe130233fe120237fe0f023efe0d0242fe0b0249fe000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800000000000000000201
+00100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000001001000009020000c601000062020000a2020000140000002800000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000026002ae025
+9029c02550299025e0288025a028502530283025f02710258027f0244027c024d026b0249026802420266024e0253024702520243025f023c024e0238024b02310249023d02360236023502320232023b02200237022e0220022c022c02190225021802210215022a020302260201022f01ff021b01fc021401fb021001f8021901e6021501e3021e01d2021a01df020301dd020f01cb020801c250000000c0000000700008025
+0000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000600271fd56027dfd
+600271fd5f0281fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000540200008e02000062020000a20200
+00020000000400000002000000020000000026002a602540290026002af0250029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000f0000000e4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db0000
+0000000000ff084001039c000000900000000210c0db1a00000000400000300100fd2f0107fd2f010bfd2e0112fd2d0116fd2c011dfd2c0121fd2b0128fd2a012cfd290133fd280137fd27013efd270142fd260149fd25014dfd240154fd230158fd22015ffd220163fd21016afd20016efd1f0175fd1f0179fd1e0180fd1d0184fd1c0187fd000100010001000100010001000100010001000100010001000100011540010010
+000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000bc0000001a0100008802000032010000130300000d0000001a0000000200000002000000
+020000000200000002000000020000000200000002000000020000000200000002000000020000000200000000131031f012a030f0126030e012f02fd012b02fc012402fc012002fb012902ea012502e9012e02d8012a02d7012302d7012f02c6012802c5012402c4012d02b3012902b2012202b2012e02a1012702a0012302af011c029f0118029e0111029d011d028c011a028250000000c00000007000080250000000c0000
+0000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000300100fd29010efd300100fd3301
+10fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000027010000ff02000035010000130300000200000004
+000000020000000200000000131031901230300013103130131030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000d0000000c4000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff
+084001037c000000700000000210c0db1400000000400000aa0019fdaf0020fdb20024fdb7002bfdba002ffdbf0036fdc2003afdc70041fdca0045fdd0004cfdd30050fdd80057fddb005bfde00062fde30066fde8006dfdeb0071fdf00078fdf3007cfdf90083fd00010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d000000
+0000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000098000000a80000008c020000fb000000fa0200000a0000001400000002000000020000000200000002000000020000000200000002000000020000000200000002000000a00a802ff00a
+102f200bd02e700b602ea00b202ef00bb02d200c702d700c002da00cc02c000d502c300d102c800da02bb00d602b000ef02a300eb02a800e402ab00e002a000f9029300f5029900fe028250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c
+000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000aa0019fdaf0028fdaa0019fdb70022fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000
+00000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000a8000000e7020000b9000000fa02000002000000040000000200000002000000a00a802ff00a902ea00a802f700bf02e250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080
+41000000000000000002000000280000000c000000050000004600000004010000f8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103b0000000a40000000210c0db1e000000004000000401cdfd0101d4fdff00d8fdfb00dffdf900e3fdf500eafdf300eefdef00f5fded00f9fde90000fee70004fee3000bfee100
+0ffedd0016fedb001afed70021fed50025fed1002cfecf0030fecb0037fec9003bfec50042fec30046febf004dfebd0051feb90058feb7005cfeb30063feb10067feaf006afe00010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038
+00000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000d4000000ad000000a501000006010000460200000f0000001e000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000401040241010d023
+f00f9023b00f2023900fe022500f7022300f3022f00ec021d00e8021900e1021700ed020300e6020100e2020d00db01fb00d701f700d001f500dc01e100d501ef00c101eb00ca01d900c601d500cf01c300cb01cf00b401cd00b001c900b901b700b501b300be01a100ba01af00a701a250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000
+0002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000000401cdfdf800d8fd0401cdfd0101ddfd000100011540010010000000040000000000000024000000240000000000803d0000
+0000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000f60000003202000006010000460200000200000004000000020000000200000040104024800f90234010402410104023250000000c00000007
+000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000009400000088000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000005e0045fe64004cfe670050fe
+6d0057fe71005bfe770062fe7a0066fe7e006afe00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000500000
+005c000000a501000080000000ce010000040000000800000002000000020000000200000002000000e005c01c4006501c7006101cd006a01b1007601b7007f01aa007b01ae007701a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c00
+0000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000005e0045fe640054fe5e0045fe6c004dfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000
+000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000005c000000bb0100006e000000ce01000002000000040000000200000002000000e005c01c4006d01be005c01cc006401c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041
+000000000000000002000000280000000c0000000500000046000000bc000000b0000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103680000005c0000000210c0db100000000040000071025afc710261fc710265fc70026cfc700270fc6f0277fc6f027bfc6f0282fc6e0286fc6e028dfc6e0291fc6d0298fc6d029c
+fc6c02a3fc6c02a7fc6b02adfc000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000008000
+0000690200006203000073020000b9030000080000001000000002000000020000000200000002000000020000000200000002000000020000001027703b1027003b1027c03a0027503a0027103af026a039f0266039f026f038e026b038e0264038e0260038d0269037d0265037c026e036c026a036b0264036250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000071025afc6b0269fc71025afc750269fc000100011540010010000000040000000000000024000000
+240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000069020000a603000077020000b9030000020000000400000002000000020000001027703bb026803a1027703b502780
+3a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008c00000080000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103380000002c0000000210c0db06000000004000009001
+2ffe920136fe94013afe960141fe980145fe9b014cfe00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000044
+0000008e010000c30100009d010000e401000003000000060000000200000002000000020000000019201e2019b01d4019701d6019001d8019c01cb019501c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db
+000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000090012ffe91013ffe90012ffe9a013bfe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000
+0000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000008e010000d00100009c010000e4010000020000000400000002000000020000000019201e1019201d0019201ea019601d250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c0000000500000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db18000000004000004e0154fc470157fc430159fc3c015dfc38015ffc310162fc2d0164fc260168fc22016afc1b016dfc17016ffc100173fc0c0175fc050179fc01017bfcfa
+007efcf60080fcef0084fceb0086fce40089fce0008bfcd9008ffcd50091fcce0094fc0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000
+250000000c00000005000000250000000c000000050000805a000000b0000000cc0000007b03000050010000bf0300000c00000018000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000e014d03b7014a03b3014803bc013403b8013203b1013f03ad012d03a6012903a2012703ab011403a7011203a0011e039c010c0395010803910106039a00f30
+39600f1039f00ed038b00eb038400e8038000e6038900d2038500d0038e00cd037250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f0200000002000000010000000000
+00000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000004e0154fc3e0156fc4e0154fc43015ffc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000010010010000000000000000000000000000000000000000000000025
+0000000c00000005000000250000000c000000050000805a000000380000003c010000b003000050010000bf03000002000000040000000200000002000000e014d03be013b03be014d03b3014203b250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000dc000000d0000000454d462b
+0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103880000007c0000000210c0db16000000004000002c0237ff250238ff210239ff1a023bff16023cff0f023dff0b023eff040240ff000241fff90142fff50143ffee0145ffea0146ffe30147ffdf0148ffd8014affd4014bffcd014cffc9014dffc2014fffbe0150ffb70152ff000100
+0100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000a4000000b5010000bd00
+00002e020000dc0000000b000000160000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000c022a00d5022900d1022800da021600d6021500df020400db020300d4020100d0020000d901ff00c501fe00ce01ec00ca01eb00c301ea00cf01d900c801d700c401d600cd01c500c901c400c201c200ce01b100c701bf00b250000000c00000007000080250000000c
+00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000002c0237ff1c0236ff2c0237ff
+1f023fff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000001a020000d00000002e020000dd000000020000
+00040000000200000002000000c022a00dc021b00dc022a00df021200d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008000000074000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210
+c0db00000000000000ff0840010324000000180000000210c0db02000000004000006c0019fd6c0096fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c0000000500000025
+0000000c0000000500008057000000240000006a000000790200006e000000fa02000002000000c006802fc006b027250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff03000000720086fd660086fd6c0096fd
+280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000fcf2e30000000000250000000c00000001000000130000000c00000001000000250000000c000000080000805600000028000000660000007b020000720000008b020000030000002007b0286006b028c006b027250000000c00000007000080130000000c0000
+0001000000250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c0000001000000003000000720086fd660086fd6c0096fd24000000240000000000
+803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500008056000000280000006400000079020000740000008d020000030000002007b0286006b028c006b027250000000c00000007000080250000000c00000000
+000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000002001000014010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103cc000000c00000000210c0db24000000004000006a0232fe6a0239fe6b023dfe6b0244fe6c0248fe6c024ffe
+6d0253fe6e025afe6e025efe6f0265fe6f0269fe700270fe700274fe71027bfe71027ffe720286fe72028afe730291fe740295fe74029cfe7502a0fe7502a7fe7602abfe7702b2fe7702b6fe7802bdfe7802c1fe7902c8fe7902ccfe7a02d3fe7a02d7fe7b02defe7b02e2fe7c02e9fe7d02edfe7d02f4fe0001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000
+000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000f8000000680200001b0100007f020000e101000012000000240000000200000002000000020000000200
+00000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000a026f01da026801db026401db026d01cc026901cc026201cd026e01be026701be026301bf026c01af026801a0027101a0027d01910276019102720192027b01820277018302700184027c01740275017502710175027a016602760167027f0157027b015802740158027001590
+27901490275014a027e013a027a013b0273013b027f012c0278012d0274012d027d011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000180100000c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db
+00000000000000ff08400103c4000000b80000000210c0db2200000000400000be0180fdc40187fdc8018bfdcf0192fdd30196fdda019dfddd01a1fde401a8fde801acfdef01b3fdf301b7fdf901befdfd01c2fd0402c9fd0802cdfd0f02d4fd1302d8fd1902dffd1d02e3fd2402eafd2802eefd2f02f5fd3202f9fd390200fe3d0204fe44020bfe48020ffe4e0216fe52021afe590221fe5d0225fe64022cfe680230fe6a0232
+fe0001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c0000000500
+00805a000000ec000000bc010000dd0100006c0200009302000011000000220000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000e01b1029401ca028801c6028f01cf027301db027a01d4027d01d0027401e9026801e5026f01ee025301fa025901f3025d01ff0244020802480204024f020d02330
+21902390212023d021e0224022702280223022f022c0212023802190231021d023d0204024602080242020e024b01f2025701f9025001fd025c01e4026501e8026101ea026f01d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000008401000078010000454d462b0840000234000000
+280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010330010000240100000210c0db3800000000400000980154fc98015bfc99015ffc9a0166fc9a016afc9b0171fc9c0175fc9d017cfc9d0180fc9e0187fc9e018bfc9f0192fca00196fca1019dfca101a1fca201a8fca301acfca401b3fca401b7fca501befca501c2fca601c9fca701cdfca801d4fca801d8
+fca901dffcaa01e3fcab01eafcab01eefcac01f5fcac01f9fcad0100fdae0104fdaf010bfdaf010ffdb00116fdb1011afdb10121fdb20125fdb3012cfdb30130fdb40137fdb5013bfdb60142fdb60146fdb7014dfdb80151fdb80158fdb9015cfdba0163fdba0167fdbb016efdbc0172fdbd0179fdbd017dfdbe0180fd000100010001000100010001000100010001000100010001000100010001000100010001000100010001
+00010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000070010000960100008f020000c0010000bf
+0300001c00000038000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000008019d03b8019603b9019203ba019b03aa019703ab019003ac019c039d0195039d0191039e019a038e0196038
+f019f037001ab037101a4037101a0037201a9036301a5036401ae035401aa035501a3035501af034601a8034701a4034801ad033801a9033901a2033a01ae032b01a7032b01a3032c01ac031c01a8031d01a1031e01ad030f01a6030f01a2030001bb02f101b702f101b002f201bc02e301b502e301b102e401ba02d501b602d601bf02c601bb02c701b402c801b002c801b902b901b502ba01be02aa01ba02ab01b302ac01bf0
+29d01b8029d01b4029e01b1029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c00
+0000200000000210c0db0400000000400000980154fc950164fc980154fc9f0162fc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005
+0000805a0000003800000093010000ab030000a1010000bf030000020000000400000002000000020000008019d03b5019d03a8019d03bf019f03a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000d4010000c8010000454d462b0840000234000000280000000210c0db00000000
+88000000000000000000803f02000000000000000210c0db00000000000000ff0840010380010000740100000210c0db48000000004000006f0271fd6f0278fd6f027cfd6f0283fd700287fd70028efd700292fd700299fd71029dfd7102a4fd7102a8fd7102affd7202b3fd7202bafd7202befd7202c5fd7302c9fd7302d0fd7302d4fd7302dbfd7402dffd7402e6fd7402eafd7402f1fd7502f5fd7502fcfd750200fe750207
+fe76020bfe760212fe760216fe76021dfe770221fe770228fe77022cfe770233fe780237fe78023efe780242fe780249fe79024dfe790254fe790258fe7a025ffe7a0263fe7a026afe7a026efe7b0275fe7b0279fe7b0280fe7b0284fe7c028bfe7c028ffe7c0296fe7c029afe7d02a1fe7d02a5fe7d02acfe7d02b0fe7e02b7fe7e02bbfe7e02c2fe7e02c6fe7f02cdfe7f02d1fe7f02d8fe7f02dcfe8002e3fe8002e7fe8002
+eefe8002f2fe8102f6fe0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000380000000000000038000000000000000002010010
+0000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000d00100006d0200001901000083020000a2020000240000004800000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000
+0200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000f026002af0269029f0265029f026e0280027a028002730280027f02700278027102740271027d02610279026102720262027e02520277025202730252027c02430278024302710243027d02330276023402720234027b02240277022402700225027c02150275021502710215027a0
+20602760206027f01f6027b01f6027401f7027001f7027901e7027501e7027e01d8027a01d8027301d8027f01c8027801c9027401c9027d01b9027901ba027201ba027e01aa027701aa027301ab027c019b0278019b0271019b027d018c0276018c0272018c027b017c0277017d0270017d027c016d0275016d0271016e027a015e0276015e027f014e027b014f0274014f0270014f0279013f02750130028e0120028a0120028
+30120028f0111028b011250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c00000020
+0000000210c0db04000000004000006f0271fd6b0280fd6f0271fd750280fd000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080
+5a00000038000000690200008f02000077020000a202000002000000040000000200000002000000f026002ab0261029f026002a50271029250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000009400000088000000454d462b0840000234000000280000000210c0db00000000880000
+00000000000000803f02000000000000000210c0db00000000000000ff0840010340000000340000000210c0db08000000004000006a0202fd6a0209fd6a020dfd6a0214fd6b0218fd6b021ffd6b0223fd6b022afd00010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000003800
+00000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000005000000068020000e50200006d02000011030000040000000800000002000000020000000200000002000000a026f030a0268030a0264030a026d02fb026902fb026202fb026e02eb026702e250000000c00000007000080250000000c000000000000802400000024
+00000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000006a0202fd660211fd6a0202fd700211fd0001000115400100
+10000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000003800000064020000fe0200007202000011030000020000000400000002000000020000
+00a026f03060260030a026f03000270030250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a80000009c000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103540000004800
+00000210c0db0c000000004000009301aefe9001b5fe8e01b9fe8a01c0fe8801c4fe8401cbfe8201cffe7e01d6fe7c01dafe7801e1fe7601e5fe7501e6fe0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000
+000000000000000000000000000000250000000c00000005000000250000000c000000050000805a0000006800000073010000290100009501000065010000060000000c000000020000000200000002000000020000000200000002000000301930160019c015e0188015a01810158018d0144018601420182014e017b013c0177013801700136017c0125017b012250000000c00000007000080250000000c00000000000080
+240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000009301aefe8801b9fe9301aefe9001befe000100
+011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000008601000051010000950100006501000002000000040000000200
+00000200000030193016801880153019301600193015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000a000000094000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff084001034c
+000000400000000210c0db0a00000000400000b200b0feb600b7feb800bbfebd00c2febf00c6fec300cdfec600d1feca00d8fecc00dcfed100e3fe0001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000020100100000000000000000000000
+000000000000000000000000250000000c00000005000000250000000c000000050000805a0000005c000000b00000002c010000d300000063010000050000000a0000000200000002000000020000000200000002000000200b1016600ba015800b6015d00bf014f00bb014300c4014600c0014a00c9013c00c5013100de012250000000c00000007000080250000000c00000000000080240000002400000000008041000000
+000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000b200b0feb600bffeb200b0febe00bafe000100011540010010000000040000000000
+000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a00000038000000b000000050010000c00000006301000002000000040000000200000002000000200b1016600b201520
+0b1016e00b7015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000c4020000b8020000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010370020000640200000210c0db78000000
+0040000066025afc640261fc620265fc5f026cfc5e0270fc5b0277fc59027bfc560282fc550286fc52028dfc500291fc4e0298fc4c029cfc4902a3fc4802a7fc4502aefc4302b2fc4002b9fc3f02bdfc3c02c4fc3a02c8fc3802cffc3602d3fc3302dafc3202defc2f02e5fc2d02e9fc2a02f0fc2902f4fc2602fbfc2402fffc220206fd20020afd1d0211fd1c0215fd19021cfd170220fd140227fd13022bfd100232fd0e0236
+fd0c023dfd0a0241fd070248fd06024cfd030253fd010257fdfe015efdfd0162fdfa0169fdf8016dfdf60174fdf40178fdf1017ffdf00183fded018afdeb018efde80195fde70199fde401a0fde201a4fde001abfdde01affddb01b6fdda01bafdd701c1fdd501c5fdd201ccfdd101d0fdce01d7fdcc01dbfdca01e2fdc801e6fdc501edfdc401f1fdc101f8fdbf01fcfdbc0103febb0107feb8010efeb60112feb40119feb201
+1dfeaf0124feae0128feab012ffea90133fea6013afea5013efea20145fea00149fe9e0150fe9c0154fe99015bfe98015ffe950166fe93016afe900171fe8f0175fe8c017cfe8a0180fe880187fe86018bfe830192fe820196fe7f019dfe7d01a1fe7a01a8fe7901acfe7601b3fe7401b7fe7201befe7001c2fe6d01c9fe6c01cdfe6901d4fe6701d8fe6401dffe6301e3fe6101e6fe0001000100010001000100010001000100
+010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000005000000
+3800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000f00200005f0100002901000068020000b90300003c0000007800000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000
+0002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200
+0000020000006026703b4026003b2026c03af025503ae025103ab025a039902560396025f0385025b0382025403800250038e0249037c02450379024e0368024a036502430363024f03500248035f0234035c023d034a0239034802320346023e0333023703320233033f022c032d0228032a02210329022d03160226031402220312022b03000227030d0210030c021c02f9021502f7021102f4021a02e3021602e0021f02de0
+20b02dc020402da020002d7020902c6020502c3020e02b1020a02be01f302bd01ff02aa01f802a801f402a601fd029401f9029101f2029001fe028d01e7028b01e3028801ec027701e8027401e1027201ed026001e6026e01d2026b01db025a01d7025701d0025501dc024201d5024101d1024e01ca023c01c6023a01cf022801cb022501c4022401c0022101c9021f01b5021c01be020b01ba020801b3020601bf01f401b801f
+201b401ff01ad01ee01a901eb01a201e901ae01d601a701d501a301d201ac01c001a801ce019101cc019d01b9019601b8019201b5019b01a3019701a0019001af018c019c0185019a01810198018a018601860183018f0172018b017f0174017d0170017a0179016901750166017e0154017a015201730150017f014d0168014c01640149016d01370169013401620133016e0121016b012250000000c00000007000080250000
+000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db040000000040000066025afc5c0266fc6602
+5afc65026afc000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000805a000000380000005a020000a503000068020000b903000002
+0000000400000002000000020000006026703bc025b03a6026703b5026703a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000500000046000000b0000000a4000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f02000000020000000100000000000000
+0210c0db00000000000000ff0840010354000000480000000210c0db0c00000000400000100100fdd10046fdd20047fdd30049fdd3004afdd3004dfdd10050fdce0050fdcc0050fdcb004ffdca004ffd8b0096fd0001030303030303030303011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000500000038000000000000
+00380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c000000050000803b000000080000001b0000001000000000110000103100003600000010000000100d0000b02c000058000000400000000000000000000000ffffffffffffffff09000000200da02c300d802c300d702c300d402c100d102ce00c102cc00c102cb00c202ca00c202c3600
+000010000000b0080000b02700003c00000008000000400000001800000089000000790200001201000013030000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000005000000460000003000000024000000454d462b0c4000c02000000014000000e3f2fcff030000009a008efd910086fd8b0096fd24
+000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000280000008b0000007b0200009a0000008b02000003000000a00930281009b028b008b027250000000c00000007000080130000000c00000001000000250000000c000000000000802400000024000000000080410000000000000000
+0000804100000000000000000200000046000000680000005c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff0d4000601c00000010000000030000009a008efd910086fd8b0096fd24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000050000
+003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000005000000250000000c00000005000080560000002800000089000000790200009c0000008d02000003000000a00930281009b028b008b027250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200
+0000280000000c00000005000000280000000c00000002000000280000000c000000030000004c0000006400000000000000000000001703000028040000000000000000000018030000290400002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010000000454d462b02
+4000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 27\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\ql\plain\f0\fs24{\*\bkmkstart BKM_82DC1C1A_C696_41fe_B20F_E3C44DA2C0F0}{\*\bkmkend BKM_82DC1C1A_C696_41fe_B20F_E3C44DA2C0F0}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul\protect Diagram.Type}{\fldrslt\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul
+Class}}\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\ul diagram {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\protect Diagram.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6 TrafficIncidentFeedInterface}}\lang3081\hich\f3\dbch\f3\loch\f3\b0\ul0\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Diagram.Notes}{\fldrslt}}\ql\par
+\qc\plain\f0\fs24\hich\f0\dbch\f0\loch\f0
+{\*\shppict{\pict\emfblip\picw23200\pich19001\picwgoal13155\pichgoal10770\picscalex71\picscaley71\sspicalign0 010000006c000000f8ffffffffffffff9b0200001c0200000000000000000000a05a0000394a000020454d460000010078cb000033080000050000000000000000000000000000000005000000040000c401000069010000000000000000000000000000e3e306001c83050046000000
+2c00000020000000454d462b014001001c000000100000000210c0db01000000600000006000000046000000bc000000b0000000454d462b1e4005000c000000000000002a40000024000000180000000000803f0000000000000000000080bf000000000000000008400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000ff08400103340000
+00280000000210c0db05000000004000000100ffff0100e6fd9002e6fd9002ffff0100ffff0001010101030303154001001000000004000000000000002100000008000000620000000c0000000100000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000010000003800000000000000380000000000000000010100010000000000000000000000000000000000
+000000000000250000000c00000001000000250000000c000000050000805700000030000000ffffffffffffffff920200001c02000005000000100010001000a0210029a0210029100010001000250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000001000000460000003c00000030000000454d462b0c
+4000c02c00000020000000ffffffff060000000100ecffae00ecffbb00faffbb00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000ffffff0000000000250000000c00000001000000130000000c00000001000000250000000c0000000800008056000000340000000100000001000000bb0000001400000006000000
+10004001e00a4001b00b6000b00b10001000100010004001250000000c00000007000080130000000c00000001000000250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000007000000064000000454d462b08400002380000002c0000000210c0db000000008600000000000000000000000100000001000000000000000210c0db00000000000000
+ff0d400060280000001c000000060000000100ecffae00ecffbb00faffbb00ffff0100ffff0100ecff24000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000010100010000000000000000000000000000000000000000000000250000000c00000002000000250000000c000000050000805600000034000000ffff
+ffffffffffffbd000000160000000600000010004001e00a4001b00b6000b00b10001000100010004001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+0000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c000000100000000000000000000000120000000c00000002000000190000000c000000ffffff00520000007001000002000000f6ffffff0000000000000000
+00000000bc020000000000010000050041005200490041004c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0156d421883a6c2e76a8931a24086545017859e102c059e102245736019c58530bbc59e102969619018ce3c577c781172646e0c5779401300b0000300b60a3500ac859e1026c00b8015c2b0100dc59e102188d17
+0107360aa5a8931a246d0040015c2b010037bb400007360aa570374b0ba8d56b000800000000000000000000001098bf2348004b0b5c014b0b08941a24f0374b0b00000000a859e10200000500085ce102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd195b2b01008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26705ae1021c0302005cfb8d01b2f3b1001c0302007c5a
+e1026476000800000000250000000c00000002000000180000000c0000000000000054000000540000000600000004000000ab0000000f0000000100000000400d4200040dc206000000fcffffff010000004c000000000000000000000000000000ffffffffffffffff500000002000305ca5000000160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000
+00000054000000180100000600000004000000ac0000000f0000000100000000400d4200040dc206000000fcffffff220000004c000000000000000000000000000000ffffffffffffffff9000000063006c006100730073002000540072006100660066006900630049006e0063006900640065006e007400460065006500640049006e0074006500720066006100630065000600000003000000060000000600000006000000
+03000000050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000600000006000000060000000300000006000000030000000600000004000000030000000600000006000000060000001b000000100000000000000000000000160000000c00000000000000120000000c000000020000000a00000010000000000000
+00000000000c000000100000000000000000000000280000000c00000002000000460000005000000044000000454d462b2a40000024000000180000000000803f0000000000000000000080bf000010c10000c0400a4000c01c00000010000000c0bfc0ff010000001b0059ffe1019100280000000c000000010000002100000008000000620000000c00000001000000110000000c0000000100000024000000240000000000
+803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc00000000000250000000c00000001000000250000000c000000080000805600000030000000120000001c000000f3010000ad000000050000002001c0012001d00a301fd00a301fc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000
+008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000001b0059ffe10191003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000
+0200000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000002000000250000000c00000005000080560000002c000000fbffffff050000000a020000c4000000040000002001d00a301fd00a301fc0012001c001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000
+000000000002000000280000000c000000020000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c041000024c30080f04300001143bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c00000010000000020000000100000018005cffe10191002500
+00000c0000000800008027000000180000000200000000000000fcf2e30000000000250000000c00000002000000250000000c0000000800008056000000300000000f0000001900000009010000aa000000050000000f0019000f00aa000901aa00090119000f001900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf1e1000000000025
+0000000c00000002000000250000000c000000080000805600000030000000090100001900000015010000aa00000005000000090119000901aa001501aa001501190009011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000fbf0df0000000000250000000c00000002000000250000000c00000008000080560000003000000015010000
+1900000022010000aa00000005000000150119001501aa002201aa002201190015011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000faeedd0000000000250000000c00000002000000250000000c00000008000080560000003000000022010000190000002d010000aa00000005000000220119002201aa002d01aa002d011900220119
+00250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f8eddc0000000000250000000c00000002000000250000000c0000000800008056000000300000002d0100001900000038010000aa000000050000002d0119002d01aa003801aa00380119002d011900250000000c00000008000080250000000c00000000000080280000000c0000000200
+000027000000180000000200000000000000f7ebda0000000000250000000c00000002000000250000000c000000080000805600000030000000380100001900000045010000aa00000005000000380119003801aa004501aa004501190038011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6ead80000000000250000000c00000002
+000000250000000c000000080000805600000030000000450100001900000051010000aa00000005000000450119004501aa005101aa005101190045011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f6e9d60000000000250000000c00000002000000250000000c00000008000080560000003000000051010000190000005e010000
+aa00000005000000510119005101aa005e01aa005e01190051011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f5e8d40000000000250000000c00000002000000250000000c0000000800008056000000300000005e0100001900000069010000aa000000050000005e0119005e01aa006901aa00690119005e011900250000000c0000
+0008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f3e6d30000000000250000000c00000002000000250000000c000000080000805600000030000000690100001900000075010000aa00000005000000690119006901aa007501aa007501190069011900250000000c00000008000080250000000c00000000000080280000000c00000002000000270000001800
+00000200000000000000f2e5d10000000000250000000c00000002000000250000000c000000080000805600000030000000750100001900000081010000aa00000005000000750119007501aa008101aa008101190075011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e4cf0000000000250000000c00000002000000250000000c
+00000008000080560000003000000081010000190000008b010000aa00000005000000810119008101aa008b01aa008b01190081011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f1e2ce0000000000250000000c00000002000000250000000c0000000800008056000000300000008b0100001900000093010000aa00000005000000
+8b0119008b01aa009301aa00930119008b011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000f0e1cc0000000000250000000c00000002000000250000000c00000008000080560000003000000093010000190000009f010000aa00000005000000930119009301aa009f01aa009f01190093011900250000000c00000008000080250000
+000c00000000000080280000000c0000000200000027000000180000000200000000000000efe0ca0000000000250000000c00000002000000250000000c0000000800008056000000300000009f01000019000000ab010000aa000000050000009f0119009f01aa00ab01aa00ab0119009f011900250000000c00000008000080250000000c00000000000080280000000c000000020000002700000018000000020000000000
+0000eedfc80000000000250000000c00000002000000250000000c000000080000805600000030000000ab01000019000000b8010000aa00000005000000ab011900ab01aa00b801aa00b8011900ab011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000edddc60000000000250000000c00000002000000250000000c0000000800008056
+00000030000000b801000019000000c7010000aa00000005000000b8011900b801aa00c701aa00c7011900b8011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ecdbc40000000000250000000c00000002000000250000000c000000080000805600000030000000c701000019000000d5010000aa00000005000000c7011900c701aa00
+d501aa00d5011900c7011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000ebdac20000000000250000000c00000002000000250000000c000000080000805600000030000000d501000019000000e2010000aa00000005000000d5011900d501aa00e201aa00e2011900d5011900250000000c00000008000080250000000c000000000000
+80280000000c0000000200000027000000180000000200000000000000e9d8c00000000000250000000c00000002000000250000000c000000080000805600000030000000e201000019000000ee010000aa00000005000000e2011900e201aa00ee01aa00ee011900e2011900250000000c00000008000080250000000c00000000000080280000000c0000000200000027000000180000000200000000000000e8d7be000000
+0000250000000c00000002000000250000000c000000080000805600000030000000ee01000019000000f0010000aa00000005000000ee011900ee01aa00f001aa00f0011900ee011900250000000c00000008000080250000000c00000000000080280000000c00000002000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db00000000860000000000000000
+00803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000018005cffe10191003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000020000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000002000000
+250000000c00000005000080560000002c000000f8ffffff0200000007020000c100000004000000f000a00a001fa00a001f9001f0009001250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000020000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d46
+2b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c0000000100
+0000190000000c000000ffffff00520000007001000002000000f6ffffff00000000000000000000000000000000000000010000050041005200490041004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1021857e102245736019c58530b1457e1029696190195380a499c58530bb29619010000000048981a248ce3c57773
+8c172646e0c5779401300b0000300b188d170195380a4961004a015e2b0100c457e10237bb400095380a4948981a246200c8015e2b01008882dd193c5ce10270374b0b000000000800000000000000000000001098bf2348004b0b5c014b0b48981a24f0374b0b000000001457e10200000000b058e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c5770000000008654501000000008814400000cc2a24008a1a24
+0100000040981a24dc57e10223e0c57748981a243a6c2e760865450140981a24f057e102ad148b756476000800000000250000000c00000002000000180000000c000000000000001e0000001800000022000000e7fffffff0010000daffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000e50000001f0000001a0100
+002b0000000100000000400d4200040dc2ee000000e7ffffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb00317d06000000030000000600000003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b00000010000000000000000500
+00000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00520000007001000003000000f6ffffff000000000000000000000000bc020000000000010000050041005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00001a013ada21883a6c2e7648981a2408654501cc57e1021458e102245736019c58530b1058e102969619018ce3c5776b83172646e0c5779401300b0000300b89a3a0041c58e10262003401602b01003058e102188d170195380a4a48981a2463004001602b010037bb400095380a4a70374b0ba8d56b0008000000a05ae102000000001098bf2348004b0b5c014b0b08941a24f0374b0b00000000fc57e10200000500c85ae1
+02f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000008882dd195f2b01008814400000cc2a24e8d14701bd644000e8d14701f35b4900d43a8a26c458e1021c0302005cfb8d01b2f3b1001c030200d058e1026476000800000000250000000c00000003000000180000000c0000000000000054000000c0000000d10000002c0000002e010000370000000100000000400d4200040dc2da000000daffffff1300
+00004c000000000000000000000000000000ffffffffffffffff74000000540072006100660066006900630049006e0063006900640065006e00740046006500650064006576050000000400000006000000030000000300000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000600000006000000060000000a0000001000000009000000060000000c00000010
+0000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0840010324000000180000000210c0db02000000004000001800cefff901ceff00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c00000001000000
+0a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805700000024000000f8ffffff21000000070200004f0000
+0002000000f0008003001f8003250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058
+000000140000003e0000001d0000004a0000000100000000400d4200040dc21d000000c8ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000
+010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040
+0054000000c0000000250000003e0000007c0000004a0000000100000000400d4200040dc22e000000c8ffffff130000004c000000000000000000000000000000ffffffffffffffff74000000470065007400560065007200730069006f006e0028002900200020003a0076006f006900640066730800000006000000030000000700000006000000030000000400000003000000060000000600000003000000030000000300
+00000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000004b0000001d000000570000000100000000400d4200040dc21d000000bbffffff020000004c00000000000000
+0000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000
+001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000c4000000250000004b00000089000000570000000100000000400d4200040dc22e000000bbffffff140000004c00
+0000000000000000000000000000ffffffffffffffff740000004700650074004c0061006e006700750061006700650028002900200020003a0076006f006900640008000000060000000300000006000000060000000600000006000000060000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000580000001d000000640000000100000000400d4200040dc21d000000aeffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000
+000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400
+0000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000050010000250000005800000007010000640000000100000000400d4200040dc22e000000aeffffff2b0000004c000000000000000000000000000000ffffffffffffffffa4000000520065006700690073007400650072004600650065
+006400280053005400520049004e0047002c00200053005400520049004e0047002c00200053005400520049004e0047002900200020003a0076006f0069006400205c07000000060000000600000003000000040000000300000006000000030000000600000006000000060000000600000003000000070000000700000007000000030000000700000008000000030000000300000007000000070000000700000003000000
+0700000008000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000001400
+0000650000001d000000710000000100000000400d4200040dc21d000000a1ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c
+000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000
+f40000002500000065000000b0000000710000000100000000400d4200040dc22e000000a1ffffff1c0000004c000000000000000000000000000000ffffffffffffffff840000004100640064004c0061006e00670075006100670065004c0069007300740065006e006500720028002900200020003a0076006f0069006400070000000600000006000000060000000600000006000000060000000600000006000000060000
+000600000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000
+00000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014
+000000720000001d0000007e0000000100000000400d4200040dc21d00000094ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c00000001000000
+0c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000
+00080100002500000072000000c40000007e0000000100000000400d4200040dc22e00000094ffffff1f0000004c000000000000000000000000000000ffffffffffffffff8c000000520065006d006f00760065004c0061006e00670075006100670065004c0069007300740065006e006500720028002900200020003a0076006f00690064007d7d070000000600000009000000060000000500000006000000060000000600
+000006000000060000000600000006000000060000000600000006000000030000000400000003000000060000000600000006000000030000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000
+000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000
+180000000c000000004040005400000058000000140000007f0000001d0000008b0000000100000000400d4200040dc21d00000087ffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000
+000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00
+000002000000180000000c0000000040400054000000a0000000250000007f000000610000008b0000000100000000400d4200040dc22e00000087ffffff0e0000004c000000000000000000000000000000ffffffffffffffff6800000043006c0065006100720028002900200020003a0076006f0069006400070000000300000006000000060000000300000003000000030000000300000003000000030000000500000006
+00000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00000010000000
+60000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000058000000140000008c0000001d000000980000000100000000400d4200040dc21d0000007affffff020000004c000000000000000000000000000000ffffffffffffff
+ff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b00
+00001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000004040005400000090010000250000008c00000028010000980000000100000000400d4200040dc22e0000007affffff360000004c000000000000000000000000000000ff
+ffffffffffffffb800000055007000640061007400650049006e0063006900640065006e0074007300280049004e005400330032002c00200053005400520049004e0047002c002000540072006100660066006900630049006e0063006900640065006e0074002900200020003a0076006f0069006400070000000600000006000000060000000300000006000000030000000600000005000000030000000600000006000000
+0600000003000000040000000300000003000000070000000700000006000000060000000300000003000000070000000700000007000000030000000700000008000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000003000000030000000300000003000000050000000600000003000000060000
+000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00
+000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000005800000014000000990000001d000000a50000000100000000400d4200040dc21d0000006dffffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006
+000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000
+a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c00000000404000540000001c02000025000000990000008e010000a50000000100000000400d4200040dc22e0000006dffffff4d0000004c000000000000000000000000000000ffffffffffffffffe80000
+00550070006400610074006500530074006100740075007300280049004e005400330032002c002000540072006100660066006900630049006e0063006900640065006e00740046006500650064005300740061007400750073002c002000540072006100660066006900630049006e0063006900640065006e00740073005300740061007400750073002900200020003a0076006f0069006400626507000000060000000600
+0000060000000300000006000000070000000300000006000000030000000600000004000000030000000300000007000000070000000600000006000000030000000300000007000000030000000600000003000000030000000300000005000000030000000600000005000000030000000600000006000000060000000300000006000000060000000600000006000000070000000300000006000000030000000600000004
+00000003000000030000000700000003000000060000000300000003000000030000000500000003000000060000000500000003000000060000000600000006000000030000000400000007000000030000000600000003000000060000000400000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c00000010000000000000000000000046000000
+2c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000350022feeb0088002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000002c0000005c010000170100
+00e401000005000000c002c015c002401e7011401e7011c015c002c015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b4000401800
+00000c00000001000000350022feeb0088003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000015000000450100002e010000fb
+01000004000000c002401e7011401e7011c015c002c015250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db040000000400000000000000000048420080edc300006b4300000843
+bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000320025feeb008800250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000002900000059010000a3000000e101000005000000290059012900e1
+01a300e101a300590129005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000a300000059010000a9000000e101000005000000a3005901a300e101a900e101a9005901a3005901250000000c00000008000080250000000c0000000000
+0080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c000000080000805600000030000000a900000059010000b0000000e101000005000000a9005901a900e101b000e101b0005901a9005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000
+000000250000000c00000004000000250000000c000000080000805600000030000000b000000059010000b7000000e101000005000000b0005901b000e101b700e101b7005901b0005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000
+b700000059010000be000000e101000005000000b7005901b700e101be00e101be005901b7005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000be00000059010000c4000000e101000005000000be005901be00e101c400e101c40059
+01be005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c000000080000805600000030000000c400000059010000ca000000e101000005000000c4005901c400e101ca00e101ca005901c4005901250000000c00000008000080250000000c00000000000080280000000c00
+00000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c000000080000805600000030000000ca00000059010000d1000000e101000005000000ca005901ca00e101d100e101d1005901ca005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c
+00000004000000250000000c000000080000805600000030000000d100000059010000d7000000e101000005000000d1005901d100e101d700e101d7005901d1005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d20000000000250000000c00000004000000250000000c000000080000805600000030000000d700000059010000
+db000000e101000005000000d7005901d700e101db00e101db005901d7005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d00000000000250000000c00000004000000250000000c000000080000805600000030000000db00000059010000df000000e101000005000000db005901db00e101df00e101df005901db005901250000
+000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3cf0000000000250000000c00000004000000250000000c000000080000805600000030000000df00000059010000e4000000e101000005000000df005901df00e101e400e101e4005901df005901250000000c00000008000080250000000c00000000000080280000000c000000040000002700
+0000180000000400000000000000f1e2cd0000000000250000000c00000004000000250000000c000000080000805600000030000000e400000059010000ea000000e101000005000000e4005901e400e101ea00e101ea005901e4005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cb0000000000250000000c0000000400000025
+0000000c000000080000805600000030000000ea00000059010000f0000000e101000005000000ea005901ea00e101f000e101f0005901ea005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc90000000000250000000c00000004000000250000000c000000080000805600000030000000f000000059010000f6000000e1010000
+05000000f0005901f000e101f600e101f6005901f0005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eddec70000000000250000000c00000004000000250000000c000000080000805600000030000000f600000059010000fd000000e101000005000000f6005901f600e101fd00e101fd005901f6005901250000000c000000080000
+80250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdcc50000000000250000000c00000004000000250000000c000000080000805600000030000000fd0000005901000004010000e101000005000000fd005901fd00e1010401e10104015901fd005901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400
+000000000000ebdac30000000000250000000c00000004000000250000000c00000008000080560000003000000004010000590100000a010000e101000005000000040159010401e1010a01e1010a01590104015901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ead9c10000000000250000000c00000004000000250000000c00000008
+00008056000000300000000a0100005901000010010000e1010000050000000a0159010a01e1011001e101100159010a015901250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000000c000000080000805600000030000000100100005901000014010000e10100000500000010015901
+1001e1011401e1011401590110015901250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c00000001000000320025feeb0088003a0000000c0000
+000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c00000012000000420100002b010000f8010000040000009002101e4011101e40119015900290152500
+00000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00000010000000000000000000000011
+0000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000003c000000a7feffff14010000
+9afeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000840000005f010000b90000006b0100000100000000400d4200040dc28d000000a7feffff0b0000004c000000000000000000000000000000ffffffffffffffff64000000ab0069006e007400650072006600610063006500bb0000000600000003000000060000
+0003000000060000000300000003000000060000000500000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c00
+0000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000f0
+0000005c0000006c010000e1000000770100000100000000400d4200040dc2650000009afeffff1b0000004c000000000000000000000000000000ffffffffffffffff84000000540072006100660066006900630049006e0063006900640065006e00740046006500650064004c0069007300740065006e0065007200010005000000040000000600000003000000030000000300000006000000030000000600000006000000
+03000000060000000600000006000000030000000600000006000000060000000600000006000000030000000600000003000000060000000600000006000000040000000a0000001000000009000000060000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db000000
+00000000ff0840010324000000180000000210c0db020000000040000032008efe1d018efe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800
+000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000012000000610100002b0100008f010000020000009002801740118017250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c
+000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000
+18000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000002e0000007e010000370000008a0100000100000000400d4200040dc23700000088feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b002000060000
+00030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ff
+ffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000080100003f0000007e010000d40000008a0100000100000000400d4200040dc24800000088feffff1f0000004c000000000000000000000000000000ffffffffffffffff8c00000047
+0065007400560065007200730069006f006e005200650070006c0079002800560065007200730069006f006e002900200020003a0076006f006900640000000800000006000000030000000700000006000000030000000400000003000000060000000600000007000000060000000600000003000000050000000300000007000000060000000300000004000000030000000600000006000000030000000300000003000000
+03000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000
+000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000002e0000008b01000037000000970100000100000000400d4200040dc2370000007bfeffff020000004c00000000000000000000000000
+0000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060
+000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000380100003f0000008b01000012010000970100000100000000400d4200040dc2480000007bfeffff270000004c00000000000000
+0000000000000000ffffffffffffffff9c0000004700650074004c0061006e00670075006100670065005200650070006c007900280053005400520049004e0047002c00200053005400520049004e0047002900200020003a0076006f0069006400000008000000060000000300000006000000060000000600000006000000060000000600000006000000060000000700000006000000060000000300000005000000030000
+00070000000700000007000000030000000700000008000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000001100
+00000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c
+0000000040400054000000580000002e0000009801000037000000a40100000100000000400d4200040dc2370000006efeffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000
+00000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000
+00180000000c0000000040400054000000080100003f00000098010000d8000000a40100000100000000400d4200040dc2480000006efeffff1f0000004c000000000000000000000000000000ffffffffffffffff8c0000005200650067006900730074006500720046006500650064005200650070006c007900280049004e005400330032002900200020003a0076006f0069006400ffff0700000006000000060000000300
+00000400000003000000060000000300000006000000060000000600000006000000070000000600000006000000030000000500000003000000030000000700000007000000060000000600000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c00000000
+0000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000
+ffffff00250000000c00000002000000180000000c0000000040400054000000580000002e000000a501000037000000b10100000100000000400d4200040dc23700000061feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000
+000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c000000010000001900
+00000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000140100003f000000a5010000e5000000b10100000100000000400d4200040dc24800000061feffff210000004c000000000000000000000000000000ffffffffffffffff900000004100640064004c0061006e00670075006100670065004c0069007300740065006e00650072005200650070006c00790028002900200020003a
+0076006f006900640000000700000006000000060000000600000006000000060000000600000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c00000010000000
+0000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c0000
+0010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000002e000000b201000037000000be0100000100000000400d4200040dc23700000054feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c00
+0000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000240100003f000000b2010000f9000000be0100000100000000400d4200040dc24800000054feffff240000004c000000000000000000000000000000ffffffffffffffff94000000520065006d006f00760065004c0061006e00670075006100
+670065004c0069007300740065006e00650072005200650070006c00790028002900200020003a0076006f00690064000700000006000000090000000600000005000000060000000600000006000000060000000600000006000000060000000600000006000000060000000300000004000000030000000600000006000000060000000300000007000000060000000600000003000000050000000300000003000000030000
+000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c7e5f9ff01000000350037fee5000d00280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000000000240000002400
+00000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000f9e5c70000000000250000000c00000001000000250000000c0000000800008056000000300000002c000000c201000011010000cf01000005000000c002201cc002f01c1011f01c1011201cc002201c250000000c00000007000080250000000c000000000000802400000024000000000080410000000000
+00000000008041000000000000000002000000460000002c00000020000000454d462b0a4000c01c00000010000000d5ebfaff01000000360038fee3000b00280000000c0000000100000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000faebd50000000000250000000c00000001000000250000000c000000080000805600000030000000
+2d000000c301000010010000ce01000005000000d002301cd002e01c0011e01c0011301cd002301c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000
+000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00
+0000180000003800000043feffff1801000037feffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000007c0000002f000000c301000057000000ce0100000100000000400d4200040dc23800000043feffff080000004c000000000000000000000000000000ffffffffffffffff5c000000ab007300690067006e0061006c00bb0006
+000000040000000300000006000000060000000600000003000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000
+100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054000000580000
+002e000000d001000037000000dc0100000100000000400d4200040dc23700000036feffff020000004c000000000000000000000000000000ffffffffffffffff500000002b00200006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c0000000100
+00000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000000040400054
+000000300100003f000000d001000011010000dc0100000100000000400d4200040dc24800000036feffff260000004c000000000000000000000000000000ffffffffffffffff980000004c0061006e00670075006100670065004300680061006e00670065006400280053005400520049004e0047002c00200053005400520049004e0047002900200020003a0076006f006900640006000000060000000600000006000000
+060000000600000006000000060000000700000006000000060000000600000006000000060000000600000003000000070000000700000007000000030000000700000008000000030000000300000007000000070000000700000003000000070000000800000003000000030000000300000003000000050000000600000003000000060000000a0000001000000009000000060000000c0000001000000000000000000000
+00460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff01000000b30104ffda002700280000000c000000010000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d00000000000000000200000027000000180000000100000000000000c0bfc000000000002500
+00000c00000001000000250000000c000000080000805600000030000000aa010000db000000840200000201000005000000a01ab00da01a2010402820104028b00da01ab00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086
+000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c00000001000000b30104ffda0027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc00000000000000000000000000025000000
+0c00000004000000250000000c00000005000080560000002c00000093010000c40000009b0200001901000004000000a01a2010402820104028b00da01ab00d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b084002
+01580000004c0000000210c0db0400000004000000000000000000d843000079c300005a4300001c42bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c000000100000000200000001000000b00107ffda002700250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c00
+0000080000805600000030000000a7010000d800000019020000ff00000005000000a701d800a701ff001902ff001902d800a701d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008000080560000003000000019020000d80000001e020000ff0000000500000019
+02d8001902ff001e02ff001e02d8001902d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000001e020000d800000024020000ff000000050000001e02d8001e02ff002402ff002402d8001e02d800250000000c0000000800008025000000
+0c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c00000008000080560000003000000024020000d80000002b020000ff000000050000002402d8002402ff002b02ff002b02d8002402d800250000000c00000008000080250000000c00000000000080280000000c00000004000000270000001800000004000000000000
+00f8ecdb0000000000250000000c00000004000000250000000c0000000800008056000000300000002b020000d800000031020000ff000000050000002b02d8002b02ff003102ff003102d8002b02d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600
+00003000000031020000d800000037020000ff000000050000003102d8003102ff003702ff003702d8003102d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d70000000000250000000c00000004000000250000000c00000008000080560000003000000037020000d80000003c020000ff000000050000003702d8003702ff003c
+02ff003c02d8003702d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c0000000800008056000000300000003c020000d800000043020000ff000000050000003c02d8003c02ff004302ff004302d8003c02d800250000000c00000008000080250000000c00000000000080
+280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c00000008000080560000003000000043020000d800000049020000ff000000050000004302d8004302ff004902ff004902d8004302d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d100000000
+00250000000c00000004000000250000000c00000008000080560000003000000049020000d80000004f020000ff000000050000004902d8004902ff004f02ff004f02d8004902d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c0000000800008056000000300000004f02
+0000d800000054020000ff000000050000004f02d8004f02ff005402ff005402d8004f02d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000000c00000004000000250000000c00000008000080560000003000000054020000d800000057020000ff000000050000005402d8005402ff005702ff005702d80054
+02d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c00000008000080560000003000000057020000d80000005d020000ff000000050000005702d8005702ff005d02ff005d02d8005702d800250000000c00000008000080250000000c00000000000080280000000c000000
+0400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000005d020000d800000062020000ff000000050000005d02d8005d02ff006202ff006202d8005d02d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c0000
+0004000000250000000c00000008000080560000003000000062020000d800000068020000ff000000050000006202d8006202ff006802ff006802d8006202d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c00000008000080560000003000000068020000d80000006f02
+0000ff000000050000006802d8006802ff006f02ff006f02d8006802d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c0000000800008056000000300000006f020000d800000075020000ff000000050000006f02d8006f02ff007502ff007502d8006f02d800250000000c
+00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c00000008000080560000003000000075020000d80000007b020000ff000000050000007502d8007502ff007b02ff007b02d8007502d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000
+180000000400000000000000e9d8c00000000000250000000c00000004000000250000000c0000000800008056000000300000007b020000d800000080020000ff000000050000007b02d8007b02ff008002ff008002d8007b02d800250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7be0000000000250000000c00000004000000250000
+000c00000008000080560000003000000080020000d800000081020000ff000000050000008002d8008002ff008102ff008102d8008002d800250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210
+c0db00000000000000ff0b400040180000000c00000001000000b00107ffda0027003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c
+00000090010000c1000000980200001601000004000000701af00f1028f00f1028800d701a800d250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000
+100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000
+000c00000002000000180000000c000000000000001e00000018000000ba01000028ffffff810200001bffffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c000000000000005400000090000000fb010000de0000002e020000ea0000000100000000400d4200040dc20402000028ffffff0b0000004c000000000000000000000000000000ffffffffffff
+ffff64000000ab00730074007200750063007400750072006500bb00000006000000040000000300000003000000060000000500000003000000060000000300000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b04
+4000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000
+190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000a8000000f2010000eb00000037020000f60000000100000000400d4200040dc2fb0100001bffffff0f0000004c000000000000000000000000000000ffffffffffffffff6c000000540072006100660066006900630049006e0063006900640065006e00740000200500000004000000060000000300000003000000030000
+000600000003000000060000000600000003000000060000000600000006000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff010000004e010efe830061002100000008000000620000000c00000001000000110000000c000000010000000a000000100000000000000000000000240000002400
+00000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000004501000097010000c8010000f801000005000000501470195014801f801c801f801c701950147019250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000004600000060
+00000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c000000010000004e010efe830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000
+002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002e01000080010000df0100000f020000040000005014801f801c801f801c701950147019250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000
+003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000080a5430080f7c3000003430000c242bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000010000004b0111fe83006100250000000c0000000800008027000000180000000400
+000000000000fcf2e30000000000250000000c00000004000000250000000c000000080000805600000030000000420100009401000086010000f501000005000000420194014201f5018601f5018601940142019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000fbf1e10000000000250000000c00000004000000250000000c00000008
+000080560000003000000086010000940100008a010000f501000005000000860194018601f5018a01f5018a01940186019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800008056000000300000008a010000940100008d010000f5010000050000008a019401
+8a01f5018d01f5018d0194018a019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faeedd0000000000250000000c00000004000000250000000c0000000800008056000000300000008d0100009401000090010000f5010000050000008d0194018d01f5019001f501900194018d019401250000000c00000008000080250000000c0000
+0000000080280000000c0000000400000027000000180000000400000000000000f8eddc0000000000250000000c00000004000000250000000c000000080000805600000030000000900100009401000093010000f501000005000000900194019001f5019301f5019301940190019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f7eb
+da0000000000250000000c00000004000000250000000c000000080000805600000030000000930100009401000097010000f501000005000000930194019301f5019701f5019701940193019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6ead80000000000250000000c00000004000000250000000c000000080000805600000030
+00000097010000940100009a010000f501000005000000970194019701f5019a01f5019a01940197019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d60000000000250000000c00000004000000250000000c0000000800008056000000300000009a010000940100009e010000f5010000050000009a0194019a01f5019e01f501
+9e0194019a019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d40000000000250000000c00000004000000250000000c0000000800008056000000300000009e01000094010000a2010000f5010000050000009e0194019e01f501a201f501a20194019e019401250000000c00000008000080250000000c00000000000080280000
+000c0000000400000027000000180000000400000000000000f3e6d20000000000250000000c00000004000000250000000c000000080000805600000030000000a201000094010000a6010000f501000005000000a2019401a201f501a601f501a6019401a2019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e4d000000000002500
+00000c00000004000000250000000c000000080000805600000030000000a601000094010000a9010000f501000005000000a6019401a601f501a901f501a9019401a6019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e3ce0000000000250000000c00000004000000250000000c000000080000805600000030000000a901000094
+010000ac010000f501000005000000a9019401a901f501ac01f501ac019401a9019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000ac01000094010000af010000f501000005000000ac019401ac01f501af01f501af019401ac019401
+250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c000000080000805600000030000000af01000094010000b3010000f501000005000000af019401af01f501b301f501b3019401af019401250000000c00000008000080250000000c00000000000080280000000c000000040000
+0027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c000000080000805600000030000000b301000094010000b6010000f501000005000000b3019401b301f501b601f501b6019401b3019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000edddc60000000000250000000c0000000400
+0000250000000c000000080000805600000030000000b601000094010000ba010000f501000005000000b6019401b601f501ba01f501ba019401b6019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c00000004000000250000000c000000080000805600000030000000ba01000094010000be010000f5
+01000005000000ba019401ba01f501be01f501be019401ba019401250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c000000080000805600000030000000be01000094010000c1010000f501000005000000be019401be01f501c101f501c1019401be019401250000000c000000
+08000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c000000080000805600000030000000c101000094010000c5010000f501000005000000c1019401c101f501c501f501c5019401c1019401250000000c00000008000080250000000c00000000000080280000000c00000004000000250000000c0000
+0007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c000000010000004b0111fe830061003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000002b0100007d010000dc0100000c020000040000002014501f501c501f501c401920144019250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000000000804100000000000000000200000028
+0000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff
+1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e00000018000000550100006cfeffffc50100005ffeffff160000000c00000001000000120000000c000000010000001b000000100000000000000000000000160000000c00000000000000540000
+009c000000600100009a010000a8010000a60100000100000000400d4200040dc2690100006cfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb000000060000000600000006000000060000000900000006000000030000000600000003000000030000000600000006000000060000001b00000010000000000000000000
+0000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000130400000900000010
+00000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c00000000000000540000007c00000072010000a701000096010000b20100000100000000400d4200040dc27b0100005ffeffff080000004c000000
+000000000000000000000000ffffffffffffffff5c0000007300740061007400750073003a003a0006000000030000000600000003000000060000000600000003000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000e40000004601
+0000b4010000c2010000bf0100000100000000400d4200040dc24f01000052feffff190000004c000000000000000000000000000000ffffffffffffffff80000000540072006100660066006900630049006e0063006900640065006e0074004600650065006400530074006100740075007300000005000000040000000600000003000000030000000300000006000000030000000600000006000000030000000600000006
+0000000600000003000000060000000600000006000000060000000700000003000000060000000300000006000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff084001032400000018000000
+0210c0db02000000004000004b0140fece0140fe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000003800000000000000002101
+00100000000000000000000000000000000000000000000000250000000c00000004000000250000000c0000000500008057000000240000002b010000af010000dc010000dd010000020000002014601c501c601c250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a00
+0000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064
+0000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000047010000ca0100004a010000d60100000100000000400d4200040dc2500100003cfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a000000100000000900000006000000
+0c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000
+00640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a800000058010000ca010000b1010000d60100000100000000400d4200040dc2610100003cfeffff0f0000004c000000000000000000000000000000ffffffffffffffff6c00000055004e0041005600410049004c00410042004c004500
+20003d002000310000000700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000
+00000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000047010000
+d70100004a010000e30100000100000000400d4200040dc2500100002ffeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000
+000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000005801
+0000d7010000aa010000e30100000100000000400d4200040dc2610100002ffeffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000043004f004e004e004500430054004500440020003d00200032000000070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000060000000c00000010
+0000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f0000001800000064000000640000006400000064000000
+0c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000005400000047010000e40100004a010000f00100000100000000400d4200040dc25001000022feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000060000000c0000
+00100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f000000180000006400000064000000640000006400
+00000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000ac00000058010000e4010000bb010000f00100000100000000400d4200040dc26101000022feffff100000004c000000000000000000000000000000ffffffffffffffff6c00000044004900530043004f004e004e004500430054004500440020
+003d0020003300070000000300000007000000070000000800000007000000070000000700000007000000070000000700000007000000030000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000002c00000020000000454d462b0a4000c01c00000010000000c0bfc0ff0100000095018afe940054002100000008000000620000000c00000001000000
+110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d000000000000000002000000250000000c00000001000000250000000c0000000800008056000000300000008c01000028010000200200007c01000005000000c0188012c018c0170022c01700228012c0188012250000000c00000007000080250000000c0000000000008024000000240000
+0000008041000000000000000000008041000000000000000002000000460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000c0bfc0ff0b400040180000000c0000000100000095018afe940054003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d000000000000
+0000020000005f000000380000000400000038000000000000003800000000000000002101001000000000000000c0bfc000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c0000007501000011010000370200009301000004000000c018c0170022c01700228012c0188012250000000c00000007000080250000000c0000000000008024000000240000000000804100
+0000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000460000008400000078000000454d462b08400201580000004c0000000210c0db0400000004000000000000000000c9430080b9c3000014430000a842bed7e8ffe3f2fcffbed7e8ffe3f2fcff03000000000000000000003f0000803fe3f2fcffe3f2fcffbed7e8ff0a4000401c0000001000000002000000
+0100000092018dfe94005400250000000c0000000800008027000000180000000400000000000000fcf2e30000000000250000000c00000004000000250000000c0000000800008056000000300000008901000025010000d601000079010000050000008901250189017901d6017901d601250189012501250000000c00000008000080250000000c00000000000080280000000c000000040000002700000018000000040000
+0000000000fbf1e10000000000250000000c00000004000000250000000c000000080000805600000030000000d601000025010000da0100007901000005000000d6012501d6017901da017901da012501d6012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000faf0df0000000000250000000c00000004000000250000000c0000000800
+00805600000030000000da01000025010000de0100007901000005000000da012501da017901de017901de012501da012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f9eedd0000000000250000000c00000004000000250000000c000000080000805600000030000000de01000025010000e30100007901000005000000de012501de
+017901e3017901e3012501de012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f8ecdb0000000000250000000c00000004000000250000000c000000080000805600000030000000e301000025010000e70100007901000005000000e3012501e3017901e7017901e7012501e3012501250000000c00000008000080250000000c000000
+00000080280000000c0000000400000027000000180000000400000000000000f7ebd90000000000250000000c00000004000000250000000c000000080000805600000030000000e701000025010000eb0100007901000005000000e7012501e7017901eb017901eb012501e7012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f6e9d7
+0000000000250000000c00000004000000250000000c000000080000805600000030000000eb01000025010000ee0100007901000005000000eb012501eb017901ee017901ee012501eb012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f5e8d50000000000250000000c00000004000000250000000c00000008000080560000003000
+0000ee01000025010000f30100007901000005000000ee012501ee017901f3017901f3012501ee012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f4e7d30000000000250000000c00000004000000250000000c000000080000805600000030000000f301000025010000f70100007901000005000000f3012501f3017901f7017901f7
+012501f3012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f2e5d10000000000250000000c00000004000000250000000c000000080000805600000030000000f701000025010000fb0100007901000005000000f7012501f7017901fb017901fb012501f7012501250000000c00000008000080250000000c0000000000008028000000
+0c0000000400000027000000180000000400000000000000f1e4cf0000000000250000000c00000004000000250000000c000000080000805600000030000000fb01000025010000fe0100007901000005000000fb012501fb017901fe017901fe012501fb012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f1e2ce0000000000250000
+000c00000004000000250000000c000000080000805600000030000000fe01000025010000010200007901000005000000fe012501fe0179010102790101022501fe012501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000f0e1cc0000000000250000000c00000004000000250000000c000000080000805600000030000000010200002501
+00000502000079010000050000000102250101027901050279010502250101022501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000efe0ca0000000000250000000c00000004000000250000000c0000000800008056000000300000000502000025010000080200007901000005000000050225010502790108027901080225010502250125
+0000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000eedfc80000000000250000000c00000004000000250000000c00000008000080560000003000000008020000250100000c020000790100000500000008022501080279010c0279010c02250108022501250000000c00000008000080250000000c00000000000080280000000c00000004000000
+27000000180000000400000000000000edddc60000000000250000000c00000004000000250000000c0000000800008056000000300000000c020000250100001102000079010000050000000c0225010c02790111027901110225010c022501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ecdbc40000000000250000000c000000040000
+00250000000c00000008000080560000003000000011020000250100001502000079010000050000001102250111027901150279011502250111022501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000ebdac20000000000250000000c00000004000000250000000c0000000800008056000000300000001502000025010000190200007901
+0000050000001502250115027901190279011902250115022501250000000c00000008000080250000000c00000000000080280000000c0000000400000027000000180000000400000000000000e8d7bf0000000000250000000c00000004000000250000000c00000008000080560000003000000019020000250100001d020000790100000500000019022501190279011d0279011d02250119022501250000000c00000008
+000080250000000c00000000000080280000000c00000004000000250000000c00000007000080460000006000000054000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db00000000000000ff0b400040180000000c0000000100000092018dfe940054003a0000000c0000000a00000024000000240000000000803d0000000000000000
+0000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080560000002c000000720100000e01000034020000900100000400000090189017d0219017d021501290185012250000000c00000007000080250000000c00000000000080240000
+002400000000008041000000000000000000008041000000000000000002000000280000000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c000000080000000900000010000000170300001304
+0000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c000000000000001e000000180000009c010000dbfeffff1d020000cefeffff160000000c00000001000000120000000c00000001
+0000001b000000100000000000000000000000160000000c00000000000000540000009c000000af0100002b010000f7010000370100000100000000400d4200040dc2b8010000dbfeffff0d0000004c000000000000000000000000000000ffffffffffffffff68000000ab0065006e0075006d00650072006100740069006f006e00bb0000000600000006000000060000000600000009000000060000000300000006000000
+03000000030000000600000006000000060000001b000000100000000000000000000000160000000c000000000000004b0000001000000000000000050000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c0000001000000000000000000000
+00110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000003000000180000000c0000000000000054000000000100008c010000380100001a02
+0000430100000100000000400d4200040dc295010000cefeffff1e0000004c000000000000000000000000000000ffffffffffffffff880000007300740061007400750073003a003a00540072006100660066006900630049006e0063006900640065006e007400730053007400610074007500730006000000030000000600000003000000060000000600000003000000030000000500000004000000060000000300000003
+00000003000000060000000300000006000000060000000300000006000000060000000600000003000000060000000700000003000000060000000300000006000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000007c00000070000000454d462b08400002380000002c0000000210c0db0000000086000000000000000000803f0100000001000000000000000210c0db
+00000000000000ff0840010324000000180000000210c0db02000000004000009201bcfe2602bcfe00010101154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000003a0000000c0000000a00000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000
+003800000000000000380000000000000000210100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c00000005000080570000002400000072010000330100003402000061010000020000009018a014d021a014250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000000000000000020000002800
+00000c000000040000003a0000000c0000000a000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f
+00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008e0100004e010000910100005a0100000100000000400d4200040dc297010000b8feffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000
+030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffff
+ff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000a80000009f0100004e010000f80100005a0100000100000000400d4200040dc2a8010000b8feffff0f0000004c000000000000000000000000000000ffffffffffffffff6c0000005500
+4e0041005600410049004c00410042004c00450020003d002000310000000700000007000000070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a00000010000000000000000000000011
+0000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c0000000200000018000000
+0c0000008b00000054000000540000008e0100005b01000091010000670100000100000000400d4200040dc297010000abfeffff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a0000001000000000000000000000
+00110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c000000020000001800
+00000c0000008b00000054000000c40000009f0100005b01000019020000670100000100000000400d4200040dc2a8010000abfeffff140000004c000000000000000000000000000000ffffffffffffffff7400000050004100520054004c0059005f0041005600410049004c00410042004c00450020003d00200032000700000007000000070000000700000006000000070000000600000007000000070000000700000003
+0000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c00000008000000090000001000000017030000
+13040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b00000054000000540000008e0100006801000091010000740100000100000000400d4200040dc2970100009efeff
+ff010000004c000000000000000000000000000000ffffffffffffffff5000000020000000030000000a0000001000000009000000060000000c000000100000000000000000000000460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000000000110000000c0000000800000009000000100000001703
+000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000001000000190000000c000000ffffff00250000000c00000002000000180000000c0000008b000000540000009c0000009f01000068010000ea010000740100000100000000400d4200040dc2a80100009e
+feffff0d0000004c000000000000000000000000000000ffffffffffffffff6800000041005600410049004c00410042004c00450020003d002000330002c3070000000700000007000000030000000600000007000000070000000600000007000000030000000600000003000000060000000a0000001000000009000000060000000c000000100000000000000000000000460000000c01000000010000454d462b08400002
+34000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103b8000000ac0000000210c0db2000000000400000bc00adfebe00b4febf00b8fec100bffec200c3fec500cafec600cefec800d5fec900d9fecb00e0fecd00e4fecf00ebfed000effed200f6fed300fafed60001ffd70005ffd9000cffda0010ffdc0017ffde001bffe00022ffe10026ffe3002d
+ffe40031ffe70038ffe8003cffea0043ffeb0047ffed004effef0052fff10059ff0001000100010001000100010001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a00000010000000000000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00
+000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000e0000000b1000000ab000000ea0000005b0100001000000020000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002
+00000002000000300b9015500b2015600be014800b7014900b3014c00bc013d00b8013f00b1013000cd012200c6012400c2012600cb011700c7011900c0011a00cc010d00c5010e00c1010000da00f100d600f300df00e500db00e700d400e800d000ea00d900db00d500de00de00cf00da00c100e300c200ef00b400e800b600e400b800ed00a250000000c00000007000080250000000c000000000000802400000024000000
+00008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000bc00adfebc00bdfebc00adfec500bafe0001000115400100100000
+00040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000b100000047010000be0000005b01000002000000040000000200000002000000300b
+9015300b9014300b9015c00bc014250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00000004000000220000000c000000ffffffff460000001c00000010000000454d462b044000000c000000000000000a000000100000000000000000000000110000000c000000010000000c000000100000000000000000
+000000110000000c0000000800000009000000100000001703000013040000090000001000000060000000600000000b0000001000000060000000a0ffffff1f00000018000000640000006400000064000000640000000c00000010000000f7ffffff06000000120000000c00000002000000190000000c000000ffffff00520000007001000004000000f6ffffff000000000000000000000000000000000000000100000500
+41005200490041004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041004c000000000000000000000000000000000000007c063376000000007c06337680013376401c971c8ce3c577bb89172646e0c5779401300b0000300bc70f3276703521306600da009d2b0100d94021171900b00175322f760100d9406700d8019d2b01
+008ce3c5770f89172670374b0b9401300b08000000cc8fba26000000001098bf2348004b0b5c014b0bc8981a24f0374b0b8ce3c577cc51e1029c2b0100c453e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c57700000000e48eba265c014b0bd940211795380a4a4090ba266052e1023c53e1025854e102f571ca7793093353feffffff8ce3c577f2e0c57746e0c577000000006476000800000000250000000c00
+000004000000180000000c0000000000000054000000b4000000a7000000f4000000f6000000000100000100000000400d4200040dc2b000000012ffffff110000004c000000000000000000000000000000ffffffffffffffff70000000630061006c006c006200610063006b0049006e007400650072006600610063006500000005000000060000000300000003000000060000000600000005000000040000000300000006
+000000030000000600000003000000030000000600000005000000060000000a0000001000000009000000060000000c000000100000000000000000000000280000000c0000000400000046000000c8000000bc000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010374000000680000000210c0db1200000000400000
+f5012effee0131ffea0133ffe30137ffdf0139ffd8013cffd4013effcd0142ffc90144ffc20147ffbe0149ffb7014dffb3014fffac0152ffa80154ffa10158ff9d015aff9b015bff0001000100010001000100010001000100010001154001001000000004000000000000002100000008000000620000000c00000001000000110000000c000000010000000a0000001000000000000000000000002400000024000000000080
+3d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000008c00000090010000a9000000ee010000da0000000900000012000000020000000200000002000000020000000200000002000000020000000200
+000002000000c01e800d501e500d101e300da01df00c601dd00cf01ca00cb01c800c401c400c001c200c901bf00b501bd00be01a900ba01a700b301a400bf019200b8019e00a4019c00a2019b00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b08
+4000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000f5012effe50130fff5012effea0139ff000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000
+3800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000da010000cb000000ee010000da00000002000000040000000200000002000000c01e800dc01d600dc01e800d101ed00c250000000c00000007000080250000000c0000000000008024000000240000000000804100000000000000
+0000008041000000000000000002000000280000000c0000000400000046000000480100003c010000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff08400103f4000000e80000000210c0db2c000000004000007a0172fe780179fe76017dfe740184fe720188fe70018ffe6e0193fe6c019afe6a019efe6801a5fe6601a9fe6401
+b0fe6201b4fe6001bbfe5e01bffe5b01c6fe5a01cafe5701d1fe5601d5fe5301dcfe5201e0fe4f01e7fe4e01ebfe4b01f2fe4a01f6fe4701fdfe460101ff430108ff42010cff3f0113ff3e0117ff3b011eff3a0122ff370129ff35012dff330134ff310138ff2f013fff2d0143ff2b014aff29014eff270155ff250159ff24015bff00010001000100010001000100010001000100010001000100010001000100010001000100
+010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f00000038000000040000003800000000000000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a0000002801000019010000a9000000730100009601000016000000
+2c0000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000010174019f016d018d0169018b01620189016e01770167017501630173016c01610168016f0151016d015d015b0156015901520157015b01450157014201500141015c013e0145013d01410
+13a014a012901460126014f0115014b0112014401110140011e0139010d0135010a013e00f9013a00f6013300f5013f00e2013800e1013400ee012d00dc012900da012200d8012e00c6012700c4012300c2012c00b0012800be011100bc011d00ab011b00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c00
+00000400000046000000880000007c000000454d462b084000023c000000300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db04000000004000007a0172fe70017efe7a0172fe790182fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d00
+00000000000000020000005f00000038000000040000003800000000000000380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a00000038000000650100008201000073010000960100000200000004000000020000000200000010174019701680181017401900174018250000000c00000007000080250000000c000000
+00000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000e4000000d8000000454d462b0840000234000000280000000210c0db0000000088000000000000000000803f02000000000000000210c0db00000000000000ff0840010390000000840000000210c0db1800000000400000b601e1feb001e8fead01ecfea601f3fea301f7fe9d01fe
+fe990102ff930109ff8f010dff890114ff850118ff7f011fff7c0123ff75012aff72012eff6b0135ff680139ff620140ff5e0144ff58014bff54014fff4e0156ff4a015aff49015bff0001000100010001000100010001000100010001000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f0000003800000004000000380000000000
+0000380000000000000000020100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000b00000003e010000a9000000af010000270100000c00000018000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000d01a5012701ae011401aa011d0193011a019f0104019801000
+194010a018d00f6018900f0018200fc017e00e6017700e3017300ec016c00d9016800d2016100df015d00c9015600c5015200cf014b00bb014700b5014000b1014c00a0014b00a250000000c00000007000080250000000c00000000000080240000002400000000008041000000000000000000008041000000000000000002000000280000000c0000000400000046000000880000007c000000454d462b084000023c000000
+300000000210c0db000000008e000000000000000000803f020000000200000001000000000000000210c0db00000000000000ff084001032c000000200000000210c0db0400000000400000b601e1fea801e9feb601e1feb001f0fe000100011540010010000000040000000000000024000000240000000000803d00000000000000000000803d0000000000000000020000005f000000380000000400000038000000000000
+00380000000000000000100100100000000000000000000000000000000000000000000000250000000c00000004000000250000000c000000050000805a000000380000009d01000014010000af0100002701000002000000040000000200000002000000d01a5012f019d011d01a5012701a6011250000000c00000007000080250000000c000000000000802400000024000000000080410000000000000000000080410000
+00000000000002000000280000000c00000004000000280000000c00000002000000280000000c000000030000004c000000640000000000000000000000910200001b0200000000000000000000920200001c0200002900aa0000000000000000000000803f00000000000000000000803f0000000000000000000000000000000000000000000000000000000000000000220000000c000000ffffffff460000001c00000010
+000000454d462b024000000c000000000000000e00000014000000000000001000000014000000}}
+\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\hich\f5\dbch\f5\loch\f5 Figure: \lang1033\hich\f5\dbch\f5\loch\f5\protect 28\lang3081\hich\f3\dbch\f3\loch\f3\protect0\par
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_61DB70B5_CDB5_4b32_A991_921986D41CAA}{\*\bkmkend BKM_61DB70B5_CDB5_4b32_A991_921986D41CAA}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Advice}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_A70B298B_A6B2_4424_9403_DC4897941FCB}{\*\bkmkend BKM_A70B298B_A6B2_4424_9403_DC4897941FCB}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt AdviceCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A7190D3B_81E8_4f92_A93B_B1D4E36D704E}{\*\bkmkend BKM_A7190D3B_81E8_4f92_A93B_B1D4E36D704E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subAdvice}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BYTE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0A21FDA9_B93A_4b41_AF88_CC7FE52130D8}{\*\bkmkend BKM_0A21FDA9_B93A_4b41_AF88_CC7FE52130D8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+freeText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocalizedString}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DAFFF8E5_B4C1_4cb2_B3D1_5F1BF02415F8}{\*\bkmkend BKM_DAFFF8E5_B4C1_4cb2_B3D1_5F1BF02415F8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicability}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Applicability}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_9FAD8A70_360A_43c7_BA24_DA4B6B797710}{\*\bkmkend BKM_9FAD8A70_360A_43c7_BA24_DA4B6B797710}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Applicability}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_25B11DCA_2BC8_40ac_8A3D_40AC68616EA0}{\*\bkmkend BKM_25B11DCA_2BC8_40ac_8A3D_40AC68616EA0}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b vehicleType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt VehicleType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F07F8361_094C_4f7b_8C9B_B3D4B24E36CD}{\*\bkmkend BKM_F07F8361_094C_4f7b_8C9B_B3D4B24E36CD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+vehicleRelatedRestrictions}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt VehicleRelatedRestriction}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_4B75336B_AA9F_4bc6_8218_661B54D0E16E}{\*\bkmkend BKM_4B75336B_AA9F_4bc6_8218_661B54D0E16E}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+Cause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_D85AB022_2E16_4e9e_8FEC_63BAD668CE1F}{\*\bkmkend BKM_D85AB022_2E16_4e9e_8FEC_63BAD668CE1F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b mainCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_06EA4BD4_8FD0_4920_A237_3188A8CEF2CD}{\*\bkmkend BKM_06EA4BD4_8FD0_4920_A237_3188A8CEF2CD}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseDiscriminatedVariant}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_7A56EA01_1488_4e0c_B35D_7D7A23C57716}{\*\bkmkend BKM_7A56EA01_1488_4e0c_B35D_7D7A23C57716}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b causeType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_17AAC206_E9AA_4b8c_80DD_3D188BE6A285}{\*\bkmkend BKM_17AAC206_E9AA_4b8c_80DD_3D188BE6A285}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeUnion}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseUnion}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_5339E8A1_2469_4576_A664_79BE015A3B8A}{\*\bkmkend BKM_5339E8A1_2469_4576_A664_79BE015A3B8A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Enumeration}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseType}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_5E91469A_9935_4710_9985_BFAA1B8DD979}{\*\bkmkend BKM_5E91469A_9935_4710_9985_BFAA1B8DD979}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b DIRECT}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_867313FA_58A9_453a_A82E_BE64A48034E9}{\*\bkmkend BKM_867313FA_58A9_453a_A82E_BE64A48034E9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+LINKED}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_C1A3F71D_EB6B_4846_850D_ACDC3740E34F}{\*\bkmkend BKM_C1A3F71D_EB6B_4846_850D_ACDC3740E34F}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+CauseUnion}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_619C010B_25EA_4d58_9DFB_6686A05E4EB2}{\*\bkmkend BKM_619C010B_25EA_4d58_9DFB_6686A05E4EB2}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b directCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt DirectCause}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_CDB12E5E_1970_4d03_AF22_C1B61B4A42FE}{\*\bkmkend BKM_CDB12E5E_1970_4d03_AF22_C1B61B4A42FE}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+linkedCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LinkedCause}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_7E5C64EE_37E0_4456_86A4_487FC7E47CB6}{\*\bkmkend BKM_7E5C64EE_37E0_4456_86A4_487FC7E47CB6}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+DirectCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4C496A67_0FFB_4c7a_848E_7367C7B141BE}{\*\bkmkend BKM_4C496A67_0FFB_4c7a_848E_7367C7B141BE}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b warningLevel}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt WarningLevel}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4D7537C7_EED1_430f_A647_FD107E50E5CC}{\*\bkmkend BKM_4D7537C7_EED1_430f_A647_FD107E50E5CC}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+unverifiedInformation}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BOOLEAN}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_ACAA5E1B_77CD_47dd_A336_53ABAB30A1E8}{\*\bkmkend BKM_ACAA5E1B_77CD_47dd_A336_53ABAB30A1E8}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+subCause}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BYTE}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B888B957_9E82_4d8d_9192_62347D437141}{\*\bkmkend BKM_B888B957_9E82_4d8d_9192_62347D437141}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C19DBA21_A93A_40ca_A29E_FAA691303AE6}{\*\bkmkend BKM_C19DBA21_A93A_40ca_A29E_FAA691303AE6}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causeOffset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_FE5A8DA8_B741_4981_8C2F_75D224717323}{\*\bkmkend BKM_FE5A8DA8_B741_4981_8C2F_75D224717323}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+laneRestrictions}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LaneRestrictions}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A6E7BE79_92BF_4431_869F_EE3A5ACB375B}{\*\bkmkend BKM_A6E7BE79_92BF_4431_869F_EE3A5ACB375B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+freeText}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocalizedString}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_7C9C106D_155D_419e_B26A_7499081BA37A}{\*\bkmkend BKM_7C9C106D_155D_419e_B26A_7499081BA37A}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LaneRestrictions}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_BBAF5723_10B6_4406_B85C_06FE73E0493B}{\*\bkmkend BKM_BBAF5723_10B6_4406_B85C_06FE73E0493B}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b laneRestrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LaneRestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_897FCDD0_EDA4_4b0d_9D31_FBD943425244}{\*\bkmkend BKM_897FCDD0_EDA4_4b0d_9D31_FBD943425244}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+numberOfLanes}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1D890839_27CF_4105_A08C_AAB2C6E0DFB1}{\*\bkmkend BKM_1D890839_27CF_4105_A08C_AAB2C6E0DFB1}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LinkedCause}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_4738FED7_B606_44c5_AB89_0E51A1FB69A7}{\*\bkmkend BKM_4738FED7_B606_44c5_AB89_0E51A1FB69A7}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b causeTrafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_07F52C9B_79C0_4b9e_963A_98406B642C18}{\*\bkmkend BKM_07F52C9B_79C0_4b9e_963A_98406B642C18}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+LocationReference}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_B29E4FE9_200D_46ca_9B64_CA314F15903F}{\*\bkmkend BKM_B29E4FE9_200D_46ca_9B64_CA314F15903F}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b locationReferenceType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Integer}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C8CBDD4B_4340_494b_A4A3_9EA82D21D828}{\*\bkmkend BKM_C8CBDD4B_4340_494b_A4A3_9EA82D21D828}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+data}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt byte}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_58F23965_E3AD_4225_9F1F_B77A23E40084}{\*\bkmkend BKM_58F23965_E3AD_4225_9F1F_B77A23E40084}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimit}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_00B4530C_6C96_4840_A46D_C3C600814256}{\*\bkmkend BKM_00B4530C_6C96_4840_A46D_C3C600814256}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b unitsMPH}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt BOOLEAN}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D5E7A6CD_0669_4295_A026_C67862C11617}{\*\bkmkend BKM_D5E7A6CD_0669_4295_A026_C67862C11617}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+offset}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_BBC31CD6_4511_4f3d_83A9_463D0188513C}{\*\bkmkend BKM_BBC31CD6_4511_4f3d_83A9_463D0188513C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+temporarySpeedLimitSections}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TemporarySpeedLimitSection}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [1..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D5137FFF_B065_4582_BBBB_E49430809AEF}{\*\bkmkend BKM_D5137FFF_B065_4582_BBBB_E49430809AEF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicability}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Applicability}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_1F9F9CFD_C1F6_48da_B320_868BFAD82AE8}{\*\bkmkend BKM_1F9F9CFD_C1F6_48da_B320_868BFAD82AE8}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TemporarySpeedLimitSection}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_5CB5EC6A_89C7_4d15_B32C_891927ACAEF5}{\*\bkmkend BKM_5CB5EC6A_89C7_4d15_B32C_891927ACAEF5}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b speedLimitValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_323B4DE1_AA05_45d9_B0E1_3BCA8248EBB1}{\*\bkmkend BKM_323B4DE1_AA05_45d9_B0E1_3BCA8248EBB1}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitValueWet}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT16}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_C29CE5A7_B65E_4743_A403_66111C4CF910}{\*\bkmkend BKM_C29CE5A7_B65E_4743_A403_66111C4CF910}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+speedLimitLength}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_09CD4B6B_EBC9_4b91_A898_9B6A38AC9C89}{\*\bkmkend BKM_09CD4B6B_EBC9_4b91_A898_9B6A38AC9C89}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncident}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_3A4F79B6_46CD_4a33_8F21_3091D3CD3D33}{\*\bkmkend BKM_3A4F79B6_46CD_4a33_8F21_3091D3CD3D33}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b trafficIncidentId}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt STRING}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_7F274C6B_D52B_4b2a_96AA_E917AD4C4F98}{\*\bkmkend BKM_7F274C6B_D52B_4b2a_96AA_E917AD4C4F98}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+effectCode}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt EffectCode}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_381385CC_2DB9_4716_946A_07B5D7AF044B}{\*\bkmkend BKM_381385CC_2DB9_4716_946A_07B5D7AF044B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+startTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_68822D39_B7BC_4c88_B568_BA7F5072BF10}{\*\bkmkend BKM_68822D39_B7BC_4c88_B568_BA7F5072BF10}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+stopTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_21CCDC8E_B0A0_44e4_A789_A616017AC414}{\*\bkmkend BKM_21CCDC8E_B0A0_44e4_A789_A616017AC414}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+tendency}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Tendency}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_54AFC04D_CBA1_409b_9D77_15E746A7E292}{\*\bkmkend BKM_54AFC04D_CBA1_409b_9D77_15E746A7E292}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+lengthAffected}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5EFD7F21_31C0_4a6f_9D90_F8C1A6BE26A9}{\*\bkmkend BKM_5EFD7F21_31C0_4a6f_9D90_F8C1A6BE26A9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+averageSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_EC927241_A750_4d0f_BD0F_69CFEBF99B37}{\*\bkmkend BKM_EC927241_A750_4d0f_BD0F_69CFEBF99B37}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+delay}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F854E88F_4E5E_4926_A9AC_CAA021135B84}{\*\bkmkend BKM_F854E88F_4E5E_4926_A9AC_CAA021135B84}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+segmentSpeedLimit}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_4B6249A6_AD4F_4619_91A6_C0A5C97E815A}{\*\bkmkend BKM_4B6249A6_AD4F_4619_91A6_C0A5C97E815A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expectedSpeedAbsolute}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F28E365E_818E_44be_93AF_7B117AB1E7C4}{\*\bkmkend BKM_F28E365E_818E_44be_93AF_7B117AB1E7C4}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+causes}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt CauseDiscriminatedVariant}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_0CD236F1_C3AC_4566_A173_03E55C38B5A7}{\*\bkmkend BKM_0CD236F1_C3AC_4566_A173_03E55C38B5A7}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+advices}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Advice}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_D581B628_05B3_475c_B4B2_6F742268A301}{\*\bkmkend BKM_D581B628_05B3_475c_B4B2_6F742268A301}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+applicability}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt Applicability}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3F788A5F_C724_4a6d_83A0_6D671F0EB842}{\*\bkmkend BKM_3F788A5F_C724_4a6d_83A0_6D671F0EB842}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+temporarySpeedLimits}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt TemporarySpeedLimit}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..*]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9A8B5CAA_3AE6_457e_9C2D_51AB814AF43C}{\*\bkmkend BKM_9A8B5CAA_3AE6_457e_9C2D_51AB814AF43C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+expirationTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_13BB8AC0_2B2C_4e70_9DFD_0C07CAB58062}{\*\bkmkend BKM_13BB8AC0_2B2C_4e70_9DFD_0C07CAB58062}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+updateTime}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_64270213_8060_43e7_B2CD_0C882F408967}{\*\bkmkend BKM_64270213_8060_43e7_B2CD_0C882F408967}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+locationReference}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationReference}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt}}\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\ql\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2095ABFC_4770_4e24_A230_AF76C5B11E7D}{\*\bkmkend BKM_2095ABFC_4770_4e24_A230_AF76C5B11E7D}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Class}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+VehicleRelatedRestriction}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_DDEFEBA4_2F59_4b23_BD84_575C6C1DAB6E}{\*\bkmkend BKM_DDEFEBA4_2F59_4b23_BD84_575C6C1DAB6E}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Attributes\ul0\par
+\trowd\trgaph60\trleft0\trrh305\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Attribute\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b restrictionType}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20
+ {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt RestrictionType}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B27E8325_54EC_43c8_8272_941DC1055E3C}{\*\bkmkend BKM_B27E8325_54EC_43c8_8272_941DC1055E3C}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+restrictionValue}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt INT32}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx3330
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9CE3CDD6_9573_47e2_A7BB_B4EF69F7B18A}{\*\bkmkend BKM_9CE3CDD6_9573_47e2_A7BB_B4EF69F7B18A}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect Att.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+restrictionLocationReference}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Type}{\fldrslt LocationReference}} {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect
+Att.Const}{\fldrslt}}\par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Att.Multiplicity}{\fldrslt [0..1]}}\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Att.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_50B02524_1F96_49ce_971F_1101F94AC1ED}{\*\bkmkend BKM_50B02524_1F96_49ce_971F_1101F94AC1ED}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentFeed}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_EEB71526_A1F8_49c0_8619_09B7B25E96DC}{\*\bkmkend BKM_EEB71526_A1F8_49c0_8619_09B7B25E96DC}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetVersion}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8A0BE98C_C05A_40d3_AF10_66D114A91FA5}{\*\bkmkend BKM_8A0BE98C_C05A_40d3_AF10_66D114A91FA5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetLanguage}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_DC5DDBED_5B70_4ee5_9BF5_BB35048FC87B}{\*\bkmkend BKM_DC5DDBED_5B70_4ee5_9BF5_BB35048FC87B}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RegisterFeed}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 dataProviderName}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+protocolName}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+communicationChannelName}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_3B9D8B96_3C3A_4181_8B91_1CFC2648B2D9}{\*\bkmkend BKM_3B9D8B96_3C3A_4181_8B91_1CFC2648B2D9}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddLanguageListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_8B1B9ED2_BD4B_4888_9F64_6F20D923F9DD}{\*\bkmkend BKM_8B1B9ED2_BD4B_4888_9F64_6F20D923F9DD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveLanguageListener}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_1B719974_B4F4_4108_9B9D_0F02FA432A87}{\*\bkmkend BKM_1B719974_B4F4_4108_9B9D_0F02FA432A87}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b Clear}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_F36F63E2_DF72_4dcf_9D93_672981F28C5E}{\*\bkmkend BKM_F36F63E2_DF72_4dcf_9D93_672981F28C5E}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UpdateIncidents}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+cancelledIncidentIds}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncident}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+updatedIncidents}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_A462E131_2A35_463f_BE8B_77C2494E6C68}{\*\bkmkend BKM_A462E131_2A35_463f_BE8B_77C2494E6C68}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b UpdateStatus}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentFeedStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+feedStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b TrafficIncidentsStatus}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+incidentsStatus}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s14\sb240\sa60\ql\outlinelevel3\plain\f0\fs24{\*\bkmkstart BKM_2EA11E6A_AE3D_444a_8A76_13FF27A0AE89}{\*\bkmkend BKM_2EA11E6A_AE3D_444a_8A76_13FF27A0AE89}{\field\fldlock{\*\fldinst MERGEFIELD \lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b\protect
+Element.Type}{\fldrslt\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b Interface}}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs28\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f5\dbch\f5\loch\f5\protect Element.Name}{\fldrslt\lang3081\hich\f5\dbch\f5\loch\f5
+TrafficIncidentFeedListener}}\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Element.Notes}{\fldrslt}}\lang3081\hich\f5\dbch\f5\loch\f5\fs20\ql\par
+\hich\f3\dbch\f3\loch\f3\par
+\par
+\pard\ssparaaux0\s38\ql\plain\f0\fs24{\*\bkmkstart BKM_31F6B6F9_970E_4eb5_9706_ED35201BCC95}{\*\bkmkend BKM_31F6B6F9_970E_4eb5_9706_ED35201BCC95}\lang1033\hich\f6\dbch\f6\loch\f6\cf6\fs20\b\ul\i Operations\ul0\par
+\trowd\trgaph60\trleft0\trhdr\trkeep
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\clcbpat11\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Method\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Notes\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b Parameters\cell
+\lang3081\hich\f3\dbch\f3\loch\f3\b0\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetVersionReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b
+()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b Version}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 version}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\lastrow\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_9262E8B5_78CF_497a_8A1E_3DA24D1D21F5}{\*\bkmkend BKM_9262E8B5_78CF_497a_8A1E_3DA24D1D21F5}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b GetLanguageReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_B42E66DC_95B1_4dfa_AF52_D48195A628FF}{\*\bkmkend BKM_B42E66DC_95B1_4dfa_AF52_D48195A628FF}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RegisterFeedReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b INT32}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 feedId}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx2340
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx6300
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clbrdrl\brdrs\brdrw1\clbrdrr\brdrs\brdrw1\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_E01D9B7A_5A0A_48fc_9C6D_8EA689B39A53}{\*\bkmkend BKM_E01D9B7A_5A0A_48fc_9C6D_8EA689B39A53}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b AddLanguageListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_407FC940_4DCF_4a49_9B8C_6A138648833F}{\*\bkmkend BKM_407FC940_4DCF_4a49_9B8C_6A138648833F}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b RemoveLanguageListenerReply}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\cell
+\intbl\row
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\*\bkmkstart BKM_5BDD1700_E94C_484b_9507_F6C975831CAD}{\*\bkmkend BKM_5BDD1700_E94C_484b_9507_F6C975831CAD}{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.StaticMeth.ConstMeth.Pure\b
+Meth.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b LanguageChanged}}\lang1033\hich\f3\dbch\f3\loch\f3\cf2\fs20\b ()\lang3081\hich\f3\dbch\f3\loch\f3\b0 {\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect Meth.Type}{\fldrslt
+void}}\hich\f5\dbch\f5\loch\f5\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\protect Meth.Notes}{\fldrslt}}\lang3081\hich\f3\dbch\f3\loch\f3\cf2\fs20\par
+\pard\intbl\ssparaaux0\s33\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f8\dbch\f8\loch\f8\cf2\fs18\protect Meth.Behavior}{\fldrslt}}\lang1033\hich\f7\dbch\f7\loch\f7\cf2\fs18\pard\intbl\ssparaaux0\s33\ql\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs24{\field\fldlock{\*\fldinst MERGEFIELD \cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b\protect MethParameter.Type}{\fldrslt\cs37\lang3081\hich\f6\dbch\f6\loch\f6\cf2\fs20\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\cf2\fs20\b
+ \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect
+MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0 languageCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+{\field\fldlock{\*\fldinst MERGEFIELD \cs37\hich\f6\dbch\f6\loch\f6\b\protect MethParameter.Type}{\fldrslt\cs37\hich\f6\dbch\f6\loch\f6\b STRING}}\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b \cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 [{\field\fldlock{\*\fldinst
+MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Kind}{\fldrslt in}}]\cs37\lang1033\hich\f6\dbch\f6\loch\f6\b {\field\fldlock{\*\fldinst MERGEFIELD \lang3081\hich\f6\dbch\f6\loch\f6\b0\protect MethParameter.Name}{\fldrslt\lang3081\hich\f6\dbch\f6\loch\f6\b0
+countryCode}}\cs1\lang3081\hich\f3\dbch\f3\loch\f3\b0 \par
+{\field\fldlock{\*\fldinst MERGEFIELD \hich\f6\dbch\f6\loch\f6\protect MethParameter.Notes}{\fldrslt}}\ql\par
+\hich\f5\dbch\f5\loch\f5\cell
+\intbl\row
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f3\dbch\f3\loch\f3\fs20\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart D_Bus_Interface_Specifications_Reading_Format}{\*\bkmkend D_Bus_Interface_Specifications_Reading_Format}{\*\bkmkstart BKM_4FDE32BB_08D9_4837_8C44_81D37C4C3894}{\*\bkmkend BKM_4FDE32BB_08D9_4837_8C44_81D37C4C3894}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page
+D-Bus Interface Specifications (reading format)\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24{\*\bkmkstart TrafficIncidentFeed_Interface}{\*\bkmkend TrafficIncidentFeed_Interface}{\*\bkmkstart BKM_C6AB22E6_1951_4115_A296_D6893F7A81D9}{\*\bkmkend BKM_C6AB22E6_1951_4115_A296_D6893F7A81D9}\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b
+TrafficIncidentFeed Interface\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ltrpar\ql\plain\f0\fs24{\*\bkmkstart BKM_FB9A044E_A5B1_4a1a_9539_02652BEAD25A}{\*\bkmkend BKM_FB9A044E_A5B1_4a1a_9539_02652BEAD25A}\lang3081\hich\f5\dbch\f5\loch\f5\cf2\fs28\sscharaux3\b version: 1.0.0 (06-03-2014)\par
+\fs20\sscharaux0 method GetVersion \b0\line getVersion = Get the API version of this interface implemented by the service.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out (qqqs) version \b0\line version (of type Version) = The API version of this interface implemented by the service.\line Version struct[major, minor, micro, date] = This datatype is
+used to provide version information.\line Version.major ('q') = The major version number.\line Version.minor ('q') = The minor version number.\line Version.micro ('q') = The micro version number.\line Version.date ('s') = The date of this version.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetLanguage \b0\line getLanguage = Get the current language. In case of a client/server based Feed, this language can be sent to the server in order to receive any textual information
+in the right language.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out s languageCode \b0\line languageCode = The currently used language, specified as ISO 639-3 language code (lower case).\line\line\b out s countryCode \b0\line countryCode = The currently
+used, country specific variant of the language, , specified as ISO 3166-1 alpha 3 country code (upper case).\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddLanguageListener \b0\line addLanguageListener = Add this client as a listener for changes in the current language.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveLanguageListener \b0\line removeLanguageListener = Remove this client as a listener for changes in the current language.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method Clear \b0\line clear = Clear the internal store of the Traffic Incidents Service. This may be needed if the source of the Traffic Incidents is changed, or if the server indicates
+that a reset is needed.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method UpdateIncidents \b0\line updateIncidents = Update the Traffic Incidents in the internal store of the Traffic Incidents Service. These updates can consist of incidents to be removed
+(cancelledIncidentIds), and/or new or updated incidents (updatedIncidents). The 'cancels' are handled before the 'updates'.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in u feedId \b0\line feedId = Unique Id of the Feed providing the update.\line\line\b in as cancelledIncidentIds \b0\line cancelledIncidentIds = The unique Ids of the incidents to be
+deleted.\line\line\b in a(syiiyiiiiia(yv)a(yya(sss)a(ya(yaia(yay))))a(ya(yaia(yay)))a(bia(nni)a(ya(yaia(yay))))ii(yay)) updatedIncidents \b0\line updatedIncidents (of type TrafficIncident) = The new or updated incidents.\line TrafficIncident struct[trafficIncidentId,
+effectCode, startTime, stopTime, tendency, lengthAffected, averageSpeedAbsolute, delay, segmentSpeedLimit, expectedSpeedAbsolute, causes, advices, applicability, temporarySpeedLimits, expirationTime, updateTime, locationReference] = Data model description
+of a Traffic Incident.\line TrafficIncident.trafficIncidentId ('s') = unique Id\line TrafficIncident.effectCode ('y') = Effect Code, optional value, NOT_SPECIFIED indicates not specified.\line TrafficIncident.startTime ('i') = Start Time in minutes since
+the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified\line TrafficIncident.stopTime ('i') = Stop Time in minutes since the standard base time known as "the epoch", namely January
+1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified\line TrafficIncident.tendency ('y') = Tendency, optional value, NOT_SPECIFIED indicates not specified.\line TrafficIncident.lengthAffected ('i') = Length of the event in meters, optional
+value, -1 indicates not specified.\line TrafficIncident.averageSpeedAbsolute ('i') = Average speed in m/s at the given location, optional value, -1 indicates not specified.\line TrafficIncident.delay ('i') = Delay in minutes, optional value, -1 indicates
+not specified.\line TrafficIncident.segmentSpeedLimit ('i') = Maximum speed in m/s., optional value, -1 indicates not specified.\line TrafficIncident.expectedSpeedAbsolute ('i') = The expectedSpeedAbsolute, in m/s, is used to signal the expected (normal)
+speed of traffic through the problem location. Value range 0, .. , 127 (0x7f). Optional value, -1 indicates not specified.\line TrafficIncident.causes (of type CauseDiscriminatedUnion) = Causes.\line CauseDiscriminatedUnion struct[causeType, causeUnion]
+= A type to transfer any Cause sub-type, together with an indication of which sub-type it is.\line CauseDiscriminatedUnion.causeType ('y') = Indentifies the Cause sub-type contained in the causeUnion.\line CauseDiscriminatedUnion.causeUnion (of type CauseUnion)
+= The Cause.\line CauseUnion variant[directCause, linkedCause] = Union for the Cause sub-types.\line CauseUnion.directCause (of type DirectCause) = Direct Cause.\line DirectCause struct[mainCause, warningLevel, unverifiedInformation, subCause, lengthAffected,
+causeOffset, laneRestrictions, freeText] = A Direct Cause for the incident, i.e. all details of the cause are specified here.\line DirectCause.mainCause ('y') = Main Cause for the incident.\line DirectCause.warningLevel ('y') = Warning Level. Optional
+value, NOT_SPECIFIED indicates not specified.\line DirectCause.unverifiedInformation ('b') = Indication of whether the information has been verified by an authority (like the police) or not.\line DirectCause.subCause ('y') = More detailed cause. The actual
+value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.\line DirectCause.lengthAffected ('i') = Length of the cause in meters, optional value, -1 indicates not specified.\line DirectCause.causeOffset
+('i') = Offset (in metres) from the start of the Cause to the end of the Problem Location. When used together with Affected Length the cause can be positioned within the event more accurately. Without Cause Offset but with Affected Length defined the
+cause position is not defined. If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff). Optional value, -1 indicates not specified.\line DirectCause.laneRestrictions
+(of type LaneRestrictions) = Lane Restrictions. Optional value, represented by an array with 0 or 1 elements.\line LaneRestrictions struct[laneRestrictionType, numberOfLanes] = Lane Restrictions.\line LaneRestrictions.laneRestrictionType ('y') = Lane
+Restriction Type.\line LaneRestrictions.numberOfLanes ('i') = Number of lanes affected by the Lane Restriction Type. Optional value, -1 indicates not specified.\line DirectCause.freeText (of type LocalizedString) = Free Text in different languages.\line
+LocalizedString struct[languageCode, countryCode, string] = A string in a specified language.\line LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).\line LocalizedString.countryCode ('s') = The country
+specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case). Optional, an empty string indicates not specified.\line LocalizedString.string ('s') = A string in the specified language.\line CauseUnion.linkedCause (of type
+LinkedCause) = Linked Cause.\line LinkedCause struct[mainCause, causeTrafficIncidentId] = A Cause for the incident, with a reference to another incident, which is a cause for this incident.\line LinkedCause.mainCause ('y') = Main Cause for the incident.\line
+LinkedCause.causeTrafficIncidentId ('s') = Id of a TrafficIncident which is a cause for this incident.\line TrafficIncident.advices (of type Advice) = Advices\line Advice struct[mainAdvice, subAdvice, freeText, applicability] = Advice.\line Advice.mainAdvice
+('y') = Main advice.\line Advice.subAdvice ('y') = More detailed advice. The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum.\line Advice.freeText (of type LocalizedString) =
+Free Text in different languages.\line LocalizedString struct[languageCode, countryCode, string] = A string in a specified language.\line LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).\line LocalizedString.countryCode
+('s') = The country specific variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case). Optional, an empty string indicates not specified.\line LocalizedString.string ('s') = A string in the specified language.\line Advice.applicability
+(of type Applicability) = Applicability of the advice.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType ('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction)
+= Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue
+('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.\line VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.\line LocationReference struct[locationReferenceType,
+data] = Map database independent description of a location.\line LocationReference.locationReferenceType ('y') = The type of location reference.\line LocationReference.data ('y') = The actual data of the location reference.\line TrafficIncident.applicability
+(of type Applicability) = Applicability.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType ('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction)
+= Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue
+('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.\line VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference) = Description of the restriction location.\line LocationReference struct[locationReferenceType,
+data] = Map database independent description of a location.\line LocationReference.locationReferenceType ('y') = The type of location reference.\line LocationReference.data ('y') = The actual data of the location reference.\line TrafficIncident.temporarySpeedLimits
+(array of type TemporarySpeedLimit) = Temporary speed limit information suitable for display to the driver.\line TemporarySpeedLimit struct[unitsMPH, offset, temporarySpeedLimitSections, applicability] = One of the highly visible attributes of many roadworks
+is the imposed Temporary Speed Limit. This component provides the ability to define temporary speed limit information suitable for display to the driver. Temporary Speed limit info associated with the event is defined in either kph or mph. Multiple sections
+with a different speed value may be provided with a length. The offset from the end of the Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of the cause. Applicability can be added if
+needed. \line TemporarySpeedLimit.unitsMPH ('b') = Units definition for this Temporary Speed Limit. If true, the unit is mph, else the unit is km/h.\line TemporarySpeedLimit.offset ('i') = Offset defines the distance in meters from the start of the Temporary
+speed limit to the end of the Location. If not defined then first SpeedLimitSection starts at the beginning of the Location. Value range: 0, .. , 2147483647 (0x7fffffff) \line TemporarySpeedLimit.temporarySpeedLimitSections (array of TemporarySpeedLimitSection)
+= Speed Limit information per section.\line TemporarySpeedLimitSection struct[speedLimitValue, speedLimitValueWet, speedLimitLength] = Each section of a TemporarySpeedLimit is defined by a speed value and length. A speed value for use in Wet conditions
+is also optionally available. \line TemporarySpeedLimitSection.speedLimitValue ('n') = Speed Limit numerical value in kph or mph. Value range: 0, .. , 32767 (0x7fff)\line TemporarySpeedLimitSection.speedLimitValueWet ('n') = Speed Limit numerical value
+to be used in wet conditions; in kph or mph. Value range: 0, .. , 32767 (0x7fff) \line TemporarySpeedLimitSection.speedLimitLength ('i') = Length of the SpeedLimitSection, If this is not defined, then section finishes at end of the Problem Location. Value
+range: 0, .. , 2147483647 (0x7fffffff) \line TemporarySpeedLimit.applicability (of type Applicability) = Applicability.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType ('y) = Vehicle Type.\line
+Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType
+('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.\line VehicleRelatedRestriction.restrictionLocationReference (of type LocationReference)
+= Description of the restriction location.\line LocationReference struct[locationReferenceType, data] = Map database independent description of a location.\line LocationReference.locationReferenceType ('y') = The type of location reference.\line LocationReference.data
+('y') = The actual data of the location reference.\line TrafficIncident.expirationTime ('i') = The time after which this information is no longer valid. The time is expressed in minutes since the standard base time known as "the epoch", namely January
+1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified\line TrafficIncident.updateTime ('i') = The time at which the information in this incident was updated. The time is expressed in minutes since the standard base time known as "the epoch",
+namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified\line TrafficIncident.locationReference (of type LocationReference) = Description of the location.\line LocationReference struct[locationReferenceType, data] = Map database
+independent description of a location.\line LocationReference.locationReferenceType ('y') = The type of location reference.\line LocationReference.data ('y') = The actual data of the location reference.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method UpdateStatus \b0\line updateStatus = Update the status of a Feed.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in u feedId \b0\line feedId = Unique Id of the Feed providing the status update.\line\line\b in y feedStatus \b0\line feedStatus (of type TrafficIncidentFeedStatus) = Status of the Feed.\line
+enum[UNAVAILABLE (0), CONNECTED (1), DISCONNECTED (2)]\line\line\b in y incidentsStatus \b0\line incidentsStatus (of type TrafficIncidentsStatus) = Incident Status of the Feed.\line enum[UNAVAILABLE (0), PARTLY_AVAILABLE (1), AVAILABLE (2)]\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RegisterFeed \b0\line registerFeed = Register a Feed that is going to provide Traffic Incidents. A Traffic Incident Feed that wants to provide Traffic Incidents to the TrafficIncidentsService
+has to register itself via this method. The input parameters provide a description of the Feed. The returned feedId is used to identify the Feed in all methods where the Feed is providing information to the TrafficIncidentsService.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in s dataProviderName \b0\line dataProviderName = Name of the data provider for this Feed, e.g. 'TomTom'.\line\line\b in s protocolName \b0\line protocolName = Name of the protocol used
+by this Feed, e.g. 'TPG-TEC'.\line\line\b in s communicationChannelName \b0\line communicationChannelName = Name of the communication channel used by this Feed, e.g. 'FM Tuner'.\line\line\b out u feedId \b0\line feedId = Unique Id for the registered Feed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b signal LanguageChanged \b0\line LanguageChanged = When a client registers itself for being notified of language changes (see AddLanguageListener()), this signal is sent to this client
+only, to inform this client about the currently used language. On a language change inside the TrafficIncidentsService, there is a broadcast with the new language. The broadcast only actually occurs if there is at least one registered listener (see AddLanguageListener).\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out s languageCode \b0\line languageCode = The currently used language, specified as ISO 639-3 language code (lower case).\line\line\b out s countryCode \b0\line countryCode = The currently
+used, country specific variant of the language, specified as ISO 3166-1 alpha 3 country code (upper case). Optional value, an empty string indicates 'not specified'.\line\line\par
+\li0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 \lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24{\*\bkmkstart TrafficIncidents_Interface}{\*\bkmkend TrafficIncidents_Interface}{\*\bkmkstart BKM_E04A1090_07C2_4464_9173_5DD1462AA33E}{\*\bkmkend BKM_E04A1090_07C2_4464_9173_5DD1462AA33E}\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b
+TrafficIncidents Interface\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ltrpar\ql\plain\f0\fs24{\*\bkmkstart BKM_42E4BA88_C46F_465a_ABF2_D102C56912C3}{\*\bkmkend BKM_42E4BA88_C46F_465a_ABF2_D102C56912C3}\lang3081\hich\f5\dbch\f5\loch\f5\cf2\fs28\sscharaux3\b version: 1.0.0 (06-03-2014)\par
+\fs20\sscharaux0 method GetVersion \b0\line getVersion = Get the API version of this interface implemented by the service.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out (qqqs) version \b0\line version (of type Version) = The API version of this interface implemented by the service.\line Version struct[major, minor, micro, date] = This datatype is
+used to provide version information.\line Version.major ('q') = The major version number.\line Version.minor ('q') = The minor version number.\line Version.micro ('q') = The micro version number.\line Version.date ('s') = The date of this version.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetLanguage \b0\line getLanguage = Get the current language.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out s languageCode \b0\line languageCode = The language, specified as ISO 639-3 language code (lower case).\line\line\b out s countryCode \b0\line countryCode = The country specific
+variant for the language, specified as ISO 3166-1 alpha 3 country code (upper case).\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method SetLanguage \b0\line setLanguage = Set the language.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in s languageCode \b0\line languageCode = The language to be used, specified as ISO 639-3 language code (lower case).\line\line\b in s countryCode \b0\line countryCode = The country
+specific variant for the language to be used, specified as ISO 3166-1 alpha 3 country code (upper case).\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method SetTimeFormat \b0\line setTimeFormat = Set the format to be used for representing time in textual information.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in s timeFormat \b0\line timeFormat = Time format specification.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method SetDateFormat \b0\line setDateFormat = Set the format to be used for representing dates in textual information.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in s dateFormat \b0\line dateFormat = Date format specification.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method SetLengthUnit \b0\line setLengthUnit = Set the unit to be used for representing lengths and distances in textual information.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in y lengthUnit \b0\line lengthUnit = Length unit.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method SetWeightUnit \b0\line setWeightUnit = Set the unit to be used for representing weights in textual information.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in y weightUnit \b0\line weightUnit = weight unit\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetApplicability \b0\line getApplicability = Get the filter expression which specifies which Traffic Incidents are NOT applicable.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out s filterExpression \b0\line filterExpression = Filter expression. An empty string indicates that no filtering takes place.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method SetApplicability \b0\line setApplicability = Set the filter expression which specifies which Traffic Incidents are NOT applicable.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in s filterExpression \b0\line filterExpression = Filter expression. An empty string indicates that no filtering shall take place.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method ReserveIconSetIds \b0\line reserveIconSetIds = Reserve a number of IconSet Ids.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in i numberOfIds \b0\line numberOfIds = The number of Ids to be reserved.\line\line\b out ai iconSetIds \b0\line iconSetIds = The reserved Ids.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method FreeIconSetIds \b0\line freeIconSetIds = Free a set of IconSet Ids.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai iconSetIds \b0\line iconSetIds = The Ids to be freed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetIconSets \b0\line getIconSets = Get all IconSet definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out a(iyya(iii)bisa(si)) iconSets \b0\line iconSets (of type IconSet) = The IconSet definitions.\line IconSet struct[iconSetId, colorType, dimension, size, dayTimeIcon, themeId, mediumType,
+iconDescriptors] = Specifies the characteristics of a set of icons.\line IconSet.iconSetId ('i') = Unique Id of the IconSet.\line IconSet.colorType ('y') = Color Type. Optional, 0 indicates not specified.\line IconSet.dimension ('y') = Dimensionality.
+Optional, 0 indicates not specified.\line IconSet.size (of type IconSize) = Size of the Icon. Optional, the array contains at most 1 element.\line IconSize struct[width, height, dpi] = Size of an icon.\line IconSize.width ('i') = Width of the icon in
+pixels.\line IconSize.height ('i') = Height of the icon in pixels.\line IconSize.dpi ('i') = Dots per inch. Optional, 0 indicates not specified\line IconSet.dayTimeIcon ('b') = Daytime (true) or nighttime (false) indication.\line IconSet.themeId ('i')
+= Theme Identifier.\line IconSet.mediumType ('s') = Medium type for the icons in this set, e.g. "image/png".\line IconSet.iconDescriptors (of type IconDescriptor) = Descriptors of the icons.\line IconDescriptor struct[url, iconId] = Icon Descriptor.\line
+IconDescriptor.url ('s') = Location of the icon data. Optional, an empty string indicates not specified.\line IconDescriptor.iconId ('i') = Unique Id, within an IconSet, of the icon.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddIconSetDefinitions \b0\line addIconSetDefinitions = Add IconSet definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in a(iyya(iii)bisa(si)) iconSets \b0\line iconSets (of type IconSet) = The IconSet definitions to be added.\line IconSet struct[iconSetId, colorType, dimension, size, dayTimeIcon, themeId,
+mediumType, iconDescriptors] = Specifies the characteristics of a set of icons.\line IconSet.iconSetId ('i') = Unique Id of the IconSet.\line IconSet.colorType ('y') = Color Type. Optional, 0 indicates not specified.\line IconSet.dimension ('y') = Dimensionality.
+Optional, 0 indicates not specified.\line IconSet.size (of type IconSize) = Size of the Icon. Optional, the array contains at most 1 element.\line IconSize struct[width, height, dpi] = Size of an icon.\line IconSize.width ('i') = Width of the icon in
+pixels.\line IconSize.height ('i') = Height of the icon in pixels.\line IconSize.dpi ('i') = Dots per inch. Optional, 0 indicates not specified\line IconSet.dayTimeIcon ('b') = Daytime (true) or nighttime (false) indication.\line IconSet.themeId ('i')
+= Theme Identifier.\line IconSet.mediumType ('s') = Medium type for the icons in this set, e.g. "image/png".\line IconSet.iconDescriptors (of type IconDescriptor) = Descriptors of the icons.\line IconDescriptor struct[url, iconId] = Icon Descriptor.\line
+IconDescriptor.url ('s') = Location of the icon data. Optional, an empty string indicates not specified.\line IconDescriptor.iconId ('i') = Unique Id, within an IconSet, of the icon.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveIconSetDefinitions \b0\line removeIconSetDefinitions = Remove IconSet definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai iconSetIds \b0\line iconSetIds = The Ids of the IconSets to be removed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetIconDefinitions \b0\line getIconDefinitions = Get the icon definitions for a specified set of icons.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in a(ii) iconInfos \b0\line iconInfos (of type IconInfo) = The set of icons for which the definition is to be obtained.\line IconInfo struct[iconSetId, iconId] = A reference to an icon:
+an IconSetId/IconId pair.\line IconInfo.iconSetId ('i') = IconSet Id.\line IconInfo.iconId ('i') = Icon Id.\line\line\b out a((ii)(ay)) iconDefinitions \b0\line iconDefinitions (of type IconDefinition) = The icon definitions.\line IconDefinition struct[iconInfo,
+iconData] = Icon Definition.\line IconDefinition.iconInfo (of type IconInfo) = The reference to the icon.\line IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.\line IconInfo.iconSetId ('i') = IconSet Id.\line IconInfo.iconId
+('i') = Icon Id.\line IconDefinition.iconData (of type IconData) = The binary icon data.\line IconData struct[data] = Binary icon data.\line IconData.data ('y') = Description missing\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddIconDefinitions \b0\line addIconDefinitions = Add icon definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in a((ii)(ay)) iconDefinitions \b0\line iconDefinitions (of type IconDefinition) = The icon definitions to be added.\line IconDefinition struct[iconInfo, iconData] = Icon Definition.\line
+IconDefinition.iconInfo (of type IconInfo) = The reference to the icon.\line IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.\line IconInfo.iconSetId ('i') = IconSet Id.\line IconInfo.iconId ('i') = Icon Id.\line
+IconDefinition.iconData (of type IconData) = The binary icon data.\line IconData struct[data] = Binary icon data.\line IconData.data ('y') = Description missing\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveIconDefinitions \b0\line removeIconDefinitions = Remove icon definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in a(ii) iconInfos \b0\line iconInfos (of type IconInfo) = The set of icons for which the definition is to be removed.\line IconInfo struct[iconSetId, iconId] = A reference to an icon:
+an IconSetId/IconId pair.\line IconInfo.iconSetId ('i') = IconSet Id.\line IconInfo.iconId ('i') = Icon Id.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method ReserveCategoryIds \b0\line reserveCategoryIds = Reserve a number of Category Ids.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in i numberOfIds \b0\line numberOfIds = The number of Ids to be reserved.\line\line\b out ai categoryIds \b0\line categoryIds = The reserved Ids.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method FreeCategoryIds \b0\line freeCategoryIds = Free a set of Category Ids.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai categoryIds \b0\line categoryIds = The Ids to be freed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetCategoryDefinitions \b0\line getCategoryDefinitions = Get all Category definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out a(a(sss)ia(ii)s) categoryDefinitions \b0\line categoryDefinitions (of type CategoryDefinition) = The Category definitions.\line CategoryDefinition struct[localizedNames, categoryId,
+icons, expression] = The definition of a category of Traffic Incidents.\line CategoryDefinition.localizedNames (of type LocalizedString) = The name of the category in different languages.\line LocalizedString struct[languageCode, countryCode, string]
+= A string in a specified language.\line LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).\line LocalizedString.countryCode ('s') = The country specific variant for the language, specified as ISO 3166-1
+alpha 3 country code (upper case). Optional, an empty string indicates not specified.\line LocalizedString.string ('s') = A string in the specified language.\line CategoryDefinition.categoryId ('i') = The unique Id of the category.\line CategoryDefinition.icons
+(of type IconInfo) = The icons related to the category.\line IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.\line IconInfo.iconSetId ('i') = IconSet Id.\line IconInfo.iconId ('i') = Icon Id.\line CategoryDefinition.expression
+('s') = Filter expression. A Traffic Incident that passes the related filter, is part of the category.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddCategoryDefinitions \b0\line addCategoryDefinitions = Add Category definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in a(a(sss)ia(ii)s) categoryDefinitions \b0\line categoryDefinitions (of type CategoryDefinition) = The Category definitions to be added.\line CategoryDefinition struct[localizedNames,
+categoryId, icons, expression] = The definition of a category of Traffic Incidents.\line CategoryDefinition.localizedNames (of type LocalizedString) = The name of the category in different languages.\line LocalizedString struct[languageCode, countryCode,
+string] = A string in a specified language.\line LocalizedString.languageCode ('s') = A language, specified as ISO 639-3 language code (lower case).\line LocalizedString.countryCode ('s') = The country specific variant for the language, specified as ISO
+3166-1 alpha 3 country code (upper case). Optional, an empty string indicates not specified.\line LocalizedString.string ('s') = A string in the specified language.\line CategoryDefinition.categoryId ('i') = The unique Id of the category.\line CategoryDefinition.icons
+(of type IconInfo) = The icons related to the category.\line IconInfo struct[iconSetId, iconId] = A reference to an icon: an IconSetId/IconId pair.\line IconInfo.iconSetId ('i') = IconSet Id.\line IconInfo.iconId ('i') = Icon Id.\line CategoryDefinition.expression
+('s') = Filter expression. A Traffic Incident that passes the related filter, is part of the category.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveCategoryDefinitions \b0\line removeCategoryDefinitions = Remove Category definitions.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai categoryIds \b0\line categoryIds = The Ids of the Category definitions to be removed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetTrafficIncidentIds \b0\line getTrafficIncidentIds = Get all the Ids of the current traffic incidents.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ay warningLevels \b0\line warningLevels = Only incidents with one of the specified warning levels will be returned. In case of an empty list, traffic incidents with any warning level
+(and no specified warning level) are returned.\line\line\b in ai categoryIds \b0\line categoryIds = Only incidents with one of the specified cateory Ids will be returned. In case of an empty list, traffic incidents with any category Id (including no category
+Id) are returned.\line\line\b out ai trafficIncidentIds \b0\line trafficIncidentIds = The Ids of the requested traffic incidents.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetTrafficIncidentIdsInAreas \b0\line getTrafficIncidentIdsInAreas = Get the Ids of the traffic incidents in a number of areas.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ay warningLevels \b0\line warningLevels = Only incidents with one of the specified warning levels will be returned. In case of an empty list, traffic incidents with any warning level
+(and no specified warning level) are returned.\line\line\b in ai categoryIds \b0\line categoryIds = Only incidents with one of the specified cateory Ids will be returned. In case of an empty list, traffic incidents with any category Id (including no category
+Id) are returned.\line\line\b in a((ddi)(ddi)) areas \b0\line areas (of type RectangularArea) = The areas for which the traffic incident Ids are requested.\line RectangularArea struct[bottomLeft, topRight] = This datatype represents a rectangular area.
+The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.\line RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.\line Coordinate struct[latitude, longitude, altitude] = This data type represents
+a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line RectangularArea.topRight
+(of type Coordinate) = The top-right corner of the area.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d')
+= longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line\line\b out ai trafficIncidentIds \b0\line trafficIncidentIds = The Ids of the requested traffic incidents.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetTrafficIncidents \b0\line getTrafficIncidents = Get a number of Traffic Incidents.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai trafficIncidentIds \b0\line trafficIncidentIds = The Ids of the requested Traffic Incidents.\line\line\b in b includeTextFields \b0\line includeTextFields = The text fields in
+the returned Traffic Incident will only be filled in if this parameter is set to true.\line\line\b out a(iysiiysiiiiia(yv)a(yv)a(yysa(ya(yaia(yv))))a(ya(yaia(yv)))a(bia(nni)a(ya(yaia(yv))))a(yv)asasasa((ddi)(ddi))ai) trafficIncidents \b0\line trafficIncidents
+(array of type TrafficIncident) = The requested Traffic Incidents. This list may be shorter than the request list as nothing is returned for Ids that don't exist (anymore).\line TrafficIncident struct[trafficIncidentId, effectCode, effectText, startTime,
+stopTime, tendency, tendencyText, lengthAffected, averageSpeedAbsolute, delay, segmentSpeedLimit, expectedSpeedAbsolute, causes, location, advices, applicability, temporarySpeedLimits, locationInfo, causeTexts, applicabilityTexts, adviceTexts, locationBoundingBox,
+categoryIds] = Data model description of a Traffic Incident.\line TrafficIncident.trafficIncidentId ('i') = unique Id\line TrafficIncident.effectCode ('y') = Effect Code, optional value, NOT_SPECIFIED indicates not specified.\line TrafficIncident.effectText
+('s') = Textual representation of the Effect Code, optional value, an empty string indicates not specified.\line TrafficIncident.startTime ('i') = Start Time in minutes since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00
+GMT. Optional value, -1 indicates not specified\line TrafficIncident.stopTime ('i') = Stop Time in minutes since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified\line TrafficIncident.tendency
+('y') = Tendency, optional value, NOT_SPECIFIED indicates not specified.\line TrafficIncident.tendencyText ('s') = Textual representation of the Tendency, optional value, an empty string indicates not specified.\line TrafficIncident.lengthAffected ('i')
+= Length of the event in meters, optional value, -1 indicates not specified.\line TrafficIncident.averageSpeedAbsolute ('i') = Average speed in m/s at the given location, optional value, -1 indicates not specified.\line TrafficIncident.delay ('i') = Delay
+in minutes, optional value, -1 indicates not specified.\line TrafficIncident.segmentSpeedLimit ('i') = Maximum speed in m/s., optional value, -1 indicates not specified.\line TrafficIncident.expectedSpeedAbsolute ('i') = The expectedSpeedAbsolute, in
+m/s, is used to signal the expected (normal) speed of traffic through the problem location. Value range 0, .. , 127 (0x7f). Optional value, -1 indicates not specified.\line TrafficIncident.causes (of type CauseDiscriminatedUnion) = Causes.\line CauseDiscriminatedUnion
+struct[causeType, causeUnion] = A type to transfer any Cause sub-type, together with an indication of which sub-type it is.\line CauseDiscriminatedUnion.causeType ('y') = Indentifies the Cause sub-type contained in the causeUnion.\line CauseDiscriminatedUnion.causeUnion
+(of type CauseUnion) = The Cause.\line CauseUnion variant[directCause, linkedCause] = Union for the Cause sub-types.\line CauseUnion.directCause (of type DirectCause) = Direct Cause.\line DirectCause struct[mainCause, warningLevel, unverifiedInformation,
+subCause, lengthAffected, causeOffset, laneRestrictions, freeText] = A Direct Cause for the incident, i.e. all details of the cause are specified here.\line DirectCause.mainCause ('y') = Main Cause for the incident.\line DirectCause.warningLevel ('y')
+= Warning Level. Optional value, NOT_SPECIFIED indicates not specified.\line DirectCause.unverifiedInformation ('b') = Indication of whether the information has been verified by an authority (like the police) or not.\line DirectCause.subCause ('y') =
+More detailed cause. The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.\line DirectCause.lengthAffected ('i') = Length of the cause in meters, optional value, -1 indicates not
+specified.\line DirectCause.causeOffset ('i') = Offset (in metres) from the start of the Cause to the end of the Problem Location. When used together with Affected Length the cause can be positioned within the event more accurately. Without Cause Offset
+but with Affected Length defined the cause position is not defined. If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff). Optional value, -1 indicates not specified.\line
+DirectCause.laneRestrictions (of type LaneRestrictions) = Lane Restrictions. Optional value, represented by an array with 0 or 1 elements.\line LaneRestrictions struct[laneRestrictionType, numberOfLanes] = Lane Restrictions.\line LaneRestrictions.laneRestrictionType
+('y') = Lane Restriction Type.\line LaneRestrictions.numberOfLanes ('i') = Number of lanes affected by the Lane Restriction Type. Optional value, -1 indicates not specified.\line DirectCause.freeText ('s') = Free Text.\line CauseUnion.linkedCause (of
+type LinkedCause) = Linked Cause.\line LinkedCause struct[mainCause, causeTrafficIncidentId] = A Cause for the incident, with a reference to another incident, which is a cause for this incident.\line LinkedCause.mainCause ('y') = Main Cause for the incident.\line
+LinkedCause.causeTrafficIncidentId ('s') = Id of a TrafficIncident which is a cause for this incident.\line TrafficIncident.location (of type LocationDiscriminatedUnion) = Location. Optional value, represented by an array with 0 or 1 elements.\line LocationDiscriminatedUnion
+struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.\line LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.\line
+LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.\line LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations\line LocationUnion.pointLocation (of type PointLocation)
+= Point Location.\line PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.\line LocationUnion.linearLocation (of type LinearLocation) = Linear Location.\line LinearLocation struct[segments,
+positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.\line LinearLocation.segments ('x') = The database segments of the location.\line LinearLocation.positiveOffset ('u') = The positive offset
+is the distance (in meters) between the begin node of the first segment and the start point of the actual location.\line LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location
+and the end node of the last segment.\line LocationUnion.areaLocation (of type AreaLocation) = Area Location.\line AreaLocation struct[] = The location is an area, e.g. an area with fog.\line TrafficIncident.advices (of type Advice) = Advices\line Advice
+struct[mainAdvice, subAdvice, freeText, applicability] = Advice.\line Advice.mainAdvice ('y') = Main advice.\line Advice.subAdvice ('y') = More detailed advice. The actual value of this atttribute depends on the adviceCode. So based on the adviceCode
+it has to be cast to the related enum.\line Advice.freeText ('s') = Free Text.\line Advice.applicability (of type Applicability) = Applicability of the advice.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType
+('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocation] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType
+('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.\line VehicleRelatedRestriction.restrictionLocation (of type LocationDiscriminatedUnion) = Restriction location.\line LocationDiscriminatedUnion struct[locationType,
+locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.\line LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.\line LocationDiscriminatedUnion.locationUnion
+(of type LocationUnion) = The Location.\line LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations\line LocationUnion.pointLocation (of type PointLocation) = Point Location.\line PointLocation
+struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.\line LocationUnion.linearLocation (of type LinearLocation) = Linear Location.\line LinearLocation struct[segments, positiveOffset, negativeOffset]
+= The location is a road stretch, e.g. the road stretch where there is a traffic jam.\line LinearLocation.segments ('x') = The database segments of the location.\line LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters)
+between the begin node of the first segment and the start point of the actual location.\line LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last
+segment.\line LocationUnion.areaLocation (of type AreaLocation) = Area Location.\line AreaLocation struct[] = The location is an area, e.g. an area with fog.\line TrafficIncident.applicability (of type Applicability) = Applicability.\line Applicability
+struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType ('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType,
+restrictionValue, restrictionLocation] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.\line VehicleRelatedRestriction.restrictionLocation
+(of type LocationDiscriminatedUnion) = Restriction location.\line LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.\line LocationDiscriminatedUnion.locationType
+('y') = Indentifies the Location Type contained in the locationUnion.\line LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.\line LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different
+types of Locations\line LocationUnion.pointLocation (of type PointLocation) = Point Location.\line PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.\line LocationUnion.linearLocation
+(of type LinearLocation) = Linear Location.\line LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.\line LinearLocation.segments ('x') = The database segments
+of the location.\line LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.\line LinearLocation.negativeOffset ('u') = The negative
+offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.\line LocationUnion.areaLocation (of type AreaLocation) = Area Location.\line AreaLocation struct[] = The location is an area, e.g. an
+area with fog.\line TrafficIncident.temporarySpeedLimits (array of type TemporarySpeedLimit) = Temporary speed limit information suitable for display to the driver.\line TemporarySpeedLimit struct[unitsMPH, offset, temporarySpeedLimitSections, applicability]
+= One of the highly visible attributes of many roadworks is the imposed Temporary Speed Limit. This component provides the ability to define temporary speed limit information suitable for display to the driver. Temporary Speed limit info associated with
+the event is defined in either kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the Location to the start of the first speed limit restriction allows the speed limit zone to be positioned
+independently of the cause. Applicability can be added if needed. \line TemporarySpeedLimit.unitsMPH ('b') = Units definition for this Temporary Speed Limit. If true, the unit is mph, else the unit is km/h.\line TemporarySpeedLimit.offset ('i') = Offset
+defines the distance in meters from the start of the Temporary speed limit to the end of the Location. If not defined then first SpeedLimitSection starts at the beginning of the Location. Value range: 0, .. , 2147483647 (0x7fffffff) \line TemporarySpeedLimit.temporarySpeedLimitSections
+(array of TemporarySpeedLimitSection) = Speed Limit information per section.\line TemporarySpeedLimitSection struct[speedLimitValue, speedLimitValueWet, speedLimitLength] = Each section of a TemporarySpeedLimit is defined by a speed value and length.
+A speed value for use in Wet conditions is also optionally available. \line TemporarySpeedLimitSection.speedLimitValue ('n') = Speed Limit numerical value in kph or mph. Value range: 0, .. , 32767 (0x7fff)\line TemporarySpeedLimitSection.speedLimitValueWet
+('n') = Speed Limit numerical value to be used in wet conditions; in kph or mph. Value range: 0, .. , 32767 (0x7fff) \line TemporarySpeedLimitSection.speedLimitLength ('i') = Length of the SpeedLimitSection, If this is not defined, then section finishes
+at end of the Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff) \line TemporarySpeedLimit.applicability (of type Applicability) = Applicability.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType
+('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.\line
+VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.\line VehicleRelatedRestriction.restrictionLocationReference
+(of type LocationReference) = Description of the restriction location.\line LocationReference struct[locationReferenceType, data] = Map database independent description of a location.\line LocationReference.locationReferenceType ('y') = The type of location
+reference.\line LocationReference.data ('y') = The actual data of the location reference.\line TrafficIncident.locationInfo (of type LocationInfoDiscriminatedUnion) = Information about the location.\line LocationInfoDiscriminatedUnion struct[locationInfoType,
+locationInfoUnion] = A type to transfer any type of Location Information, together with an indication of which Location Information Type it is.\line LocationInfoDiscriminatedUnion.locationInfoType ('y') = Indentifies the Location Information Type contained
+in the locationInformationUnion.\line LocationInfoDiscriminatedUnion.locationInfoUnion (of type LocationInfoUnion) = The Location Information.\line LocationInfoUnion variant[pointLocationInfo, linearLocationInfo, areaLocationInfo] = Union for the different
+types of Location Information\line LocationInfoUnion.pointLocationInfo (of type PointLocationInfo) = Point Location Information.\line PointLocationInfo struct[name, mainLocation, locationType] = Point Location specific Location Information.\line PointLocationInfo.name
+('s') = Name of the location.\line PointLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude
+('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line PointLocationInfo.locationType ('y') = The type of point
+location.\line LocationInfoUnion.linearLocationInfo (of type LinearLocationInfo) = Linear Location Information.\line LinearLocationInfo struct[name, mainLocation, fromLocationName, fromLocationParentName, toLocationName, toLocationParentName, coordinates]
+= Linear Location specific Location Information.\line LinearLocationInfo.name ('s') = Name of the location.\line LinearLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.\line Coordinate struct[latitude, longitude, altitude]
+= This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified
+in meters.\line LinearLocationInfo.fromLocationName ('s') = Name of the 'from' location.\line LinearLocationInfo.fromLocationParentName ('s') = Name of parent of the 'from' location.\line LinearLocationInfo.toLocationName ('s') = Name of the 'to' location.\line
+LinearLocationInfo.toLocationParentName ('s') = Name of the parent of the 'to' location.\line LinearLocationInfo.coordinates (of type Coordinate) = List of coordinates of the location.\line Coordinate struct[latitude, longitude, altitude] = This data
+type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line
+LocationInfoUnion.areaLocationInfo (of type AreaLocationInfo) = Area Location Information.\line AreaLocationInfo struct[name, mainLocation] = Area Location specific Location Information.\line AreaLocationInfo.name ('s') = Name of the location.\line AreaLocationInfo.mainLocation
+(of type Coordinate) = Coordinates of the main location.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d')
+= longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line TrafficIncident.causeTexts ('s') = Textual representations of the causes.\line TrafficIncident.applicabilityTexts ('s') = Textual
+representations of the applicability.\line TrafficIncident.adviceTexts ('s') = Textual representations of the advices.\line TrafficIncident.locationBoundingBox (of type RectangularArea) = A bounding box in around the location.\line RectangularArea struct[bottomLeft,
+topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.\line RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.\line Coordinate struct[latitude,
+longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84
+ellipsoid. Specified in meters.\line RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d')
+= latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line TrafficIncident.categoryIds ('i') = Category Ids.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetTrafficIncidentsFields \b0\line getTrafficIncidentsFields = Get a number of Traffic Incidents, where only specific fields are filled in. The field TRAFFIC_INCIDENT_ID is always
+filled in, independent of whether it is requested or not. \par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai trafficIncidentIds \b0\line trafficIncidentIds = The Ids of the requested Traffic Incidents.\line\line\b in ay trafficIncidentFields \b0\line trafficIncidentFields = The fields
+(attributes) to be filled in in the Traffic Incident.\line\line\b out a(iysiiysiiiiia(yv)a(yv)a(yysa(ya(yaia(yv))))a(ya(yaia(yv)))a(bia(nni)a(ya(yaia(yv))))a(yv)asasasa((ddi)(ddi))ai) trafficIncidents \b0\line trafficIncidents (array of type TrafficIncident)
+= The requested Traffic Incidents, with only the requested fields filled in. This list may be shorter than the request list as nothing is returned for Ids that don't exist (anymore).\line TrafficIncident struct[trafficIncidentId, effectCode, effectText,
+startTime, stopTime, tendency, tendencyText, lengthAffected, averageSpeedAbsolute, delay, segmentSpeedLimit, expectedSpeedAbsolute, causes, location, advices, applicability, locationInfo, causeTexts, applicabilityTexts, adviceTexts, locationBoundingBox,
+categoryIds] = Data model description of a Traffic Incident.\line TrafficIncident.trafficIncidentId ('i') = unique Id\line TrafficIncident.effectCode ('y') = Effect Code, optional value, NOT_SPECIFIED indicates not specified.\line TrafficIncident.effectText
+('s') = Textual representation of the Effect Code, optional value, an empty string indicates not specified.\line TrafficIncident.startTime ('i') = Start Time in minutes since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00
+GMT. Optional value, -1 indicates not specified\line TrafficIncident.stopTime ('i') = Stop Time in minutes since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. Optional value, -1 indicates not specified\line TrafficIncident.tendency
+('y') = Tendency, optional value, NOT_SPECIFIED indicates not specified.\line TrafficIncident.tendencyText ('s') = Textual representation of the Tendency, optional value, an empty string indicates not specified.\line TrafficIncident.lengthAffected ('i')
+= Length of the event in meters, optional value, -1 indicates not specified.\line TrafficIncident.averageSpeedAbsolute ('i') = Average speed in m/s at the given location, optional value, -1 indicates not specified.\line TrafficIncident.delay ('i') = Delay
+in minutes, optional value, -1 indicates not specified.\line TrafficIncident.segmentSpeedLimit ('i') = Maximum speed in m/s., optional value, -1 indicates not specified.\line TrafficIncident.expectedSpeedAbsolute ('i') = The expectedSpeedAbsolute, in
+m/s, is used to signal the expected (normal) speed of traffic through the problem location. Value range 0, .. , 127 (0x7f). Optional value, -1 indicates not specified.\line TrafficIncident.causes (of type CauseDiscriminatedUnion) = Causes.\line CauseDiscriminatedUnion
+struct[causeType, causeUnion] = A type to transfer any Cause sub-type, together with an indication of which sub-type it is.\line CauseDiscriminatedUnion.causeType ('y') = Indentifies the Cause sub-type contained in the causeUnion.\line CauseDiscriminatedUnion.causeUnion
+(of type CauseUnion) = The Cause.\line CauseUnion variant[directCause, linkedCause] = Union for the Cause sub-types.\line CauseUnion.directCause (of type DirectCause) = Direct Cause.\line DirectCause struct[mainCause, warningLevel, unverifiedInformation,
+subCause, lengthAffected, causeOffset, laneRestrictions, freeText] = A Direct Cause for the incident, i.e. all details of the cause are specified here.\line DirectCause.mainCause ('y') = Main Cause for the incident.\line DirectCause.warningLevel ('y')
+= Warning Level. Optional value, NOT_SPECIFIED indicates not specified.\line DirectCause.unverifiedInformation ('b') = Indication of whether the information has been verified by an authority (like the police) or not.\line DirectCause.subCause ('y') =
+More detailed cause. The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.\line DirectCause.lengthAffected ('i') = Length of the cause in meters, optional value, -1 indicates not
+specified.\line DirectCause.causeOffset ('i') = Offset (in metres) from the start of the Cause to the end of the Problem Location. When used together with Affected Length the cause can be positioned within the event more accurately. Without Cause Offset
+but with Affected Length defined the cause position is not defined. If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff). Optional value, -1 indicates not specified.\line
+DirectCause.laneRestrictions (of type LaneRestrictions) = Lane Restrictions. Optional value, represented by an array with 0 or 1 elements.\line LaneRestrictions struct[laneRestrictionType, numberOfLanes] = Lane Restrictions.\line LaneRestrictions.laneRestrictionType
+('y') = Lane Restriction Type.\line LaneRestrictions.numberOfLanes ('i') = Number of lanes affected by the Lane Restriction Type. Optional value, -1 indicates not specified.\line DirectCause.freeText ('s') = Free Text.\line CauseUnion.linkedCause (of
+type LinkedCause) = Linked Cause.\line LinkedCause struct[mainCause, causeTrafficIncidentId] = A Cause for the incident, with a reference to another incident, which is a cause for this incident.\line LinkedCause.mainCause ('y') = Main Cause for the incident.\line
+LinkedCause.causeTrafficIncidentId ('s') = Id of a TrafficIncident which is a cause for this incident.\line TrafficIncident.location (of type LocationDiscriminatedUnion) = Location. Optional value, represented by an array with 0 or 1 elements.\line LocationDiscriminatedUnion
+struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.\line LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.\line
+LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.\line LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations\line LocationUnion.pointLocation (of type PointLocation)
+= Point Location.\line PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.\line LocationUnion.linearLocation (of type LinearLocation) = Linear Location.\line LinearLocation struct[segments,
+positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.\line LinearLocation.segments ('x') = The database segments of the location.\line LinearLocation.positiveOffset ('u') = The positive offset
+is the distance (in meters) between the begin node of the first segment and the start point of the actual location.\line LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location
+and the end node of the last segment.\line LocationUnion.areaLocation (of type AreaLocation) = Area Location.\line AreaLocation struct[] = The location is an area, e.g. an area with fog.\line TrafficIncident.advices (of type Advice) = Advices\line Advice
+struct[mainAdvice, subAdvice, freeText, applicability] = Advice.\line Advice.mainAdvice ('y') = Main advice.\line Advice.subAdvice ('y') = More detailed advice. The actual value of this atttribute depends on the adviceCode. So based on the adviceCode
+it has to be cast to the related enum.\line Advice.freeText ('s') = Free Text.\line Advice.applicability (of type Applicability) = Applicability of the advice.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType
+('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocation] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType
+('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.\line VehicleRelatedRestriction.restrictionLocation (of type LocationDiscriminatedUnion) = Restriction location.\line LocationDiscriminatedUnion struct[locationType,
+locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.\line LocationDiscriminatedUnion.locationType ('y') = Indentifies the Location Type contained in the locationUnion.\line LocationDiscriminatedUnion.locationUnion
+(of type LocationUnion) = The Location.\line LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different types of Locations\line LocationUnion.pointLocation (of type PointLocation) = Point Location.\line PointLocation
+struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.\line LocationUnion.linearLocation (of type LinearLocation) = Linear Location.\line LinearLocation struct[segments, positiveOffset, negativeOffset]
+= The location is a road stretch, e.g. the road stretch where there is a traffic jam.\line LinearLocation.segments ('x') = The database segments of the location.\line LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters)
+between the begin node of the first segment and the start point of the actual location.\line LinearLocation.negativeOffset ('u') = The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last
+segment.\line LocationUnion.areaLocation (of type AreaLocation) = Area Location.\line AreaLocation struct[] = The location is an area, e.g. an area with fog.\line TrafficIncident.applicability (of type Applicability) = Applicability.\line Applicability
+struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType ('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType,
+restrictionValue, restrictionLocation] = Vehicle Related Restriction.\line VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value.\line VehicleRelatedRestriction.restrictionLocation
+(of type LocationDiscriminatedUnion) = Restriction location.\line LocationDiscriminatedUnion struct[locationType, locationUnion] = A type to transfer any type of Location, together with an indication of which Location Type it is.\line LocationDiscriminatedUnion.locationType
+('y') = Indentifies the Location Type contained in the locationUnion.\line LocationDiscriminatedUnion.locationUnion (of type LocationUnion) = The Location.\line LocationUnion variant[pointLocation, linearLocation, areaLocation] = Union for the different
+types of Locations\line LocationUnion.pointLocation (of type PointLocation) = Point Location.\line PointLocation struct[] = The location is a single point (along the road), e.g. the location of a broken down vehicle.\line LocationUnion.linearLocation
+(of type LinearLocation) = Linear Location.\line LinearLocation struct[segments, positiveOffset, negativeOffset] = The location is a road stretch, e.g. the road stretch where there is a traffic jam.\line LinearLocation.segments ('x') = The database segments
+of the location.\line LinearLocation.positiveOffset ('u') = The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.\line LinearLocation.negativeOffset ('u') = The negative
+offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.\line LocationUnion.areaLocation (of type AreaLocation) = Area Location.\line AreaLocation struct[] = The location is an area, e.g. an
+area with fog.\line TrafficIncident.temporarySpeedLimits (array of type TemporarySpeedLimit) = Temporary speed limit information suitable for display to the driver.\line TemporarySpeedLimit struct[unitsMPH, offset, temporarySpeedLimitSections, applicability]
+= One of the highly visible attributes of many roadworks is the imposed Temporary Speed Limit. This component provides the ability to define temporary speed limit information suitable for display to the driver. Temporary Speed limit info associated with
+the event is defined in either kph or mph. Multiple sections with a different speed value may be provided with a length. The offset from the end of the Location to the start of the first speed limit restriction allows the speed limit zone to be positioned
+independently of the cause. Applicability can be added if needed. \line TemporarySpeedLimit.unitsMPH ('b') = Units definition for this Temporary Speed Limit. If true, the unit is mph, else the unit is km/h.\line TemporarySpeedLimit.offset ('i') = Offset
+defines the distance in meters from the start of the Temporary speed limit to the end of the Location. If not defined then first SpeedLimitSection starts at the beginning of the Location. Value range: 0, .. , 2147483647 (0x7fffffff) \line TemporarySpeedLimit.temporarySpeedLimitSections
+(array of TemporarySpeedLimitSection) = Speed Limit information per section.\line TemporarySpeedLimitSection struct[speedLimitValue, speedLimitValueWet, speedLimitLength] = Each section of a TemporarySpeedLimit is defined by a speed value and length.
+A speed value for use in Wet conditions is also optionally available. \line TemporarySpeedLimitSection.speedLimitValue ('n') = Speed Limit numerical value in kph or mph. Value range: 0, .. , 32767 (0x7fff)\line TemporarySpeedLimitSection.speedLimitValueWet
+('n') = Speed Limit numerical value to be used in wet conditions; in kph or mph. Value range: 0, .. , 32767 (0x7fff) \line TemporarySpeedLimitSection.speedLimitLength ('i') = Length of the SpeedLimitSection, If this is not defined, then section finishes
+at end of the Problem Location. Value range: 0, .. , 2147483647 (0x7fffffff) \line TemporarySpeedLimit.applicability (of type Applicability) = Applicability.\line Applicability struct[vehicleType, vehicleRelatedRestrictions] = Applicability.\line Applicability.vehicleType
+('y) = Vehicle Type.\line Applicability.vehicleRelatedRestrictions (of type VehicleRelatedRestriction) = Restrictions.\line VehicleRelatedRestriction struct[restrictionType, restrictionValue, restrictionLocationReference] = Vehicle Related Restriction.\line
+VehicleRelatedRestriction.restrictionType ('y') = Restriction Type.\line VehicleRelatedRestriction.restrictionValue ('i') = Restriction value. Optional value, represented by an array with 0 or 1 elements.\line VehicleRelatedRestriction.restrictionLocationReference
+(of type LocationReference) = Description of the restriction location.\line LocationReference struct[locationReferenceType, data] = Map database independent description of a location.\line LocationReference.locationReferenceType ('y') = The type of location
+reference.\line LocationReference.data ('y') = The actual data of the location reference.\line TrafficIncident.locationInfo (of type LocationInfoDiscriminatedUnion) = Information about the location.\line LocationInfoDiscriminatedUnion struct[locationInfoType,
+locationInfoUnion] = A type to transfer any type of Location Information, together with an indication of which Location Information Type it is.\line LocationInfoDiscriminatedUnion.locationInfoType ('y') = Indentifies the Location Information Type contained
+in the locationInformationUnion.\line LocationInfoDiscriminatedUnion.locationInfoUnion (of type LocationInfoUnion) = The Location Information.\line LocationInfoUnion variant[pointLocationInfo, linearLocationInfo, areaLocationInfo] = Union for the different
+types of Location Information\line LocationInfoUnion.pointLocationInfo (of type PointLocationInfo) = Point Location Information.\line PointLocationInfo struct[name, mainLocation, locationType] = Point Location specific Location Information.\line PointLocationInfo.name
+('s') = Name of the location.\line PointLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude
+('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line PointLocationInfo.locationType ('y') = The type of point
+location.\line LocationInfoUnion.linearLocationInfo (of type LinearLocationInfo) = Linear Location Information.\line LinearLocationInfo struct[name, mainLocation, fromLocationName, fromLocationParentName, toLocationName, toLocationParentName, coordinates]
+= Linear Location specific Location Information.\line LinearLocationInfo.name ('s') = Name of the location.\line LinearLocationInfo.mainLocation (of type Coordinate) = Coordinates of the main location.\line Coordinate struct[latitude, longitude, altitude]
+= This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified
+in meters.\line LinearLocationInfo.fromLocationName ('s') = Name of the 'from' location.\line LinearLocationInfo.fromLocationParentName ('s') = Name of parent of the 'from' location.\line LinearLocationInfo.toLocationName ('s') = Name of the 'to' location.\line
+LinearLocationInfo.toLocationParentName ('s') = Name of the parent of the 'to' location.\line LinearLocationInfo.coordinates (of type Coordinate) = List of coordinates of the location.\line Coordinate struct[latitude, longitude, altitude] = This data
+type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line
+LocationInfoUnion.areaLocationInfo (of type AreaLocationInfo) = Area Location Information.\line AreaLocationInfo struct[name, mainLocation] = Area Location specific Location Information.\line AreaLocationInfo.name ('s') = Name of the location.\line AreaLocationInfo.mainLocation
+(of type Coordinate) = Coordinates of the main location.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d')
+= longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line TrafficIncident.causeTexts ('s') = Textual representations of the causes.\line TrafficIncident.applicabilityTexts ('s') = Textual
+representations of the applicability.\line TrafficIncident.adviceTexts ('s') = Textual representations of the advices.\line TrafficIncident.locationBoundingBox (of type RectangularArea) = A bounding box in around the location.\line RectangularArea struct[bottomLeft,
+topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.\line RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.\line Coordinate struct[latitude,
+longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84
+ellipsoid. Specified in meters.\line RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d')
+= latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line TrafficIncident.categoryIds ('i') = Category Ids.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method GetTexts \b0\line getTexts = Get the texts for a number of Traffic Incidents.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in ai trafficIncidentIds \b0\line trafficIncidentIds = The Ids of the Traffic Incidents for which the texts are requested.\line\line\b in y textDetailLevel \b0\line textDetailLevel =
+The amount of detail to be provided in the texts.\line\line\b out as texts \b0\line texts = Text information per requested traffic incident. The texts will be in the same order as the trafficIncidentIds in the request.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddUpdateListener \b0\line addUpdateListener = Add a listener which is notified in case of any update in the traffic information. In case of an update the Updates() method of the
+listener is called.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in i listenerId \b0\line listenerId = Unique Id, on this node, generated by the caller.\line\line\b in ay warningLevels \b0\line warningLevels = Only incidents with one of the specified
+warning levels will be returned. In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.\line\line\b in ai categoryIds \b0\line categoryIds = Only incidents with one of the specified cateory Ids
+will be returned. In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveUpdateListener \b0\line removeUpdateListener = Remove an update listener, which was installed via addUpdateListener.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in i listenerId \b0\line listenerId = Unique Id of the listener to be removed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddAreasUpdateListener \b0\line addAreasUpdateListener = Add a listener which is notified in case of an update in the traffic information in one or more specific area's. In case
+of an update the UpdatesInAreas() method of the listener is called.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in i listenerId \b0\line listenerId = Unique Id, on this node, generated by the caller.\line\line\b in ay warningLevels \b0\line warningLevels = Only incidents with one of the specified
+warning levels will be returned. In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.\line\line\b in ai categoryIds \b0\line categoryIds = Only incidents with one of the specified cateory Ids
+will be returned. In case of an empty list, traffic incidents with any category Id (including no category Id) are returned.\line\line\b in a((ddi)(ddi)) areas \b0\line areas (of type RectangularArea) = The area's to be observed for changes.\line RectangularArea
+struct[bottomLeft, topRight] = This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.\line RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.\line
+Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i')
+= altitude relative to WGS84 ellipsoid. Specified in meters.\line RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line
+Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveAreasUpdateListener \b0\line removeAreasUpdateListener = Remove an areas update listener, which was installed via addAreasUpdateListener.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b in i listenerId \b0\line listenerId = Unique Id of the listener to be removed.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddTrafficIncidentsStatusListener \b0\line addTrafficIncidentsStatusListener = Indicate to the service that this node is interested in the TrafficIncidentsStatus broadcast.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveTrafficIncidentsStatusListener \b0\line removeTrafficIncidentsStatusListener = Indicate to the service that this node is no longer interested in the TrafficIncidentsStatus
+broadcast.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method AddFeedInformationListener \b0\line addFeedInformationListener = Indicate to the service that this node is interested in the FeedInformation broadcast.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b method RemoveFeedInformationListener \b0\line removeFeedInformationListener = Indicate to the service that this node is no longer interested in the FeedInformation broadcast.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b signal Updates \b0\line updates = If a client has registered itself as a listener for any updates in the traffic incidents, this method is called if there are changes. The list of unchangedTrafficIncidentIds
+is redundant, but by providing this list, the client doesn't have to maintain a list of 'current traffic incidents'. Example: A client which completely redraws the list if there are changes. The client merges the lists unchangedTrafficIncidentIds, changedTrafficIncidentIds
+and newTrafficIncidentIds, gets the information for all these incidents from the service and shows the information for these traffic incidents. It can e.g. highlight the new and changed incidents, or put the new incidents on top. Example: A client updates
+the list on the screen. It removes the deletedTrafficIncidentIds, it updates the changedTrafficIncidentIds and adds the newTrafficIncidentIds. In this case the client only requests the information for the new and changed incidents from the service.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out i listenerId \b0\line listenerId = Unique Id for the listener on a node.\line\line\b out ai unchangedTrafficIncidentIds \b0\line unchangedTrafficIncidentIds = Ids of the Traffic
+Incidents which haven't changed.\line\line\b out ai changedTrafficIncidentIds \b0\line changedTrafficIncidentIds = Ids of the Traffic Incidents which have changed.\line\line\b out ai newTrafficIncidentIds \b0\line newTrafficIncidentIds = Ids of new Traffic
+Incidents.\line\line\b out ai deletedTrafficIncidentIds \b0\line deletedTrafficIncidentIds = Ids of deleted Traffic Incidents.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b signal UpdatesInAreas \b0\line updatesInAreas = If a client has registered itself as a listener for updates in the traffic incidents in one or more area's (via addAreaUpdateListener()
+or addAreasUpdateListener()), this method is called if there are changes.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out a((ddi)(ddi)) areas \b0\line areas (of type RectangularArea) = The area's in which changes have taken place.\line RectangularArea struct[bottomLeft, topRight] = This datatype represents
+a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.\line RectangularArea.bottomLeft (of type Coordinate) = The bottom-left corner of the area.\line Coordinate struct[latitude, longitude, altitude] =
+This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90 and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified
+in meters.\line RectangularArea.topRight (of type Coordinate) = The top-right corner of the area.\line Coordinate struct[latitude, longitude, altitude] = This data type represents a 3D WGS84 coordinate.\line Coordinate.latitude ('d') = latitude >= -90
+and <= 90\line Coordinate.longitude ('d') = longitude >= -180 and <= 180\line Coordinate.altitude ('i') = altitude relative to WGS84 ellipsoid. Specified in meters.\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b signal TrafficIncidentsStatus \b0\line trafficIncidentsStatus = If a client has registered itself as a listener for changes in the Traffic Incidents status, this method is called upon
+changes in the Traffic Incidents status. The provided status information is the combined status of the available feeds in the system. Details of how the information is combined is given per parameter.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out y trafficIncidentFeedStatus \b0\line trafficIncidentFeedStatus (of type TrafficIncidentFeedStatus) = The combined status of the Traffic Incident Feeds. If all Feeds are UNAVAILABLE,
+the status is UNAVAILABLE. Else, if any of the Feeds is CONNECTED, the status is CONNECTED. Else, the status is DISCONNECTED (so there are Feeds available, but none of them is connected).\line enum[UNAVAILABLE (0), CONNECTED (1), DISCONNECTED (2)]\line\line\b
+out y trafficIncidentsStatus \b0\line trafficIncidentsStatus (of type TrafficIncidentsStatus) = The combined status of the Traffic Incidents. If the status for all the Feeds is AVAILABLE, , the combined status is AVAILABLE. Else, if the status for one
+of the Feeds is PARTLY_AVAILABLE, the combined status is PARTLY_AVAILABLE. Else, the combined status is UNAVAILABLE (so there are no Traffic Incidents at all). Meaning of the enum values at this level: UNAVAILABLE: The are no incidents in the system,
+and currently they can also not be received. PARTLY_AVAILABLE: There are or may be incidents in the system, but the set of incidents is probably not up to date. This means that big changes are possible. Examples: Upon start-up, some incidents have already
+been received, but there are more incidents to receive. If the user is looking at the map display, new incidents may suddenly appear. When a connection is lost, the information stays valid for some time, but the information may no longer be fully up to
+date, and at some point in time a lot of incidents may suddenly disappear because they are no longer valid. AVAILABLE: The reception and handling of the incidents is stable, and as up to date as possible with respect to the used protocol(s). It is however
+still possible that there are currently no Traffic Incidents.\line enum[UNAVAILABLE (0), PARTLY_AVAILABLE (1), AVAILABLE (2)]\line\line\par
+\li0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b signal FeedInformation \b0\line feedInformation = If a client has registered itself as a listener for changes in the Feed Information, this method is called upon changes in the Feed Information.\par
+\li720\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\line\b out a(sssyy) feedsInformation \b0\line feedsInformation (of type FeedInformation) = The information per Traffic Incident Feed.\line FeedInformation struct[dataProviderName, protocolName,
+communicationChannelName, feedStatus, trafficIncidentsStatus] = This data type provides information about a Traffic Incident Feed.\line FeedInformation.dataProviderName ('s') = The name of the data provider.\line FeedInformation.protocolName ('s') = The
+name of the protocol via which the Traffic Incidents are received. There are no predefined values.\line FeedInformation.communicationChannelName ('s') = The name of the communication channel. There are no predefined values.\line FeedInformation.feedStatus
+(of type TrafficIncidentFeedStatus) = The status of the Feed.\line enum[UNAVAILABLE (0), CONNECTED (1), DISCONNECTED (2)]\line FeedInformation.trafficIncidentsStatus (of type TrafficIncidentsStatus) = The status of the Traffic Incidents delivered by this
+Feed.\line enum[UNAVAILABLE (0), PARTLY_AVAILABLE (1), AVAILABLE (2)]\line\line\par
+\li0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20 \lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang1033\hich\f5\dbch\f5\loch\f5\cf2\fs20\par
+\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\plain\f0\fs24{\*\bkmkstart D_Bus_Interface_Specifications_in_D_Bus_Introspection_Format}{\*\bkmkend D_Bus_Interface_Specifications_in_D_Bus_Introspection_Format}{\*\bkmkstart BKM_1FE82837_53BC_4595_8F9B_C75FA3E57788}{\*\bkmkend
+BKM_1FE82837_53BC_4595_8F9B_C75FA3E57788}\lang1033\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\page D-Bus Interface Specifications in D-Bus Introspection format\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24{\*\bkmkstart TrafficIncidentFeed_Interface}{\*\bkmkend TrafficIncidentFeed_Interface}{\*\bkmkstart BKM_08F4FB39_9154_4c60_A174_C3174F1F9CCA}{\*\bkmkend BKM_08F4FB39_9154_4c60_A174_C3174F1F9CCA}\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b
+TrafficIncidentFeed Interface\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+{\*\bkmkstart BKM_19246BDA_E202_4f49_8302_AC1664D95D0D}{\*\bkmkend BKM_19246BDA_E202_4f49_8302_AC1664D95D0D}\lang1033\hich\f5\dbch\f5\loch\f5 <?\lang3081\hich\f5\dbch\f5\loch\f5 xml version\lang1033\hich\f5\dbch\f5\loch\f5 ="1.0"\lang3081\hich\f5\dbch\f5\loch\f5
+ encoding\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 UTF\lang1033\hich\f5\dbch\f5\loch\f5 -8"?>\par
+<?\lang3081\hich\f5\dbch\f5\loch\f5 xml\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 stylesheet type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 text\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+xsl\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 href\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 introspect\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 xsl\lang1033\hich\f5\dbch\f5\loch\f5
+"?>\par
+<\lang3081\hich\f5\dbch\f5\loch\f5 node xmlns\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 xsi\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 http\lang1033\hich\f5\dbch\f5\loch\f5 ://\lang3081\hich\f5\dbch\f5\loch\f5
+www\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 w\lang1033\hich\f5\dbch\f5\loch\f5 3.\lang3081\hich\f5\dbch\f5\loch\f5 org\lang1033\hich\f5\dbch\f5\loch\f5 /2001/\lang3081\hich\f5\dbch\f5\loch\f5 XMLSchema\lang1033\hich\f5\dbch\f5\loch\f5
+-\lang3081\hich\f5\dbch\f5\loch\f5 instance\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 xsi\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 noNamespaceSchemaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+introspect\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 xsd\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 org\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 genivi\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentsservice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentfeed\lang1033\hich\f5\dbch\f5\loch\f5
+">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 interface name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncidentFeed\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 version\lang1033\hich\f5\dbch\f5\loch\f5 >1.0.0 (06-03-2014)</\lang3081\hich\f5\dbch\f5\loch\f5 version\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetVersion\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getVersion \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the API version of this interface implemented by the
+service\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+version\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="(\lang3081\hich\f5\dbch\f5\loch\f5 qqqs\lang1033\hich\f5\dbch\f5\loch\f5 )">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 version \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type Version\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5
+ The API version of this interface implemented by the service\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 major\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ minor\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 micro\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 date\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype is used to
+provide version information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 major \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+q\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The major version number\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 minor \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+q\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The minor version number\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 micro \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+q\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The micro version number\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 date \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The date of this version\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetLanguage\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getLanguage \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the current language\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 In case of a client\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 server based Feed\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 this language can be sent to the server
+in order to receive any textual information in the right language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+languageCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The currently used language\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5
+).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+countryCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The currently used\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 country specific variant of the language\lang1033\hich\f5\dbch\f5\loch\f5 , ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5 alpha \lang1033\hich\f5\dbch\f5\loch\f5
+3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddLanguageListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addLanguageListener \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Add this client as a listener for changes in
+the current language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveLanguageListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeLanguageListener \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Remove this client as a listener for changes
+in the current language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 Clear\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 clear \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Clear the internal store of the Traffic Incidents Service\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 This may be needed if the source of the Traffic Incidents is changed\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 or if the server indicates that a reset is needed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 UpdateIncidents\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 updateIncidents \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Update the Traffic Incidents in the internal store
+of the Traffic Incidents Service\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 These updates can consist of incidents to be removed \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 cancelledIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5
+),\lang3081\hich\f5\dbch\f5\loch\f5 and\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 or new or updated incidents \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 updatedIncidents\lang1033\hich\f5\dbch\f5\loch\f5
+).\lang3081\hich\f5\dbch\f5\loch\f5 The \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 cancels\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 are handled before the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+updates\lang1033\hich\f5\dbch\f5\loch\f5 '.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+feedId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 u\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 feedId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id of the Feed providing the update\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+cancelledIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 as\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 cancelledIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The unique Ids of the incidents to be deleted\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+updatedIncidents\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 syiiyiiiiia\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 sss\lang1033\hich\f5\dbch\f5\loch\f5
+)\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yay\lang1033\hich\f5\dbch\f5\loch\f5
+))))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+yay\lang1033\hich\f5\dbch\f5\loch\f5 )))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 bia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 nni\lang1033\hich\f5\dbch\f5\loch\f5
+)\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yay\lang1033\hich\f5\dbch\f5\loch\f5
+))))\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yay\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 updatedIncidents \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 The new or updated incidents\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentId\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 effectCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 startTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 stopTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 averageSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ delay\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 segmentSpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 expectedSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ causes\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 advices\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimits\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 expirationTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 updateTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 locationReference\lang1033\hich\f5\dbch\f5\loch\f5
+] =\lang3081\hich\f5\dbch\f5\loch\f5 Data model description of a Traffic Incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentId \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 unique Id\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 effectCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Effect Code\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 startTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Start Time in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 stopTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Stop Time in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 tendency \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the event in meters\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5
+, -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 averageSpeedAbsolute \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Average speed in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 s at the given location\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 delay \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Delay in minutes\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates
+not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segmentSpeedLimit \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Maximum speed in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 .,\lang3081\hich\f5\dbch\f5\loch\f5
+ optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 expectedSpeedAbsolute \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The expectedSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 is used to signal the expected\lang1033\hich\f5\dbch\f5\loch\f5\par
+ (\lang3081\hich\f5\dbch\f5\loch\f5 normal\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 speed of traffic through the problem location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range \lang1033\hich\f5\dbch\f5\loch\f5
+0, .. , 127 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 f\lang1033\hich\f5\dbch\f5\loch\f5 ).\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causes \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Causes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 causeType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 causeUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication of which sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type contained in the causeUnion\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 directCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ linkedCause\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 types\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 directCause \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Direct Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ warningLevel\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 unverifiedInformation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 subCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ lengthAffected\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ freeText\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A Direct Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 all details of the cause are specified here\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 warningLevel \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Warning Level\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 unverifiedInformation \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indication of whether the information has been verified by an authority \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+like the police\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 or not\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 subCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 More detailed cause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The actual value of this atttribute depends on the mainCause\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 So based on the mainCause it has to be cast to the related enum\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the cause in meters\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5
+indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Offset \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in metres\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 from the start of the
+Cause to the end of the Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 When used together with Affected Length the cause can be positioned within the event more accurately\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Without Cause Offset but with Affected Length defined the cause position is not defined\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5
+).\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 numberOfLanes\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 numberOfLanes \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Number of lanes affected by the Lane Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5
+, -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 freeText \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Free Text in different languages\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 languageCode\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 countryCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 string\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A string in a specified language\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language
+code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The country specific variant for the language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5
+alpha \lang1033\hich\f5\dbch\f5\loch\f5 3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).&#\lang3081\hich\f5\dbch\f5\loch\f5 xD\lang1033\hich\f5\dbch\f5\loch\f5
+;\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 string \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A string in the specified language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linkedCause \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linked Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ causeTrafficIncidentId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 with a reference to another incident\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 which is a cause for this incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeTrafficIncidentId \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Id of a TrafficIncident which is a cause for this incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 advices \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Advice\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Advices\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainAdvice\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ subAdvice\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 freeText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainAdvice \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main advice\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 subAdvice \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 More detailed advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The actual value of this atttribute depends on the adviceCode\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 So based on the adviceCode it has to be cast to the related enum\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 freeText \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Free Text in different languages\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 languageCode\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 countryCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 string\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A string in a specified language\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language
+code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The country specific variant for the language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5
+alpha \lang1033\hich\f5\dbch\f5\loch\f5 3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).&#\lang3081\hich\f5\dbch\f5\loch\f5 xD\lang1033\hich\f5\dbch\f5\loch\f5
+;\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 string \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A string in the specified language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability of the advice\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Description of the restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Map database independent description of a location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The actual data of the location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Description of the restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Map database independent description of a location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The actual data of the location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimits \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 array of type TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Temporary speed limit information suitable for display to the driver\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 unitsMPH\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 offset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimitSections\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5
+] =\lang3081\hich\f5\dbch\f5\loch\f5 One of the highly visible attributes of\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 many roadworks is the imposed Temporary Speed Limit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 This component provides the ability to define temporary speed limit\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 information suitable for display to the driver\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Temporary Speed limit info associated with the event is defined in either\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 kph or mph\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Multiple sections with a different speed value may be provided with a length\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 The offset from the end of the\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 the cause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Applicability can be added if needed\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 unitsMPH \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Units definition for this Temporary Speed Limit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If true\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ the unit is mph\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 else the unit is km\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 h\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 offset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Offset defines the distance in meters from the start of the Temporary speed limit to the end of the\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If not defined then first SpeedLimitSection starts at the beginning of the Location\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5
+)\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimitSections \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 array of TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit information per section\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValue\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValueWet\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitLength\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Each section of a TemporarySpeedLimit is
+defined\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 by a speed value and length\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 A speed value for use in Wet conditions is also optionally available\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 n\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit numerical value in kph or mph\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5
+: 0, .. , 32767 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fff\lang1033\hich\f5\dbch\f5\loch\f5 )</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValueWet \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 n\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit numerical value to be used in wet conditions\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5 in kph or mph\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 32767 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fff\lang1033\hich\f5\dbch\f5\loch\f5
+)\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitLength \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the SpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 If this is not defined\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 then section finishes\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 at end of the Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5 )\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Description of the restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Map database independent description of a location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The actual data of the location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 expirationTime \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The time after which this information is no longer valid\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The time is expressed in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 updateTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The time at which the information in this incident was updated\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The time is expressed in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReference \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Description of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Map database independent description of a location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The actual data of the location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 UpdateStatus\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 updateStatus \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Update the status of a Feed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+feedId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 u\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 feedId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id of the Feed providing the status update\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+feedStatus\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 feedStatus \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type TrafficIncidentFeedStatus\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 Status of the Feed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 enum\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (0),\lang3081\hich\f5\dbch\f5\loch\f5
+ CONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (1),\lang3081\hich\f5\dbch\f5\loch\f5 DISCONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (2)]</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+incidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 incidentsStatus \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type TrafficIncidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 Incident Status of the Feed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 enum\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (0),\lang3081\hich\f5\dbch\f5\loch\f5
+ PARTLY\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (1),\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (2)]</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RegisterFeed\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 registerFeed \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Register a Feed that is going to provide Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 A Traffic Incident Feed that wants to provide Traffic Incidents to the TrafficIncidentsService has to register itself\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 via this method\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The input parameters provide a description of the Feed\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ The returned feedId is used to identify the Feed in all\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 methods where the Feed is providing information to the TrafficIncidentsService\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+dataProviderName\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 dataProviderName \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the data provider for this Feed\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 . '\lang3081\hich\f5\dbch\f5\loch\f5 TomTom\lang1033\hich\f5\dbch\f5\loch\f5 '.</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+protocolName\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 protocolName \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the protocol used by this Feed\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 . '\lang3081\hich\f5\dbch\f5\loch\f5 TPG\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 TEC\lang1033\hich\f5\dbch\f5\loch\f5
+'.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+communicationChannelName\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 communicationChannelName \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the communication channel used
+by this Feed\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 . '\lang3081\hich\f5\dbch\f5\loch\f5 FM Tuner\lang1033\hich\f5\dbch\f5\loch\f5
+'.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+feedId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 u\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 feedId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id for the registered Feed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 signal name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 LanguageChanged\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LanguageChanged \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 When a client registers itself for being notified of language changes \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 see AddLanguageListener\lang1033\hich\f5\dbch\f5\loch\f5 ()),\par
+\lang3081\hich\f5\dbch\f5\loch\f5 this signal is sent to this client only\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 to inform this client about the currently used language\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 On a language change inside the TrafficIncidentsService\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 there is a broadcast with the new language\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The broadcast only actually occurs if there is at least one registered listener \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 see AddLanguageListener\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+languageCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The currently used language\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5
+).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+countryCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The currently used\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 country specific variant of the language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5 alpha \lang1033\hich\f5\dbch\f5\loch\f5
+3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ an empty string indicates \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 not specified\lang1033\hich\f5\dbch\f5\loch\f5 '.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 signal\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 interface\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+</\lang3081\hich\f5\dbch\f5\loch\f5 node\lang1033\hich\f5\dbch\f5\loch\f5 > \par
+\par
+\pard\ssparaaux0\s12\sb240\sa60\ql\outlinelevel1\plain\f0\fs24{\*\bkmkstart TrafficIncidents_Interface}{\*\bkmkend TrafficIncidents_Interface}{\*\bkmkstart BKM_51B9AFE0_6A73_46e3_8C1A_7DFA34050EF1}{\*\bkmkend BKM_51B9AFE0_6A73_46e3_8C1A_7DFA34050EF1}\lang1033\hich\f5\dbch\f5\loch\f5\cf4\fs30\b
+TrafficIncidents Interface\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\fs20\par
+{\*\bkmkstart BKM_4AD806A5_58FC_44a1_AED4_BC95852D6589}{\*\bkmkend BKM_4AD806A5_58FC_44a1_AED4_BC95852D6589}\lang1033\hich\f5\dbch\f5\loch\f5 <?\lang3081\hich\f5\dbch\f5\loch\f5 xml version\lang1033\hich\f5\dbch\f5\loch\f5 ="1.0"\lang3081\hich\f5\dbch\f5\loch\f5
+ encoding\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 UTF\lang1033\hich\f5\dbch\f5\loch\f5 -8"?>\par
+<?\lang3081\hich\f5\dbch\f5\loch\f5 xml\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 stylesheet type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 text\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+xsl\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 href\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 introspect\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 xsl\lang1033\hich\f5\dbch\f5\loch\f5
+"?>\par
+<\lang3081\hich\f5\dbch\f5\loch\f5 node xmlns\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 xsi\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 http\lang1033\hich\f5\dbch\f5\loch\f5 ://\lang3081\hich\f5\dbch\f5\loch\f5
+www\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 w\lang1033\hich\f5\dbch\f5\loch\f5 3.\lang3081\hich\f5\dbch\f5\loch\f5 org\lang1033\hich\f5\dbch\f5\loch\f5 /2001/\lang3081\hich\f5\dbch\f5\loch\f5 XMLSchema\lang1033\hich\f5\dbch\f5\loch\f5
+-\lang3081\hich\f5\dbch\f5\loch\f5 instance\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 xsi\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 noNamespaceSchemaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+introspect\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 xsd\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 org\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 genivi\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidentsservice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficincidents\lang1033\hich\f5\dbch\f5\loch\f5
+">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 interface name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncidents\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 version\lang1033\hich\f5\dbch\f5\loch\f5 >1.0.0 (06-03-2014)</\lang3081\hich\f5\dbch\f5\loch\f5 version\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetVersion\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getVersion \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the API version of this interface implemented by the
+service\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+version\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="(\lang3081\hich\f5\dbch\f5\loch\f5 qqqs\lang1033\hich\f5\dbch\f5\loch\f5 )">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 version \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type Version\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5
+ The API version of this interface implemented by the service\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 major\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ minor\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 micro\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 date\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype is used to
+provide version information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 major \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+q\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The major version number\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 minor \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+q\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The minor version number\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 micro \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+q\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The micro version number\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Version\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 date \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The date of this version\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetLanguage\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getLanguage \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the current language\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+languageCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+countryCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The country specific variant for the language\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5 alpha \lang1033\hich\f5\dbch\f5\loch\f5 3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 SetLanguage\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 setLanguage \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Set the language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+languageCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The language to be used\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5
+).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+countryCode\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The country specific variant for the language to be
+used\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5 alpha \lang1033\hich\f5\dbch\f5\loch\f5 3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 SetTimeFormat\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 setTimeFormat \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Set the format to be used for representing time in
+textual information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+timeFormat\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 timeFormat \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Time format specification\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 SetDateFormat\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 setDateFormat \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Set the format to be used for representing dates in
+textual information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+dateFormat\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 dateFormat \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Date format specification\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 SetLengthUnit\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 setLengthUnit \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Set the unit to be used for representing lengths and
+distances in textual information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+lengthUnit\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 lengthUnit \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Length unit\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 SetWeightUnit\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 setWeightUnit \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Set the unit to be used for representing weights in
+textual information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+weightUnit\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 weightUnit \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 weight unit\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetApplicability\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getApplicability \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the filter expression which specifies which
+Traffic Incidents are NOT applicable\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+filterExpression\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 filterExpression \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Filter expression\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 An empty string indicates that no filtering takes place\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 SetApplicability\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 setApplicability \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Set the filter expression which specifies which
+Traffic Incidents are NOT applicable\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+filterExpression\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 filterExpression \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Filter expression\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 An empty string indicates that no filtering shall take place\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ReserveIconSetIds\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 reserveIconSetIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Reserve a number of IconSet Ids\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+numberOfIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 numberOfIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The number of Ids to be reserved\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconSetIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconSetIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The reserved Ids\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 FreeIconSetIds\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 freeIconSetIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Free a set of IconSet Ids\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconSetIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconSetIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids to be freed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetIconSets\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getIconSets \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get all IconSet definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconSets\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 iyya\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 iii\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 bisa\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 si\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconSets \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type IconSet\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5
+ The IconSet definitions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ colorType\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 dimension\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 size\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 dayTimeIcon\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 themeId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 mediumType\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 iconDescriptors\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ Specifies the characteristics of a set of icons\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id of the IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 colorType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Color Type\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 , 0 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dimension \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Dimensionality\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 , 0 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not
+specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 size \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconSize\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Size of the Icon\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ the array contains at most \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 element\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 width\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ height\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 dpi\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Size of an icon\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 width \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Width of the icon in pixels\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 height \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Height of the icon in pixels\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dpi \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Dots per inch\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 , 0 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not
+specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dayTimeIcon \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Daytime \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 true\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 or nighttime \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 false\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 indication\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 themeId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Theme Identifier\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mediumType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Medium type for the icons in this set\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+g\lang1033\hich\f5\dbch\f5\loch\f5 . &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5 image\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 png\lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconDescriptors \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconDescriptor\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Descriptors of the icons\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDescriptor struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 url\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Descriptor\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDescriptor\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 url \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Location of the icon data\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 an empty
+string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDescriptor\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 within an IconSet\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 of the icon\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddIconSetDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addIconSetDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Add IconSet definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconSets\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 iyya\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 iii\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 bisa\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 si\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconSets \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type IconSet\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5
+ The IconSet definitions to be added\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ colorType\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 dimension\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 size\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 dayTimeIcon\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 themeId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 mediumType\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 iconDescriptors\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ Specifies the characteristics of a set of icons\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id of the IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 colorType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Color Type\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 , 0 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dimension \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Dimensionality\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 , 0 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not
+specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 size \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconSize\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Size of the Icon\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ the array contains at most \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 element\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 width\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ height\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 dpi\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Size of an icon\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 width \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Width of the icon in pixels\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 height \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Height of the icon in pixels\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSize\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dpi \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Dots per inch\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 , 0 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not
+specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dayTimeIcon \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Daytime \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 true\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 or nighttime \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 false\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 indication\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 themeId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Theme Identifier\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mediumType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Medium type for the icons in this set\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+g\lang1033\hich\f5\dbch\f5\loch\f5 . &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5 image\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 png\lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconSet\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconDescriptors \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconDescriptor\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Descriptors of the icons\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDescriptor struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 url\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Descriptor\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDescriptor\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 url \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Location of the icon data\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 an empty
+string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDescriptor\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 within an IconSet\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 of the icon\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveIconSetDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeIconSetDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Remove IconSet definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconSetIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconSetIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the IconSets to be removed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetIconDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getIconDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the icon definitions for a specified set of
+icons\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconInfos\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5
+)">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconInfos \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5
+ The set of icons for which the definition is to be obtained\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A reference to an icon\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 an IconSetId\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+IconId pair\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 IconSet Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5
+)(\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type IconDefinition\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 The icon definitions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDefinition struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconData\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Definition\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconInfo \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The reference to the icon\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A reference to an icon\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 an IconSetId\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+IconId pair\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 IconSet Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconData \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconData\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The binary icon data\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconData struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ Binary icon data\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconData\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Description missing\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddIconDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addIconDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Add icon definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5
+)(\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type IconDefinition\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 The icon definitions to be added\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDefinition struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconData\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Definition\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconInfo \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The reference to the icon\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A reference to an icon\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 an IconSetId\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+IconId pair\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 IconSet Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconData \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconData\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The binary icon data\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconData struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ Binary icon data\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconData\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Description missing\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveIconDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeIconDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Remove icon definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+iconInfos\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5
+)">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 iconInfos \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5
+ The set of icons for which the definition is to be removed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A reference to an icon\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 an IconSetId\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+IconId pair\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 IconSet Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ReserveCategoryIds\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 reserveCategoryIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Reserve a number of Category Ids\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+numberOfIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 numberOfIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The number of Ids to be reserved\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The reserved Ids\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 FreeCategoryIds\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 freeCategoryIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Free a set of Category Ids\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids to be freed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetCategoryDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getCategoryDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get all Category definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 sss\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 ia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5
+)">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 The Category definitions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 localizedNames\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 categoryId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 icons\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 expression\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ The definition of a category of Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 localizedNames \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The name of the category in different languages\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 languageCode\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 countryCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 string\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A string in a specified language\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language
+code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The country specific variant for the language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5
+alpha \lang1033\hich\f5\dbch\f5\loch\f5 3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).&#\lang3081\hich\f5\dbch\f5\loch\f5 xD\lang1033\hich\f5\dbch\f5\loch\f5
+;\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 string \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A string in the specified language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 categoryId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The unique Id of the category\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 icons \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The icons related to the category\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A reference to an icon\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 an IconSetId\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+IconId pair\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 IconSet Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 expression \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Filter expression\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 A Traffic Incident that passes the related filter\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ is part of the category\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddCategoryDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addCategoryDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Add Category definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 sss\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 ia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ii\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5
+)">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 The Category definitions to be added\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 localizedNames\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 categoryId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 icons\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 expression\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ The definition of a category of Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 localizedNames \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The name of the category in different languages\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 languageCode\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 countryCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 string\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A string in a specified language\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 languageCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 639-3 \lang3081\hich\f5\dbch\f5\loch\f5 language
+code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 lower case\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 countryCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The country specific variant for the language\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 specified as ISO \lang1033\hich\f5\dbch\f5\loch\f5 3166-1 \lang3081\hich\f5\dbch\f5\loch\f5
+alpha \lang1033\hich\f5\dbch\f5\loch\f5 3 \lang3081\hich\f5\dbch\f5\loch\f5 country code \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 upper case\lang1033\hich\f5\dbch\f5\loch\f5 ).&#\lang3081\hich\f5\dbch\f5\loch\f5 xD\lang1033\hich\f5\dbch\f5\loch\f5
+;\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocalizedString\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 string \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 A string in the specified language\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 categoryId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The unique Id of the category\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 icons \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The icons related to the category\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ iconId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A reference to an icon\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 an IconSetId\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+IconId pair\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconSetId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 IconSet Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 IconInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 iconId \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Icon Id\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CategoryDefinition\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 expression \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Filter expression\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 A Traffic Incident that passes the related filter\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ is part of the category\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveCategoryDefinitions\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeCategoryDefinitions \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Remove Category definitions\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the Category definitions to be removed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getTrafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get all the Ids of the current traffic incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+warningLevels\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 warningLevels \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified warning levels will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any warning level \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+and no specified warning level\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified cateory Ids will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any category Id \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+including no category Id\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the requested traffic incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetTrafficIncidentIdsInAreas\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getTrafficIncidentIdsInAreas \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the Ids of the traffic incidents
+in a number of areas\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+warningLevels\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 warningLevels \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified warning levels will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any warning level \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+and no specified warning level\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified cateory Ids will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any category Id \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+including no category Id\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+areas\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5
+)(\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 areas \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 )
+=\lang3081\hich\f5\dbch\f5\loch\f5 The areas for which the traffic incident Ids are requested\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 topRight\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype represents a rectangular area\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The area is defined by
+the WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinates of its bottomLeft and topRight corners\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The bottom\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 left corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 topRight \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The top\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 right corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the requested traffic incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetTrafficIncidents\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getTrafficIncidents \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get a number of Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the requested Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+includeTextFields\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 b\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 includeTextFields \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The text fields in the returned Traffic Incident
+will only be filled in if this parameter is set to true\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidents\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 iysiiysiiiiia\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yysa\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+yv\lang1033\hich\f5\dbch\f5\loch\f5 ))))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 bia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 nni\lang1033\hich\f5\dbch\f5\loch\f5
+)\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5
+))))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 asasasa\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5
+ddi\lang1033\hich\f5\dbch\f5\loch\f5 )(\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5 ))\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 )">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidents \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 array of type TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5
+) = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 The requested Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 This list may be shorter than the request list\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 as nothing is returned for Ids that don\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 t exist \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 anymore\lang1033\hich\f5\dbch\f5\loch\f5
+).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentId\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 effectCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 effectText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 startTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ stopTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 tendencyText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 averageSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 delay\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 segmentSpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 expectedSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causes\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ advices\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimits\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+locationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causeTexts\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicabilityTexts\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 adviceTexts\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationBoundingBox\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Data model description of a Traffic Incident\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentId \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 unique Id\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 effectCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Effect Code\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 effectText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representation of the Effect Code\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 startTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Start Time in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 stopTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Stop Time in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 tendency \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 tendencyText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representation of the Tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the event in meters\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5
+, -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 averageSpeedAbsolute \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Average speed in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 s at the given location\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 delay \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Delay in minutes\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates
+not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segmentSpeedLimit \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Maximum speed in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 .,\lang3081\hich\f5\dbch\f5\loch\f5
+ optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 expectedSpeedAbsolute \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The expectedSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 is used to signal the expected\lang1033\hich\f5\dbch\f5\loch\f5\par
+ (\lang3081\hich\f5\dbch\f5\loch\f5 normal\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 speed of traffic through the problem location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range \lang1033\hich\f5\dbch\f5\loch\f5
+0, .. , 127 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 f\lang1033\hich\f5\dbch\f5\loch\f5 ).\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causes \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Causes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 causeType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 causeUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication of which sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type contained in the causeUnion\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 directCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ linkedCause\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 types\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 directCause \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Direct Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ warningLevel\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 unverifiedInformation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 subCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ lengthAffected\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ freeText\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A Direct Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 all details of the cause are specified here\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 warningLevel \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Warning Level\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 unverifiedInformation \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indication of whether the information has been verified by an authority \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+like the police\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 or not\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 subCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 More detailed cause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The actual value of this atttribute depends on the mainCause\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 So based on the mainCause it has to be cast to the related enum\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the cause in meters\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5
+indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Offset \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in metres\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 from the start of the
+Cause to the end of the Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 When used together with Affected Length the cause can be positioned within the event more accurately\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Without Cause Offset but with Affected Length defined the cause position is not defined\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5
+).\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 numberOfLanes\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 numberOfLanes \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Number of lanes affected by the Lane Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5
+, -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 freeText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Free Text\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linkedCause \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linked Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ causeTrafficIncidentId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 with a reference to another incident\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 which is a cause for this incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeTrafficIncidentId \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Id of a TrafficIncident which is a cause for this incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 location \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication
+of which Location Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Type contained in the locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Locations\lang1033\hich\f5\dbch\f5\loch\f5
+</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type PointLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a single point \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 along the road\lang1033\hich\f5\dbch\f5\loch\f5 ),\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ the location of a broken down vehicle\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 segments\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ positiveOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a road stretch\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 the road stretch where there is a traffic jam\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segments \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The database segments of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 positiveOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The positive offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the begin node of the first segment and the start point of the actual location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The negative offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the end point of the actual location and the end node of the last segment\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type AreaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is an area\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 an area with fog\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 advices \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Advice\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Advices\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainAdvice\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ subAdvice\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 freeText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainAdvice \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main advice\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 subAdvice \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 More detailed advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The actual value of this atttribute depends on the adviceCode\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 So based on the adviceCode it has to be cast to the related enum\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 freeText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Free Text\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability of the advice\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication
+of which Location Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Type contained in the locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Locations\lang1033\hich\f5\dbch\f5\loch\f5
+</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type PointLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a single point \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 along the road\lang1033\hich\f5\dbch\f5\loch\f5 ),\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ the location of a broken down vehicle\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 segments\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ positiveOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a road stretch\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 the road stretch where there is a traffic jam\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segments \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The database segments of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 positiveOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The positive offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the begin node of the first segment and the start point of the actual location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The negative offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the end point of the actual location and the end node of the last segment\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type AreaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is an area\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 an area with fog\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication
+of which Location Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Type contained in the locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Locations\lang1033\hich\f5\dbch\f5\loch\f5
+</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type PointLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a single point \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 along the road\lang1033\hich\f5\dbch\f5\loch\f5 ),\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ the location of a broken down vehicle\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 segments\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ positiveOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a road stretch\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 the road stretch where there is a traffic jam\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segments \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The database segments of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 positiveOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The positive offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the begin node of the first segment and the start point of the actual location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The negative offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the end point of the actual location and the end node of the last segment\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type AreaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is an area\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 an area with fog\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimits \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 array of type TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Temporary speed limit information suitable for display to the driver\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 unitsMPH\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 offset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimitSections\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5
+] =\lang3081\hich\f5\dbch\f5\loch\f5 One of the highly visible attributes of\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 many roadworks is the imposed Temporary Speed Limit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 This component provides the ability to define temporary speed limit\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 information suitable for display to the driver\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Temporary Speed limit info associated with the event is defined in either\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 kph or mph\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Multiple sections with a different speed value may be provided with a length\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 The offset from the end of the\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 the cause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Applicability can be added if needed\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 unitsMPH \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Units definition for this Temporary Speed Limit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If true\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ the unit is mph\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 else the unit is km\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 h\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 offset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Offset defines the distance in meters from the start of the Temporary speed limit to the end of the\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If not defined then first SpeedLimitSection starts at the beginning of the Location\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5
+)\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimitSections \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 array of TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit information per section\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValue\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValueWet\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitLength\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Each section of a TemporarySpeedLimit is
+defined\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 by a speed value and length\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 A speed value for use in Wet conditions is also optionally available\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 n\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit numerical value in kph or mph\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5
+: 0, .. , 32767 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fff\lang1033\hich\f5\dbch\f5\loch\f5 )</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValueWet \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 n\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit numerical value to be used in wet conditions\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5 in kph or mph\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 32767 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fff\lang1033\hich\f5\dbch\f5\loch\f5
+)\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitLength \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the SpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 If this is not defined\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 then section finishes\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 at end of the Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5 )\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Description of the restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Map database independent description of a location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The actual data of the location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationInfo \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LocationInfoDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Information about the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location Information\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together
+with an indication of which Location Information Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Information Type contained in the locationInformationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Location
+Information\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocationInfo \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ mainLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location specific Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 name \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Coordinates of the main location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of point location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocationInfo \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ mainLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationParentName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ toLocationName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 toLocationParentName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 coordinates\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ Linear Location specific Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 name \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Coordinates of the main location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 from\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationParentName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of parent of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 from\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 toLocationName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 to\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 toLocationParentName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the parent of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 to\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 coordinates \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 List of coordinates of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocationInfo \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type AreaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocationInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ mainLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location specific Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 name \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Coordinates of the main location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeTexts \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representations of the causes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicabilityTexts \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representations of the applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 adviceTexts \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representations of the advices\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationBoundingBox \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 A bounding box in around the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 topRight\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype represents a rectangular area\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The area is defined by
+the WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinates of its bottomLeft and topRight corners\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The bottom\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 left corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 topRight \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The top\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 right corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Category Ids\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetTrafficIncidentsFields\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getTrafficIncidentsFields \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Get a number of Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 where only specific fields are filled in\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The field TRAFFIC\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 INCIDENT\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 ID is always filled in\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 independent of whether it is requested or not\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the requested Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentFields\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentFields \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The fields \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 attributes\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 to be filled in in the Traffic Incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidents\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 iysiiysiiiiia\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yysa\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+yv\lang1033\hich\f5\dbch\f5\loch\f5 ))))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 bia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 nni\lang1033\hich\f5\dbch\f5\loch\f5
+)\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 ya\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yaia\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5
+))))\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 yv\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 asasasa\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5
+ddi\lang1033\hich\f5\dbch\f5\loch\f5 )(\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5 ))\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 )">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidents \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 array of type TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5
+) = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 The requested Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 with only the requested fields filled in\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 This list may be shorter than the request list as nothing is returned for\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Ids that don\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 t exist \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 anymore\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentId\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 effectCode\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 effectText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 startTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ stopTime\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 tendencyText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 averageSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 delay\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 segmentSpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 expectedSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causes\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ advices\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 locationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causeTexts\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 applicabilityTexts\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 adviceTexts\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 locationBoundingBox\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Data model description of a Traffic Incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentId \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 unique Id\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 effectCode \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Effect Code\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 effectText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representation of the Effect Code\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 startTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Start Time in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 stopTime \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Stop Time in minutes since the standard base time known as \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5
+the epoch\lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 quot\lang1033\hich\f5\dbch\f5\loch\f5 ;,\lang3081\hich\f5\dbch\f5\loch\f5 namely January \lang1033\hich\f5\dbch\f5\loch\f5 1, 1970, 00:00:00 \lang3081\hich\f5\dbch\f5\loch\f5
+GMT\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 tendency \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 tendencyText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representation of the Tendency\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ an empty string indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the event in meters\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5
+, -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 averageSpeedAbsolute \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Average speed in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 s at the given location\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 delay \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Delay in minutes\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates
+not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segmentSpeedLimit \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Maximum speed in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 .,\lang3081\hich\f5\dbch\f5\loch\f5
+ optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 expectedSpeedAbsolute \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The expectedSpeedAbsolute\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 in m\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 is used to signal the expected\lang1033\hich\f5\dbch\f5\loch\f5\par
+ (\lang3081\hich\f5\dbch\f5\loch\f5 normal\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 speed of traffic through the problem location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range \lang1033\hich\f5\dbch\f5\loch\f5
+0, .. , 127 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 f\lang1033\hich\f5\dbch\f5\loch\f5 ).\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causes \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Causes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 causeType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 causeUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication of which sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 type contained in the causeUnion\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 directCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ linkedCause\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the Cause sub\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 types\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 directCause \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Direct Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ warningLevel\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 unverifiedInformation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 subCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ lengthAffected\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 causeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ freeText\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A Direct Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 all details of the cause are specified here\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 warningLevel \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Warning Level\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 NOT\lang1033\hich\f5\dbch\f5\loch\f5
+_\lang3081\hich\f5\dbch\f5\loch\f5 SPECIFIED indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 unverifiedInformation \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indication of whether the information has been verified by an authority \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+like the police\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 or not\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 subCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 More detailed cause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The actual value of this atttribute depends on the mainCause\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 So based on the mainCause it has to be cast to the related enum\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 lengthAffected \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the cause in meters\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5
+indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Offset \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in metres\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 from the start of the
+Cause to the end of the Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 When used together with Affected Length the cause can be positioned within the event more accurately\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Without Cause Offset but with Affected Length defined the cause position is not defined\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 If neither Affected Length nor Cause Offset are defined the Cause spans the entire Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5
+).\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 , -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictions \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 numberOfLanes\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 laneRestrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Lane Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LaneRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 numberOfLanes \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Number of lanes affected by the Lane Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5
+, -1 \lang3081\hich\f5\dbch\f5\loch\f5 indicates not specified\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 DirectCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 freeText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Free Text\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 CauseUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linkedCause \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linked Cause\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainCause\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ causeTrafficIncidentId\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 with a reference to another incident\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 which is a cause for this incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainCause \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main Cause for the incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinkedCause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeTrafficIncidentId \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Id of a TrafficIncident which is a cause for this incident\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 location \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication
+of which Location Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Type contained in the locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Locations\lang1033\hich\f5\dbch\f5\loch\f5
+</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type PointLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a single point \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 along the road\lang1033\hich\f5\dbch\f5\loch\f5 ),\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ the location of a broken down vehicle\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 segments\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ positiveOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a road stretch\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 the road stretch where there is a traffic jam\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segments \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The database segments of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 positiveOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The positive offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the begin node of the first segment and the start point of the actual location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The negative offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the end point of the actual location and the end node of the last segment\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type AreaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is an area\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 an area with fog\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 advices \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Advice\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Advices\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 mainAdvice\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ subAdvice\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 freeText\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainAdvice \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Main advice\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 subAdvice \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 More detailed advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The actual value of this atttribute depends on the adviceCode\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 So based on the adviceCode it has to be cast to the related enum\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 freeText \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Free Text\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Advice\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability of the advice\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication
+of which Location Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Type contained in the locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Locations\lang1033\hich\f5\dbch\f5\loch\f5
+</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type PointLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a single point \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 along the road\lang1033\hich\f5\dbch\f5\loch\f5 ),\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ the location of a broken down vehicle\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 segments\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ positiveOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a road stretch\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 the road stretch where there is a traffic jam\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segments \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The database segments of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 positiveOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The positive offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the begin node of the first segment and the start point of the actual location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The negative offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the end point of the actual location and the end node of the last segment\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type AreaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is an area\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 an area with fog\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together with an indication
+of which Location Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Type contained in the locationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Locations\lang1033\hich\f5\dbch\f5\loch\f5
+</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type PointLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a single point \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 along the road\lang1033\hich\f5\dbch\f5\loch\f5 ),\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ the location of a broken down vehicle\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 segments\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ positiveOffset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is a road stretch\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 the road stretch where there is a traffic jam\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 segments \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The database segments of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 positiveOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The positive offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the begin node of the first segment and the start point of the actual location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 negativeOffset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+u\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The negative offset is the distance \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 in meters\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5
+ between the end point of the actual location and the end node of the last segment\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type AreaLocation\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocation struct\lang1033\hich\f5\dbch\f5\loch\f5 [] =\lang3081\hich\f5\dbch\f5\loch\f5 The location is an area\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 an area with fog\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimits \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 array of type TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Temporary speed limit information suitable for display to the driver\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 unitsMPH\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 offset\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimitSections\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 applicability\lang1033\hich\f5\dbch\f5\loch\f5
+] =\lang3081\hich\f5\dbch\f5\loch\f5 One of the highly visible attributes of\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 many roadworks is the imposed Temporary Speed Limit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 This component provides the ability to define temporary speed limit\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 information suitable for display to the driver\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Temporary Speed limit info associated with the event is defined in either\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 kph or mph\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Multiple sections with a different speed value may be provided with a length\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 The offset from the end of the\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Location to the start of the first speed limit restriction allows the speed limit zone to be positioned independently of\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 the cause\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Applicability can be added if needed\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 unitsMPH \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+b\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Units definition for this Temporary Speed Limit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If true\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ the unit is mph\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 else the unit is km\lang1033\hich\f5\dbch\f5\loch\f5 /\lang3081\hich\f5\dbch\f5\loch\f5 h\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 offset \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Offset defines the distance in meters from the start of the Temporary speed limit to the end of the\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If not defined then first SpeedLimitSection starts at the beginning of the Location\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5
+)\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 temporarySpeedLimitSections \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 array of TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit information per section\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValue\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValueWet\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitLength\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Each section of a TemporarySpeedLimit is
+defined\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 by a speed value and length\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 A speed value for use in Wet conditions is also optionally available\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 n\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit numerical value in kph or mph\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5
+: 0, .. , 32767 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fff\lang1033\hich\f5\dbch\f5\loch\f5 )</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitValueWet \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 n\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Speed Limit numerical value to be used in wet conditions\lang1033\hich\f5\dbch\f5\loch\f5 ;\lang3081\hich\f5\dbch\f5\loch\f5 in kph or mph\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 32767 (0\lang3081\hich\f5\dbch\f5\loch\f5 x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fff\lang1033\hich\f5\dbch\f5\loch\f5
+)\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 speedLimitLength \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Length of the SpeedLimitSection\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 If this is not defined\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 then section finishes\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 at end of the Problem Location\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Value range\lang1033\hich\f5\dbch\f5\loch\f5 : 0, .. , 2147483647 (0\lang3081\hich\f5\dbch\f5\loch\f5
+x\lang1033\hich\f5\dbch\f5\loch\f5 7\lang3081\hich\f5\dbch\f5\loch\f5 fffffff\lang1033\hich\f5\dbch\f5\loch\f5 )\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TemporarySpeedLimit\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicability \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Applicability\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleType \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Applicability\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 vehicleRelatedRestrictions \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Restrictions\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Vehicle Related Restriction\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction Type\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionValue \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Restriction value\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Optional value\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ represented by an array with \lang1033\hich\f5\dbch\f5\loch\f5 0 \lang3081\hich\f5\dbch\f5\loch\f5 or \lang1033\hich\f5\dbch\f5\loch\f5 1 \lang3081\hich\f5\dbch\f5\loch\f5 elements\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 VehicleRelatedRestriction\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 restrictionLocationReference \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Description of the restriction location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 data\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Map database independent description of a location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationReferenceType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationReference\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 data \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The actual data of the location reference\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationInfo \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type LocationInfoDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Information about the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoDiscriminatedUnion struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoType\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 A type to transfer any type of Location Information\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 together
+with an indication of which Location Information Type it is\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Indentifies the Location Information Type contained in the locationInformationUnion\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoDiscriminatedUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationInfoUnion \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion variant\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 pointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 linearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 areaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Union for the different types of Location
+Information\lang1033\hich\f5\dbch\f5\loch\f5 </\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 pointLocationInfo \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ mainLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 locationType\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Point Location specific Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 name \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Coordinates of the main location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 PointLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationType \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The type of point location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 linearLocationInfo \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Linear Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ mainLocation\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationParentName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ toLocationName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 toLocationParentName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 coordinates\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5
+ Linear Location specific Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 name \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainLocation \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Coordinates of the main location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 from\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 fromLocationParentName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of parent of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 from\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 toLocationName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 to\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 toLocationParentName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the parent of the \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 to\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5
+ location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LinearLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 coordinates \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 List of coordinates of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 LocationInfoUnion\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 areaLocationInfo \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type AreaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocationInfo struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ mainLocation\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 Area Location specific Location Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 name \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Name of the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 AreaLocationInfo\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 mainLocation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 Coordinates of the main location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 causeTexts \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representations of the causes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 applicabilityTexts \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representations of the applicability\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 adviceTexts \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Textual representations of the advices\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 locationBoundingBox \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 A bounding box in around the location\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 topRight\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype represents a rectangular area\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The area is defined by
+the WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinates of its bottomLeft and topRight corners\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The bottom\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 left corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 topRight \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The top\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 right corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncident\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 Category Ids\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 GetTexts\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 getTexts \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Get the texts for a number of Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The Ids of the Traffic Incidents for which the
+texts are requested\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+textDetailLevel\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 textDetailLevel \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 The amount of detail to be provided in the texts\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+texts\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 as\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 texts \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Text information per requested traffic incident\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The texts will be in the same order as the trafficIncidentIds in the request\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addUpdateListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Add a listener which is notified in case of any update in the traffic information\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an update the Updates\lang1033\hich\f5\dbch\f5\loch\f5 ()\lang3081\hich\f5\dbch\f5\loch\f5 method of the listener is called\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+listenerId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 listenerId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ on this node\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 generated by the caller\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+warningLevels\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 warningLevels \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified warning levels will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any warning level \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+and no specified warning level\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified cateory Ids will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any category Id \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+including no category Id\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeUpdateListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Remove an update listener\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 which was installed via addUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+listenerId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 listenerId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id of the listener to be removed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddAreasUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addAreasUpdateListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Add a listener which is notified in case of an update in the traffic information in one or more specific area\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an update the UpdatesInAreas\lang1033\hich\f5\dbch\f5\loch\f5 ()\lang3081\hich\f5\dbch\f5\loch\f5 method of the listener is called\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+listenerId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 listenerId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ on this node\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 generated by the caller\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+warningLevels\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ay\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 warningLevels \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified warning levels will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any warning level \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+and no specified warning level\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+categoryIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 categoryIds \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Only incidents with one of the specified cateory Ids will be returned\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In case of an empty list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 traffic incidents with any category Id \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+including no category Id\lang1033\hich\f5\dbch\f5\loch\f5 )\lang3081\hich\f5\dbch\f5\loch\f5 are returned\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+areas\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5
+)(\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 areas \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 )
+=\lang3081\hich\f5\dbch\f5\loch\f5 The area\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 s to be observed for changes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 topRight\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype represents a rectangular area\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The area is defined by
+the WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinates of its bottomLeft and topRight corners\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The bottom\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 left corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 topRight \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The top\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 right corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveAreasUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeAreasUpdateListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Remove an areas update listener\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 which was installed via addAreasUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 in\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+listenerId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 listenerId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id of the listener to be removed\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddTrafficIncidentsStatusListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addTrafficIncidentsStatusListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Indicate to the service that this node is interested in the TrafficIncidentsStatus broadcast\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveTrafficIncidentsStatusListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeTrafficIncidentsStatusListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Indicate to the service that this node is no longer interested in the TrafficIncidentsStatus broadcast\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 AddFeedInformationListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 addFeedInformationListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Indicate to the service that this node is interested in the FeedInformation broadcast\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 method name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 RemoveFeedInformationListener\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 removeFeedInformationListener \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Indicate to the service that this node is no longer interested in the FeedInformation broadcast\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 method\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 signal name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 Updates\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 updates \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 If a client has registered itself as a listener for any updates in the traffic incidents\lang1033\hich\f5\dbch\f5\loch\f5 ,\par
+\lang3081\hich\f5\dbch\f5\loch\f5 this method is called if there are changes\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The list of unchangedTrafficIncidentIds is redundant\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 but by providing this list\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ the client\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 doesn\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 t have to maintain a list of \lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 current traffic incidents\lang1033\hich\f5\dbch\f5\loch\f5
+'.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Example\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 A client which completely redraws the list if there are changes\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5
+ The client\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 merges the lists unchangedTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 changedTrafficIncidentIds and newTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 ,\par
+\lang3081\hich\f5\dbch\f5\loch\f5 gets the information for all these incidents from the service and\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 shows the information for these traffic incidents\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 It can e\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 g\lang1033\hich\f5\dbch\f5\loch\f5
+.\lang3081\hich\f5\dbch\f5\loch\f5 highlight the new and changed\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 incidents\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 or put the new incidents on top\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Example\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 A client updates the list on the screen\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 It removes the deletedTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5
+,\par
+\lang3081\hich\f5\dbch\f5\loch\f5 it updates the changedTrafficIncidentIds and adds the newTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 In this case the client only requests the information for the new and changed incidents\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 from the service\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+listenerId\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 i\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 listenerId \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Unique Id for the listener on a node\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+unchangedTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 unchangedTrafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Ids of the Traffic Incidents which
+haven\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 t changed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+changedTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 changedTrafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Ids of the Traffic Incidents which have
+changed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+newTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 newTrafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Ids of new Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+deletedTrafficIncidentIds\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 ai\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 deletedTrafficIncidentIds \lang1033\hich\f5\dbch\f5\loch\f5 =\lang3081\hich\f5\dbch\f5\loch\f5 Ids of deleted Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5
+.</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 signal\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 signal name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 UpdatesInAreas\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 updatesInAreas \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 If a client has registered itself as a listener for updates in the traffic incidents in one or more area\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5\par
+ (\lang3081\hich\f5\dbch\f5\loch\f5 via addAreaUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 ()\lang3081\hich\f5\dbch\f5\loch\f5 or addAreasUpdateListener\lang1033\hich\f5\dbch\f5\loch\f5 ()),\par
+\lang3081\hich\f5\dbch\f5\loch\f5 this method is called if there are changes\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+areas\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 ((\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5
+)(\lang3081\hich\f5\dbch\f5\loch\f5 ddi\lang1033\hich\f5\dbch\f5\loch\f5 ))">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 areas \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 )
+=\lang3081\hich\f5\dbch\f5\loch\f5 The area\lang1033\hich\f5\dbch\f5\loch\f5 '\lang3081\hich\f5\dbch\f5\loch\f5 s in which changes have taken place\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 topRight\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This datatype represents a rectangular area\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 The area is defined by
+the WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinates of its bottomLeft and topRight corners\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 bottomLeft \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The bottom\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 left corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 RectangularArea\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 topRight \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The top\lang1033\hich\f5\dbch\f5\loch\f5 -\lang3081\hich\f5\dbch\f5\loch\f5 right corner of the area\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 latitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ longitude\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 altitude\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type represents a \lang1033\hich\f5\dbch\f5\loch\f5 3\lang3081\hich\f5\dbch\f5\loch\f5
+D WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 latitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -90 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 90</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+d\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 longitude \lang1033\hich\f5\dbch\f5\loch\f5 &\lang3081\hich\f5\dbch\f5\loch\f5 gt\lang1033\hich\f5\dbch\f5\loch\f5 ;= -180 \lang3081\hich\f5\dbch\f5\loch\f5 and \lang1033\hich\f5\dbch\f5\loch\f5
+&\lang3081\hich\f5\dbch\f5\loch\f5 lt\lang1033\hich\f5\dbch\f5\loch\f5 ;= 180</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 Coordinate\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 altitude \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+i\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 altitude relative to WGS\lang1033\hich\f5\dbch\f5\loch\f5 84 \lang3081\hich\f5\dbch\f5\loch\f5 ellipsoid\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Specified
+in meters\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 signal\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 signal name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 TrafficIncidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentsStatus \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 If a client has registered itself as a listener for changes in the Traffic Incidents status\lang1033\hich\f5\dbch\f5\loch\f5 ,\par
+\lang3081\hich\f5\dbch\f5\loch\f5 this method is called upon changes in the Traffic Incidents status\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 The provided status information is the combined status of the available feeds in the system\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Details of how the information is combined is given per parameter\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentFeedStatus\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentFeedStatus \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type TrafficIncidentFeedStatus\lang1033\hich\f5\dbch\f5\loch\f5
+) = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 The combined status of the Traffic Incident Feeds\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 If all Feeds are UNAVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 the status is UNAVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Else\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 if any of the Feeds is CONNECTED\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 the status is CONNECTED\lang1033\hich\f5\dbch\f5\loch\f5
+.\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Else\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 the status is DISCONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 so there are Feeds available\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 but none of them is connected\lang1033\hich\f5\dbch\f5\loch\f5 ).</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 enum\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (0),\lang3081\hich\f5\dbch\f5\loch\f5
+ CONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (1),\lang3081\hich\f5\dbch\f5\loch\f5 DISCONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (2)]</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+trafficIncidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 y\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentsStatus \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type TrafficIncidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5
+) = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 The combined status of the Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 If the status for all the Feeds is AVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 , ,\lang3081\hich\f5\dbch\f5\loch\f5 the combined status is AVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Else\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 if the status for one of the Feeds is PARTLY\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 the combined status is PARTLY\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 Else\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 the combined status is UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 so there are no Traffic
+Incidents at all\lang1033\hich\f5\dbch\f5\loch\f5 ).\par
+ \par
+ \par
+\lang3081\hich\f5\dbch\f5\loch\f5 Meaning of the enum values at this level\lang1033\hich\f5\dbch\f5\loch\f5 :\par
+\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 The are no incidents in the system\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 and currently they
+can also not be received\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 PARTLY\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 There are or may be incidents in the system\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 but the set of incidents is probably not up to date\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 This means that big changes are possible\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 Examples\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 Upon start\lang1033\hich\f5\dbch\f5\loch\f5
+-\lang3081\hich\f5\dbch\f5\loch\f5 up\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 some incidents have already been received\lang1033\hich\f5\dbch\f5\loch\f5 ,\par
+\lang3081\hich\f5\dbch\f5\loch\f5 but there are more incidents to receive\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 If the user is looking at the map display\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ new incidents may suddenly appear\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 When a connection is lost\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 the information stays valid for some time\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ but the information may no longer be fully up to date\lang1033\hich\f5\dbch\f5\loch\f5 ,\par
+\lang3081\hich\f5\dbch\f5\loch\f5 and at some point in time a lot of incidents may suddenly disappear because they are no longer valid\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE\lang1033\hich\f5\dbch\f5\loch\f5 :\lang3081\hich\f5\dbch\f5\loch\f5 The reception and handling of the incidents is stable\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5
+ and as up to date as possible with respect to the used protocol\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ).\par
+\lang3081\hich\f5\dbch\f5\loch\f5 It is however still possible that there are currently no Traffic Incidents\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 enum\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (0),\lang3081\hich\f5\dbch\f5\loch\f5
+ PARTLY\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (1),\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (2)]</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 signal\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 signal name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5 ">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 feedInformation \lang1033\hich\f5\dbch\f5\loch\f5 = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 If a client has registered itself as a listener for changes in the Feed Information\lang1033\hich\f5\dbch\f5\loch\f5 ,&#\lang3081\hich\f5\dbch\f5\loch\f5 xD\lang1033\hich\f5\dbch\f5\loch\f5 ;\par
+\lang3081\hich\f5\dbch\f5\loch\f5 this method is called upon changes in the Feed Information\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 arg direction\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 out\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 name\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5
+feedsInformation\lang1033\hich\f5\dbch\f5\loch\f5 "\lang3081\hich\f5\dbch\f5\loch\f5 type\lang1033\hich\f5\dbch\f5\loch\f5 ="\lang3081\hich\f5\dbch\f5\loch\f5 a\lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 sssyy\lang1033\hich\f5\dbch\f5\loch\f5
+)">\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 feedsInformation \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5 of type FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5
+) =\lang3081\hich\f5\dbch\f5\loch\f5 The information per Traffic Incident Feed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation struct\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 dataProviderName\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 protocolName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 communicationChannelName\lang1033\hich\f5\dbch\f5\loch\f5 ,\lang3081\hich\f5\dbch\f5\loch\f5 feedStatus\lang1033\hich\f5\dbch\f5\loch\f5
+,\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5 ] =\lang3081\hich\f5\dbch\f5\loch\f5 This data type provides information about a Traffic Incident Feed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 dataProviderName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') =\lang3081\hich\f5\dbch\f5\loch\f5 The name of the data provider\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 protocolName \lang1033\hich\f5\dbch\f5\loch\f5 ('\lang3081\hich\f5\dbch\f5\loch\f5
+s\lang1033\hich\f5\dbch\f5\loch\f5 ') = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 The name of the protocol via which the Traffic Incidents are received\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 There are no predefined values\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 communicationChannelName \lang1033\hich\f5\dbch\f5\loch\f5
+('\lang3081\hich\f5\dbch\f5\loch\f5 s\lang1033\hich\f5\dbch\f5\loch\f5 ') = \par
+\lang3081\hich\f5\dbch\f5\loch\f5 The name of the communication channel\lang1033\hich\f5\dbch\f5\loch\f5 .\par
+\lang3081\hich\f5\dbch\f5\loch\f5 There are no predefined values\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 feedStatus \lang1033\hich\f5\dbch\f5\loch\f5 (\lang3081\hich\f5\dbch\f5\loch\f5
+of type TrafficIncidentFeedStatus\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The status of the Feed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 enum\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (0),\lang3081\hich\f5\dbch\f5\loch\f5
+ CONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (1),\lang3081\hich\f5\dbch\f5\loch\f5 DISCONNECTED \lang1033\hich\f5\dbch\f5\loch\f5 (2)]</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 FeedInformation\lang1033\hich\f5\dbch\f5\loch\f5 .\lang3081\hich\f5\dbch\f5\loch\f5 trafficIncidentsStatus \lang1033\hich\f5\dbch\f5\loch\f5
+(\lang3081\hich\f5\dbch\f5\loch\f5 of type TrafficIncidentsStatus\lang1033\hich\f5\dbch\f5\loch\f5 ) =\lang3081\hich\f5\dbch\f5\loch\f5 The status of the Traffic Incidents delivered by this Feed\lang1033\hich\f5\dbch\f5\loch\f5 .</\lang3081\hich\f5\dbch\f5\loch\f5
+line\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ <\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5 >\lang3081\hich\f5\dbch\f5\loch\f5 enum\lang1033\hich\f5\dbch\f5\loch\f5 [\lang3081\hich\f5\dbch\f5\loch\f5 UNAVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (0),\lang3081\hich\f5\dbch\f5\loch\f5
+ PARTLY\lang1033\hich\f5\dbch\f5\loch\f5 _\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (1),\lang3081\hich\f5\dbch\f5\loch\f5 AVAILABLE \lang1033\hich\f5\dbch\f5\loch\f5 (2)]</\lang3081\hich\f5\dbch\f5\loch\f5 line\lang1033\hich\f5\dbch\f5\loch\f5
+>\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 doc\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 arg\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 signal\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+ </\lang3081\hich\f5\dbch\f5\loch\f5 interface\lang1033\hich\f5\dbch\f5\loch\f5 >\par
+</\lang3081\hich\f5\dbch\f5\loch\f5 node\lang1033\hich\f5\dbch\f5\loch\f5 > \par
+\par
+\lang3081\hich\f5\dbch\f5\loch\f5\par
+\pard\ssparaaux0\s11\sb240\sa60\ql\outlinelevel0\plain\f0\fs24\lang3081\hich\f5\dbch\f5\loch\f5\cf3\fs32\b\par
+}
diff --git a/doc/traffic-incidents-service/TrafficIncidentsServiceTestPlan.odt b/doc/traffic-incidents-service/TrafficIncidentsServiceTestPlan.odt
new file mode 100755
index 0000000..fd5339c
--- /dev/null
+++ b/doc/traffic-incidents-service/TrafficIncidentsServiceTestPlan.odt
Binary files differ
diff --git a/doc/traffic-incidents-service/poc/GENIVI Traffic Incidents POC - User Manual.doc b/doc/traffic-incidents-service/poc/GENIVI Traffic Incidents POC - User Manual.doc
new file mode 100755
index 0000000..ebc4b53
--- /dev/null
+++ b/doc/traffic-incidents-service/poc/GENIVI Traffic Incidents POC - User Manual.doc
Binary files differ
diff --git a/doc/traffic-incidents-service/tools/GENIVI TrafficIncidents API.rtf b/doc/traffic-incidents-service/tools/GENIVI TrafficIncidents API.rtf
new file mode 100755
index 0000000..fb59aea
--- /dev/null
+++ b/doc/traffic-incidents-service/tools/GENIVI TrafficIncidents API.rtf
@@ -0,0 +1,336 @@
+{\rtf1\ansi\deflang3081\ftnbj\uc1\deff0
+{\fonttbl{\f0 \fswiss Arial;}{\f1 \froman \fcharset2 Times New Roman;}{\f2 \froman \fcharset2 Symbol;}{\f3 \fswiss \fcharset0 Times New Roman;}{\f4 \froman \fcharset0 Times New Roman;}{\f5 \fswiss \fcharset0 Courier New;}{\f6 \fswiss \fcharset0 Arial;}{\f7 \fnil Lucida Sans;}{\f8 \fnil Arial Narrow;}}
+{\colortbl ;\red0\green0\blue0 ;\red255\green255\blue255 ;\red0\green64\blue128 ;\red0\green0\blue176 ;\red0\green0\blue210 ;\red0\green0\blue255 ;\red255\green255\blue128 ;\red0\green0\blue160 ;}
+{\stylesheet{\fs20\cf1\cb2\chcbpat2 Normal;}{\cs1\f1\fs20\cf1\cb2\chcbpat2 Default Paragraph Font;}{\s2\snext0\f1\fs28\b\cf1\cb2\chcbpat2 TOC 1;}{\s3\snext0\f1\fs24\b\cf1\cb2\chcbpat2\fi0\li180\ri0 TOC 2;}{\s4\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li360\ri0 TOC 3;}{\s5\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li540\ri0 TOC 4;}{\s6\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li720\ri0 TOC 5
+;}{\s7\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li900\ri0 TOC 6;}{\s8\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li1080\ri0 TOC 7;}{\s9\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li1260\ri0 TOC 8;}{\s10\snext0\f1\fs24\cf1\cb2\chcbpat2\fi0\li1440\ri0 TOC 9;}{\s11\snext0\outlinelevel0\f0\fs32\b\cf3\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel0 Heading 1;}{\s12\snext0\outlinelevel1\f0\fs30\b\cf4\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel1 Heading 2
+;}{\s13\snext0\outlinelevel2\f0\fs28\b\cf5\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel2 Heading 3;}{\s14\snext0\outlinelevel3\f0\fs24\b\cf3\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel3 Heading 4;}{\s15\snext0\outlinelevel4\f0\fs24\b\i\cf3\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel4 Heading 5;}{\s16\snext0\outlinelevel5\f0\fs22\b\cf3\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel5 Heading 6
+;}{\s17\snext0\outlinelevel6\f0\fs22\ul\cf3\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel6 Heading 7;}{\s18\snext0\outlinelevel7\f0\fs20\ul\i\cf1\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel7 Heading 8;}{\s19\snext0\outlinelevel8\f0\fs22\cf3\cb2\chcbpat2\sb240\sa60\sl0\outlinelevel8 Heading 9;}{\s20\snext0\f0\fs32\b\cf1\cb2\chcbpat2\sb240\sa60\sl0\qc Title
+;}{\s21\snext0\f1\fs20\cf1\cb2\chcbpat2\fi-360\li360\ri0 Numbered List;}{\s22\snext0\f1\fs20\cf1\cb2\chcbpat2\fi-360\li360\ri0 Bulleted List;}{\s23\snext0\f1\fs20\cf1\cb2\chcbpat2\sb0\sa120\sl0 Body Text;}{\s24\snext0\f1\fs18\cf1\cb2\chcbpat2\sb0\sa120\sl0\sl480\slmult1 Body Text 2;}{\s25\snext0\f1\fs16\cf1\cb2\chcbpat2\sb0\sa120\sl0 Body Text 3
+;}{\s26\snext0\f1\fs20\cf1\cb2\chcbpat2 Note Heading;}{\s27\snext0\f5\fs20\cf1\cb2\chcbpat2 Plain Text;}{\s28\snext0\f1\fs20\b\cf1\cb2\chcbpat2 Strong;}{\s29\snext0\f1\fs20\i\cf1\cb2\chcbpat2 Emphasis;}{\s30\snext0\f1\fs20\ul\cf6\cb2\chcbpat2 Hyperlink;}{\s31\snext0\f1\fs20\cf1\cb2\chcbpat2 Footer;}{\s32\snext0\f1\fs20\cf1\cb2\chcbpat2 Header
+;}{\s33\snext0\f5\fs18\cf1\cb2\chcbpat2 Code;}{\cs34\f1\fs20\i\cf3\cb2\chcbpat2 Field Label;}{\cs35\f1\fs22\b\cf1\cb2\chcbpat2 Table Heading;}{\cs36\f7\fs16\b\protect\cf1\cb7\chcbpat7 SSBookmark;}{\cs37\f1\fs20\b\ul\cf1\cb2\chcbpat2 Object type;}{\s38\snext0\f1\fs20\b\i\cf8\cb2\chcbpat2 List Header;}{\s39\snext39\f8\fs16\brdrt\brdrw30\brdrs\brdrcf1\fi0\li0\ri0 Copyright
+;}}
+{\*\revtbl{Unknown;}}
+{\*\listtable
+{\list\listtemplateid1
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List1;}\listid1
+}
+{\list\listtemplateid2
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List2;}\listid2
+}
+{\list\listtemplateid3
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f1\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List3;}\listid3
+}
+{\list\listtemplateid4
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f1\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List4;}\listid4
+}
+{\list\listtemplateid5
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List5;}\listid5
+}
+{\list\listtemplateid6
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List6;}\listid6
+}
+{\list\listtemplateid7
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\f3\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List7;}\listid7
+}
+{\list\listtemplateid8
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List8;}\listid8
+}
+{\list\listtemplateid9
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List9;}\listid9
+}
+{\list\listtemplateid10
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List10;}\listid10
+}
+{\list\listtemplateid11
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List11;}\listid11
+}
+{\list\listtemplateid12
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname ;}\listid858661625
+}
+{\list\listtemplateid13
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname MasterList;}\listid863938703
+}
+{\list\listtemplateid14
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname List864109812_1;}\listid864109812
+}
+{\list\listtemplateid15
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname List1036992718_1;}\listid1036992718
+}
+{\list\listtemplateid16
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat0{\leveltext \'08\'00.\'01.\'02.\'03.}{\levelnumbers \'01\'03\'05\'07}}
+{\listname List1037018281_1;}\listid1037018281
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14264528_1;}\listid1037018282
+}
+{\list\listtemplateid18
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14668774_1;}\listid1037018283
+}
+{\list\listtemplateid19
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14720160_1;}\listid1037018284
+}
+{\list\listtemplateid20
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'0b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'0b\'0d\'0f\'11}}
+{\listname List14758895_1;}\listid1037018285
+}
+}
+{\*\listoverridetable}
+\paperw11908\paperh16833\margl1440\margr1440\margt1440\margb1440\headery720\footery720\nogrowautofit\deftab720\formshade\fet4\aendnotes\aftnnrlc\pgbrdrhead\pgbrdrfoot
+\sectd\pgwsxn12240\pghsxn15840\titlepg\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\headery720\footery720\sbkpage\pgncont\pgndec
+\plain\plain\f0\fs20
+{\footer
+\trowd\trgaph0\trleft0
+\clvertalt\cellx2790
+\clvertalt\cellx7290
+\clvertalt\cellx9900
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs20\plain\f0\fs20\cell
+\pard\intbl\ssparaaux0\s0\qc\plain\f0\fs20\plain\f3\fs24\lang3081\hich\f3\dbch\f3\loch\f3\cf1\fs24 \'a9 201\lang1033\hich\f4\dbch\f4\loch\f4 4\lang3081\hich\f3\dbch\f3\loch\f3 \lang1033\hich\f5\dbch\f5\loch\f5 TomTom International B.V.\plain\f0\fs20\cell
+\pard\intbl\ssparaaux0\s0\qr\plain\f0\fs20\plain\f6\fs20\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs20{\field{\*\fldinst PAGE}{\fldrslt 2}}/{\field{\*\fldinst NUMPAGES}{\fldrslt 4}}\plain\f0\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s0\ql\plain\f0\fs20\plain\f0\fs20\par
+\plain\f0\fs20}
+\qc\plain\f0\fs20\plain\f0\fs20\fs20
+{\*\shppict{\pict\emfblip\picw21294\pich19426\picwgoal12075\pichgoal11010\picscalex29\picscaley29\sspicalign0\bin1331672
+ÿ '*ÿÿ ÿ„†‰ÿûùýÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüÿÿÿÿÿÿÿÿÿüùúÿkhhÿA=>ÿRECÿYLIÿaTQÿdWUÿbUSÿ_ROÿ]PNÿ]PNÿ_RPÿbURÿeXVÿl^\ÿxkhÿ‚usÿƒvtÿ~pnÿqfcÿg]Zÿ`URÿ\QOÿXMKÿPECÿI?<ÿG<:ÿG<9ÿE:7ÿB85ÿA63ÿ>41ÿ;0-ÿ5+(ÿ1'$ÿÀÀÀÿÿÿÿÿùùùÿÿÿÿÿûûûÿþþþÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿöööÿÿÿÿÿýýýÿÿÿÿÿÙÙÙÿNB?ÿRFCÿWJHÿZMKÿ[NLÿ]OMÿ_QOÿaSPÿaRPÿcTRÿgWUÿl][ÿxgeÿ‚qoÿƒrqÿ~nlÿmb`ÿcYVÿ^ROÿ]PNÿ^OMÿZKIÿYHFÿYHFÿTDBÿO@>ÿI=:ÿC64ÿ;2/ÿ4+(ÿ?95ÿâÜÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿîññÿýÿÿÿÛàßÿjonÿÿÿ(.-ÿ+10ÿ%)&ÿ252ÿ<?<ÿ<?<ÿ9<:ÿ=@>ÿEGGÿJLLÿ;=>ÿ689ÿ68:ÿ<=?ÿ;<@ÿ125ÿ#$'ÿÿÿ
+ÿdhhÿÜààÿùüüÿíñðÿúüüÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþüÿþÿþÿùúøÿÿÿþÿýûùÿÿÿþÿöòñÿ‰ˆÿ(&%ÿ<98ÿ##"ÿÿ/52ÿ8>;ÿ+40ÿ7@=ÿAEBÿAEBÿBEBÿAEBÿADAÿADAÿADAÿBDBÿ=?<ÿ;>;ÿ<=:ÿ;<9ÿ<<:ÿ<=:ÿ==;ÿ==;ÿ<CGÿ:AEÿ7@Cÿ8ADÿ7BEÿ3?Bÿ-9<ÿ'36ÿ-9;ÿ&14ÿ
+ÿ ÿ ÿ),0ÿ··¼ÿööûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüûûÿÿÿÿÿÿþÿÿýúûÿtpqÿ@=>ÿTECÿ[LJÿcTRÿgXVÿeVTÿaRPÿ_PNÿ_PNÿaSQÿdUSÿfXVÿl^[ÿxigÿ‚sqÿ‚sqÿ|nlÿsebÿj[YÿaSQÿ]OMÿWJHÿOB@ÿI=:ÿH<9ÿG;9ÿE:7ÿB75ÿ@53ÿ>30ÿ:0-ÿ4+(ÿ1'$ÿÇÇÇÿÿÿÿÿøøøÿÿÿÿÿùùùÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿýýýÿÿÿÿÿÝÝÝÿOB@ÿRFCÿWJHÿZMKÿ\OLÿ]PMÿ_QOÿaSQÿaRPÿcUSÿgWUÿl\Zÿvfdÿ€onÿ‚qoÿ}mkÿlb_ÿcYVÿ^ROÿ]QNÿ_PNÿZKIÿYHGÿYHFÿUECÿQA?ÿJ=;ÿC74ÿ<30ÿ6-*ÿA<8ÿåàÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿ·ººÿMQPÿÿ ÿ).-ÿ(.-ÿ &%ÿ373ÿ<?<ÿ@CAÿ?B?ÿBECÿHKIÿEGGÿ;==ÿEGHÿ@BCÿ<=@ÿ78;ÿ/14ÿ)*-ÿ*+.ÿ/04ÿ"'&ÿÿ
+ÿBGFÿ»¿¾ÿüÿÿÿýÿÿÿñóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ù÷ÿþÿþÿüýûÿÿÿþÿûø÷ÿÿÿþÿ×ÔÓÿ.*)ÿ:86ÿ" ÿ##"ÿ110ÿ(.+ÿ-30ÿ7@<ÿ5=:ÿEIFÿBFCÿ@C@ÿ>A?ÿ=@>ÿ;><ÿ9<9ÿ696ÿ;=;ÿ=?<ÿ?@>ÿ?@=ÿ<=;ÿ:;8ÿ9:8ÿ9:8ÿ.59ÿ.58ÿ.7:ÿ3<?ÿ6ADÿ7BEÿ2?Bÿ.;=ÿ')ÿ*58ÿ"*-ÿ ÿ#ÿÿEFJÿôõùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúûÿÿÿÿÿÿþþÿþûüÿxuuÿ@=>ÿTECÿ[LJÿcUSÿgXVÿeWTÿaSQÿ_PNÿ_PNÿbSQÿdUSÿfXVÿl][ÿwifÿrpÿrpÿ{ljÿsebÿi[Yÿ`RPÿ[MKÿUHFÿN@>ÿH<9ÿH<9ÿG;9ÿE97ÿB74ÿ@52ÿ=30ÿ:/-ÿ4*'ÿ0'$ÿËËËÿÿÿÿÿøøøÿÿÿÿÿùùùÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿüüüÿÿÿÿÿÿÿÿÿùùùÿêêêÿ\QNÿG<9ÿ^RPÿ\PNÿ[NLÿfYVÿ^PMÿfWUÿdSQÿdSQÿhVTÿq^]ÿ{hgÿmlÿ€ljÿ|hgÿm_]ÿfYVÿbRPÿ_OMÿbPNÿ`OMÿ]KIÿXFDÿN=;ÿQ@>ÿG;8ÿ>1/ÿD<9ÿ,$!ÿMHEÿäàÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿýýýÿúúúÿüýýÿýÿÿÿÁÄÃÿPSSÿ ÿ#''ÿ ÿ).-ÿ=BAÿ)/.ÿ6:6ÿ;?:ÿBFBÿJMIÿOROÿPSPÿPRQÿOQPÿJMLÿDGFÿ?ABÿ>@Aÿ?ABÿ;=>ÿ235ÿ)*,ÿ$+*ÿ! ÿ$#ÿÿ277ÿ«°°ÿüÿÿÿøûûÿýÿÿÿöøøÿýýýÿÿÿÿÿÿÿÿÿüüüÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿþûÿÿÿüÿÿýûÿúöôÿb][ÿ731ÿ852ÿ/+)ÿ&'$ÿ+,)ÿ052ÿ7<8ÿ;B>ÿ@HDÿ?B?ÿ=@=ÿ:=:ÿ8;8ÿ697ÿ7:7ÿ7;8ÿ8<9ÿ:>;ÿ:>;ÿ:>;ÿ9>;ÿ8=:ÿ7<9ÿ5:7ÿ5:7ÿ.57ÿ.46ÿ,46ÿ.68ÿ/:<ÿ1<>ÿ1<>ÿ0<=ÿ*46ÿ-79ÿ ')ÿ "ÿ ÿÿ98<ÿŽ‘ÿÿÿÿÿûûûÿ÷÷÷ÿÿÿÿÿþþþÿûûûÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿú÷øÿÿÿÿÿtpqÿC@AÿP@>ÿcTRÿcSQÿl][ÿdUSÿ]NLÿm^\ÿYJHÿdUSÿcTRÿeVTÿm][ÿxhfÿ~omÿpnÿ}nlÿvdcÿn\[ÿcQPÿYGFÿRB@ÿP@>ÿN@>ÿN@=ÿL@=ÿD85ÿJ?<ÿ;0.ÿ>41ÿ2(%ÿ<30ÿ/&#ÿÛÛÛÿñññÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿýýýÿÿÿÿÿÿÿÿÿûûûÿïïïÿnc`ÿTIFÿG;9ÿ^RPÿUGEÿaTRÿcTRÿ]OMÿdSQÿbQPÿdQPÿiVUÿq^\ÿvbaÿvbaÿt_^ÿhZXÿdVTÿaRPÿ`QOÿcQPÿaPNÿ\JHÿWDCÿH75ÿUECÿM@>ÿ=0.ÿ3+(ÿ<40ÿ_ZVÿþùõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿôôôÿÿÿÿÿþþþÿýÿÿÿËÌÌÿfiiÿ$'&ÿÿ$)(ÿ"'&ÿ,11ÿ<BAÿ387ÿ?C?ÿCGBÿILIÿORNÿSVSÿTXUÿTWUÿTWUÿPSRÿJMLÿDFGÿBDEÿCDFÿ?ABÿ78:ÿ/02ÿ#)(ÿ'-,ÿ!&%ÿÿÿW\[ÿ¾ÂÁÿüÿÿÿùüûÿýÿÿÿÿÿÿÿùùùÿüüüÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýþûÿþýúÿÿÿýÿüù÷ÿÃÀ¾ÿHDBÿ51/ÿ631ÿ.+)ÿ'(%ÿ-.+ÿ384ÿ7<9ÿ7?;ÿ9A=ÿ8;8ÿ7:7ÿ7:7ÿ697ÿ7:7ÿ9<9ÿ:>;ÿ;?<ÿ9=:ÿ9=:ÿ9=:ÿ9=:ÿ8=:ÿ7<9ÿ5;7ÿ5:7ÿ29;ÿ079ÿ-57ÿ-57ÿ,68ÿ+67ÿ)56ÿ'34ÿ$.0ÿ)45ÿ!(*ÿ#%ÿ "%ÿ ÿ"ÿXWZÿéééÿÿÿÿÿúúúÿÿÿÿÿþþþÿùùùÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿþüýÿÿþþÿûùùÿÿÿÿÿ”‘‘ÿD@AÿUECÿaQOÿ[LJÿiYWÿgWUÿ[LJÿgWUÿbRPÿcSQÿbSQÿdTRÿk\Zÿtdbÿyigÿxigÿvfdÿn\ZÿgUSÿ]LJÿUDBÿP@>ÿN><ÿL=;ÿK=:ÿF:7ÿC64ÿD96ÿ7,*ÿ>52ÿ8.+ÿ5,(ÿD;8ÿèèèÿøøøÿÿÿÿÿþþþÿüüüÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿýýýÿ÷÷÷ÿ’ÿ[PMÿXMJÿdYVÿcUSÿfYVÿhXVÿgWUÿn\ZÿkYWÿkVUÿmYXÿt^]ÿybaÿzcbÿybaÿn][ÿkZXÿhUTÿeSQÿdPOÿ^JIÿVBAÿP;:ÿB1/ÿUDBÿE86ÿ>1/ÿ0)&ÿ/($ÿŒˆ„ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿøøøÿýýýÿÿÿÿÿðòòÿsuuÿ'**ÿÿ"!ÿ/33ÿ/43ÿ176ÿ:@?ÿ=CBÿGKEÿHMGÿKOIÿMQLÿNRNÿORNÿNQNÿMQNÿNPOÿHKIÿCEEÿBDDÿDFFÿBEDÿ=?@ÿ79:ÿ'/.ÿ2:9ÿ$+*ÿÿÿÿbgfÿíòñÿ÷ûúÿüÿÿÿýÿÿÿôööÿüýýÿþÿÿÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿùûöÿÿþúÿÿÿüÿõñîÿ€|xÿ2-*ÿ:52ÿ:62ÿ2.*ÿ,,(ÿ22.ÿ7;7ÿ8<8ÿ3:5ÿ294ÿ553ÿ563ÿ575ÿ686ÿ7:7ÿ8<9ÿ8=:ÿ9>;ÿ6;8ÿ6<8ÿ5<9ÿ6=9ÿ5<9ÿ4<8ÿ3;7ÿ2:7ÿ477ÿ154ÿ-32ÿ+10ÿ)10ÿ'/.ÿ#-+ÿ!+)ÿ(0/ÿ-64ÿ'++ÿ#('ÿ***ÿÿÿ1..ÿ°°°ÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿûûûÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿþüüÿÿÿÿÿÿýýÿÿÿÿÿ¼¹¹ÿ@==ÿYHGÿbQOÿ\KIÿjYWÿo^\ÿ_NLÿcRQÿl[YÿjYWÿiXVÿiXWÿm\Zÿra_ÿra`ÿp_]ÿl[YÿdOMÿ_JIÿXDCÿS?>ÿO=<ÿN<:ÿJ;9ÿI97ÿB53ÿD74ÿ>30ÿ8-*ÿ=41ÿ90-ÿ,$!ÿpheÿ÷÷÷ÿÿÿÿÿÿÿÿÿüüüÿûûûÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÉ¿¼ÿTJGÿh]Zÿ[PMÿm_]ÿaTRÿ]MKÿl][ÿjXVÿhVTÿiUTÿkVUÿqZYÿs\[ÿt\\ÿs[[ÿudbÿp_]ÿjWVÿbPNÿ\IGÿT@?ÿL86ÿE10ÿG64ÿN=;ÿ:-+ÿA42ÿ70-ÿ+$!ÿÐÌÈÿÿüøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿóóóÿÿÿÿÿž  ÿ9;:ÿ ##ÿ),,ÿ.22ÿ377ÿ7<;ÿ8=<ÿ=BAÿGMLÿEICÿDHCÿCGBÿBFAÿ@D@ÿ?C>ÿ>A>ÿ=@=ÿADBÿ=@>ÿ:=<ÿ;>=ÿ?AAÿADCÿ?ABÿ=?@ÿ087ÿ076ÿ$+*ÿ'.-ÿ#)(ÿÿ%*)ÿŒ‘ÿõùøÿüÿÿÿöùøÿüþþÿþÿÿÿ÷ùøÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿúü÷ÿÿÿüÿÿÿüÿâÞÛÿQLIÿ/*'ÿA;8ÿ?<8ÿ730ÿ00,ÿ551ÿ6:6ÿ484ÿ-4/ÿ*1,ÿ453ÿ563ÿ574ÿ685ÿ696ÿ696ÿ496ÿ496ÿ4:6ÿ5:7ÿ4;8ÿ4;8ÿ4;8ÿ3;7ÿ2:7ÿ1:6ÿ255ÿ/33ÿ,10ÿ+00ÿ(1/ÿ(0.ÿ$.,ÿ",*ÿ(0/ÿ,43ÿ&+*ÿ!&%ÿ+++ÿ%%%ÿ"ÿ+((ÿrrrÿþþþÿûûûÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÜÝÿLIIÿN=;ÿ[JHÿ^MKÿiXVÿp_]ÿdSQÿ`OMÿjYXÿiXVÿgVTÿgVTÿgVTÿgVTÿcRQÿ^MKÿYHGÿXCBÿV@?ÿR>=ÿP<;ÿN<:ÿM;9ÿI97ÿG75ÿC63ÿE86ÿ<1.ÿ>41ÿ90-ÿ/&#ÿ.&#ÿ¬¤ ÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿýýýÿÿÿÿÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿ÷íêÿwtÿQFDÿaVSÿqdaÿgZWÿn][ÿtdbÿr_^ÿr_^ÿv_^ÿv`_ÿx`_ÿw^]ÿu[[ÿrXXÿkXWÿfSQÿ_JIÿWBAÿR<;ÿM76ÿH32ÿF10ÿP><ÿD21ÿ<0-ÿ;.,ÿ&ÿsliÿÿýùÿüùõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿúúúÿÿÿÿÿùùùÿáááÿLNNÿ.//ÿ #"ÿ,/.ÿ*..ÿ*..ÿ7<;ÿ=BAÿ>DCÿGMLÿ<@:ÿ;?9ÿ:>8ÿ9=7ÿ7;6ÿ6:5ÿ695ÿ695ÿ9<9ÿ697ÿ577ÿ688ÿ9<;ÿ<>>ÿ;>=ÿ:<<ÿ9A@ÿ(0/ÿ"*)ÿ)1/ÿ")(ÿÿÿ+10ÿÒ×Öÿûÿÿÿùüüÿûÿþÿýÿÿÿôööÿùûûÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿûÿÿþùÿº¶²ÿ<73ÿ61,ÿ@:6ÿD@<ÿ<84ÿ54/ÿ650ÿ361ÿ.2,ÿ(.(ÿ&-'ÿ231ÿ342ÿ453ÿ674ÿ585ÿ585ÿ385ÿ385ÿ296ÿ3:6ÿ1:7ÿ2:7ÿ0:6ÿ0:6ÿ.95ÿ-84ÿ572ÿ340ÿ03.ÿ/2-ÿ-3.ÿ,2,ÿ)0+ÿ'.)ÿ"'"ÿ(-(ÿ)*&ÿ%'"ÿ-*'ÿ/,(ÿ0+(ÿ2-)ÿEEEÿâââÿýýýÿþþþÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿüüÿ€}}ÿ;)(ÿF43ÿTB@ÿ[IGÿaONÿ`NLÿYGEÿ\JHÿYGEÿXFEÿXFDÿWECÿUCBÿR@>ÿN<:ÿK97ÿS<;ÿR;:ÿP99ÿP:9ÿN:9ÿN:8ÿI86ÿG54ÿC53ÿD64ÿ:/-ÿB75ÿ0'$ÿ%ÿIA>ÿßØÕÿþþþÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿþþþÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿýýýÿþþþÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿüÿÐÆÃÿ:/,ÿg\Yÿ_ROÿdWTÿ}mkÿjZXÿr_]ÿs_^ÿv_^ÿu^]ÿs[ZÿnUUÿkQPÿgMMÿR?=ÿO<:ÿL76ÿH32ÿH21ÿI32ÿK65ÿM87ÿI75ÿ8&$ÿ>2/ÿ/# ÿ$ÿÜÕÒÿÿÿüÿÿýùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÿÿÿÿÿÿÿÿÿýýýÿšššÿ*,,ÿ;=<ÿ"%%ÿ*,,ÿ'++ÿ).-ÿ6;;ÿ:??ÿ6<;ÿ8>=ÿ593ÿ5:3ÿ6:4ÿ7;5ÿ8<7ÿ9=8ÿ:=:ÿ:>:ÿ9<:ÿ8;8ÿ688ÿ688ÿ688ÿ688ÿ466ÿ143ÿ@HGÿ,43ÿ+31ÿ&.-ÿÿÿ%$ÿÿŠŽÿòöõÿüÿÿÿô÷÷ÿùûûÿûýýÿýÿÿÿøúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿûÿúøóÿ…€|ÿ4/+ÿ:40ÿ;51ÿD@<ÿ@<8ÿ;:5ÿ;:5ÿ471ÿ-0+ÿ(.(ÿ)0*ÿ/0.ÿ01/ÿ220ÿ442ÿ474ÿ696ÿ6;8ÿ7<9ÿ396ÿ3:6ÿ1:6ÿ1:6ÿ/95ÿ.84ÿ,62ÿ+62ÿ02-ÿ./+ÿ+-)ÿ*-(ÿ(-(ÿ','ÿ#*%ÿ!(#ÿ!&!ÿ(-(ÿ350ÿ784ÿ962ÿ751ÿ71.ÿ2-*ÿ111ÿ»»»ÿÿÿÿÿýýýÿÿÿÿÿüüüÿýýýÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿþüýÿÿüýÿþûüÿÿþÿÿÊÇÇÿL:8ÿ4"!ÿ?-+ÿG53ÿJ87ÿSA@ÿN<;ÿK98ÿL:8ÿL:8ÿL:9ÿM;9ÿL:9ÿL:8ÿK98ÿK97ÿQ98ÿO87ÿM76ÿN87ÿM97ÿL87ÿH65ÿE42ÿ?1/ÿ@20ÿ7,)ÿ=20ÿ+"ÿ2*'ÿ†~{ÿýõòÿûûûÿüüüÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿüüüÿÿÿÿÿÿÿÿÿþþþÿýýýÿÿÿÿÿÿûøÿöìéÿrgeÿQFDÿ=0.ÿE86ÿ]LKÿI97ÿU@?ÿUA@ÿX@?ÿV>=ÿU;:ÿQ77ÿP55ÿO44ÿF10ÿF10ÿF0/ÿE/.ÿF0/ÿI21ÿK54ÿN87ÿ=*)ÿ9'%ÿ5(&ÿ:.+ÿ~wsÿÿÿüÿýúöÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿúúúÿÿÿÿÿûûûÿÚÚÚÿXXXÿ-//ÿ@BBÿ,//ÿ-00ÿ043ÿ487ÿ498ÿ276ÿ/54ÿ.43ÿ481ÿ592ÿ7;4ÿ9=6ÿ:>8ÿ;?9ÿ;?:ÿ;?:ÿ8;8ÿ7;8ÿ697ÿ697ÿ476ÿ244ÿ/11ÿ,..ÿ5>=ÿ.75ÿ/76ÿ(0/ÿÿ!ÿ &%ÿÿ<A@ÿÒ×Öÿüÿÿÿôø÷ÿøûúÿûþýÿýÿÿÿöùøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿúÿÿÿúÿüúõÿTOJÿ4/+ÿ<62ÿ?84ÿE@<ÿGB>ÿHGBÿJIDÿ?B<ÿ7:4ÿ392ÿ7=7ÿ230ÿ220ÿ230ÿ231ÿ263ÿ585ÿ5;8ÿ7<9ÿ3:7ÿ3:7ÿ1:6ÿ095ÿ-84ÿ+62ÿ(40ÿ'3/ÿ/.'ÿ.-&ÿ+,%ÿ,-%ÿ,/'ÿ-/(ÿ*/'ÿ)-%ÿ13,ÿ35.ÿBA:ÿJJCÿIE?ÿC>8ÿ?71ÿ5.(ÿ***ÿÿÿÿÿÿüüüÿÿÿÿÿûûûÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûùùÿÿþÿÿþüüÿÿþÿÿûøøÿ–ƒ‚ÿA/.ÿ7%#ÿC10ÿA.-ÿJ86ÿJ76ÿH65ÿL:8ÿL:8ÿL98ÿK97ÿK87ÿL98ÿM;9ÿO<;ÿQ87ÿO66ÿM54ÿM54ÿK65ÿJ54ÿF42ÿD20ÿ;,*ÿ?1/ÿ4)'ÿ4)&ÿ/'$ÿ\TPÿ×ÏÌÿÿþûÿýýýÿýýýÿþþþÿÿÿÿÿÿÿÿÿþþþÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿúúúÿÿÿÿÿÿÿÿÿþþþÿüüüÿýýýÿÿÿüÿÿÿüÿèÝÚÿKA>ÿ=/-ÿ</,ÿA1/ÿD42ÿI54ÿI54ÿL54ÿK43ÿL22ÿM32ÿP44ÿQ66ÿH43ÿI43ÿK54ÿJ43ÿI21ÿH10ÿH21ÿI32ÿ:(&ÿG43ÿ+ÿWJHÿ÷ðíÿúóðÿÿÿûÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿúúúÿÿÿÿÿªªªÿ444ÿ688ÿ;==ÿ.11ÿ,/.ÿ387ÿ9=<ÿ.43ÿ+0/ÿ176ÿ498ÿ5:3ÿ6;4ÿ7<5ÿ8=6ÿ8<7ÿ7;5ÿ695ÿ584ÿ363ÿ373ÿ475ÿ475ÿ466ÿ133ÿ.00ÿ+--ÿ!*)ÿ%.-ÿ(1/ÿ*31ÿ&.,ÿÿÿ$#ÿÿ±¶¶ÿñõôÿüÿÿÿýÿÿÿóööÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿùøóÿþûöÿÿþúÿ94/ÿ72-ÿ?95ÿIB>ÿGB=ÿNIDÿTSNÿXWRÿLPJÿBE@ÿ>D>ÿCJCÿ886ÿ674ÿ452ÿ331ÿ141ÿ252ÿ284ÿ496ÿ3;8ÿ3;7ÿ1:7ÿ/95ÿ,73ÿ*51ÿ'3/ÿ%2-ÿ32+ÿ21+ÿ23+ÿ56/ÿ8:3ÿ;>6ÿ:?7ÿ:?7ÿ<?7ÿ792ÿCC<ÿNNGÿLGAÿD?9ÿ@93ÿ6.(ÿ'''ÿpppÿÿÿÿÿúúúÿÿÿÿÿýýýÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿþüüÿÿÿÿÿþûüÿøõõÿÿþÿÿáÏÎÿ\IHÿ<*(ÿK97ÿC1/ÿI75ÿK97ÿN<:ÿN<:ÿM;9ÿK97ÿH64ÿF42ÿF42ÿI65ÿK87ÿQ87ÿN65ÿL43ÿK32ÿI43ÿH32ÿD20ÿB0.ÿ8*(ÿA31ÿ5*'ÿ-"ÿ80-ÿƒzwÿÿÿüÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿüüüÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýùÿÿÿûÿûøóÿ±­©ÿXRMÿ0*&ÿ7.*ÿ<3/ÿB52ÿC63ÿD31ÿ?/,ÿC0.ÿI64ÿL86ÿJ64ÿI.-ÿR87ÿS;9ÿM53ÿG31ÿI53ÿ@2/ÿ7)&ÿ<40ÿ ÿLIEÿÇÅÀÿÿÿûÿÿÿûÿùý÷ÿýÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿýûÿÿÿÿÿÿýúúÿhc`ÿ=95ÿD?7ÿE@9ÿB>5ÿ>:1ÿ76-ÿ32)ÿ/1*ÿ14-ÿ471ÿ6:4ÿ054ÿ055ÿ276ÿ387ÿ499ÿ499ÿ498ÿ387ÿ055ÿ166ÿ276ÿ055ÿ.32ÿ+00ÿ+0/ÿ+0/ÿ%)%ÿ%)$ÿ%)%ÿ&)%ÿ&)&ÿ%(&ÿ%&&ÿ#%%ÿ666ÿSSSÿúùüÿÿþÿÿù÷ûÿùøüÿÿýÿÿýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýþûÿÔÕÒÿ<81ÿ;70ÿ<4*ÿKC9ÿLB7ÿSI=ÿVKAÿSH=ÿOD<ÿPE=ÿQG@ÿPF?ÿMH?ÿKF<ÿF@7ÿ@;1ÿ<7.ÿ=8/ÿB=3ÿFA7ÿID;ÿJD;ÿID;ÿGB9ÿE?6ÿD?5ÿE?6ÿFA8ÿOH<ÿOH;ÿPF:ÿOE9ÿPC8ÿOB7ÿOA7ÿO@6ÿM?4ÿL>4ÿK@6ÿOC9ÿNF<ÿIA6ÿ<7,ÿ3-"ÿ---ÿLLLÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿùùùÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿª¥¡ÿHA=ÿ/($ÿ?52ÿ@62ÿB31ÿL>;ÿQ=;ÿI64ÿJ21ÿM54ÿS87ÿO43ÿL//ÿJ--ÿT><ÿK43ÿD/-ÿD/-ÿB0-ÿ?-*ÿ=.+ÿ@1.ÿ2&"ÿ:/+ÿ1)%ÿ3*&ÿysoÿïéåÿÿÿûÿùôðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúøóÿüúõÿÿÿûÿÿÿûÿ®§£ÿIB>ÿ+"ÿ:0-ÿ</,ÿ?2/ÿG74ÿO><ÿUC@ÿSA>ÿM97ÿG31ÿT:9ÿL21ÿI10ÿO76ÿK75ÿ?,*ÿ3%"ÿ3%"ÿÿe\YÿÂÀ»ÿüùôÿýÿùÿûü÷ÿýÿûÿýÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿýüÿÿÿýþÿéæçÿXTPÿ:52ÿE@9ÿGB;ÿFB9ÿC?6ÿ=<3ÿ87.ÿ13,ÿ.0)ÿ+.(ÿ*.(ÿ165ÿ165ÿ165ÿ387ÿ498ÿ5:9ÿ498ÿ388ÿ165ÿ165ÿ054ÿ.32ÿ+00ÿ).-ÿ(-,ÿ',,ÿ%)%ÿ&*&ÿ(+(ÿ+.*ÿ.0.ÿ/2/ÿ/11ÿ/00ÿ***ÿ@@@ÿáàãÿüûþÿûúþÿûúþÿÿýÿÿýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýþûÿÊËÈÿ:6/ÿ95.ÿ@8.ÿJB8ÿLA6ÿRH=ÿUJ@ÿRG=ÿNC;ÿOE<ÿPF?ÿOE>ÿOJAÿNI@ÿLG>ÿKF<ÿLG=ÿQLCÿYSJÿ^YPÿgbXÿfaXÿd_Vÿ_ZQÿXSJÿSNDÿPKBÿOJAÿOH;ÿNG;ÿOF:ÿNE9ÿOC8ÿNB7ÿO@6ÿN@6ÿL>4ÿK=3ÿJ>4ÿLA7ÿKC9ÿG?5ÿ<6,ÿ4.$ÿ&&&ÿ@@@ÿøøøÿÿÿÿÿ÷÷÷ÿÿÿÿÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùôÿÿÿûÿ£™ÿ0)%ÿ1'#ÿC95ÿ<-+ÿD53ÿM:8ÿJ75ÿM53ÿO76ÿQ65ÿQ65ÿV98ÿ\?>ÿ;%#ÿD.,ÿK64ÿL75ÿG42ÿC1.ÿ>/,ÿ=-+ÿC74ÿ7+(ÿ$ÿf]YÿÞØÔÿÿÿûÿøóïÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿùùôÿýü÷ÿÿÿûÿÿþùÿÊÇÂÿvplÿ+$ ÿ5+'ÿ4*'ÿ:.+ÿ?30ÿ@1.ÿ>/-ÿH96ÿWGEÿO<:ÿA.,ÿ@/-ÿK:8ÿ@2/ÿ+ÿ+!ÿA74ÿmgcÿÍÇÃÿÿÿûÿÿÿûÿ÷øóÿÿÿûÿÿÿûÿýþùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿü÷øÿÎÉÊÿF?;ÿ81-ÿJB:ÿLD<ÿRKAÿQJ@ÿNH?ÿJE;ÿB?7ÿ<91ÿ44-ÿ10)ÿ451ÿ340ÿ340ÿ562ÿ795ÿ9:6ÿ895ÿ674ÿ23/ÿ12.ÿ01-ÿ./,ÿ-.+ÿ-.*ÿ,.*ÿ,-*ÿ11*ÿ22+ÿ33,ÿ770ÿ;:5ÿ=<7ÿ<;7ÿ:96ÿ'%$ÿ/-,ÿÄÂÂÿûùúÿÿþÿÿÿþÿÿÿþÿÿþûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿþûÿ¿½ºÿ;4.ÿ71*ÿH=3ÿJ?5ÿOA6ÿUH=ÿXJ@ÿUG<ÿQC:ÿRD;ÿRE>ÿQD=ÿPG<ÿQH<ÿQI=ÿTK?ÿYPDÿbYMÿldXÿsk_ÿ€wkÿwkÿ|sgÿtl`ÿjaUÿ`WKÿYPDÿUMAÿOG:ÿOG9ÿPE9ÿOD7ÿPB7ÿOA5ÿO@5ÿO?4ÿM>3ÿK<1ÿG;1ÿI=3ÿG?4ÿD<1ÿ<6+ÿ60%ÿ%%%ÿ777ÿðððÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýùÿÿÿûÿøõðÿ¤¡œÿ>84ÿ%ÿ=2/ÿ8-)ÿ@0.ÿD52ÿO;9ÿS?=ÿQ:9ÿK43ÿN65ÿU<;ÿZHFÿUCAÿJ97ÿ?.,ÿ;,)ÿ=.,ÿ9-*ÿ4(%ÿ&ÿ0'#ÿnidÿÖÐÌÿÿÿûÿÿÿûÿùöòÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüü÷ÿÿÿûÿÿÿûÿüúöÿÿÿûÿÿÿûÿàÚÖÿŠ†ÿLB?ÿ=30ÿ:.+ÿD74ÿH:7ÿ>/-ÿ9*'ÿ=-*ÿB0.ÿ;(&ÿ;*(ÿ?.,ÿ3%"ÿ2$"ÿUKHÿ‡|yÿëåáÿÿÿûÿÿÿûÿ÷õðÿÿÿûÿÿÿûÿþÿúÿûü÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿûö÷ÿ³®¯ÿ71-ÿ81-ÿKC;ÿLD<ÿSLCÿTMCÿSMDÿRMCÿMJBÿIF>ÿCB;ÿ@?8ÿ451ÿ341ÿ451ÿ785ÿ<=9ÿ>?;ÿ<=:ÿ:;7ÿ785ÿ563ÿ451ÿ451ÿ674ÿ896ÿ:;7ÿ:;8ÿ>>6ÿ<<5ÿ<<6ÿ?>8ÿA@;ÿA@;ÿ=<9ÿ985ÿ0.-ÿ)'&ÿ¨¦§ÿüûûÿÿþÿÿÿþÿÿýûþÿþûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿüÿ¶´²ÿ;5.ÿ4.'ÿKA7ÿI>4ÿQD8ÿWJ?ÿZLBÿWI>ÿRD<ÿSE=ÿSF?ÿSF>ÿPG<ÿQH=ÿRJ>ÿUMAÿ[SGÿe\Pÿpg[ÿwocÿ†}qÿ†}qÿ‚znÿzrfÿnfZÿbYNÿYPDÿTK?ÿOG9ÿOF9ÿOE8ÿND7ÿPB6ÿNA5ÿO@5ÿO?4ÿL=3ÿJ;1ÿF:0ÿE9/ÿC:0ÿ@8.ÿ:5*ÿ71&ÿ+++ÿ;;;ÿïïïÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù÷òÿÿÿûÿÿÿûÿöóîÿ¹²®ÿQJFÿ$ÿ=2/ÿ<-*ÿ;,)ÿA-,ÿC0.ÿF/.ÿF/.ÿN64ÿW?>ÿ:'%ÿ=+(ÿD30ÿI86ÿB30ÿ7(%ÿ2&"ÿ6*'ÿ2)%ÿxtÿæàÜÿÿÿûÿÿýøÿÿü÷ÿÿÿûÿþü÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøü÷ÿùüøÿÿÿüÿÿÿüÿúû÷ÿýÿúÿÿÿüÿýû÷ÿÄÀ½ÿ†~ÿIB?ÿ3,)ÿ90.ÿ<41ÿ=41ÿ?53ÿ:41ÿ4.+ÿ.(%ÿ2,)ÿJDAÿƒ~{ÿÒÎÊÿÿÿüÿÿÿüÿÿÿüÿüû÷ÿýüøÿÿÿüÿÿÿüÿ÷øôÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿýÿÿÿøùÿ¤žÿ6,(ÿ<2.ÿMA9ÿMA9ÿRE:ÿRF;ÿRG<ÿSG<ÿQH>ÿQG=ÿOG>ÿOG>ÿE?6ÿE?6ÿHB9ÿOI@ÿWQGÿYSJÿWQHÿSMDÿRLBÿNH?ÿJD;ÿIC:ÿLF=ÿNH?ÿPJAÿPJ@ÿKD9ÿHB6ÿGA6ÿHB7ÿJD;ÿHB9ÿA<5ÿ<6/ÿ;61ÿ)$ ÿ“ÿÿúøÿÿÿþÿÿÿþÿýùùÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûûÿÿÿýÿ½·µÿ@60ÿ7-'ÿN@6ÿN?5ÿXF;ÿ^MAÿaOCÿ^K?ÿYG<ÿZG=ÿ[H?ÿZH>ÿZL<ÿ[M=ÿ\N>ÿ_QAÿeWGÿoaQÿyk[ÿscÿ‘ƒsÿ‘ƒsÿ€pÿ…wgÿxjZÿj]Mÿ`RBÿZL<ÿRH8ÿRG8ÿSF7ÿQE6ÿRC5ÿQA4ÿQ@4ÿQ@4ÿN=3ÿL<1ÿG:/ÿE8-ÿ@7-ÿ=4+ÿ92)ÿ70'ÿ***ÿDDDÿïïïÿÿÿÿÿýýýÿþþþÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿýþúÿÿÿüÿûùöÿľÿuplÿC>;ÿ6-*ÿ5,)ÿ=0.ÿG:8ÿN?=ÿI98ÿB10ÿ=,+ÿQLIÿ941ÿ-(%ÿ4.+ÿ4.+ÿ+&#ÿ3.*ÿGA>ÿ š—ÿùóðÿÿÿüÿöñîÿÿûøÿÿÿüÿÿùöÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿüÿôøóÿöøôÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿûÿÿÿüÿüøõÿßØÕÿ¼¹ÿ¢š—ÿzqoÿZPNÿJA>ÿ_XUÿ{tqÿ š—ÿÆÀ½ÿéäáÿÿÿüÿÿÿüÿÿÿüÿýú÷ÿÿÿûÿþýúÿÿÿûÿÿÿüÿýÿûÿùû÷ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿýÿÿÿúûÿš’”ÿ7-)ÿ>40ÿJ>6ÿJ?6ÿQE:ÿQD:ÿPE9ÿPE:ÿOE;ÿPG=ÿOG>ÿPH?ÿRLCÿTNEÿZTKÿe_Vÿpjaÿtneÿpjaÿje[ÿ`ZPÿYSJÿQKBÿMG>ÿMG>ÿNH?ÿMG>ÿLF<ÿIB6ÿF@4ÿE>3ÿHA6ÿKE<ÿJD;ÿB=6ÿ<6/ÿ83/ÿ&!ÿ€|zÿÿúøÿÿûúÿÿÿþÿüøùÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿÿýÿËÆÄÿE;5ÿ9/)ÿI;1ÿQB9ÿZI=ÿ`OCÿdQEÿ_MAÿ[H>ÿ[I?ÿ\JAÿ[I@ÿXJ:ÿYK;ÿZM=ÿ^P@ÿcUEÿm_OÿxjZÿ€rbÿ‚rÿqÿ‹~nÿƒueÿvhXÿhZJÿ^P@ÿXK;ÿSI9ÿSH9ÿTG8ÿRF7ÿSD6ÿRC5ÿRA5ÿRA5ÿO>4ÿM=2ÿH;1ÿE8.ÿ>5+ÿ;2(ÿ60&ÿ5/%ÿ###ÿRRRÿñññÿÿÿÿÿþþþÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿõöòÿÿÿüÿÿÿüÿôòîÿÿÿüÿùóðÿ ›˜ÿRIGÿ?64ÿ1$"ÿ/" ÿ8)'ÿ>/-ÿB1/ÿC20ÿ0*'ÿ1,)ÿ82/ÿ60-ÿ*$!ÿ:51ÿ„~{ÿÓÍÊÿÿüùÿÿÿüÿÿûøÿüöóÿÿÿüÿÿÿüÿþùöÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ýùÿûÿýÿûÿýÿûÿýÿöúöÿöú÷ÿýÿüÿ÷ùöÿñòïÿÿÿýÿÿÿýÿÿÿýÿüúøÿôòðÿûøöÿÿÿýÿõøõÿúýúÿûÿûÿûþûÿþÿýÿþÿýÿþÿüÿòóðÿÿÿýÿþÿüÿýþûÿúûøÿøùöÿþÿüÿÿÿýÿ÷÷ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿÿÿûûÿ•ŒŒÿ;/*ÿ@4/ÿI:0ÿM>4ÿWF:ÿXG:ÿYG:ÿYH:ÿYH<ÿYI<ÿXI=ÿXI=ÿ^QBÿbTEÿk^Oÿzm^ÿˆ{lÿ€qÿˆ{lÿteÿl_PÿcVGÿYL=ÿSF6ÿRE5ÿQD5ÿOB3ÿM@1ÿOA1ÿL>.ÿI=.ÿMA2ÿQE8ÿPE8ÿG=3ÿ?5+ÿ7/(ÿ*"ÿ{uqÿÿÿûÿþù÷ÿÿÿýÿû÷öÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿÿþþÿàØ×ÿL?:ÿ>1,ÿE4)ÿWF<ÿ^I<ÿdOBÿhQDÿdM?ÿ_H<ÿ`I<ÿ`I>ÿ_H=ÿ]J6ÿ^J6ÿ^K7ÿ`M9ÿeQ=ÿmZFÿwdPÿkWÿŠvbÿŠvbÿ‡s_ÿ€lYÿuaNÿkWCÿcO;ÿ_K7ÿXJ8ÿXJ8ÿXH7ÿWG6ÿXE6ÿVD5ÿVB5ÿVB5ÿR?4ÿQ?4ÿK=3ÿG9/ÿ?5+ÿ:0'ÿ5.%ÿ3,#ÿ###ÿhhhÿúúúÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïõñÿûÿýÿúÿüÿñöòÿýÿýÿýÿýÿÿÿýÿÿÿýÿùöôÿÈÅÂÿ‰ƒÿVPNÿ=43ÿ2*(ÿ2)'ÿ4+*ÿ821ÿ.)'ÿ842ÿiecÿ®ª¨ÿäàÞÿúøõÿýüùÿÿÿýÿëìéÿ÷øõÿÿÿýÿýÿýÿöùõÿýÿýÿüÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿýÿóøõÿò÷óÿúÿüÿûÿûÿüÿüÿþÿýÿþÿýÿÿÿýÿÿÿýÿþýúÿüúøÿÿþüÿÿÿýÿÿÿýÿýúøÿýÿýÿýÿýÿýÿýÿýÿýÿøú÷ÿöùöÿÿÿýÿÿÿýÿÿÿýÿ÷øõÿÿÿýÿÿÿýÿüýúÿýþûÿÿÿýÿüüùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿÿÿûûÿ‘ˆˆÿ;/*ÿ?3.ÿF6,ÿM>4ÿSB5ÿUD7ÿXF9ÿZH;ÿZI<ÿYI<ÿWH<ÿWG;ÿZM=ÿ^QBÿj]Nÿ{n_ÿŒ~oÿƒtÿ‹~oÿƒvgÿobSÿfYIÿ[N?ÿTG8ÿTG8ÿTG8ÿSF6ÿPC4ÿPB2ÿL?/ÿJ=.ÿM@1ÿPD8ÿOC6ÿD:0ÿ<2(ÿ80)ÿ/' ÿ~wsÿÿÿûÿÿúøÿÿÿýÿúõôÿÿýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿÿþþÿíååÿOB=ÿ@3.ÿ@/%ÿZI?ÿ]H;ÿdOBÿgPCÿcL?ÿ^G;ÿ_H<ÿ_H=ÿ^G<ÿcP<ÿcO<ÿbN:ÿbN;ÿdQ=ÿkWDÿs`LÿzfSÿkWÿ€lXÿ~kWÿzgSÿs_LÿlXDÿgS@ÿeQ=ÿYK9ÿYK9ÿYI8ÿXH7ÿXF7ÿWE6ÿWC6ÿVC6ÿR@5ÿR@5ÿM>4ÿI:0ÿ?5+ÿ9/&ÿ3,#ÿ2+"ÿ)))ÿ|||ÿÿÿÿÿüüüÿÿÿÿÿýýýÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿýÿêðìÿøýúÿüÿýÿô÷ôÿ÷úöÿÿÿýÿö÷ôÿÿÿýÿþûøÿÿù÷ÿÿüúÿýôóÿäÜÚÿƼ»ÿ±§¦ÿÍÈÆÿíèæÿÿÿýÿÿýûÿýù÷ÿÿÿýÿÿÿýÿÿÿýÿøùöÿÿÿýÿýþûÿö÷ôÿýÿýÿýÿýÿòöòÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿþÿûÿþÿûÿþÿûÿþÿûÿþÿûÿþÿüÿþÿüÿþÿüÿýÿûþüÿüþüÿüþüÿýÿýÿþÿþÿÿÿþÿÿÿþÿùÿþÿùÿþÿùÿþÿøÿýÿùÿüÿùÿüÿúÿüÿúÿýÿýÿþÿýÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþýÿ¤œÿF:4ÿ6+$ÿF6*ÿRB6ÿVB3ÿ\H9ÿ`K;ÿ^I8ÿ^H8ÿ`K;ÿaL=ÿ`K;ÿcP=ÿgTAÿq^Jÿ~kXÿ‹xeÿ|iÿŒyeÿ†s`ÿtaNÿkXEÿaN;ÿ\I5ÿ\I6ÿ\I6ÿZG4ÿWD1ÿWD1ÿR?,ÿP=,ÿUB1ÿUE6ÿP@1ÿF9.ÿC6+ÿ90(ÿ5,$ÿŠ†ÿÿüøÿÿüúÿÿÿýÿÿþþÿøõöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿøô÷ÿüõõÿÿýýÿuhcÿ</*ÿF4)ÿUC9ÿ`J<ÿfPBÿjRCÿfN>ÿbI:ÿcJ;ÿeL>ÿeL=ÿjR<ÿhP;ÿgO9ÿfN9ÿiQ;ÿnV@ÿs[Eÿv^Iÿw_Jÿx`Jÿw_Iÿv^HÿrZDÿmU@ÿiQ;ÿfN8ÿ`O:ÿ_M8ÿ_K8ÿ_K8ÿ`J9ÿ_I8ÿ\F8ÿYC5ÿR=2ÿR>2ÿVF=ÿH8.ÿ<1)ÿA6-ÿ2*#ÿ2+#ÿ ÿ¼¼¼ÿõõõÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿþÿùÿþÿúÿþÿúÿþÿûÿþÿûÿþÿýÿþÿýÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿýÿþÿýÿþÿýÿþÿýÿþÿýÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿþÿûÿþÿûÿþÿûÿþÿûÿþÿûÿþÿüÿþÿüÿþÿýÿþÿýÿþÿýÿþÿýÿþÿþÿþÿüþüÿüüúÿûûùÿóûøÿôüùÿöýûÿøÿüÿúÿþÿûÿþÿüÿþÿüÿþÿýÿþÿýÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþþÿ¹²±ÿ9.'ÿC71ÿ>."ÿK;/ÿXD5ÿ^J;ÿbM=ÿ`K:ÿ^I8ÿ`K;ÿaL=ÿ`K<ÿcP=ÿfS@ÿnZGÿzfSÿ„q^ÿˆubÿ…q^ÿ€mYÿq]JÿiVCÿaN;ÿ]J7ÿ]J7ÿ]J7ÿ[H5ÿXE2ÿXE2ÿS?-ÿP>-ÿVD2ÿVF7ÿP@2ÿD7,ÿ?2'ÿ,#ÿ1' ÿ¨¢žÿÿÿûÿÿüúÿÿüúÿýúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿþÿÿÿüûÿÿþþÿ¦š”ÿ7*%ÿF4)ÿO=2ÿ^H:ÿdM?ÿgO?ÿdL<ÿcI;ÿeL=ÿfM?ÿeL>ÿiQ;ÿhP:ÿgO9ÿgO9ÿhP;ÿlT>ÿoWAÿrZDÿrZEÿrZDÿqYDÿpXBÿmU@ÿjR<ÿgO9ÿeM7ÿ`O:ÿ_M8ÿ_K8ÿ_L8ÿaK:ÿ`J9ÿ]G9ÿ[E6ÿZF:ÿT?4ÿSC:ÿH8/ÿ=2)ÿ9.&ÿ*"ÿ4,$ÿ444ÿÌÌÌÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿþÿùÿþÿúÿþÿúÿþÿûÿþÿûÿþÿýÿþÿýÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿýÿþÿýÿþÿýÿþÿýÿþÿýÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿùþþÿúÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿûþþÿúýýÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿýýþÿÿÿýÿ×ÔÒÿ6-%ÿI@8ÿ=. ÿI:,ÿ\H6ÿbN<ÿhQ>ÿdN:ÿbK7ÿdL8ÿeN:ÿeN:ÿgP;ÿiR=ÿnVBÿv^Jÿ~fRÿ€iTÿ~gRÿzcNÿpYDÿkS?ÿeN9ÿbK6ÿcL7ÿcK7ÿ`I4ÿ]F1ÿ^F4ÿX@.ÿT?.ÿ[E4ÿYH9ÿR@2ÿB4*ÿ:,"ÿ,#ÿ8/(ÿÄ¿½ÿÿÿýÿýüüÿúùùÿùúüÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöôøÿÿþÿÿÿúûÿÿüýÿÛÑËÿ:0*ÿ@0$ÿI9-ÿ]H8ÿaL<ÿeM;ÿcL:ÿeL:ÿhO>ÿhP>ÿfM;ÿlR=ÿlR<ÿlQ<ÿlQ<ÿlR=ÿnS>ÿoT?ÿpU@ÿpU@ÿoU@ÿnT?ÿmS=ÿlQ<ÿjP;ÿiO:ÿiN9ÿdO8ÿcN7ÿcL7ÿdM7ÿeM:ÿeL9ÿaI:ÿ_G8ÿ^H<ÿ]H;ÿWF=ÿC2(ÿ:/'ÿ<0)ÿ*!ÿ/' ÿ^^^ÿãããÿÿÿÿÿÿÿÿÿüüüÿüüüÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿúþýÿûþþÿüÿþÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿúÿÿÿúÿÿÿûÿÿÿúÿþÿúþþÿùýýÿùýüÿùüûÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿýüþÿÿýûÿ÷óñÿRJBÿ<4+ÿF7)ÿL=0ÿ\I6ÿdP>ÿkTAÿgQ=ÿdM9ÿeM9ÿfO<ÿfO<ÿhQ<ÿhQ<ÿjS>ÿoWCÿs\Gÿu^Iÿt\HÿqZEÿkT?ÿhQ<ÿfO:ÿeM9ÿeN9ÿdM8ÿbK6ÿ_H3ÿ`H6ÿZC0ÿXB1ÿ]G6ÿZH:ÿP>0ÿ>0&ÿ5'ÿ2*#ÿRJCÿàÜÙÿÿÿüÿûúúÿÿÿÿÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùøûÿÿþÿÿûö÷ÿúööÿÿõîÿbXRÿ;+ÿI9-ÿ]H8ÿaL<ÿfN=ÿeN<ÿhP>ÿlSAÿkR@ÿgN<ÿoT?ÿoU?ÿoU@ÿpU@ÿpU@ÿoU@ÿoU?ÿoT?ÿpU@ÿoT?ÿnT>ÿmR=ÿlR=ÿlR=ÿmR=ÿmS=ÿeP9ÿdO8ÿdN8ÿeN9ÿgN<ÿgN;ÿcK<ÿaI9ÿ[E9ÿdOCÿZI?ÿ;* ÿ9-%ÿC7/ÿ-$ÿ,$ÿšššÿôôôÿÿÿÿÿþþþÿýýýÿýýýÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿüþþÿúüüÿøûûÿùûûÿùüüÿúýüÿüüüÿûûûÿúúúÿúúúÿûûûÿýýýÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿõöóÿÿÿýÿ„uÿ(#ÿI=-ÿG;+ÿXF2ÿbP<ÿmWAÿkU?ÿhQ:ÿhP9ÿjR;ÿjR;ÿkR=ÿkR=ÿkR>ÿmT?ÿoVAÿoVBÿoVAÿnT@ÿkR=ÿjQ<ÿiP;ÿhO;ÿhO;ÿgN:ÿfM8ÿdK6ÿcI8ÿ_F4ÿ]F6ÿ`I:ÿYF:ÿM:-ÿ9,#ÿ1$ÿ)!ÿxpmÿûøùÿþüüÿõ÷ûÿýþÿÿúþÿÿ÷ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûþÿÿûþÿÿûûûÿüüüÿÿÿúÿ¢œ•ÿ@3&ÿ?2%ÿXF5ÿ_M<ÿhS?ÿjT@ÿlUAÿnWCÿlUAÿhQ=ÿoT@ÿpUAÿqVBÿqVCÿqVCÿqVBÿpUAÿoT@ÿqVBÿpUAÿoTAÿoT@ÿnS?ÿoT@ÿoT@ÿoTAÿkS:ÿiR8ÿiP8ÿjP9ÿkP<ÿjP;ÿfL<ÿdJ:ÿbK?ÿ^G:ÿN<3ÿ>,#ÿ@3,ÿ8,%ÿ&ÿD;4ÿÕÕÕÿûûûÿÿÿÿÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿôõñÿÿÿýÿ½¸¯ÿ72(ÿB6&ÿ=0!ÿR@+ÿ_M9ÿnXAÿnXBÿkT=ÿjS<ÿkT=ÿkT=ÿlS?ÿmT?ÿnT@ÿnU@ÿnU@ÿnU@ÿmT?ÿmT?ÿlS>ÿlR>ÿkR=ÿjQ<ÿiP<ÿiO;ÿhO:ÿhN:ÿdK9ÿcJ9ÿbK;ÿcL<ÿVC7ÿG4(ÿ5( ÿ1#ÿ*#ÿª¢Ÿÿÿÿÿÿÿÿÿÿ÷øüÿýþÿÿøüÿÿúþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûþÿÿ÷úýÿýýýÿÿÿÿÿÿÿúÿÜÖÏÿ`SFÿ2%ÿP>,ÿ\J9ÿkVBÿoZFÿqZFÿq[FÿpYEÿmVBÿnS?ÿoT@ÿpUAÿqVBÿrVCÿrWCÿrWCÿrVCÿsXDÿsXDÿrWDÿrWCÿqVBÿpUAÿpUAÿoT@ÿnV=ÿlT;ÿkR;ÿkR;ÿlQ=ÿkP<ÿfL<ÿdJ:ÿjSGÿN7*ÿ<*!ÿE3*ÿD81ÿ$ÿ) ÿ‚ysÿúúúÿüüüÿùùùÿýýýÿÿÿÿÿþþþÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿþþþÿþÿÿÿþÿÿÿýÿÿÿúüüÿøúúÿöøøÿúö÷ÿüøùÿþûûÿÿýþÿÿÿÿÿÿþÿÿþþþÿýýýÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿøÿÿÿùýùÿýÿýÿëèÞÿombÿ9/ÿ7-ÿI9#ÿZI4ÿmX@ÿp[CÿnX?ÿmV=ÿnV>ÿmV=ÿoUAÿpVBÿqWCÿrXDÿqWCÿpVBÿpVBÿpVBÿoUAÿoUAÿnT@ÿlR>ÿjP<ÿjP<ÿkQ=ÿkQ=ÿeK;ÿgM=ÿgOAÿdM?ÿR?4ÿA.#ÿ2%ÿ1$ÿ[TSÿâÜÚÿÿþÿÿÿþÿÿúþÿÿøüÿÿðõýÿ÷ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùþÿÿðöùÿûýýÿýÿÿÿþúóÿýùòÿ¦›Žÿ<1#ÿB1ÿTD1ÿjVAÿq^Iÿs]Hÿs^Hÿs^Hÿs]HÿpUCÿqVDÿrWEÿsXFÿuZHÿw\Jÿx]Kÿy^Lÿx]Kÿy^Kÿy^Kÿx]Kÿv[IÿtYFÿrWDÿpUCÿrY>ÿpW=ÿoU<ÿnT;ÿnR=ÿlQ;ÿgL;ÿeI9ÿ`H<ÿL5(ÿ<) ÿ?-$ÿ;.'ÿ&ÿPGAÿÓÊÅÿÿÿÿÿýýýÿýýýÿýýýÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿùûúÿðòòÿäææÿÙÜÛÿÒÔÔÿÕÑÒÿÜØÙÿçääÿóïðÿúøøÿþüýÿþþþÿýýýÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõýüÿøÿÿÿýÿýÿúþúÿÿÿ÷ÿ©§œÿ6,ÿ;1 ÿE4ÿWF1ÿlX?ÿq\DÿpYAÿnX?ÿoW?ÿnW>ÿoUAÿrXDÿtZFÿu[GÿtZFÿrXDÿrXDÿrXDÿqWCÿpVBÿoUAÿmS?ÿkQ=ÿjP<ÿlR>ÿmS?ÿeK;ÿiO?ÿjRDÿeN?ÿP=2ÿ>+ ÿ0#ÿ2%ÿ›”’ÿÿÿýÿôóöÿõôöÿúþÿÿúþÿÿíóûÿ÷ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿ÷ýÿÿýÿÿÿýÿÿÿþùòÿÿÿúÿíâÕÿYN@ÿ7'ÿN>+ÿiU@ÿr_Jÿt_Iÿt_Iÿv`KÿwbLÿuZHÿuZHÿv[Iÿx]Kÿz_Mÿ}bPÿ€eRÿfTÿdQÿdRÿ€eRÿdRÿ}bOÿy^LÿuZHÿsXFÿt[@ÿrY>ÿpV=ÿoU<ÿnS>ÿlQ;ÿgL;ÿdI8ÿL4(ÿU=0ÿG5,ÿ2 ÿ, ÿ8+$ÿvpÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿýýýÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷õõÿÿÿÿÿûûûÿùûûÿýÿÿÿöùùÿüÿÿÿýÿÿÿîñðÿÎÎÎÿÿiefÿ@;<ÿ3,-ÿ5-/ÿ&.*ÿ ($ÿ(1-ÿLUQÿ‰„ÿ³½¸ÿàéåÿùÿýÿüÿýÿò÷óÿÿÿýÿÿÿýÿøðïÿÿÿýÿÿþýÿÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿüÿÿÿýÿÿùó÷ÿÿþþÿçààÿi_Yÿ5+%ÿ:*ÿJ:.ÿcK;ÿkSCÿsS?ÿtT@ÿ}XCÿ\Gÿt^FÿwaIÿyaJÿx`Iÿ}bKÿ€eNÿcMÿ|^Gÿ}_Hÿ~`Iÿz_HÿvZCÿpX@ÿnV>ÿhS;ÿdN6ÿvICÿTNÿnJCÿb>8ÿN92ÿ0ÿ!ÿLE?ÿýþúÿýþúÿûþýÿüþþÿþþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø÷ôÿÿÿýÿÿÿýÿùú÷ÿýÿýÿýÿýÿîïêÿËÍÈÿ<5-ÿ$ÿ[H;ÿ{h[ÿuUDÿzZIÿgSÿƒZGÿydMÿydNÿ{fMÿ{gNÿ~iMÿ‚nRÿ‰tVÿŽy[ÿwYÿ‘{]ÿ’z^ÿŽv[ÿ‹qYÿŠoXÿ…jTÿdNÿ€ZDÿ~XBÿxT@ÿyUAÿz\JÿyZHÿ`G9ÿJ1#ÿ>,"ÿ>,!ÿ8-%ÿ8-%ÿÿ`YTÿàÜØÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿõùøÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿüÿÿÿûÿþÿÿÿÿÿÿÿÿÿÿÿÿÿù÷øÿùÿÿÿùÿÿÿúÿÿÿúÿÿÿûÿÿÿùþýÿùüüÿûþýÿÿÿÿÿûûûÿø÷÷ÿÿþþÿÿþÿÿýúûÿýùùÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿýýýÿùûúÿýÿÿÿüÿÿÿîòñÿª­¬ÿjmlÿ(((ÿÿ% !ÿ501ÿ2*,ÿ%ÿ (#ÿ-51ÿ1:6ÿ'"ÿ
+ÿÿNVRÿŠ“ŽÿäéåÿüÿýÿøöôÿóòïÿÿÿýÿÿÿýÿùîíÿÿüûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿùóúÿúôùÿÿûÿÿÿýüÿÿþþÿÊÀºÿ=3-ÿE5)ÿ:*ÿK3#ÿhP@ÿ€aMÿzZFÿ{VAÿ‚]HÿydLÿ~iQÿ„lUÿ†nWÿŽs\ÿ’w`ÿ’u^ÿoYÿoXÿ†iRÿ}bKÿw\EÿqZBÿpXAÿoYAÿq[CÿpC=ÿ“f`ÿlIBÿM)#ÿF1*ÿ0ÿG@:ÿÁ¹³ÿýþúÿýþúÿûþýÿüþþÿþþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿúûøÿúþûÿýÿýÿÿÿûÿïðìÿƒ|tÿJC;ÿ>+ÿhUIÿyXGÿpP?ÿ”lXÿŒcOÿ{fPÿ}hQÿ~jQÿlTÿ‡rVÿ{_ÿ™…gÿ Œmÿ¥Žqÿ¨’tÿ©‘vÿ¤Œpÿž„lÿ˜~fÿu_ÿˆlWÿŒgQÿ‡aKÿ[GÿyUAÿjK9ÿ\=+ÿL4%ÿJ1#ÿH6+ÿ#ÿ;0(ÿ%ÿ71+ÿľ¸ÿÿÿüÿÿþúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù÷øÿõõõÿÿÿÿÿüÿÿÿüÿÿÿòø÷ÿìóòÿõûúÿøÿþÿüÿÿÿöúùÿòòòÿòòòÿýûüÿÿÿÿÿùÿÿÿòùøÿìòñÿñ÷öÿúÿþÿûÿÿÿýÿÿÿýÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿùö÷ÿÿþÿÿÿþÿÿøóôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüûûÿÿÿÿÿ÷÷÷ÿÿÿÿÿüÿÿÿñõõÿËÐÏÿgmlÿ&+*ÿ$#ÿ!!ÿ$&&ÿ.,,ÿ100ÿ834ÿ<78ÿ(.,ÿ(.,ÿ)0.ÿ+2/ÿ%-+ÿ&#ÿ"ÿ# ÿCIGÿ¸¾¼ÿôöõÿýÿþÿüùøÿóððÿÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿû÷ýÿÿüÿÿÿþÿÿòîîÿÿÿþÿÿÿúÿ‰ƒÿ3'ÿ7*ÿJ6'ÿ[G8ÿnS@ÿsXFÿ~^Jÿ…eQÿ‰kUÿ‘s]ÿ}gÿ¥…oÿ±xÿ·”~ÿ¸’}ÿ³xÿ­‡rÿŸydÿ‘nXÿŒiSÿƒcMÿ|\Fÿy[Eÿ~`Jÿ‚^WÿvRKÿcGAÿS70ÿ(ÿ,ÿƒyÿüøòÿýþûÿýþûÿüþþÿüþþÿþþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿýÿÿÿýÿûüùÿ÷ú÷ÿûþüÿÿÿüÿÿÿüÿøõíÿ[XPÿ=/#ÿRE9ÿkSBÿ~fUÿz[Gÿz[Gÿ‡gRÿˆhTÿ‹lUÿqZÿ›{aÿ¨‰oÿ¸˜|ÿ¢†ÿ̬ÿÑ°”ÿÒ¯•ÿ˨ÿ‡ÿ·’|ÿª„pÿžxdÿnZÿ„cOÿ|^Kÿ}_LÿqWFÿ\B1ÿF2$ÿB. ÿ7)ÿB4)ÿÿ90)ÿ¨£Ÿÿþúõÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûûÿÿþþÿÿÿÿÿÿÿÿÿ÷ûúÿöúùÿùÿÿÿùÿÿÿùÿÿÿøÿþÿòöõÿÚÞÞÿ±±±ÿƒƒƒÿnllÿljjÿgnmÿu|{ÿ“š™ÿºÀ¿ÿÜáàÿðôôÿýÿÿÿýÿÿÿúúúÿÿÿÿÿüüüÿóóóÿÿÿÿÿøööÿðîîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöôôÿ÷÷÷ÿÿÿÿÿíñðÿ¥©¨ÿY_^ÿ ÿ"!ÿ"'&ÿ021ÿ<>=ÿCAAÿ@>?ÿB=>ÿD@Aÿ@FCÿ;A>ÿ5<:ÿ5<:ÿ1:8ÿ*20ÿ'$ÿÿ ÿ'.+ÿwyxÿêìêÿÿÿþÿùööÿÿúúÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöòøÿÿýÿÿÿþÿÿÿýÿÿýùøÿúööÿÿÿúÿúôîÿpcYÿK?4ÿ9%ÿD1!ÿjN<ÿ}bOÿ‡gSÿˆiUÿr\ÿ›~gÿ¬Œvÿºš„ÿ˨’ÿÖ²ÿÙ³žÿÔ®™ÿÇ¡Œÿ¶{ÿ¥‚lÿŸ|fÿ’r\ÿ‚bLÿy[Eÿ{^Gÿ€\Uÿa=7ÿO3,ÿA%ÿ1"ÿpiÿàÜÖÿÿÿúÿþÿûÿþÿûÿüþþÿüþþÿþýÿÿþþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüùÿÿýúÿÿÿýÿÿÿýÿûþûÿöù÷ÿúû÷ÿÿÿüÿÿÿùÿäàÙÿcUIÿ=0$ÿrZJÿnVFÿ~^Kÿ„dQÿ…eQÿ‡gRÿ‹kTÿ’s\ÿŸ€fÿ°‘wÿã‡ÿϯ“ÿß¾¢ÿäçÿæĪÿལÿÕ±šÿÇ£Œÿ·‘}ÿ©ƒoÿ”s_ÿlXÿ‚cPÿvXEÿ`F5ÿK1!ÿ7"ÿ2ÿ% ÿE7,ÿ2*#ÿ•…ÿÿÿûÿÿýùÿõóðÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿÿÿÿÿÿÿÿúúúÿúþýÿüÿÿÿöüûÿäêéÿºÁÀÿpwvÿ(,+ÿÿÿ$$$ÿÿÿÿÿÿÿ!&%ÿMRQÿ’‘ÿÂÅÄÿÿÿÿÿòòòÿÿÿÿÿÿÿÿÿüúúÿÿÿÿÿÿÿÿÿøõöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿýÿÿÿôööÿ•š™ÿ8=<ÿÿ#+*ÿ.65ÿ&.-ÿ&++ÿ/43ÿ=??ÿACCÿCCCÿBBBÿGIJÿFHIÿ>BCÿ388ÿ'..ÿ#++ÿ",+ÿ$.-ÿ!++ÿÿÿbiiÿæéêÿüÿÿÿîíïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿúýôÿòôìÿÿÿùÿÿÿùÿðïçÿÿÿùÿëäÝÿxqÿ*ÿ)ÿZC?ÿs[Wÿ|`\ÿdaÿ”r]ÿ¡jÿ´{ÿÄ ŒÿÙ±ÿ循ÿëÀ­ÿ罪ÿØ­šÿÅ›‡ÿ±‰uÿ¦~kÿ™t`ÿŠfQÿ_Jÿ_JÿjTNÿePIÿ4%ÿ&ÿvohÿäÞ×ÿÿÿûÿÿÿûÿüÿüÿüÿüÿüÿþÿüþþÿþþÿÿþýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿþûÿÿÿýÿÿÿþÿýÿþÿüÿýÿùýúÿüÿýÿþÿúÿýÿùÿêåÚÿlg\ÿ7*ÿaUEÿr`Nÿƒr_ÿ‡_Mÿ‰aOÿfQÿ”mYÿ¡zbÿ±ŠsÿÃœ‚ÿΧÿ߶œÿå½£ÿ龧ÿä¹¢ÿÛ®›ÿΡŽÿ¾ÿ°‚qÿ†n\ÿ‡o^ÿzdSÿ^H7ÿ@. ÿ9&ÿ9+ ÿ@2&ÿ( ÿ-$ÿ›˜‘ÿðìæÿÿÿüÿÿÿüÿîïìÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúøøÿõõõÿÿÿÿÿüÿÿÿçëêÿš¡ ÿZ`_ÿ ÿÿ!%$ÿ*..ÿ***ÿ###ÿ.,,ÿA??ÿ!'&ÿ'-,ÿ,21ÿ&,+ÿÿÿ&))ÿ9<<ÿqtsÿÍÐÏÿþþþÿúúúÿÿÿÿÿþþþÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿÿÿÿÿýÿÿÿ–˜˜ÿ176ÿ ÿÿ3;:ÿ!)(ÿ+21ÿ;@?ÿDJIÿHJIÿHJJÿSSSÿ___ÿJMNÿHKLÿEJJÿHLMÿJQQÿEMMÿ1;:ÿ''ÿ&&ÿ#,,ÿ$++ÿ ÿadeÿðóôÿÿÿÿÿúúûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿñôëÿÿÿùÿýÿ÷ÿýÿøÿÿÿùÿùøñÿûúòÿÿÿùÿß×Ñÿ“ƒ~ÿE5/ÿ/ÿG0,ÿqTQÿ…heÿmXÿ™wcÿ©…qÿ·’~ÿÉ¡ÿÕ­™ÿÚ°ÿ×­šÿÍ¢ÿ½“€ÿ¨€lÿ™q]ÿŽjVÿ‹gRÿ†dOÿƒaLÿ`KDÿ<' ÿ:+$ÿ…voÿÙÒÌÿÿÿúÿÿÿûÿôõðÿüÿýÿüÿýÿýÿÿÿüÿþÿþýÿÿþýþÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿþüÿúûùÿýýûÿýÿþÿýÿþÿýÿýÿýÿýÿùûõÿÿÿûÿÿþóÿåàÕÿ‡zkÿJ>.ÿn]Jÿ]L9ÿƒ\Jÿ…^Lÿ‰bNÿŽgSÿ—pYÿ£|dÿ°ˆnÿ¸‘wÿÄœ‚ÿË¢ˆÿÐ¥ŽÿÍ¢‹ÿÇš‡ÿ¾‘}ÿ±ƒrÿ¥wfÿ„l[ÿu]Lÿ^H8ÿL6&ÿ?-ÿ;)ÿ4&ÿ1#ÿULCÿœ”‹ÿ÷óíÿÿÿúÿööòÿüüøÿÿÿýÿûüùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüýÿÿþÿÿÿÿÿÿÿÿÿÿÃÇÇÿkonÿ)0/ÿÿ)/.ÿ &%ÿ"&&ÿ043ÿ===ÿ777ÿ.,-ÿ)''ÿ5;:ÿ065ÿ-21ÿ,11ÿ).-ÿ %$ÿÿÿÿ688ÿ–––ÿçççÿóóóÿöööÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõôóÿÿÿþÿ¸º¸ÿ<=;ÿÿ,2/ÿ(1.ÿ&#ÿ7A=ÿ.85ÿ,52ÿ6>;ÿEKHÿNTQÿUXVÿX\ZÿTSUÿ[Z\ÿWZ[ÿJLNÿ7=>ÿ178ÿ-78ÿ-77ÿ/:;ÿÿÿÿ&'ÿŠ‘’ÿðõöÿõúûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúüÿÿðòõÿüÿÿÿüÿÿÿðôóÿúþþÿþÿüÿô÷óÿððèÿÿÿúÿüöìÿ š‘ÿNB7ÿ9,"ÿVF:ÿn^Rÿ~eRÿ…kYÿŽr`ÿ”yfÿ pÿ©Šxÿ¬‹yÿ©‡vÿ£‚pÿŸ~lÿ‘r`ÿƒdRÿ}bPÿ€eRÿx^LÿkQ?ÿC;5ÿ5-'ÿ€|vÿîêäÿÿÿûÿÿÿûÿýÿüÿýÿüÿüÿþÿüÿþÿýÿÿÿýÿþÿÿýþÿÿýýÿÿüþÿÿüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýüÿÿýûÿüûúÿúù÷ÿùûúÿýÿÿÿüÿÿÿûÿÿÿøüøÿýÿýÿùüóÿðóëÿÿÿòÿ¨§™ÿD@/ÿieUÿ}[Lÿ]NÿaNÿ„cQÿˆgQÿlVÿ“r[ÿ˜w_ÿž|dÿ¤‚jÿ©…pÿ§ƒnÿ¤~mÿŸxgÿ–n`ÿŒeVÿpbTÿQB5ÿ8+ÿ6)ÿ/%ÿ(ÿ/) ÿF?6ÿ¬©£ÿÿÿúÿÿÿüÿþÿûÿýÿýÿô÷ôÿûÿþÿ÷üúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù÷øÿÿÿÿÿñññÿ¬¬¬ÿKONÿÿ ÿ&,+ÿ &%ÿ'.-ÿ265ÿ598ÿ777ÿ888ÿ?=>ÿECDÿ@FEÿ5;:ÿ.32ÿ054ÿ276ÿ.32ÿ',+ÿ#'&ÿ&*)ÿ
+ÿ ÿgkjÿÞááÿüÿÿÿýÿÿÿûýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ×ÖÕÿRTRÿ " ÿ,20ÿ!'%ÿ%.+ÿ5>;ÿ.84ÿ5?;ÿBJGÿJROÿGMJÿ=B@ÿ8<9ÿ8<:ÿ>=?ÿBADÿ@BDÿ<?@ÿ:@Aÿ>DEÿ9CCÿ3==ÿ"--ÿ/::ÿ%/0ÿ!"ÿ ÿ-45ÿ³¸¹ÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿïòóÿüÿÿÿüÿÿÿòöõÿþÿüÿþÿüÿÿÿúÿùùñÿÿýôÿÿþôÿÌÀµÿmaVÿD4(ÿO>3ÿx^Lÿ{bOÿcQÿdQÿ†gVÿ‹lZÿkZÿˆgUÿ…cRÿkZÿ‰jXÿ€aOÿ|`Nÿ~bPÿlS@ÿT;(ÿYQLÿÆ¿¹ÿÿÿúÿÿÿúÿÿÿûÿûý÷ÿñöñÿýÿüÿüÿþÿüÿþÿýÿÿÿýÿþÿÿýþÿÿýýÿÿüþÿÿûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüø÷ÿÿÿýÿÿÿþÿÿÿþÿüþýÿýÿÿÿûÿþÿõùùÿýÿýÿôøôÿÿÿùÿÿÿùÿüúíÿüûíÿÜØÇÿyueÿ~\Mÿ€^Oÿ‚aOÿ‚aOÿƒbLÿƒbMÿ…dMÿ‡fOÿ‰fOÿŽlUÿ“oZÿ‘mXÿiXÿfUÿ†^PÿWHÿF8*ÿ5&ÿ4'ÿ=0$ÿ2'ÿ<2'ÿ†}ÿñëâÿÿÿúÿÿýöÿÿÿüÿøùôÿûþûÿýÿýÿñõóÿûÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðîïÿŸŸŸÿ777ÿ
+ÿ$('ÿ298ÿ$+*ÿ*10ÿ398ÿ;?>ÿ=A@ÿCCCÿIIIÿKJJÿIGHÿ@FEÿ?DCÿ?DCÿ?DDÿ9>=ÿ.32ÿ(,,ÿ',+ÿ%)(ÿ&*)ÿÿ ÿILKÿ»¾½ÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿýÿrnlÿ<;8ÿ.-*ÿ # ÿ-1-ÿ"*&ÿ/73ÿ095ÿ4=9ÿ8A=ÿ9B>ÿ9@<ÿ7>:ÿ:>;ÿ;@<ÿ=<<ÿ<;;ÿ899ÿ788ÿ499ÿ6;:ÿ5>=ÿ6@>ÿ4>=ÿ'10ÿ+43ÿ"!ÿÿÿDIHÿîòòÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿûûûÿúúúÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿûÿýÿûÿýÿüÿûÿþÿüÿÿþùÿÿþùÿÿÿúÿ÷ñëÿ·­§ÿoe_ÿ@7(ÿ?7(ÿK@1ÿ^SDÿoaSÿqcUÿraTÿraTÿ~m`ÿraSÿk]Nÿm_QÿcYJÿeZLÿ…|mÿ°¨™ÿþÿûÿþÿûÿþÿüÿÿÿüÿýÿýÿýÿþÿýÿþÿýÿþÿüÿþÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿüÿýÿüÿÿÿùÿÿÿùÿÿÿöÿÿÿöÿÏ¿²ÿ¦–Šÿzj[ÿgWIÿrbPÿ|l[ÿxgSÿk[GÿxfRÿsbNÿt`OÿzgVÿj\ÿs]OÿWA5ÿ@)ÿ1*!ÿ)"ÿ& ÿC=5ÿ…zÿÒÍÆÿûùóÿÿÿûÿÿÿüÿÿÿüÿþÿþÿþÿþÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿûûûÿýýýÿÿÿÿÿýüüÿ‹‹ÿ///ÿÿ!%%ÿ$((ÿ'.-ÿ-43ÿ/65ÿ298ÿ:>=ÿ@DDÿJJJÿNNNÿRPQÿSRRÿHLLÿEIHÿ@DCÿ;??ÿ7<;ÿ276ÿ-21ÿ)/.ÿ &%ÿ-32ÿ&%ÿÿ ÿ:A@ÿ»ÁÀÿùÿÿÿþþþÿüüüÿýýýÿÿÿÿÿÿÿÿÿòòòÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÏËÉÿVRPÿ10-ÿ)(&ÿ!ÿ-1-ÿ&.*ÿ184ÿ/84ÿ1;7ÿ4=8ÿ4=9ÿ4;7ÿ4;7ÿ7<9ÿ:?;ÿ=<<ÿ<;;ÿ8::ÿ799ÿ398ÿ4:9ÿ2;:ÿ3<;ÿ0:8ÿ%/-ÿ/86ÿ *(ÿ"!ÿÿ(-,ÿ¡¦¥ÿÿÿÿÿþþþÿûûûÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿûÿýÿûÿýÿüÿúÿþÿüÿÿþùÿûùôÿÿÿúÿÿÿúÿÿÿúÿûñëÿÌôÿ¥œÿtiZÿLA3ÿ;,ÿ8*ÿE5'ÿSB4ÿH7)ÿQ@2ÿl^Oÿ•‡yÿ³¨™ÿÏĵÿñéÚÿÿÿóÿþÿûÿþÿûÿþÿüÿÿÿüÿýÿýÿýÿþÿýÿþÿýÿþÿüÿþÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿüÿýÿüÿÿÿùÿÿÿùÿÿÿöÿÿÿöÿÿÿôÿÿôçÿæÖÇÿ»«œÿ’‚pÿzjXÿwfRÿ{kWÿ{jVÿ~lYÿ}jYÿq^Mÿ^H:ÿJ4&ÿ=&ÿ8!ÿ@90ÿjcZÿ¡›’ÿÒÌÄÿ÷óìÿÿÿúÿÿÿûÿýûöÿÿÿüÿÿÿüÿþÿþÿþÿþÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿõõõÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿ“‘’ÿJHIÿÿÿ&*)ÿ+/.ÿ065ÿ5<;ÿ9?>ÿ;BAÿAEEÿGKJÿOOOÿSSSÿWVVÿYWWÿW[[ÿRWVÿKPOÿDIHÿ=BAÿ6;:ÿ/54ÿ+0/ÿ,21ÿÿ"!ÿ(.-ÿÿ ÿIPOÿËÑÐÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿúúúÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿüüüÿÿÿÿÿþþþÿýýýÿüüüÿ’ˆ†ÿB96ÿ60-ÿ2,)ÿ%%!ÿ541ÿ04/ÿ6:5ÿ294ÿ3:5ÿ4;6ÿ4;6ÿ5:5ÿ6;6ÿ9<8ÿ;?:ÿ::7ÿ997ÿ896ÿ674ÿ173ÿ052ÿ-51ÿ-41ÿ3;7ÿ(/,ÿ8=9ÿ,1-ÿ$%"ÿÿÿZXVÿñññÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿùùùÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿÿÿÿÿøøøÿøôóÿüø÷ÿÿýýÿÿþþÿÿÿùÿûþõÿìíäÿÞß×ÿÔÒÊÿÈŽÿÁ¼´ÿ½¸±ÿÒÎÆÿØÓËÿãáÙÿõóêÿýþõÿÿÿ÷ÿýÿ÷ÿÿÿùÿüÿþÿüÿþÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿýÿÿÿýÿÿÿýÿþÿýÿþÿýÿûÿýÿûÿýÿùÿýÿùÿûùòÿÿÿúÿÿÿùÿÿþõÿìëÞÿÒÑÅÿ¾¼®ÿ³±£ÿŽ‹}ÿƒ€rÿoj^ÿZUIÿWPHÿqjbÿ —’ÿļ¶ÿÒÏËÿêèãÿÿýùÿÿÿüÿÿÿýÿÿÿýÿÿÿþÿýþüÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿöööÿÅÅÅÿA?@ÿ#!!ÿÿ'''ÿ*..ÿ.21ÿ4:9ÿ8?>ÿ>EDÿ?EDÿBFEÿCGGÿIIIÿKKKÿOMMÿPNOÿORQÿLONÿHLKÿDHHÿBGFÿ?DCÿ:@?ÿ7=<ÿ187ÿ#*)ÿ#,*ÿ$#ÿ!*)ÿ ÿ
+ÿ`jiÿâââÿÿÿÿÿþþþÿüüüÿúúúÿÿÿÿÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿþþþÿüüüÿÿÿÿÿûûûÿÿÿÿÿåååÿ_VSÿ8/-ÿ>85ÿ;52ÿ+*&ÿ651ÿ150ÿ04/ÿ183ÿ394ÿ4;6ÿ6<7ÿ7<7ÿ8=8ÿ:=9ÿ:>9ÿ996ÿ996ÿ785ÿ674ÿ052ÿ.3/ÿ*1-ÿ(0,ÿ/62ÿ%,(ÿ596ÿ*.+ÿ!"ÿ&&$ÿ%#!ÿ531ÿÆÆÆÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿüÿÿÿùüüÿýýýÿÿÿÿÿÿÿþÿÿÿþÿþ÷÷ÿúóóÿ÷úñÿùüóÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿøÿþúòÿôðèÿùôìÿûùñÿÿýõÿÿÿùÿÿÿùÿÿÿùÿüÿöÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿýÿÿÿýÿÿÿýÿþÿýÿþÿýÿûÿýÿûÿýÿùÿýÿùÿÿÿúÿÿþøÿúùðÿÿþõÿÿÿöÿÿÿöÿÿÿõÿýûíÿÿÿòÿÿÿôÿÿÿöÿÿÿöÿÿÿùÿÿÿùÿÿþùÿÿûõÿÿÿüÿÿÿüÿÿÿüÿÿýùÿûúöÿÿþûÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿùùùÿÿÿÿÿóóóÿÿÿÿÿðððÿ___ÿ-+,ÿ$"#ÿ(((ÿ000ÿ*..ÿ/32ÿ7>=ÿ;A@ÿ?FEÿ>DCÿ>BAÿ<@?ÿ>>>ÿ>>>ÿ@??ÿA?@ÿ;>>ÿ:==ÿ9==ÿ;?>ÿ=AAÿ>CBÿ=CBÿ<BAÿ)0/ÿ2:8ÿ-54ÿ ÿ!+)ÿ"+)ÿÿ#!ÿŽŽŽÿÿÿÿÿóóóÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿûûûÿÿÿÿÿùùùÿÿÿÿÿÁÁÁÿE63ÿ<-*ÿH<9ÿE:7ÿ4.*ÿ93/ÿ33.ÿ.-(ÿ/2-ÿ14.ÿ371ÿ6:4ÿ:;6ÿ9;6ÿ8:4ÿ683ÿ8:3ÿ7:3ÿ792ÿ571ÿ16/ÿ.3,ÿ,1*ÿ*0)ÿ)+$ÿ%'!ÿ64.ÿ/-'ÿ)"ÿ3-'ÿ7-(ÿ2(#ÿ‰‰‰ÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿüÿÿÿöúúÿ÷÷ùÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿüÿÿÿüÿÿÿüüüÿõõõÿ÷õõÿüúúÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿýþÿüüüÿÿÿÿÿüÿÿÿøüûÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿýÿÿÿýÿÿÿûÿÿÿûÿýÿÿÿýÿÿÿüþüÿùûùÿúûöÿüýøÿÿÿúÿÿÿúÿÿÿùÿûûôÿ÷öñÿø÷òÿÿüûÿÿÿþÿÿþÿÿÿýþÿóóóÿöööÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿõõõÿÿÿÿÿøøøÿÿÿÿÿŸŸŸÿ)))ÿ(&&ÿ$""ÿ***ÿ000ÿ+//ÿ488ÿ>EDÿ?FEÿ<CBÿ:A@ÿ;?>ÿ9=<ÿ;;;ÿ<<<ÿ><<ÿ><=ÿ9<<ÿ7::ÿ698ÿ598ÿ5:9ÿ5:9ÿ298ÿ076ÿ%-,ÿ)21ÿ$.-ÿ-75ÿ(&ÿ ÿ!ÿÿ===ÿÍÍÍÿýýýÿÿÿÿÿÿÿÿÿìììÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿûûûÿÿÿÿÿúúúÿÿÿÿÿ–––ÿ<-*ÿB30ÿK@<ÿK@<ÿ?95ÿA;7ÿ>>9ÿ661ÿ-0*ÿ-0+ÿ/2-ÿ250ÿ783ÿ794ÿ672ÿ350ÿ35.ÿ24-ÿ13-ÿ02+ÿ,1*ÿ+0)ÿ*/(ÿ)/'ÿ),%ÿ-/)ÿ<:4ÿ=<5ÿ93-ÿ;4/ÿ<2.ÿ2(#ÿUUUÿùùùÿÿÿÿÿÿÿÿÿöööÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿÿþÿÿûúýÿ÷ô÷ÿôñôÿûôùÿÿüÿÿ÷úùÿûþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿüýÿýøùÿÿûüÿþüüÿûùùÿøøøÿûûûÿûþþÿûþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿýÿÿÿýÿÿÿûÿÿÿûÿïññÿöøøÿþÿþÿþÿþÿÿÿüÿþÿúÿúüõÿøûóÿÿÿúÿÿÿúÿÿÿüÿÿÿüÿÿÿþÿÿüûÿþùúÿþùúÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿ÷÷÷ÿöööÿûûûÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿúúúÿùùùÿÿÿÿÿæææÿ555ÿ555ÿ,**ÿ%##ÿ***ÿ444ÿ266ÿ:>=ÿ>EDÿ:A@ÿ298ÿ298ÿ598ÿ598ÿ:::ÿ;;;ÿ><=ÿ?=>ÿ:==ÿ8;;ÿ6:9ÿ598ÿ5:9ÿ498ÿ176ÿ/54ÿ087ÿ*31ÿ%#ÿ,64ÿ'%ÿ ÿ -+ÿ ÿÿ|||ÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿùùùÿÿÿÿÿüüüÿüüüÿnnnÿC0.ÿK96ÿK=:ÿOA>ÿJA=ÿMD@ÿLIDÿEB=ÿ::5ÿ782ÿ571ÿ682ÿ<<7ÿ??:ÿA@;ÿ@?:ÿ7:0ÿ59/ÿ38.ÿ27-ÿ16,ÿ27-ÿ47.ÿ58/ÿ:;1ÿ>?6ÿE@7ÿKF>ÿNC;ÿB7/ÿ@1*ÿ;,%ÿ:::ÿñññÿúúúÿÿÿÿÿúúúÿÿÿÿÿýýýÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿôöøÿüþÿÿÿýÿÿÿýÿÿÿüÿÿÿýÿÿÿüÿÿÿüÿÿüûÿÿÿþÿÿÿýÿÿþúþÿÿùþÿÿýÿÿÿüÿÿÿûÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿýÿÿÿýÿÿùøûÿõô÷ÿúúúÿÿÿÿÿÿÿýÿÿÿýÿøöôÿüú÷ÿÿüýÿÿýýÿÿûÿÿÿüÿÿÿüÿÿÿüÿÿúúûÿþýÿÿÿþÿÿÿþÿÿÿþÿÿûúýÿûúýÿüûþÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿþþþÿúúúÿÿÿÿÿ˜˜˜ÿÿ???ÿ978ÿ,*+ÿ---ÿ888ÿ6:9ÿ7;:ÿ6=<ÿ065ÿ-32ÿ.43ÿ155ÿ377ÿ888ÿ999ÿ;99ÿ;9:ÿ8::ÿ698ÿ587ÿ588ÿ6;:ÿ6;:ÿ4;9ÿ298ÿ/86ÿ1;9ÿ +)ÿ"!ÿ+)ÿ$1/ÿ(&ÿÿÿ<<<ÿÏÏÏÿûûûÿøøøÿÿÿÿÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿüüüÿÿÿÿÿùùùÿÿÿÿÿýýýÿúúúÿVVVÿD20ÿK86ÿE63ÿI:8ÿI@<ÿLC?ÿMJEÿGD?ÿIIDÿDD?ÿ>@:ÿ=?:ÿCC>ÿIIDÿNMHÿONIÿEH>ÿCG=ÿAE;ÿ?D:ÿ?E;ÿAG<ÿEH?ÿGJ@ÿEE<ÿEE<ÿ@;2ÿGB:ÿOC<ÿ=1*ÿ:*$ÿ<-&ÿ333ÿëëëÿñññÿÿÿÿÿþþþÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿúüþÿûýÿÿûùýÿøöûÿÿûÿÿÿýÿÿÿüÿÿüõüÿûúþÿÿþÿÿÿýÿÿÿüÿÿÿúÿÿÿýÿÿÿüÿÿÿùþÿÿüÿÿÿùþÿüõúÿÿûÿÿÿýÿÿÿüÿÿüûÿÿþüÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿüþÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿýûÿÿýûÿÿþýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿÿÿýÿÿÿýÿÿüüÿÿüýÿÿýÿÿÿýÿÿÿûÿÿýöüÿÿþÿÿüûýÿ÷öøÿûûüÿÿþÿÿÿþÿÿþýÿÿø÷úÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿýýýÿÿÿÿÿáááÿHHHÿGGGÿ...ÿ?=>ÿ,*+ÿ)))ÿ333ÿ154ÿ044ÿ076ÿ-32ÿ298ÿ3:9ÿ6::ÿ7;;ÿ:::ÿ999ÿ978ÿ866ÿ:<<ÿ8::ÿ588ÿ477ÿ276ÿ165ÿ-43ÿ+21ÿ('ÿ*31ÿ+65ÿ#!ÿ#0.ÿ)'ÿ
+ÿjonÿøýüÿúÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿ÷÷÷ÿûûûÿÿÿÿÿþþþÿêêêÿ°µ´ÿKPOÿ ÿÿ-32ÿ$#ÿÿ*//ÿ*0/ÿ-32ÿ065ÿ276ÿ/54ÿ)/.ÿ#('ÿ$#ÿ---ÿÿÿ%%%ÿÿÿuuuÿéééÿïïïÿÿÿÿÿÿÿÿÿüüüÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþþÿÿÿÿÿÿþûÿÿüùÿÿùñÿŒƒ{ÿTI>ÿXMBÿfNBÿjRFÿoWJÿqYLÿpWIÿmTFÿlRBÿkQAÿoSBÿpTBÿrUAÿrUAÿsT@ÿrT?ÿtU?ÿtU@ÿmT>ÿnU?ÿnU?ÿmT?ÿjS>ÿiQ<ÿfP<ÿfP<ÿbN;ÿ`L9ÿ]J8ÿ\J8ÿZI8ÿXG6ÿTD3ÿRA0ÿA7/ÿ\RJÿ½¶±ÿÿÿúÿÿÿýÿÿÿýÿüüüÿÿÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿþÿþÿþÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿûÿúÿüÿùøðÿÿÿùÿÿÿõÿíáÔÿɱ ÿ„l[ÿ`Kÿ`KÿbKÿ„dNÿ‡jSÿŽqZÿ’xaÿ—|fÿ¡}gÿ™u_ÿlVÿŠgPÿ†ePÿƒcMÿz^JÿuYEÿu_Pÿœ†wÿúëãÿÿûóÿÿþüÿÿþüÿÿþÿÿÿûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿøøøÿÿÿÿÿýýýÿ„„„ÿ"""ÿ>>>ÿÿ)2-ÿ-61ÿ(0,ÿ395ÿ=D@ÿ=A>ÿ9>:ÿ8;7ÿ;=:ÿ>?<ÿ<=:ÿ<;8ÿ<;8ÿ@>;ÿCA>ÿ<A@ÿ498ÿ.33ÿ/44ÿ498ÿ8=<ÿ;A@ÿ>DCÿ-32ÿINMÿ#"ÿÿÿ$#ÿ¶¼»ÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿØØØÿÿ %$ÿ""ÿ$$ÿ&,+ÿ,10ÿ.33ÿ166ÿ6;;ÿ6<;ÿ6<;ÿ6<;ÿ6<;ÿ5:9ÿ398ÿ287ÿ176ÿ///ÿ***ÿ,,,ÿ///ÿ"""ÿÿÿ555ÿËËËÿîîîÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿöööÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿüÿûõòÿÿÿùÿÁ¸°ÿOD:ÿ\QFÿeNBÿjRFÿoWKÿrZMÿrYKÿnVGÿnSCÿlRBÿpTBÿqUCÿtVCÿsVCÿtVAÿtUAÿuWAÿwXBÿoU?ÿpV@ÿoWAÿnV@ÿkS>ÿiQ=ÿgQ=ÿgQ=ÿdP=ÿbN;ÿ_L:ÿ^L:ÿ\K:ÿZI8ÿVF5ÿTC2ÿE;3ÿxngÿôìçÿÿÿúÿÿÿýÿÿÿýÿýýýÿþþþÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿþÿþÿþÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûþÿÿøüÿÿøúüÿúüÿÿÿÿþÿýüûÿöñëÿéåßÿ’Šÿxpeÿj]Nÿk_OÿvgTÿvgTÿxgRÿ{jUÿwgRÿvfQÿxhUÿyiVÿl`PÿfZJÿph]ÿ‡~sÿÝÙÓÿóîéÿÿÿþÿÿÿþÿ÷ùüÿ÷ùûÿùüÿÿûþÿÿøõøÿÿþÿÿÿþÿÿÿþÿÿüùýÿÿüÿÿÿþÿÿÿüÿÿþûþÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿþþþÿüüüÿûûûÿüüüÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿ÷ùûÿýÿÿÿþþþÿúúúÿÜÚÖÿ=;7ÿ=93ÿ;61ÿ! ÿ#)(ÿ-22ÿ398ÿ398ÿ176ÿ/54ÿ/44ÿ387ÿ4:9ÿ5;:ÿ7<;ÿ7=<ÿ6<;ÿ5;:ÿ4:9ÿ69;ÿ69;ÿ39:ÿ289ÿ.87ÿ-66ÿ+75ÿ*64ÿ5>=ÿ$.,ÿ+/.ÿÿÿ" ÿ`YYÿÿùùÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøùúÿþÿÿÿ÷øúÿüþÿÿýÿÿÿßáäÿikmÿ!#ÿÿ ' ÿ,2+ÿ4:4ÿ:>8ÿ9>8ÿ:;6ÿ9:5ÿ@@;ÿCC>ÿHFAÿHFAÿFB=ÿA=8ÿ>95ÿ<73ÿ/43ÿ+10ÿ).-ÿ&,+ÿ&*)ÿ!%%ÿÿÿ!#"ÿ¥§§ÿÿÿÿÿôôôÿÿÿÿÿøøøÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿÿÿÿÿûûûÿÿÿÿÿñññÿvvvÿEEEÿgT<ÿdP8ÿ}dLÿ‚iRÿuS>ÿxWAÿ…^IÿsM8ÿ}XBÿ}XBÿwYBÿz\Eÿt`Gÿu`Hÿn`Fÿl^DÿyYGÿvVEÿtSCÿsRBÿuSBÿvTCÿtSCÿsSBÿqSBÿkN<ÿ_H6ÿfN<ÿhVCÿ[J7ÿPC/ÿ[M:ÿAAAÿ¶¶¶ÿüüüÿûûûÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûþÿÿøüÿÿøúüÿûýÿÿÿÿþÿÿÿþÿÿý÷ÿûöñÿÿÿöÿâÙÏÿ³§—ÿ€qÿxhUÿk\IÿraLÿ}mXÿ„t_ÿuePÿj[HÿpaNÿ€teÿ¤˜ˆÿÑɾÿûóèÿôðêÿÿûõÿÿÿþÿÿÿþÿúüÿÿûýÿÿùýÿÿøûÿÿÿüÿÿÿþÿÿÿüÿÿüùüÿú÷úÿüùýÿýúþÿýúþÿÿýÿÿþüÿÿýúýÿüùüÿýúýÿþüÿÿþûþÿüùýÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿúüþÿüþÿÿúúúÿýýýÿ›˜•ÿ852ÿ<72ÿ84.ÿ%+*ÿ*/.ÿ.43ÿ165ÿ065ÿ054ÿ165ÿ287ÿ498ÿ5:9ÿ6;:ÿ6<;ÿ6<;ÿ6;;ÿ5::ÿ4:9ÿ257ÿ257ÿ.46ÿ-35ÿ)33ÿ(22ÿ&20ÿ%1/ÿ.76ÿ"+*ÿ)-,ÿÿÿÿKDCÿÎÇÇÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿõõ÷ÿýÿÿÿýÿÿÿßáãÿUWYÿ358ÿ$&)ÿ!("ÿ(/)ÿ282ÿ;A:ÿ@D>ÿBF@ÿDF@ÿDFAÿIICÿIIDÿLJEÿLJEÿMIDÿIFAÿGB>ÿD?;ÿ:@?ÿ6;;ÿ065ÿ,10ÿ)-,ÿ$('ÿ"!ÿÿÿ)++ÿ¢¢¢ÿüüüÿúúúÿÿÿÿÿàààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿýýýÿÿÿÿÿ¿¿¿ÿYYYÿmYAÿr^FÿjQ:ÿoV?ÿŽmWÿ„cMÿwQ<ÿ…_JÿZDÿ€[Eÿ}_HÿcLÿ}iPÿjRÿyjQÿwiOÿƒdRÿ€aOÿ~]Lÿ{ZIÿzXHÿxVEÿtSBÿqQ@ÿfH7ÿz\KÿqZHÿ`I7ÿ\J7ÿaO<ÿXK7ÿRD1ÿ„„„ÿÚÚÚÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿûûûÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþÿÿûýÿÿûüþÿûýþÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿûóÿÿúòÿÿüñÿÿûðÿòçÚÿÓÈ»ÿ½±¢ÿ´©šÿ¯¤•ÿ¶«œÿËÀ³ÿêßÒÿýõêÿÿûðÿÿýöÿÿÿùÿÿÿüÿÿÿüÿÿÿÿÿýýýÿýÿÿÿýÿÿÿüþÿÿ÷úýÿþýÿÿûúýÿûúüÿþýÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿýýýÿýýýÿýýýÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿõöøÿþþüÿûúùÿSOKÿ:62ÿA;5ÿ@;4ÿ040ÿ040ÿ030ÿ.1.ÿ.1.ÿ030ÿ474ÿ8;8ÿ695ÿ696ÿ6:6ÿ7:7ÿ7:7ÿ6:6ÿ696ÿ585ÿ798ÿ687ÿ266ÿ043ÿ+21ÿ)0.ÿ&.-ÿ%-,ÿ%,)ÿ '$ÿ(+)ÿÿ# ÿ$ ÿ5.-ÿ†…ÿýýýÿýýýÿýýýÿÿÿÿÿÿÿÿÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿýþÿÿììîÿlmnÿ&'(ÿ ÿ)*,ÿ%,(ÿ,3.ÿ6<8ÿ>E@ÿEJFÿINIÿMPLÿORNÿRTPÿPQMÿPOLÿPPLÿTROÿSQNÿPNKÿMJGÿCJJÿ?FFÿ9@@ÿ399ÿ.34ÿ(-.ÿ#'(ÿ##ÿ#%&ÿ
+ ÿABCÿÈÈÉÿìëíÿÿþÿÿûûüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿÿÿÿÿöööÿÿÿÿÿüüüÿõõõÿÿÿÿÿÞÞÞÿˆzeÿgYDÿkWBÿuaLÿtWCÿz^Iÿ‹gSÿ~ZFÿ‹fPÿkUÿ–v]ÿ£‚jÿ©uÿ²˜~ÿ±ÿ²ÿ´“~ÿ¬‹vÿ jÿ”s^ÿŠhUÿ‚aNÿ{[IÿwWEÿy\KÿeI8ÿ^H8ÿs]LÿgXGÿO@/ÿl`Oÿ¶ª™ÿùùùÿÿÿÿÿÿÿÿÿøøøÿþþþÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþÿÿþÿÿÿÿÿÿÿÿÿÿÿýýýÿûûûÿýüûÿÿýüÿûùöÿüú÷ÿÿþúÿÿÿüÿÿÿûÿÿÿúÿÿûöÿþúõÿýùôÿÿûõÿÿÿûÿÿÿûÿÿÿüÿÿþúÿûùöÿú÷ôÿýüûÿþüûÿýýýÿÿÿÿÿÿÿÿÿþþþÿýþÿÿþÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿ÷ûüÿó÷øÿõøùÿúþÿÿúþÿÿúýþÿüÿÿÿüÿÿÿüÿÿÿùüýÿüÿÿÿüÿÿÿóóóÿöööÿùùùÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿ÷÷÷ÿÿÿýÿ¤¢Ÿÿ,'!ÿA<6ÿ=6-ÿOH?ÿCC<ÿ@?9ÿ<;5ÿ871ÿ65.ÿ44-ÿ43-ÿ43,ÿ65/ÿ770ÿ992ÿ;:4ÿ<;4ÿ;:3ÿ982ÿ871ÿ1/,ÿ0/+ÿ./+ÿ..*ÿ,-)ÿ+,(ÿ),(ÿ)+'ÿ+,(ÿ/1-ÿ32.ÿ0.*ÿ<74ÿ<64ÿ1)'ÿ@86ÿÝÝÝÿþþþÿúúúÿþþþÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿªªªÿ===ÿ+++ÿ!!!ÿ ÿ111ÿ(/-ÿ/65ÿ8>=ÿ@FEÿCHGÿBHGÿAFEÿAEDÿBDDÿ<??ÿ9;;ÿ:<;ÿ@@@ÿBBBÿ@@@ÿ===ÿ6=?ÿ8@Aÿ:ACÿ;BDÿ8>@ÿ29;ÿ.35ÿ+02ÿ $&ÿ)-/ÿÿÿYZ]ÿëíðÿôõ÷ÿ÷øûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿ÷÷÷ÿûûûÿÿÿÿÿäßÎÿziÿTH7ÿfZJÿv`Nÿr\KÿaMÿ|]Jÿ‹hRÿ’oYÿ }cÿ²vÿã†ÿѱ•ÿغœÿÛ¾ŸÿÒ²˜ÿÆ¥Œÿ³’zÿ fÿoZÿ†ePÿ}_Lÿz\IÿoUEÿoUEÿjXIÿjXIÿWK>ÿ[PCÿ¥‘ÿÿÿöÿÿÿÿÿÿÿÿÿüüüÿùùùÿþþþÿþþþÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüýÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿþûÿÿüøÿÿþúÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿúÿÿÿúÿÿþùÿÿüøÿÿüøÿÿÿûÿÿÿýÿÿÿýÿÿýüÿÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿûüýÿþÿÿÿüÿÿÿüÿÿÿúýþÿõøùÿõùúÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿøûüÿóö÷ÿöúûÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüüüÿÿÿÿÿÿÿýÿwurÿ=82ÿB=7ÿ?8/ÿRKBÿONHÿLKDÿGF@ÿCB<ÿ@?8ÿ<;4ÿ760ÿ43,ÿ/.(ÿ21+ÿ66/ÿ:93ÿ;;4ÿ:92ÿ760ÿ54.ÿ20-ÿ31-ÿ22/ÿ440ÿ462ÿ673ÿ584ÿ695ÿ895ÿ=>:ÿ=;8ÿ:95ÿB=:ÿ=75ÿ4,)ÿ2*(ÿÃÃÃÿþþþÿüüüÿþþþÿÿÿÿÿúúúÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿëëëÿRRRÿ999ÿÿÿ---ÿ...ÿ298ÿ6=<ÿ<BAÿ?EDÿ>CBÿ:?>ÿ7;;ÿ599ÿ<??ÿ9<;ÿ799ÿ799ÿ<<<ÿ===ÿ;;;ÿ999ÿ,46ÿ08:ÿ5=>ÿ7>@ÿ6<>ÿ28:ÿ/46ÿ.35ÿ%(+ÿ$(*ÿ%'*ÿÿ ÿ—™œÿýþÿÿúûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿÿÿÿÿÿÿÿÿòòòÿÿÿÿÿÿÿóÿÜ×Æÿ‹nÿWK:ÿjUCÿq[IÿtVBÿ‚cPÿˆeOÿlVÿzaÿ°tÿã‡ÿÔ´˜ÿÞÁ¢ÿãƧÿÚº ÿ̬’ÿ¸–~ÿ¢iÿ‘pZÿ†ePÿ~_Lÿ{\IÿlRBÿ}cSÿhVGÿQ?1ÿfZMÿ¬ ”ÿìåÙÿÿÿöÿþþþÿüüüÿýýýÿÿÿÿÿþþþÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüþÿüýÿÿýÿÿÿýÿÿÿýÿÿÿûýÿÿ÷ùûÿòô÷ÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿüýÿÿúüýÿúûüÿùúûÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿüüüÿüüüÿÿÿÿÿóùøÿùÿþÿ÷þýÿóùøÿùÿÿÿùÿÿÿùÿÿÿçíìÿõüûÿàæåÿÍÓÒÿÆÍÌÿÄÊÉÿ¿ÆÅÿÂÉÈÿÊÐÏÿæèçÿëíìÿòôôÿùûúÿýÿþÿýÿÿÿûýýÿùûûÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿüøÿda\ÿD=4ÿA:1ÿG>2ÿSJ>ÿUOEÿRLBÿOI?ÿNG=ÿNG=ÿKE;ÿHA7ÿD>4ÿ>8.ÿC<2ÿIC9ÿOI?ÿQKAÿOI?ÿKE;ÿHB8ÿGA9ÿGB9ÿGB9ÿGB:ÿGB;ÿGB;ÿGB<ÿGC<ÿC>8ÿIC=ÿF@;ÿF@;ÿE=9ÿ;3/ÿ5,)ÿ.%"ÿ©©©ÿüüüÿÿÿÿÿýýýÿÿÿÿÿüüüÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿöõóÿ›™˜ÿHGDÿ'%#ÿ530ÿÿEC?ÿ+(%ÿ6<;ÿ8>=ÿ9?>ÿ9>>ÿ6<;ÿ4:9ÿ5:9ÿ5:9ÿ;??ÿ:?>ÿ:>>ÿ:>=ÿ:>=ÿ9=<ÿ9<<ÿ8<;ÿ,35ÿ/68ÿ18:ÿ189ÿ.56ÿ,24ÿ-24ÿ.35ÿ.24ÿ)-/ÿ#&(ÿ "ÿÿ357ÿëìïÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿúúúÿûûûÿÿÿÿÿýýýÿùùùÿöøíÿÿÿ÷ÿßÛÏÿŠ†zÿobTÿi[MÿoXHÿyaQÿbNÿ„fRÿ‘oWÿž|dÿ¯Œqÿ¼š~ÿÅ£†ÿɧŠÿ¾¡†ÿ³—{ÿ¤‡mÿ”w^ÿˆkTÿ€cMÿx]KÿuZHÿoZLÿq\NÿaRHÿrdYÿ±ª¡ÿöîæÿÿÿúÿüùñÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿýýýÿþþþÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþÿÿþÿÿÿýþÿÿùûüÿøùüÿûüÿÿýÿÿÿýÿÿÿúüÿÿüþÿÿüþÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿûüþÿÿÿÿÿùùùÿ÷÷÷ÿüüüÿþþþÿýýýÿþþþÿÿÿÿÿóùøÿùÿÿÿùÿÿÿöýüÿùÿÿÿùÿÿÿÙàßÿ¯¶µÿcihÿAGFÿ!'&ÿÿÿÿÿÿ%''ÿKMLÿ‡‰ˆÿÄÅÅÿîððÿýÿÿÿýÿÿÿýÿþÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿ÷óîÿ\XSÿ:3*ÿ81(ÿG>2ÿJA5ÿMG=ÿKE;ÿJD:ÿLF<ÿPJ@ÿSLBÿRLBÿPJ@ÿSMCÿYSIÿb[QÿibXÿke[ÿibXÿd^Tÿ`ZPÿTNFÿSMEÿPKCÿNI@ÿJE>ÿGC;ÿEA:ÿD?9ÿ@;5ÿGA<ÿF?:ÿIB=ÿD<8ÿ7/+ÿ6-)ÿ.%"ÿ™™™ÿüüüÿÿÿÿÿýýýÿÿÿÿÿýýýÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿòðïÿA?>ÿ(&$ÿA?<ÿ&# ÿ741ÿ$"ÿ>;8ÿ287ÿ287ÿ287ÿ176ÿ065ÿ398ÿ7<<ÿ;@?ÿ6;:ÿ8<<ÿ9>=ÿ9=<ÿ7;:ÿ488ÿ488ÿ588ÿ/79ÿ089ÿ/68ÿ,35ÿ(.0ÿ'-/ÿ*/1ÿ-24ÿ)-/ÿ*.0ÿ(+-ÿ,.1ÿ
+ ÿ,.0ÿ‹Œÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿÿÿÿÿÿÿÿÿöööÿõõõÿÿÿÿÿÿÿÿÿÿÿ÷ÿúüðÿÿÿöÿñîâÿ©›ŽÿoaTÿt]Lÿv_Oÿ€bNÿ€bNÿ‡eMÿŒkRÿ–tXÿž{`ÿ£cÿ¥ƒeÿ€eÿ—z_ÿŽqXÿ†iPÿ€cMÿ|_Iÿv\JÿtYHÿr\NÿfPBÿxj_ÿȺ¯ÿÿþöÿÿÿøÿýúòÿÿÿúÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüþÿÿüþÿÿûþÿÿûþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿûþÿÿûþÿÿüþÿÿüþÿÿþÿÿÿþÿÿÿþþþÿýýýÿýýýÿÿÿÿÿÿÿþÿÿÿþÿùÿÿÿùÿÿÿøÿþÿóùøÿÌÓÒÿoutÿ!'&ÿÿÿ"!ÿ '&ÿ#)(ÿ")(ÿ '&ÿ&%ÿ%$ÿ #"ÿ'**ÿÿ
+
+ÿ477ÿ–™™ÿäçæÿýÿÿÿýÿÿÿòõôÿýÿÿÿýÿÿÿõøøÿ÷úúÿýÿÿÿüÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüùÿÿÿýÿíèáÿc^Wÿ>5)ÿA8,ÿJ?0ÿVJ<ÿQD6ÿQE7ÿRF8ÿTG9ÿUH:ÿVJ<ÿWJ<ÿWK=ÿaTFÿg[MÿtgYÿ‚ugÿŠ}oÿ„xjÿwj\ÿj^PÿZPCÿVL?ÿQG:ÿND7ÿNB7ÿMB6ÿL@6ÿK?5ÿG;3ÿM@8ÿD71ÿG;4ÿJ>9ÿ=1,ÿ8-(ÿ7-(ÿ’’’ÿûûûÿÿÿÿÿüüüÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýþÿö÷øÿÿÿÿÿþþþÿÿÿÿÿõõõÿÿÿþÿýûúÿ›—ÿEB?ÿ1-)ÿA>9ÿ+'!ÿ*% ÿE@:ÿC>8ÿ576ÿ253ÿ142ÿ264ÿ697ÿ7;9ÿ6:8ÿ475ÿ9><ÿ:><ÿ9><ÿ7<:ÿ5:8ÿ5:8ÿ6;9ÿ8=;ÿ065ÿ065ÿ/54ÿ.43ÿ.32ÿ-21ÿ-10ÿ-00ÿ/11ÿ577ÿ(((ÿ---ÿ!!!ÿ///ÿBBBÿîîîÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿûÿ÷ü÷ÿüüöÿÿÿûÿÿùðÿÖÐÇÿŸ„ÿm^RÿycTÿwaQÿ|aNÿdQÿˆjTÿ‰kUÿ†gOÿbJÿyeMÿ~iQÿlVÿjTÿxcQÿt_Lÿr]Pÿt`Rÿp`Vÿ®ž”ÿêàÚÿÿÿùÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüþÿÿüþÿÿûþÿÿûþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿúþÿÿûþÿÿûþÿÿüþÿÿüþÿÿþÿÿÿôõ÷ÿúúúÿÿÿÿÿÿÿÿÿûûûÿÿþüÿÿÿþÿîõôÿùÿÿÿ×ÞÝÿu|{ÿ%,+ÿ ÿÿ(/.ÿ#)(ÿ%,+ÿ'.-ÿ(.-ÿ'-,ÿ&-,ÿ&-,ÿ'.-ÿ!!ÿÿ(++ÿ/22ÿÿÿLNNÿ Ÿÿöùùÿýÿÿÿüÿÿÿéìëÿýÿÿÿúýýÿ÷úúÿýÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿýÿøóìÿ_ZSÿF<1ÿH?3ÿRG9ÿTH:ÿTG9ÿTG9ÿTG9ÿTG9ÿUH:ÿVJ<ÿWK=ÿXL>ÿaUGÿj]Oÿyl^ÿˆ{mÿƒuÿ‰|nÿyl^ÿl_Qÿ[QDÿWN@ÿSI<ÿPF9ÿPD9ÿOD8ÿNB8ÿMA7ÿF91ÿM@8ÿL?9ÿL@9ÿG;6ÿ>2-ÿ7-(ÿ.#ÿ›››ÿûûûÿÿÿÿÿüüüÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿúûüÿÿÿÿÿþþþÿÿÿÿÿúúúÿÿÿþÿ÷öôÿjgdÿ52/ÿ62.ÿLHCÿ;71ÿ2.(ÿ@;5ÿ>93ÿ031ÿ/10ÿ.1/ÿ031ÿ365ÿ597ÿ586ÿ375ÿ375ÿ597ÿ6;9ÿ6;9ÿ5:7ÿ497ÿ497ÿ5:8ÿ176ÿ065ÿ/43ÿ,21ÿ+//ÿ)--ÿ(++ÿ'**ÿ577ÿ:<<ÿ***ÿ000ÿ$$$ÿ---ÿ---ÿ¹¹¹ÿÿÿÿÿûûûÿÿÿÿÿþþþÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿûÿùþùÿÿÿúÿÿÿûÿÿÿøÿÿúòÿðáÕÿÚË¿ÿ›…vÿwhÿfSÿuZGÿxZDÿ}_Iÿ…fNÿˆiQÿmUÿ{fNÿp[EÿhS=ÿjTBÿzeSÿ|nÿ£Ž€ÿìÜÒÿÿöìÿÿÿùÿÿÿùÿÿüøÿÿüøÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿóóóÿüüüÿÿÿÿÿúúúÿøøøÿÿÿþÿÿÿþÿüÿþÿ¯³±ÿRWTÿ#!ÿÿ&+)ÿ.20ÿ&*(ÿ163ÿ274ÿ375ÿ264ÿ052ÿ153ÿ274ÿ496ÿ;@?ÿ'+*ÿ##ÿ&+*ÿ"&&ÿÿÿ#"ÿsxwÿ×ÛÚÿøüûÿûÿÿÿó÷öÿûÿÿÿó÷÷ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿüùõÿÿÿ÷ÿf_VÿJ?1ÿTI;ÿ\N=ÿVH7ÿ_M<ÿ^L:ÿ\J8ÿZH7ÿ[H7ÿ\J8ÿ^L:ÿ_M;ÿeSAÿn\Kÿ~l[ÿŽ|jÿ•‚qÿ{jÿ~lZÿq^MÿaSAÿ^P>ÿ[K:ÿXH7ÿYG8ÿXF7ÿXD8ÿVB6ÿO<2ÿR>4ÿUD<ÿO>6ÿA3-ÿB4-ÿ;0)ÿ, ÿ«««ÿüüüÿÿÿÿÿüüüÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿûüþÿþÿÿÿûüýÿÿÿÿÿüüüÿÿÿýÿãáßÿ:62ÿ.+&ÿ>92ÿQLEÿIC;ÿ<6.ÿ>7.ÿ@8/ÿ/-)ÿ.,(ÿ.-(ÿ0/+ÿ44/ÿ772ÿ794ÿ794ÿ561ÿ794ÿ9<7ÿ9=7ÿ6:5ÿ483ÿ271ÿ271ÿ573ÿ362ÿ24/ÿ01-ÿ-.*ÿ*,'ÿ))%ÿ(($ÿ10,ÿ984ÿ0.*ÿ:84ÿ52.ÿ;84ÿ*'#ÿˆ„€ÿûûûÿÿÿÿÿÿÿÿÿýýýÿýýýÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿþÿüÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿúÿÿÿúÿÿóêÿçÛÓÿȹ®ÿ§—Œÿ’€sÿ…reÿk]ÿ|hZÿtk\ÿzrbÿ‡}oÿ™ÿ³§œÿÕɾÿõèáÿÿþöÿÿöñÿÿýùÿÿÿüÿýøöÿöööÿýýýÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿüþÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿýýýÿÿÿÿÿýýýÿðððÿÿÿÿÿÿÿþÿððîÿœ žÿ:?<ÿ  ÿ$)&ÿ9=;ÿ5:7ÿ153ÿ-1/ÿ496ÿ6;8ÿ8<:ÿ8=:ÿ7<9ÿ7<9ÿ8=;ÿ:?<ÿ6:9ÿ>BAÿ6::ÿ$)(ÿ&**ÿ276ÿ*..ÿÿ ÿPTTÿ×ÛÚÿûÿÿÿûÿÿÿêîíÿûÿÿÿøýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿüùöÿÿÿøÿ|ulÿB7)ÿYN@ÿXK9ÿYK:ÿdRAÿbP>ÿ_M;ÿ\J8ÿ[I8ÿ]J9ÿ_M;ÿ`N=ÿaO=ÿiWFÿweSÿƒq`ÿ‰weÿƒq_ÿweSÿm[Iÿ`SAÿ]P>ÿ[L;ÿYJ9ÿZH9ÿYG8ÿXE8ÿWC7ÿUB8ÿN:0ÿSB:ÿI80ÿ;-&ÿC5/ÿ<0*ÿ1%ÿÀÀÀÿüüüÿÿÿÿÿüüüÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿûýþÿüýþÿúûüÿÿÿÿÿúúúÿÿÿýÿ¼º¸ÿ.*&ÿ850ÿC>7ÿIC=ÿJD;ÿB<4ÿ@9/ÿF>5ÿ/.)ÿ/-)ÿ/-)ÿ0/*ÿ22-ÿ550ÿ672ÿ794ÿ9;6ÿ;<7ÿ:=8ÿ9<7ÿ493ÿ150ÿ/4/ÿ/4.ÿ.0,ÿ-0+ÿ-/*ÿ,-)ÿ+,(ÿ)+&ÿ)*%ÿ))%ÿ-,(ÿ984ÿ<95ÿHEAÿEB>ÿFC?ÿ-)%ÿ^[WÿïïïÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿþÿüÿÿÿÿÿþÿýþüÿûøõÿúøôÿÿüöÿÿÿúÿÿÿøÿÿÿøÿÿýòÿÿöëÿÿòåÿÿíàÿüèÚÿøãÖÿâÙÊÿìãÓÿøîáÿÿùëÿÿüñÿÿýòÿÿüôÿÿüôÿÿþùÿÿÿûÿÿÿýÿÿýúÿþþþÿÿÿÿÿúþýÿòööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿüüüÿÿÿÿÿÿÿÿÿ÷÷÷ÿüüüÿÿÿÿÿéééÿœœœÿ)*'ÿ ÿ,-*ÿ896ÿ,-*ÿ./,ÿ==;ÿ>><ÿ<=:ÿ@A>ÿDEBÿGHEÿGHEÿFGDÿFGDÿFGDÿ:?>ÿ=BAÿ<A@ÿ387ÿ(.-ÿ#)(ÿ$)(ÿ%+*ÿÿ ÿAFFÿÏÕÔÿëñðÿûÿÿÿóø÷ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿþúÿÿÿ÷ÿ¦ž”ÿ=1!ÿZN>ÿRC0ÿ`Q=ÿmVBÿjT@ÿgP<ÿdM9ÿbL7ÿcM8ÿeN:ÿfP<ÿeN:ÿjT?ÿr\HÿzdOÿ~gSÿ{dPÿt^JÿoYDÿcR<ÿ`P:ÿ_L8ÿ^K6ÿ`I7ÿ_H6ÿ^E6ÿ\C4ÿ]D9ÿN6*ÿVA8ÿO:1ÿB2*ÿD4,ÿ5)!ÿ=1*ÿ×××ÿýýýÿÿÿÿÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùûýÿýÿÿÿüýþÿûüþÿÿÿÿÿûûûÿú÷ôÿ’Œÿ61+ÿD?:ÿF@8ÿD=5ÿNF<ÿNF<ÿJA6ÿNE:ÿ@:2ÿ?91ÿ<7/ÿ:5-ÿ73+ÿ73+ÿ74,ÿ86-ÿ;:2ÿ<;2ÿ:;2ÿ890ÿ36-ÿ14+ÿ14+ÿ25,ÿ--$ÿ.-$ÿ/.%ÿ0/&ÿ2/'ÿ31(ÿ41(ÿ51)ÿ<8/ÿHD;ÿQKCÿXRJÿNG?ÿE?6ÿ.'ÿ>7/ÿÞÞÞÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿýýýÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýÿÿÿþÿÿÿþÿÿÿþÿÿþþÿÿýüþÿüüüÿýýýÿýûúÿÿýüÿÿÿýÿÿÿýÿÿÿüÿÿüùÿüõñÿöïëÿýÿùÿÿÿûÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿþÿÿÿþÿÿÿÿÿÿüüüÿùûýÿüÿÿÿúÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿøøøÿÿÿÿÿþþþÿýýýÿÿÿÿÿúúúÿÿ888ÿ"# ÿ/0-ÿ=>;ÿ>?<ÿ<=:ÿFGDÿLLJÿAB?ÿKLIÿPQNÿUUSÿXYVÿWXUÿVVTÿTURÿSTQÿMSRÿCHHÿ;@?ÿ:?>ÿ8>=ÿ054ÿ#((ÿ ÿ+00ÿ ÿÿCIHÿÕÚÙÿûÿÿÿûÿÿÿôùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿõÿÔÌÂÿL?0ÿVJ:ÿQA.ÿcTAÿnXCÿlVAÿjS?ÿgP<ÿfO;ÿfO;ÿgP<ÿgQ=ÿhQ=ÿjT@ÿnWCÿq[Gÿr\Hÿr[GÿpYEÿnXDÿbR<ÿ`P:ÿ`M8ÿ_L7ÿaJ9ÿ`I8ÿ_F7ÿ]C5ÿZA6ÿK2'ÿVA8ÿU@6ÿL<4ÿ=-%ÿ- ÿ^QJÿíííÿþþþÿÿÿÿÿýýýÿÿÿÿÿþþþÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùûþÿýÿÿÿýþÿÿþÿÿÿÿÿÿÿþþþÿöóðÿpmjÿ73-ÿB>8ÿF?7ÿGA8ÿVNDÿYQGÿRI>ÿNE:ÿNH@ÿMF?ÿHC;ÿC=5ÿ<80ÿ:6.ÿ96.ÿ:8/ÿ<;3ÿ>=4ÿ=>5ÿ=>5ÿ9<3ÿ7:1ÿ7:1ÿ7:1ÿ990ÿ:90ÿ<;2ÿ=<3ÿ@>5ÿB?7ÿD@8ÿEA9ÿ@<3ÿGB:ÿQKCÿVPGÿHB9ÿ<5-ÿ2*"ÿ/( ÿÈÈÈÿÿÿÿÿþþþÿþþþÿÿÿÿÿúúúÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþýÿÿýüÿÿüûþÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿþÿûÿùûöÿú÷ôÿûøõÿþúøÿÿüúÿøôõÿúö÷ÿùùùÿùùùÿ÷úüÿûþÿÿúÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿýüúÿÿÿýÿûûûÿÿÿÿÿþþþÿ°°°ÿJJJÿÿ%%"ÿ652ÿBA>ÿHGEÿIHEÿBB?ÿCB@ÿPOLÿPPMÿSROÿUURÿVVSÿTTQÿSROÿRQNÿRQNÿ:@?ÿIONÿOUTÿEJIÿ:?>ÿ5;:ÿ/54ÿ&,+ÿÿ065ÿ ÿÿekjÿâççÿúÿÿÿ÷ýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿûÿÿý÷ÿÿÿôÿúòçÿpcRÿTG6ÿZJ6ÿcS?ÿqXBÿoWAÿnU?ÿmT>ÿkR=ÿkR<ÿkR<ÿkR<ÿlS=ÿmT?ÿoV@ÿpWAÿoWAÿoV@ÿnU@ÿnU@ÿeS;ÿdQ9ÿdO9ÿdN8ÿfM:ÿeL8ÿdG8ÿbE6ÿZ?2ÿK/#ÿS<2ÿR;2ÿM;3ÿ4#ÿ3&ÿˆÿýýýÿþþþÿÿÿÿÿýýýÿýýýÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúüþÿüþÿÿûüþÿýþÿÿÿÿÿÿÿÿÿÿõòïÿZXTÿ61+ÿ;60ÿE>4ÿLE<ÿWNCÿ[RGÿWMAÿMD7ÿTKAÿSKAÿQI?ÿME;ÿHA7ÿGA6ÿHD9ÿLG<ÿPNBÿTQFÿUUJÿVVJÿPRFÿJL@ÿEG;ÿBD8ÿJG;ÿJG;ÿKG;ÿKG;ÿLH<ÿLH<ÿMH<ÿMH<ÿC<1ÿ>7,ÿF>3ÿME:ÿC:.ÿ90%ÿ>4)ÿ3)ÿµµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿýúÿÿúøüÿùøüÿúûÿÿüüÿÿúýÿÿúýÿÿûþÿÿûþÿÿûþÿÿöùüÿóöùÿô÷úÿ÷ùüÿùûþÿñûüÿòüýÿöýÿÿøÿÿÿûÿÿÿûÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿýþÿÿýþÿÿûÿÿÿùýÿÿòøûÿðöùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿüÿÿÿüÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿýýýÿÿÿÿÿáááÿfffÿÿ222ÿ/.+ÿIHEÿJIFÿA@=ÿJIFÿLLIÿIHEÿQPMÿDC@ÿDDAÿDC@ÿBA>ÿ?>;ÿ=<9ÿ==:ÿ>>;ÿ;A@ÿ276ÿ287ÿ?EDÿDJIÿ9?>ÿ,11ÿ',,ÿ#((ÿ$#ÿ#"ÿ ÿ$)(ÿŒ‘‘ÿñ÷öÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿûÿü÷òÿÿÿöÿÿÿöÿ‚rÿRE4ÿeU@ÿbQ=ÿpWAÿpWAÿoV@ÿoV@ÿmT?ÿmT>ÿlS=ÿkR=ÿjQ;ÿlS=ÿnU?ÿnU?ÿlT>ÿkR<ÿjR<ÿjR<ÿgT=ÿeS;ÿfP:ÿfP:ÿiO<ÿgN:ÿfI:ÿcG7ÿZ>2ÿH- ÿK4*ÿG0'ÿD3*ÿ,ÿ@2+ÿ×ÊÂÿÿÿÿÿþþþÿÿÿÿÿýýýÿýýýÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùûýÿüþÿÿ÷øúÿøúûÿÿÿÿÿÿÿÿÿöóðÿPNJÿ84-ÿ72,ÿC<3ÿME<ÿQH=ÿVMBÿVM@ÿLB6ÿNE;ÿPG=ÿPH>ÿPH>ÿOH>ÿSLBÿWSHÿ]XNÿgeYÿli^ÿoocÿoocÿfh\ÿ[]QÿPRFÿJL@ÿKI<ÿKH<ÿJF:ÿHE9ÿGC7ÿFA5ÿE@4ÿE?3ÿKD9ÿ<5*ÿ?7+ÿF>2ÿ<3(ÿ5,!ÿ@6+ÿ1'ÿ©©©ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿþýÿÿÿþÿÿýþÿÿýþÿÿúýÿÿùüÿÿõùüÿùýÿÿûÿÿÿûÿÿÿüþÿÿüþÿÿüþÿÿüýÿÿöÿÿÿöÿÿÿøÿÿÿ÷ÿÿÿûþÿÿúýÿÿüûþÿúùüÿÿýÿÿûúýÿøùüÿùúýÿøüÿÿùýÿÿøþÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿþÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿúýÿÿÿÿÿÿÿÿÿ}ÿ+,(ÿ=@9ÿ"ÿ7>9ÿ<C>ÿ?EAÿ<C>ÿ;A=ÿ;B=ÿ9@;ÿ5<7ÿ7>9ÿ7=9ÿ7=9ÿ7=9ÿ7>9ÿ8?:ÿ9@;ÿ:@<ÿ649ÿ75:ÿ57<ÿ79=ÿ4;>ÿ4<>ÿ0<=ÿ0<=ÿ++ÿ+77ÿ"++ÿÿ ÿ+0/ÿÑÓÒÿûüüÿûûþÿþþÿÿýÿÿÿùûýÿûÿÿÿûÿÿÿõûùÿûÿþÿýÿýÿðôðÿÿÿûÿûüöÿÖÒÌÿHD>ÿ\UNÿVOIÿnYBÿmXAÿmV=ÿnV>ÿt[@ÿv]BÿsW;ÿjN3ÿrU;ÿvZ@ÿuZCÿrV?ÿmS@ÿoUBÿlTDÿjRAÿpS:ÿmP7ÿkO7ÿmQ9ÿkR=ÿjQ<ÿbN<ÿ`L:ÿC2%ÿ:*ÿ9,#ÿB6,ÿ-$ÿ2)"ÿc[Uÿÿúôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüÿÿÿýÿÿû÷úÿÿþÿÿÿþüÿýöõÿûñêÿ]SLÿC6+ÿK>3ÿRE6ÿRE6ÿVH7ÿZL;ÿXJ9ÿRD3ÿWF7ÿYH8ÿZI9ÿXG8ÿXG7ÿ^M>ÿiXIÿsbRÿ}l\ÿ‡vfÿpÿ~nÿ€o`ÿn]NÿaPAÿ[J;ÿMH9ÿLG9ÿNF7ÿLD5ÿNC2ÿLA0ÿM@/ÿM?.ÿC5%ÿPB2ÿB4(ÿA3'ÿH<5ÿ<0)ÿ3(#ÿ6+&ÿ¢¢¢ÿÿÿÿÿýýýÿùùùÿÿÿÿÿøøøÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿþÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿÿù÷÷ÿÖÓÔÿIIEÿ551ÿ.0)ÿ&("ÿ(.*ÿ284ÿ9?;ÿ7>9ÿ3:5ÿ3:5ÿ4:6ÿ3:5ÿ7=9ÿ6=8ÿ6=8ÿ6=8ÿ7=9ÿ8>:ÿ8?:ÿ9?;ÿ:8=ÿ97<ÿ46;ÿ359ÿ.68ÿ.68ÿ+78ÿ,89ÿ-::ÿ*+ÿ%%ÿ%%ÿÿÿ€ÿõööÿüýÿÿüüÿÿýÿÿÿüþÿÿúÿþÿûÿÿÿøþüÿûÿþÿûÿûÿüÿüÿýþùÿ÷øòÿÿÿùÿŒˆ‚ÿC<6ÿ`YRÿgR;ÿkV?ÿu^Fÿx`HÿqW<ÿgM3ÿqU:ÿeJÿtW=ÿx[Aÿw[DÿtYBÿqXDÿt[Gÿs[JÿqYHÿvY?ÿuX?ÿqU=ÿnR:ÿnU@ÿpWBÿbM<ÿT?.ÿE4'ÿB2%ÿ9-#ÿ*ÿ5+$ÿ2)"ÿ¶®¨ÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýûÿÿÿýÿÿþùýÿÿþÿÿÿþüÿÿù÷ÿüòëÿbXQÿC7,ÿH<0ÿM?0ÿOB3ÿWI8ÿ]O>ÿ[M<ÿTF5ÿYH9ÿ[J:ÿ[K;ÿZI9ÿZI9ÿ`O?ÿjYIÿsbRÿpaÿ‹zjÿ“ƒsÿ‘qÿ„scÿsbRÿfUFÿaP@ÿNH:ÿMH9ÿNG7ÿME6ÿNC2ÿMB1ÿNA/ÿM@/ÿH9*ÿPB2ÿF8,ÿC5)ÿB6/ÿ9-%ÿ2'"ÿ3("ÿ¬¬¬ÿÿÿÿÿþþþÿúúúÿÿÿÿÿùùùÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿýúùÿˆ…„ÿ,+&ÿ<;6ÿ00)ÿ--%ÿ!'#ÿ-30ÿ6<9ÿ4:6ÿ.40ÿ-30ÿ062ÿ284ÿ6<8ÿ6<8ÿ6<8ÿ6<9ÿ7=9ÿ7=9ÿ7=:ÿ7=:ÿ;<>ÿ99<ÿ368ÿ/35ÿ+23ÿ+34ÿ+55ÿ,66ÿ6@>ÿ)'ÿ#)(ÿ"'&ÿ%%%ÿÿ301ÿÔÑÒÿÿþÿÿúùûÿûýþÿýÿÿÿúþþÿúÿþÿûÿþÿøþüÿùýùÿüÿýÿòôïÿûýøÿÿÿûÿÞÚÕÿZTNÿYRMÿlWCÿnYEÿqZEÿpYDÿsY@ÿtYAÿz]Bÿ~`Fÿ~_EÿƒdIÿ„eMÿƒdLÿ‚eOÿ…gRÿƒfSÿbOÿ|^Gÿ{]FÿtXCÿoS>ÿoVCÿoVCÿZF6ÿE1"ÿ6'ÿ4&ÿ/%ÿ6,#ÿÿ~xqÿÿûöÿÿü÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúûÿÿýþÿÿþþÿÿÿþÿÿÿþýÿÿýüÿýõïÿld^ÿG;0ÿH<2ÿM>0ÿQB4ÿ[K:ÿaP@ÿ`N=ÿYG6ÿ\K:ÿ^L;ÿ^L<ÿ]K;ÿ]L;ÿcQ@ÿkYIÿsaPÿƒqaÿ‹yiÿ’€pÿ~mÿ„raÿucRÿjXGÿeSBÿSI:ÿRH:ÿSG8ÿRF6ÿSD3ÿQC1ÿRB0ÿQA/ÿO>/ÿP?/ÿL=1ÿH8,ÿA3,ÿ>0(ÿ7+&ÿ5)$ÿ½½½ÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿýÿÿòïîÿHEDÿ<;6ÿ64/ÿ==5ÿ''ÿ)/,ÿ173ÿ4:7ÿ173ÿ-3/ÿ/51ÿ284ÿ395ÿ5;7ÿ5;7ÿ5;8ÿ6<8ÿ6<8ÿ6<8ÿ5;8ÿ5;7ÿ::=ÿ88;ÿ268ÿ035ÿ+23ÿ+23ÿ*44ÿ+44ÿ*31ÿ+53ÿ.32ÿ &%ÿÿ%%%ÿÿ‘Žÿþýÿÿüûýÿúüýÿýÿÿÿùýüÿ÷ûûÿûÿþÿøýûÿüÿýÿõúöÿûýøÿÿÿüÿ÷óîÿÿÿûÿ²«¥ÿYSMÿjUAÿr]Iÿr[FÿiR=ÿsY@ÿ‚hOÿ„gLÿvY?ÿ‰jPÿqWÿ•v^ÿ˜yaÿ™{fÿ™|fÿ“vcÿ‹o[ÿˆjSÿcLÿy]Hÿx\FÿpWDÿcK8ÿM9)ÿA-ÿ4%ÿ8)ÿ1'ÿ,"ÿJD=ÿãÝÖÿÿÿûÿÿþøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùúþÿýþÿÿÿþÿÿýüþÿÿþýÿÿÿýÿÿùóÿ„|vÿI=2ÿK?5ÿRD6ÿWH:ÿ]M<ÿ_N>ÿ^L:ÿZH6ÿ]L;ÿ^L<ÿ_M<ÿ^L<ÿ_M<ÿcQAÿiWGÿo]Lÿ}kZÿƒq`ÿˆveÿ†tcÿ{jYÿo]MÿfTDÿbP@ÿTK<ÿTJ;ÿUI9ÿSG8ÿTF5ÿSD3ÿSC1ÿSB1ÿSB3ÿJ9)ÿM=2ÿJ;/ÿD6/ÿE80ÿ=0,ÿ?3.ÿÒÒÒÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýýÿþûûÿº·´ÿ-*'ÿIF?ÿ0-&ÿEA8ÿ'$ÿ163ÿ153ÿ.20ÿ).+ÿ,1.ÿ274ÿ5:7ÿ385ÿ496ÿ597ÿ6:8ÿ6;8ÿ6;8ÿ5:7ÿ496ÿ486ÿ586ÿ475ÿ264ÿ042ÿ-20ÿ*/-ÿ(-+ÿ',)ÿ#&$ÿ586ÿ321ÿ.-+ÿ"ÿ4..ÿ7..ÿVMMÿíííÿÿÿÿÿþþþÿÿÿÿÿùüüÿõø÷ÿûÿþÿùÿüÿüÿýÿôøõÿÿÿüÿÿÿüÿìéåÿÿÿüÿþøôÿ‰…ÿdQCÿiVHÿq[Kÿq[JÿrXDÿu[Fÿ„eMÿŽoWÿ˜w]ÿ¢gÿ°tÿ¹—~ÿÀž†ÿÀž†ÿ·•ÿ¬Štÿ ‚oÿq_ÿ„hWÿƒgVÿoWHÿR;+ÿ>-ÿA0"ÿ9.#ÿ?4)ÿ/*!ÿ& ÿ¾¼¶ÿÿÿøÿñóíÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöüþÿùÿÿÿûÿÿÿùýýÿÿÿýÿÿÿþÿÿÿúÿ¢ž˜ÿC9/ÿH=4ÿUE7ÿ[J=ÿaL<ÿ_J9ÿaI7ÿbJ8ÿ`L:ÿaL:ÿaL:ÿaL:ÿbM;ÿeQ?ÿiUCÿmXFÿvbPÿ{fTÿ~jXÿ|hVÿuaOÿlXFÿeQ?ÿbN<ÿ\L<ÿ\K;ÿ\J9ÿZI8ÿ[G5ÿZF3ÿYD2ÿYD2ÿYE5ÿJ6&ÿO<1ÿL9.ÿJ:3ÿI92ÿ<.*ÿREAÿåååÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿþþÿuqoÿ30-ÿ@=6ÿ96/ÿA>5ÿ73*ÿ163ÿ.30ÿ(-*ÿ$)&ÿ).+ÿ264ÿ486ÿ052ÿ385ÿ496ÿ5:7ÿ6:8ÿ5:7ÿ496ÿ374ÿ163ÿ253ÿ242ÿ031ÿ.20ÿ).,ÿ&+(ÿ"'%ÿ %"ÿ&)'ÿ031ÿ.,+ÿ<;:ÿ3-,ÿ2,,ÿC::ÿ4++ÿÊÊÊÿÿÿÿÿÿÿÿÿÿÿÿÿûþþÿô÷÷ÿûÿþÿúÿýÿüÿýÿüÿýÿ÷øôÿÿÿüÿÿÿúÿûøôÿÿÿûÿãÝÙÿ—ƒvÿq^PÿcN=ÿt^NÿfRÿu[FÿcKÿ›|dÿ¤ƒiÿ±vÿá‡ÿÓ±—ÿß½¥ÿâÀ¨ÿØ·¡ÿÌ«•ÿµ˜…ÿ¡„qÿŽsaÿƒhVÿgP@ÿI2"ÿ:(ÿB1#ÿ,!ÿ+ ÿ71)ÿŸ™‘ÿûúóÿÿþøÿÿÿûÿøúõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøþÿÿõûýÿûÿÿÿùýþÿÿÿþÿýþüÿÿÿûÿÉÅ¿ÿF<2ÿG<3ÿQA4ÿXH;ÿ_J:ÿ^J9ÿbK9ÿfN<ÿaM;ÿaM;ÿaM;ÿaM;ÿcO=ÿeQ?ÿgSAÿiUCÿp[Iÿr^Lÿt`Nÿs_MÿoZHÿiUCÿeQ?ÿcO=ÿ^M=ÿ]M=ÿ^L;ÿ\J9ÿ]I6ÿ[G5ÿ[F4ÿZE3ÿ\G8ÿM9)ÿP>2ÿJ7,ÿK<5ÿC3-ÿ9+(ÿwieÿõõõÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿþþþÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõóóÿUQMÿ:62ÿA;2ÿGA8ÿD<0ÿLD8ÿ:<8ÿ:;7ÿ673ÿ01.ÿ01-ÿ341ÿ341ÿ/1-ÿ573ÿ784ÿ896ÿ9:6ÿ896ÿ784ÿ462ÿ341ÿ13,ÿ02+ÿ/2*ÿ.0)ÿ./)ÿ-.(ÿ/-(ÿ/-(ÿ72.ÿ;62ÿ@75ÿJB?ÿODBÿ;/.ÿB43ÿ2$$ÿ œÿþüûÿÿÿþÿýþüÿýÿþÿöù÷ÿûÿþÿúÿüÿûÿüÿüÿýÿö÷ôÿþÿüÿÿÿýÿÿÿüÿÿüùÿÿÿýÿæÖÏÿ¥•Žÿr_UÿlYOÿ}fVÿ|eUÿ‚eQÿŠmYÿž}fÿªŠrÿ½šƒÿΫ“ÿݺ¢ÿ⿨ÿÚ¸¡ÿϬ–ÿ­“…ÿž„vÿƒk^ÿgOBÿN:.ÿC/#ÿ8+!ÿ7)ÿ(!ÿF?6ÿ‰‡€ÿÿÿúÿõöñÿÿÿüÿüÿýÿíòîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿÿÿïù÷ÿøÿÿÿ÷ÿþÿüÿÿÿöúùÿÿÿüÿèçäÿ[RJÿOG?ÿQA4ÿUE8ÿdL;ÿeN=ÿjN;ÿkP<ÿfO<ÿfO;ÿfO;ÿfO<ÿhQ>ÿjS?ÿkT@ÿkT@ÿmVBÿoXDÿpYEÿpYEÿmVCÿkT@ÿiR>ÿhQ=ÿfN=ÿeN<ÿeM:ÿcK8ÿcJ6ÿaH4ÿ`G4ÿ_F3ÿ]F6ÿV?/ÿWC8ÿK8-ÿN>8ÿ@0)ÿA40ÿ¯¢žÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüüÿßÝÝÿTPKÿ3/*ÿIB9ÿE>5ÿA:.ÿNF:ÿEFBÿHIFÿFHDÿ>?;ÿ674ÿ340ÿ01.ÿ-.*ÿ563ÿ674ÿ895ÿ9:6ÿ896ÿ674ÿ451ÿ230ÿ.0)ÿ-/(ÿ,/(ÿ-/(ÿ11+ÿ56/ÿ;94ÿ=<7ÿ<84ÿGC?ÿULJÿH?=ÿ^SQÿE:8ÿ:-,ÿ4&&ÿ€~}ÿù÷öÿÿÿþÿüýûÿýÿþÿøûøÿûÿþÿùþûÿüÿýÿøýúÿÿÿýÿÿÿýÿôòïÿÿÿýÿùõóÿÿþûÿÿÿøÿëÛÔÿ¨•Šÿn[QÿhQAÿxaQÿ…hTÿ}aLÿŒkTÿ–u^ÿ¦ƒkÿ´‘yÿŸˆÿÈ¥ŽÿÁŸ‰ÿ·”~ÿ›sÿ”zlÿt\NÿK3&ÿ9%ÿB.#ÿ<.$ÿ. ÿG?7ÿ¤”ÿÿÿúÿúøòÿÿÿüÿþÿûÿóøôÿüÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿÿÿí÷õÿøÿÿÿøÿÿÿüÿÿÿôø÷ÿÿÿüÿýüøÿuldÿ^UNÿUD8ÿVE9ÿgP?ÿkSBÿlQ=ÿjO;ÿiR>ÿhQ=ÿgP=ÿhQ>ÿjS?ÿlUAÿkT@ÿkT@ÿiR>ÿjS?ÿkT@ÿkT@ÿjS?ÿiR>ÿhQ>ÿhQ=ÿfO=ÿfN=ÿeM;ÿdL9ÿcJ7ÿbI5ÿ`G5ÿ`G4ÿZC3ÿ[D4ÿ\I>ÿN;0ÿRB<ÿA1+ÿNA>ÿÞÑÎÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿýÿÆÅÃÿ@;4ÿD?8ÿB8-ÿF<1ÿQD6ÿQE6ÿJF@ÿKGAÿLHBÿLHAÿIE?ÿEA;ÿA=6ÿ>:3ÿ=92ÿC?9ÿHD=ÿHD>ÿIE>ÿIE?ÿEA:ÿ?;4ÿHF:ÿGF9ÿIE:ÿJF;ÿMG=ÿLF<ÿLB:ÿI?7ÿK?9ÿK?9ÿQC?ÿXJFÿXIFÿL=:ÿ>/-ÿ6'%ÿYURÿÿÿýÿþýúÿÿÿýÿÿÿýÿøøöÿüÿýÿøýùÿûÿþÿûÿþÿýÿþÿýÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿüúÿÿÿüÿÿòíÿǺµÿ{qÿjXNÿnXHÿybSÿdSÿdSÿƒfTÿ‰lYÿsaÿ•xfÿ–yhÿ–yhÿlcÿS@7ÿ:) ÿB1(ÿ<.'ÿ,ÿ8/(ÿ]TMÿîêåÿùôïÿÿÿûÿÿÿüÿýÿýÿúþúÿùÿüÿûÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿþÿøÿþÿøÿÿÿøÿÿÿúÿÿÿúÿÿÿÿÿþÿÿÿþÿÉþÿXRMÿSD9ÿ`RFÿbL:ÿoXFÿtXBÿrV@ÿnT?ÿmS=ÿkQ<ÿkQ<ÿlR=ÿnT>ÿmS>ÿmS=ÿkR<ÿoU?ÿpV@ÿmS=ÿlS=ÿnT?ÿmS=ÿiO9ÿnR=ÿkP;ÿjN9ÿiM8ÿjN8ÿiM8ÿfK7ÿdJ5ÿaJ9ÿ\E4ÿN<1ÿ\J>ÿ?2,ÿH:4ÿƒxvÿüñïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿýÿÀÀ½ÿ84-ÿ@;4ÿA8,ÿE;0ÿMA2ÿOC4ÿFB;ÿGC=ÿIE?ÿKGAÿLHAÿKGAÿJF@ÿIE?ÿQMGÿYVOÿa]Wÿd`Yÿd`Yÿa]WÿYUOÿQMFÿJH;ÿHG:ÿIE9ÿIE:ÿLE;ÿKD:ÿKA9ÿH?7ÿJ=8ÿI=7ÿN@<ÿUGCÿTEBÿI:7ÿ=.,ÿ6'%ÿUQOÿÿÿýÿÿÿýÿþýúÿÿÿýÿùù÷ÿüÿýÿûÿüÿûÿþÿûÿþÿýÿþÿýÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿúøÿÿÿüÿÿÿúÿÿûöÿëÙÏÿ¾¬¢ÿ”}nÿr[LÿƒhWÿ€eSÿ€cQÿƒfTÿ‡jXÿ„gUÿz]LÿpSBÿI6-ÿH5+ÿE4+ÿA0'ÿ:-%ÿ]OGÿ¯¦Ÿÿÿùòÿúõðÿÿûõÿÿÿüÿÿÿüÿüÿüÿûþûÿúÿýÿûÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿþÿøÿþÿøÿÿÿøÿÿÿúÿÿÿúÿÿÿÿÿþÿÿÿþÿÿÿúÿf`ZÿVG<ÿ_PEÿeN<ÿ{dRÿsXBÿw[EÿsYCÿqWAÿoV@ÿnU?ÿoU?ÿpV@ÿpVAÿpVAÿnU?ÿrXBÿrXBÿoU?ÿnT>ÿpV@ÿoU?ÿkQ<ÿnS>ÿmQ<ÿlP;ÿkO:ÿlP:ÿkO9ÿgM9ÿeK6ÿbK:ÿ\E4ÿTA6ÿZG<ÿVHBÿ@3-ÿÊ¿¼ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþÿûÿ½¾ºÿ3.%ÿ=8.ÿH<.ÿJ>0ÿP?/ÿTC2ÿLB7ÿND8ÿPE:ÿRH=ÿUK?ÿWMBÿYOCÿZODÿdZOÿpf[ÿ|rgÿwlÿvkÿzpdÿmcXÿaVKÿUK:ÿRI8ÿQE6ÿPD5ÿRC6ÿQB5ÿQ@5ÿP>4ÿM;3ÿL92ÿM<6ÿRA;ÿN?;ÿD51ÿ9,(ÿ4($ÿRLHÿÿÿûÿÿÿüÿýúöÿÿÿüÿúü÷ÿûÿüÿüÿýÿûÿþÿûÿþÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþûûÿþø÷ÿÿûùÿÿÿùÿÿ÷ñÿíßÖÿÕǾÿ{qÿ‚qfÿxf\ÿtbWÿr`WÿiWOÿYG@ÿJ91ÿ0("ÿ-% ÿ=50ÿqjdÿ½·²ÿùóïÿÿÿüÿÿüùÿÿÿýÿÿÿýÿÿÿþÿþþýÿþþþÿþþþÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿüÿüÿüÿûÿþÿûÿþÿúÿÿÿúÿÿÿüÿÿÿüÿÿÿÿÿüÿº¸´ÿUK@ÿ\QFÿmZGÿ\I6ÿ„lSÿqY@ÿz]Fÿx\DÿvZBÿuX@ÿtX@ÿuXAÿwZBÿx[Dÿz]Eÿ}`Hÿ|`Hÿy\Dÿx[Cÿy\Eÿx[DÿtX@ÿsV>ÿrT=ÿpS;ÿpS;ÿoS;ÿnR:ÿiO9ÿfM6ÿ]H6ÿdO=ÿN?3ÿ]NBÿB93ÿzqkÿòíêÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿüÿÂÿÿ60'ÿ=8/ÿNB4ÿPC5ÿRA0ÿXG6ÿRH<ÿRG<ÿRG<ÿSH=ÿTJ?ÿWLAÿYNCÿZPEÿf[Pÿsi^ÿ‚xmÿ‰tÿˆ~sÿ~tiÿndXÿ_UJÿWN=ÿTJ:ÿRF7ÿOC4ÿQB5ÿPA4ÿQ?5ÿO>3ÿK91ÿJ70ÿJ93ÿM<7ÿH:5ÿ?0,ÿ6)&ÿ4'#ÿPJFÿÿÿûÿÿÿüÿüúõÿÿÿüÿþÿûÿ÷ûøÿüÿýÿûÿþÿûÿþÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿýýÿÿþýÿÿÿýÿÿÿúÿÿÿúÿÿýôÿÿ÷îÿÿ÷ìÿ÷æÛÿáÎÄÿ˹¯ÿ»¨ ÿ«™ÿ™ˆÿŽ|uÿļ¶ÿàØÓÿûôïÿÿÿùÿÿÿûÿÿÿûÿÿýúÿùõòÿÿÿýÿÿÿýÿýþüÿýýüÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿüÿüÿüÿûÿþÿûÿþÿúÿÿÿúÿÿÿüÿÿÿüÿÿÿôòîÿÿÿüÿ†{pÿWLAÿq^Kÿ^L8ÿ…mTÿmU<ÿ|`Hÿ|_Gÿz]Eÿx[CÿwZBÿy\Eÿ}`Hÿ€cLÿ‚eNÿ†iQÿ†iQÿ‚eNÿ€dLÿ€cLÿ}aIÿx[DÿwZBÿvXAÿtW?ÿsV>ÿrV>ÿpT<ÿkQ;ÿhO9ÿcN<ÿdO=ÿZL@ÿPA5ÿRIBÿØÏÉÿÿúøÿÿýûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿûÿÿÿûÿÿÿýÿúÿÍÏÉÿA;1ÿ@:/ÿRD4ÿUG7ÿVB/ÿ]I7ÿ[K;ÿZJ:ÿYI9ÿYH9ÿZJ:ÿ\L<ÿ^N>ÿ`O@ÿm]Mÿ{k[ÿŠzjÿ‘€qÿoÿ…ueÿtdTÿeUEÿaO<ÿ]K8ÿ[G5ÿXD2ÿYB3ÿYA2ÿW?3ÿV>1ÿP:0ÿO8/ÿK92ÿM;4ÿC71ÿ:.(ÿ1(#ÿ0("ÿ]VQÿÿûöÿÿÿûÿÿûöÿÿÿüÿÿÿüÿõùõÿüÿýÿûÿþÿûÿþÿûÿÿÿûÿÿÿýÿÿÿýÿÿÿÿþÿÿÿþÿÿ÷úýÿûþÿÿþÿÿÿþÿÿÿÿÿýÿûø÷ÿýøôÿÿúöÿÿÿûÿÿÿûÿÿûùÿÿù÷ÿÿùúÿÿýþÿÿþÿÿÿþÿÿúüùÿùûøÿúûøÿúûøÿýþüÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿþþþÿýûûÿÿýýÿÿÿÿÿÿÿÿÿÿÿÿÿþûüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿþÿÿÿþÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿÿÿýÿÿÿýÿÛÕÉÿnh]ÿ]O:ÿxjUÿlX=ÿo\Aÿ‚cJÿ‚cJÿbIÿ€aHÿ€aHÿ„eLÿ‹lSÿ‘rYÿ“t[ÿ˜y`ÿ›|cÿ˜y`ÿ•v]ÿ‘rYÿŠkRÿ‚cJÿaHÿ|^Eÿx\BÿvY?ÿsX?ÿqV=ÿkT<ÿiR:ÿgVCÿUD1ÿ_THÿJ?2ÿ¦¢œÿÿûõÿÿÿýÿøøõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿûÿÿÿûÿÿÿûý÷ÿÝßÙÿRLAÿB<1ÿPA2ÿVG8ÿVB/ÿ^I7ÿYI9ÿXH8ÿXH8ÿYH9ÿZJ:ÿ]M=ÿ_O?ÿaQAÿk[KÿvfVÿ‚rbÿ†vfÿ…ueÿ~n^ÿp`PÿdTDÿaO<ÿ^L9ÿ\H6ÿZF4ÿ\E5ÿ[D4ÿYA4ÿW?2ÿR<2ÿQ;1ÿN<4ÿN=5ÿC70ÿ9-&ÿ0'"ÿ0("ÿ|upÿÿøòÿÿÿúÿÿþùÿÿÿüÿÿÿüÿöúöÿüÿýÿûÿþÿûÿþÿûÿÿÿûÿÿÿýÿÿÿýÿÿÿÿþÿÿÿþÿÿûþÿÿ÷úýÿõö÷ÿö÷øÿýûùÿÿÿýÿÿÿüÿÿÿüÿÿüøÿÿÿûÿÿÿýÿÿÿýÿÿüýÿþùúÿýùüÿþúýÿýÿüÿþÿýÿÿÿýÿÿÿýÿÿÿþÿúûøÿûüúÿÿÿþÿýýýÿüüüÿýûüÿÿþþÿÿÿÿÿÿÿÿÿÿþÿÿýúûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿþÿÿÿþÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿÿÿýÿðñîÿÿÿöÿÅ¿³ÿdVAÿYK6ÿp]BÿxeIÿƒdKÿ…eLÿ†gNÿ†gNÿˆiPÿqXÿ›{bÿ£„kÿ®vÿ¶—~ÿ¼„ÿ»œƒÿ¶—~ÿ®Žuÿ¡‚iÿ•v]ÿ‡jPÿƒeKÿ|_Eÿw[AÿsX?ÿrW=ÿlU>ÿkT<ÿ^M:ÿZI6ÿPF9ÿ…xÿêæßÿÿÿúÿÿÿýÿþþûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿûÿþÿûÿþÿûý÷ÿðòìÿgaUÿHA6ÿQA1ÿYI9ÿ[E2ÿbL9ÿ]I6ÿ^J7ÿ^J7ÿ_K8ÿ`L9ÿbN;ÿcO<ÿdP=ÿjVCÿr^KÿyeRÿ{gTÿzfSÿvbOÿnZGÿeQ>ÿeN9ÿcL7ÿcJ7ÿbI6ÿdH7ÿbF5ÿ^B5ÿ\?2ÿX?4ÿW?4ÿR@8ÿR@8ÿC91ÿ8-&ÿ-(!ÿ.("ÿ¦Ÿ˜ÿÿûôÿÿþøÿÿÿúÿýþùÿÿÿûÿúþúÿýÿýÿûÿþÿûÿþÿûÿÿÿûÿÿÿýÿÿÿýÿÿÿþþÿÿþþÿÿøÿÿÿöýÿÿùþÿÿúÿÿÿýÿÿÿýÿÿÿùùùÿôôôÿúúúÿüüüÿýþÿÿýþÿÿúýÿÿúýÿÿøýÿÿøýÿÿøÿÿÿöÿýÿóûúÿóûúÿùÿþÿúÿÿÿýÿÿÿýÿÿÿÿÿÿÿþþþÿÿýþÿÿþþÿÿþÿÿÿþÿÿÿüÿÿÿûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿýÿÿÿýÿüÿÿÿüÿÿÿúÿÿÿúÿÿÿùüúÿùüúÿÿÿ÷ÿÿÿöÿ¯¥ÿ_T>ÿufIÿtdGÿ€`GÿƒcIÿ†fMÿ‰iOÿmSÿ˜x^ÿ¦†lÿ±‘wÿÅ¥Œÿа–ÿÙ¹ŸÿÚº ÿÓ³šÿǧÿ´”zÿ¥…kÿŽrWÿˆkPÿcHÿx\@ÿrX>ÿqW<ÿlV>ÿkV=ÿ[L8ÿk\Hÿ~viÿçßÒÿ÷öïÿÿÿúÿöùöÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿûÿþÿûÿþÿþÿùÿþÿúÿvpeÿNG<ÿRB2ÿ\L<ÿ_I6ÿfP<ÿaM:ÿaM:ÿaM:ÿaN;ÿaN;ÿaN;ÿaN;ÿaN;ÿiUBÿo[Hÿr^Kÿr^Kÿq]Jÿp\IÿkWDÿeQ>ÿdM8ÿcL7ÿdK8ÿdK8ÿfJ9ÿdH7ÿ`C6ÿ\@3ÿZA6ÿZA7ÿUC:ÿUC:ÿE:3ÿ8.'ÿ-(!ÿ-(!ÿü¶ÿÿÿøÿÿþøÿÿÿúÿùúôÿþÿúÿýÿýÿýÿýÿûÿþÿûÿþÿûÿÿÿûÿÿÿýÿÿÿýÿÿÿþþÿÿþþÿÿøÿÿÿóúþÿôùûÿ÷ýÿÿûýýÿøûûÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿùúýÿ÷øüÿ÷úÿÿùüÿÿöúÿÿôøÿÿðù÷ÿøÿÿÿùÿÿÿõýüÿöûúÿúÿÿÿýÿÿÿ÷ùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿüþÿÿüþÿÿüþÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿýÿÿÿýÿüÿÿÿüÿÿÿúÿÿÿúÿÿÿýÿþÿüÿýÿÿÿõÿÿÿöÿÿÿíÿ¿´žÿaQ5ÿn^AÿzZAÿ~^EÿƒcIÿ†fMÿŒlSÿ™y_ÿ©‰oÿµ•{ÿʪÿÖ¶œÿáÁ§ÿãéÿܼ¢ÿ̬’ÿ¶–|ÿ¤„kÿ“v[ÿ‹oTÿeIÿx\AÿqX=ÿpW<ÿlW>ÿlW>ÿn_KÿqaNÿèáÓÿÿÿôÿÿÿúÿÿÿúÿùüùÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿúþÿÿúþÿÿùþÿÿùþÿÿùûýÿ÷øúÿ·±ªÿOICÿOA0ÿRE4ÿkX@ÿXF.ÿfP<ÿfO<ÿhN<ÿgN<ÿkN=ÿlO>ÿpO?ÿqP@ÿsRCÿtSDÿtUFÿuVGÿqUGÿoSDÿjPBÿhN@ÿgOEÿdLBÿcJ>ÿbH<ÿeI:ÿdH8ÿbF4ÿ_D2ÿdJ9ÿT;*ÿgRFÿS>1ÿ@0(ÿ=.&ÿ(ÿM@<ÿïïïÿöööÿþþþÿÿÿÿÿÿÿÿÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿþÿüþþÿüþþÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿûþýÿýÿÿÿûþýÿùûûÿúýüÿýÿÿÿýÿÿÿýÿÿÿùûûÿÿÿÿÿýýýÿ÷÷÷ÿ÷÷÷ÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿþþþÿùùùÿÿÿÿÿóóóÿ°°°ÿdddÿxcRÿpZIÿoYGÿxbOÿ€hTÿƒkWÿ‘w`ÿ¡‡oÿ²–{ÿ»ž„ÿɪÿÏ°“ÿ̬Œÿ½œ}ÿ«Šjÿž}]ÿrZÿaIÿsXBÿw\Fÿt_LÿoZFÿeWHÿi[LÿŒ…{ÿÝÖÌÿÿÿúÿÿÿúÿôùöÿûÿýÿøÿÿÿöþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿúþÿÿúþÿÿùþÿÿùþÿÿùúüÿýÿÿÿâÜÕÿJE>ÿbUDÿZL;ÿ`M5ÿdR:ÿgQ=ÿgQ>ÿjQ>ÿjQ>ÿnQ?ÿnQ@ÿqP@ÿqQAÿpO@ÿqPAÿpQCÿqRCÿoRDÿmQCÿjPBÿiOAÿdLBÿcKBÿeK?ÿdK>ÿgK;ÿfJ:ÿeJ8ÿdH6ÿ^D4ÿqWFÿ_J=ÿP;.ÿK;3ÿ&ÿA40ÿymhÿôôôÿúúúÿÿÿÿÿÿÿÿÿþþþÿüüüÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿûþýÿüþþÿýÿÿÿýÿÿÿüþþÿúüüÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿøúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿþþþÿüüüÿúúúÿÿÿÿÿÿÿÿÿëëëÿÂÂÂÿ†q_ÿ{fTÿxbOÿ|fSÿ~fQÿw_Kÿz`Hÿ€fNÿ–y_ÿš~cÿ¢„gÿ¥‡jÿ¥…fÿ}^ÿ•tTÿnMÿcKÿbJÿ|bKÿy_HÿjUBÿiTAÿxj[ÿ”…vÿèâ×ÿÿþóÿÿÿúÿøøòÿôúöÿûÿýÿøÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿûþÿÿûþÿÿùþÿÿùþÿÿúûýÿýÿÿÿÿþøÿxsmÿ\O@ÿ^RBÿYH2ÿgVAÿeT=ÿfU=ÿiU>ÿjV?ÿmU@ÿmU@ÿoT@ÿoT@ÿoS?ÿoS?ÿnS@ÿnT@ÿlTAÿlUAÿkUAÿkUAÿiN?ÿjO@ÿlP@ÿkO?ÿjM;ÿhK9ÿgK8ÿgK8ÿdL;ÿhP?ÿ]J>ÿR?3ÿ5&ÿ3%ÿ3($ÿǽ¹ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿûûûÿüüüÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿûþýÿûýýÿüþþÿüþþÿûýýÿúüüÿüþþÿûýýÿúýüÿûýýÿüÿþÿýÿÿÿýÿÿÿýÿÿÿøøøÿúúúÿûûûÿüüüÿûûûÿüüüÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿýýýÿúúúÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿïãÿºªÿsbTÿ]L>ÿr_Pÿ„qbÿ…q_ÿ}iWÿ€iTÿjVÿ…mUÿ†mVÿ‡mTÿ„jQÿƒhNÿfLÿu^Mÿv_Mÿs^MÿmXHÿjZKÿ|nÿÎ÷ÿÿÿöÿÿÿøÿÿÿøÿüý÷ÿþþøÿüÿýÿüÿýÿôûùÿùÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿûþÿÿûþÿÿùþÿÿùþÿÿýÿÿÿôõ÷ÿÿÿúÿØÓÌÿWJ;ÿ_SCÿ^M7ÿhWAÿeT=ÿfU>ÿjV@ÿlXAÿoWBÿoWBÿqVBÿqVAÿtWDÿtWDÿrWDÿrWDÿoWDÿpXDÿnXDÿnXEÿmRCÿnSEÿpTDÿnRBÿkN<ÿhK9ÿfK8ÿgK8ÿrYIÿ[B1ÿ]J>ÿM9-ÿ0"ÿ1#ÿ]ROÿÿõòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿüüüÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿûþýÿûýýÿüÿþÿýÿÿÿýÿÿÿüÿþÿýÿÿÿüþþÿúýüÿúüüÿùûûÿùûûÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿüüüÿüüüÿüüüÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿþþþÿøøøÿõõõÿúúúÿÿÿÿÿÿþòÿÿùíÿõãÖÿij¥ÿˆufÿbP@ÿjVDÿlZÿ{dPÿ{dPÿ}eMÿ}dMÿ~dKÿ}cJÿ}bHÿ}bGÿw`NÿlUCÿr]Mÿž‰xÿÓ´ÿüìÝÿÿûðÿÿþòÿü÷ïÿÿüôÿýþøÿÿÿûÿüÿýÿ÷üøÿïöôÿùÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿûþÿÿûþÿÿûþÿÿûþÿÿþÿÿÿö÷øÿÿÿúÿÿÿûÿŠrÿ[QDÿXJ8ÿgYGÿeV;ÿfW<ÿjX=ÿkY?ÿpZ@ÿq[Aÿu[Bÿu[Bÿx\Dÿy]Dÿx^Eÿy_Fÿv_Eÿu]Dÿr\Bÿq[AÿvXAÿvXAÿuW@ÿsT>ÿnQ;ÿmP:ÿiO;ÿjP<ÿoYIÿlVFÿI:/ÿ3#ÿ:/)ÿ)ÿÐÈÆÿÿýûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿüÿþÿûþýÿüþþÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿøûúÿøúúÿüþþÿùùùÿùùùÿúúúÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿûûûÿþþþÿÿÿÿÿþþþÿöööÿøøøÿÿÿÿÿÿÿöÿÿÿóÿÿûðÿÿùíÿôêßÿÎźÿ¢–‹ÿ€ujÿzlaÿvh^ÿscYÿp_Uÿq_UÿucYÿ{h^ÿlbÿ‘ƒ{ÿµ¨ ÿä×Ðÿÿöïÿÿûôÿÿöïÿÿùóÿÿÿúÿÿÿûÿÿÿûÿÿÿüÿúü÷ÿùüøÿöùõÿöú÷ÿüÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿûþÿÿûþÿÿûþÿÿûþÿÿûüþÿþÿÿÿÿý÷ÿÿÿûÿßÔÇÿrh[ÿQB0ÿgYGÿgX=ÿgX=ÿjX>ÿlZ@ÿr\Bÿu^Eÿz`Gÿ|bIÿ~bJÿfMÿ„jQÿ‡mTÿ…nTÿ‚jQÿ|gMÿycIÿ~_Iÿz[EÿvWAÿsU>ÿsV@ÿtW@ÿqWCÿpVBÿcN>ÿkUEÿ8(ÿ,ÿ%ÿŠzÿþöôÿÿýûÿþþþÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿþÿüþþÿüþþÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿüþþÿûýýÿ÷úùÿúüüÿýÿÿÿýÿÿÿýÿÿÿúýüÿýÿÿÿÿÿÿÿÿÿÿÿýýýÿûûûÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿýýýÿÿÿÿÿÿÿÿÿüüüÿþþþÿÿÿÿÿÿÿõÿÿÿóÿÿþóÿÿÿöÿÿÿöÿÿÿöÿÿüñÿÿöëÿå×ÍÿÞÐÆÿ×ƼÿÑÀ¶ÿÔ¸ÿÝËÁÿê×ÍÿòßÕÿÿÿ÷ÿÿúòÿÿøñÿÿþ÷ÿÿÿùÿÿÿùÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿþÿûÿöøóÿüÿüÿýÿýÿùþúÿøýùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüþÿÿüþÿÿüþÿÿüþÿÿùùùÿÿÿÿÿÿþùÿ÷óïÿÿÿ÷ÿ·¯¥ÿdYLÿcXJÿnZ@ÿnZ@ÿqY@ÿr[Aÿz^DÿcIÿ‡gMÿŠjPÿ”rWÿšx^ÿ£fÿªˆmÿªŠnÿ¥†jÿ€cÿ˜{^ÿ‘qUÿˆhLÿ|]CÿxY?ÿvZCÿw\EÿpYFÿmVCÿWF8ÿ@/!ÿ2&ÿ4( ÿJD?ÿõîêÿïëéÿÿÿýÿþþþÿþþþÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþþÿüþþÿüÿþÿýÿÿÿýÿÿÿüþþÿøúúÿô÷öÿýÿÿÿøûúÿëîíÿéìëÿéìëÿçêéÿíïïÿöùøÿöø÷ÿýÿÿÿýÿÿÿýÿÿÿüþþÿ÷ùùÿúüûÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿýýýÿþþþÿýýýÿüüüÿýýýÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿýþÿøöõÿøöõÿÿýúÿÿÿýÿÿÿüÿÿÿüÿÿúõÿü÷òÿþøòÿÿþøÿÿÿúÿÿÿúÿþúúÿÿþþÿÿþÿÿÿüýÿûøøÿû÷øÿþüûÿÿÿþÿúù÷ÿþýûÿúûøÿüýúÿÿÿýÿÿÿýÿùû÷ÿùúöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüþÿÿüþÿÿüþÿÿüþÿÿÿÿÿÿþþþÿÿÿûÿÿÿûÿÿÿ÷ÿÿýóÿ„wÿg\Nÿq]Cÿp\Bÿs[Aÿt\Cÿ|`Fÿ‚fLÿŒlRÿpVÿ¥ƒhÿ­‹pÿ¹—|ÿá†ÿÄ¥‰ÿÀ „ÿ¶™|ÿ°“vÿ¡eÿ”sXÿƒdJÿ{\Bÿx\Eÿx\EÿnWDÿhQ>ÿVD6ÿ&ÿ8,$ÿ<1(ÿ¿¸´ÿÿþúÿÿÿýÿÿýûÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþþÿüþþÿüÿþÿýÿÿÿüÿþÿøûúÿóõõÿîððÿ£¥¥ÿ€‚‚ÿZ\\ÿDFFÿ;==ÿ:<<ÿFIHÿVXXÿuwwÿž ŸÿÒÔÔÿõ÷÷ÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿþþþÿþüýÿÿþÿÿÿÿþÿÿÿþÿÿýûÿ÷ôòÿÿüøÿÿþúÿÿÿûÿÿÿûÿÿÿúÿÿÿùÿÿüõÿÿúóÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþþÿÿþÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿýþûÿÿÿýÿÿÿýÿõ÷óÿö÷óÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿûûûÿÿÿÿÿÿÿýÿûùöÿÿþ÷ÿÿÿúÿèáÙÿ ™‘ÿsYEÿqXCÿuXCÿwZEÿ}ZEÿ_Jÿ‘jTÿžxbÿ«‚jÿÀ–ÿد–ÿ迦ÿîƬÿèÀ¦ÿÔ®“ÿÁšÿ¦ˆlÿ¢„iÿ•zaÿˆmTÿzdOÿu^JÿeTDÿZJ:ÿ@5*ÿ$ÿB<6ÿ±ª¤ÿÿýúÿÿÿüÿûù÷ÿÿþüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿûûûÿÿÿÿÿÿÿÿÿûûûÿþþþÿÿÿÿÿÿÿÿÿýÿÿÿ÷úùÿúýüÿýÿÿÿôööÿµ··ÿ`bbÿ$&&ÿÿÿ!!ÿ #"ÿ!##ÿ"!ÿ ÿÿÿÿÿPSSÿ¦©©ÿêíìÿýÿÿÿýÿÿÿúýýÿùüüÿûýýÿýÿÿÿýÿÿÿ÷úúÿöùùÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿûÿÿÿûÿÿÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþÿÿýþÿÿýþÿÿýþÿÿýþÿÿýþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿþþþÿüüüÿÿþúÿÿýúÿÿÿúÿÿÿúÿÿÿøÿåÞÖÿ£‰tÿ‹q\ÿ~aLÿ€cNÿ‡dOÿ_Iÿ†`JÿhRÿ­ƒlÿºyÿÈŸ†ÿÓª‘ÿÚ²˜ÿÛ´™ÿÒ¬‘ÿÇ¡†ÿ»ÿ ƒgÿ‚gNÿ{`GÿzdPÿq[GÿN=.ÿ2!ÿ
+ÿ†ˆ‰ÿòõöÿÿÿÿÿüûûÿûö÷ÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüüÿþÿÿÿ¼¿¾ÿ022ÿ$''ÿ,//ÿ265ÿ+0/ÿ=BBÿ@EDÿ?FDÿ<BAÿ9A@ÿ9@?ÿ6>=ÿ1:8ÿ<AGÿ9>Cÿ9@Dÿ=DHÿ:BEÿ/7:ÿ%-/ÿ(*ÿ!()ÿ ÿ/22ÿ·ººÿÿÿÿÿýûüÿÿþÿÿþùúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÿZZZÿ)))ÿ355ÿÿ=@@ÿ:==ÿ8<<ÿ8<<ÿ287ÿ,21ÿ-32ÿ6=<ÿ;CAÿ<CBÿ,47ÿ4=?ÿ19;ÿ)13ÿ4;=ÿCKMÿ9>@ÿ"$ÿ
+ ÿ136ÿÿ[Z\ÿãßâÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡¡¡ÿ444ÿ000ÿ*,,ÿ465ÿ487ÿ477ÿ/43ÿ8<;ÿ;A@ÿ8>=ÿ6<;ÿ6=<ÿ298ÿ+31ÿ19<ÿ.69ÿ/7:ÿ19<ÿ*13ÿ&(ÿ!')ÿ+02ÿ(*,ÿ!$&ÿÿ#"$ÿ«§ªÿÿþÿÿõðòÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿüùøÿ\YXÿ632ÿ531ÿ875ÿ542ÿ::8ÿ;<:ÿ120ÿ887ÿ:<:ÿ8:8ÿ586ÿ7:8ÿ7;9ÿ6:7ÿ176ÿ176ÿ165ÿ/33ÿ-//ÿ*,,ÿ+++ÿ+++ÿ'%%ÿ&#$ÿÿ($%ÿKGIÿÿþÿÿýùûÿÿüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÑÎÌÿJGFÿ965ÿ><:ÿA@>ÿ:87ÿ453ÿ..-ÿ01/ÿ665ÿ797ÿ686ÿ586ÿ8;9ÿ9=:ÿ7;9ÿ4:9ÿ398ÿ276ÿ/43ÿ-//ÿ*-,ÿ+++ÿ***ÿ%##ÿ%"#ÿ%!"ÿ(%%ÿ?;=ÿßÚÜÿü÷úÿÿúüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿ£œ—ÿ>61ÿB;6ÿG@;ÿKE?ÿD>8ÿ<72ÿ2-(ÿ52,ÿ95/ÿ860ÿ64.ÿ65/ÿ:93ÿ::3ÿ871ÿ66.ÿ54-ÿ52,ÿ30*ÿ4-)ÿ3,(ÿ3+(ÿ3+'ÿ2)'ÿ1(&ÿ4-,ÿ4-,ÿ3/.ÿ©¥¤ÿþüûÿÿýüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿýýýÿýýýÿ„}wÿ70*ÿE>9ÿB;6ÿGA;ÿHB<ÿFB<ÿB=7ÿ;71ÿ;82ÿ970ÿ64.ÿ760ÿ;:3ÿ992ÿ54.ÿ65.ÿ43,ÿ52+ÿ52,ÿ93.ÿ;50ÿ=51ÿ=52ÿ@75ÿ:1/ÿ@98ÿ<54ÿ/+*ÿ}yxÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿüüüÿûûûÿvjaÿ;/%ÿLA7ÿD8/ÿI?5ÿOE;ÿQH>ÿSJ@ÿIA7ÿIA7ÿF@5ÿGA6ÿLG<ÿRMBÿPKAÿJE:ÿND8ÿKA5ÿJ>3ÿI>3ÿN@6ÿQB9ÿQB:ÿQA:ÿM@:ÿB5/ÿC;6ÿ>60ÿ+)$ÿca\ÿÿÿüÿýÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿûûûÿúúúÿk_Vÿ:.$ÿNB9ÿE:0ÿMC9ÿPF<ÿND:ÿRI?ÿPH>ÿQI?ÿRKAÿXRGÿe_Tÿoi_ÿnh^ÿfaVÿ\RFÿVM@ÿRF;ÿOD9ÿRD:ÿSD;ÿQB:ÿO?8ÿJ=7ÿ@2,ÿ>61ÿ6.)ÿ'% ÿZXSÿÿÿûÿøùôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿúúúÿùùùÿrcWÿA3&ÿSE8ÿJ<0ÿUH;ÿTG:ÿMA4ÿUI<ÿTI<ÿVK>ÿYPCÿe\Nÿvn`ÿ„{nÿ‚zmÿzrdÿfWGÿ_P@ÿYG9ÿUC5ÿVB6ÿVB5ÿR>3ÿO:0ÿI90ÿD3+ÿA8/ÿ5,$ÿ)( ÿ``Xÿùýõÿúþöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿúúúÿøøøÿ|naÿH:-ÿTF9ÿI;/ÿVI<ÿSF:ÿMA5ÿYM@ÿQF9ÿSI<ÿXOAÿe\Oÿxpbÿ†}pÿƒ{nÿzrdÿhYIÿaQBÿZH:ÿVD6ÿXD8ÿXD8ÿUA6ÿQ=3ÿH8/ÿI80ÿG>6ÿ8/'ÿ.-%ÿlkcÿùýöÿþÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿõõõÿÿÿÿÿÿÿÿÿöööÿüüüÿþþþÿýýýÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿÿþÿÿÿþÿÿþûÿÿüúýÿÿþÿÿýûþÿõõöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿ“Š{ÿF=.ÿ\M<ÿUF5ÿfP=ÿbL9ÿ^C.ÿdH4ÿhM8ÿhM8ÿgP=ÿqZGÿvfUÿ}m\ÿwm]ÿtiZÿgZLÿ_RDÿXJ:ÿTF5ÿWF4ÿWG4ÿUC1ÿQ?-ÿK:+ÿWF7ÿ</&ÿI<3ÿ8/,ÿ†ƒÿý÷øÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿýýýÿÿÿÿÿÿÿÿÿ÷÷÷ÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿñññÿúúúÿÿÿÿÿÿþÿÿóðôÿÿýÿÿÿþÿÿþüþÿöô÷ÿýýþÿüüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿ¿¶§ÿG>.ÿZL;ÿaRBÿ`I6ÿhR?ÿbG2ÿmQ=ÿgL7ÿgL7ÿeN;ÿjT@ÿj[Jÿn^Mÿh^Nÿf\Lÿ_SDÿZN?ÿXI9ÿVG7ÿYH6ÿYH6ÿXF3ÿUC1ÿTC4ÿO>/ÿC6-ÿI<3ÿ90.ÿżºÿÿþÿÿÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýþÿþÿÿÿ÷øúÿïðñÿþÿÿÿþÿÿÿôõöÿûüýÿñòôÿúûüÿüýþÿõö÷ÿðñóÿîïðÿåæçÿÙÚÛÿéìíÿüÿÿÿùüýÿëîïÿøúûÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéâÕÿSL?ÿPD5ÿg[Lÿ\G5ÿlWEÿdH4ÿmQ<ÿlM8ÿmN8ÿlO:ÿnR<ÿkS?ÿlT@ÿhTBÿhTAÿdN<ÿcM<ÿcM:ÿcL9ÿbK8ÿaJ6ÿ]H5ÿ\G4ÿWE6ÿJ8)ÿK?6ÿF90ÿD=;ÿóìêÿÿûýÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþÿÿþÿÿÿúûüÿôõöÿþÿÿÿþÿÿÿûüýÿþÿÿÿþÿÿÿ÷øùÿÆÇÉÿ~€ÿCDEÿ,-/ÿ,-.ÿ/02ÿDFGÿPSTÿ®±²ÿýÿÿÿûýþÿôö÷ÿþÿÿÿñòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúíÿ…rÿL?0ÿfYJÿgR@ÿs^LÿkO:ÿhL7ÿpR<ÿrT>ÿqU@ÿqU@ÿlT@ÿkT@ÿiUBÿjVCÿdO=ÿfQ?ÿiS@ÿhR?ÿeO;ÿbL8ÿ_I7ÿ^I6ÿVD5ÿR@2ÿOC:ÿG:2ÿsljÿÿþûÿøôöÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþÿÿòô÷ÿüþÿÿüþÿÿûýÿÿóõøÿúýÿÿûýÿÿËÍÏÿknpÿ!$ÿ!ÿ.02ÿ&(+ÿ!#ÿ&(*ÿ'%ÿ(&ÿ ÿ+42ÿŸ¦¥ÿõüûÿûÿÿÿûÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÉƽÿXOCÿWNBÿn\Kÿr`Pÿw[GÿlP<ÿuT=ÿwV?ÿ{W@ÿ{W@ÿxU>ÿwT=ÿuT>ÿvU?ÿrP:ÿtR<ÿtS=ÿsR<ÿmO:ÿkM7ÿeK9ÿeK9ÿZH:ÿ\J<ÿG;3ÿUJBÿ½¸¶ÿÿÿýÿöõ÷ÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúüÿÿøúýÿüþÿÿúüþÿõ÷úÿüþÿÿñóöÿ£¥¨ÿ)+.ÿ #ÿ&(*ÿ=?Bÿ?ADÿ024ÿ358ÿGJLÿ(10ÿ7@>ÿ5=<ÿÿÿqxwÿÛßßÿûÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõÿûøîÿ†}qÿTK?ÿjXGÿjXGÿy]IÿqVBÿvU>ÿxV@ÿ|YAÿ[Dÿ]Fÿ~\Eÿ{ZDÿzYCÿyWAÿwU?ÿtS=ÿrQ;ÿnP;ÿnO:ÿhO<ÿhN<ÿ]K=ÿXE8ÿH=5ÿ€tlÿöñðÿÿÿýÿùøúÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøúýÿüþÿÿüþÿÿëíïÿ÷ùüÿüþÿÿ«­°ÿ79<ÿ"$&ÿ;=@ÿKMPÿGIKÿEGIÿLNQÿJLOÿ>@Cÿ9GAÿ7E?ÿ -'ÿ$1+ÿ+50ÿ ÿPXTÿîõòÿüÿþÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùúõÿÿÿûÿÎÉÀÿpkbÿeWIÿcUGÿnVCÿqXEÿ{ZDÿ}\FÿˆbJÿ‘jSÿœs[ÿŸv_ÿžt^ÿ›qZÿ•lSÿŽeLÿƒ\Eÿ|V>ÿuT?ÿtS>ÿkQ@ÿiO>ÿ]L@ÿRA5ÿulfÿÌüÿÿÿþÿÿÿþÿûûûÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúüÿÿüþÿÿûýÿÿüþÿÿüþÿÿ³µ·ÿGILÿÿ(*-ÿ579ÿ@BEÿDFIÿEGJÿGILÿGILÿEGJÿ<ICÿCPJÿ-:4ÿ%1,ÿ.83ÿ!ÿ)0-ÿt{xÿüÿþÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüöÿÿÿûÿÿÿøÿ˜ÿqcUÿm_QÿkS@ÿt\Iÿ‚aKÿ…dNÿ”mUÿ£|dÿ´‹tÿ½”|ÿ½“|ÿ¹yÿ¬ƒjÿ w^ÿŽhPÿ„]FÿzYDÿwVAÿkQAÿhM=ÿbPEÿ[I>ÿ³©£ÿÿÿúÿÿýûÿÿþýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿðððÿTTTÿ,,,ÿ+++ÿ222ÿ111ÿ333ÿ999ÿ>>>ÿ>>>ÿ===ÿ<<<ÿ2>5ÿ2=4ÿ3=5ÿ4>6ÿ4<6ÿ,5.ÿ#)$ÿ ÿ¿ÂÀÿúýúÿÿÿÿÿùùùÿüüüÿÿÿÿÿÿýÿÿÿþÿÿþÿþÿþÿþÿÿÿûÿïíèÿµ¬¡ÿlcXÿaO?ÿvdSÿx^Jÿ…kWÿ›ydÿªˆsÿÅŸ‹ÿÛµ¡ÿ弩ÿß·£ÿÈ¢Šÿ®‡pÿlWÿ„aLÿ|_Nÿy\KÿkVJÿhRFÿbUMÿ¶©¡ÿøòíÿÿÿûÿüûøÿÿÿýÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿýýýÿÿÿÿÿ¯¯¯ÿEEEÿ...ÿ%%%ÿ777ÿ666ÿ666ÿ888ÿ:::ÿ888ÿ666ÿ555ÿ4?7ÿ1<3ÿ/91ÿ-7/ÿ.60ÿ*2,ÿ%+&ÿ% ÿrusÿîñîÿÿÿÿÿúúúÿÿÿÿÿýýýÿÿýþÿýûüÿúýûÿýÿýÿÿÿûÿÿÿûÿðçÜÿ¶­¢ÿ…sbÿbP@ÿ†kWÿ„jVÿlWÿ›yeÿ¸’}ÿÏ©”ÿØ°œÿÖ­šÿ¾˜ÿ­‡pÿmXÿ{XCÿoRAÿrVEÿlWKÿjUIÿÄ·¯ÿôçßÿÿÿûÿÿÿûÿüúøÿÿÿýÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿüùõÿþû÷ÿýúöÿheaÿ:73ÿ:73ÿ+($ÿ740ÿ851ÿ852ÿ:73ÿ;85ÿ=:7ÿ>;7ÿ>;7ÿ9=2ÿ48-ÿ/2(ÿ-1'ÿ02*ÿ25-ÿ13.ÿ02,ÿ,-*ÿØÙÖÿÿÿÿÿùùùÿÿÿÿÿø÷ùÿÿþÿÿûúýÿûýüÿýþþÿþþûÿÿÿýÿÿÿùÿøôìÿÉ¿³ÿ’‰|ÿp`QÿgWHÿmWHÿ€j[ÿœ‚tÿ¦Œ~ÿ¤‡{ÿ€tÿtbÿz`OÿxbSÿ†oaÿo^Sÿ^MCÿ‡|vÿÒÇÁÿÿùöÿÿÿüÿÿÿýÿÿþüÿûùöÿÿÿýÿÿÿüÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýùÿÿýùÿÿýùÿäáÝÿ@=:ÿ851ÿEB>ÿ962ÿ41-ÿ52/ÿ63/ÿ52/ÿ851ÿ=:6ÿ>;8ÿ=:7ÿ58.ÿ04)ÿ-0&ÿ-1'ÿ47/ÿ:=5ÿ>?:ÿ?@;ÿÿ°±®ÿÿÿÿÿùùùÿÿÿÿÿùùúÿÿþÿÿÿþÿÿüþþÿþÿÿÿüûøÿööóÿÿÿøÿÿÿùÿÿûïÿëâÕÿ©™Šÿ…vgÿhSDÿ\G8ÿdJ<ÿkPCÿuXLÿ~aUÿw]LÿqWFÿ\F7ÿU?0ÿsbXÿ·¦œÿìáÛÿÿüöÿÿÿüÿÿüùÿüùöÿûøõÿÿýúÿÿÿýÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùñÿÿÿùÿÿÿøÿȺÿA;2ÿ=7.ÿKE<ÿGA9ÿC<4ÿC=5ÿA:2ÿ=6.ÿ?80ÿD=5ÿB<4ÿ<6.ÿB;0ÿ?8,ÿ<6+ÿ>8-ÿC>5ÿHC:ÿHD>ÿGC>ÿ20-ÿ~|xÿÿÿÿÿþþþÿö÷øÿþÿÿÿýÿÿÿûýÿÿüûýÿÿþÿÿÿÿþÿÿÿþÿÿÿûÿÿÿûÿÿÿùÿÿÿ÷ÿÿÿ÷ÿßÜÒÿ³¬£ÿ…}ÿqe_ÿYMGÿRD@ÿTFCÿ\SIÿ\RHÿ}woÿüµÿóðìÿÿýùÿÿÿÿÿÿÿÿÿÿÿÿÿüûýÿúúúÿþþþÿÿÿüÿÿÿüÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûóÿÿÿùÿÿÿùÿ·°¨ÿE>6ÿ>7/ÿE?7ÿHA9ÿMF>ÿMG?ÿKE<ÿKD<ÿTNFÿ_YPÿ]VNÿRLDÿME:ÿJB7ÿF?5ÿG@6ÿGB9ÿGB:ÿB?9ÿ?;5ÿ974ÿYWTÿÿÿÿÿÿÿÿÿøùúÿþÿÿÿúüÿÿ÷ùûÿþýÿÿûûüÿýýüÿÿÿþÿÿÿûÿÿÿùÿÿÿöÿÿÿøÿÿÿ÷ÿÿÿ÷ÿÿÿøÿÿÿøÿÿûõÿøìæÿîáÝÿëÝÙÿåÜÒÿÿÿ÷ÿÿÿùÿüõîÿïìéÿÿÿüÿÿÿÿÿñññÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿþúÿÿÿùÿÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿõÿÿÿôÿÀ·¬ÿB:/ÿC:/ÿJA6ÿKB7ÿQH=ÿRJ?ÿRI>ÿXPEÿlcXÿ~ujÿ|shÿmeZÿ[LAÿVH<ÿQD9ÿNA7ÿK@8ÿH=5ÿ?82ÿ:3-ÿ51.ÿ_\Yÿüüüÿþþþÿýÿÿÿýÿÿÿùüþÿ÷úüÿÿþÿÿýûýÿøøøÿùùùÿýÿûÿþÿüÿýÿûÿýÿûÿûÿøÿýÿúÿÿÿüÿûüøÿùø÷ÿýüûÿÿþÿÿÿÿÿÿÿÿûÿûýøÿó÷ôÿüÿþÿùÿÿÿùÿÿÿøÿÿÿøÿÿÿ÷ýÿÿùþÿÿþÿÿÿüýýÿÿýùÿÿÿúÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿøíÿÿýòÿÎÆ»ÿ:1&ÿH?4ÿPG<ÿOF;ÿQI=ÿRI>ÿQH=ÿXODÿnf[ÿ‚ynÿ}tiÿkbWÿ\MBÿWH=ÿPC8ÿL?5ÿH>5ÿE;2ÿ<5/ÿ80*ÿ0,)ÿwspÿúúúÿöööÿýÿÿÿùûüÿúýÿÿûÿÿÿÿýÿÿÿþÿÿÿÿÿÿþþþÿüÿúÿþÿüÿýÿûÿ÷üõÿ÷üõÿýÿúÿÿÿüÿüþùÿþýüÿÿÿþÿÿÿÿÿÿýþÿýÿùÿþÿúÿüÿþÿüÿþÿ÷ýÿÿóùûÿóúþÿøÿÿÿôúýÿùÿÿÿþÿÿÿþÿÿÿÿÿúÿÿÿûÿÿÿùÿÿýöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿúû÷ÿÿÿùÿßÛÓÿTI;ÿMA3ÿQ>*ÿjWCÿeK5ÿeL6ÿlO:ÿkN9ÿrTBÿ‡iWÿ‰l[ÿuWGÿmK:ÿpM=ÿeH8ÿ^@1ÿVA4ÿR=/ÿD8-ÿE8-ÿ*$ÿ¦ ™ÿÿÿüÿÿÿüÿõõõÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüøÿÿÿüÿÿÿùÿéåÝÿxl^ÿTH:ÿ]I6ÿ^J6ÿiO:ÿcJ4ÿkN9ÿpS>ÿoR?ÿsVCÿrTDÿfH8ÿoM<ÿb@/ÿaD4ÿiK<ÿ]H;ÿ]H;ÿSF;ÿD8-ÿ*%ÿÅ¿¸ÿÿÿûÿÿýùÿÿÿÿÿþþþÿýýýÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöùøÿýÿÿÿÿÿûÿù÷òÿª¡–ÿVLAÿ`O>ÿ`N>ÿjS>ÿ`H4ÿjN9ÿuYDÿrUAÿnQ=ÿqSAÿpS@ÿtTEÿjJ;ÿjOAÿhM?ÿS@4ÿ\I<ÿWLBÿ>3)ÿTOHÿðëäÿÿýúÿøöóÿÿÿÿÿûûûÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûýýÿùûûÿÿÿûÿÿÿûÿÞÔÉÿmdYÿ`O>ÿkZIÿqYEÿjR>ÿrWBÿv[FÿqT@ÿrUAÿxZHÿvXFÿuUEÿyYJÿnSDÿdI:ÿ`M@ÿdPDÿLA7ÿ6+!ÿª¥žÿÿÿúÿÿÿüÿ÷õñÿÿÿÿÿüüüÿÿÿÿÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿìñôÿÿÿÿÿþþþÿþùòÿ«¥ŸÿoaUÿ]PCÿlXGÿp]Kÿ}dPÿ|cOÿ|aKÿˆlWÿ‹nYÿ|_JÿtYLÿy^QÿbL@ÿdMAÿqaVÿYJ?ÿ@8/ÿ]ULÿôðëÿÿþøÿÿÿýÿþýûÿøøøÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿñöùÿÿÿÿÿòòòÿÿÿúÿöðêÿ¤—ŠÿaTGÿdP?ÿnZIÿƒjVÿŽuaÿ¡…pÿ¼ ‹ÿÂ¥ÿ¬zÿreÿ‰naÿpYMÿhRFÿYI?ÿ:*ÿ]ULÿÍļÿÿÿûÿôñëÿÿÿýÿÿÿýÿûûûÿÿÿÿÿÿÿÿÿûúüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ýÿÿøþÿÿûþÿÿñô÷ÿÿÿþÿÿÿþÿâÙÒÿ¡™‘ÿugZÿm^RÿxdSÿ‰udÿ§{ÿÅ­™ÿÑ·¡ÿé“ÿ˜„zÿ„ofÿm\Sÿ[JAÿF;3ÿaVNÿµ°ªÿÿÿúÿÿÿüÿÿýùÿùù÷ÿÿÿþÿÿÿÿÿýýýÿÿþÿÿúúûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöüÿÿøþÿÿóöùÿûþÿÿÿÿþÿúù÷ÿÿÿùÿøïèÿ¦—Šÿrfÿr^MÿwcRÿŠr^ÿšƒnÿ¥‹uÿŸ…oÿ‘}sÿiTJÿTC9ÿO>5ÿh]UÿÒÇ¿ÿÿÿúÿÿüöÿöõñÿÿÿüÿòóñÿúúøÿÿÿÿÿóóóÿÿþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùþÿÿùþÿÿûþÿÿûþÿÿÿþÿÿÿþÿÿÿÿýÿÿÿýÿÿüõÿÛÒËÿ©›ÿ~qeÿtbQÿtbQÿzfSÿ{gSÿUGAÿI;5ÿh]Wÿ»°ªÿ÷ñìÿÿÿúÿþýùÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿøøøÿøøøÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿúúúÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùþÿÿùþÿÿûþÿÿûþÿÿÿþÿÿÿþÿÿÿÿýÿÿÿýÿÿÿùÿÿþöÿÿöéÿ÷êÝÿëÙÈÿÒÀ°ÿº¦“ÿ§“€ÿÕÇÁÿâÔÎÿøîèÿÿÿúÿÿÿûÿþøóÿüû÷ÿÿÿüÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿøøøÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿùùùÿùùùÿôôôÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿóóóÿúúúÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýþÿÿýþÿÿýþÿÿýþÿÿÿþÿÿÿþÿÿÿÿþÿÿÿþÿÿÿúÿÿÿúÿÿÿõÿÿÿôÿÿÿòÿÿÿôÿúóðÿÿÿüÿÿÿüÿÿÿüÿÿÿýÿÿÿýÿýÿþÿýÿþÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿúúúÿÿÿÿÿÿÿÿÿ÷÷÷ÿûûûÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿýýýÿþþþÿùùùÿóóóÿùùùÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýþÿÿýþÿÿýþÿÿýþÿÿÿþÿÿÿþÿÿýûùÿÿþüÿÿÿúÿÿÿùÿÿþóÿÿÿôÿÿÿôÿÿÿôÿÿÿüÿÿÿüÿýøõÿøóðÿýüúÿÿÿýÿýÿþÿñóñÿüÿÿÿüÿÿÿýÿÿÿýÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿùùùÿòòòÿþþþÿÿÿÿÿúúúÿýýýÿëëëÿÿÿÿÿÿÿÿÿöööÿÜÜÜÿÜÜÜÿêêêÿñññÿûûûÿÿÿÿÿÿÿÿÿúúúÿüüüÿÿÿÿÿÿÿÿÿòòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿýþÿÿýþÿÿûþÿÿûþÿÿûþÿÿûþÿÿÿÿÿÿÿÿÿÿÿÿûÿÿþùÿÿûóÿû÷ïÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿüÿþÿûýýÿúÿÿÿûÿÿÿúÿÿÿúÿÿÿüÿÿÿüÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿ÷÷÷ÿúúúÿÿÿÿÿéééÿ³³³ÿxxxÿKKKÿ888ÿ:::ÿCCCÿzzzÿ«««ÿéééÿÿÿÿÿÿÿÿÿòòòÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿýþÿÿýþÿÿûþÿÿûþÿÿûþÿÿùüÿÿùùùÿøøøÿÿÿúÿÿÿûÿÿÿùÿÿÿùÿúö÷ÿøõõÿúúúÿÿÿÿÿýÿÿÿ÷ùùÿùþýÿûÿÿÿúÿÿÿúÿÿÿüÿÿÿüÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿúúúÿúúúÿÿÿÿÿÿÿÿÿúúúÿþþþÿÿÿÿÿÿÿÿÿÎÎÎÿoooÿ ÿÿ555ÿ777ÿ000ÿ222ÿÿ'''ÿeeeÿÅÅÅÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿýÿÿÿýÿþÿÿÿþÿÿÿùþÿÿùþÿÿôúÿÿöüÿÿúÿÿÿúÿÿÿýÿÿÿüÿþÿøùõÿòóïÿÿÿÿÿþþþÿùüûÿýÿÿÿûÿÿÿûÿÿÿôûûÿòùùÿùÿÿÿùÿÿÿüÿÿÿüÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿùùùÿÿÿÿÿÿÿÿÿòòòÿÿÿÿÿÿÿÿÿÆÆÆÿ:::ÿ"""ÿ ÿ<<<ÿNNNÿBBBÿ999ÿ>>>ÿCCCÿ###ÿÿZZZÿ¼¼¼ÿÿÿÿÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿýÿÿÿýÿþÿÿÿþÿÿÿùþÿÿùþÿÿøþÿÿøþÿÿúÿÿÿøýÿÿúüüÿüþþÿÿÿüÿÿÿüÿüüüÿÿÿÿÿýÿÿÿýÿÿÿúÿÿÿûÿÿÿùÿÿÿ÷ýþÿùÿÿÿùÿÿÿüÿÿÿüÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿùùùÿÿÿÿÿÐÐÐÿOOOÿÿ222ÿBBBÿBBBÿCCCÿKKKÿLLLÿFFFÿ===ÿ@@@ÿ###ÿÿTTTÿËËËÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþøùÿÿûüÿÿþÿÿÿüýÿÿÿÿÿúøøÿccdÿ102ÿ034ÿ68:ÿ6;=ÿ5:<ÿ29<ÿ5<>ÿ4<?ÿ2:<ÿ7<7ÿ7=7ÿ%+(ÿ*0-ÿÿ_feÿõüþÿøÿÿÿúÿÿÿúÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿúûÿÿþþÿÿþÿÿÿþÿÿÊÈÉÿMMNÿ//0ÿ*-/ÿ368ÿ8=?ÿ9>@ÿ6>@ÿ8?Aÿ6>Aÿ4<>ÿ.3.ÿ-2,ÿ'-)ÿ%"ÿÿ?FEÿÅËÎÿôûýÿúÿÿÿúÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþøùÿÿûüÿÿþÿÿþúùÿŒ‹ÿ=:8ÿ853ÿ1/,ÿ752ÿ994ÿ873ÿ672ÿ893ÿ783ÿ450ÿ00&ÿ00%ÿ12*ÿ$&ÿ#&"ÿ*-)ÿ‹ÿ÷ûúÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþùúÿÿüýÿÿþÿÿ÷óòÿfbaÿ964ÿB?=ÿB@=ÿ><9ÿ661ÿ22-ÿ561ÿ;;6ÿ793ÿ02,ÿ89.ÿ::/ÿ46.ÿ35-ÿ140ÿ(+'ÿ^baÿüÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùøÿÿüûÿÿÿýÿÿýûÿòìèÿZTPÿA:2ÿIC;ÿWODÿOG<ÿI@2ÿMD6ÿ]TCÿf\Kÿ]SAÿMC1ÿME3ÿPH6ÿ;5&ÿJD5ÿ;8/ÿ41(ÿIIEÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþùøÿÿþýÿÿÿýÿÿúøÿïêåÿb\XÿB;3ÿG@8ÿQI>ÿNF;ÿQH:ÿ`WIÿxn^ÿ€vfÿqgUÿ[Q?ÿRJ8ÿSK9ÿ:4&ÿIC5ÿ74+ÿ1.%ÿJJFÿ÷öòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþûúÿÿÿüÿÿÿüÿøòêÿyslÿH>2ÿPF:ÿSF5ÿSF5ÿ\K6ÿiYCÿlSÿ…rYÿyeJÿfR6ÿYJ4ÿVG1ÿNB0ÿJ=+ÿD;/ÿ4, ÿqmfÿüøñÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿù÷õÿÿþúÿÿÿüÿÿýõÿŒ†ÿMC7ÿZQEÿ\O>ÿ[N=ÿ^M8ÿaQ;ÿn[Bÿs`GÿmY>ÿaM2ÿXI3ÿSD.ÿ^Q?ÿG:(ÿPH;ÿ7/"ÿ–’Œÿÿÿúÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿþþþÿüüüÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿüüüÿÿÿÿÿÿÿþÿúûùÿÿÿüÿüúöÿÿÿùÿÑËÄÿ\REÿ[QEÿbSAÿaR@ÿfR;ÿeR:ÿlU9ÿnW;ÿrY<ÿs[=ÿiVAÿjWAÿH8&ÿhXGÿC8,ÿSH<ÿáÛÕÿõïéÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿñññÿùùùÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿþþþÿùùùÿüüüÿÿÿÿÿÿÿÿÿûûûÿ÷÷÷ÿúúúÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿùùøÿÿÿüÿù÷óÿÿþ÷ÿ÷òëÿ—ÿMC7ÿteSÿk\JÿiV>ÿlYAÿybFÿ{dIÿu\?ÿkR5ÿVC.ÿeR=ÿbRAÿ\L:ÿK@4ÿŽƒwÿ÷ñëÿÿÿúÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿùùùÿÿÿÿÿûûûÿøøøÿõõõÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿ÷÷÷ÿûûûÿÿÿÿÿÿÿÿÿüüüÿüÿÿÿòööÿÿÿþÿüýûÿüúôÿÿÿûÿÝÖÌÿpi_ÿ^QBÿaUFÿr`Lÿ„r_ÿ—‚kÿ—‚kÿ‹t[ÿ}eLÿ{iYÿdRBÿbRFÿPA4ÿwldÿßÕÍÿÿüùÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿüüüÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿíííÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿùùùÿþþþÿÿÿÿÿüüüÿõõõÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿýýýÿüÿÿÿöúùÿøù÷ÿÿÿþÿþü÷ÿÿþùÿÿÿ÷ÿÊùÿthYÿl_PÿucPÿ~jÿ·¢‹ÿɳœÿÁª‘ÿ°˜ÿ…scÿ]K;ÿeUIÿ~obÿɾ¶ÿÿÿøÿýøõÿÿýúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿøøøÿÿÿÿÿúúúÿùùùÿÿÿÿÿÿÿÿÿñññÿàààÿÔÔÔÿÕÕÕÿÜÜÜÿæææÿùùùÿÿÿÿÿþþþÿÿÿÿÿûûûÿûûûÿÿÿÿÿþþþÿùùùÿÿÿÿÿöýÿÿøÿÿÿñö÷ÿûÿÿÿÿÿþÿôôòÿÿÿûÿÿýøÿÎżÿž•ŒÿrdXÿi\Pÿ†ufÿ™ˆyÿ}lÿzgWÿ_PHÿo`XÿœŠÿÖÉÄÿÿýûÿÿÿýÿû÷øÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿÿÿÿÿÿÿÿÿýýýÿüüüÿÿÿÿÿòòòÿÉÉÉÿ‹‹‹ÿVVVÿ---ÿ+++ÿ555ÿMMMÿŠŠŠÿÌÌÌÿÿÿÿÿÿÿÿÿþþþÿõõõÿÿÿÿÿÿÿÿÿúúúÿÿÿÿÿïõ÷ÿøÿÿÿôùùÿóøøÿÿÿþÿüýûÿÿÿûÿÿþøÿÿÿ÷ÿéà×ÿÀ³¦ÿœŽ‚ÿ~oÿ‰yjÿ‰veÿ…sbÿž‡ÿ˼´ÿíáÛÿÿýøÿÿÿýÿÿýûÿÿýþÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿòòòÿÿÿÿÿûûûÿ   ÿ???ÿ+++ÿ(((ÿ...ÿ999ÿ333ÿ###ÿ###ÿ000ÿ¤¤¤ÿèèèÿÿÿÿÿúúúÿÿÿÿÿÿÿÿÿûûûÿÿÿÿÿðùüÿöÿÿÿõüþÿñøúÿüÿÿÿüÿÿÿÿþüÿùøöÿÿÿûÿÿÿûÿÿÿùÿÿùñÿòåÜÿëÞÔÿõæÜÿÿóèÿÿôñÿÿþûÿÿþýÿÿýüÿþøùÿÿüýÿýüÿÿûúþÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿøøøÿþþþÿÿÿÿÿôôôÿ†††ÿ,,,ÿÿ(((ÿJJJÿYYYÿIIIÿ???ÿEEEÿ<<<ÿ%%%ÿÿ¥¥¥ÿýýýÿþþþÿüüüÿÿÿÿÿýýýÿÿÿÿÿöÿÿÿðùüÿ÷þÿÿøÿÿÿúþýÿöúúÿÿÿýÿÿÿýÿÿÿûÿÿþùÿÿûôÿÿþöÿÿÿ÷ÿÿÿ÷ÿÿÿöÿÿþóÿÿþüÿÿôñÿÿþýÿÿûúÿúõöÿÿþÿÿù÷ûÿÿþÿÿþþÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿýÿÿÿýÿüÿÿÿüÿÿÿúþÿÿúþÿÿúþÿÿõùÿÿüþÿÿüþÿÿ¥¤§ÿ325ÿ'%%ÿ<::ÿ0=Bÿ6CHÿ:EJÿ6AEÿ4;?ÿ2:=ÿ38:ÿ057ÿ&+*ÿÿ·¾½ÿùÿÿÿ÷ÿýÿ÷ÿýÿîúõÿõÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿýÿÿÿýÿüÿÿÿüÿÿÿúþÿÿúþÿÿúþÿÿòöüÿøùþÿàâæÿdcfÿ0/2ÿ0--ÿ634ÿ&48ÿ,9>ÿ3=Bÿ3>Cÿ7>Bÿ7>Bÿ49;ÿ-24ÿ,10ÿ##ÿjqpÿÖÝÜÿöÿüÿ÷ÿýÿóÿúÿôÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿüÿÿÿüÿÿÿûþÿÿûþÿÿýþÿÿõöùÿüûûÿº¹¹ÿ-(&ÿ<86ÿ>73ÿ6/+ÿ263ÿ485ÿ785ÿ674ÿ985ÿ985ÿ42/ÿ,*'ÿ32/ÿ21.ÿ-.*ÿ³´±ÿûÿüÿøÿúÿøÿüÿøÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿüÿÿÿüÿÿÿûþÿÿûþÿÿýþÿÿùúýÿÿÿÿÿ”’“ÿ$ ÿIECÿC<8ÿ:3/ÿ485ÿ7;8ÿ9:7ÿ442ÿ21.ÿ320ÿ520ÿ30.ÿ1/,ÿ@?;ÿ#$!ÿ’“ÿûÿüÿòùôÿôýøÿøÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿýýÿÿÿúÿuokÿ@6.ÿSJAÿH<0ÿPC8ÿC9*ÿPF7ÿZN@ÿVJ<ÿM@5ÿJ=2ÿL?6ÿNA7ÿ>4-ÿG=6ÿ61*ÿsnhÿÿÿûÿúûõÿøü÷ÿýÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿþþÿý÷óÿga\ÿLB:ÿMC;ÿI<1ÿ[NCÿPF7ÿeZLÿvj]ÿsgZÿcVJÿUH<ÿNA8ÿL?6ÿH?7ÿ<2*ÿ72,ÿ_ZSÿÿÿúÿÿÿûÿýÿûÿüÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿüÿÿúñÿypÿPB5ÿRD7ÿWF6ÿ`O?ÿgQ9ÿydLÿˆr\ÿ„mWÿr[HÿbK8ÿV@1ÿQ;,ÿRA6ÿB1&ÿ?5,ÿ~tlÿÿÿúÿÿÿùÿÿÿûÿüü÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿûøÿÿÿüÿÿÿøÿ¢š‘ÿNA4ÿXJ=ÿbRAÿYH8ÿ`J3ÿmW?ÿv`Jÿs]GÿiS@ÿcL9ÿ]H9ÿ[F7ÿM<1ÿK:/ÿI?7ÿª —ÿÿÿúÿû÷ñÿÿÿûÿýýøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿþúÿÿÿøÿåÝÔÿSF8ÿYL?ÿm\LÿUD4ÿiP5ÿu[Aÿv]DÿlR:ÿfL7ÿjP;ÿgO?ÿ`H8ÿfSHÿ5"ÿk_WÿßÓËÿÿüöÿÿÿûÿÿÿüÿûúöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿüÿøõñÿÿÿøÿúòéÿ¡“†ÿ_QDÿbQAÿsbRÿnT:ÿrY>ÿtZAÿqW?ÿpVAÿrXCÿmUEÿgO?ÿ\I>ÿR?3ÿ›‡ÿÿùñÿÿÿûÿûöñÿûû÷ÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿÿÿÿ÷õõÿÿÿûÿÿû÷ÿïåÜÿ|riÿ[NCÿh[PÿƒnXÿybÿš…pÿˆsÿwfÿu`NÿdPCÿbNAÿL=4ÿwÿà×ÑÿÿÿúÿþüøÿÿýúÿþÿýÿúüúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿýÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿýÿÿÿÿþþÿÿýýÿÿÿûÿþøôÿÿÿøÿȾ¶ÿƒwÿg[Oÿ|gQÿ˜ƒmÿ¿ª•ÿϹ¥ÿ²œ‹ÿ„n]ÿiUHÿiUHÿˆxoÿÝÍÄÿÿÿúÿÿúôÿóñíÿÿÿüÿþÿýÿúüúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿüÿÿÿüÿÿÿûþÿÿûþÿÿùúýÿýþÿÿÿÿÿÿýüüÿÿÿýÿÿÿýÿàÙÕÿ£œ˜ÿuiZÿrfWÿwj\ÿzm`ÿqcXÿk]Sÿ~rjÿˆÿëâÝÿÿûöÿÿÿüÿÿÿüÿýÿþÿ÷úøÿñ÷öÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿüÿÿÿþÿÿÿþÿüÿÿÿüÿÿÿûþÿÿûþÿÿýþÿÿûýÿÿýüüÿÿÿÿÿùôòÿÿÿýÿÿÿûÿóìèÿçÛÍÿƺ¬ÿ¨›ÿ “†ÿ«“ÿĶ«ÿæÙÑÿÿùñÿÿÿúÿÿÿúÿÿüùÿþú÷ÿýÿþÿýÿþÿôúùÿóùøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿýÿÿÿýÿüÿÿÿüÿÿÿúþÿÿúþÿÿúþÿÿúþÿÿøùþÿüþÿÿôóöÿûúüÿÿýýÿÿÿÿÿÿÿøÿÿúðÿüöîÿÿýõÿÿÿúÿÿÿúÿÿýùÿÿûöÿü÷õÿÿÿýÿüüüÿòòòÿóùøÿúÿÿÿ÷ÿÿÿí÷öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿûÿÿÿýÿÿÿýÿüÿÿÿüÿÿÿúþÿÿúþÿÿõøþÿúþÿÿùúÿÿüýÿÿÿþÿÿýüÿÿöóôÿÿÿÿÿÿÿöÿÿÿøÿÿÿùÿÿÿùÿÿýöÿÿûôÿÿþúÿÿÿûÿÿÿýÿþù÷ÿþþþÿÿÿÿÿùÿþÿò÷öÿõþþÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs20\par
+\ql\plain\f0\fs20\plain\f6\fs20\par
+\qc\plain\f0\fs20\plain\f6\fs28\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs28\b\par
+\fs32 GENIVI TrafficIncidentService API's\par
+\fs28\par
+\b0 Release: 1.0.1\par
+Status: Approved\par
+\par
+\fs20 20 February 2014\par
+\par
+\ql\plain\f0\fs20\plain\f6\fs20\lang3081\hich\f6\dbch\f6\loch\f6\cf1\fs20\b Accepted for release by:\par
+\plain\f6\fs20 This document has been accepted for release by the Expert Group Location Based Services (EG-LBS)\lang1033\hich\f6\dbch\f6\loch\f6\strike\par
+\plain\f6\fs20\par
+\b Abstract:\par
+\ltrpar\ql\plain\f0\fs20\plain\f4\fs24\lang1033\hich\f4\dbch\f4\loch\f4\cf1\fs24\ltrch This document describes the API\u8217 \'92s of the TrafficIncidentsService Abstract Component.\plain\f4\fs24\lang1033\hich\f4\dbch\f4\loch\f4\cf1\fs24\par
+\plain\f6\fs20\par
+\pard\ssparaaux0\s0\ql\plain\f0\fs20\plain\f6\fs20\lang3081\hich\f6\dbch\f6\loch\f6\cf1\fs20\b Keywords:\par
+\plain\f6\fs20 NavigationAPIs, NavigationCore.\lang1033\hich\f6\dbch\f6\loch\f6\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\par
+\fs28\par
+\qc\plain\f0\fs20\plain\f6\fs28\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs28\page\ql\plain\f0\fs20\plain\f5\fs24\lang3081\hich\f5\dbch\f5\loch\f5\cf1\fs24 SPDX-License-Identifier: CC-BY-SA-4.0\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5\par
+Copyright (C) 201\lang1033\hich\f5\dbch\f5\loch\f5 4\lang3081\hich\f5\dbch\f5\loch\f5 , \lang1033\hich\f5\dbch\f5\loch\f5 TomTom International B.V.\par
+\lang3081\hich\f5\dbch\f5\loch\f5\par
+This work is licensed under a Creative Commons\lang1033\hich\f5\dbch\f5\loch\f5 \lang3081\hich\f5\dbch\f5\loch\f5 Attribution-ShareAlike\lang1033\hich\f5\dbch\f5\loch\f5 \lang3081\hich\f5\dbch\f5\loch\f5 4.0 International License\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5\par
+To view a copy of this license, visit\lang1033\hich\f5\dbch\f5\loch\f5 \lang3081\hich\f5\dbch\f5\loch\f5 http://creativecommons.org/licenses/by-sa/4.0/\lang1033\hich\f5\dbch\f5\loch\f5\par
+\lang3081\hich\f5\dbch\f5\loch\f5 or send a letter to Creative Commons, 444 Castro Street, Suite 900,\par
+Mountain View, California, 94041, USA.\lang1033\hich\f4\dbch\f4\loch\f4\ltrch\par
+\ltrpar\ql\plain\f0\fs20\plain\f4\fs24\lang1033\hich\f4\dbch\f4\loch\f4\cf1\fs24\ltrch\par
+\qc\plain\f0\fs20\plain\f4\fs24\lang1033\hich\f4\dbch\f4\loch\f4\cf1\fs24\ltrch\page\pard\ssparaaux0\s0\ql\plain\f0\fs20\plain\f6\fs28\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs28\par
+\qc\plain\f0\fs20\plain\f6\fs28\lang3081\hich\f6\dbch\f6\loch\f6\cf1\fs28\par
+\ql\plain\f0\fs20\plain\f6\fs20\par
+\qc\plain\f0\fs20\plain\f6\fs28\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs28\b Table of Contents\par
+\plain\f6\fs20\par
+\pard\ssparaaux0\s2\tqr\tldot\tx8205\ql\plain\f0\fs20\plain\f0\fs20{\field{\*\fldinst TOC \\o "1-9"}{\fldrslt Introduction\tab 2\par
+}}\hich\f6\dbch\f6\loch\f6\cf3\fs32\b\page\pard\ssparaaux0\s11\sb240\sa60\ql\outlinelevel0\plain\f0\fs20\plain\f6\fs20\lang1033\hich\f6\dbch\f6\loch\f6\cf1\fs20\pard\ssparaaux0\s11\sb240\sa60\ql\outlinelevel0\par
+\cf3\fs32\b Change History\par
+\lang3081\hich\f6\dbch\f6\loch\f6\par
+}
diff --git a/src/traffic-incidents-service/ReadMe.txt b/src/traffic-incidents-service/ReadMe.txt
new file mode 100755
index 0000000..c75c6f7
--- /dev/null
+++ b/src/traffic-incidents-service/ReadMe.txt
@@ -0,0 +1,250 @@
+Introduction
+============
+This folder contains a Java Proof of Concept implementation of the GENIVI TrafficIncidentsService, and a proxy library as a convenience for Java clients of this service.
+See 'ivi-navigation/test/traffic-incidents-service' for examples of running this service (without D-Bus) with a test Feed and several clients within Eclipse, and for running the same (with D-Bus) on Linux.
+
+
+Project structure
+=================
+This project consists of a number of Eclipse projects.
+Data models are created with the Eclipse Modeling Framework (EMF), so EMF has to be installed in your Eclipse in order to compile and run the projects. All projects which contain an EMF model, have an extension '-model'.
+Each project has a 'ReadMe.confluence' file, which provides basic information on the project.
+The following package naming convention is used:
+
+org.genivi:
+Basename for all packages.
+
+ trafficincidentsservice:
+ All files related to the TrafficIncidentsService (interfaces, data models and implementation).
+
+ booleanexpr, common, iconset, location, locref:
+ Classes that could be re-used in GENIVI.
+
+ trafficinfo:
+ All other code of this PoC, i.e. code to demonstrate the use of the TrafficIncidentsService.
+
+
+Building the complete PoC in Eclipse (no D-Bus)
+===========================================================
+The repository contains the Eclipse projects, but not an Eclipse WorkSpace. So this has to be created manually.
+Start Eclipse and chose your 'ivi-navigation/src/traffic-incidents-service' folder as WorkSpace. Import all the projects.
+
+
+
+Eclipse projects
+================
+
+org.genivi.basetypes-model
+--------------------------
+This project defines basic data types, which should become generic GENIVI data types.
+Packages:
+
+org.genivi.common
+Common classes: Coordinate, LocalizedString, RectangularArea.
+
+org.genivi.common.impl
+Implementation of org.genivi.common
+
+org.genivi.common.util
+Utility classes related to org.genivi.common
+
+org.genivi.location
+Classes describing locations.
+
+org.genivi.location.impl
+Implementation of org.genivi.location
+
+org.genivi.location.util
+Utility classes related to org.genivi.location
+
+
+org.genivi.booleanexpr-model
+----------------------------
+This project defines a Boolean Expression. These expressions are used in the TrafficIncidents interface, but can also be used in other locations where hierarchical data is used.
+Packages:
+
+org.genivi.booleanexpr
+The interface definition for Boolean Expressions.
+
+org.genivi.booleanexpr.impl
+Implementation of org.genivi.booleanexpr
+
+org.genivi.booleanexpr.util
+Utility classes related to org.genivi.booleanexpr
+
+
+org.genivi.iconset-model
+------------------------
+This project defines an Icon Set. Icon Sets are used in the TrafficIncidents interface, but can also be used in other locations where icons are used.
+Packages:
+
+org.genivi.iconset
+The interface definition for Icon Sets.
+
+org.genivi.iconset.impl
+Implementation of org.genivi.iconset
+
+org.genivi.iconset.util
+Utility classes related to org.genivi.iconset
+
+
+org.genivi.locref-model
+-----------------------
+This project defines an interface for decoding Location References. Currently this is an internal interface within the TrafficIncidentsService. However, in the future, they may be a separate component for decoding Location References (as part of Map Data Access).
+Packages:
+
+org.genivi.locref
+The interface definition for decoding Location References.
+
+org.genivi.locref.impl
+Implementation of org.genivi.locref
+
+org.genivi.locref.util
+Utility classes related to org.genivi.locref
+
+
+org.genivi.trafficincidentsservice-model
+----------------------------------------
+This project defines the main interfaces of the TrafficIncidentsService. The data models for traffic incidents are in sub packages.
+Packages:
+
+org.genivi.trafficincidentsservice
+The main interfaces of the TrafficIncidentsService.
+
+org.genivi.trafficincidentsservice.impl
+The generated implementation of org.genivi.trafficincidentsservice. From here the generated implementations TrafficIncidentsImpl.java and TrafficIncidentFeed.java are not used.
+
+org.genivi.trafficincidentsservice.util
+Utility classes related to org.genivi.trafficincidentsservice.
+
+
+org.genivi.trafficincidentsservice.dbus.impl
+--------------------------------------------
+This project contains a class to wrap the TrafficIncidentsService from org.genivi.trafficincidentsservice.refimpl into a D-Bus service.
+Packages:
+
+org.genivi.trafficincidentsservice.dbus.impl
+The class to wrap the TrafficIncidentsService into a D-Bus service.
+
+
+org.genivi.trafficincidentsservice.dbuswrapper
+----------------------------------------------
+This project defines the D-Bus version of the interfaces of the TrafficIncidentsService and it contains the Proxies and Adaptors to connect the D-Bus interfaces to the plain java interfaces.
+Packages:
+
+org.genivi.trafficincidentsservice.trafficincidents.dbus
+D-Bus interface definition for the TrafficIncidents interface.
+
+org.genivi.trafficincidentsservice.trafficincidents.dbus.impl
+Glue between the java version and the D-Bus version of the TrafficIncidents interface (Proxy and Adaptor).
+
+org.genivi.trafficincidentsservice.trafficincidentfeed.dbus
+D-Bus interface definition for the TrafficIncidentFeed interface.
+
+org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl
+Glue between the java version and the D-Bus version of the TrafficIncidentFeed interface (Proxy and Adaptor).
+
+
+org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model
+------------------------------------------------------------------------------------------------
+This project defines the TrafficIncident data model as used in the TrafficIncidentFeed interface.
+Packages:
+
+org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident
+The TrafficIncident data model.
+
+org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl
+Implementation of the TrafficIncident data model.
+
+org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.util
+Utility classes related to the TrafficIncident data model.
+
+
+org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model
+------------------------------------------------------------------------------------------
+This project defines the TrafficIncident data model as used in the TrafficIncidents interface.
+Packages:
+
+org.genivi.trafficincidentsservice.trafficincidents.trafficincident
+The TrafficIncident data model.
+
+org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl
+Implementation of the TrafficIncident data model.
+
+org.genivi.trafficincidentsservice.trafficincidents.trafficincident.util
+Utility classes related to the TrafficIncident data model.
+
+
+org.genivi.trafficincidentsservice.trafficincidenttables-model
+--------------------------------------------------------------
+This project defines the tables that are used in the Traffic Incident definitions of both the TrafficIncidents interface and the TrafficIncidentFeed interface.
+Packages:
+
+org.genivi.trafficincidentsservice.trafficincidenttables
+The tables that are used in the Traffic Incident definitions.
+
+org.genivi.trafficincidentsservice.trafficincidenttables.impl
+Implementation related to org.genivi.trafficincidentsservice.trafficincidenttables.
+
+
+org.genivi.trafficinfo
+----------------------
+This project contains the main part of the Java only PoC for the TrafficIncidentsService. It makes use of several data models which are defined in other packages.
+On top of this there are projects to add D-Bus layers between the components.
+Packages
+
+org.genivi.locref.decoder
+Interface definition for Location Reference decoders. This interface is used in the implementation of org.genivi.locref.LocationReferenceDecodingService.
+
+org.genivi.locref.decoder.openlr
+OpenLR implementation of decoder interface defined in org.genivi.locref.decoder.
+
+org.genivi.locref.refimpl
+Reference implementation of org.genivi.locref.LocationReferenceDecodingService
+
+org.genivi.trafficincidentsservice
+Contains default implementations for TrafficIncidentsListener and TrafficIncidentFeedListener.
+
+org.genivi.trafficincidentsservice.refimpl
+Reference implementation of a TrafficIncidentsService (without any D-Bus binding).
+
+org.genivi.trafficincidentsservice.textgenerator
+Defines an interface for a text generator, as a sub component of the TrafficIncidentsService.
+
+org.genivi.trafficincidentsservice.textgenerator.basictextgenerator
+Basic implementation of a textgenerator.
+
+
+org.genivi.trafficinfo.dbus-java
+--------------------------------
+This project is a copy of the dbus-java project by Matthew Johnson, with small modifications needed to get the TrafficIncidentsService PoC running. Therefore there is no further description of this project.
+
+
+org.genivi.trafficinfo.demo
+---------------------------
+This project contains classes which can be used in demo's and prototypes.
+Packages:
+
+org.genivi.trafficinfo.demo.communicationchannel
+Contains classes for communication channels (Used to simulation the communication channels between the server and the client)
+
+org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel
+Defines the interfaces for a 2 way communication channel (currently not used in this PoC).
+
+org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel.impl
+Provides a dummy implementation for a 2 way communication channel.
+
+org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel
+Defines the interfaces for a broadcast channel.
+
+org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.impl
+Provides a dummy implementation for a broadcast channel.
+
+org.genivi.trafficinfo.demo.logging
+Provides a formatter, which creates a link to the Java code in Eclipse console output.
+
+
+org.genivi.trafficinfo.libmatthew
+---------------------------------
+This is an unmodified copy of the 'libmatthew' project by Matthew Johnson. Therefore there is no further description of this project.
+This project is copied here as it is used by the dbus-java project. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/.classpath b/src/traffic-incidents-service/org.genivi.basetypes-model/.classpath
new file mode 100755
index 0000000..1bf6a1d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/.project b/src/traffic-incidents-service/org.genivi.basetypes-model/.project
new file mode 100755
index 0000000..46923a1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/.project
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.basetypes-model</name>
+ <comment>This project contains types that should be common types in GENIVI. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.basetypes-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..86efe56
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.basetypes-model;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.common,
+ org.genivi.common.impl,
+ org.genivi.common.util,
+ org.genivi.location,
+ org.genivi.location.impl,
+ org.genivi.location.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.basetypes-model/ReadMe.confluence
new file mode 100755
index 0000000..bd18258
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/ReadMe.confluence
@@ -0,0 +1 @@
+This project defines basic data types, which should become generic GENIVI data types. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/build.properties b/src/traffic-incidents-service/org.genivi.basetypes-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecore b/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecore
new file mode 100755
index 0000000..593b416
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecore
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="genivi" nsURI="http://org.genivi" nsPrefix="genivi">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eSubpackages name="location" nsURI="http://org.genivi.location" nsPrefix="common">
+ <eClassifiers xsi:type="ecore:EClass" name="Location">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Common parent for all location types."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PointLocation" eSuperTypes="#//location/Location">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The location is a single point (along the road), e.g. the location of a broken down vehicle.&#xD;&#xA;TODO Work out the PointLocation class"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AreaLocation" eSuperTypes="#//location/Location">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The location is an area, e.g. an area with fog.&#xD;&#xA;TODO Work out the AreaLocation class"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinearLocation" eSuperTypes="#//location/Location">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The location is a road stretch, e.g. the road stretch where there is a traffic jam."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="segments" lowerBound="1"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The database segments of the location."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="positiveOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="negativeOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocationInfo">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mainLocation" eType="#//common/Coordinate"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PointLocationInfo" eSuperTypes="#//location/LocationInfo">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="locationType" eType="#//location/PointLocationType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinearLocationInfo" eSuperTypes="#//location/LocationInfo">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fromLocationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fromLocationParentName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toLocationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toLocationParentName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="coordinates" upperBound="-1"
+ eType="#//common/Coordinate" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AreaLocationInfo" eSuperTypes="#//location/LocationInfo"/>
+ <eClassifiers xsi:type="ecore:EEnum" name="PointLocationType">
+ <eLiterals name="MOTORWAY_EXIT"/>
+ <eLiterals name="MOTORWAY_TRIANGLE" value="1"/>
+ <eLiterals name="MOTORWAY_CROSSING" value="2"/>
+ <eLiterals name="MOTORWAY_ENTRY" value="3"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="common" nsURI="http://org.genivi.common" nsPrefix="model">
+ <eClassifiers xsi:type="ecore:EClass" name="Coordinate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This data type represents a 3D WGS84 coordinate."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="latitude" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="latitude >= -90 and &lt;= 90"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="longitude" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="longitude >= -180 and &lt;= 180"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="altitude" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="altitude values are in meters above sea level"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RectangularArea">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bottomLeft" lowerBound="1"
+ eType="#//common/Coordinate" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The bottom-left corner of the area."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topRight" lowerBound="1"
+ eType="#//common/Coordinate" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The top-right corner of the area."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Version">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This datatype is used to provide version information."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="major" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The major version number."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.tomtom.com/emfidl/2012/GenModel">
+ <details key="valueMin" value="0"/>
+ <details key="valueMax" value="32767"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minor" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The minor version number."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.tomtom.com/emfidl/2012/GenModel">
+ <details key="valueMin" value="0"/>
+ <details key="valueMax" value="32767"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="micro" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The micro version number."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.tomtom.com/emfidl/2012/GenModel">
+ <details key="valueMin" value="0"/>
+ <details key="valueMax" value="32767"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The date of this version."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocalizedString">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="languageCode" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="countryCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="string" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ </eClassifiers>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecorediag b/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecorediag
new file mode 100755
index 0000000..7fadab3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.ecorediag
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_ytjgwMpFEeCrteeIp7eRig" type="EcoreTools" name="Basetypes.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_yt-XgMpFEeCrteeIp7eRig" type="1002">
+ <children xmi:type="notation:Node" xmi:id="_yt-XhMpFEeCrteeIp7eRig" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_yuHhcMpFEeCrteeIp7eRig" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_D7-7oMpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_D7-7o8pGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_D8IFkMpGEeCrteeIp7eRig" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_D8IFkcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D8IFkspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D8IFk8pGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_D8IFlMpGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_D8IFlcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D8IFlspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D8IFl8pGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_D7-7ocpGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/Location"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D7-7ospGEeCrteeIp7eRig" x="115" y="16"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ISjTQMpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_ISjTQ8pGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_ISjTRMpGEeCrteeIp7eRig" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ISjTRcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ISjTRspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ISjTR8pGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ISjTSMpGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ISjTScpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ISjTSspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ISjTS8pGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ISjTQcpGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/PointLocation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ISjTQspGEeCrteeIp7eRig" x="19" y="100"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KD8_cMpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_KD8_c8pGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_KD8_dMpGEeCrteeIp7eRig" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_jeYYIMpWEeCrteeIp7eRig" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocation/segments"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jeYYIcpWEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8TgpMDiNEeKv08y2GLq22A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocation/positiveOffset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8TgpMTiNEeKv08y2GLq22A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_B7hakDiOEeKv08y2GLq22A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocation/negativeOffset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B7hakTiOEeKv08y2GLq22A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KD8_dcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KD8_dspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KD8_d8pGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KD8_eMpGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KD8_ecpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KD8_espGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KD8_e8pGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_KD8_ccpGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/LinearLocation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KD8_cspGEeCrteeIp7eRig" x="139" y="100"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lz56IMpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_Lz56I8pGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_Lz56JMpGEeCrteeIp7eRig" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Lz56JcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lz56JspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lz56J8pGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lz56KMpGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Lz56KcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lz56KspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lz56K8pGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Lz56IcpGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/AreaLocation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lz56IspGEeCrteeIp7eRig" x="319" y="88"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5InWwWOzEeGQ6KTWDfizmg" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_5IwgsGOzEeGQ6KTWDfizmg" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_5IwgsWOzEeGQ6KTWDfizmg" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_BrjoMGO0EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LocationInfo/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BrjoMWO0EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5IwgsmOzEeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5Iwgs2OzEeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5IwgtGOzEeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5IwgtWOzEeGQ6KTWDfizmg" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5IwgtmOzEeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5Iwgt2OzEeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5IwguGOzEeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5InWwmOzEeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/LocationInfo"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5InWw2OzEeGQ6KTWDfizmg" x="163" y="244"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eAdoQGO0EeGQ6KTWDfizmg" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_eAdoQ2O0EeGQ6KTWDfizmg" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_eAdoRGO0EeGQ6KTWDfizmg" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_Hn8cMGO2EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/PointLocationInfo/locationType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Hn8cMWO2EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eAdoRWO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eAdoRmO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eAdoR2O0EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eAdoSGO0EeGQ6KTWDfizmg" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eAdoSWO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eAdoSmO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eAdoS2O0EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_eAdoQWO0EeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/PointLocationInfo"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eAdoQmO0EeGQ6KTWDfizmg" x="19" y="352"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gp36gGO0EeGQ6KTWDfizmg" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_gp36g2O0EeGQ6KTWDfizmg" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_gp36hGO0EeGQ6KTWDfizmg" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_1RllYGO0EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocationInfo/fromLocationName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1RllYWO0EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-O3pcGO0EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocationInfo/fromLocationParentName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-O3pcWO0EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E5rUkGO1EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocationInfo/toLocationName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E5rUkWO1EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HwyEkGO1EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//location/LinearLocationInfo/toLocationParentName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HwyEkWO1EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gp36hWO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gp36hmO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gp36h2O0EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gp36iGO0EeGQ6KTWDfizmg" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gp36iWO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gp36imO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gp36i2O0EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_gp36gWO0EeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/LinearLocationInfo"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gp36gmO0EeGQ6KTWDfizmg" x="235" y="412"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mp9NoGO0EeGQ6KTWDfizmg" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_mp9No2O0EeGQ6KTWDfizmg" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_mp9NpGO0EeGQ6KTWDfizmg" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mp9NpWO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mp9NpmO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mp9Np2O0EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mp9NqGO0EeGQ6KTWDfizmg" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mp9NqWO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mp9NqmO0EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mp9Nq2O0EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mp9NoWO0EeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//location/AreaLocationInfo"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mp9NomO0EeGQ6KTWDfizmg" x="331" y="304"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vDTowGO1EeGQ6KTWDfizmg" type="2005">
+ <children xmi:type="notation:Node" xmi:id="_vDTow2O1EeGQ6KTWDfizmg" type="4005"/>
+ <children xmi:type="notation:Node" xmi:id="_vDToxGO1EeGQ6KTWDfizmg" type="5006">
+ <children xmi:type="notation:Node" xmi:id="_z4WsIGO1EeGQ6KTWDfizmg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="Basetypes.ecore#//location/PointLocationType/MOTORWAY_EXIT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z4WsIWO1EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3szOIGO1EeGQ6KTWDfizmg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="Basetypes.ecore#//location/PointLocationType/MOTORWAY_TRIANGLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3szOIWO1EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_57Hf0GO1EeGQ6KTWDfizmg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="Basetypes.ecore#//location/PointLocationType/MOTORWAY_CROSSING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_57Hf0WO1EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9A0FcGO1EeGQ6KTWDfizmg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="Basetypes.ecore#//location/PointLocationType/MOTORWAY_ENTRY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9A0FcWO1EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vDToxWO1EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vDToxmO1EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vDTox2O1EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_vDTowWO1EeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="Basetypes.ecore#//location/PointLocationType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vDTowmO1EeGQ6KTWDfizmg" x="19" y="412"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LnjFUGO2EeGQ6KTWDfizmg" type="Note" description="Consider to use fixed POI categories i.s.o. PointLocationType" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_LnjFVGO2EeGQ6KTWDfizmg" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_LnjFVWO2EeGQ6KTWDfizmg" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_LnjFUWO2EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_LnjFUmO2EeGQ6KTWDfizmg"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LnjFU2O2EeGQ6KTWDfizmg" x="43" y="529" width="157" height="61"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yuHhccpFEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yuHhcspFEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yuHhc8pFEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_yt-XgcpFEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_yt-XgspFEeCrteeIp7eRig"/>
+ <element xmi:type="ecore:EPackage" href="Basetypes.ecore#//location"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yt-Xg8pFEeCrteeIp7eRig" x="36" y="24" width="567" height="639"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yuHhdMpFEeCrteeIp7eRig" type="1002">
+ <children xmi:type="notation:Node" xmi:id="_yuHheMpFEeCrteeIp7eRig" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_yuHhecpFEeCrteeIp7eRig" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_QGZqEMpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_QGZqE8pGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_QGZqFMpGEeCrteeIp7eRig" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_BMHy0GO3EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Coordinate/longitude"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BMHy0WO3EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6CgEwGO2EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Coordinate/latitude"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6CgEwWO2EeGQ6KTWDfizmg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lor4UGO3EeGQ6KTWDfizmg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Coordinate/altitude"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lor4UWO3EeGQ6KTWDfizmg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QGZqFcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGZqFspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGZqF8pGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QGZqGMpGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QGZqGcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGZqGspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGZqG8pGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QGZqEcpGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//common/Coordinate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGZqEspGEeCrteeIp7eRig" x="31" y="28"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QnQUYMpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_QnQUY8pGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_QnQUZMpGEeCrteeIp7eRig" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QnQUZcpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QnQUZspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QnQUZ8pGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QnQUaMpGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QnQUacpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QnQUaspGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QnQUa8pGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QnQUYcpGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//common/RectangularArea"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QnQUYspGEeCrteeIp7eRig" x="247" y="16"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HAErsWz9EeGKAKujoqtC-A" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_HAN1oGz9EeGKAKujoqtC-A" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_HAN1oWz9EeGKAKujoqtC-A" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_Zny0wGz9EeGKAKujoqtC-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Version/major"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Zny0wWz9EeGKAKujoqtC-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hwGYoGz9EeGKAKujoqtC-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Version/minor"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hwGYoWz9EeGKAKujoqtC-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lzPd8Gz9EeGKAKujoqtC-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Version/micro"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lzPd8Wz9EeGKAKujoqtC-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sL0JkGz9EeGKAKujoqtC-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/Version/date"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sL0JkWz9EeGKAKujoqtC-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HAN1omz9EeGKAKujoqtC-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HAN1o2z9EeGKAKujoqtC-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HAN1pGz9EeGKAKujoqtC-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HAXmoGz9EeGKAKujoqtC-A" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HAXmoWz9EeGKAKujoqtC-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HAXmomz9EeGKAKujoqtC-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HAXmo2z9EeGKAKujoqtC-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HAErsmz9EeGKAKujoqtC-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//common/Version"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HAErs2z9EeGKAKujoqtC-A" x="234" y="125"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4IXCAKgYEeKXkrKN3hB6dg" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_4IgzAKgYEeKXkrKN3hB6dg" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_4IgzAagYEeKXkrKN3hB6dg" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_DiYOQKgZEeKXkrKN3hB6dg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/LocalizedString/languageCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DiYOQagZEeKXkrKN3hB6dg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_F86XAKgZEeKXkrKN3hB6dg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/LocalizedString/countryCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F86XAagZEeKXkrKN3hB6dg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HkVAwKgZEeKXkrKN3hB6dg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Basetypes.ecore#//common/LocalizedString/string"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HkVAwagZEeKXkrKN3hB6dg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4IgzAqgYEeKXkrKN3hB6dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4IgzA6gYEeKXkrKN3hB6dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4IgzBKgYEeKXkrKN3hB6dg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4Ip88KgYEeKXkrKN3hB6dg" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4Ip88agYEeKXkrKN3hB6dg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4Ip88qgYEeKXkrKN3hB6dg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4Ip886gYEeKXkrKN3hB6dg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4IXCAagYEeKXkrKN3hB6dg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Basetypes.ecore#//common/LocalizedString"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4IXCAqgYEeKXkrKN3hB6dg" x="60" y="145"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yuHhespFEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yuHhe8pFEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yuHhfMpFEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_yuHhdcpFEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_yuHhdspFEeCrteeIp7eRig"/>
+ <element xmi:type="ecore:EPackage" href="Basetypes.ecore#//common"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yuHhd8pFEeCrteeIp7eRig" x="60" y="684" width="411" height="279"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ytjgwcpFEeCrteeIp7eRig"/>
+ <element xmi:type="ecore:EPackage" href="Basetypes.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_ITIiEMpGEeCrteeIp7eRig" type="3003" source="_ISjTQMpGEeCrteeIp7eRig" target="_D7-7oMpGEeCrteeIp7eRig">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ITIiEcpGEeCrteeIp7eRig" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ITIiEspGEeCrteeIp7eRig"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ITIiE8pGEeCrteeIp7eRig" points="[1, 0, -165, -37]$[116, 25, -50, -12]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_KD8_fMpGEeCrteeIp7eRig" type="3003" source="_KD8_cMpGEeCrteeIp7eRig" target="_D7-7oMpGEeCrteeIp7eRig">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_KD8_fcpGEeCrteeIp7eRig" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KD8_fspGEeCrteeIp7eRig"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KD8_f8pGEeCrteeIp7eRig" points="[1, 0, -165, -37]$[116, 25, -50, -12]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Lz56LMpGEeCrteeIp7eRig" type="3003" source="_Lz56IMpGEeCrteeIp7eRig" target="_D7-7oMpGEeCrteeIp7eRig">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Lz56LcpGEeCrteeIp7eRig" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lz56LspGEeCrteeIp7eRig"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lz56L8pGEeCrteeIp7eRig" points="[1, 0, -165, -37]$[116, 25, -50, -12]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YK39YMpzEeCrteeIp7eRig" type="3002" source="_QnQUYMpGEeCrteeIp7eRig" target="_QGZqEMpGEeCrteeIp7eRig">
+ <children xmi:type="notation:Node" xmi:id="_YK39ZMpzEeCrteeIp7eRig" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YK39ZcpzEeCrteeIp7eRig" x="-36" y="7"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YK39ZspzEeCrteeIp7eRig" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YK39Z8pzEeCrteeIp7eRig" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YK39YcpzEeCrteeIp7eRig" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YK39YspzEeCrteeIp7eRig" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Basetypes.ecore#//common/RectangularArea/bottomLeft"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YK39Y8pzEeCrteeIp7eRig" points="[-57, -8, 143, -31]$[-93, -8, 107, -31]$[-150, 8, 50, -15]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_byeWMMpzEeCrteeIp7eRig" type="3002" source="_QnQUYMpGEeCrteeIp7eRig" target="_QGZqEMpGEeCrteeIp7eRig">
+ <children xmi:type="notation:Node" xmi:id="_byeWNMpzEeCrteeIp7eRig" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_byeWNcpzEeCrteeIp7eRig" x="-26" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_byeWNspzEeCrteeIp7eRig" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_byeWN8pzEeCrteeIp7eRig" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_byeWMcpzEeCrteeIp7eRig" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_byeWMspzEeCrteeIp7eRig" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Basetypes.ecore#//common/RectangularArea/topRight"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_byeWM8pzEeCrteeIp7eRig" points="[-57, 15, 109, -16]$[-88, 24, 78, -7]$[-150, 24, 16, -7]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_byngIMpzEeCrteeIp7eRig" id="(0.8431372549019608,0.7142857142857143)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_RPepEGO0EeGQ6KTWDfizmg" type="3002" source="_5InWwWOzEeGQ6KTWDfizmg" target="_QGZqEMpGEeCrteeIp7eRig">
+ <children xmi:type="notation:Node" xmi:id="_RPepFGO0EeGQ6KTWDfizmg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RPepFWO0EeGQ6KTWDfizmg" x="-297" y="-8"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RPepFmO0EeGQ6KTWDfizmg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RPepF2O0EeGQ6KTWDfizmg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_RPepEWO0EeGQ6KTWDfizmg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RPepEmO0EeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Basetypes.ecore#//location/LocationInfo/mainLocation"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RPepE2O0EeGQ6KTWDfizmg" points="[-7, 24, 129, -369]$[-106, 413, 30, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_pYa_AGO0EeGQ6KTWDfizmg" type="3003" source="_eAdoQGO0EeGQ6KTWDfizmg" target="_5InWwWOzEeGQ6KTWDfizmg">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pYa_AWO0EeGQ6KTWDfizmg" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pYa_AmO0EeGQ6KTWDfizmg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pYa_A2O0EeGQ6KTWDfizmg" points="[28, -20, -116, 61]$[86, -86, -58, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_p_SKsGO0EeGQ6KTWDfizmg" type="3003" source="_gp36gGO0EeGQ6KTWDfizmg" target="_5InWwWOzEeGQ6KTWDfizmg">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_p_SKsWO0EeGQ6KTWDfizmg" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_p_SKsmO0EeGQ6KTWDfizmg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p_SKs2O0EeGQ6KTWDfizmg" points="[-2, -20, 2, 144]$[-2, -141, 2, 23]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p_SKtGO0EeGQ6KTWDfizmg" id="(0.8135593220338984,0.5306122448979592)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_qeZIkGO0EeGQ6KTWDfizmg" type="3003" source="_mp9NoGO0EeGQ6KTWDfizmg" target="_5InWwWOzEeGQ6KTWDfizmg">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_qeZIkWO0EeGQ6KTWDfizmg" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qeZIkmO0EeGQ6KTWDfizmg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qeZIk2O0EeGQ6KTWDfizmg" points="[-28, -20, 93, 69]$[-119, -69, 2, 20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qeZIlGO0EeGQ6KTWDfizmg" id="(0.8050847457627118,0.5918367346938775)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ivDo4GO1EeGQ6KTWDfizmg" type="3002" source="_gp36gGO0EeGQ6KTWDfizmg" target="_QGZqEMpGEeCrteeIp7eRig">
+ <children xmi:type="notation:Node" xmi:id="_ivDo5GO1EeGQ6KTWDfizmg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ivDo5WO1EeGQ6KTWDfizmg" x="-171"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ivDo5mO1EeGQ6KTWDfizmg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ivDo52O1EeGQ6KTWDfizmg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ivDo4WO1EeGQ6KTWDfizmg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ivDo4mO1EeGQ6KTWDfizmg" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Basetypes.ecore#//location/LinearLocationInfo/coordinates"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ivDo42O1EeGQ6KTWDfizmg" points="[-25, 48, 135, -225]$[-110, 274, 50, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Uc8_wGO2EeGQ6KTWDfizmg" type="NoteAttachment" source="_LnjFUGO2EeGQ6KTWDfizmg" target="_vDTowGO1EeGQ6KTWDfizmg" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_Uc8_wWO2EeGQ6KTWDfizmg"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_Uc8_wmO2EeGQ6KTWDfizmg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Uc8_w2O2EeGQ6KTWDfizmg" points="[-9, -30, 9, 68]$[-26, -48, -8, 50]"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.genmodel b/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.genmodel
new file mode 100755
index 0000000..c149388
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/model/Basetypes.genmodel
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.basetypes-model/src" modelPluginID="org.genivi.basetypes-model"
+ modelName="Basetypes" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+ copyrightFields="false">
+ <foreignModel>Basetypes.ecore</foreignModel>
+ <genPackages prefix="Genivi" basePackage="org" disposableProviderFactory="true"
+ ecorePackage="Basetypes.ecore#/">
+ <nestedGenPackages prefix="Location" disposableProviderFactory="true" ecorePackage="Basetypes.ecore#//location">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="Basetypes.ecore#//location/PointLocationType">
+ <genEnumLiterals ecoreEnumLiteral="Basetypes.ecore#//location/PointLocationType/MOTORWAY_EXIT"/>
+ <genEnumLiterals ecoreEnumLiteral="Basetypes.ecore#//location/PointLocationType/MOTORWAY_TRIANGLE"/>
+ <genEnumLiterals ecoreEnumLiteral="Basetypes.ecore#//location/PointLocationType/MOTORWAY_CROSSING"/>
+ <genEnumLiterals ecoreEnumLiteral="Basetypes.ecore#//location/PointLocationType/MOTORWAY_ENTRY"/>
+ </genEnums>
+ <genClasses ecoreClass="Basetypes.ecore#//location/Location"/>
+ <genClasses ecoreClass="Basetypes.ecore#//location/PointLocation"/>
+ <genClasses ecoreClass="Basetypes.ecore#//location/AreaLocation"/>
+ <genClasses ecoreClass="Basetypes.ecore#//location/LinearLocation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocation/segments"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocation/positiveOffset"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocation/negativeOffset"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//location/LocationInfo">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LocationInfo/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Basetypes.ecore#//location/LocationInfo/mainLocation"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//location/PointLocationInfo">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/PointLocationInfo/locationType"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//location/LinearLocationInfo">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocationInfo/fromLocationName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocationInfo/fromLocationParentName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocationInfo/toLocationName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//location/LinearLocationInfo/toLocationParentName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Basetypes.ecore#//location/LinearLocationInfo/coordinates"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//location/AreaLocationInfo"/>
+ </nestedGenPackages>
+ <nestedGenPackages prefix="Common" disposableProviderFactory="true" ecorePackage="Basetypes.ecore#//common">
+ <genClasses ecoreClass="Basetypes.ecore#//common/Coordinate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Coordinate/latitude"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Coordinate/longitude"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Coordinate/altitude"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//common/RectangularArea">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Basetypes.ecore#//common/RectangularArea/bottomLeft"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Basetypes.ecore#//common/RectangularArea/topRight"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//common/Version">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Version/major"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Version/minor"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Version/micro"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/Version/date"/>
+ </genClasses>
+ <genClasses ecoreClass="Basetypes.ecore#//common/LocalizedString">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/LocalizedString/languageCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/LocalizedString/countryCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Basetypes.ecore#//common/LocalizedString/string"/>
+ </genClasses>
+ </nestedGenPackages>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/plugin.properties b/src/traffic-incidents-service/org.genivi.basetypes-model/plugin.properties
new file mode 100755
index 0000000..b6ff1c0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Basetypes Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/plugin.xml b/src/traffic-incidents-service/org.genivi.basetypes-model/plugin.xml
new file mode 100755
index 0000000..8d03986
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated Basetypes -->
+ <package
+ uri="http://org.genivi.location"
+ class="org.genivi.location.LocationPackage"
+ genModel="model/Basetypes.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated Basetypes -->
+ <package
+ uri="http://org.genivi.common"
+ class="org.genivi.common.CommonPackage"
+ genModel="model/Basetypes.genmodel"/>
+ </extension>
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/pom.xml b/src/traffic-incidents-service/org.genivi.basetypes-model/pom.xml
new file mode 100755
index 0000000..ea6909c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Base Types</name>
+ <description>This project contains types that should be common types in GENIVI.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonFactory.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonFactory.java
new file mode 100755
index 0000000..ede045e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonFactory.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.common;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.CommonPackage
+ * @generated
+ */
+public interface CommonFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CommonFactory eINSTANCE = org.genivi.common.impl.CommonFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Coordinate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Coordinate</em>'.
+ * @generated
+ */
+ Coordinate createCoordinate();
+
+ /**
+ * Returns a new object of class '<em>Rectangular Area</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Rectangular Area</em>'.
+ * @generated
+ */
+ RectangularArea createRectangularArea();
+
+ /**
+ * Returns a new object of class '<em>Version</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Version</em>'.
+ * @generated
+ */
+ Version createVersion();
+
+ /**
+ * Returns a new object of class '<em>Localized String</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Localized String</em>'.
+ * @generated
+ */
+ LocalizedString createLocalizedString();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CommonPackage getCommonPackage();
+
+} //CommonFactory
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonPackage.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonPackage.java
new file mode 100755
index 0000000..c9f4e8b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/CommonPackage.java
@@ -0,0 +1,582 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.common;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.CommonFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CommonPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "common";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.common";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "model";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CommonPackage eINSTANCE = org.genivi.common.impl.CommonPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.common.impl.CoordinateImpl <em>Coordinate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.CoordinateImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getCoordinate()
+ * @generated
+ */
+ int COORDINATE = 0;
+
+ /**
+ * The feature id for the '<em><b>Latitude</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COORDINATE__LATITUDE = 0;
+
+ /**
+ * The feature id for the '<em><b>Longitude</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COORDINATE__LONGITUDE = 1;
+
+ /**
+ * The feature id for the '<em><b>Altitude</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COORDINATE__ALTITUDE = 2;
+
+ /**
+ * The number of structural features of the '<em>Coordinate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COORDINATE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.common.impl.RectangularAreaImpl <em>Rectangular Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.RectangularAreaImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getRectangularArea()
+ * @generated
+ */
+ int RECTANGULAR_AREA = 1;
+
+ /**
+ * The feature id for the '<em><b>Bottom Left</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECTANGULAR_AREA__BOTTOM_LEFT = 0;
+
+ /**
+ * The feature id for the '<em><b>Top Right</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECTANGULAR_AREA__TOP_RIGHT = 1;
+
+ /**
+ * The number of structural features of the '<em>Rectangular Area</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECTANGULAR_AREA_FEATURE_COUNT = 2;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.common.impl.VersionImpl <em>Version</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.VersionImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getVersion()
+ * @generated
+ */
+ int VERSION = 2;
+
+ /**
+ * The feature id for the '<em><b>Major</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERSION__MAJOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Minor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERSION__MINOR = 1;
+
+ /**
+ * The feature id for the '<em><b>Micro</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERSION__MICRO = 2;
+
+ /**
+ * The feature id for the '<em><b>Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERSION__DATE = 3;
+
+ /**
+ * The number of structural features of the '<em>Version</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VERSION_FEATURE_COUNT = 4;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.common.impl.LocalizedStringImpl <em>Localized String</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.LocalizedStringImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getLocalizedString()
+ * @generated
+ */
+ int LOCALIZED_STRING = 3;
+
+ /**
+ * The feature id for the '<em><b>Language Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALIZED_STRING__LANGUAGE_CODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Country Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALIZED_STRING__COUNTRY_CODE = 1;
+
+ /**
+ * The feature id for the '<em><b>String</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALIZED_STRING__STRING = 2;
+
+ /**
+ * The number of structural features of the '<em>Localized String</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALIZED_STRING_FEATURE_COUNT = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.common.Coordinate <em>Coordinate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Coordinate</em>'.
+ * @see org.genivi.common.Coordinate
+ * @generated
+ */
+ EClass getCoordinate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Coordinate#getLatitude <em>Latitude</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Latitude</em>'.
+ * @see org.genivi.common.Coordinate#getLatitude()
+ * @see #getCoordinate()
+ * @generated
+ */
+ EAttribute getCoordinate_Latitude();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Coordinate#getLongitude <em>Longitude</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Longitude</em>'.
+ * @see org.genivi.common.Coordinate#getLongitude()
+ * @see #getCoordinate()
+ * @generated
+ */
+ EAttribute getCoordinate_Longitude();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Coordinate#getAltitude <em>Altitude</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Altitude</em>'.
+ * @see org.genivi.common.Coordinate#getAltitude()
+ * @see #getCoordinate()
+ * @generated
+ */
+ EAttribute getCoordinate_Altitude();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.common.RectangularArea <em>Rectangular Area</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Rectangular Area</em>'.
+ * @see org.genivi.common.RectangularArea
+ * @generated
+ */
+ EClass getRectangularArea();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.common.RectangularArea#getBottomLeft <em>Bottom Left</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Bottom Left</em>'.
+ * @see org.genivi.common.RectangularArea#getBottomLeft()
+ * @see #getRectangularArea()
+ * @generated
+ */
+ EReference getRectangularArea_BottomLeft();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.common.RectangularArea#getTopRight <em>Top Right</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Top Right</em>'.
+ * @see org.genivi.common.RectangularArea#getTopRight()
+ * @see #getRectangularArea()
+ * @generated
+ */
+ EReference getRectangularArea_TopRight();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.common.Version <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Version</em>'.
+ * @see org.genivi.common.Version
+ * @generated
+ */
+ EClass getVersion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Version#getMajor <em>Major</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Major</em>'.
+ * @see org.genivi.common.Version#getMajor()
+ * @see #getVersion()
+ * @generated
+ */
+ EAttribute getVersion_Major();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Version#getMinor <em>Minor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Minor</em>'.
+ * @see org.genivi.common.Version#getMinor()
+ * @see #getVersion()
+ * @generated
+ */
+ EAttribute getVersion_Minor();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Version#getMicro <em>Micro</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Micro</em>'.
+ * @see org.genivi.common.Version#getMicro()
+ * @see #getVersion()
+ * @generated
+ */
+ EAttribute getVersion_Micro();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.Version#getDate <em>Date</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Date</em>'.
+ * @see org.genivi.common.Version#getDate()
+ * @see #getVersion()
+ * @generated
+ */
+ EAttribute getVersion_Date();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.common.LocalizedString <em>Localized String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Localized String</em>'.
+ * @see org.genivi.common.LocalizedString
+ * @generated
+ */
+ EClass getLocalizedString();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.LocalizedString#getLanguageCode <em>Language Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Language Code</em>'.
+ * @see org.genivi.common.LocalizedString#getLanguageCode()
+ * @see #getLocalizedString()
+ * @generated
+ */
+ EAttribute getLocalizedString_LanguageCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.LocalizedString#getCountryCode <em>Country Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Country Code</em>'.
+ * @see org.genivi.common.LocalizedString#getCountryCode()
+ * @see #getLocalizedString()
+ * @generated
+ */
+ EAttribute getLocalizedString_CountryCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.common.LocalizedString#getString <em>String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>String</em>'.
+ * @see org.genivi.common.LocalizedString#getString()
+ * @see #getLocalizedString()
+ * @generated
+ */
+ EAttribute getLocalizedString_String();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ CommonFactory getCommonFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.common.impl.CoordinateImpl <em>Coordinate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.CoordinateImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getCoordinate()
+ * @generated
+ */
+ EClass COORDINATE = eINSTANCE.getCoordinate();
+
+ /**
+ * The meta object literal for the '<em><b>Latitude</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COORDINATE__LATITUDE = eINSTANCE.getCoordinate_Latitude();
+
+ /**
+ * The meta object literal for the '<em><b>Longitude</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COORDINATE__LONGITUDE = eINSTANCE.getCoordinate_Longitude();
+
+ /**
+ * The meta object literal for the '<em><b>Altitude</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COORDINATE__ALTITUDE = eINSTANCE.getCoordinate_Altitude();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.common.impl.RectangularAreaImpl <em>Rectangular Area</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.RectangularAreaImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getRectangularArea()
+ * @generated
+ */
+ EClass RECTANGULAR_AREA = eINSTANCE.getRectangularArea();
+
+ /**
+ * The meta object literal for the '<em><b>Bottom Left</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RECTANGULAR_AREA__BOTTOM_LEFT = eINSTANCE.getRectangularArea_BottomLeft();
+
+ /**
+ * The meta object literal for the '<em><b>Top Right</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RECTANGULAR_AREA__TOP_RIGHT = eINSTANCE.getRectangularArea_TopRight();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.common.impl.VersionImpl <em>Version</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.VersionImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getVersion()
+ * @generated
+ */
+ EClass VERSION = eINSTANCE.getVersion();
+
+ /**
+ * The meta object literal for the '<em><b>Major</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VERSION__MAJOR = eINSTANCE.getVersion_Major();
+
+ /**
+ * The meta object literal for the '<em><b>Minor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VERSION__MINOR = eINSTANCE.getVersion_Minor();
+
+ /**
+ * The meta object literal for the '<em><b>Micro</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VERSION__MICRO = eINSTANCE.getVersion_Micro();
+
+ /**
+ * The meta object literal for the '<em><b>Date</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VERSION__DATE = eINSTANCE.getVersion_Date();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.common.impl.LocalizedStringImpl <em>Localized String</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.impl.LocalizedStringImpl
+ * @see org.genivi.common.impl.CommonPackageImpl#getLocalizedString()
+ * @generated
+ */
+ EClass LOCALIZED_STRING = eINSTANCE.getLocalizedString();
+
+ /**
+ * The meta object literal for the '<em><b>Language Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCALIZED_STRING__LANGUAGE_CODE = eINSTANCE.getLocalizedString_LanguageCode();
+
+ /**
+ * The meta object literal for the '<em><b>Country Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCALIZED_STRING__COUNTRY_CODE = eINSTANCE.getLocalizedString_CountryCode();
+
+ /**
+ * The meta object literal for the '<em><b>String</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCALIZED_STRING__STRING = eINSTANCE.getLocalizedString_String();
+
+ }
+
+} //CommonPackage
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Coordinate.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Coordinate.java
new file mode 100755
index 0000000..7bed8d4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Coordinate.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.common;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Coordinate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This data type represents a 3D WGS84 coordinate.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.common.Coordinate#getLatitude <em>Latitude</em>}</li>
+ * <li>{@link org.genivi.common.Coordinate#getLongitude <em>Longitude</em>}</li>
+ * <li>{@link org.genivi.common.Coordinate#getAltitude <em>Altitude</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.common.CommonPackage#getCoordinate()
+ * @model
+ * @generated
+ */
+public interface Coordinate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Latitude</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * latitude >= -90 and <= 90
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Latitude</em>' attribute.
+ * @see #setLatitude(double)
+ * @see org.genivi.common.CommonPackage#getCoordinate_Latitude()
+ * @model required="true"
+ * @generated
+ */
+ double getLatitude();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Coordinate#getLatitude <em>Latitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Latitude</em>' attribute.
+ * @see #getLatitude()
+ * @generated
+ */
+ void setLatitude(double value);
+
+ /**
+ * Returns the value of the '<em><b>Longitude</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * longitude >= -180 and <= 180
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Longitude</em>' attribute.
+ * @see #setLongitude(double)
+ * @see org.genivi.common.CommonPackage#getCoordinate_Longitude()
+ * @model required="true"
+ * @generated
+ */
+ double getLongitude();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Coordinate#getLongitude <em>Longitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Longitude</em>' attribute.
+ * @see #getLongitude()
+ * @generated
+ */
+ void setLongitude(double value);
+
+ /**
+ * Returns the value of the '<em><b>Altitude</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * altitude values are in meters above sea level
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Altitude</em>' attribute.
+ * @see #setAltitude(int)
+ * @see org.genivi.common.CommonPackage#getCoordinate_Altitude()
+ * @model
+ * @generated
+ */
+ int getAltitude();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Coordinate#getAltitude <em>Altitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Altitude</em>' attribute.
+ * @see #getAltitude()
+ * @generated
+ */
+ void setAltitude(int value);
+
+} // Coordinate
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/LocalizedString.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/LocalizedString.java
new file mode 100755
index 0000000..b1cc4da
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/LocalizedString.java
@@ -0,0 +1,190 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.common;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Localized String</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.common.LocalizedString#getLanguageCode <em>Language Code</em>}</li>
+ * <li>{@link org.genivi.common.LocalizedString#getCountryCode <em>Country Code</em>}</li>
+ * <li>{@link org.genivi.common.LocalizedString#getString <em>String</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.common.CommonPackage#getLocalizedString()
+ * @model
+ * @generated
+ */
+public interface LocalizedString extends EObject {
+ /**
+ * Returns the value of the '<em><b>Language Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Language Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Language Code</em>' attribute.
+ * @see #isSetLanguageCode()
+ * @see #unsetLanguageCode()
+ * @see #setLanguageCode(String)
+ * @see org.genivi.common.CommonPackage#getLocalizedString_LanguageCode()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getLanguageCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.LocalizedString#getLanguageCode <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Language Code</em>' attribute.
+ * @see #isSetLanguageCode()
+ * @see #unsetLanguageCode()
+ * @see #getLanguageCode()
+ * @generated
+ */
+ void setLanguageCode(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.LocalizedString#getLanguageCode <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLanguageCode()
+ * @see #getLanguageCode()
+ * @see #setLanguageCode(String)
+ * @generated
+ */
+ void unsetLanguageCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.LocalizedString#getLanguageCode <em>Language Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Language Code</em>' attribute is set.
+ * @see #unsetLanguageCode()
+ * @see #getLanguageCode()
+ * @see #setLanguageCode(String)
+ * @generated
+ */
+ boolean isSetLanguageCode();
+
+ /**
+ * Returns the value of the '<em><b>Country Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Country Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Country Code</em>' attribute.
+ * @see #isSetCountryCode()
+ * @see #unsetCountryCode()
+ * @see #setCountryCode(String)
+ * @see org.genivi.common.CommonPackage#getLocalizedString_CountryCode()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getCountryCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.LocalizedString#getCountryCode <em>Country Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Country Code</em>' attribute.
+ * @see #isSetCountryCode()
+ * @see #unsetCountryCode()
+ * @see #getCountryCode()
+ * @generated
+ */
+ void setCountryCode(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.LocalizedString#getCountryCode <em>Country Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCountryCode()
+ * @see #getCountryCode()
+ * @see #setCountryCode(String)
+ * @generated
+ */
+ void unsetCountryCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.LocalizedString#getCountryCode <em>Country Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Country Code</em>' attribute is set.
+ * @see #unsetCountryCode()
+ * @see #getCountryCode()
+ * @see #setCountryCode(String)
+ * @generated
+ */
+ boolean isSetCountryCode();
+
+ /**
+ * Returns the value of the '<em><b>String</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>String</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>String</em>' attribute.
+ * @see #isSetString()
+ * @see #unsetString()
+ * @see #setString(String)
+ * @see org.genivi.common.CommonPackage#getLocalizedString_String()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getString();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.LocalizedString#getString <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>String</em>' attribute.
+ * @see #isSetString()
+ * @see #unsetString()
+ * @see #getString()
+ * @generated
+ */
+ void setString(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.LocalizedString#getString <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetString()
+ * @see #getString()
+ * @see #setString(String)
+ * @generated
+ */
+ void unsetString();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.LocalizedString#getString <em>String</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>String</em>' attribute is set.
+ * @see #unsetString()
+ * @see #getString()
+ * @see #setString(String)
+ * @generated
+ */
+ boolean isSetString();
+
+} // LocalizedString
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/RectangularArea.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/RectangularArea.java
new file mode 100755
index 0000000..1a09d6b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/RectangularArea.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.common;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Rectangular Area</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This datatype represents a rectangular area. The area is defined by the WGS84 coordinates of its bottomLeft and topRight corners.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.common.RectangularArea#getBottomLeft <em>Bottom Left</em>}</li>
+ * <li>{@link org.genivi.common.RectangularArea#getTopRight <em>Top Right</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.common.CommonPackage#getRectangularArea()
+ * @model
+ * @generated
+ */
+public interface RectangularArea extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Bottom Left</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bottom Left</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The bottom-left corner of the area.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Bottom Left</em>' containment reference.
+ * @see #setBottomLeft(Coordinate)
+ * @see org.genivi.common.CommonPackage#getRectangularArea_BottomLeft()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Coordinate getBottomLeft();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.RectangularArea#getBottomLeft <em>Bottom Left</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bottom Left</em>' containment reference.
+ * @see #getBottomLeft()
+ * @generated
+ */
+ void setBottomLeft(Coordinate value);
+
+ /**
+ * Returns the value of the '<em><b>Top Right</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Top Right</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The top-right corner of the area.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Top Right</em>' containment reference.
+ * @see #setTopRight(Coordinate)
+ * @see org.genivi.common.CommonPackage#getRectangularArea_TopRight()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Coordinate getTopRight();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.RectangularArea#getTopRight <em>Top Right</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Top Right</em>' containment reference.
+ * @see #getTopRight()
+ * @generated
+ */
+ void setTopRight(Coordinate value);
+} // RectangularArea
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Version.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Version.java
new file mode 100755
index 0000000..32adcc5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/Version.java
@@ -0,0 +1,263 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.common;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Version</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This datatype is used to provide version information.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.common.Version#getMajor <em>Major</em>}</li>
+ * <li>{@link org.genivi.common.Version#getMinor <em>Minor</em>}</li>
+ * <li>{@link org.genivi.common.Version#getMicro <em>Micro</em>}</li>
+ * <li>{@link org.genivi.common.Version#getDate <em>Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.common.CommonPackage#getVersion()
+ * @model
+ * @generated
+ */
+public interface Version extends EObject {
+ /**
+ * Returns the value of the '<em><b>Major</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Major</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The major version number.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Major</em>' attribute.
+ * @see #isSetMajor()
+ * @see #unsetMajor()
+ * @see #setMajor(int)
+ * @see org.genivi.common.CommonPackage#getVersion_Major()
+ * @model unsettable="true" required="true"
+ * annotation="http://www.tomtom.com/emfidl/2012/GenModel valueMin='0' valueMax='32767'"
+ * @generated
+ */
+ int getMajor();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Version#getMajor <em>Major</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Major</em>' attribute.
+ * @see #isSetMajor()
+ * @see #unsetMajor()
+ * @see #getMajor()
+ * @generated
+ */
+ void setMajor(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.Version#getMajor <em>Major</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMajor()
+ * @see #getMajor()
+ * @see #setMajor(int)
+ * @generated
+ */
+ void unsetMajor();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.Version#getMajor <em>Major</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Major</em>' attribute is set.
+ * @see #unsetMajor()
+ * @see #getMajor()
+ * @see #setMajor(int)
+ * @generated
+ */
+ boolean isSetMajor();
+
+ /**
+ * Returns the value of the '<em><b>Minor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Minor</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The minor version number.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Minor</em>' attribute.
+ * @see #isSetMinor()
+ * @see #unsetMinor()
+ * @see #setMinor(int)
+ * @see org.genivi.common.CommonPackage#getVersion_Minor()
+ * @model unsettable="true" required="true"
+ * annotation="http://www.tomtom.com/emfidl/2012/GenModel valueMin='0' valueMax='32767'"
+ * @generated
+ */
+ int getMinor();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Version#getMinor <em>Minor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Minor</em>' attribute.
+ * @see #isSetMinor()
+ * @see #unsetMinor()
+ * @see #getMinor()
+ * @generated
+ */
+ void setMinor(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.Version#getMinor <em>Minor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMinor()
+ * @see #getMinor()
+ * @see #setMinor(int)
+ * @generated
+ */
+ void unsetMinor();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.Version#getMinor <em>Minor</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Minor</em>' attribute is set.
+ * @see #unsetMinor()
+ * @see #getMinor()
+ * @see #setMinor(int)
+ * @generated
+ */
+ boolean isSetMinor();
+
+ /**
+ * Returns the value of the '<em><b>Micro</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Micro</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The micro version number.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Micro</em>' attribute.
+ * @see #isSetMicro()
+ * @see #unsetMicro()
+ * @see #setMicro(int)
+ * @see org.genivi.common.CommonPackage#getVersion_Micro()
+ * @model unsettable="true" required="true"
+ * annotation="http://www.tomtom.com/emfidl/2012/GenModel valueMin='0' valueMax='32767'"
+ * @generated
+ */
+ int getMicro();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Version#getMicro <em>Micro</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Micro</em>' attribute.
+ * @see #isSetMicro()
+ * @see #unsetMicro()
+ * @see #getMicro()
+ * @generated
+ */
+ void setMicro(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.Version#getMicro <em>Micro</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMicro()
+ * @see #getMicro()
+ * @see #setMicro(int)
+ * @generated
+ */
+ void unsetMicro();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.Version#getMicro <em>Micro</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Micro</em>' attribute is set.
+ * @see #unsetMicro()
+ * @see #getMicro()
+ * @see #setMicro(int)
+ * @generated
+ */
+ boolean isSetMicro();
+
+ /**
+ * Returns the value of the '<em><b>Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Date</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The date of this version.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Date</em>' attribute.
+ * @see #isSetDate()
+ * @see #unsetDate()
+ * @see #setDate(String)
+ * @see org.genivi.common.CommonPackage#getVersion_Date()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getDate();
+
+ /**
+ * Sets the value of the '{@link org.genivi.common.Version#getDate <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Date</em>' attribute.
+ * @see #isSetDate()
+ * @see #unsetDate()
+ * @see #getDate()
+ * @generated
+ */
+ void setDate(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.common.Version#getDate <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDate()
+ * @see #getDate()
+ * @see #setDate(String)
+ * @generated
+ */
+ void unsetDate();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.common.Version#getDate <em>Date</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Date</em>' attribute is set.
+ * @see #unsetDate()
+ * @see #getDate()
+ * @see #setDate(String)
+ * @generated
+ */
+ boolean isSetDate();
+
+} // Version
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonFactoryImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonFactoryImpl.java
new file mode 100755
index 0000000..a1760d9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonFactoryImpl.java
@@ -0,0 +1,135 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.common.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CommonFactoryImpl extends EFactoryImpl implements CommonFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CommonFactory init() {
+ try {
+ CommonFactory theCommonFactory = (CommonFactory)EPackage.Registry.INSTANCE.getEFactory(CommonPackage.eNS_URI);
+ if (theCommonFactory != null) {
+ return theCommonFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CommonFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommonFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CommonPackage.COORDINATE: return createCoordinate();
+ case CommonPackage.RECTANGULAR_AREA: return createRectangularArea();
+ case CommonPackage.VERSION: return createVersion();
+ case CommonPackage.LOCALIZED_STRING: return createLocalizedString();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Coordinate createCoordinate() {
+ CoordinateImpl coordinate = new CoordinateImpl();
+ return coordinate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RectangularArea createRectangularArea() {
+ RectangularAreaImpl rectangularArea = new RectangularAreaImpl();
+ return rectangularArea;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Version createVersion() {
+ VersionImpl version = new VersionImpl();
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocalizedString createLocalizedString() {
+ LocalizedStringImpl localizedString = new LocalizedStringImpl();
+ return localizedString;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommonPackage getCommonPackage() {
+ return (CommonPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CommonPackage getPackage() {
+ return CommonPackage.eINSTANCE;
+ }
+
+} //CommonFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonPackageImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonPackageImpl.java
new file mode 100755
index 0000000..f8f8ecc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CommonPackageImpl.java
@@ -0,0 +1,413 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.common.CommonFactory;
+import org.genivi.common.CommonPackage;
+import org.genivi.common.Coordinate;
+import org.genivi.common.LocalizedString;
+import org.genivi.common.RectangularArea;
+
+import org.genivi.common.Version;
+import org.genivi.location.LocationPackage;
+
+import org.genivi.location.impl.LocationPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CommonPackageImpl extends EPackageImpl implements CommonPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass coordinateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rectangularAreaEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass versionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass localizedStringEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.common.CommonPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CommonPackageImpl() {
+ super(eNS_URI, CommonFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link CommonPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static CommonPackage init() {
+ if (isInited) return (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
+
+ // Obtain or create and register package
+ CommonPackageImpl theCommonPackage = (CommonPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CommonPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CommonPackageImpl());
+
+ isInited = true;
+
+ // Obtain or create and register interdependencies
+ LocationPackageImpl theLocationPackage = (LocationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(LocationPackage.eNS_URI) instanceof LocationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(LocationPackage.eNS_URI) : LocationPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theCommonPackage.createPackageContents();
+ theLocationPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCommonPackage.initializePackageContents();
+ theLocationPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCommonPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CommonPackage.eNS_URI, theCommonPackage);
+ return theCommonPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCoordinate() {
+ return coordinateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCoordinate_Latitude() {
+ return (EAttribute)coordinateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCoordinate_Longitude() {
+ return (EAttribute)coordinateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCoordinate_Altitude() {
+ return (EAttribute)coordinateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRectangularArea() {
+ return rectangularAreaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRectangularArea_BottomLeft() {
+ return (EReference)rectangularAreaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRectangularArea_TopRight() {
+ return (EReference)rectangularAreaEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVersion() {
+ return versionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVersion_Major() {
+ return (EAttribute)versionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVersion_Minor() {
+ return (EAttribute)versionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVersion_Micro() {
+ return (EAttribute)versionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVersion_Date() {
+ return (EAttribute)versionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocalizedString() {
+ return localizedStringEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalizedString_LanguageCode() {
+ return (EAttribute)localizedStringEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalizedString_CountryCode() {
+ return (EAttribute)localizedStringEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalizedString_String() {
+ return (EAttribute)localizedStringEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommonFactory getCommonFactory() {
+ return (CommonFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ coordinateEClass = createEClass(COORDINATE);
+ createEAttribute(coordinateEClass, COORDINATE__LATITUDE);
+ createEAttribute(coordinateEClass, COORDINATE__LONGITUDE);
+ createEAttribute(coordinateEClass, COORDINATE__ALTITUDE);
+
+ rectangularAreaEClass = createEClass(RECTANGULAR_AREA);
+ createEReference(rectangularAreaEClass, RECTANGULAR_AREA__BOTTOM_LEFT);
+ createEReference(rectangularAreaEClass, RECTANGULAR_AREA__TOP_RIGHT);
+
+ versionEClass = createEClass(VERSION);
+ createEAttribute(versionEClass, VERSION__MAJOR);
+ createEAttribute(versionEClass, VERSION__MINOR);
+ createEAttribute(versionEClass, VERSION__MICRO);
+ createEAttribute(versionEClass, VERSION__DATE);
+
+ localizedStringEClass = createEClass(LOCALIZED_STRING);
+ createEAttribute(localizedStringEClass, LOCALIZED_STRING__LANGUAGE_CODE);
+ createEAttribute(localizedStringEClass, LOCALIZED_STRING__COUNTRY_CODE);
+ createEAttribute(localizedStringEClass, LOCALIZED_STRING__STRING);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(coordinateEClass, Coordinate.class, "Coordinate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCoordinate_Latitude(), ecorePackage.getEDouble(), "latitude", null, 1, 1, Coordinate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCoordinate_Longitude(), ecorePackage.getEDouble(), "longitude", null, 1, 1, Coordinate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCoordinate_Altitude(), ecorePackage.getEInt(), "altitude", null, 0, 1, Coordinate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(rectangularAreaEClass, RectangularArea.class, "RectangularArea", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRectangularArea_BottomLeft(), this.getCoordinate(), null, "bottomLeft", null, 1, 1, RectangularArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRectangularArea_TopRight(), this.getCoordinate(), null, "topRight", null, 1, 1, RectangularArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(versionEClass, Version.class, "Version", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVersion_Major(), ecorePackage.getEInt(), "major", null, 1, 1, Version.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVersion_Minor(), ecorePackage.getEInt(), "minor", null, 1, 1, Version.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVersion_Micro(), ecorePackage.getEInt(), "micro", null, 1, 1, Version.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVersion_Date(), ecorePackage.getEString(), "date", null, 1, 1, Version.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(localizedStringEClass, LocalizedString.class, "LocalizedString", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLocalizedString_LanguageCode(), ecorePackage.getEString(), "languageCode", null, 1, 1, LocalizedString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLocalizedString_CountryCode(), ecorePackage.getEString(), "countryCode", null, 0, 1, LocalizedString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLocalizedString_String(), ecorePackage.getEString(), "string", null, 1, 1, LocalizedString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.tomtom.com/emfidl/2012/GenModel
+ createGenModel_1Annotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.tomtom.com/emfidl/2012/GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModel_1Annotations() {
+ String source = "http://www.tomtom.com/emfidl/2012/GenModel";
+ addAnnotation
+ (getVersion_Major(),
+ source,
+ new String[] {
+ "valueMin", "0",
+ "valueMax", "32767"
+ });
+ addAnnotation
+ (getVersion_Minor(),
+ source,
+ new String[] {
+ "valueMin", "0",
+ "valueMax", "32767"
+ });
+ addAnnotation
+ (getVersion_Micro(),
+ source,
+ new String[] {
+ "valueMin", "0",
+ "valueMax", "32767"
+ });
+ }
+
+} //CommonPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CoordinateImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CoordinateImpl.java
new file mode 100755
index 0000000..38caa05
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/CoordinateImpl.java
@@ -0,0 +1,272 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.CommonPackage;
+import org.genivi.common.Coordinate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Coordinate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.common.impl.CoordinateImpl#getLatitude <em>Latitude</em>}</li>
+ * <li>{@link org.genivi.common.impl.CoordinateImpl#getLongitude <em>Longitude</em>}</li>
+ * <li>{@link org.genivi.common.impl.CoordinateImpl#getAltitude <em>Altitude</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CoordinateImpl extends EObjectImpl implements Coordinate {
+ /**
+ * The default value of the '{@link #getLatitude() <em>Latitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLatitude()
+ * @generated
+ * @ordered
+ */
+ protected static final double LATITUDE_EDEFAULT = 0.0;
+ /**
+ * The cached value of the '{@link #getLatitude() <em>Latitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLatitude()
+ * @generated
+ * @ordered
+ */
+ protected double latitude = LATITUDE_EDEFAULT;
+ /**
+ * The default value of the '{@link #getLongitude() <em>Longitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLongitude()
+ * @generated
+ * @ordered
+ */
+ protected static final double LONGITUDE_EDEFAULT = 0.0;
+ /**
+ * The cached value of the '{@link #getLongitude() <em>Longitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLongitude()
+ * @generated
+ * @ordered
+ */
+ protected double longitude = LONGITUDE_EDEFAULT;
+ /**
+ * The default value of the '{@link #getAltitude() <em>Altitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAltitude()
+ * @generated
+ * @ordered
+ */
+ protected static final int ALTITUDE_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getAltitude() <em>Altitude</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAltitude()
+ * @generated
+ * @ordered
+ */
+ protected int altitude = ALTITUDE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CoordinateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CommonPackage.Literals.COORDINATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getLatitude() {
+ return latitude;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLatitude(double newLatitude) {
+ double oldLatitude = latitude;
+ latitude = newLatitude;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.COORDINATE__LATITUDE, oldLatitude, latitude));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getLongitude() {
+ return longitude;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLongitude(double newLongitude) {
+ double oldLongitude = longitude;
+ longitude = newLongitude;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.COORDINATE__LONGITUDE, oldLongitude, longitude));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getAltitude() {
+ return altitude;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAltitude(int newAltitude) {
+ int oldAltitude = altitude;
+ altitude = newAltitude;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.COORDINATE__ALTITUDE, oldAltitude, altitude));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CommonPackage.COORDINATE__LATITUDE:
+ return getLatitude();
+ case CommonPackage.COORDINATE__LONGITUDE:
+ return getLongitude();
+ case CommonPackage.COORDINATE__ALTITUDE:
+ return getAltitude();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CommonPackage.COORDINATE__LATITUDE:
+ setLatitude((Double)newValue);
+ return;
+ case CommonPackage.COORDINATE__LONGITUDE:
+ setLongitude((Double)newValue);
+ return;
+ case CommonPackage.COORDINATE__ALTITUDE:
+ setAltitude((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CommonPackage.COORDINATE__LATITUDE:
+ setLatitude(LATITUDE_EDEFAULT);
+ return;
+ case CommonPackage.COORDINATE__LONGITUDE:
+ setLongitude(LONGITUDE_EDEFAULT);
+ return;
+ case CommonPackage.COORDINATE__ALTITUDE:
+ setAltitude(ALTITUDE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CommonPackage.COORDINATE__LATITUDE:
+ return latitude != LATITUDE_EDEFAULT;
+ case CommonPackage.COORDINATE__LONGITUDE:
+ return longitude != LONGITUDE_EDEFAULT;
+ case CommonPackage.COORDINATE__ALTITUDE:
+ return altitude != ALTITUDE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (latitude: ");
+ result.append(latitude);
+ result.append(", longitude: ");
+ result.append(longitude);
+ result.append(", altitude: ");
+ result.append(altitude);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CoordinateImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/LocalizedStringImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/LocalizedStringImpl.java
new file mode 100755
index 0000000..8f6743a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/LocalizedStringImpl.java
@@ -0,0 +1,380 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.CommonPackage;
+import org.genivi.common.LocalizedString;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Localized String</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.common.impl.LocalizedStringImpl#getLanguageCode <em>Language Code</em>}</li>
+ * <li>{@link org.genivi.common.impl.LocalizedStringImpl#getCountryCode <em>Country Code</em>}</li>
+ * <li>{@link org.genivi.common.impl.LocalizedStringImpl#getString <em>String</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LocalizedStringImpl extends EObjectImpl implements LocalizedString {
+ /**
+ * The default value of the '{@link #getLanguageCode() <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguageCode()
+ * @generated
+ * @ordered
+ */
+ protected static final String LANGUAGE_CODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLanguageCode() <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguageCode()
+ * @generated
+ * @ordered
+ */
+ protected String languageCode = LANGUAGE_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Language Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean languageCodeESet;
+
+ /**
+ * The default value of the '{@link #getCountryCode() <em>Country Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCountryCode()
+ * @generated
+ * @ordered
+ */
+ protected static final String COUNTRY_CODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCountryCode() <em>Country Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCountryCode()
+ * @generated
+ * @ordered
+ */
+ protected String countryCode = COUNTRY_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Country Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean countryCodeESet;
+
+ /**
+ * The default value of the '{@link #getString() <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getString()
+ * @generated
+ * @ordered
+ */
+ protected static final String STRING_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getString() <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getString()
+ * @generated
+ * @ordered
+ */
+ protected String string = STRING_EDEFAULT;
+
+ /**
+ * This is true if the String attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean stringESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocalizedStringImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CommonPackage.Literals.LOCALIZED_STRING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLanguageCode() {
+ return languageCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguageCode(String newLanguageCode) {
+ String oldLanguageCode = languageCode;
+ languageCode = newLanguageCode;
+ boolean oldLanguageCodeESet = languageCodeESet;
+ languageCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.LOCALIZED_STRING__LANGUAGE_CODE, oldLanguageCode, languageCode, !oldLanguageCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLanguageCode() {
+ String oldLanguageCode = languageCode;
+ boolean oldLanguageCodeESet = languageCodeESet;
+ languageCode = LANGUAGE_CODE_EDEFAULT;
+ languageCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.LOCALIZED_STRING__LANGUAGE_CODE, oldLanguageCode, LANGUAGE_CODE_EDEFAULT, oldLanguageCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLanguageCode() {
+ return languageCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCountryCode(String newCountryCode) {
+ String oldCountryCode = countryCode;
+ countryCode = newCountryCode;
+ boolean oldCountryCodeESet = countryCodeESet;
+ countryCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.LOCALIZED_STRING__COUNTRY_CODE, oldCountryCode, countryCode, !oldCountryCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCountryCode() {
+ String oldCountryCode = countryCode;
+ boolean oldCountryCodeESet = countryCodeESet;
+ countryCode = COUNTRY_CODE_EDEFAULT;
+ countryCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.LOCALIZED_STRING__COUNTRY_CODE, oldCountryCode, COUNTRY_CODE_EDEFAULT, oldCountryCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCountryCode() {
+ return countryCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getString() {
+ return string;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setString(String newString) {
+ String oldString = string;
+ string = newString;
+ boolean oldStringESet = stringESet;
+ stringESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.LOCALIZED_STRING__STRING, oldString, string, !oldStringESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetString() {
+ String oldString = string;
+ boolean oldStringESet = stringESet;
+ string = STRING_EDEFAULT;
+ stringESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.LOCALIZED_STRING__STRING, oldString, STRING_EDEFAULT, oldStringESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetString() {
+ return stringESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CommonPackage.LOCALIZED_STRING__LANGUAGE_CODE:
+ return getLanguageCode();
+ case CommonPackage.LOCALIZED_STRING__COUNTRY_CODE:
+ return getCountryCode();
+ case CommonPackage.LOCALIZED_STRING__STRING:
+ return getString();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CommonPackage.LOCALIZED_STRING__LANGUAGE_CODE:
+ setLanguageCode((String)newValue);
+ return;
+ case CommonPackage.LOCALIZED_STRING__COUNTRY_CODE:
+ setCountryCode((String)newValue);
+ return;
+ case CommonPackage.LOCALIZED_STRING__STRING:
+ setString((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CommonPackage.LOCALIZED_STRING__LANGUAGE_CODE:
+ unsetLanguageCode();
+ return;
+ case CommonPackage.LOCALIZED_STRING__COUNTRY_CODE:
+ unsetCountryCode();
+ return;
+ case CommonPackage.LOCALIZED_STRING__STRING:
+ unsetString();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CommonPackage.LOCALIZED_STRING__LANGUAGE_CODE:
+ return isSetLanguageCode();
+ case CommonPackage.LOCALIZED_STRING__COUNTRY_CODE:
+ return isSetCountryCode();
+ case CommonPackage.LOCALIZED_STRING__STRING:
+ return isSetString();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (languageCode: ");
+ if (languageCodeESet) result.append(languageCode); else result.append("<unset>");
+ result.append(", countryCode: ");
+ if (countryCodeESet) result.append(countryCode); else result.append("<unset>");
+ result.append(", string: ");
+ if (stringESet) result.append(string); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LocalizedStringImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/RectangularAreaImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/RectangularAreaImpl.java
new file mode 100755
index 0000000..8eb3254
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/RectangularAreaImpl.java
@@ -0,0 +1,247 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.CommonPackage;
+import org.genivi.common.Coordinate;
+import org.genivi.common.RectangularArea;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Rectangular Area</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.common.impl.RectangularAreaImpl#getBottomLeft <em>Bottom Left</em>}</li>
+ * <li>{@link org.genivi.common.impl.RectangularAreaImpl#getTopRight <em>Top Right</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RectangularAreaImpl extends EObjectImpl implements RectangularArea {
+ /**
+ * The cached value of the '{@link #getBottomLeft() <em>Bottom Left</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBottomLeft()
+ * @generated
+ * @ordered
+ */
+ protected Coordinate bottomLeft;
+ /**
+ * The cached value of the '{@link #getTopRight() <em>Top Right</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTopRight()
+ * @generated
+ * @ordered
+ */
+ protected Coordinate topRight;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RectangularAreaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CommonPackage.Literals.RECTANGULAR_AREA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Coordinate getBottomLeft() {
+ return bottomLeft;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBottomLeft(Coordinate newBottomLeft, NotificationChain msgs) {
+ Coordinate oldBottomLeft = bottomLeft;
+ bottomLeft = newBottomLeft;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT, oldBottomLeft, newBottomLeft);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBottomLeft(Coordinate newBottomLeft) {
+ if (newBottomLeft != bottomLeft) {
+ NotificationChain msgs = null;
+ if (bottomLeft != null)
+ msgs = ((InternalEObject)bottomLeft).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT, null, msgs);
+ if (newBottomLeft != null)
+ msgs = ((InternalEObject)newBottomLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT, null, msgs);
+ msgs = basicSetBottomLeft(newBottomLeft, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT, newBottomLeft, newBottomLeft));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Coordinate getTopRight() {
+ return topRight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTopRight(Coordinate newTopRight, NotificationChain msgs) {
+ Coordinate oldTopRight = topRight;
+ topRight = newTopRight;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CommonPackage.RECTANGULAR_AREA__TOP_RIGHT, oldTopRight, newTopRight);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTopRight(Coordinate newTopRight) {
+ if (newTopRight != topRight) {
+ NotificationChain msgs = null;
+ if (topRight != null)
+ msgs = ((InternalEObject)topRight).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CommonPackage.RECTANGULAR_AREA__TOP_RIGHT, null, msgs);
+ if (newTopRight != null)
+ msgs = ((InternalEObject)newTopRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CommonPackage.RECTANGULAR_AREA__TOP_RIGHT, null, msgs);
+ msgs = basicSetTopRight(newTopRight, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.RECTANGULAR_AREA__TOP_RIGHT, newTopRight, newTopRight));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT:
+ return basicSetBottomLeft(null, msgs);
+ case CommonPackage.RECTANGULAR_AREA__TOP_RIGHT:
+ return basicSetTopRight(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT:
+ return getBottomLeft();
+ case CommonPackage.RECTANGULAR_AREA__TOP_RIGHT:
+ return getTopRight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT:
+ setBottomLeft((Coordinate)newValue);
+ return;
+ case CommonPackage.RECTANGULAR_AREA__TOP_RIGHT:
+ setTopRight((Coordinate)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT:
+ setBottomLeft((Coordinate)null);
+ return;
+ case CommonPackage.RECTANGULAR_AREA__TOP_RIGHT:
+ setTopRight((Coordinate)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CommonPackage.RECTANGULAR_AREA__BOTTOM_LEFT:
+ return bottomLeft != null;
+ case CommonPackage.RECTANGULAR_AREA__TOP_RIGHT:
+ return topRight != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RectangularAreaImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/VersionImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/VersionImpl.java
new file mode 100755
index 0000000..a70edc8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/impl/VersionImpl.java
@@ -0,0 +1,468 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.CommonPackage;
+import org.genivi.common.Version;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Version</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.common.impl.VersionImpl#getMajor <em>Major</em>}</li>
+ * <li>{@link org.genivi.common.impl.VersionImpl#getMinor <em>Minor</em>}</li>
+ * <li>{@link org.genivi.common.impl.VersionImpl#getMicro <em>Micro</em>}</li>
+ * <li>{@link org.genivi.common.impl.VersionImpl#getDate <em>Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VersionImpl extends EObjectImpl implements Version {
+ /**
+ * The default value of the '{@link #getMajor() <em>Major</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMajor()
+ * @generated
+ * @ordered
+ */
+ protected static final int MAJOR_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMajor() <em>Major</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMajor()
+ * @generated
+ * @ordered
+ */
+ protected int major = MAJOR_EDEFAULT;
+
+ /**
+ * This is true if the Major attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean majorESet;
+
+ /**
+ * The default value of the '{@link #getMinor() <em>Minor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinor()
+ * @generated
+ * @ordered
+ */
+ protected static final int MINOR_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMinor() <em>Minor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinor()
+ * @generated
+ * @ordered
+ */
+ protected int minor = MINOR_EDEFAULT;
+
+ /**
+ * This is true if the Minor attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean minorESet;
+
+ /**
+ * The default value of the '{@link #getMicro() <em>Micro</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMicro()
+ * @generated
+ * @ordered
+ */
+ protected static final int MICRO_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMicro() <em>Micro</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMicro()
+ * @generated
+ * @ordered
+ */
+ protected int micro = MICRO_EDEFAULT;
+
+ /**
+ * This is true if the Micro attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean microESet;
+
+ /**
+ * The default value of the '{@link #getDate() <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDate()
+ * @generated
+ * @ordered
+ */
+ protected static final String DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDate() <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDate()
+ * @generated
+ * @ordered
+ */
+ protected String date = DATE_EDEFAULT;
+
+ /**
+ * This is true if the Date attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dateESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VersionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CommonPackage.Literals.VERSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMajor() {
+ return major;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMajor(int newMajor) {
+ int oldMajor = major;
+ major = newMajor;
+ boolean oldMajorESet = majorESet;
+ majorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.VERSION__MAJOR, oldMajor, major, !oldMajorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMajor() {
+ int oldMajor = major;
+ boolean oldMajorESet = majorESet;
+ major = MAJOR_EDEFAULT;
+ majorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.VERSION__MAJOR, oldMajor, MAJOR_EDEFAULT, oldMajorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMajor() {
+ return majorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMinor() {
+ return minor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMinor(int newMinor) {
+ int oldMinor = minor;
+ minor = newMinor;
+ boolean oldMinorESet = minorESet;
+ minorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.VERSION__MINOR, oldMinor, minor, !oldMinorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMinor() {
+ int oldMinor = minor;
+ boolean oldMinorESet = minorESet;
+ minor = MINOR_EDEFAULT;
+ minorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.VERSION__MINOR, oldMinor, MINOR_EDEFAULT, oldMinorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMinor() {
+ return minorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMicro() {
+ return micro;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMicro(int newMicro) {
+ int oldMicro = micro;
+ micro = newMicro;
+ boolean oldMicroESet = microESet;
+ microESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.VERSION__MICRO, oldMicro, micro, !oldMicroESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMicro() {
+ int oldMicro = micro;
+ boolean oldMicroESet = microESet;
+ micro = MICRO_EDEFAULT;
+ microESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.VERSION__MICRO, oldMicro, MICRO_EDEFAULT, oldMicroESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMicro() {
+ return microESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDate() {
+ return date;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDate(String newDate) {
+ String oldDate = date;
+ date = newDate;
+ boolean oldDateESet = dateESet;
+ dateESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.VERSION__DATE, oldDate, date, !oldDateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDate() {
+ String oldDate = date;
+ boolean oldDateESet = dateESet;
+ date = DATE_EDEFAULT;
+ dateESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, CommonPackage.VERSION__DATE, oldDate, DATE_EDEFAULT, oldDateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDate() {
+ return dateESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CommonPackage.VERSION__MAJOR:
+ return getMajor();
+ case CommonPackage.VERSION__MINOR:
+ return getMinor();
+ case CommonPackage.VERSION__MICRO:
+ return getMicro();
+ case CommonPackage.VERSION__DATE:
+ return getDate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CommonPackage.VERSION__MAJOR:
+ setMajor((Integer)newValue);
+ return;
+ case CommonPackage.VERSION__MINOR:
+ setMinor((Integer)newValue);
+ return;
+ case CommonPackage.VERSION__MICRO:
+ setMicro((Integer)newValue);
+ return;
+ case CommonPackage.VERSION__DATE:
+ setDate((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CommonPackage.VERSION__MAJOR:
+ unsetMajor();
+ return;
+ case CommonPackage.VERSION__MINOR:
+ unsetMinor();
+ return;
+ case CommonPackage.VERSION__MICRO:
+ unsetMicro();
+ return;
+ case CommonPackage.VERSION__DATE:
+ unsetDate();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CommonPackage.VERSION__MAJOR:
+ return isSetMajor();
+ case CommonPackage.VERSION__MINOR:
+ return isSetMinor();
+ case CommonPackage.VERSION__MICRO:
+ return isSetMicro();
+ case CommonPackage.VERSION__DATE:
+ return isSetDate();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (major: ");
+ if (majorESet) result.append(major); else result.append("<unset>");
+ result.append(", minor: ");
+ if (minorESet) result.append(minor); else result.append("<unset>");
+ result.append(", micro: ");
+ if (microESet) result.append(micro); else result.append("<unset>");
+ result.append(", date: ");
+ if (dateESet) result.append(date); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //VersionImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonAdapterFactory.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonAdapterFactory.java
new file mode 100755
index 0000000..9876412
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonAdapterFactory.java
@@ -0,0 +1,181 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.CommonPackage
+ * @generated
+ */
+public class CommonAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CommonPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommonAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CommonPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CommonSwitch<Adapter> modelSwitch =
+ new CommonSwitch<Adapter>() {
+ @Override
+ public Adapter caseCoordinate(Coordinate object) {
+ return createCoordinateAdapter();
+ }
+ @Override
+ public Adapter caseRectangularArea(RectangularArea object) {
+ return createRectangularAreaAdapter();
+ }
+ @Override
+ public Adapter caseVersion(Version object) {
+ return createVersionAdapter();
+ }
+ @Override
+ public Adapter caseLocalizedString(LocalizedString object) {
+ return createLocalizedStringAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.common.Coordinate <em>Coordinate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.common.Coordinate
+ * @generated
+ */
+ public Adapter createCoordinateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.common.RectangularArea <em>Rectangular Area</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.common.RectangularArea
+ * @generated
+ */
+ public Adapter createRectangularAreaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.common.Version <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.common.Version
+ * @generated
+ */
+ public Adapter createVersionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.common.LocalizedString <em>Localized String</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.common.LocalizedString
+ * @generated
+ */
+ public Adapter createLocalizedStringAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //CommonAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonSwitch.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonSwitch.java
new file mode 100755
index 0000000..2d06273
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/common/util/CommonSwitch.java
@@ -0,0 +1,182 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.common.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.genivi.common.CommonPackage;
+import org.genivi.common.Coordinate;
+import org.genivi.common.LocalizedString;
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.common.CommonPackage
+ * @generated
+ */
+public class CommonSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CommonPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommonSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CommonPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case CommonPackage.COORDINATE: {
+ Coordinate coordinate = (Coordinate)theEObject;
+ T result = caseCoordinate(coordinate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CommonPackage.RECTANGULAR_AREA: {
+ RectangularArea rectangularArea = (RectangularArea)theEObject;
+ T result = caseRectangularArea(rectangularArea);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CommonPackage.VERSION: {
+ Version version = (Version)theEObject;
+ T result = caseVersion(version);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CommonPackage.LOCALIZED_STRING: {
+ LocalizedString localizedString = (LocalizedString)theEObject;
+ T result = caseLocalizedString(localizedString);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Coordinate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Coordinate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCoordinate(Coordinate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Rectangular Area</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Rectangular Area</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRectangularArea(RectangularArea object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Version</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Version</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVersion(Version object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Localized String</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Localized String</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocalizedString(LocalizedString object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //CommonSwitch
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocation.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocation.java
new file mode 100755
index 0000000..88db67d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocation.java
@@ -0,0 +1,29 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Area Location</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The location is an area, e.g. an area with fog.
+ * TODO Work out the AreaLocation class
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.location.LocationPackage#getAreaLocation()
+ * @model
+ * @generated
+ */
+public interface AreaLocation extends Location {
+} // AreaLocation
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocationInfo.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocationInfo.java
new file mode 100755
index 0000000..4bead9d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/AreaLocationInfo.java
@@ -0,0 +1,24 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Area Location Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.location.LocationPackage#getAreaLocationInfo()
+ * @model
+ * @generated
+ */
+public interface AreaLocationInfo extends LocationInfo {
+} // AreaLocationInfo
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocation.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocation.java
new file mode 100755
index 0000000..ea5bcd6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocation.java
@@ -0,0 +1,161 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linear Location</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The location is a road stretch, e.g. the road stretch where there is a traffic jam.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.location.LinearLocation#getSegments <em>Segments</em>}</li>
+ * <li>{@link org.genivi.location.LinearLocation#getPositiveOffset <em>Positive Offset</em>}</li>
+ * <li>{@link org.genivi.location.LinearLocation#getNegativeOffset <em>Negative Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.location.LocationPackage#getLinearLocation()
+ * @model
+ * @generated
+ */
+public interface LinearLocation extends Location {
+
+ /**
+ * Returns the value of the '<em><b>Segments</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Long}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Segments</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The database segments of the location.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Segments</em>' attribute list.
+ * @see org.genivi.location.LocationPackage#getLinearLocation_Segments()
+ * @model required="true"
+ * @generated
+ */
+ EList<Long> getSegments();
+
+ /**
+ * Returns the value of the '<em><b>Positive Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The positive offset is the distance (in meters) between the begin node of the first segment and the start point of the actual location.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Positive Offset</em>' attribute.
+ * @see #isSetPositiveOffset()
+ * @see #unsetPositiveOffset()
+ * @see #setPositiveOffset(long)
+ * @see org.genivi.location.LocationPackage#getLinearLocation_PositiveOffset()
+ * @model unsettable="true"
+ * @generated
+ */
+ long getPositiveOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LinearLocation#getPositiveOffset <em>Positive Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Positive Offset</em>' attribute.
+ * @see #isSetPositiveOffset()
+ * @see #unsetPositiveOffset()
+ * @see #getPositiveOffset()
+ * @generated
+ */
+ void setPositiveOffset(long value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.location.LinearLocation#getPositiveOffset <em>Positive Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetPositiveOffset()
+ * @see #getPositiveOffset()
+ * @see #setPositiveOffset(long)
+ * @generated
+ */
+ void unsetPositiveOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.location.LinearLocation#getPositiveOffset <em>Positive Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Positive Offset</em>' attribute is set.
+ * @see #unsetPositiveOffset()
+ * @see #getPositiveOffset()
+ * @see #setPositiveOffset(long)
+ * @generated
+ */
+ boolean isSetPositiveOffset();
+
+ /**
+ * Returns the value of the '<em><b>Negative Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The negative offset is the distance (in meters) between the end point of the actual location and the end node of the last segment.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Negative Offset</em>' attribute.
+ * @see #isSetNegativeOffset()
+ * @see #unsetNegativeOffset()
+ * @see #setNegativeOffset(long)
+ * @see org.genivi.location.LocationPackage#getLinearLocation_NegativeOffset()
+ * @model unsettable="true"
+ * @generated
+ */
+ long getNegativeOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LinearLocation#getNegativeOffset <em>Negative Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Negative Offset</em>' attribute.
+ * @see #isSetNegativeOffset()
+ * @see #unsetNegativeOffset()
+ * @see #getNegativeOffset()
+ * @generated
+ */
+ void setNegativeOffset(long value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.location.LinearLocation#getNegativeOffset <em>Negative Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNegativeOffset()
+ * @see #getNegativeOffset()
+ * @see #setNegativeOffset(long)
+ * @generated
+ */
+ void unsetNegativeOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.location.LinearLocation#getNegativeOffset <em>Negative Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Negative Offset</em>' attribute is set.
+ * @see #unsetNegativeOffset()
+ * @see #getNegativeOffset()
+ * @see #setNegativeOffset(long)
+ * @generated
+ */
+ boolean isSetNegativeOffset();
+} // LinearLocation
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocationInfo.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocationInfo.java
new file mode 100755
index 0000000..d933d3c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LinearLocationInfo.java
@@ -0,0 +1,157 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.genivi.common.Coordinate;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linear Location Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.location.LinearLocationInfo#getFromLocationName <em>From Location Name</em>}</li>
+ * <li>{@link org.genivi.location.LinearLocationInfo#getFromLocationParentName <em>From Location Parent Name</em>}</li>
+ * <li>{@link org.genivi.location.LinearLocationInfo#getToLocationName <em>To Location Name</em>}</li>
+ * <li>{@link org.genivi.location.LinearLocationInfo#getToLocationParentName <em>To Location Parent Name</em>}</li>
+ * <li>{@link org.genivi.location.LinearLocationInfo#getCoordinates <em>Coordinates</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.location.LocationPackage#getLinearLocationInfo()
+ * @model
+ * @generated
+ */
+public interface LinearLocationInfo extends LocationInfo {
+ /**
+ * Returns the value of the '<em><b>From Location Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>From Location Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>From Location Name</em>' attribute.
+ * @see #setFromLocationName(String)
+ * @see org.genivi.location.LocationPackage#getLinearLocationInfo_FromLocationName()
+ * @model
+ * @generated
+ */
+ String getFromLocationName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LinearLocationInfo#getFromLocationName <em>From Location Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>From Location Name</em>' attribute.
+ * @see #getFromLocationName()
+ * @generated
+ */
+ void setFromLocationName(String value);
+
+ /**
+ * Returns the value of the '<em><b>From Location Parent Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>From Location Parent Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>From Location Parent Name</em>' attribute.
+ * @see #setFromLocationParentName(String)
+ * @see org.genivi.location.LocationPackage#getLinearLocationInfo_FromLocationParentName()
+ * @model
+ * @generated
+ */
+ String getFromLocationParentName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LinearLocationInfo#getFromLocationParentName <em>From Location Parent Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>From Location Parent Name</em>' attribute.
+ * @see #getFromLocationParentName()
+ * @generated
+ */
+ void setFromLocationParentName(String value);
+
+ /**
+ * Returns the value of the '<em><b>To Location Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>To Location Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>To Location Name</em>' attribute.
+ * @see #setToLocationName(String)
+ * @see org.genivi.location.LocationPackage#getLinearLocationInfo_ToLocationName()
+ * @model
+ * @generated
+ */
+ String getToLocationName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LinearLocationInfo#getToLocationName <em>To Location Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>To Location Name</em>' attribute.
+ * @see #getToLocationName()
+ * @generated
+ */
+ void setToLocationName(String value);
+
+ /**
+ * Returns the value of the '<em><b>To Location Parent Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>To Location Parent Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>To Location Parent Name</em>' attribute.
+ * @see #setToLocationParentName(String)
+ * @see org.genivi.location.LocationPackage#getLinearLocationInfo_ToLocationParentName()
+ * @model
+ * @generated
+ */
+ String getToLocationParentName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LinearLocationInfo#getToLocationParentName <em>To Location Parent Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>To Location Parent Name</em>' attribute.
+ * @see #getToLocationParentName()
+ * @generated
+ */
+ void setToLocationParentName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Coordinates</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.common.Coordinate}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Coordinates</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Coordinates</em>' containment reference list.
+ * @see org.genivi.location.LocationPackage#getLinearLocationInfo_Coordinates()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Coordinate> getCoordinates();
+
+} // LinearLocationInfo
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/Location.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/Location.java
new file mode 100755
index 0000000..2ff6ed7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/Location.java
@@ -0,0 +1,29 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Location</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Common parent for all location types.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.location.LocationPackage#getLocation()
+ * @model
+ * @generated
+ */
+public interface Location extends EObject {
+} // Location
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationFactory.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationFactory.java
new file mode 100755
index 0000000..3fdbc0c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationFactory.java
@@ -0,0 +1,112 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.LocationPackage
+ * @generated
+ */
+public interface LocationFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ LocationFactory eINSTANCE = org.genivi.location.impl.LocationFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Location</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Location</em>'.
+ * @generated
+ */
+ Location createLocation();
+
+ /**
+ * Returns a new object of class '<em>Point Location</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Point Location</em>'.
+ * @generated
+ */
+ PointLocation createPointLocation();
+
+ /**
+ * Returns a new object of class '<em>Area Location</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Area Location</em>'.
+ * @generated
+ */
+ AreaLocation createAreaLocation();
+
+ /**
+ * Returns a new object of class '<em>Linear Location</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Linear Location</em>'.
+ * @generated
+ */
+ LinearLocation createLinearLocation();
+
+ /**
+ * Returns a new object of class '<em>Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Info</em>'.
+ * @generated
+ */
+ LocationInfo createLocationInfo();
+
+ /**
+ * Returns a new object of class '<em>Point Location Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Point Location Info</em>'.
+ * @generated
+ */
+ PointLocationInfo createPointLocationInfo();
+
+ /**
+ * Returns a new object of class '<em>Linear Location Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Linear Location Info</em>'.
+ * @generated
+ */
+ LinearLocationInfo createLinearLocationInfo();
+
+ /**
+ * Returns a new object of class '<em>Area Location Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Area Location Info</em>'.
+ * @generated
+ */
+ AreaLocationInfo createAreaLocationInfo();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ LocationPackage getLocationPackage();
+
+} //LocationFactory
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationInfo.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationInfo.java
new file mode 100755
index 0000000..002f811
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationInfo.java
@@ -0,0 +1,86 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.Coordinate;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.location.LocationInfo#getName <em>Name</em>}</li>
+ * <li>{@link org.genivi.location.LocationInfo#getMainLocation <em>Main Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.location.LocationPackage#getLocationInfo()
+ * @model
+ * @generated
+ */
+public interface LocationInfo extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.genivi.location.LocationPackage#getLocationInfo_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LocationInfo#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Main Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Location</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Location</em>' containment reference.
+ * @see #setMainLocation(Coordinate)
+ * @see org.genivi.location.LocationPackage#getLocationInfo_MainLocation()
+ * @model containment="true"
+ * @generated
+ */
+ Coordinate getMainLocation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.LocationInfo#getMainLocation <em>Main Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Location</em>' containment reference.
+ * @see #getMainLocation()
+ * @generated
+ */
+ void setMainLocation(Coordinate value);
+
+} // LocationInfo
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationPackage.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationPackage.java
new file mode 100755
index 0000000..fe6e3df
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/LocationPackage.java
@@ -0,0 +1,796 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.LocationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface LocationPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "location";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.location";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "common";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ LocationPackage eINSTANCE = org.genivi.location.impl.LocationPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.LocationImpl <em>Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLocation()
+ * @generated
+ */
+ int LOCATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Location</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.PointLocationImpl <em>Point Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.PointLocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getPointLocation()
+ * @generated
+ */
+ int POINT_LOCATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Point Location</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POINT_LOCATION_FEATURE_COUNT = LOCATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.AreaLocationImpl <em>Area Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.AreaLocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getAreaLocation()
+ * @generated
+ */
+ int AREA_LOCATION = 2;
+
+ /**
+ * The number of structural features of the '<em>Area Location</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_LOCATION_FEATURE_COUNT = LOCATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.LinearLocationImpl <em>Linear Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LinearLocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLinearLocation()
+ * @generated
+ */
+ int LINEAR_LOCATION = 3;
+
+ /**
+ * The feature id for the '<em><b>Segments</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION__SEGMENTS = LOCATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Positive Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION__POSITIVE_OFFSET = LOCATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Negative Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION__NEGATIVE_OFFSET = LOCATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Linear Location</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_FEATURE_COUNT = LOCATION_FEATURE_COUNT + 3;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.LocationInfoImpl <em>Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLocationInfo()
+ * @generated
+ */
+ int LOCATION_INFO = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_INFO__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Main Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_INFO__MAIN_LOCATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_INFO_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.PointLocationInfoImpl <em>Point Location Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.PointLocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getPointLocationInfo()
+ * @generated
+ */
+ int POINT_LOCATION_INFO = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POINT_LOCATION_INFO__NAME = LOCATION_INFO__NAME;
+
+ /**
+ * The feature id for the '<em><b>Main Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POINT_LOCATION_INFO__MAIN_LOCATION = LOCATION_INFO__MAIN_LOCATION;
+
+ /**
+ * The feature id for the '<em><b>Location Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POINT_LOCATION_INFO__LOCATION_TYPE = LOCATION_INFO_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Point Location Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POINT_LOCATION_INFO_FEATURE_COUNT = LOCATION_INFO_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.LinearLocationInfoImpl <em>Linear Location Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LinearLocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLinearLocationInfo()
+ * @generated
+ */
+ int LINEAR_LOCATION_INFO = 6;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__NAME = LOCATION_INFO__NAME;
+
+ /**
+ * The feature id for the '<em><b>Main Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__MAIN_LOCATION = LOCATION_INFO__MAIN_LOCATION;
+
+ /**
+ * The feature id for the '<em><b>From Location Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__FROM_LOCATION_NAME = LOCATION_INFO_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>From Location Parent Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME = LOCATION_INFO_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>To Location Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__TO_LOCATION_NAME = LOCATION_INFO_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>To Location Parent Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME = LOCATION_INFO_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Coordinates</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO__COORDINATES = LOCATION_INFO_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Linear Location Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LOCATION_INFO_FEATURE_COUNT = LOCATION_INFO_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.impl.AreaLocationInfoImpl <em>Area Location Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.AreaLocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getAreaLocationInfo()
+ * @generated
+ */
+ int AREA_LOCATION_INFO = 7;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_LOCATION_INFO__NAME = LOCATION_INFO__NAME;
+
+ /**
+ * The feature id for the '<em><b>Main Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_LOCATION_INFO__MAIN_LOCATION = LOCATION_INFO__MAIN_LOCATION;
+
+ /**
+ * The number of structural features of the '<em>Area Location Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AREA_LOCATION_INFO_FEATURE_COUNT = LOCATION_INFO_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.location.PointLocationType <em>Point Location Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.PointLocationType
+ * @see org.genivi.location.impl.LocationPackageImpl#getPointLocationType()
+ * @generated
+ */
+ int POINT_LOCATION_TYPE = 8;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.Location <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Location</em>'.
+ * @see org.genivi.location.Location
+ * @generated
+ */
+ EClass getLocation();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.PointLocation <em>Point Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Point Location</em>'.
+ * @see org.genivi.location.PointLocation
+ * @generated
+ */
+ EClass getPointLocation();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.AreaLocation <em>Area Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Area Location</em>'.
+ * @see org.genivi.location.AreaLocation
+ * @generated
+ */
+ EClass getAreaLocation();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.LinearLocation <em>Linear Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linear Location</em>'.
+ * @see org.genivi.location.LinearLocation
+ * @generated
+ */
+ EClass getLinearLocation();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.location.LinearLocation#getSegments <em>Segments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Segments</em>'.
+ * @see org.genivi.location.LinearLocation#getSegments()
+ * @see #getLinearLocation()
+ * @generated
+ */
+ EAttribute getLinearLocation_Segments();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LinearLocation#getPositiveOffset <em>Positive Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Positive Offset</em>'.
+ * @see org.genivi.location.LinearLocation#getPositiveOffset()
+ * @see #getLinearLocation()
+ * @generated
+ */
+ EAttribute getLinearLocation_PositiveOffset();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LinearLocation#getNegativeOffset <em>Negative Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Negative Offset</em>'.
+ * @see org.genivi.location.LinearLocation#getNegativeOffset()
+ * @see #getLinearLocation()
+ * @generated
+ */
+ EAttribute getLinearLocation_NegativeOffset();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.LocationInfo <em>Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Info</em>'.
+ * @see org.genivi.location.LocationInfo
+ * @generated
+ */
+ EClass getLocationInfo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LocationInfo#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.genivi.location.LocationInfo#getName()
+ * @see #getLocationInfo()
+ * @generated
+ */
+ EAttribute getLocationInfo_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.location.LocationInfo#getMainLocation <em>Main Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Main Location</em>'.
+ * @see org.genivi.location.LocationInfo#getMainLocation()
+ * @see #getLocationInfo()
+ * @generated
+ */
+ EReference getLocationInfo_MainLocation();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.PointLocationInfo <em>Point Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Point Location Info</em>'.
+ * @see org.genivi.location.PointLocationInfo
+ * @generated
+ */
+ EClass getPointLocationInfo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.PointLocationInfo#getLocationType <em>Location Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location Type</em>'.
+ * @see org.genivi.location.PointLocationInfo#getLocationType()
+ * @see #getPointLocationInfo()
+ * @generated
+ */
+ EAttribute getPointLocationInfo_LocationType();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.LinearLocationInfo <em>Linear Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linear Location Info</em>'.
+ * @see org.genivi.location.LinearLocationInfo
+ * @generated
+ */
+ EClass getLinearLocationInfo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LinearLocationInfo#getFromLocationName <em>From Location Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>From Location Name</em>'.
+ * @see org.genivi.location.LinearLocationInfo#getFromLocationName()
+ * @see #getLinearLocationInfo()
+ * @generated
+ */
+ EAttribute getLinearLocationInfo_FromLocationName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LinearLocationInfo#getFromLocationParentName <em>From Location Parent Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>From Location Parent Name</em>'.
+ * @see org.genivi.location.LinearLocationInfo#getFromLocationParentName()
+ * @see #getLinearLocationInfo()
+ * @generated
+ */
+ EAttribute getLinearLocationInfo_FromLocationParentName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LinearLocationInfo#getToLocationName <em>To Location Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>To Location Name</em>'.
+ * @see org.genivi.location.LinearLocationInfo#getToLocationName()
+ * @see #getLinearLocationInfo()
+ * @generated
+ */
+ EAttribute getLinearLocationInfo_ToLocationName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.location.LinearLocationInfo#getToLocationParentName <em>To Location Parent Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>To Location Parent Name</em>'.
+ * @see org.genivi.location.LinearLocationInfo#getToLocationParentName()
+ * @see #getLinearLocationInfo()
+ * @generated
+ */
+ EAttribute getLinearLocationInfo_ToLocationParentName();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.location.LinearLocationInfo#getCoordinates <em>Coordinates</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Coordinates</em>'.
+ * @see org.genivi.location.LinearLocationInfo#getCoordinates()
+ * @see #getLinearLocationInfo()
+ * @generated
+ */
+ EReference getLinearLocationInfo_Coordinates();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.location.AreaLocationInfo <em>Area Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Area Location Info</em>'.
+ * @see org.genivi.location.AreaLocationInfo
+ * @generated
+ */
+ EClass getAreaLocationInfo();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.location.PointLocationType <em>Point Location Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Point Location Type</em>'.
+ * @see org.genivi.location.PointLocationType
+ * @generated
+ */
+ EEnum getPointLocationType();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ LocationFactory getLocationFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.LocationImpl <em>Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLocation()
+ * @generated
+ */
+ EClass LOCATION = eINSTANCE.getLocation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.PointLocationImpl <em>Point Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.PointLocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getPointLocation()
+ * @generated
+ */
+ EClass POINT_LOCATION = eINSTANCE.getPointLocation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.AreaLocationImpl <em>Area Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.AreaLocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getAreaLocation()
+ * @generated
+ */
+ EClass AREA_LOCATION = eINSTANCE.getAreaLocation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.LinearLocationImpl <em>Linear Location</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LinearLocationImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLinearLocation()
+ * @generated
+ */
+ EClass LINEAR_LOCATION = eINSTANCE.getLinearLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Segments</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION__SEGMENTS = eINSTANCE.getLinearLocation_Segments();
+
+ /**
+ * The meta object literal for the '<em><b>Positive Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION__POSITIVE_OFFSET = eINSTANCE.getLinearLocation_PositiveOffset();
+
+ /**
+ * The meta object literal for the '<em><b>Negative Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION__NEGATIVE_OFFSET = eINSTANCE.getLinearLocation_NegativeOffset();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.LocationInfoImpl <em>Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLocationInfo()
+ * @generated
+ */
+ EClass LOCATION_INFO = eINSTANCE.getLocationInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCATION_INFO__NAME = eINSTANCE.getLocationInfo_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Main Location</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOCATION_INFO__MAIN_LOCATION = eINSTANCE.getLocationInfo_MainLocation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.PointLocationInfoImpl <em>Point Location Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.PointLocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getPointLocationInfo()
+ * @generated
+ */
+ EClass POINT_LOCATION_INFO = eINSTANCE.getPointLocationInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Location Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POINT_LOCATION_INFO__LOCATION_TYPE = eINSTANCE.getPointLocationInfo_LocationType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.LinearLocationInfoImpl <em>Linear Location Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.LinearLocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getLinearLocationInfo()
+ * @generated
+ */
+ EClass LINEAR_LOCATION_INFO = eINSTANCE.getLinearLocationInfo();
+
+ /**
+ * The meta object literal for the '<em><b>From Location Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION_INFO__FROM_LOCATION_NAME = eINSTANCE.getLinearLocationInfo_FromLocationName();
+
+ /**
+ * The meta object literal for the '<em><b>From Location Parent Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME = eINSTANCE.getLinearLocationInfo_FromLocationParentName();
+
+ /**
+ * The meta object literal for the '<em><b>To Location Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION_INFO__TO_LOCATION_NAME = eINSTANCE.getLinearLocationInfo_ToLocationName();
+
+ /**
+ * The meta object literal for the '<em><b>To Location Parent Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME = eINSTANCE.getLinearLocationInfo_ToLocationParentName();
+
+ /**
+ * The meta object literal for the '<em><b>Coordinates</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINEAR_LOCATION_INFO__COORDINATES = eINSTANCE.getLinearLocationInfo_Coordinates();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.impl.AreaLocationInfoImpl <em>Area Location Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.impl.AreaLocationInfoImpl
+ * @see org.genivi.location.impl.LocationPackageImpl#getAreaLocationInfo()
+ * @generated
+ */
+ EClass AREA_LOCATION_INFO = eINSTANCE.getAreaLocationInfo();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.location.PointLocationType <em>Point Location Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.PointLocationType
+ * @see org.genivi.location.impl.LocationPackageImpl#getPointLocationType()
+ * @generated
+ */
+ EEnum POINT_LOCATION_TYPE = eINSTANCE.getPointLocationType();
+
+ }
+
+} //LocationPackage
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocation.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocation.java
new file mode 100755
index 0000000..3ab3484
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocation.java
@@ -0,0 +1,29 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Point Location</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The location is a single point (along the road), e.g. the location of a broken down vehicle.
+ * TODO Work out the PointLocation class
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.location.LocationPackage#getPointLocation()
+ * @model
+ * @generated
+ */
+public interface PointLocation extends Location {
+} // PointLocation
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationInfo.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationInfo.java
new file mode 100755
index 0000000..f4c1bc3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationInfo.java
@@ -0,0 +1,59 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Point Location Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.location.PointLocationInfo#getLocationType <em>Location Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.location.LocationPackage#getPointLocationInfo()
+ * @model
+ * @generated
+ */
+public interface PointLocationInfo extends LocationInfo {
+ /**
+ * Returns the value of the '<em><b>Location Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.location.PointLocationType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location Type</em>' attribute.
+ * @see org.genivi.location.PointLocationType
+ * @see #setLocationType(PointLocationType)
+ * @see org.genivi.location.LocationPackage#getPointLocationInfo_LocationType()
+ * @model
+ * @generated
+ */
+ PointLocationType getLocationType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.location.PointLocationInfo#getLocationType <em>Location Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location Type</em>' attribute.
+ * @see org.genivi.location.PointLocationType
+ * @see #getLocationType()
+ * @generated
+ */
+ void setLocationType(PointLocationType value);
+
+} // PointLocationInfo
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationType.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationType.java
new file mode 100755
index 0000000..cadb417
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/PointLocationType.java
@@ -0,0 +1,269 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Point Location Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.LocationPackage#getPointLocationType()
+ * @model
+ * @generated
+ */
+public enum PointLocationType implements Enumerator {
+ /**
+ * The '<em><b>MOTORWAY EXIT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_EXIT_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTORWAY_EXIT(0, "MOTORWAY_EXIT", "MOTORWAY_EXIT"),
+
+ /**
+ * The '<em><b>MOTORWAY TRIANGLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_TRIANGLE_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTORWAY_TRIANGLE(1, "MOTORWAY_TRIANGLE", "MOTORWAY_TRIANGLE"),
+
+ /**
+ * The '<em><b>MOTORWAY CROSSING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_CROSSING_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTORWAY_CROSSING(2, "MOTORWAY_CROSSING", "MOTORWAY_CROSSING"),
+
+ /**
+ * The '<em><b>MOTORWAY ENTRY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_ENTRY_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTORWAY_ENTRY(3, "MOTORWAY_ENTRY", "MOTORWAY_ENTRY");
+
+ /**
+ * The '<em><b>MOTORWAY EXIT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTORWAY EXIT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_EXIT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTORWAY_EXIT_VALUE = 0;
+
+ /**
+ * The '<em><b>MOTORWAY TRIANGLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTORWAY TRIANGLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_TRIANGLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTORWAY_TRIANGLE_VALUE = 1;
+
+ /**
+ * The '<em><b>MOTORWAY CROSSING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTORWAY CROSSING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_CROSSING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTORWAY_CROSSING_VALUE = 2;
+
+ /**
+ * The '<em><b>MOTORWAY ENTRY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTORWAY ENTRY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTORWAY_ENTRY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTORWAY_ENTRY_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Point Location Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PointLocationType[] VALUES_ARRAY =
+ new PointLocationType[] {
+ MOTORWAY_EXIT,
+ MOTORWAY_TRIANGLE,
+ MOTORWAY_CROSSING,
+ MOTORWAY_ENTRY,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Point Location Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PointLocationType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Point Location Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PointLocationType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PointLocationType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Point Location Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PointLocationType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PointLocationType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Point Location Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PointLocationType get(int value) {
+ switch (value) {
+ case MOTORWAY_EXIT_VALUE: return MOTORWAY_EXIT;
+ case MOTORWAY_TRIANGLE_VALUE: return MOTORWAY_TRIANGLE;
+ case MOTORWAY_CROSSING_VALUE: return MOTORWAY_CROSSING;
+ case MOTORWAY_ENTRY_VALUE: return MOTORWAY_ENTRY;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PointLocationType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //PointLocationType
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationImpl.java
new file mode 100755
index 0000000..7c5fcff
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationImpl.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.genivi.location.AreaLocation;
+import org.genivi.location.LocationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Area Location</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class AreaLocationImpl extends LocationImpl implements AreaLocation {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AreaLocationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.AREA_LOCATION;
+ }
+
+} //AreaLocationImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationInfoImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationInfoImpl.java
new file mode 100755
index 0000000..5d2ae54
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/AreaLocationInfoImpl.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.genivi.location.AreaLocationInfo;
+import org.genivi.location.LocationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Area Location Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class AreaLocationInfoImpl extends LocationInfoImpl implements AreaLocationInfo {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AreaLocationInfoImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.AREA_LOCATION_INFO;
+ }
+
+} //AreaLocationInfoImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationImpl.java
new file mode 100755
index 0000000..bc9a435
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationImpl.java
@@ -0,0 +1,332 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LocationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linear Location</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.location.impl.LinearLocationImpl#getSegments <em>Segments</em>}</li>
+ * <li>{@link org.genivi.location.impl.LinearLocationImpl#getPositiveOffset <em>Positive Offset</em>}</li>
+ * <li>{@link org.genivi.location.impl.LinearLocationImpl#getNegativeOffset <em>Negative Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinearLocationImpl extends LocationImpl implements LinearLocation {
+ /**
+ * The cached value of the '{@link #getSegments() <em>Segments</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegments()
+ * @generated
+ * @ordered
+ */
+ protected EList<Long> segments;
+
+ /**
+ * The default value of the '{@link #getPositiveOffset() <em>Positive Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPositiveOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final long POSITIVE_OFFSET_EDEFAULT = 0L;
+ /**
+ * The cached value of the '{@link #getPositiveOffset() <em>Positive Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPositiveOffset()
+ * @generated
+ * @ordered
+ */
+ protected long positiveOffset = POSITIVE_OFFSET_EDEFAULT;
+ /**
+ * This is true if the Positive Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean positiveOffsetESet;
+ /**
+ * The default value of the '{@link #getNegativeOffset() <em>Negative Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNegativeOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final long NEGATIVE_OFFSET_EDEFAULT = 0L;
+ /**
+ * The cached value of the '{@link #getNegativeOffset() <em>Negative Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNegativeOffset()
+ * @generated
+ * @ordered
+ */
+ protected long negativeOffset = NEGATIVE_OFFSET_EDEFAULT;
+ /**
+ * This is true if the Negative Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean negativeOffsetESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinearLocationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.LINEAR_LOCATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Long> getSegments() {
+ if (segments == null) {
+ segments = new EDataTypeUniqueEList<Long>(Long.class, this, LocationPackage.LINEAR_LOCATION__SEGMENTS);
+ }
+ return segments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getPositiveOffset() {
+ return positiveOffset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPositiveOffset(long newPositiveOffset) {
+ long oldPositiveOffset = positiveOffset;
+ positiveOffset = newPositiveOffset;
+ boolean oldPositiveOffsetESet = positiveOffsetESet;
+ positiveOffsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LINEAR_LOCATION__POSITIVE_OFFSET, oldPositiveOffset, positiveOffset, !oldPositiveOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetPositiveOffset() {
+ long oldPositiveOffset = positiveOffset;
+ boolean oldPositiveOffsetESet = positiveOffsetESet;
+ positiveOffset = POSITIVE_OFFSET_EDEFAULT;
+ positiveOffsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, LocationPackage.LINEAR_LOCATION__POSITIVE_OFFSET, oldPositiveOffset, POSITIVE_OFFSET_EDEFAULT, oldPositiveOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetPositiveOffset() {
+ return positiveOffsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getNegativeOffset() {
+ return negativeOffset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNegativeOffset(long newNegativeOffset) {
+ long oldNegativeOffset = negativeOffset;
+ negativeOffset = newNegativeOffset;
+ boolean oldNegativeOffsetESet = negativeOffsetESet;
+ negativeOffsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LINEAR_LOCATION__NEGATIVE_OFFSET, oldNegativeOffset, negativeOffset, !oldNegativeOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetNegativeOffset() {
+ long oldNegativeOffset = negativeOffset;
+ boolean oldNegativeOffsetESet = negativeOffsetESet;
+ negativeOffset = NEGATIVE_OFFSET_EDEFAULT;
+ negativeOffsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, LocationPackage.LINEAR_LOCATION__NEGATIVE_OFFSET, oldNegativeOffset, NEGATIVE_OFFSET_EDEFAULT, oldNegativeOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNegativeOffset() {
+ return negativeOffsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION__SEGMENTS:
+ return getSegments();
+ case LocationPackage.LINEAR_LOCATION__POSITIVE_OFFSET:
+ return getPositiveOffset();
+ case LocationPackage.LINEAR_LOCATION__NEGATIVE_OFFSET:
+ return getNegativeOffset();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION__SEGMENTS:
+ getSegments().clear();
+ getSegments().addAll((Collection<? extends Long>)newValue);
+ return;
+ case LocationPackage.LINEAR_LOCATION__POSITIVE_OFFSET:
+ setPositiveOffset((Long)newValue);
+ return;
+ case LocationPackage.LINEAR_LOCATION__NEGATIVE_OFFSET:
+ setNegativeOffset((Long)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION__SEGMENTS:
+ getSegments().clear();
+ return;
+ case LocationPackage.LINEAR_LOCATION__POSITIVE_OFFSET:
+ unsetPositiveOffset();
+ return;
+ case LocationPackage.LINEAR_LOCATION__NEGATIVE_OFFSET:
+ unsetNegativeOffset();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION__SEGMENTS:
+ return segments != null && !segments.isEmpty();
+ case LocationPackage.LINEAR_LOCATION__POSITIVE_OFFSET:
+ return isSetPositiveOffset();
+ case LocationPackage.LINEAR_LOCATION__NEGATIVE_OFFSET:
+ return isSetNegativeOffset();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ @Override
+ public String toString() {
+// if (eIsProxy()) return super.toString();
+//
+// StringBuffer result = new StringBuffer(super.toString());
+// result.append(" (segments: ");
+// result.append(segments);
+// result.append(')');
+// return result.toString();
+ StringBuffer result = new StringBuffer();
+
+ boolean first = true;
+ for (long segment: segments) {
+ if (first) {
+ first = false;
+ } else {
+ result.append(",");
+ }
+ result.append(segment);
+ }
+
+ return result.toString();
+ }
+
+} //LinearLocationImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationInfoImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationInfoImpl.java
new file mode 100755
index 0000000..27a8837
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LinearLocationInfoImpl.java
@@ -0,0 +1,391 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.common.Coordinate;
+
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.LocationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linear Location Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.location.impl.LinearLocationInfoImpl#getFromLocationName <em>From Location Name</em>}</li>
+ * <li>{@link org.genivi.location.impl.LinearLocationInfoImpl#getFromLocationParentName <em>From Location Parent Name</em>}</li>
+ * <li>{@link org.genivi.location.impl.LinearLocationInfoImpl#getToLocationName <em>To Location Name</em>}</li>
+ * <li>{@link org.genivi.location.impl.LinearLocationInfoImpl#getToLocationParentName <em>To Location Parent Name</em>}</li>
+ * <li>{@link org.genivi.location.impl.LinearLocationInfoImpl#getCoordinates <em>Coordinates</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinearLocationInfoImpl extends LocationInfoImpl implements LinearLocationInfo {
+ /**
+ * The default value of the '{@link #getFromLocationName() <em>From Location Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFromLocationName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FROM_LOCATION_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFromLocationName() <em>From Location Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFromLocationName()
+ * @generated
+ * @ordered
+ */
+ protected String fromLocationName = FROM_LOCATION_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFromLocationParentName() <em>From Location Parent Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFromLocationParentName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FROM_LOCATION_PARENT_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFromLocationParentName() <em>From Location Parent Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFromLocationParentName()
+ * @generated
+ * @ordered
+ */
+ protected String fromLocationParentName = FROM_LOCATION_PARENT_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getToLocationName() <em>To Location Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getToLocationName()
+ * @generated
+ * @ordered
+ */
+ protected static final String TO_LOCATION_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getToLocationName() <em>To Location Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getToLocationName()
+ * @generated
+ * @ordered
+ */
+ protected String toLocationName = TO_LOCATION_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getToLocationParentName() <em>To Location Parent Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getToLocationParentName()
+ * @generated
+ * @ordered
+ */
+ protected static final String TO_LOCATION_PARENT_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getToLocationParentName() <em>To Location Parent Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getToLocationParentName()
+ * @generated
+ * @ordered
+ */
+ protected String toLocationParentName = TO_LOCATION_PARENT_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCoordinates() <em>Coordinates</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCoordinates()
+ * @generated
+ * @ordered
+ */
+ protected EList<Coordinate> coordinates;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinearLocationInfoImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.LINEAR_LOCATION_INFO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFromLocationName() {
+ return fromLocationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFromLocationName(String newFromLocationName) {
+ String oldFromLocationName = fromLocationName;
+ fromLocationName = newFromLocationName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_NAME, oldFromLocationName, fromLocationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFromLocationParentName() {
+ return fromLocationParentName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFromLocationParentName(String newFromLocationParentName) {
+ String oldFromLocationParentName = fromLocationParentName;
+ fromLocationParentName = newFromLocationParentName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME, oldFromLocationParentName, fromLocationParentName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getToLocationName() {
+ return toLocationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setToLocationName(String newToLocationName) {
+ String oldToLocationName = toLocationName;
+ toLocationName = newToLocationName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_NAME, oldToLocationName, toLocationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getToLocationParentName() {
+ return toLocationParentName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setToLocationParentName(String newToLocationParentName) {
+ String oldToLocationParentName = toLocationParentName;
+ toLocationParentName = newToLocationParentName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME, oldToLocationParentName, toLocationParentName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Coordinate> getCoordinates() {
+ if (coordinates == null) {
+ coordinates = new EObjectContainmentEList<Coordinate>(Coordinate.class, this, LocationPackage.LINEAR_LOCATION_INFO__COORDINATES);
+ }
+ return coordinates;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION_INFO__COORDINATES:
+ return ((InternalEList<?>)getCoordinates()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_NAME:
+ return getFromLocationName();
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME:
+ return getFromLocationParentName();
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_NAME:
+ return getToLocationName();
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME:
+ return getToLocationParentName();
+ case LocationPackage.LINEAR_LOCATION_INFO__COORDINATES:
+ return getCoordinates();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_NAME:
+ setFromLocationName((String)newValue);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME:
+ setFromLocationParentName((String)newValue);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_NAME:
+ setToLocationName((String)newValue);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME:
+ setToLocationParentName((String)newValue);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__COORDINATES:
+ getCoordinates().clear();
+ getCoordinates().addAll((Collection<? extends Coordinate>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_NAME:
+ setFromLocationName(FROM_LOCATION_NAME_EDEFAULT);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME:
+ setFromLocationParentName(FROM_LOCATION_PARENT_NAME_EDEFAULT);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_NAME:
+ setToLocationName(TO_LOCATION_NAME_EDEFAULT);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME:
+ setToLocationParentName(TO_LOCATION_PARENT_NAME_EDEFAULT);
+ return;
+ case LocationPackage.LINEAR_LOCATION_INFO__COORDINATES:
+ getCoordinates().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_NAME:
+ return FROM_LOCATION_NAME_EDEFAULT == null ? fromLocationName != null : !FROM_LOCATION_NAME_EDEFAULT.equals(fromLocationName);
+ case LocationPackage.LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME:
+ return FROM_LOCATION_PARENT_NAME_EDEFAULT == null ? fromLocationParentName != null : !FROM_LOCATION_PARENT_NAME_EDEFAULT.equals(fromLocationParentName);
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_NAME:
+ return TO_LOCATION_NAME_EDEFAULT == null ? toLocationName != null : !TO_LOCATION_NAME_EDEFAULT.equals(toLocationName);
+ case LocationPackage.LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME:
+ return TO_LOCATION_PARENT_NAME_EDEFAULT == null ? toLocationParentName != null : !TO_LOCATION_PARENT_NAME_EDEFAULT.equals(toLocationParentName);
+ case LocationPackage.LINEAR_LOCATION_INFO__COORDINATES:
+ return coordinates != null && !coordinates.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fromLocationName: ");
+ result.append(fromLocationName);
+ result.append(", fromLocationParentName: ");
+ result.append(fromLocationParentName);
+ result.append(", toLocationName: ");
+ result.append(toLocationName);
+ result.append(", toLocationParentName: ");
+ result.append(toLocationParentName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinearLocationInfoImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationFactoryImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationFactoryImpl.java
new file mode 100755
index 0000000..e5202cd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationFactoryImpl.java
@@ -0,0 +1,230 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.location.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LocationFactoryImpl extends EFactoryImpl implements LocationFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LocationFactory init() {
+ try {
+ LocationFactory theLocationFactory = (LocationFactory)EPackage.Registry.INSTANCE.getEFactory(LocationPackage.eNS_URI);
+ if (theLocationFactory != null) {
+ return theLocationFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new LocationFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case LocationPackage.LOCATION: return createLocation();
+ case LocationPackage.POINT_LOCATION: return createPointLocation();
+ case LocationPackage.AREA_LOCATION: return createAreaLocation();
+ case LocationPackage.LINEAR_LOCATION: return createLinearLocation();
+ case LocationPackage.LOCATION_INFO: return createLocationInfo();
+ case LocationPackage.POINT_LOCATION_INFO: return createPointLocationInfo();
+ case LocationPackage.LINEAR_LOCATION_INFO: return createLinearLocationInfo();
+ case LocationPackage.AREA_LOCATION_INFO: return createAreaLocationInfo();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case LocationPackage.POINT_LOCATION_TYPE:
+ return createPointLocationTypeFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case LocationPackage.POINT_LOCATION_TYPE:
+ return convertPointLocationTypeToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Location createLocation() {
+ LocationImpl location = new LocationImpl();
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PointLocation createPointLocation() {
+ PointLocationImpl pointLocation = new PointLocationImpl();
+ return pointLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AreaLocation createAreaLocation() {
+ AreaLocationImpl areaLocation = new AreaLocationImpl();
+ return areaLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinearLocation createLinearLocation() {
+ LinearLocationImpl linearLocation = new LinearLocationImpl();
+ return linearLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationInfo createLocationInfo() {
+ LocationInfoImpl locationInfo = new LocationInfoImpl();
+ return locationInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PointLocationInfo createPointLocationInfo() {
+ PointLocationInfoImpl pointLocationInfo = new PointLocationInfoImpl();
+ return pointLocationInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinearLocationInfo createLinearLocationInfo() {
+ LinearLocationInfoImpl linearLocationInfo = new LinearLocationInfoImpl();
+ return linearLocationInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AreaLocationInfo createAreaLocationInfo() {
+ AreaLocationInfoImpl areaLocationInfo = new AreaLocationInfoImpl();
+ return areaLocationInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PointLocationType createPointLocationTypeFromString(EDataType eDataType, String initialValue) {
+ PointLocationType result = PointLocationType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPointLocationTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationPackage getLocationPackage() {
+ return (LocationPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static LocationPackage getPackage() {
+ return LocationPackage.eINSTANCE;
+ }
+
+} //LocationFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationImpl.java
new file mode 100755
index 0000000..926cae5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationImpl.java
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.location.Location;
+import org.genivi.location.LocationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Location</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class LocationImpl extends EObjectImpl implements Location {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.LOCATION;
+ }
+
+} //LocationImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationInfoImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationInfoImpl.java
new file mode 100755
index 0000000..9675527
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationInfoImpl.java
@@ -0,0 +1,252 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.Coordinate;
+
+import org.genivi.location.LocationInfo;
+import org.genivi.location.LocationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.location.impl.LocationInfoImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.genivi.location.impl.LocationInfoImpl#getMainLocation <em>Main Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LocationInfoImpl extends EObjectImpl implements LocationInfo {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMainLocation() <em>Main Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainLocation()
+ * @generated
+ * @ordered
+ */
+ protected Coordinate mainLocation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationInfoImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.LOCATION_INFO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LOCATION_INFO__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Coordinate getMainLocation() {
+ return mainLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMainLocation(Coordinate newMainLocation, NotificationChain msgs) {
+ Coordinate oldMainLocation = mainLocation;
+ mainLocation = newMainLocation;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LocationPackage.LOCATION_INFO__MAIN_LOCATION, oldMainLocation, newMainLocation);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainLocation(Coordinate newMainLocation) {
+ if (newMainLocation != mainLocation) {
+ NotificationChain msgs = null;
+ if (mainLocation != null)
+ msgs = ((InternalEObject)mainLocation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LocationPackage.LOCATION_INFO__MAIN_LOCATION, null, msgs);
+ if (newMainLocation != null)
+ msgs = ((InternalEObject)newMainLocation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LocationPackage.LOCATION_INFO__MAIN_LOCATION, null, msgs);
+ msgs = basicSetMainLocation(newMainLocation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.LOCATION_INFO__MAIN_LOCATION, newMainLocation, newMainLocation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LocationPackage.LOCATION_INFO__MAIN_LOCATION:
+ return basicSetMainLocation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LocationPackage.LOCATION_INFO__NAME:
+ return getName();
+ case LocationPackage.LOCATION_INFO__MAIN_LOCATION:
+ return getMainLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LocationPackage.LOCATION_INFO__NAME:
+ setName((String)newValue);
+ return;
+ case LocationPackage.LOCATION_INFO__MAIN_LOCATION:
+ setMainLocation((Coordinate)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LocationPackage.LOCATION_INFO__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case LocationPackage.LOCATION_INFO__MAIN_LOCATION:
+ setMainLocation((Coordinate)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LocationPackage.LOCATION_INFO__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case LocationPackage.LOCATION_INFO__MAIN_LOCATION:
+ return mainLocation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LocationInfoImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationPackageImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationPackageImpl.java
new file mode 100755
index 0000000..fa85423
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/LocationPackageImpl.java
@@ -0,0 +1,484 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.genivi.common.CommonPackage;
+import org.genivi.common.impl.CommonPackageImpl;
+import org.genivi.location.AreaLocation;
+import org.genivi.location.AreaLocationInfo;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationFactory;
+import org.genivi.location.LocationInfo;
+import org.genivi.location.LocationPackage;
+import org.genivi.location.PointLocation;
+import org.genivi.location.PointLocationInfo;
+import org.genivi.location.PointLocationType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LocationPackageImpl extends EPackageImpl implements LocationPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass locationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pointLocationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass areaLocationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linearLocationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass locationInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pointLocationInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linearLocationInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass areaLocationInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum pointLocationTypeEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.location.LocationPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private LocationPackageImpl() {
+ super(eNS_URI, LocationFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link LocationPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static LocationPackage init() {
+ if (isInited) return (LocationPackage)EPackage.Registry.INSTANCE.getEPackage(LocationPackage.eNS_URI);
+
+ // Obtain or create and register package
+ LocationPackageImpl theLocationPackage = (LocationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof LocationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new LocationPackageImpl());
+
+ isInited = true;
+
+ // Obtain or create and register interdependencies
+ CommonPackageImpl theCommonPackage = (CommonPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI) instanceof CommonPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI) : CommonPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLocationPackage.createPackageContents();
+ theCommonPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLocationPackage.initializePackageContents();
+ theCommonPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLocationPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(LocationPackage.eNS_URI, theLocationPackage);
+ return theLocationPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocation() {
+ return locationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPointLocation() {
+ return pointLocationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAreaLocation() {
+ return areaLocationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinearLocation() {
+ return linearLocationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocation_Segments() {
+ return (EAttribute)linearLocationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocation_PositiveOffset() {
+ return (EAttribute)linearLocationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocation_NegativeOffset() {
+ return (EAttribute)linearLocationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocationInfo() {
+ return locationInfoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocationInfo_Name() {
+ return (EAttribute)locationInfoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLocationInfo_MainLocation() {
+ return (EReference)locationInfoEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPointLocationInfo() {
+ return pointLocationInfoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPointLocationInfo_LocationType() {
+ return (EAttribute)pointLocationInfoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinearLocationInfo() {
+ return linearLocationInfoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocationInfo_FromLocationName() {
+ return (EAttribute)linearLocationInfoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocationInfo_FromLocationParentName() {
+ return (EAttribute)linearLocationInfoEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocationInfo_ToLocationName() {
+ return (EAttribute)linearLocationInfoEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinearLocationInfo_ToLocationParentName() {
+ return (EAttribute)linearLocationInfoEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinearLocationInfo_Coordinates() {
+ return (EReference)linearLocationInfoEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAreaLocationInfo() {
+ return areaLocationInfoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPointLocationType() {
+ return pointLocationTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationFactory getLocationFactory() {
+ return (LocationFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ locationEClass = createEClass(LOCATION);
+
+ pointLocationEClass = createEClass(POINT_LOCATION);
+
+ areaLocationEClass = createEClass(AREA_LOCATION);
+
+ linearLocationEClass = createEClass(LINEAR_LOCATION);
+ createEAttribute(linearLocationEClass, LINEAR_LOCATION__SEGMENTS);
+ createEAttribute(linearLocationEClass, LINEAR_LOCATION__POSITIVE_OFFSET);
+ createEAttribute(linearLocationEClass, LINEAR_LOCATION__NEGATIVE_OFFSET);
+
+ locationInfoEClass = createEClass(LOCATION_INFO);
+ createEAttribute(locationInfoEClass, LOCATION_INFO__NAME);
+ createEReference(locationInfoEClass, LOCATION_INFO__MAIN_LOCATION);
+
+ pointLocationInfoEClass = createEClass(POINT_LOCATION_INFO);
+ createEAttribute(pointLocationInfoEClass, POINT_LOCATION_INFO__LOCATION_TYPE);
+
+ linearLocationInfoEClass = createEClass(LINEAR_LOCATION_INFO);
+ createEAttribute(linearLocationInfoEClass, LINEAR_LOCATION_INFO__FROM_LOCATION_NAME);
+ createEAttribute(linearLocationInfoEClass, LINEAR_LOCATION_INFO__FROM_LOCATION_PARENT_NAME);
+ createEAttribute(linearLocationInfoEClass, LINEAR_LOCATION_INFO__TO_LOCATION_NAME);
+ createEAttribute(linearLocationInfoEClass, LINEAR_LOCATION_INFO__TO_LOCATION_PARENT_NAME);
+ createEReference(linearLocationInfoEClass, LINEAR_LOCATION_INFO__COORDINATES);
+
+ areaLocationInfoEClass = createEClass(AREA_LOCATION_INFO);
+
+ // Create enums
+ pointLocationTypeEEnum = createEEnum(POINT_LOCATION_TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ pointLocationEClass.getESuperTypes().add(this.getLocation());
+ areaLocationEClass.getESuperTypes().add(this.getLocation());
+ linearLocationEClass.getESuperTypes().add(this.getLocation());
+ pointLocationInfoEClass.getESuperTypes().add(this.getLocationInfo());
+ linearLocationInfoEClass.getESuperTypes().add(this.getLocationInfo());
+ areaLocationInfoEClass.getESuperTypes().add(this.getLocationInfo());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(locationEClass, Location.class, "Location", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(pointLocationEClass, PointLocation.class, "PointLocation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(areaLocationEClass, AreaLocation.class, "AreaLocation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(linearLocationEClass, LinearLocation.class, "LinearLocation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinearLocation_Segments(), ecorePackage.getELong(), "segments", null, 1, -1, LinearLocation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinearLocation_PositiveOffset(), ecorePackage.getELong(), "positiveOffset", null, 0, 1, LinearLocation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinearLocation_NegativeOffset(), ecorePackage.getELong(), "negativeOffset", null, 0, 1, LinearLocation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(locationInfoEClass, LocationInfo.class, "LocationInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLocationInfo_Name(), ecorePackage.getEString(), "name", null, 0, 1, LocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLocationInfo_MainLocation(), theCommonPackage.getCoordinate(), null, "mainLocation", null, 0, 1, LocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(pointLocationInfoEClass, PointLocationInfo.class, "PointLocationInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPointLocationInfo_LocationType(), this.getPointLocationType(), "locationType", null, 0, 1, PointLocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linearLocationInfoEClass, LinearLocationInfo.class, "LinearLocationInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinearLocationInfo_FromLocationName(), ecorePackage.getEString(), "fromLocationName", null, 0, 1, LinearLocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinearLocationInfo_FromLocationParentName(), ecorePackage.getEString(), "fromLocationParentName", null, 0, 1, LinearLocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinearLocationInfo_ToLocationName(), ecorePackage.getEString(), "toLocationName", null, 0, 1, LinearLocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinearLocationInfo_ToLocationParentName(), ecorePackage.getEString(), "toLocationParentName", null, 0, 1, LinearLocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLinearLocationInfo_Coordinates(), theCommonPackage.getCoordinate(), null, "coordinates", null, 0, -1, LinearLocationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(areaLocationInfoEClass, AreaLocationInfo.class, "AreaLocationInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Initialize enums and add enum literals
+ initEEnum(pointLocationTypeEEnum, PointLocationType.class, "PointLocationType");
+ addEEnumLiteral(pointLocationTypeEEnum, PointLocationType.MOTORWAY_EXIT);
+ addEEnumLiteral(pointLocationTypeEEnum, PointLocationType.MOTORWAY_TRIANGLE);
+ addEEnumLiteral(pointLocationTypeEEnum, PointLocationType.MOTORWAY_CROSSING);
+ addEEnumLiteral(pointLocationTypeEEnum, PointLocationType.MOTORWAY_ENTRY);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //LocationPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationImpl.java
new file mode 100755
index 0000000..226eb33
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationImpl.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.genivi.location.LocationPackage;
+import org.genivi.location.PointLocation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Point Location</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PointLocationImpl extends LocationImpl implements PointLocation {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PointLocationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.POINT_LOCATION;
+ }
+
+} //PointLocationImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationInfoImpl.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationInfoImpl.java
new file mode 100755
index 0000000..6648e28
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/impl/PointLocationInfoImpl.java
@@ -0,0 +1,170 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.location.LocationPackage;
+import org.genivi.location.PointLocationInfo;
+import org.genivi.location.PointLocationType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Point Location Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.location.impl.PointLocationInfoImpl#getLocationType <em>Location Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PointLocationInfoImpl extends LocationInfoImpl implements PointLocationInfo {
+ /**
+ * The default value of the '{@link #getLocationType() <em>Location Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationType()
+ * @generated
+ * @ordered
+ */
+ protected static final PointLocationType LOCATION_TYPE_EDEFAULT = PointLocationType.MOTORWAY_EXIT;
+
+ /**
+ * The cached value of the '{@link #getLocationType() <em>Location Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationType()
+ * @generated
+ * @ordered
+ */
+ protected PointLocationType locationType = LOCATION_TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PointLocationInfoImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LocationPackage.Literals.POINT_LOCATION_INFO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PointLocationType getLocationType() {
+ return locationType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocationType(PointLocationType newLocationType) {
+ PointLocationType oldLocationType = locationType;
+ locationType = newLocationType == null ? LOCATION_TYPE_EDEFAULT : newLocationType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LocationPackage.POINT_LOCATION_INFO__LOCATION_TYPE, oldLocationType, locationType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LocationPackage.POINT_LOCATION_INFO__LOCATION_TYPE:
+ return getLocationType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LocationPackage.POINT_LOCATION_INFO__LOCATION_TYPE:
+ setLocationType((PointLocationType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LocationPackage.POINT_LOCATION_INFO__LOCATION_TYPE:
+ setLocationType(LOCATION_TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LocationPackage.POINT_LOCATION_INFO__LOCATION_TYPE:
+ return locationType != LOCATION_TYPE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (locationType: ");
+ result.append(locationType);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PointLocationInfoImpl
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationAdapterFactory.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationAdapterFactory.java
new file mode 100755
index 0000000..8deec54
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationAdapterFactory.java
@@ -0,0 +1,253 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.location.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.LocationPackage
+ * @generated
+ */
+public class LocationAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static LocationPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = LocationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationSwitch<Adapter> modelSwitch =
+ new LocationSwitch<Adapter>() {
+ @Override
+ public Adapter caseLocation(Location object) {
+ return createLocationAdapter();
+ }
+ @Override
+ public Adapter casePointLocation(PointLocation object) {
+ return createPointLocationAdapter();
+ }
+ @Override
+ public Adapter caseAreaLocation(AreaLocation object) {
+ return createAreaLocationAdapter();
+ }
+ @Override
+ public Adapter caseLinearLocation(LinearLocation object) {
+ return createLinearLocationAdapter();
+ }
+ @Override
+ public Adapter caseLocationInfo(LocationInfo object) {
+ return createLocationInfoAdapter();
+ }
+ @Override
+ public Adapter casePointLocationInfo(PointLocationInfo object) {
+ return createPointLocationInfoAdapter();
+ }
+ @Override
+ public Adapter caseLinearLocationInfo(LinearLocationInfo object) {
+ return createLinearLocationInfoAdapter();
+ }
+ @Override
+ public Adapter caseAreaLocationInfo(AreaLocationInfo object) {
+ return createAreaLocationInfoAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.Location <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.Location
+ * @generated
+ */
+ public Adapter createLocationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.PointLocation <em>Point Location</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.PointLocation
+ * @generated
+ */
+ public Adapter createPointLocationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.AreaLocation <em>Area Location</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.AreaLocation
+ * @generated
+ */
+ public Adapter createAreaLocationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.LinearLocation <em>Linear Location</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.LinearLocation
+ * @generated
+ */
+ public Adapter createLinearLocationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.LocationInfo <em>Info</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.LocationInfo
+ * @generated
+ */
+ public Adapter createLocationInfoAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.PointLocationInfo <em>Point Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.PointLocationInfo
+ * @generated
+ */
+ public Adapter createPointLocationInfoAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.LinearLocationInfo <em>Linear Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.LinearLocationInfo
+ * @generated
+ */
+ public Adapter createLinearLocationInfoAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.location.AreaLocationInfo <em>Area Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.location.AreaLocationInfo
+ * @generated
+ */
+ public Adapter createAreaLocationInfoAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //LocationAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationSwitch.java b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationSwitch.java
new file mode 100755
index 0000000..0608191
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.basetypes-model/src/org/genivi/location/util/LocationSwitch.java
@@ -0,0 +1,276 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.location.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.genivi.location.AreaLocation;
+import org.genivi.location.AreaLocationInfo;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+import org.genivi.location.LocationPackage;
+import org.genivi.location.PointLocation;
+import org.genivi.location.PointLocationInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.location.LocationPackage
+ * @generated
+ */
+public class LocationSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static LocationPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationSwitch() {
+ if (modelPackage == null) {
+ modelPackage = LocationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case LocationPackage.LOCATION: {
+ Location location = (Location)theEObject;
+ T result = caseLocation(location);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.POINT_LOCATION: {
+ PointLocation pointLocation = (PointLocation)theEObject;
+ T result = casePointLocation(pointLocation);
+ if (result == null) result = caseLocation(pointLocation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.AREA_LOCATION: {
+ AreaLocation areaLocation = (AreaLocation)theEObject;
+ T result = caseAreaLocation(areaLocation);
+ if (result == null) result = caseLocation(areaLocation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.LINEAR_LOCATION: {
+ LinearLocation linearLocation = (LinearLocation)theEObject;
+ T result = caseLinearLocation(linearLocation);
+ if (result == null) result = caseLocation(linearLocation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.LOCATION_INFO: {
+ LocationInfo locationInfo = (LocationInfo)theEObject;
+ T result = caseLocationInfo(locationInfo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.POINT_LOCATION_INFO: {
+ PointLocationInfo pointLocationInfo = (PointLocationInfo)theEObject;
+ T result = casePointLocationInfo(pointLocationInfo);
+ if (result == null) result = caseLocationInfo(pointLocationInfo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.LINEAR_LOCATION_INFO: {
+ LinearLocationInfo linearLocationInfo = (LinearLocationInfo)theEObject;
+ T result = caseLinearLocationInfo(linearLocationInfo);
+ if (result == null) result = caseLocationInfo(linearLocationInfo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LocationPackage.AREA_LOCATION_INFO: {
+ AreaLocationInfo areaLocationInfo = (AreaLocationInfo)theEObject;
+ T result = caseAreaLocationInfo(areaLocationInfo);
+ if (result == null) result = caseLocationInfo(areaLocationInfo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Location</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Location</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocation(Location object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Point Location</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Point Location</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePointLocation(PointLocation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Area Location</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Area Location</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAreaLocation(AreaLocation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linear Location</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linear Location</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinearLocation(LinearLocation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Info</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Info</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocationInfo(LocationInfo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Point Location Info</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Point Location Info</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePointLocationInfo(PointLocationInfo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linear Location Info</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linear Location Info</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinearLocationInfo(LinearLocationInfo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Area Location Info</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Area Location Info</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAreaLocationInfo(AreaLocationInfo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //LocationSwitch
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/.classpath b/src/traffic-incidents-service/org.genivi.booleanexpr-model/.classpath
new file mode 100755
index 0000000..90776db
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/.classpath
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.demo"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/.project b/src/traffic-incidents-service/org.genivi.booleanexpr-model/.project
new file mode 100755
index 0000000..dcce263
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.booleanexpr-model</name>
+ <comment>This project contains a Filter Expression to be used in GENIVI. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.demo</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.booleanexpr-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..ab264c9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.booleanexpr-model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.booleanexpr,
+ org.genivi.booleanexpr.impl,
+ org.genivi.booleanexpr.util,
+ org.genivi.family,
+ org.genivi.family.impl,
+ org.genivi.family.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.junit
+Bundle-ActivationPolicy: lazy
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.booleanexpr-model/ReadMe.confluence
new file mode 100755
index 0000000..dfca2ca
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/ReadMe.confluence
@@ -0,0 +1,6 @@
+This project defines a Boolean Expression.
+These expressions are used in the TrafficIncidents interface, but can also be used in other locations where hierarchical data is used.
+Detailed information can be found in the "GENIVI TrafficIncidentsService Component Specification".
+
+In the model folder, FilterExpr.ecore defines the Boolean Expressions. The Family.ecore model is only used for testing.
+FilterExpr.ecorediag provides a good overview of the structure of a Boolean Expression. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/build.properties b/src/traffic-incidents-service/org.genivi.booleanexpr-model/build.properties
new file mode 100755
index 0000000..3343fc7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = srcOld/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecore b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecore
new file mode 100755
index 0000000..989b003
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecore
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="family" nsURI="http://org.genivi.family" nsPrefix="family">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="Family">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="members" lowerBound="1"
+ upperBound="-1" eType="#//Person" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="surname" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfPets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hasASwimmingPool" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="address" eType="#//Address"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="favoriteHolidayDestinations"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Person">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sexe" lowerBound="1" eType="#//Sexe"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCars" upperBound="-1"
+ eType="#//Car" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Sexe">
+ <eLiterals name="MALE"/>
+ <eLiterals name="FEMALE" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Car">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfSeats" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Address">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="street" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WealthyFamily" eSuperTypes="#//Family">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="forbesRanking" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecorediag b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecorediag
new file mode 100755
index 0000000..2feb3d1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.ecorediag
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_sLPkcDKsEeOqeq8SyxngDg" type="EcoreTools" name="Family.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_u4SZgDKsEeOqeq8SyxngDg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_u4Vc0DKsEeOqeq8SyxngDg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_u4WD4DKsEeOqeq8SyxngDg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_W9FvMDKtEeOqeq8SyxngDg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Family/surname"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W9FvMTKtEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ga1gMDLhEeOqeq8SyxngDg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Family/numberOfPets"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ga1gMTLhEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lYz0QDLhEeOqeq8SyxngDg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Family/hasASwimmingPool"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lYz0QTLhEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6ciukFdFEeODvvUPX1MSiQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Family/favoriteHolidayDestinations"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6ciukVdFEeODvvUPX1MSiQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_u4WD4TKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u4WD4jKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u4WD4zKsEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_u4Wq8DKsEeOqeq8SyxngDg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_u4Wq8TKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u4Wq8jKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u4Wq8zKsEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_u4SZgTKsEeOqeq8SyxngDg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Family.ecore#//Family"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u4SZgjKsEeOqeq8SyxngDg" x="216" y="48"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x3k1IDKsEeOqeq8SyxngDg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_x3lcMDKsEeOqeq8SyxngDg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_x3lcMTKsEeOqeq8SyxngDg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_jhbZgDKtEeOqeq8SyxngDg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Person/firstName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jhbZgTKtEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_n2ZOoDKtEeOqeq8SyxngDg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Person/sexe"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n2ZOoTKtEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_x3lcMjKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x3lcMzKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x3lcNDKsEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x3lcNTKsEeOqeq8SyxngDg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_x3lcNjKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x3lcNzKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x3lcODKsEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_x3k1ITKsEeOqeq8SyxngDg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Family.ecore#//Person"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x3k1IjKsEeOqeq8SyxngDg" x="312" y="204"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7NRZMDKsEeOqeq8SyxngDg" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_7NSnUDKsEeOqeq8SyxngDg" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_7NdmcDKsEeOqeq8SyxngDg" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_86uZgDKsEeOqeq8SyxngDg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="Family.ecore#//Sexe/MALE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_86uZgTKsEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-LpO0DKsEeOqeq8SyxngDg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="Family.ecore#//Sexe/FEMALE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-LpO0TKsEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7NdmcTKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7NdmcjKsEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7NdmczKsEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7NRZMTKsEeOqeq8SyxngDg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="Family.ecore#//Sexe"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7NSAQDKsEeOqeq8SyxngDg" x="480" y="204"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uXT98DKtEeOqeq8SyxngDg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_uXUlADKtEeOqeq8SyxngDg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_uXUlATKtEeOqeq8SyxngDg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_2BgCcDKtEeOqeq8SyxngDg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Car/numberOfSeats"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2BgCcTKtEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_uXUlAjKtEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXUlAzKtEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXUlBDKtEeOqeq8SyxngDg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uXUlBTKtEeOqeq8SyxngDg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_uXVMEDKtEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXVMETKtEeOqeq8SyxngDg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXVMEjKtEeOqeq8SyxngDg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_uXT98TKtEeOqeq8SyxngDg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Family.ecore#//Car"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXT98jKtEeOqeq8SyxngDg" x="324" y="348"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_koAiEDo3EeOHAqw6E7axVg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_koCXQDo3EeOHAqw6E7axVg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_koC-UDo3EeOHAqw6E7axVg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_mJMA8Do3EeOHAqw6E7axVg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//Address/street"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mJMA8To3EeOHAqw6E7axVg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_koC-UTo3EeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_koC-Ujo3EeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_koC-Uzo3EeOHAqw6E7axVg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_koDlYDo3EeOHAqw6E7axVg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_koDlYTo3EeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_koDlYjo3EeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_koDlYzo3EeOHAqw6E7axVg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_koAiETo3EeOHAqw6E7axVg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Family.ecore#//Address"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_koAiEjo3EeOHAqw6E7axVg" x="72" y="192"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zBdIUDpBEeOHAqw6E7axVg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_zBdvYDpBEeOHAqw6E7axVg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_zBdvYTpBEeOHAqw6E7axVg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_dxBbIDpCEeOHAqw6E7axVg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Family.ecore#//WealthyFamily/forbesRanking"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dxBbITpCEeOHAqw6E7axVg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zBdvYjpBEeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zBdvYzpBEeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zBdvZDpBEeOHAqw6E7axVg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zBeWcDpBEeOHAqw6E7axVg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zBeWcTpBEeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zBeWcjpBEeOHAqw6E7axVg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zBeWczpBEeOHAqw6E7axVg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zBdIUTpBEeOHAqw6E7axVg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Family.ecore#//WealthyFamily"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zBdIUjpBEeOHAqw6E7axVg" x="156" y="288"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sLPkcTKsEeOqeq8SyxngDg"/>
+ <element xmi:type="ecore:EPackage" href="Family.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_M7Zn0DKtEeOqeq8SyxngDg" type="3002" source="_u4SZgDKsEeOqeq8SyxngDg" target="_x3k1IDKsEeOqeq8SyxngDg">
+ <children xmi:type="notation:Node" xmi:id="_M7a18DKtEeOqeq8SyxngDg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7a18TKtEeOqeq8SyxngDg" x="-46" y="-5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_M7a18jKtEeOqeq8SyxngDg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7a18zKtEeOqeq8SyxngDg" x="-5"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_M7Zn0TKtEeOqeq8SyxngDg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_M7Zn0jKtEeOqeq8SyxngDg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Family.ecore#//Family/members"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M7Zn0zKtEeOqeq8SyxngDg" points="[-14, 21, 106, -135]$[-70, 152, 50, -4]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_w5_WEDKtEeOqeq8SyxngDg" type="3002" source="_x3k1IDKsEeOqeq8SyxngDg" target="_uXT98DKtEeOqeq8SyxngDg">
+ <children xmi:type="notation:Node" xmi:id="_w5_9IDKtEeOqeq8SyxngDg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w5_9ITKtEeOqeq8SyxngDg" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w5_9IjKtEeOqeq8SyxngDg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w5_9IzKtEeOqeq8SyxngDg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_w5_WETKtEeOqeq8SyxngDg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w5_WEjKtEeOqeq8SyxngDg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Family.ecore#//Person/ownedCars"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w5_WEzKtEeOqeq8SyxngDg" points="[35, 33, -110, -100]$[146, 152, 1, 19]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w6DAcDKtEeOqeq8SyxngDg" id="(0.22549019607843138,0.5581395348837209)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_txB8EDo3EeOHAqw6E7axVg" type="3002" source="_u4SZgDKsEeOqeq8SyxngDg" target="_koAiEDo3EeOHAqw6E7axVg">
+ <children xmi:type="notation:Node" xmi:id="_txDxQDo3EeOHAqw6E7axVg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_txDxQTo3EeOHAqw6E7axVg" x="-53" y="-5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_txE_YDo3EeOHAqw6E7axVg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_txE_YTo3EeOHAqw6E7axVg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_txB8ETo3EeOHAqw6E7axVg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_txB8Ejo3EeOHAqw6E7axVg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Family.ecore#//Family/address"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_txB8Ezo3EeOHAqw6E7axVg" points="[-41, 40, 91, -84]$[-131, 118, 1, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_txJQ0Do3EeOHAqw6E7axVg" id="(0.20952380952380953,0.5294117647058824)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_txJQ0To3EeOHAqw6E7axVg" id="(0.4700854700854701,0.13725490196078433)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_27oe4DpBEeOHAqw6E7axVg" type="3003" source="_zBdIUDpBEeOHAqw6E7axVg" target="_u4SZgDKsEeOqeq8SyxngDg">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_27oe4TpBEeOHAqw6E7axVg" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_27oe4jpBEeOHAqw6E7axVg" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_27oe4zpBEeOHAqw6E7axVg" points="[12, -20, -79, 129]$[92, -188, 1, -39]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_28DVoDpBEeOHAqw6E7axVg" id="(0.10952380952380952,0.47058823529411764)"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.genmodel b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.genmodel
new file mode 100755
index 0000000..aa64cd6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/Family.genmodel
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.booleanexpr-model/src/test/java" modelPluginID="org.genivi.booleanexpr-model"
+ modelName="Family" modelPluginClass="" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="7.0" copyrightFields="false">
+ <foreignModel>Family.ecore</foreignModel>
+ <genPackages prefix="Family" basePackage="org.genivi" disposableProviderFactory="true"
+ ecorePackage="Family.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="Family.ecore#//Sexe">
+ <genEnumLiterals ecoreEnumLiteral="Family.ecore#//Sexe/MALE"/>
+ <genEnumLiterals ecoreEnumLiteral="Family.ecore#//Sexe/FEMALE"/>
+ </genEnums>
+ <genClasses ecoreClass="Family.ecore#//Family">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Family.ecore#//Family/members"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Family/surname"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Family/numberOfPets"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Family/hasASwimmingPool"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Family.ecore#//Family/address"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Family/favoriteHolidaysDestinations"/>
+ </genClasses>
+ <genClasses ecoreClass="Family.ecore#//Person">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Person/firstName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Person/sexe"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Family.ecore#//Person/ownedCars"/>
+ </genClasses>
+ <genClasses ecoreClass="Family.ecore#//Car">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Car/numberOfSeats"/>
+ </genClasses>
+ <genClasses ecoreClass="Family.ecore#//Address">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//Address/street"/>
+ </genClasses>
+ <genClasses ecoreClass="Family.ecore#//WealthyFamily">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Family.ecore#//WealthyFamily/forbesRanking"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecore b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecore
new file mode 100755
index 0000000..e473c9f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecore
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="booleanexpr" nsURI="http://org.genivi.booleanexpr" nsPrefix="booleanexpr">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="BooleanExpression" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is the top level class for boolean expressions."/>
+ </eAnnotations>
+ <eOperations name="evaluate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="format" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="indent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="indentSize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" eSuperTypes="#//BooleanExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is an expression of the form UnaryLogicalOperator 'expression', like: NOT 'expression'."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unaryOperator" lowerBound="1"
+ eType="#//UnaryLogicalOperator" defaultValueLiteral="NOT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
+ eType="#//BooleanExpression" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DyadicLogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This enumeration defines the operators for DyadicExpressions.&#xD;&#xA;AND has a higher precedence than OR."/>
+ </eAnnotations>
+ <eLiterals name="AND"/>
+ <eLiterals name="OR" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="UnaryLogicalOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This enumeration defines the operators for UnaryExpressions."/>
+ </eAnnotations>
+ <eLiterals name="NOT"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Predicate" abstract="true" eSuperTypes="#//BooleanExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is the top level class for predicates."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DyadicExpression" eSuperTypes="#//BooleanExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is an expression of the form 'expression' DyadicLogicalOperator 'expression', like 'expression' AND 'expression'."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicalOperator" lowerBound="1"
+ eType="#//DyadicLogicalOperator" defaultValueLiteral="AND" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftHandTerm" lowerBound="1"
+ eType="#//BooleanExpression" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightHandTerm" lowerBound="1"
+ eType="#//BooleanExpression" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComparisonPredicate" eSuperTypes="#//Predicate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This predicate compares the value of an attribute of a class to a literal value (a constant).&#xD;&#xA;For example &quot;myAttribute == 22&quot;."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="literal" lowerBound="1"
+ eType="#//Literal" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="#//ClassAttribute" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="comparisonOperator" lowerBound="1"
+ eType="#//ComparisonOperator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InPredicate" eSuperTypes="#//Predicate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This predicate checks whether an attribute value is in, or not in, a set of values."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="#//ClassAttribute" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inOperator" lowerBound="1"
+ eType="#//InOperator" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
+ eType="#//Literal" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ComparisonOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This enumeration defines the operators for comparison."/>
+ </eAnnotations>
+ <eLiterals name="EQUAL"/>
+ <eLiterals name="NOT_EQUAL" value="1"/>
+ <eLiterals name="GREATER_THEN" value="2"/>
+ <eLiterals name="GREATER_OR_EQUAL_THAN" value="3"/>
+ <eLiterals name="LESS_THAN" value="4"/>
+ <eLiterals name="LESS_OR_EQUAL_THAN" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SignedIntegerLiteral" eSuperTypes="#//Literal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An optionally signed integer values."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A String value."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BooleanLiteral" eSuperTypes="#//Literal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This class represents the boolean literal values 'true' and 'false'."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SubClassPredicate" eSuperTypes="#//Predicate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This predicate is used to evaluate an expression on a subclass of the current class."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subClassExpression" lowerBound="1"
+ eType="#//BooleanExpression" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subClassAttribute" lowerBound="1"
+ eType="#//ClassAttribute" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ListOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This enumeration defines the operators for a MultiplicityPredicate."/>
+ </eAnnotations>
+ <eLiterals name="ANY"/>
+ <eLiterals name="ALL" value="1"/>
+ <eLiterals name="NONE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassAttribute">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This class represents an attribute of a class of a data model. The attribute is identified by its name."/>
+ </eAnnotations>
+ <eOperations name="isSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="object" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eOperations>
+ <eOperations name="getListValue">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList">
+ <eTypeArguments/>
+ </eGenericType>
+ <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="getValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject">
+ <eParameters name="object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaOperator" eType="#//MetaOperator"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DownCastPredicate" eSuperTypes="#//Predicate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This predicate is used to handle expressions on classes which extend a base class.&#xD;&#xA;Example: Class Person has one attribute 'name'. Class Driver extends Person and adds an attribute 'driversLicenseNo'.&#xD;&#xA;Now anywhere that Person can be used in a data model, it may also be a Driver. But to use a Driver specific attribute, the Person has to be downcast to a Driver."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
+ eType="#//BooleanExpression" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="InOperator">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This enumeration defines the operators for an InPredicate."/>
+ </eAnnotations>
+ <eLiterals name="IN"/>
+ <eLiterals name="NOT_IN" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiplicityPredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
+ eType="#//BooleanExpression" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="#//ClassAttribute" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listOperator" lowerBound="1"
+ eType="#//ListOperator" unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IsSetPredicate" eSuperTypes="#//Predicate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This predicate checks whether an optional value is set or not."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="#//ClassAttribute" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MetaOperator">
+ <eLiterals name="SIZE"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecorediag b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecorediag
new file mode 100755
index 0000000..5300a00
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.ecorediag
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_NkxmwQMGEeKPy-s2XR1yyQ" type="EcoreTools" name="FilterExpr.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_vdIoUAMGEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_vdlUQAMGEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_vdlUQQMGEeKPy-s2XR1yyQ" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vdlUQgMGEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vdlUQwMGEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vdlURAMGEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vdlURQMGEeKPy-s2XR1yyQ" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_6WDq8C7-EeKsj7XXqh4sww" type="2002">
+ <element xmi:type="ecore:EOperation" href="FilterExpr.ecore#//BooleanExpression/evaluate"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6WDq8S7-EeKsj7XXqh4sww"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jSfOMEU7EeOGQ-sgFdWMAg" type="2002">
+ <element xmi:type="ecore:EOperation" href="FilterExpr.ecore#//BooleanExpression/format"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jSfOMUU7EeOGQ-sgFdWMAg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vdlURgMGEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vdlURwMGEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vdlUSAMGEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_vdIoUQMGEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//BooleanExpression"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vdIoUgMGEeKPy-s2XR1yyQ" x="324" y="12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tsf7sAMHEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_tsf7swMHEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_tsf7tAMHEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_3MKIgAMREeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//UnaryExpression/unaryOperator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3MKIgQMREeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tsf7tQMHEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tsf7tgMHEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tsf7twMHEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tsf7uAMHEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tsf7uQMHEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tsf7ugMHEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tsf7uwMHEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tsf7sQMHEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//UnaryExpression"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tsf7sgMHEeKPy-s2XR1yyQ" x="108" y="168"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uoplcAMIEeKPy-s2XR1yyQ" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_uoplcwMIEeKPy-s2XR1yyQ" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_uopldAMIEeKPy-s2XR1yyQ" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_0WjjcAMIEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//DyadicLogicalOperator/AND"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0WjjcQMIEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8gbNkAMIEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//DyadicLogicalOperator/OR"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8gbNkQMIEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_uopldQMIEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uopldgMIEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uopldwMIEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_uoplcQMIEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="FilterExpr.ecore#//DyadicLogicalOperator"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uoplcgMIEeKPy-s2XR1yyQ" x="984" y="96"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JMqaMAMKEeKPy-s2XR1yyQ" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_JMqaMwMKEeKPy-s2XR1yyQ" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_JMqaNAMKEeKPy-s2XR1yyQ" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Mau4sAMKEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//UnaryLogicalOperator/NOT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Mau4sQMKEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JMqaNQMKEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JMqaNgMKEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JMqaNwMKEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JMqaMQMKEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="FilterExpr.ecore#//UnaryLogicalOperator"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JMqaMgMKEeKPy-s2XR1yyQ" x="984" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0s530AMREeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_0s530wMREeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_0s531AMREeKPy-s2XR1yyQ" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0s531QMREeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0s531gMREeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0s531wMREeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0s532AMREeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0s532QMREeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0s532gMREeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0s532wMREeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0s530QMREeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//Predicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0s530gMREeKPy-s2XR1yyQ" x="420" y="180" width="159"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8RktsAMSEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_8RktswMSEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_8RkttAMSEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_EyF9QAMTEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//DyadicExpression/logicalOperator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EyF9QQMTEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8RkttQMSEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8RkttgMSEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8RkttwMSEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8RktuAMSEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8RktuQMSEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8RktugMSEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8RktuwMSEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_8RktsQMSEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//DyadicExpression"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8RktsgMSEeKPy-s2XR1yyQ" x="660" y="180"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_t-BTEAMTEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_t-BTEwMTEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_t-BTFAMTEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_RoGUcAMVEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//ComparisonPredicate/comparisonOperator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RoGUcQMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_t-BTFQMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t-BTFgMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t-BTFwMTEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_t-BTGAMTEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_t-BTGQMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t-BTGgMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t-BTGwMTEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_t-BTEQMTEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//ComparisonPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t-BTEgMTEeKPy-s2XR1yyQ" x="660" y="420"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zYZ4IAMTEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_zYZ4IwMTEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_zYZ4JAMTEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_UtKYABj6EeK70NvnY3NN2A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//InPredicate/inOperator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UtKYARj6EeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zYZ4JQMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zYZ4JgMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zYZ4JwMTEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zYZ4KAMTEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zYZ4KQMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zYZ4KgMTEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zYZ4KwMTEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zYZ4IQMTEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//InPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYZ4IgMTEeKPy-s2XR1yyQ" x="408" y="432"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zexJYAMUEeKPy-s2XR1yyQ" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_zexJYwMUEeKPy-s2XR1yyQ" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_zexJZAMUEeKPy-s2XR1yyQ" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_iRIjQAMVEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ComparisonOperator/EQUAL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iRIjQQMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k1q8kAMVEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ComparisonOperator/NOT_EQUAL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k1q8kQMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nNPQ4AMVEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ComparisonOperator/GREATER_THEN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nNPQ4QMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p3TDYAMVEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ComparisonOperator/GREATER_OR_EQUAL_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p3TDYQMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tIhjkAMVEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ComparisonOperator/LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tIhjkQMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_usXU4AMVEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ComparisonOperator/LESS_OR_EQUAL_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usXU4QMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zexJZQMUEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zexJZgMUEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zexJZwMUEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zexJYQMUEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="FilterExpr.ecore#//ComparisonOperator"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zexJYgMUEeKPy-s2XR1yyQ" x="972" y="180"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MLC14AMVEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_MLC14wMVEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_MLC15AMVEeKPy-s2XR1yyQ" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_MLC15QMVEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MLC15gMVEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MLC15wMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MLC16AMVEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_MLC16QMVEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MLC16gMVEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MLC16wMVEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_MLC14QMVEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//Literal"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MLC14gMVEeKPy-s2XR1yyQ" x="660" y="600"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Zjr1gAMWEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Zjr1gwMWEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Zjr1hAMWEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_kb7KYAMWEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//SignedIntegerLiteral/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kb7KYQMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Zjr1hQMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Zjr1hgMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Zjr1hwMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Zjr1iAMWEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Zjr1iQMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Zjr1igMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Zjr1iwMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Zjr1gQMWEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//SignedIntegerLiteral"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zjr1ggMWEeKPy-s2XR1yyQ" x="504" y="756"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dLN84AMWEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_dLN84wMWEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_dLN85AMWEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_qDJRkAMWEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//StringLiteral/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qDJRkQMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_dLN85QMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dLN85gMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dLN85wMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dLXt4AMWEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_dLXt4QMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dLXt4gMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dLXt4wMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_dLN84QMWEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//StringLiteral"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dLN84gMWEeKPy-s2XR1yyQ" x="660" y="756"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fuz7AAMWEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_fuz7AwMWEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_fuz7BAMWEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_sKbHIAMWEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//BooleanLiteral/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sKbHIQMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_fuz7BQMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fuz7BgMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fuz7BwMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fuz7CAMWEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_fuz7CQMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fuz7CgMWEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fuz7CwMWEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_fuz7AQMWEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//BooleanLiteral"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fuz7AgMWEeKPy-s2XR1yyQ" x="816" y="756"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E9__0BFMEeK70NvnY3NN2A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_E9__0xFMEeK70NvnY3NN2A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_E9__1BFMEeK70NvnY3NN2A" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_E9__1RFMEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_E9__1hFMEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_E9__1xFMEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E9__2BFMEeK70NvnY3NN2A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_E9__2RFMEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_E9__2hFMEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_E9__2xFMEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_E9__0RFMEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//SubClassPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E9__0hFMEeK70NvnY3NN2A" x="168" y="408"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QCZhYBFMEeK70NvnY3NN2A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_QCjSYBFMEeK70NvnY3NN2A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_QC2NUBFMEeK70NvnY3NN2A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_fDapgBFMEeK70NvnY3NN2A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ListOperator/ANY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fDapgRFMEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iDl18BFMEeK70NvnY3NN2A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ListOperator/ALL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iDl18RFMEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rKMdkCy1EeK174WWoMT1OQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//ListOperator/NONE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rKMdkSy1EeK174WWoMT1OQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QC2NURFMEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QC2NUhFMEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QC2NUxFMEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QCZhYRFMEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="FilterExpr.ecore#//ListOperator"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QCZhYhFMEeK70NvnY3NN2A" x="996" y="432"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kLDqABFSEeK70NvnY3NN2A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_kLDqAxFSEeK70NvnY3NN2A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_kLDqBBFSEeK70NvnY3NN2A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_nQvBgBFSEeK70NvnY3NN2A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//ClassAttribute/attributeName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nQvBgRFSEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LXLtEEJFEeONeofS9rjBWA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//ClassAttribute/metaOperator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LXLtEUJFEeONeofS9rjBWA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eRxHwEJFEeONeofS9rjBWA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//ClassAttribute/index"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eRxHwUJFEeONeofS9rjBWA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kLDqBRFSEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kLDqBhFSEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kLDqBxFSEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kLMz8BFSEeK70NvnY3NN2A" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_AsGLsCypEeK174WWoMT1OQ" type="2002">
+ <element xmi:type="ecore:EOperation" href="FilterExpr.ecore#//ClassAttribute/isSet"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AsGLsSypEeK174WWoMT1OQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bha-YEYnEeOBeLQ0LyomkA" type="2002">
+ <element xmi:type="ecore:EOperation" href="FilterExpr.ecore#//ClassAttribute/getValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bha-YUYnEeOBeLQ0LyomkA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mFXdIELYEeONeofS9rjBWA" type="2002">
+ <element xmi:type="ecore:EOperation" href="FilterExpr.ecore#//ClassAttribute/getListValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mFXdIULYEeONeofS9rjBWA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kLMz8RFSEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kLMz8hFSEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kLMz8xFSEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_kLDqARFSEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//ClassAttribute"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kLDqAhFSEeK70NvnY3NN2A" x="192" y="696"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E_KisBLnEeK70NvnY3NN2A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_E_KisxLnEeK70NvnY3NN2A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_E_KitBLnEeK70NvnY3NN2A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_WjSgwBLnEeK70NvnY3NN2A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//DownCastPredicate/className"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WjSgwRLnEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_E_KitRLnEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_E_KithLnEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_E_KitxLnEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E_KiuBLnEeK70NvnY3NN2A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_E_KiuRLnEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_E_KiuhLnEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_E_KiuxLnEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_E_KisRLnEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//DownCastPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E_KishLnEeK70NvnY3NN2A" x="528" y="348"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__A4RwBj5EeK70NvnY3NN2A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="__A4Rwxj5EeK70NvnY3NN2A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="__A4RxBj5EeK70NvnY3NN2A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_C-60oBj6EeK70NvnY3NN2A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//InOperator/IN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C-60oRj6EeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FeVdYBj6EeK70NvnY3NN2A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//InOperator/NOT_IN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FeVdYRj6EeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__A4RxRj5EeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__A4Rxhj5EeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__A4Rxxj5EeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__A4RwRj5EeK70NvnY3NN2A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="FilterExpr.ecore#//InOperator"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__A4Rwhj5EeK70NvnY3NN2A" x="996" y="336"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BnLxYBkVEeK70NvnY3NN2A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_BnLxYxkVEeK70NvnY3NN2A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_BnLxZBkVEeK70NvnY3NN2A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_EqX1kBkVEeK70NvnY3NN2A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="FilterExpr.ecore#//MultiplicityPredicate/listOperator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EqX1kRkVEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BnLxZRkVEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BnLxZhkVEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BnLxZxkVEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BnLxaBkVEeK70NvnY3NN2A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BnLxaRkVEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BnLxahkVEeK70NvnY3NN2A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BnLxaxkVEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BnLxYRkVEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//MultiplicityPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BnLxYhkVEeK70NvnY3NN2A" x="12" y="336"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_goD2sCjzEeKt6OVYGNACXg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_goWxoCjzEeKt6OVYGNACXg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_goWxoSjzEeKt6OVYGNACXg" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_goWxoijzEeKt6OVYGNACXg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_goWxoyjzEeKt6OVYGNACXg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_goWxpCjzEeKt6OVYGNACXg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_goWxpSjzEeKt6OVYGNACXg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_goWxpijzEeKt6OVYGNACXg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_goWxpyjzEeKt6OVYGNACXg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_goWxqCjzEeKt6OVYGNACXg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_goD2sSjzEeKt6OVYGNACXg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="FilterExpr.ecore#//IsSetPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_goD2sijzEeKt6OVYGNACXg" x="324" y="336"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SP87sEJFEeONeofS9rjBWA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_SP_X8EJFEeONeofS9rjBWA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_SP__AEJFEeONeofS9rjBWA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Utc44EJFEeONeofS9rjBWA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="FilterExpr.ecore#//MetaOperator/SIZE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Utc44UJFEeONeofS9rjBWA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_SP__AUJFEeONeofS9rjBWA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SP__AkJFEeONeofS9rjBWA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SP__A0JFEeONeofS9rjBWA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_SP87sUJFEeONeofS9rjBWA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="FilterExpr.ecore#//MetaOperator"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SP87skJFEeONeofS9rjBWA" x="48" y="564"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_NkxmwgMGEeKPy-s2XR1yyQ"/>
+ <element xmi:type="ecore:EPackage" href="FilterExpr.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_D0RDEAMTEeKPy-s2XR1yyQ" type="3003" source="_8RktsAMSEeKPy-s2XR1yyQ" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_D0RDEQMTEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D0RDEgMTEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D0RDEwMTEeKPy-s2XR1yyQ" points="[1, -20, -8, 141]$[10, -164, 1, -3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D0RDFAMTEeKPy-s2XR1yyQ" id="(0.2081447963800905,0.08163265306122448)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_IcvDAAMTEeKPy-s2XR1yyQ" type="3002" source="_8RktsAMSEeKPy-s2XR1yyQ" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_IcvDBAMTEeKPy-s2XR1yyQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IcvDBQMTEeKPy-s2XR1yyQ" x="-95"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IcvDBgMTEeKPy-s2XR1yyQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IcvDBwMTEeKPy-s2XR1yyQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_IcvDAQMTEeKPy-s2XR1yyQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IcvDAgMTEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//DyadicExpression/leftHandTerm"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IcvDAwMTEeKPy-s2XR1yyQ" points="[-23, -21, 360, 129]$[-87, -81, 296, 69]$[-350, -142, 33, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ic40AAMTEeKPy-s2XR1yyQ" id="(0.8099547511312217,0.4489795918367347)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ic40AQMTEeKPy-s2XR1yyQ" id="(0.7232142857142857,0.8367346938775511)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_XP9mwAMTEeKPy-s2XR1yyQ" type="3003" source="_tsf7sAMHEeKPy-s2XR1yyQ" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_XP9mwQMTEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XP9mwgMTEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XP9mwwMTEeKPy-s2XR1yyQ" points="[125, -11, -147, 133]$[125, -66, -147, 78]$[227, -66, -45, 78]$[227, -120, -45, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XP9mxAMTEeKPy-s2XR1yyQ" id="(0.416,0.24489795918367346)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YiMqsAMTEeKPy-s2XR1yyQ" type="3002" source="_8RktsAMSEeKPy-s2XR1yyQ" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_YiMqtAMTEeKPy-s2XR1yyQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YiMqtQMTEeKPy-s2XR1yyQ" x="-181" y="9"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YiMqtgMTEeKPy-s2XR1yyQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YiMqtwMTEeKPy-s2XR1yyQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YiMqsQMTEeKPy-s2XR1yyQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YiMqsgMTEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//DyadicExpression/rightHandTerm"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YiMqswMTEeKPy-s2XR1yyQ" points="[-1, 0, 346, 122]$[-60, -84, 287, 38]$[-340, -121, 7, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8omtoC8EEeKsj7XXqh4sww" id="(0.8449612403100775,0.02040816326530612)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YiMquAMTEeKPy-s2XR1yyQ" id="(0.9241071428571429,0.9795918367346939)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_C7TlUAMUEeKPy-s2XR1yyQ" type="3003" source="_t-BTEAMTEeKPy-s2XR1yyQ" target="_0s530AMREeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_C7TlUQMUEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_C7TlUgMUEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_C7TlUwMUEeKPy-s2XR1yyQ" points="[-83, -23, 166, 205]$[-83, -191, 166, 37]$[-247, -191, 2, 37]$[-247, -223, 2, 5]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IYQ_0A0xEeKQkNvsZzz0Dw" id="(0.8301886792452831,0.8809523809523809)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_DktusAMUEeKPy-s2XR1yyQ" type="3003" source="_zYZ4IAMTEeKPy-s2XR1yyQ" target="_0s530AMREeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_DktusQMUEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DktusgMUEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DktuswMUEeKPy-s2XR1yyQ" points="[2, -23, -90, 124]$[2, -47, -90, 100]$[74, -47, -18, 100]$[74, -127, -18, 20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kgSSUC8nEeOyvfp82_oqjw" id="(0.41509433962264153,0.9285714285714286)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Wk9QAAMVEeKPy-s2XR1yyQ" type="3002" source="_t-BTEAMTEeKPy-s2XR1yyQ" target="_MLC14AMVEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_Wk9QBAMVEeKPy-s2XR1yyQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wk9QBQMVEeKPy-s2XR1yyQ" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Wk9QBgMVEeKPy-s2XR1yyQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wk9QBwMVEeKPy-s2XR1yyQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Wk9QAQMVEeKPy-s2XR1yyQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wk9QAgMVEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//ComparisonPredicate/literal"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wk9QAwMVEeKPy-s2XR1yyQ" points="[-7, 32, 10, -101]$[33, 139, 50, 6]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_h2sNgAMWEeKPy-s2XR1yyQ" type="3003" source="_Zjr1gAMWEeKPy-s2XR1yyQ" target="_MLC14AMVEeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_h2sNgQMWEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_h2sNggMWEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_h2sNgwMWEeKPy-s2XR1yyQ" points="[10, -14, -104, 124]$[64, -133, -50, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_h21-gAMWEeKPy-s2XR1yyQ" id="(0.2426470588235294,0.35714285714285715)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_iTmL8AMWEeKPy-s2XR1yyQ" type="3003" source="_dLN84AMWEeKPy-s2XR1yyQ" target="_MLC14AMVEeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_iTmL8QMWEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iTmL8gMWEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iTmL8wMWEeKPy-s2XR1yyQ" points="[-10, -20, 62, 124]$[-73, -164, -1, -20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_itq40AMWEeKPy-s2XR1yyQ" type="3003" source="_fuz7AAMWEeKPy-s2XR1yyQ" target="_MLC14AMVEeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_itq40QMWEeKPy-s2XR1yyQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_itq40gMWEeKPy-s2XR1yyQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_itq40wMWEeKPy-s2XR1yyQ" points="[-29, -20, 191, 126]$[-170, -143, 50, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_J0vP0BFNEeK70NvnY3NN2A" type="3003" source="_E9__0BFMEeK70NvnY3NN2A" target="_0s530AMREeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_J0vP0RFNEeK70NvnY3NN2A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_J0vP0hFNEeK70NvnY3NN2A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J0vP0xFNEeK70NvnY3NN2A" points="[40, 0, -222, 212]$[40, -132, -222, 80]$[270, -132, 8, 80]$[270, -188, 8, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J0vP1BFNEeK70NvnY3NN2A" id="(0.05555555555555555,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J0vP1RFNEeK70NvnY3NN2A" id="(0.10784313725490197,0.40476190476190477)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_NYx-UBFNEeK70NvnY3NN2A" type="3002" source="_E9__0BFMEeK70NvnY3NN2A" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_NZE5QBFNEeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NZE5QRFNEeK70NvnY3NN2A" x="-300" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NZE5QhFNEeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NZE5QxFNEeK70NvnY3NN2A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_NYx-URFNEeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NYx-UhFNEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//SubClassPredicate/subClassExpression"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NYx-UxFNEeK70NvnY3NN2A" points="[3, -31, -35, 327]$[40, -339, 2, 19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NZE5RBFNEeK70NvnY3NN2A" id="(0.8253968253968254,0.673469387755102)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NZE5RRFNEeK70NvnY3NN2A" id="(0.49107142857142855,0.8775510204081632)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FtjwUBFTEeK70NvnY3NN2A" type="3002" source="_t-BTEAMTEeKPy-s2XR1yyQ" target="_kLDqABFSEeK70NvnY3NN2A">
+ <children xmi:type="notation:Node" xmi:id="_FtjwVBFTEeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FtjwVRFTEeK70NvnY3NN2A" x="-26" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FtjwVhFTEeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FtjwVxFTEeK70NvnY3NN2A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FtjwURFTEeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FtjwUhFTEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//ComparisonPredicate/attribute"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FtjwUxFTEeK70NvnY3NN2A" points="[-39, 4, 178, -24]$[-211, 8, 6, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FtthUBFTEeK70NvnY3NN2A" id="(0.14285714285714285,0.4461538461538462)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d_CG0C8FEeKsj7XXqh4sww" id="(0.8141592920353983,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_QaJ14BFTEeK70NvnY3NN2A" type="3002" source="_E9__0BFMEeK70NvnY3NN2A" target="_kLDqABFSEeK70NvnY3NN2A">
+ <children xmi:type="notation:Node" xmi:id="_QaJ15BFTEeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QaJ15RFTEeK70NvnY3NN2A" x="-157"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QaJ15hFTEeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QaJ15xFTEeK70NvnY3NN2A" x="10" y="-15"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_QaJ14RFTEeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QaJ14hFTEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//SubClassPredicate/subClassAttribute"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QaJ14xFTEeK70NvnY3NN2A" points="[21, 32, -119, -177]$[142, 232, 2, 23]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QaJ16BFTEeK70NvnY3NN2A" id="(0.2849162011173184,0.07142857142857142)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_fys2oBLnEeK70NvnY3NN2A" type="3003" source="_E_KisBLnEeK70NvnY3NN2A" target="_0s530AMREeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_fys2oRLnEeK70NvnY3NN2A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_fys2ohLnEeK70NvnY3NN2A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fys2oxLnEeK70NvnY3NN2A" points="[6, 0, 77, 135]$[6, -72, 77, 63]$[-92, -72, -21, 63]$[-92, -128, -21, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qd0NoC8DEeKsj7XXqh4sww" id="(0.54421768707483,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fys2pBLnEeK70NvnY3NN2A" id="(0.7232704402515723,0.9285714285714286)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_k9aoABLnEeK70NvnY3NN2A" type="3002" source="_E_KisBLnEeK70NvnY3NN2A" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_k9aoBBLnEeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k9aoBRLnEeK70NvnY3NN2A" x="-446"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k9aoBhLnEeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k9aoBxLnEeK70NvnY3NN2A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_k9aoARLnEeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_k9aoAhLnEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//DownCastPredicate/expression"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k9aoAxLnEeK70NvnY3NN2A" points="[17, -23, -208, 288]$[224, -331, -1, -20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_MTU_QBj6EeK70NvnY3NN2A" type="3002" source="_zYZ4IAMTEeKPy-s2XR1yyQ" target="_kLDqABFSEeK70NvnY3NN2A">
+ <children xmi:type="notation:Node" xmi:id="_MTU_RBj6EeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MTU_RRj6EeK70NvnY3NN2A" x="-24" y="9"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MTU_Rhj6EeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MTU_Rxj6EeK70NvnY3NN2A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_MTU_QRj6EeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MTU_Qhj6EeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//InPredicate/attribute"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MTU_Qxj6EeK70NvnY3NN2A" points="[-11, 20, 55, -103]$[-64, 147, 2, 24]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MTU_SBj6EeK70NvnY3NN2A" id="(0.49557522123893805,0.038461538461538464)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_q0WRkBj6EeK70NvnY3NN2A" type="3002" source="_zYZ4IAMTEeKPy-s2XR1yyQ" target="_MLC14AMVEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_q0WRlBj6EeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q0WRlRj6EeK70NvnY3NN2A" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_q0WRlhj6EeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q0WRlxj6EeK70NvnY3NN2A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_q0WRkRj6EeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_q0WRkhj6EeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//InPredicate/literals"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q0WRkxj6EeK70NvnY3NN2A" points="[17, 24, -144, -200]$[162, 217, 1, -7]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q0WRmBj6EeK70NvnY3NN2A" id="(0.0392156862745098,0.19047619047619047)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_OH5f8BkVEeK70NvnY3NN2A" type="3002" source="_BnLxYBkVEeK70NvnY3NN2A" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_OH5f9BkVEeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OH5f9RkVEeK70NvnY3NN2A" x="-274" y="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OH5f9hkVEeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OH5f9xkVEeK70NvnY3NN2A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_OH5f8RkVEeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OH5f8hkVEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//MultiplicityPredicate/expression"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OH5f8xkVEeK70NvnY3NN2A" points="[2, -20, -388, 301]$[15, -200, -375, 121]$[316, -297, -74, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OH5f-BkVEeK70NvnY3NN2A" id="(0.2430939226519337,0.02040816326530612)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_SsYXwBkVEeK70NvnY3NN2A" type="3003" source="_BnLxYBkVEeK70NvnY3NN2A" target="_0s530AMREeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_SsYXwRkVEeK70NvnY3NN2A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SsYXwhkVEeK70NvnY3NN2A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SsYXwxkVEeK70NvnY3NN2A" points="[43, -23, -283, 118]$[43, -95, -283, 46]$[325, -95, -1, 46]$[325, -139, -1, 2]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ejOeAC8nEeOyvfp82_oqjw" id="(0.050314465408805034,0.9523809523809523)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_L1eC8BkYEeK70NvnY3NN2A" type="3002" source="_BnLxYBkVEeK70NvnY3NN2A" target="_kLDqABFSEeK70NvnY3NN2A">
+ <children xmi:type="notation:Node" xmi:id="_L1eC9BkYEeK70NvnY3NN2A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L1eC9RkYEeK70NvnY3NN2A" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L1eC9hkYEeK70NvnY3NN2A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L1eC9xkYEeK70NvnY3NN2A" x="28" y="7"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_L1eC8RkYEeK70NvnY3NN2A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_L1eC8hkYEeK70NvnY3NN2A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//MultiplicityPredicate/attribute"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L1eC8xkYEeK70NvnY3NN2A" points="[5, 40, -41, -318]$[48, 376, 2, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1eC-BkYEeK70NvnY3NN2A" id="(0.6022099447513812,0.16326530612244897)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1eC-RkYEeK70NvnY3NN2A" id="(0.2122905027932961,0.05357142857142857)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_mTcsMCjzEeKt6OVYGNACXg" type="3003" source="_goD2sCjzEeKt6OVYGNACXg" target="_0s530AMREeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_mTcsMSjzEeKt6OVYGNACXg" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mTcsMijzEeKt6OVYGNACXg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mTcsMyjzEeKt6OVYGNACXg" points="[18, -20, -93, 119]$[18, -68, -93, 71]$[94, -68, -17, 71]$[94, -136, -17, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dFvzYC8nEeOyvfp82_oqjw" id="(0.41509433962264153,0.9285714285714286)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_toQ9oCjzEeKt6OVYGNACXg" type="3002" source="_goD2sCjzEeKt6OVYGNACXg" target="_kLDqABFSEeK70NvnY3NN2A">
+ <children xmi:type="notation:Node" xmi:id="_toauoCjzEeKt6OVYGNACXg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_toauoSjzEeKt6OVYGNACXg" x="-83" y="-51"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tokfoCjzEeKt6OVYGNACXg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tokfoSjzEeKt6OVYGNACXg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_toQ9oSjzEeKt6OVYGNACXg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_toQ9oijzEeKt6OVYGNACXg" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//IsSetPredicate/attribute"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_toQ9oyjzEeKt6OVYGNACXg" points="[-50, 12, 435, -98]$[-402, 111, 83, 1]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2y28cAi0EeO1N-9DiKL7Gg" id="(0.39106145251396646,0.03571428571428571)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Qm9kwCzcEeKV1Pt3McDBgw" type="3003" source="_0s530AMREeKPy-s2XR1yyQ" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Qm9kwSzcEeKV1Pt3McDBgw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Qm9kwizcEeKV1Pt3McDBgw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qm9kwyzcEeKV1Pt3McDBgw" points="[-39, -20, 399, 208]$[-438, -208, 0, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_lPuKYC7-EeKsj7XXqh4sww" type="3002" source="_tsf7sAMHEeKPy-s2XR1yyQ" target="_vdIoUAMGEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_lQKPQC7-EeKsj7XXqh4sww" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lQKPQS7-EeKsj7XXqh4sww" x="-142" y="-1"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lQKPQi7-EeKsj7XXqh4sww" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lQKPQy7-EeKsj7XXqh4sww" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_lPuKYS7-EeKsj7XXqh4sww" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lPuKYi7-EeKsj7XXqh4sww" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="FilterExpr.ecore#//UnaryExpression/expression"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lPuKYy7-EeKsj7XXqh4sww" points="[-34, -18, 137, 64]$[-163, -102, 8, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lQUAQC7-EeKsj7XXqh4sww" id="(0.192,0.3877551020408163)"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.genmodel b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.genmodel
new file mode 100755
index 0000000..a351c26
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/model/FilterExpr.genmodel
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.booleanexpr-model/src/main/java" editDirectory="/org.genivi.booleanexpr-model.edit/src"
+ editorDirectory="/org.genivi.booleanexpr-model.editor/src" modelPluginID="org.genivi.booleanexpr-model"
+ modelName="FilterExpr" modelPluginClass="" testSuiteClass="org.genivi.booleanexpr.tests.BooleanExprAllTests"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ editPluginID="org.genivi.booleanexpr-model.edit" editorPluginID="org.genivi.booleanexpr-model.editor"
+ pluginKey="BooleanExpr">
+ <foreignModel>FilterExpr.ecore</foreignModel>
+ <genPackages prefix="Filterexpr" basePackage="org.genivi" disposableProviderFactory="true"
+ ecorePackage="FilterExpr.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FilterExpr.ecore#//DyadicLogicalOperator">
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//DyadicLogicalOperator/AND"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//DyadicLogicalOperator/OR"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FilterExpr.ecore#//UnaryLogicalOperator">
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//UnaryLogicalOperator/NOT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FilterExpr.ecore#//ComparisonOperator">
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ComparisonOperator/EQUAL"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ComparisonOperator/NOT_EQUAL"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ComparisonOperator/GREATER_THEN"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ComparisonOperator/GREATER_OR_EQUAL_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ComparisonOperator/LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ComparisonOperator/LESS_OR_EQUAL_THAN"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FilterExpr.ecore#//ListOperator">
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ListOperator/ANY"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ListOperator/ALL"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//ListOperator/NONE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FilterExpr.ecore#//InOperator">
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//InOperator/IN"/>
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//InOperator/NOT_IN"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="FilterExpr.ecore#//MetaOperator">
+ <genEnumLiterals ecoreEnumLiteral="FilterExpr.ecore#//MetaOperator/SIZE"/>
+ </genEnums>
+ <genClasses image="false" ecoreClass="FilterExpr.ecore#//BooleanExpression">
+ <genOperations ecoreOperation="FilterExpr.ecore#//BooleanExpression/evaluate">
+ <genParameters ecoreParameter="FilterExpr.ecore#//BooleanExpression/evaluate/object"/>
+ </genOperations>
+ <genOperations ecoreOperation="FilterExpr.ecore#//BooleanExpression/format">
+ <genParameters ecoreParameter="FilterExpr.ecore#//BooleanExpression/format/indent"/>
+ <genParameters ecoreParameter="FilterExpr.ecore#//BooleanExpression/format/indentSize"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//UnaryExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//UnaryExpression/unaryOperator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//UnaryExpression/expression"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="FilterExpr.ecore#//Predicate"/>
+ <genClasses ecoreClass="FilterExpr.ecore#//DyadicExpression">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//DyadicExpression/logicalOperator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//DyadicExpression/leftHandTerm"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//DyadicExpression/rightHandTerm"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//ComparisonPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//ComparisonPredicate/literal"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//ComparisonPredicate/attribute"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//ComparisonPredicate/comparisonOperator"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//InPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//InPredicate/attribute"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//InPredicate/inOperator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//InPredicate/literals"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="FilterExpr.ecore#//Literal"/>
+ <genClasses ecoreClass="FilterExpr.ecore#//SignedIntegerLiteral">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//SignedIntegerLiteral/value"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//StringLiteral">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//StringLiteral/value"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//BooleanLiteral">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//BooleanLiteral/value"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//SubClassPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//SubClassPredicate/subClassExpression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//SubClassPredicate/subClassAttribute"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//ClassAttribute">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//ClassAttribute/attributeName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//ClassAttribute/metaOperator"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//ClassAttribute/index"/>
+ <genOperations ecoreOperation="FilterExpr.ecore#//ClassAttribute/isSet">
+ <genParameters ecoreParameter="FilterExpr.ecore#//ClassAttribute/isSet/object"/>
+ </genOperations>
+ <genOperations ecoreOperation="FilterExpr.ecore#//ClassAttribute/getListValue">
+ <genParameters ecoreParameter="FilterExpr.ecore#//ClassAttribute/getListValue/object"/>
+ </genOperations>
+ <genOperations ecoreOperation="FilterExpr.ecore#//ClassAttribute/getValue">
+ <genParameters ecoreParameter="FilterExpr.ecore#//ClassAttribute/getValue/object"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//DownCastPredicate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//DownCastPredicate/className"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//DownCastPredicate/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//MultiplicityPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//MultiplicityPredicate/expression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//MultiplicityPredicate/attribute"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute FilterExpr.ecore#//MultiplicityPredicate/listOperator"/>
+ </genClasses>
+ <genClasses ecoreClass="FilterExpr.ecore#//IsSetPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference FilterExpr.ecore#//IsSetPredicate/attribute"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.properties b/src/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.properties
new file mode 100755
index 0000000..080a377
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = FilterExpr Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.xml b/src/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.xml
new file mode 100755
index 0000000..3b56839
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/plugin.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://org.genivi.filterexpr"
+ class="org.genivi.booleanexpr.FilterexprPackage"
+ genModel="model/FilterExpr.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated Family -->
+ <package
+ uri="http://org.genivi.family"
+ class="org.genivi.family.FamilyPackage"
+ genModel="model/Family.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/pom.xml b/src/traffic-incidents-service/org.genivi.booleanexpr-model/pom.xml
new file mode 100755
index 0000000..f7f823a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi</groupId>
+ <artifactId>booleanexpr-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Filter Expression</name>
+ <description>This project contains a Filter Expression to be used in GENIVI.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>demo</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanExpression.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanExpression.java
new file mode 100755
index 0000000..ba61597
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanExpression.java
@@ -0,0 +1,47 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filter Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This is the top level class for boolean expressions.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getBooleanExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface BooleanExpression extends EObject {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ boolean evaluate(Object object);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ String format(String indent, String indentSize);
+
+} // FilterExpression
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanLiteral.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanLiteral.java
new file mode 100755
index 0000000..3cce8c1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/BooleanLiteral.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This class represents the boolean literal values 'true' and 'false'.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.BooleanLiteral#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getBooleanLiteral()
+ * @model
+ * @generated
+ */
+public interface BooleanLiteral extends Literal {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #isSetValue()
+ * @see #unsetValue()
+ * @see #setValue(boolean)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getBooleanLiteral_Value()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ boolean isValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.BooleanLiteral#isValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #isSetValue()
+ * @see #unsetValue()
+ * @see #isValue()
+ * @generated
+ */
+ void setValue(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.BooleanLiteral#isValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetValue()
+ * @see #isValue()
+ * @see #setValue(boolean)
+ * @generated
+ */
+ void unsetValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.BooleanLiteral#isValue <em>Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Value</em>' attribute is set.
+ * @see #unsetValue()
+ * @see #isValue()
+ * @see #setValue(boolean)
+ * @generated
+ */
+ boolean isSetValue();
+
+} // BooleanLiteral
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ClassAttribute.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ClassAttribute.java
new file mode 100755
index 0000000..63c4871
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ClassAttribute.java
@@ -0,0 +1,225 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Class Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This class represents an attribute of a class of a data model. The attribute is identified by its name.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.ClassAttribute#getAttributeName <em>Attribute Name</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.ClassAttribute#getMetaOperator <em>Meta Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.ClassAttribute#getIndex <em>Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getClassAttribute()
+ * @model
+ * @generated
+ */
+public interface ClassAttribute extends EObject {
+ /**
+ * Returns the value of the '<em><b>Attribute Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Name</em>' attribute.
+ * @see #isSetAttributeName()
+ * @see #unsetAttributeName()
+ * @see #setAttributeName(String)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getClassAttribute_AttributeName()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getAttributeName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getAttributeName <em>Attribute Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute Name</em>' attribute.
+ * @see #isSetAttributeName()
+ * @see #unsetAttributeName()
+ * @see #getAttributeName()
+ * @generated
+ */
+ void setAttributeName(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getAttributeName <em>Attribute Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAttributeName()
+ * @see #getAttributeName()
+ * @see #setAttributeName(String)
+ * @generated
+ */
+ void unsetAttributeName();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getAttributeName <em>Attribute Name</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Attribute Name</em>' attribute is set.
+ * @see #unsetAttributeName()
+ * @see #getAttributeName()
+ * @see #setAttributeName(String)
+ * @generated
+ */
+ boolean isSetAttributeName();
+
+ /**
+ * Returns the value of the '<em><b>Meta Operator</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.booleanexpr.MetaOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta Operator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Meta Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.MetaOperator
+ * @see #isSetMetaOperator()
+ * @see #unsetMetaOperator()
+ * @see #setMetaOperator(MetaOperator)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getClassAttribute_MetaOperator()
+ * @model unsettable="true"
+ * @generated
+ */
+ MetaOperator getMetaOperator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getMetaOperator <em>Meta Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Meta Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.MetaOperator
+ * @see #isSetMetaOperator()
+ * @see #unsetMetaOperator()
+ * @see #getMetaOperator()
+ * @generated
+ */
+ void setMetaOperator(MetaOperator value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getMetaOperator <em>Meta Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMetaOperator()
+ * @see #getMetaOperator()
+ * @see #setMetaOperator(MetaOperator)
+ * @generated
+ */
+ void unsetMetaOperator();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getMetaOperator <em>Meta Operator</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Meta Operator</em>' attribute is set.
+ * @see #unsetMetaOperator()
+ * @see #getMetaOperator()
+ * @see #setMetaOperator(MetaOperator)
+ * @generated
+ */
+ boolean isSetMetaOperator();
+
+ /**
+ * Returns the value of the '<em><b>Index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index</em>' attribute.
+ * @see #isSetIndex()
+ * @see #unsetIndex()
+ * @see #setIndex(int)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getClassAttribute_Index()
+ * @model unsettable="true"
+ * @generated
+ */
+ int getIndex();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getIndex <em>Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Index</em>' attribute.
+ * @see #isSetIndex()
+ * @see #unsetIndex()
+ * @see #getIndex()
+ * @generated
+ */
+ void setIndex(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getIndex <em>Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIndex()
+ * @see #getIndex()
+ * @see #setIndex(int)
+ * @generated
+ */
+ void unsetIndex();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.ClassAttribute#getIndex <em>Index</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Index</em>' attribute is set.
+ * @see #unsetIndex()
+ * @see #getIndex()
+ * @see #setIndex(int)
+ * @generated
+ */
+ boolean isSetIndex();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ boolean isSet(EObject object);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model many="false"
+ * @generated
+ */
+ EList<?> getListValue(Object object);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ Object getValue(Object object);
+
+} // ClassAttribute
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonOperator.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonOperator.java
new file mode 100755
index 0000000..b1dacc2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonOperator.java
@@ -0,0 +1,326 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Comparison Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This enumeration defines the operators for comparison.
+ * <!-- end-model-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage#getComparisonOperator()
+ * @model
+ * @generated
+ */
+public enum ComparisonOperator implements Enumerator {
+ /**
+ * The '<em><b>EQUAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EQUAL_VALUE
+ * @generated
+ * @ordered
+ */
+ EQUAL(0, "EQUAL", "EQUAL"),
+
+ /**
+ * The '<em><b>NOT EQUAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NOT_EQUAL_VALUE
+ * @generated
+ * @ordered
+ */
+ NOT_EQUAL(1, "NOT_EQUAL", "NOT_EQUAL"),
+
+ /**
+ * The '<em><b>GREATER THEN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GREATER_THEN_VALUE
+ * @generated
+ * @ordered
+ */
+ GREATER_THEN(2, "GREATER_THEN", "GREATER_THEN"),
+
+ /**
+ * The '<em><b>GREATER OR EQUAL THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GREATER_OR_EQUAL_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ GREATER_OR_EQUAL_THAN(3, "GREATER_OR_EQUAL_THAN", "GREATER_OR_EQUAL_THAN"),
+
+ /**
+ * The '<em><b>LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ LESS_THAN(4, "LESS_THAN", "LESS_THAN"),
+
+ /**
+ * The '<em><b>LESS OR EQUAL THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LESS_OR_EQUAL_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ LESS_OR_EQUAL_THAN(5, "LESS_OR_EQUAL_THAN", "LESS_OR_EQUAL_THAN");
+
+ /**
+ * The '<em><b>EQUAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EQUAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EQUAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EQUAL_VALUE = 0;
+
+ /**
+ * The '<em><b>NOT EQUAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NOT EQUAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NOT_EQUAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NOT_EQUAL_VALUE = 1;
+
+ /**
+ * The '<em><b>GREATER THEN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GREATER THEN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GREATER_THEN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GREATER_THEN_VALUE = 2;
+
+ /**
+ * The '<em><b>GREATER OR EQUAL THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GREATER OR EQUAL THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GREATER_OR_EQUAL_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GREATER_OR_EQUAL_THAN_VALUE = 3;
+
+ /**
+ * The '<em><b>LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LESS_THAN_VALUE = 4;
+
+ /**
+ * The '<em><b>LESS OR EQUAL THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LESS OR EQUAL THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LESS_OR_EQUAL_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LESS_OR_EQUAL_THAN_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Comparison Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ComparisonOperator[] VALUES_ARRAY =
+ new ComparisonOperator[] {
+ EQUAL,
+ NOT_EQUAL,
+ GREATER_THEN,
+ GREATER_OR_EQUAL_THAN,
+ LESS_THAN,
+ LESS_OR_EQUAL_THAN,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Comparison Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ComparisonOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Comparison Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ComparisonOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ComparisonOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Comparison Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ComparisonOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ComparisonOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Comparison Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ComparisonOperator get(int value) {
+ switch (value) {
+ case EQUAL_VALUE: return EQUAL;
+ case NOT_EQUAL_VALUE: return NOT_EQUAL;
+ case GREATER_THEN_VALUE: return GREATER_THEN;
+ case GREATER_OR_EQUAL_THAN_VALUE: return GREATER_OR_EQUAL_THAN;
+ case LESS_THAN_VALUE: return LESS_THAN;
+ case LESS_OR_EQUAL_THAN_VALUE: return LESS_OR_EQUAL_THAN;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ComparisonOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ComparisonOperator
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonPredicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonPredicate.java
new file mode 100755
index 0000000..ce24fb2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ComparisonPredicate.java
@@ -0,0 +1,118 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comparison Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This predicate compares the value of an attribute of a class to a literal value (a constant).
+ * For example "myAttribute == 22".
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.ComparisonPredicate#getLiteral <em>Literal</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.ComparisonPredicate#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.ComparisonPredicate#getComparisonOperator <em>Comparison Operator</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getComparisonPredicate()
+ * @model
+ * @generated
+ */
+public interface ComparisonPredicate extends Predicate {
+ /**
+ * Returns the value of the '<em><b>Comparison Operator</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.booleanexpr.ComparisonOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comparison Operator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Comparison Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.ComparisonOperator
+ * @see #setComparisonOperator(ComparisonOperator)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getComparisonPredicate_ComparisonOperator()
+ * @model required="true"
+ * @generated
+ */
+ ComparisonOperator getComparisonOperator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.ComparisonPredicate#getComparisonOperator <em>Comparison Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Comparison Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.ComparisonOperator
+ * @see #getComparisonOperator()
+ * @generated
+ */
+ void setComparisonOperator(ComparisonOperator value);
+
+ /**
+ * Returns the value of the '<em><b>Literal</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Literal</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Literal</em>' containment reference.
+ * @see #setLiteral(Literal)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getComparisonPredicate_Literal()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ Literal getLiteral();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.ComparisonPredicate#getLiteral <em>Literal</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Literal</em>' containment reference.
+ * @see #getLiteral()
+ * @generated
+ */
+ void setLiteral(Literal value);
+
+ /**
+ * Returns the value of the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute</em>' containment reference.
+ * @see #setAttribute(ClassAttribute)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getComparisonPredicate_Attribute()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ ClassAttribute getAttribute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.ComparisonPredicate#getAttribute <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute</em>' containment reference.
+ * @see #getAttribute()
+ * @generated
+ */
+ void setAttribute(ClassAttribute value);
+
+} // ComparisonPredicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DownCastPredicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DownCastPredicate.java
new file mode 100755
index 0000000..8d2ea0f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DownCastPredicate.java
@@ -0,0 +1,143 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Down Cast Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This predicate is used to handle expressions on classes which extend a base class.
+ * Example: Class Person has one attribute 'name'. Class Driver extends Person and adds an attribute 'driversLicenseNo'.
+ * Now anywhere that Person can be used in a data model, it may also be a Driver. But to use a Driver specific attribute, the Person has to be downcast to a Driver.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.DownCastPredicate#getClassName <em>Class Name</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.DownCastPredicate#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDownCastPredicate()
+ * @model
+ * @generated
+ */
+public interface DownCastPredicate extends Predicate {
+ /**
+ * Returns the value of the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class Name</em>' attribute.
+ * @see #isSetClassName()
+ * @see #unsetClassName()
+ * @see #setClassName(String)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDownCastPredicate_ClassName()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getClassName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.DownCastPredicate#getClassName <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class Name</em>' attribute.
+ * @see #isSetClassName()
+ * @see #unsetClassName()
+ * @see #getClassName()
+ * @generated
+ */
+ void setClassName(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.DownCastPredicate#getClassName <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetClassName()
+ * @see #getClassName()
+ * @see #setClassName(String)
+ * @generated
+ */
+ void unsetClassName();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.DownCastPredicate#getClassName <em>Class Name</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Class Name</em>' attribute is set.
+ * @see #unsetClassName()
+ * @see #getClassName()
+ * @see #setClassName(String)
+ * @generated
+ */
+ boolean isSetClassName();
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #setExpression(BooleanExpression)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDownCastPredicate_Expression()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ BooleanExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.DownCastPredicate#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(BooleanExpression value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.DownCastPredicate#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpression()
+ * @see #getExpression()
+ * @see #setExpression(BooleanExpression)
+ * @generated
+ */
+ void unsetExpression();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.DownCastPredicate#getExpression <em>Expression</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expression</em>' containment reference is set.
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @see #setExpression(BooleanExpression)
+ * @generated
+ */
+ boolean isSetExpression();
+
+} // DownCastPredicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicExpression.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicExpression.java
new file mode 100755
index 0000000..53d2972
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicExpression.java
@@ -0,0 +1,199 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Dyadic Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This is an expression of the form 'expression' DyadicLogicalOperator 'expression', like 'expression' AND 'expression'.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.DyadicExpression#getLogicalOperator <em>Logical Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.DyadicExpression#getLeftHandTerm <em>Left Hand Term</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.DyadicExpression#getRightHandTerm <em>Right Hand Term</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDyadicExpression()
+ * @model
+ * @generated
+ */
+public interface DyadicExpression extends BooleanExpression {
+ /**
+ * Returns the value of the '<em><b>Logical Operator</b></em>' attribute.
+ * The default value is <code>"AND"</code>.
+ * The literals are from the enumeration {@link org.genivi.booleanexpr.DyadicLogicalOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Logical Operator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Logical Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.DyadicLogicalOperator
+ * @see #isSetLogicalOperator()
+ * @see #unsetLogicalOperator()
+ * @see #setLogicalOperator(DyadicLogicalOperator)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDyadicExpression_LogicalOperator()
+ * @model default="AND" unsettable="true" required="true"
+ * @generated
+ */
+ DyadicLogicalOperator getLogicalOperator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getLogicalOperator <em>Logical Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Logical Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.DyadicLogicalOperator
+ * @see #isSetLogicalOperator()
+ * @see #unsetLogicalOperator()
+ * @see #getLogicalOperator()
+ * @generated
+ */
+ void setLogicalOperator(DyadicLogicalOperator value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getLogicalOperator <em>Logical Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLogicalOperator()
+ * @see #getLogicalOperator()
+ * @see #setLogicalOperator(DyadicLogicalOperator)
+ * @generated
+ */
+ void unsetLogicalOperator();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getLogicalOperator <em>Logical Operator</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Logical Operator</em>' attribute is set.
+ * @see #unsetLogicalOperator()
+ * @see #getLogicalOperator()
+ * @see #setLogicalOperator(DyadicLogicalOperator)
+ * @generated
+ */
+ boolean isSetLogicalOperator();
+
+ /**
+ * Returns the value of the '<em><b>Left Hand Term</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Left Hand Term</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Left Hand Term</em>' containment reference.
+ * @see #isSetLeftHandTerm()
+ * @see #unsetLeftHandTerm()
+ * @see #setLeftHandTerm(BooleanExpression)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDyadicExpression_LeftHandTerm()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ BooleanExpression getLeftHandTerm();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getLeftHandTerm <em>Left Hand Term</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Left Hand Term</em>' containment reference.
+ * @see #isSetLeftHandTerm()
+ * @see #unsetLeftHandTerm()
+ * @see #getLeftHandTerm()
+ * @generated
+ */
+ void setLeftHandTerm(BooleanExpression value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getLeftHandTerm <em>Left Hand Term</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLeftHandTerm()
+ * @see #getLeftHandTerm()
+ * @see #setLeftHandTerm(BooleanExpression)
+ * @generated
+ */
+ void unsetLeftHandTerm();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getLeftHandTerm <em>Left Hand Term</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Left Hand Term</em>' containment reference is set.
+ * @see #unsetLeftHandTerm()
+ * @see #getLeftHandTerm()
+ * @see #setLeftHandTerm(BooleanExpression)
+ * @generated
+ */
+ boolean isSetLeftHandTerm();
+
+ /**
+ * Returns the value of the '<em><b>Right Hand Term</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Right Hand Term</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Right Hand Term</em>' containment reference.
+ * @see #isSetRightHandTerm()
+ * @see #unsetRightHandTerm()
+ * @see #setRightHandTerm(BooleanExpression)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDyadicExpression_RightHandTerm()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ BooleanExpression getRightHandTerm();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getRightHandTerm <em>Right Hand Term</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Right Hand Term</em>' containment reference.
+ * @see #isSetRightHandTerm()
+ * @see #unsetRightHandTerm()
+ * @see #getRightHandTerm()
+ * @generated
+ */
+ void setRightHandTerm(BooleanExpression value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getRightHandTerm <em>Right Hand Term</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRightHandTerm()
+ * @see #getRightHandTerm()
+ * @see #setRightHandTerm(BooleanExpression)
+ * @generated
+ */
+ void unsetRightHandTerm();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.DyadicExpression#getRightHandTerm <em>Right Hand Term</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Right Hand Term</em>' containment reference is set.
+ * @see #unsetRightHandTerm()
+ * @see #getRightHandTerm()
+ * @see #setRightHandTerm(BooleanExpression)
+ * @generated
+ */
+ boolean isSetRightHandTerm();
+
+} // DyadicExpression
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicLogicalOperator.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicLogicalOperator.java
new file mode 100755
index 0000000..1785bef
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/DyadicLogicalOperator.java
@@ -0,0 +1,219 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Dyadic Logical Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This enumeration defines the operators for DyadicExpressions.
+ * AND has a higher precedence than OR.
+ * <!-- end-model-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage#getDyadicLogicalOperator()
+ * @model
+ * @generated
+ */
+public enum DyadicLogicalOperator implements Enumerator {
+ /**
+ * The '<em><b>AND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AND_VALUE
+ * @generated
+ * @ordered
+ */
+ AND(0, "AND", "AND"),
+
+ /**
+ * The '<em><b>OR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OR_VALUE
+ * @generated
+ * @ordered
+ */
+ OR(1, "OR", "OR");
+
+ /**
+ * The '<em><b>AND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AND_VALUE = 0;
+
+ /**
+ * The '<em><b>OR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OR_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Dyadic Logical Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DyadicLogicalOperator[] VALUES_ARRAY =
+ new DyadicLogicalOperator[] {
+ AND,
+ OR,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Dyadic Logical Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DyadicLogicalOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Dyadic Logical Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DyadicLogicalOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DyadicLogicalOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dyadic Logical Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DyadicLogicalOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DyadicLogicalOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dyadic Logical Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DyadicLogicalOperator get(int value) {
+ switch (value) {
+ case AND_VALUE: return AND;
+ case OR_VALUE: return OR;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DyadicLogicalOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DyadicLogicalOperator
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprFactory.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprFactory.java
new file mode 100755
index 0000000..8943b73
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprFactory.java
@@ -0,0 +1,148 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage
+ * @generated
+ */
+public interface FilterexprFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FilterexprFactory eINSTANCE = org.genivi.booleanexpr.impl.FilterexprFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Unary Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Unary Expression</em>'.
+ * @generated
+ */
+ UnaryExpression createUnaryExpression();
+
+ /**
+ * Returns a new object of class '<em>Dyadic Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Dyadic Expression</em>'.
+ * @generated
+ */
+ DyadicExpression createDyadicExpression();
+
+ /**
+ * Returns a new object of class '<em>Comparison Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Comparison Predicate</em>'.
+ * @generated
+ */
+ ComparisonPredicate createComparisonPredicate();
+
+ /**
+ * Returns a new object of class '<em>In Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>In Predicate</em>'.
+ * @generated
+ */
+ InPredicate createInPredicate();
+
+ /**
+ * Returns a new object of class '<em>Signed Integer Literal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Signed Integer Literal</em>'.
+ * @generated
+ */
+ SignedIntegerLiteral createSignedIntegerLiteral();
+
+ /**
+ * Returns a new object of class '<em>String Literal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>String Literal</em>'.
+ * @generated
+ */
+ StringLiteral createStringLiteral();
+
+ /**
+ * Returns a new object of class '<em>Boolean Literal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Boolean Literal</em>'.
+ * @generated
+ */
+ BooleanLiteral createBooleanLiteral();
+
+ /**
+ * Returns a new object of class '<em>Sub Class Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sub Class Predicate</em>'.
+ * @generated
+ */
+ SubClassPredicate createSubClassPredicate();
+
+ /**
+ * Returns a new object of class '<em>Class Attribute</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Class Attribute</em>'.
+ * @generated
+ */
+ ClassAttribute createClassAttribute();
+
+ /**
+ * Returns a new object of class '<em>Down Cast Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Down Cast Predicate</em>'.
+ * @generated
+ */
+ DownCastPredicate createDownCastPredicate();
+
+ /**
+ * Returns a new object of class '<em>Multiplicity Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multiplicity Predicate</em>'.
+ * @generated
+ */
+ MultiplicityPredicate createMultiplicityPredicate();
+
+ /**
+ * Returns a new object of class '<em>Is Set Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Is Set Predicate</em>'.
+ * @generated
+ */
+ IsSetPredicate createIsSetPredicate();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FilterexprPackage getFilterexprPackage();
+
+} //FilterexprFactory
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprPackage.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprPackage.java
new file mode 100755
index 0000000..c507f74
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/FilterexprPackage.java
@@ -0,0 +1,1559 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.FilterexprFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface FilterexprPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "booleanexpr";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.booleanexpr";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "booleanexpr";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FilterexprPackage eINSTANCE = org.genivi.booleanexpr.impl.FilterexprPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.BooleanExpressionImpl <em>Boolean Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.BooleanExpressionImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getBooleanExpression()
+ * @generated
+ */
+ int BOOLEAN_EXPRESSION = 0;
+
+ /**
+ * The number of structural features of the '<em>Boolean Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_EXPRESSION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.UnaryExpressionImpl <em>Unary Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.UnaryExpressionImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getUnaryExpression()
+ * @generated
+ */
+ int UNARY_EXPRESSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNARY_EXPRESSION__UNARY_OPERATOR = BOOLEAN_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNARY_EXPRESSION__EXPRESSION = BOOLEAN_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Unary Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNARY_EXPRESSION_FEATURE_COUNT = BOOLEAN_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.PredicateImpl <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.PredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getPredicate()
+ * @generated
+ */
+ int PREDICATE = 2;
+
+ /**
+ * The number of structural features of the '<em>Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE_FEATURE_COUNT = BOOLEAN_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.DyadicExpressionImpl <em>Dyadic Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.DyadicExpressionImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getDyadicExpression()
+ * @generated
+ */
+ int DYADIC_EXPRESSION = 3;
+
+ /**
+ * The feature id for the '<em><b>Logical Operator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DYADIC_EXPRESSION__LOGICAL_OPERATOR = BOOLEAN_EXPRESSION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Left Hand Term</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DYADIC_EXPRESSION__LEFT_HAND_TERM = BOOLEAN_EXPRESSION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Right Hand Term</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DYADIC_EXPRESSION__RIGHT_HAND_TERM = BOOLEAN_EXPRESSION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Dyadic Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DYADIC_EXPRESSION_FEATURE_COUNT = BOOLEAN_EXPRESSION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.ComparisonPredicateImpl <em>Comparison Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.ComparisonPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getComparisonPredicate()
+ * @generated
+ */
+ int COMPARISON_PREDICATE = 4;
+
+ /**
+ * The feature id for the '<em><b>Literal</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_PREDICATE__LITERAL = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_PREDICATE__ATTRIBUTE = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Comparison Operator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_PREDICATE__COMPARISON_OPERATOR = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Comparison Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARISON_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.InPredicateImpl <em>In Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.InPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getInPredicate()
+ * @generated
+ */
+ int IN_PREDICATE = 5;
+
+ /**
+ * The feature id for the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IN_PREDICATE__ATTRIBUTE = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>In Operator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IN_PREDICATE__IN_OPERATOR = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Literals</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IN_PREDICATE__LITERALS = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>In Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IN_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.LiteralImpl <em>Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.LiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getLiteral()
+ * @generated
+ */
+ int LITERAL = 6;
+
+ /**
+ * The number of structural features of the '<em>Literal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LITERAL_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.SignedIntegerLiteralImpl <em>Signed Integer Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.SignedIntegerLiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getSignedIntegerLiteral()
+ * @generated
+ */
+ int SIGNED_INTEGER_LITERAL = 7;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNED_INTEGER_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Signed Integer Literal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGNED_INTEGER_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.StringLiteralImpl <em>String Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.StringLiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getStringLiteral()
+ * @generated
+ */
+ int STRING_LITERAL = 8;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>String Literal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.BooleanLiteralImpl <em>Boolean Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.BooleanLiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getBooleanLiteral()
+ * @generated
+ */
+ int BOOLEAN_LITERAL = 9;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Boolean Literal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.SubClassPredicateImpl <em>Sub Class Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.SubClassPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getSubClassPredicate()
+ * @generated
+ */
+ int SUB_CLASS_PREDICATE = 10;
+
+ /**
+ * The feature id for the '<em><b>Sub Class Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Sub Class Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Sub Class Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SUB_CLASS_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.ClassAttributeImpl <em>Class Attribute</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.ClassAttributeImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getClassAttribute()
+ * @generated
+ */
+ int CLASS_ATTRIBUTE = 11;
+
+ /**
+ * The feature id for the '<em><b>Attribute Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_ATTRIBUTE__ATTRIBUTE_NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Meta Operator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_ATTRIBUTE__META_OPERATOR = 1;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_ATTRIBUTE__INDEX = 2;
+
+ /**
+ * The number of structural features of the '<em>Class Attribute</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_ATTRIBUTE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.DownCastPredicateImpl <em>Down Cast Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.DownCastPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getDownCastPredicate()
+ * @generated
+ */
+ int DOWN_CAST_PREDICATE = 12;
+
+ /**
+ * The feature id for the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOWN_CAST_PREDICATE__CLASS_NAME = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOWN_CAST_PREDICATE__EXPRESSION = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Down Cast Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOWN_CAST_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.MultiplicityPredicateImpl <em>Multiplicity Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.MultiplicityPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getMultiplicityPredicate()
+ * @generated
+ */
+ int MULTIPLICITY_PREDICATE = 13;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICITY_PREDICATE__EXPRESSION = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICITY_PREDICATE__ATTRIBUTE = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>List Operator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICITY_PREDICATE__LIST_OPERATOR = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Multiplicity Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIPLICITY_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.impl.IsSetPredicateImpl <em>Is Set Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.IsSetPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getIsSetPredicate()
+ * @generated
+ */
+ int IS_SET_PREDICATE = 14;
+
+ /**
+ * The feature id for the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SET_PREDICATE__ATTRIBUTE = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Is Set Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IS_SET_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.DyadicLogicalOperator <em>Dyadic Logical Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.DyadicLogicalOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getDyadicLogicalOperator()
+ * @generated
+ */
+ int DYADIC_LOGICAL_OPERATOR = 15;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.UnaryLogicalOperator <em>Unary Logical Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.UnaryLogicalOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getUnaryLogicalOperator()
+ * @generated
+ */
+ int UNARY_LOGICAL_OPERATOR = 16;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.ComparisonOperator <em>Comparison Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.ComparisonOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getComparisonOperator()
+ * @generated
+ */
+ int COMPARISON_OPERATOR = 17;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.ListOperator <em>List Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.ListOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getListOperator()
+ * @generated
+ */
+ int LIST_OPERATOR = 18;
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.InOperator <em>In Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.InOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getInOperator()
+ * @generated
+ */
+ int IN_OPERATOR = 19;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.booleanexpr.MetaOperator <em>Meta Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.MetaOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getMetaOperator()
+ * @generated
+ */
+ int META_OPERATOR = 20;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.BooleanExpression <em>Boolean Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Boolean Expression</em>'.
+ * @see org.genivi.booleanexpr.BooleanExpression
+ * @generated
+ */
+ EClass getBooleanExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.UnaryExpression <em>Unary Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Unary Expression</em>'.
+ * @see org.genivi.booleanexpr.UnaryExpression
+ * @generated
+ */
+ EClass getUnaryExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.UnaryExpression#getUnaryOperator <em>Unary Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unary Operator</em>'.
+ * @see org.genivi.booleanexpr.UnaryExpression#getUnaryOperator()
+ * @see #getUnaryExpression()
+ * @generated
+ */
+ EAttribute getUnaryExpression_UnaryOperator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.UnaryExpression#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.genivi.booleanexpr.UnaryExpression#getExpression()
+ * @see #getUnaryExpression()
+ * @generated
+ */
+ EReference getUnaryExpression_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Predicate</em>'.
+ * @see org.genivi.booleanexpr.Predicate
+ * @generated
+ */
+ EClass getPredicate();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.DyadicExpression <em>Dyadic Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dyadic Expression</em>'.
+ * @see org.genivi.booleanexpr.DyadicExpression
+ * @generated
+ */
+ EClass getDyadicExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.DyadicExpression#getLogicalOperator <em>Logical Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Logical Operator</em>'.
+ * @see org.genivi.booleanexpr.DyadicExpression#getLogicalOperator()
+ * @see #getDyadicExpression()
+ * @generated
+ */
+ EAttribute getDyadicExpression_LogicalOperator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.DyadicExpression#getLeftHandTerm <em>Left Hand Term</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Left Hand Term</em>'.
+ * @see org.genivi.booleanexpr.DyadicExpression#getLeftHandTerm()
+ * @see #getDyadicExpression()
+ * @generated
+ */
+ EReference getDyadicExpression_LeftHandTerm();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.DyadicExpression#getRightHandTerm <em>Right Hand Term</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Right Hand Term</em>'.
+ * @see org.genivi.booleanexpr.DyadicExpression#getRightHandTerm()
+ * @see #getDyadicExpression()
+ * @generated
+ */
+ EReference getDyadicExpression_RightHandTerm();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.ComparisonPredicate <em>Comparison Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Comparison Predicate</em>'.
+ * @see org.genivi.booleanexpr.ComparisonPredicate
+ * @generated
+ */
+ EClass getComparisonPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.ComparisonPredicate#getComparisonOperator <em>Comparison Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Comparison Operator</em>'.
+ * @see org.genivi.booleanexpr.ComparisonPredicate#getComparisonOperator()
+ * @see #getComparisonPredicate()
+ * @generated
+ */
+ EAttribute getComparisonPredicate_ComparisonOperator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.ComparisonPredicate#getLiteral <em>Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Literal</em>'.
+ * @see org.genivi.booleanexpr.ComparisonPredicate#getLiteral()
+ * @see #getComparisonPredicate()
+ * @generated
+ */
+ EReference getComparisonPredicate_Literal();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.ComparisonPredicate#getAttribute <em>Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Attribute</em>'.
+ * @see org.genivi.booleanexpr.ComparisonPredicate#getAttribute()
+ * @see #getComparisonPredicate()
+ * @generated
+ */
+ EReference getComparisonPredicate_Attribute();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.InPredicate <em>In Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>In Predicate</em>'.
+ * @see org.genivi.booleanexpr.InPredicate
+ * @generated
+ */
+ EClass getInPredicate();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.InPredicate#getAttribute <em>Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Attribute</em>'.
+ * @see org.genivi.booleanexpr.InPredicate#getAttribute()
+ * @see #getInPredicate()
+ * @generated
+ */
+ EReference getInPredicate_Attribute();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.InPredicate#getInOperator <em>In Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>In Operator</em>'.
+ * @see org.genivi.booleanexpr.InPredicate#getInOperator()
+ * @see #getInPredicate()
+ * @generated
+ */
+ EAttribute getInPredicate_InOperator();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.booleanexpr.InPredicate#getLiterals <em>Literals</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Literals</em>'.
+ * @see org.genivi.booleanexpr.InPredicate#getLiterals()
+ * @see #getInPredicate()
+ * @generated
+ */
+ EReference getInPredicate_Literals();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.Literal <em>Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Literal</em>'.
+ * @see org.genivi.booleanexpr.Literal
+ * @generated
+ */
+ EClass getLiteral();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.SignedIntegerLiteral <em>Signed Integer Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Signed Integer Literal</em>'.
+ * @see org.genivi.booleanexpr.SignedIntegerLiteral
+ * @generated
+ */
+ EClass getSignedIntegerLiteral();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.SignedIntegerLiteral#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.genivi.booleanexpr.SignedIntegerLiteral#getValue()
+ * @see #getSignedIntegerLiteral()
+ * @generated
+ */
+ EAttribute getSignedIntegerLiteral_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.StringLiteral <em>String Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>String Literal</em>'.
+ * @see org.genivi.booleanexpr.StringLiteral
+ * @generated
+ */
+ EClass getStringLiteral();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.StringLiteral#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.genivi.booleanexpr.StringLiteral#getValue()
+ * @see #getStringLiteral()
+ * @generated
+ */
+ EAttribute getStringLiteral_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.BooleanLiteral <em>Boolean Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Boolean Literal</em>'.
+ * @see org.genivi.booleanexpr.BooleanLiteral
+ * @generated
+ */
+ EClass getBooleanLiteral();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.BooleanLiteral#isValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.genivi.booleanexpr.BooleanLiteral#isValue()
+ * @see #getBooleanLiteral()
+ * @generated
+ */
+ EAttribute getBooleanLiteral_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.SubClassPredicate <em>Sub Class Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sub Class Predicate</em>'.
+ * @see org.genivi.booleanexpr.SubClassPredicate
+ * @generated
+ */
+ EClass getSubClassPredicate();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassExpression <em>Sub Class Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sub Class Expression</em>'.
+ * @see org.genivi.booleanexpr.SubClassPredicate#getSubClassExpression()
+ * @see #getSubClassPredicate()
+ * @generated
+ */
+ EReference getSubClassPredicate_SubClassExpression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassAttribute <em>Sub Class Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sub Class Attribute</em>'.
+ * @see org.genivi.booleanexpr.SubClassPredicate#getSubClassAttribute()
+ * @see #getSubClassPredicate()
+ * @generated
+ */
+ EReference getSubClassPredicate_SubClassAttribute();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.ClassAttribute <em>Class Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Class Attribute</em>'.
+ * @see org.genivi.booleanexpr.ClassAttribute
+ * @generated
+ */
+ EClass getClassAttribute();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.ClassAttribute#getAttributeName <em>Attribute Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Attribute Name</em>'.
+ * @see org.genivi.booleanexpr.ClassAttribute#getAttributeName()
+ * @see #getClassAttribute()
+ * @generated
+ */
+ EAttribute getClassAttribute_AttributeName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.ClassAttribute#getMetaOperator <em>Meta Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Meta Operator</em>'.
+ * @see org.genivi.booleanexpr.ClassAttribute#getMetaOperator()
+ * @see #getClassAttribute()
+ * @generated
+ */
+ EAttribute getClassAttribute_MetaOperator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.ClassAttribute#getIndex <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Index</em>'.
+ * @see org.genivi.booleanexpr.ClassAttribute#getIndex()
+ * @see #getClassAttribute()
+ * @generated
+ */
+ EAttribute getClassAttribute_Index();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.DownCastPredicate <em>Down Cast Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Down Cast Predicate</em>'.
+ * @see org.genivi.booleanexpr.DownCastPredicate
+ * @generated
+ */
+ EClass getDownCastPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.DownCastPredicate#getClassName <em>Class Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Class Name</em>'.
+ * @see org.genivi.booleanexpr.DownCastPredicate#getClassName()
+ * @see #getDownCastPredicate()
+ * @generated
+ */
+ EAttribute getDownCastPredicate_ClassName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.DownCastPredicate#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.genivi.booleanexpr.DownCastPredicate#getExpression()
+ * @see #getDownCastPredicate()
+ * @generated
+ */
+ EReference getDownCastPredicate_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.MultiplicityPredicate <em>Multiplicity Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multiplicity Predicate</em>'.
+ * @see org.genivi.booleanexpr.MultiplicityPredicate
+ * @generated
+ */
+ EClass getMultiplicityPredicate();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.MultiplicityPredicate#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.genivi.booleanexpr.MultiplicityPredicate#getExpression()
+ * @see #getMultiplicityPredicate()
+ * @generated
+ */
+ EReference getMultiplicityPredicate_Expression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.booleanexpr.MultiplicityPredicate#getListOperator <em>List Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>List Operator</em>'.
+ * @see org.genivi.booleanexpr.MultiplicityPredicate#getListOperator()
+ * @see #getMultiplicityPredicate()
+ * @generated
+ */
+ EAttribute getMultiplicityPredicate_ListOperator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.MultiplicityPredicate#getAttribute <em>Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Attribute</em>'.
+ * @see org.genivi.booleanexpr.MultiplicityPredicate#getAttribute()
+ * @see #getMultiplicityPredicate()
+ * @generated
+ */
+ EReference getMultiplicityPredicate_Attribute();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.booleanexpr.IsSetPredicate <em>Is Set Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Is Set Predicate</em>'.
+ * @see org.genivi.booleanexpr.IsSetPredicate
+ * @generated
+ */
+ EClass getIsSetPredicate();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.booleanexpr.IsSetPredicate#getAttribute <em>Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Attribute</em>'.
+ * @see org.genivi.booleanexpr.IsSetPredicate#getAttribute()
+ * @see #getIsSetPredicate()
+ * @generated
+ */
+ EReference getIsSetPredicate_Attribute();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.booleanexpr.DyadicLogicalOperator <em>Dyadic Logical Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Dyadic Logical Operator</em>'.
+ * @see org.genivi.booleanexpr.DyadicLogicalOperator
+ * @generated
+ */
+ EEnum getDyadicLogicalOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.booleanexpr.UnaryLogicalOperator <em>Unary Logical Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Unary Logical Operator</em>'.
+ * @see org.genivi.booleanexpr.UnaryLogicalOperator
+ * @generated
+ */
+ EEnum getUnaryLogicalOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.booleanexpr.ComparisonOperator <em>Comparison Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Comparison Operator</em>'.
+ * @see org.genivi.booleanexpr.ComparisonOperator
+ * @generated
+ */
+ EEnum getComparisonOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.booleanexpr.ListOperator <em>List Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>List Operator</em>'.
+ * @see org.genivi.booleanexpr.ListOperator
+ * @generated
+ */
+ EEnum getListOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.booleanexpr.InOperator <em>In Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>In Operator</em>'.
+ * @see org.genivi.booleanexpr.InOperator
+ * @generated
+ */
+ EEnum getInOperator();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.booleanexpr.MetaOperator <em>Meta Operator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Meta Operator</em>'.
+ * @see org.genivi.booleanexpr.MetaOperator
+ * @generated
+ */
+ EEnum getMetaOperator();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ FilterexprFactory getFilterexprFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.BooleanExpressionImpl <em>Boolean Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.BooleanExpressionImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getBooleanExpression()
+ * @generated
+ */
+ EClass BOOLEAN_EXPRESSION = eINSTANCE.getBooleanExpression();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.UnaryExpressionImpl <em>Unary Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.UnaryExpressionImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getUnaryExpression()
+ * @generated
+ */
+ EClass UNARY_EXPRESSION = eINSTANCE.getUnaryExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Unary Operator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UNARY_EXPRESSION__UNARY_OPERATOR = eINSTANCE.getUnaryExpression_UnaryOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference UNARY_EXPRESSION__EXPRESSION = eINSTANCE.getUnaryExpression_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.PredicateImpl <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.PredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getPredicate()
+ * @generated
+ */
+ EClass PREDICATE = eINSTANCE.getPredicate();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.DyadicExpressionImpl <em>Dyadic Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.DyadicExpressionImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getDyadicExpression()
+ * @generated
+ */
+ EClass DYADIC_EXPRESSION = eINSTANCE.getDyadicExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Logical Operator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DYADIC_EXPRESSION__LOGICAL_OPERATOR = eINSTANCE.getDyadicExpression_LogicalOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Left Hand Term</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DYADIC_EXPRESSION__LEFT_HAND_TERM = eINSTANCE.getDyadicExpression_LeftHandTerm();
+
+ /**
+ * The meta object literal for the '<em><b>Right Hand Term</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DYADIC_EXPRESSION__RIGHT_HAND_TERM = eINSTANCE.getDyadicExpression_RightHandTerm();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.ComparisonPredicateImpl <em>Comparison Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.ComparisonPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getComparisonPredicate()
+ * @generated
+ */
+ EClass COMPARISON_PREDICATE = eINSTANCE.getComparisonPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Comparison Operator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMPARISON_PREDICATE__COMPARISON_OPERATOR = eINSTANCE.getComparisonPredicate_ComparisonOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Literal</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPARISON_PREDICATE__LITERAL = eINSTANCE.getComparisonPredicate_Literal();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPARISON_PREDICATE__ATTRIBUTE = eINSTANCE.getComparisonPredicate_Attribute();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.InPredicateImpl <em>In Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.InPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getInPredicate()
+ * @generated
+ */
+ EClass IN_PREDICATE = eINSTANCE.getInPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IN_PREDICATE__ATTRIBUTE = eINSTANCE.getInPredicate_Attribute();
+
+ /**
+ * The meta object literal for the '<em><b>In Operator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute IN_PREDICATE__IN_OPERATOR = eINSTANCE.getInPredicate_InOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Literals</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IN_PREDICATE__LITERALS = eINSTANCE.getInPredicate_Literals();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.LiteralImpl <em>Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.LiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getLiteral()
+ * @generated
+ */
+ EClass LITERAL = eINSTANCE.getLiteral();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.SignedIntegerLiteralImpl <em>Signed Integer Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.SignedIntegerLiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getSignedIntegerLiteral()
+ * @generated
+ */
+ EClass SIGNED_INTEGER_LITERAL = eINSTANCE.getSignedIntegerLiteral();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SIGNED_INTEGER_LITERAL__VALUE = eINSTANCE.getSignedIntegerLiteral_Value();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.StringLiteralImpl <em>String Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.StringLiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getStringLiteral()
+ * @generated
+ */
+ EClass STRING_LITERAL = eINSTANCE.getStringLiteral();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_LITERAL__VALUE = eINSTANCE.getStringLiteral_Value();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.BooleanLiteralImpl <em>Boolean Literal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.BooleanLiteralImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getBooleanLiteral()
+ * @generated
+ */
+ EClass BOOLEAN_LITERAL = eINSTANCE.getBooleanLiteral();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOLEAN_LITERAL__VALUE = eINSTANCE.getBooleanLiteral_Value();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.SubClassPredicateImpl <em>Sub Class Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.SubClassPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getSubClassPredicate()
+ * @generated
+ */
+ EClass SUB_CLASS_PREDICATE = eINSTANCE.getSubClassPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Class Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION = eINSTANCE.getSubClassPredicate_SubClassExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Class Attribute</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE = eINSTANCE.getSubClassPredicate_SubClassAttribute();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.ClassAttributeImpl <em>Class Attribute</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.ClassAttributeImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getClassAttribute()
+ * @generated
+ */
+ EClass CLASS_ATTRIBUTE = eINSTANCE.getClassAttribute();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLASS_ATTRIBUTE__ATTRIBUTE_NAME = eINSTANCE.getClassAttribute_AttributeName();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Operator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLASS_ATTRIBUTE__META_OPERATOR = eINSTANCE.getClassAttribute_MetaOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Index</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CLASS_ATTRIBUTE__INDEX = eINSTANCE.getClassAttribute_Index();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.DownCastPredicateImpl <em>Down Cast Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.DownCastPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getDownCastPredicate()
+ * @generated
+ */
+ EClass DOWN_CAST_PREDICATE = eINSTANCE.getDownCastPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOWN_CAST_PREDICATE__CLASS_NAME = eINSTANCE.getDownCastPredicate_ClassName();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOWN_CAST_PREDICATE__EXPRESSION = eINSTANCE.getDownCastPredicate_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.MultiplicityPredicateImpl <em>Multiplicity Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.MultiplicityPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getMultiplicityPredicate()
+ * @generated
+ */
+ EClass MULTIPLICITY_PREDICATE = eINSTANCE.getMultiplicityPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTIPLICITY_PREDICATE__EXPRESSION = eINSTANCE.getMultiplicityPredicate_Expression();
+
+ /**
+ * The meta object literal for the '<em><b>List Operator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIPLICITY_PREDICATE__LIST_OPERATOR = eINSTANCE.getMultiplicityPredicate_ListOperator();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTIPLICITY_PREDICATE__ATTRIBUTE = eINSTANCE.getMultiplicityPredicate_Attribute();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.impl.IsSetPredicateImpl <em>Is Set Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.impl.IsSetPredicateImpl
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getIsSetPredicate()
+ * @generated
+ */
+ EClass IS_SET_PREDICATE = eINSTANCE.getIsSetPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference IS_SET_PREDICATE__ATTRIBUTE = eINSTANCE.getIsSetPredicate_Attribute();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.DyadicLogicalOperator <em>Dyadic Logical Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.DyadicLogicalOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getDyadicLogicalOperator()
+ * @generated
+ */
+ EEnum DYADIC_LOGICAL_OPERATOR = eINSTANCE.getDyadicLogicalOperator();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.UnaryLogicalOperator <em>Unary Logical Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.UnaryLogicalOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getUnaryLogicalOperator()
+ * @generated
+ */
+ EEnum UNARY_LOGICAL_OPERATOR = eINSTANCE.getUnaryLogicalOperator();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.ComparisonOperator <em>Comparison Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.ComparisonOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getComparisonOperator()
+ * @generated
+ */
+ EEnum COMPARISON_OPERATOR = eINSTANCE.getComparisonOperator();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.ListOperator <em>List Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.ListOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getListOperator()
+ * @generated
+ */
+ EEnum LIST_OPERATOR = eINSTANCE.getListOperator();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.InOperator <em>In Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.InOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getInOperator()
+ * @generated
+ */
+ EEnum IN_OPERATOR = eINSTANCE.getInOperator();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.booleanexpr.MetaOperator <em>Meta Operator</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.MetaOperator
+ * @see org.genivi.booleanexpr.impl.FilterexprPackageImpl#getMetaOperator()
+ * @generated
+ */
+ EEnum META_OPERATOR = eINSTANCE.getMetaOperator();
+
+ }
+
+} //FilterexprPackage
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InOperator.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InOperator.java
new file mode 100755
index 0000000..390aec2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InOperator.java
@@ -0,0 +1,218 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>In Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This enumeration defines the operators for an InPredicate.
+ * <!-- end-model-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage#getInOperator()
+ * @model
+ * @generated
+ */
+public enum InOperator implements Enumerator {
+ /**
+ * The '<em><b>IN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IN_VALUE
+ * @generated
+ * @ordered
+ */
+ IN(0, "IN", "IN"),
+
+ /**
+ * The '<em><b>NOT IN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NOT_IN_VALUE
+ * @generated
+ * @ordered
+ */
+ NOT_IN(1, "NOT_IN", "NOT_IN");
+
+ /**
+ * The '<em><b>IN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IN_VALUE = 0;
+
+ /**
+ * The '<em><b>NOT IN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NOT IN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NOT_IN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NOT_IN_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>In Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final InOperator[] VALUES_ARRAY =
+ new InOperator[] {
+ IN,
+ NOT_IN,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>In Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<InOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>In Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>In Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>In Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InOperator get(int value) {
+ switch (value) {
+ case IN_VALUE: return IN;
+ case NOT_IN_VALUE: return NOT_IN;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private InOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //InOperator
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InPredicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InPredicate.java
new file mode 100755
index 0000000..abd13a0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/InPredicate.java
@@ -0,0 +1,186 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>In Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This predicate checks whether an attribute value is in, or not in, a set of values.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.InPredicate#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.InPredicate#getInOperator <em>In Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.InPredicate#getLiterals <em>Literals</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getInPredicate()
+ * @model
+ * @generated
+ */
+public interface InPredicate extends Predicate {
+
+ /**
+ * Returns the value of the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute</em>' containment reference.
+ * @see #isSetAttribute()
+ * @see #unsetAttribute()
+ * @see #setAttribute(ClassAttribute)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getInPredicate_Attribute()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ ClassAttribute getAttribute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.InPredicate#getAttribute <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute</em>' containment reference.
+ * @see #isSetAttribute()
+ * @see #unsetAttribute()
+ * @see #getAttribute()
+ * @generated
+ */
+ void setAttribute(ClassAttribute value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.InPredicate#getAttribute <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAttribute()
+ * @see #getAttribute()
+ * @see #setAttribute(ClassAttribute)
+ * @generated
+ */
+ void unsetAttribute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.InPredicate#getAttribute <em>Attribute</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Attribute</em>' containment reference is set.
+ * @see #unsetAttribute()
+ * @see #getAttribute()
+ * @see #setAttribute(ClassAttribute)
+ * @generated
+ */
+ boolean isSetAttribute();
+
+ /**
+ * Returns the value of the '<em><b>In Operator</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.booleanexpr.InOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In Operator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>In Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.InOperator
+ * @see #isSetInOperator()
+ * @see #unsetInOperator()
+ * @see #setInOperator(InOperator)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getInPredicate_InOperator()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ InOperator getInOperator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.InPredicate#getInOperator <em>In Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>In Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.InOperator
+ * @see #isSetInOperator()
+ * @see #unsetInOperator()
+ * @see #getInOperator()
+ * @generated
+ */
+ void setInOperator(InOperator value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.InPredicate#getInOperator <em>In Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetInOperator()
+ * @see #getInOperator()
+ * @see #setInOperator(InOperator)
+ * @generated
+ */
+ void unsetInOperator();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.InPredicate#getInOperator <em>In Operator</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>In Operator</em>' attribute is set.
+ * @see #unsetInOperator()
+ * @see #getInOperator()
+ * @see #setInOperator(InOperator)
+ * @generated
+ */
+ boolean isSetInOperator();
+
+ /**
+ * Returns the value of the '<em><b>Literals</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.booleanexpr.Literal}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Literals</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Literals</em>' containment reference list.
+ * @see #isSetLiterals()
+ * @see #unsetLiterals()
+ * @see org.genivi.booleanexpr.FilterexprPackage#getInPredicate_Literals()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Literal> getLiterals();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.InPredicate#getLiterals <em>Literals</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLiterals()
+ * @see #getLiterals()
+ * @generated
+ */
+ void unsetLiterals();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.InPredicate#getLiterals <em>Literals</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Literals</em>' containment reference list is set.
+ * @see #unsetLiterals()
+ * @see #getLiterals()
+ * @generated
+ */
+ boolean isSetLiterals();
+} // InPredicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/IsSetPredicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/IsSetPredicate.java
new file mode 100755
index 0000000..5b8ec7e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/IsSetPredicate.java
@@ -0,0 +1,60 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Set Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This predicate checks whether an optional value is set or not.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.IsSetPredicate#getAttribute <em>Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getIsSetPredicate()
+ * @model
+ * @generated
+ */
+public interface IsSetPredicate extends Predicate {
+ /**
+ * Returns the value of the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute</em>' containment reference.
+ * @see #setAttribute(ClassAttribute)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getIsSetPredicate_Attribute()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ ClassAttribute getAttribute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.IsSetPredicate#getAttribute <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute</em>' containment reference.
+ * @see #getAttribute()
+ * @generated
+ */
+ void setAttribute(ClassAttribute value);
+
+} // IsSetPredicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ListOperator.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ListOperator.java
new file mode 100755
index 0000000..1c966b1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/ListOperator.java
@@ -0,0 +1,243 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>List Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This enumeration defines the operators for a MultiplicityPredicate.
+ * <!-- end-model-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage#getListOperator()
+ * @model
+ * @generated
+ */
+public enum ListOperator implements Enumerator {
+ /**
+ * The '<em><b>ANY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ANY_VALUE
+ * @generated
+ * @ordered
+ */
+ ANY(0, "ANY", "ANY"),
+
+ /**
+ * The '<em><b>ALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALL_VALUE
+ * @generated
+ * @ordered
+ */
+ ALL(1, "ALL", "ALL"), /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(2, "NONE", "NONE");
+
+ /**
+ * The '<em><b>ANY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ANY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ANY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ANY_VALUE = 0;
+
+ /**
+ * The '<em><b>ALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALL_VALUE = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>List Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ListOperator[] VALUES_ARRAY =
+ new ListOperator[] {
+ ANY,
+ ALL,
+ NONE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>List Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ListOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>List Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ListOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ListOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>List Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ListOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ListOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>List Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ListOperator get(int value) {
+ switch (value) {
+ case ANY_VALUE: return ANY;
+ case ALL_VALUE: return ALL;
+ case NONE_VALUE: return NONE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ListOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ListOperator
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Literal.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Literal.java
new file mode 100755
index 0000000..cba102d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Literal.java
@@ -0,0 +1,25 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getLiteral()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Literal extends EObject {
+} // Literal
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MetaOperator.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MetaOperator.java
new file mode 100755
index 0000000..1093295
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MetaOperator.java
@@ -0,0 +1,188 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Meta Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage#getMetaOperator()
+ * @model
+ * @generated
+ */
+public enum MetaOperator implements Enumerator {
+ /**
+ * The '<em><b>SIZE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SIZE_VALUE
+ * @generated
+ * @ordered
+ */
+ SIZE(0, "SIZE", "SIZE");
+
+ /**
+ * The '<em><b>SIZE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SIZE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SIZE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SIZE_VALUE = 0;
+
+ /**
+ * An array of all the '<em><b>Meta Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MetaOperator[] VALUES_ARRAY =
+ new MetaOperator[] {
+ SIZE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Meta Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<MetaOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Meta Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MetaOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MetaOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Meta Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MetaOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MetaOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Meta Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MetaOperator get(int value) {
+ switch (value) {
+ case SIZE_VALUE: return SIZE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MetaOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //MetaOperator
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MultiplicityPredicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MultiplicityPredicate.java
new file mode 100755
index 0000000..f51bc0b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/MultiplicityPredicate.java
@@ -0,0 +1,194 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multiplicity Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.MultiplicityPredicate#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.MultiplicityPredicate#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.MultiplicityPredicate#getListOperator <em>List Operator</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getMultiplicityPredicate()
+ * @model
+ * @generated
+ */
+public interface MultiplicityPredicate extends Predicate {
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #setExpression(BooleanExpression)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getMultiplicityPredicate_Expression()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ BooleanExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(BooleanExpression value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpression()
+ * @see #getExpression()
+ * @see #setExpression(BooleanExpression)
+ * @generated
+ */
+ void unsetExpression();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getExpression <em>Expression</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expression</em>' containment reference is set.
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @see #setExpression(BooleanExpression)
+ * @generated
+ */
+ boolean isSetExpression();
+
+ /**
+ * Returns the value of the '<em><b>List Operator</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.booleanexpr.ListOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>List Operator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>List Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.ListOperator
+ * @see #isSetListOperator()
+ * @see #unsetListOperator()
+ * @see #setListOperator(ListOperator)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getMultiplicityPredicate_ListOperator()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ ListOperator getListOperator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getListOperator <em>List Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>List Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.ListOperator
+ * @see #isSetListOperator()
+ * @see #unsetListOperator()
+ * @see #getListOperator()
+ * @generated
+ */
+ void setListOperator(ListOperator value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getListOperator <em>List Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetListOperator()
+ * @see #getListOperator()
+ * @see #setListOperator(ListOperator)
+ * @generated
+ */
+ void unsetListOperator();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getListOperator <em>List Operator</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>List Operator</em>' attribute is set.
+ * @see #unsetListOperator()
+ * @see #getListOperator()
+ * @see #setListOperator(ListOperator)
+ * @generated
+ */
+ boolean isSetListOperator();
+
+ /**
+ * Returns the value of the '<em><b>Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute</em>' containment reference.
+ * @see #isSetAttribute()
+ * @see #unsetAttribute()
+ * @see #setAttribute(ClassAttribute)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getMultiplicityPredicate_Attribute()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ ClassAttribute getAttribute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getAttribute <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Attribute</em>' containment reference.
+ * @see #isSetAttribute()
+ * @see #unsetAttribute()
+ * @see #getAttribute()
+ * @generated
+ */
+ void setAttribute(ClassAttribute value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getAttribute <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAttribute()
+ * @see #getAttribute()
+ * @see #setAttribute(ClassAttribute)
+ * @generated
+ */
+ void unsetAttribute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.MultiplicityPredicate#getAttribute <em>Attribute</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Attribute</em>' containment reference is set.
+ * @see #unsetAttribute()
+ * @see #getAttribute()
+ * @see #setAttribute(ClassAttribute)
+ * @generated
+ */
+ boolean isSetAttribute();
+
+} // MultiplicityPredicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Predicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Predicate.java
new file mode 100755
index 0000000..7248fe4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/Predicate.java
@@ -0,0 +1,28 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This is the top level class for predicates.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getPredicate()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Predicate extends BooleanExpression {
+} // Predicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SignedIntegerLiteral.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SignedIntegerLiteral.java
new file mode 100755
index 0000000..263f1b7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SignedIntegerLiteral.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Signed Integer Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An optionally signed integer values.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.SignedIntegerLiteral#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getSignedIntegerLiteral()
+ * @model
+ * @generated
+ */
+public interface SignedIntegerLiteral extends Literal {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #isSetValue()
+ * @see #unsetValue()
+ * @see #setValue(long)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getSignedIntegerLiteral_Value()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ long getValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.SignedIntegerLiteral#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #isSetValue()
+ * @see #unsetValue()
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(long value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.SignedIntegerLiteral#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetValue()
+ * @see #getValue()
+ * @see #setValue(long)
+ * @generated
+ */
+ void unsetValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.SignedIntegerLiteral#getValue <em>Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Value</em>' attribute is set.
+ * @see #unsetValue()
+ * @see #getValue()
+ * @see #setValue(long)
+ * @generated
+ */
+ boolean isSetValue();
+
+} // SignedIntegerLiteral
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/StringLiteral.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/StringLiteral.java
new file mode 100755
index 0000000..e38e37f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/StringLiteral.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A String value.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.StringLiteral#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getStringLiteral()
+ * @model
+ * @generated
+ */
+public interface StringLiteral extends Literal {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #isSetValue()
+ * @see #unsetValue()
+ * @see #setValue(String)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getStringLiteral_Value()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.StringLiteral#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #isSetValue()
+ * @see #unsetValue()
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.StringLiteral#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetValue()
+ * @see #getValue()
+ * @see #setValue(String)
+ * @generated
+ */
+ void unsetValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.StringLiteral#getValue <em>Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Value</em>' attribute is set.
+ * @see #unsetValue()
+ * @see #getValue()
+ * @see #setValue(String)
+ * @generated
+ */
+ boolean isSetValue();
+
+} // StringLiteral
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SubClassPredicate.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SubClassPredicate.java
new file mode 100755
index 0000000..7e4e65f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/SubClassPredicate.java
@@ -0,0 +1,141 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sub Class Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This predicate is used to evaluate an expression on a subclass of the current class.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassExpression <em>Sub Class Expression</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassAttribute <em>Sub Class Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getSubClassPredicate()
+ * @model
+ * @generated
+ */
+public interface SubClassPredicate extends Predicate {
+ /**
+ * Returns the value of the '<em><b>Sub Class Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sub Class Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sub Class Expression</em>' containment reference.
+ * @see #isSetSubClassExpression()
+ * @see #unsetSubClassExpression()
+ * @see #setSubClassExpression(BooleanExpression)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getSubClassPredicate_SubClassExpression()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ BooleanExpression getSubClassExpression();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassExpression <em>Sub Class Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Class Expression</em>' containment reference.
+ * @see #isSetSubClassExpression()
+ * @see #unsetSubClassExpression()
+ * @see #getSubClassExpression()
+ * @generated
+ */
+ void setSubClassExpression(BooleanExpression value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassExpression <em>Sub Class Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubClassExpression()
+ * @see #getSubClassExpression()
+ * @see #setSubClassExpression(BooleanExpression)
+ * @generated
+ */
+ void unsetSubClassExpression();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassExpression <em>Sub Class Expression</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Class Expression</em>' containment reference is set.
+ * @see #unsetSubClassExpression()
+ * @see #getSubClassExpression()
+ * @see #setSubClassExpression(BooleanExpression)
+ * @generated
+ */
+ boolean isSetSubClassExpression();
+
+ /**
+ * Returns the value of the '<em><b>Sub Class Attribute</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sub Class Attribute</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sub Class Attribute</em>' containment reference.
+ * @see #isSetSubClassAttribute()
+ * @see #unsetSubClassAttribute()
+ * @see #setSubClassAttribute(ClassAttribute)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getSubClassPredicate_SubClassAttribute()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ ClassAttribute getSubClassAttribute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassAttribute <em>Sub Class Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Class Attribute</em>' containment reference.
+ * @see #isSetSubClassAttribute()
+ * @see #unsetSubClassAttribute()
+ * @see #getSubClassAttribute()
+ * @generated
+ */
+ void setSubClassAttribute(ClassAttribute value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassAttribute <em>Sub Class Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubClassAttribute()
+ * @see #getSubClassAttribute()
+ * @see #setSubClassAttribute(ClassAttribute)
+ * @generated
+ */
+ void unsetSubClassAttribute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.booleanexpr.SubClassPredicate#getSubClassAttribute <em>Sub Class Attribute</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Class Attribute</em>' containment reference is set.
+ * @see #unsetSubClassAttribute()
+ * @see #getSubClassAttribute()
+ * @see #setSubClassAttribute(ClassAttribute)
+ * @generated
+ */
+ boolean isSetSubClassAttribute();
+
+} // SubClassPredicate
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryExpression.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryExpression.java
new file mode 100755
index 0000000..f8dd628
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryExpression.java
@@ -0,0 +1,91 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>unary Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This is an expression of the form UnaryLogicalOperator 'expression', like: NOT 'expression'.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.UnaryExpression#getUnaryOperator <em>Unary Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.UnaryExpression#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.booleanexpr.FilterexprPackage#getUnaryExpression()
+ * @model
+ * @generated
+ */
+public interface UnaryExpression extends BooleanExpression {
+ /**
+ * Returns the value of the '<em><b>Unary Operator</b></em>' attribute.
+ * The default value is <code>"NOT"</code>.
+ * The literals are from the enumeration {@link org.genivi.booleanexpr.UnaryLogicalOperator}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unary Operator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unary Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.UnaryLogicalOperator
+ * @see #setUnaryOperator(UnaryLogicalOperator)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getUnaryExpression_UnaryOperator()
+ * @model default="NOT" required="true"
+ * @generated
+ */
+ UnaryLogicalOperator getUnaryOperator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.UnaryExpression#getUnaryOperator <em>Unary Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unary Operator</em>' attribute.
+ * @see org.genivi.booleanexpr.UnaryLogicalOperator
+ * @see #getUnaryOperator()
+ * @generated
+ */
+ void setUnaryOperator(UnaryLogicalOperator value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(BooleanExpression)
+ * @see org.genivi.booleanexpr.FilterexprPackage#getUnaryExpression_Expression()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ BooleanExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.genivi.booleanexpr.UnaryExpression#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(BooleanExpression value);
+
+} // unaryExpression
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryLogicalOperator.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryLogicalOperator.java
new file mode 100755
index 0000000..fc5b01a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/UnaryLogicalOperator.java
@@ -0,0 +1,191 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Unary Logical Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This enumeration defines the operators for UnaryExpressions.
+ * <!-- end-model-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage#getUnaryLogicalOperator()
+ * @model
+ * @generated
+ */
+public enum UnaryLogicalOperator implements Enumerator {
+ /**
+ * The '<em><b>NOT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NOT_VALUE
+ * @generated
+ * @ordered
+ */
+ NOT(0, "NOT", "NOT");
+
+ /**
+ * The '<em><b>NOT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NOT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NOT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NOT_VALUE = 0;
+
+ /**
+ * An array of all the '<em><b>Unary Logical Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final UnaryLogicalOperator[] VALUES_ARRAY =
+ new UnaryLogicalOperator[] {
+ NOT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Unary Logical Operator</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<UnaryLogicalOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Unary Logical Operator</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UnaryLogicalOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UnaryLogicalOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Unary Logical Operator</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UnaryLogicalOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UnaryLogicalOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Unary Logical Operator</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UnaryLogicalOperator get(int value) {
+ switch (value) {
+ case NOT_VALUE: return NOT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private UnaryLogicalOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //UnaryLogicalOperator
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanExpressionImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanExpressionImpl.java
new file mode 100755
index 0000000..4069149
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanExpressionImpl.java
@@ -0,0 +1,67 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.FilterexprPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class BooleanExpressionImpl extends EObjectImpl implements BooleanExpression {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BooleanExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.BOOLEAN_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * Actually there should be no implementation at all here.
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ throw new UnsupportedOperationException();
+ }
+
+} //BooleanExpressionImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanLiteralImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanLiteralImpl.java
new file mode 100755
index 0000000..8c3e672
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/BooleanLiteralImpl.java
@@ -0,0 +1,204 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.booleanexpr.BooleanLiteral;
+import org.genivi.booleanexpr.FilterexprPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.BooleanLiteralImpl#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BooleanLiteralImpl extends LiteralImpl implements BooleanLiteral {
+ /**
+ * The default value of the '{@link #isValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VALUE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected boolean value = VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean valueESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BooleanLiteralImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.BOOLEAN_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(boolean newValue) {
+ boolean oldValue = value;
+ value = newValue;
+ boolean oldValueESet = valueESet;
+ valueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.BOOLEAN_LITERAL__VALUE, oldValue, value, !oldValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetValue() {
+ boolean oldValue = value;
+ boolean oldValueESet = valueESet;
+ value = VALUE_EDEFAULT;
+ valueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.BOOLEAN_LITERAL__VALUE, oldValue, VALUE_EDEFAULT, oldValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetValue() {
+ return valueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.BOOLEAN_LITERAL__VALUE:
+ return isValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.BOOLEAN_LITERAL__VALUE:
+ setValue((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.BOOLEAN_LITERAL__VALUE:
+ unsetValue();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.BOOLEAN_LITERAL__VALUE:
+ return isSetValue();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ if (valueESet)
+ result.append(value);
+ else
+ result.append("<unset>");
+
+ return result.toString();
+ }
+
+} //BooleanLiteralImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ClassAttributeImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ClassAttributeImpl.java
new file mode 100755
index 0000000..8844b49
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ClassAttributeImpl.java
@@ -0,0 +1,587 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.Enumerator;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.EEnumImpl;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.MetaOperator;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.ClassAttributeImpl#getAttributeName <em>Attribute Name</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.ClassAttributeImpl#getMetaOperator <em>Meta Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.ClassAttributeImpl#getIndex <em>Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassAttributeImpl extends EObjectImpl implements ClassAttribute {
+ /**
+ * The default value of the '{@link #getAttributeName() <em>Attribute Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttributeName()
+ * @generated
+ * @ordered
+ */
+ protected static final String ATTRIBUTE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAttributeName() <em>Attribute Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttributeName()
+ * @generated
+ * @ordered
+ */
+ protected String attributeName = ATTRIBUTE_NAME_EDEFAULT;
+
+ /**
+ * This is true if the Attribute Name attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean attributeNameESet;
+
+ /**
+ * The default value of the '{@link #getMetaOperator() <em>Meta Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final MetaOperator META_OPERATOR_EDEFAULT = MetaOperator.SIZE;
+
+ /**
+ * The cached value of the '{@link #getMetaOperator() <em>Meta Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaOperator()
+ * @generated
+ * @ordered
+ */
+ protected MetaOperator metaOperator = META_OPERATOR_EDEFAULT;
+
+ /**
+ * This is true if the Meta Operator attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean metaOperatorESet;
+
+ /**
+ * The default value of the '{@link #getIndex() <em>Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndex()
+ * @generated
+ * @ordered
+ */
+ protected static final int INDEX_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIndex() <em>Index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndex()
+ * @generated
+ * @ordered
+ */
+ protected int index = INDEX_EDEFAULT;
+
+ /**
+ * This is true if the Index attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean indexESet;
+
+ private final static Logger LOGGER = Logger.getLogger(ClassAttributeImpl.class.getName());
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassAttributeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.CLASS_ATTRIBUTE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAttributeName() {
+ return attributeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttributeName(String newAttributeName) {
+ String oldAttributeName = attributeName;
+ attributeName = newAttributeName;
+ boolean oldAttributeNameESet = attributeNameESet;
+ attributeNameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.CLASS_ATTRIBUTE__ATTRIBUTE_NAME, oldAttributeName, attributeName, !oldAttributeNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAttributeName() {
+ String oldAttributeName = attributeName;
+ boolean oldAttributeNameESet = attributeNameESet;
+ attributeName = ATTRIBUTE_NAME_EDEFAULT;
+ attributeNameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.CLASS_ATTRIBUTE__ATTRIBUTE_NAME, oldAttributeName, ATTRIBUTE_NAME_EDEFAULT, oldAttributeNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributeName() {
+ return attributeNameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MetaOperator getMetaOperator() {
+ return metaOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMetaOperator(MetaOperator newMetaOperator) {
+ MetaOperator oldMetaOperator = metaOperator;
+ metaOperator = newMetaOperator == null ? META_OPERATOR_EDEFAULT : newMetaOperator;
+ boolean oldMetaOperatorESet = metaOperatorESet;
+ metaOperatorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.CLASS_ATTRIBUTE__META_OPERATOR, oldMetaOperator, metaOperator, !oldMetaOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMetaOperator() {
+ MetaOperator oldMetaOperator = metaOperator;
+ boolean oldMetaOperatorESet = metaOperatorESet;
+ metaOperator = META_OPERATOR_EDEFAULT;
+ metaOperatorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.CLASS_ATTRIBUTE__META_OPERATOR, oldMetaOperator, META_OPERATOR_EDEFAULT, oldMetaOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMetaOperator() {
+ return metaOperatorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIndex() {
+ return index;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIndex(int newIndex) {
+ int oldIndex = index;
+ index = newIndex;
+ boolean oldIndexESet = indexESet;
+ indexESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.CLASS_ATTRIBUTE__INDEX, oldIndex, index, !oldIndexESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIndex() {
+ int oldIndex = index;
+ boolean oldIndexESet = indexESet;
+ index = INDEX_EDEFAULT;
+ indexESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.CLASS_ATTRIBUTE__INDEX, oldIndex, INDEX_EDEFAULT, oldIndexESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIndex() {
+ return indexESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.CLASS_ATTRIBUTE__ATTRIBUTE_NAME:
+ return getAttributeName();
+ case FilterexprPackage.CLASS_ATTRIBUTE__META_OPERATOR:
+ return getMetaOperator();
+ case FilterexprPackage.CLASS_ATTRIBUTE__INDEX:
+ return getIndex();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.CLASS_ATTRIBUTE__ATTRIBUTE_NAME:
+ setAttributeName((String)newValue);
+ return;
+ case FilterexprPackage.CLASS_ATTRIBUTE__META_OPERATOR:
+ setMetaOperator((MetaOperator)newValue);
+ return;
+ case FilterexprPackage.CLASS_ATTRIBUTE__INDEX:
+ setIndex((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.CLASS_ATTRIBUTE__ATTRIBUTE_NAME:
+ unsetAttributeName();
+ return;
+ case FilterexprPackage.CLASS_ATTRIBUTE__META_OPERATOR:
+ unsetMetaOperator();
+ return;
+ case FilterexprPackage.CLASS_ATTRIBUTE__INDEX:
+ unsetIndex();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.CLASS_ATTRIBUTE__ATTRIBUTE_NAME:
+ return isSetAttributeName();
+ case FilterexprPackage.CLASS_ATTRIBUTE__META_OPERATOR:
+ return isSetMetaOperator();
+ case FilterexprPackage.CLASS_ATTRIBUTE__INDEX:
+ return isSetIndex();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ if (attributeNameESet) {
+ result.append("@");
+ result.append(attributeName);
+
+ if (indexESet) {
+ result.append("[");
+ result.append(index);
+ result.append("]");
+ }
+
+ if (metaOperatorESet) {
+ result.append("^");
+ result.append(FilterExprUtil.metaOperatorToString(metaOperator));
+ }
+ } else {
+ result.append("<unset>");
+ }
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSet(EObject object) {
+ LOGGER.info("Looking for attribute name: " + attributeName);
+
+ boolean returnValue = false;
+
+ EStructuralFeature eStructuralFeature = getEStructuralFeatureForAttributeName(object, attributeName);
+
+ if (eStructuralFeature != null) {
+
+ LOGGER.info("Feature found: eType = " + eStructuralFeature.getEType());
+ returnValue = object.eIsSet(eStructuralFeature);
+ } else {
+ LOGGER.info("Feature NOT found");
+ throw new IllegalArgumentException("The object doesn't have an attribute named: " + attributeName);
+ }
+
+ LOGGER.info("<=" + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<?> getListValue(Object object) {
+ LOGGER.info("=> " + toString());
+
+ EList<?> returnValue = null;
+ EObject eObject = (EObject) object;
+
+ EStructuralFeature eStructuralFeature = getEStructuralFeatureForAttributeName(eObject, attributeName);
+
+ if (eStructuralFeature != null) {
+
+ LOGGER.fine("Feature found: eType = " + eStructuralFeature.getEType());
+ Object attributeValue = eObject.eGet(eStructuralFeature);
+
+ if (attributeValue instanceof EList<?>) {
+ returnValue = (EList<?>) attributeValue;
+ } else {
+ throw new IllegalArgumentException("The object is not a list ");
+ }
+ } else {
+ LOGGER.info("Feature NOT found");
+ throw new IllegalArgumentException("The object doesn't have an attribute named: " + attributeName);
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object getValue(Object object) {
+ LOGGER.info("=> " + toString());
+
+ Object returnValue = null;
+ EObject eObject = (EObject) object;
+ boolean indexHandled = false;
+
+ EStructuralFeature eStructuralFeature = getEStructuralFeatureForAttributeName(eObject, attributeName);
+
+ if (eStructuralFeature != null) {
+
+ LOGGER.info("Feature found: eType = " + eStructuralFeature.getEType());
+ Object attributeObject = eObject.eGet(eStructuralFeature);
+
+ if (attributeObject instanceof EList<?> && indexESet) {
+ attributeObject = ((EList<?>) attributeObject).get(index);
+ indexHandled = true;
+ }
+
+ if (attributeObject instanceof EList<?>) {
+ EList<?> eListObject = (EList<?>) attributeObject;
+ if (metaOperatorESet) {
+ switch (metaOperator) {
+ case SIZE:
+ returnValue = eListObject.size();
+ break;
+
+ default:
+ throw new IllegalArgumentException("Illegal meta operator: " + metaOperator);
+ }
+ } else {
+ throw new IllegalArgumentException("A list class attribute can only be used in combination with an index or a metaOperator.");
+ }
+ } else if (attributeObject instanceof EEnumImpl) {
+ LOGGER.info("EType is instance of EEnumImpl => Attribute is enum");
+
+ if (indexESet && !indexHandled) {
+ throw new IllegalArgumentException("An index can not be used on an enum.");
+ }
+
+ if (metaOperatorESet) {
+ throw new IllegalArgumentException("A meta operator cannot be used on an enum.");
+ }
+
+ Enumerator enumerator = (Enumerator) attributeObject;
+ returnValue = (Long) (long) enumerator.getValue();
+// } else if (eStructuralFeature.getEType().isInstance(Enumerator.class)) {
+ } else if (attributeObject instanceof Enumerator) {
+ LOGGER.info("EType isInstance is Enumerator => Attribute is enum");
+ LOGGER.info("EObject = " + eObject);
+ LOGGER.info("eStructuralFeature = " + eStructuralFeature);
+
+ if (indexESet && !indexHandled) {
+ throw new IllegalArgumentException("An index can not be used on an enum.");
+ }
+
+ if (metaOperatorESet) {
+ throw new IllegalArgumentException("A meta operator cannot be used on an enum.");
+ }
+
+ Enumerator enumerator = (Enumerator) attributeObject;
+ if (enumerator != null) {
+ returnValue = (Long) (long) enumerator.getValue();
+ }
+ } else {
+
+ if (indexESet && !indexHandled) {
+ throw new IllegalArgumentException("An index can only be used on a list.");
+ }
+
+ if (metaOperatorESet) {
+ throw new IllegalArgumentException("A meta operator can only be used on a list.");
+ }
+
+ returnValue = attributeObject;
+ }
+ } else {
+ LOGGER.info("Feature NOT found");
+ throw new IllegalArgumentException("The object doesn't have an attribute named: " + attributeName);
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EAttribute getEStructuralFeatureForAttributeByName(EObject object, String attributeName) {
+ for (EAttribute eAttribute: object.eClass().getEAllAttributes()) {
+ if (eAttribute.getName().equals(attributeName)) {
+ return eAttribute;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EStructuralFeature getEStructuralFeatureForAttributeName(EObject object, String attributeName) {
+ for (EStructuralFeature eStructuralFeature: object.eClass().getEAllStructuralFeatures()) {
+ if (eStructuralFeature.getName().equals(attributeName)) {
+ return eStructuralFeature;
+ }
+ }
+
+ return null;
+ }
+
+} //ClassAttributeImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ComparisonPredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ComparisonPredicateImpl.java
new file mode 100755
index 0000000..b8cb7fa
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/ComparisonPredicateImpl.java
@@ -0,0 +1,580 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.booleanexpr.BooleanLiteral;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.ComparisonOperator;
+import org.genivi.booleanexpr.ComparisonPredicate;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.Literal;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.booleanexpr.StringLiteral;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comparison Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.ComparisonPredicateImpl#getLiteral <em>Literal</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.ComparisonPredicateImpl#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.ComparisonPredicateImpl#getComparisonOperator <em>Comparison Operator</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ComparisonPredicateImpl extends PredicateImpl implements ComparisonPredicate {
+ private final static Logger LOGGER = Logger.getLogger(ComparisonPredicateImpl.class.getName());
+
+ /**
+ * The cached value of the '{@link #getLiteral() <em>Literal</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLiteral()
+ * @generated
+ * @ordered
+ */
+ protected Literal literal;
+
+ /**
+ * The cached value of the '{@link #getAttribute() <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttribute()
+ * @generated
+ * @ordered
+ */
+ protected ClassAttribute attribute;
+
+ /**
+ * The default value of the '{@link #getComparisonOperator() <em>Comparison Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComparisonOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final ComparisonOperator COMPARISON_OPERATOR_EDEFAULT = ComparisonOperator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getComparisonOperator() <em>Comparison Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComparisonOperator()
+ * @generated
+ * @ordered
+ */
+ protected ComparisonOperator comparisonOperator = COMPARISON_OPERATOR_EDEFAULT;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComparisonPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.COMPARISON_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComparisonOperator getComparisonOperator() {
+ return comparisonOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setComparisonOperator(ComparisonOperator newComparisonOperator) {
+ ComparisonOperator oldComparisonOperator = comparisonOperator;
+ comparisonOperator = newComparisonOperator == null ? COMPARISON_OPERATOR_EDEFAULT : newComparisonOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.COMPARISON_PREDICATE__COMPARISON_OPERATOR, oldComparisonOperator, comparisonOperator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Literal getLiteral() {
+ return literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLiteral(Literal newLiteral, NotificationChain msgs) {
+ Literal oldLiteral = literal;
+ literal = newLiteral;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.COMPARISON_PREDICATE__LITERAL, oldLiteral, newLiteral);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLiteral(Literal newLiteral) {
+ if (newLiteral != literal) {
+ NotificationChain msgs = null;
+ if (literal != null)
+ msgs = ((InternalEObject)literal).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.COMPARISON_PREDICATE__LITERAL, null, msgs);
+ if (newLiteral != null)
+ msgs = ((InternalEObject)newLiteral).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.COMPARISON_PREDICATE__LITERAL, null, msgs);
+ msgs = basicSetLiteral(newLiteral, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.COMPARISON_PREDICATE__LITERAL, newLiteral, newLiteral));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassAttribute getAttribute() {
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAttribute(ClassAttribute newAttribute, NotificationChain msgs) {
+ ClassAttribute oldAttribute = attribute;
+ attribute = newAttribute;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE, oldAttribute, newAttribute);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttribute(ClassAttribute newAttribute) {
+ if (newAttribute != attribute) {
+ NotificationChain msgs = null;
+ if (attribute != null)
+ msgs = ((InternalEObject)attribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE, null, msgs);
+ if (newAttribute != null)
+ msgs = ((InternalEObject)newAttribute).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE, null, msgs);
+ msgs = basicSetAttribute(newAttribute, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE, newAttribute, newAttribute));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.COMPARISON_PREDICATE__LITERAL:
+ return basicSetLiteral(null, msgs);
+ case FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE:
+ return basicSetAttribute(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.COMPARISON_PREDICATE__LITERAL:
+ return getLiteral();
+ case FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE:
+ return getAttribute();
+ case FilterexprPackage.COMPARISON_PREDICATE__COMPARISON_OPERATOR:
+ return getComparisonOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.COMPARISON_PREDICATE__LITERAL:
+ setLiteral((Literal)newValue);
+ return;
+ case FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE:
+ setAttribute((ClassAttribute)newValue);
+ return;
+ case FilterexprPackage.COMPARISON_PREDICATE__COMPARISON_OPERATOR:
+ setComparisonOperator((ComparisonOperator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.COMPARISON_PREDICATE__LITERAL:
+ setLiteral((Literal)null);
+ return;
+ case FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE:
+ setAttribute((ClassAttribute)null);
+ return;
+ case FilterexprPackage.COMPARISON_PREDICATE__COMPARISON_OPERATOR:
+ setComparisonOperator(COMPARISON_OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.COMPARISON_PREDICATE__LITERAL:
+ return literal != null;
+ case FilterexprPackage.COMPARISON_PREDICATE__ATTRIBUTE:
+ return attribute != null;
+ case FilterexprPackage.COMPARISON_PREDICATE__COMPARISON_OPERATOR:
+ return comparisonOperator != COMPARISON_OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ // Attribute
+ if (attribute != null) {
+ result.append(attribute.toString());
+ } else {
+ result.append("<attribute is null>");
+ }
+ result.append(' ');
+
+ // ComparisonOperator
+ result.append(FilterExprUtil.comparisonOperatorToString(comparisonOperator));
+ result.append(' ');
+
+ // Literal
+ if (literal != null) {
+ result.append(literal.toString());
+ } else {
+ result.append("<literal is null>");
+ }
+
+ return result.toString();
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ result.append(indent);
+ result.append(toString());
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+ boolean returnValue = false;
+ Object attributeObjectValue = null;
+ if (attribute != null) {
+ attributeObjectValue = attribute.getValue(object);
+ } else {
+ attributeObjectValue = object;
+ }
+
+ if (attributeObjectValue == null) {
+ returnValue = evaluateNull();
+ } else if (attributeObjectValue instanceof Boolean) {
+ returnValue = evaluateBoolean(attributeObjectValue);
+ } else if (attributeObjectValue instanceof Integer) {
+ returnValue = evaluateInteger(attributeObjectValue);
+ } else if (attributeObjectValue instanceof Long) {
+ returnValue = evaluateInteger(attributeObjectValue);
+ } else if (attributeObjectValue instanceof String) {
+ returnValue = evaluateString(attributeObjectValue);
+ } else {
+ throw new IllegalArgumentException("Unsupported attribute type in ComparisonPredicate. Attribute value = " + attributeObjectValue);
+ }
+
+ LOGGER.info("evaluate <= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateNull() {
+ LOGGER.info("=>");
+
+ Object literalValue = null;
+ if (literal instanceof BooleanLiteral) {
+ literalValue = ((BooleanLiteral) literal).isValue();
+ } else if (literal instanceof SignedIntegerLiteral) {
+ literalValue = ((SignedIntegerLiteral) literal).getValue();
+ } else if (literal instanceof StringLiteral) {
+ literalValue = ((StringLiteral) literal).getValue();
+ } else {
+ throw new IllegalArgumentException("Unsupported literal type in ComparisonPredicate. literal = " + literal);
+ }
+ boolean returnValue = false;
+
+ LOGGER.info("Applying: " + comparisonOperator + " on literalValue: " + literalValue);
+ switch (comparisonOperator) {
+ case EQUAL:
+ if (literalValue == null) {
+ returnValue = true;
+ }
+ break;
+
+ case GREATER_OR_EQUAL_THAN:
+ break;
+
+ case GREATER_THEN:
+ break;
+
+ case LESS_OR_EQUAL_THAN:
+ break;
+
+ case LESS_THAN:
+ break;
+
+ case NOT_EQUAL:
+ if (literalValue != null) {
+ returnValue = true;
+ }
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateBoolean(Object attributeObjectValue) {
+ LOGGER.info("=>");
+
+ if (!(literal instanceof BooleanLiteral)) {
+ throw new IllegalArgumentException("Incompatible types in ComparisonPredicate. Attribute value is Boolean, while literal is not a Boolean. Literal = " + literal);
+ }
+
+ boolean attributeValue = (Boolean) attributeObjectValue;
+ boolean literalValue = ((BooleanLiteral) literal).isValue();
+ boolean returnValue = false;
+
+ switch (comparisonOperator) {
+ case EQUAL:
+ LOGGER.info("Applying EQUAL");
+ returnValue = (attributeValue == literalValue);
+ break;
+
+ case GREATER_OR_EQUAL_THAN:
+ case GREATER_THEN:
+ case LESS_OR_EQUAL_THAN:
+ case LESS_THAN:
+ throw new IllegalArgumentException("Illegal comparisonOperator in ComparisonPredicate. comparisonOperator = " + comparisonOperator);
+
+ case NOT_EQUAL:
+ LOGGER.info("Applying NOT_EQUAL");
+ returnValue = (attributeValue != literalValue);
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateInteger(Object attributeObjectValue) {
+ LOGGER.info("=>");
+
+ if (!(literal instanceof SignedIntegerLiteral)) {
+ throw new IllegalArgumentException("Incompatible types in ComparisonPredicate. Attribute value is Integer, while literal is not a Integer. Literal = " + literal);
+ }
+
+ // TODO PRIO 2: Do we have to support null in expressions? I think so!
+ long attributeValue;
+ if (attributeObjectValue != null) {
+ if (attributeObjectValue instanceof Long) {
+ attributeValue = (Long) attributeObjectValue;
+ } else {
+ attributeValue = new Long(((Integer) attributeObjectValue).intValue());
+ }
+ } else {
+ throw new IllegalArgumentException("attributeObjectValue is null, which is currently not allowed");
+ }
+
+ long literalValue = ((SignedIntegerLiteral) literal).getValue();
+ boolean returnValue = false;
+
+ LOGGER.fine("Applying: " + comparisonOperator + " on attributevalue: " + attributeValue + ", and literalValue: " + literalValue);
+
+ switch (comparisonOperator) {
+ case EQUAL:
+ returnValue = (attributeValue == literalValue);
+ break;
+
+ case GREATER_OR_EQUAL_THAN:
+ returnValue = (attributeValue >= literalValue);
+ break;
+
+ case GREATER_THEN:
+ returnValue = (attributeValue > literalValue);
+ break;
+
+ case LESS_OR_EQUAL_THAN:
+ returnValue = (attributeValue <= literalValue);
+ break;
+
+ case LESS_THAN:
+ returnValue = (attributeValue < literalValue);
+ break;
+
+ case NOT_EQUAL:
+ returnValue = (attributeValue != literalValue);
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateString(Object attributeObjectValue) {
+ LOGGER.info("=>");
+
+ if (!(literal instanceof StringLiteral)) {
+ throw new IllegalArgumentException("Incompatible types in ComparisonPredicate. Attribute value is String, while literal is not a String. Literal = " + literal);
+ }
+
+ String attributeValue = (String) attributeObjectValue; // TODO PRIO 2: Do we have to support null in expressions? I think so!
+ String literalValue = ((StringLiteral) literal).getValue();
+ boolean returnValue = false;
+
+ LOGGER.info("Applying: " + comparisonOperator);
+ switch (comparisonOperator) {
+ case EQUAL:
+ returnValue = attributeValue.equals(literalValue);
+ break;
+
+ case GREATER_OR_EQUAL_THAN:
+ case GREATER_THEN:
+ case LESS_OR_EQUAL_THAN:
+ case LESS_THAN:
+ throw new IllegalArgumentException("Illegal comparisonOperator in ComparisonPredicate. comparisonOperator = " + comparisonOperator);
+
+ case NOT_EQUAL:
+ returnValue = !attributeValue.equals(literalValue);
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+} //ComparisonPredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DownCastPredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DownCastPredicateImpl.java
new file mode 100755
index 0000000..e3b57da
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DownCastPredicateImpl.java
@@ -0,0 +1,412 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.DownCastPredicate;
+import org.genivi.booleanexpr.FilterexprPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Down Cast Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.DownCastPredicateImpl#getClassName <em>Class Name</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.DownCastPredicateImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DownCastPredicateImpl extends PredicateImpl implements DownCastPredicate {
+ private final static Logger LOGGER = Logger.getLogger(DownCastPredicateImpl.class.getName());
+ private static final String NEW_LINE = System.getProperty("line.separator");
+
+ /**
+ * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASS_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected String className = CLASS_NAME_EDEFAULT;
+
+ /**
+ * This is true if the Class Name attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean classNameESet;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected BooleanExpression expression;
+
+ /**
+ * This is true if the Expression containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expressionESet;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DownCastPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.DOWN_CAST_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClassName() {
+ return className;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClassName(String newClassName) {
+ String oldClassName = className;
+ className = newClassName;
+ boolean oldClassNameESet = classNameESet;
+ classNameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.DOWN_CAST_PREDICATE__CLASS_NAME, oldClassName, className, !oldClassNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetClassName() {
+ String oldClassName = className;
+ boolean oldClassNameESet = classNameESet;
+ className = CLASS_NAME_EDEFAULT;
+ classNameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DOWN_CAST_PREDICATE__CLASS_NAME, oldClassName, CLASS_NAME_EDEFAULT, oldClassNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetClassName() {
+ return classNameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanExpression getExpression() {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(BooleanExpression newExpression, NotificationChain msgs) {
+ BooleanExpression oldExpression = expression;
+ expression = newExpression;
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, oldExpression, newExpression, !oldExpressionESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(BooleanExpression newExpression) {
+ if (newExpression != expression) {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, newExpression, newExpression, !oldExpressionESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetExpression(NotificationChain msgs) {
+ BooleanExpression oldExpression = expression;
+ expression = null;
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, oldExpression, null, oldExpressionESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpression() {
+ if (expression != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, null, msgs);
+ msgs = basicUnsetExpression(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION, null, null, oldExpressionESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpression() {
+ return expressionESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION:
+ return basicUnsetExpression(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.DOWN_CAST_PREDICATE__CLASS_NAME:
+ return getClassName();
+ case FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.DOWN_CAST_PREDICATE__CLASS_NAME:
+ setClassName((String)newValue);
+ return;
+ case FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION:
+ setExpression((BooleanExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.DOWN_CAST_PREDICATE__CLASS_NAME:
+ unsetClassName();
+ return;
+ case FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION:
+ unsetExpression();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.DOWN_CAST_PREDICATE__CLASS_NAME:
+ return isSetClassName();
+ case FilterexprPackage.DOWN_CAST_PREDICATE__EXPRESSION:
+ return isSetExpression();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ // 'DownCast to' class between '[' and ']'
+ result.append("[");
+ if (classNameESet)
+ result.append(className);
+ else
+ result.append("<unset>");
+ result.append("]");
+
+ // Expression
+ result.append('(');
+ result.append(expression.toString());
+ result.append(')');
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ result.append(indent);
+
+ // 'DownCast to' class between '[' and ']'
+ result.append("[");
+ if (classNameESet)
+ result.append(className);
+ else
+ result.append("<unset>");
+ result.append("]");
+
+ // Expression
+ result.append(" (");
+ result.append(NEW_LINE);
+
+ indent += indentSize;
+
+ result.append(expression.format(indent, indentSize));
+ result.append(NEW_LINE);
+
+ indent = indent.substring(0, indent.lastIndexOf(indentSize));
+
+ result.append(indent);
+ result.append(')');
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ boolean returnValue;
+
+ returnValue = expression.evaluate(object);
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+} //DownCastPredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DyadicExpressionImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DyadicExpressionImpl.java
new file mode 100755
index 0000000..b725313
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/DyadicExpressionImpl.java
@@ -0,0 +1,593 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.DyadicExpression;
+import org.genivi.booleanexpr.DyadicLogicalOperator;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dyadic Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.DyadicExpressionImpl#getLogicalOperator <em>Logical Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.DyadicExpressionImpl#getLeftHandTerm <em>Left Hand Term</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.DyadicExpressionImpl#getRightHandTerm <em>Right Hand Term</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DyadicExpressionImpl extends BooleanExpressionImpl implements DyadicExpression {
+ private final static Logger LOGGER = Logger.getLogger(DyadicExpressionImpl.class.getName());
+ private static final String NEW_LINE = System.getProperty("line.separator");
+
+ /**
+ * The default value of the '{@link #getLogicalOperator() <em>Logical Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogicalOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final DyadicLogicalOperator LOGICAL_OPERATOR_EDEFAULT = DyadicLogicalOperator.AND;
+
+ /**
+ * The cached value of the '{@link #getLogicalOperator() <em>Logical Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogicalOperator()
+ * @generated
+ * @ordered
+ */
+ protected DyadicLogicalOperator logicalOperator = LOGICAL_OPERATOR_EDEFAULT;
+
+ /**
+ * This is true if the Logical Operator attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean logicalOperatorESet;
+
+ /**
+ * The cached value of the '{@link #getLeftHandTerm() <em>Left Hand Term</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLeftHandTerm()
+ * @generated
+ * @ordered
+ */
+ protected BooleanExpression leftHandTerm;
+
+ /**
+ * This is true if the Left Hand Term containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean leftHandTermESet;
+
+ /**
+ * The cached value of the '{@link #getRightHandTerm() <em>Right Hand Term</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRightHandTerm()
+ * @generated
+ * @ordered
+ */
+ protected BooleanExpression rightHandTerm;
+
+ /**
+ * This is true if the Right Hand Term containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean rightHandTermESet;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DyadicExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.DYADIC_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DyadicLogicalOperator getLogicalOperator() {
+ return logicalOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLogicalOperator(DyadicLogicalOperator newLogicalOperator) {
+ DyadicLogicalOperator oldLogicalOperator = logicalOperator;
+ logicalOperator = newLogicalOperator == null ? LOGICAL_OPERATOR_EDEFAULT : newLogicalOperator;
+ boolean oldLogicalOperatorESet = logicalOperatorESet;
+ logicalOperatorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.DYADIC_EXPRESSION__LOGICAL_OPERATOR, oldLogicalOperator, logicalOperator, !oldLogicalOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLogicalOperator() {
+ DyadicLogicalOperator oldLogicalOperator = logicalOperator;
+ boolean oldLogicalOperatorESet = logicalOperatorESet;
+ logicalOperator = LOGICAL_OPERATOR_EDEFAULT;
+ logicalOperatorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DYADIC_EXPRESSION__LOGICAL_OPERATOR, oldLogicalOperator, LOGICAL_OPERATOR_EDEFAULT, oldLogicalOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLogicalOperator() {
+ return logicalOperatorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanExpression getLeftHandTerm() {
+ return leftHandTerm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLeftHandTerm(BooleanExpression newLeftHandTerm, NotificationChain msgs) {
+ BooleanExpression oldLeftHandTerm = leftHandTerm;
+ leftHandTerm = newLeftHandTerm;
+ boolean oldLeftHandTermESet = leftHandTermESet;
+ leftHandTermESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, oldLeftHandTerm, newLeftHandTerm, !oldLeftHandTermESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLeftHandTerm(BooleanExpression newLeftHandTerm) {
+ if (newLeftHandTerm != leftHandTerm) {
+ NotificationChain msgs = null;
+ if (leftHandTerm != null)
+ msgs = ((InternalEObject)leftHandTerm).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, null, msgs);
+ if (newLeftHandTerm != null)
+ msgs = ((InternalEObject)newLeftHandTerm).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, null, msgs);
+ msgs = basicSetLeftHandTerm(newLeftHandTerm, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLeftHandTermESet = leftHandTermESet;
+ leftHandTermESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, newLeftHandTerm, newLeftHandTerm, !oldLeftHandTermESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetLeftHandTerm(NotificationChain msgs) {
+ BooleanExpression oldLeftHandTerm = leftHandTerm;
+ leftHandTerm = null;
+ boolean oldLeftHandTermESet = leftHandTermESet;
+ leftHandTermESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, oldLeftHandTerm, null, oldLeftHandTermESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLeftHandTerm() {
+ if (leftHandTerm != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)leftHandTerm).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, null, msgs);
+ msgs = basicUnsetLeftHandTerm(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLeftHandTermESet = leftHandTermESet;
+ leftHandTermESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM, null, null, oldLeftHandTermESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLeftHandTerm() {
+ return leftHandTermESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanExpression getRightHandTerm() {
+ return rightHandTerm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRightHandTerm(BooleanExpression newRightHandTerm, NotificationChain msgs) {
+ BooleanExpression oldRightHandTerm = rightHandTerm;
+ rightHandTerm = newRightHandTerm;
+ boolean oldRightHandTermESet = rightHandTermESet;
+ rightHandTermESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, oldRightHandTerm, newRightHandTerm, !oldRightHandTermESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRightHandTerm(BooleanExpression newRightHandTerm) {
+ if (newRightHandTerm != rightHandTerm) {
+ NotificationChain msgs = null;
+ if (rightHandTerm != null)
+ msgs = ((InternalEObject)rightHandTerm).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, null, msgs);
+ if (newRightHandTerm != null)
+ msgs = ((InternalEObject)newRightHandTerm).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, null, msgs);
+ msgs = basicSetRightHandTerm(newRightHandTerm, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldRightHandTermESet = rightHandTermESet;
+ rightHandTermESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, newRightHandTerm, newRightHandTerm, !oldRightHandTermESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetRightHandTerm(NotificationChain msgs) {
+ BooleanExpression oldRightHandTerm = rightHandTerm;
+ rightHandTerm = null;
+ boolean oldRightHandTermESet = rightHandTermESet;
+ rightHandTermESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, oldRightHandTerm, null, oldRightHandTermESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRightHandTerm() {
+ if (rightHandTerm != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)rightHandTerm).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, null, msgs);
+ msgs = basicUnsetRightHandTerm(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldRightHandTermESet = rightHandTermESet;
+ rightHandTermESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM, null, null, oldRightHandTermESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRightHandTerm() {
+ return rightHandTermESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM:
+ return basicUnsetLeftHandTerm(msgs);
+ case FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM:
+ return basicUnsetRightHandTerm(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.DYADIC_EXPRESSION__LOGICAL_OPERATOR:
+ return getLogicalOperator();
+ case FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM:
+ return getLeftHandTerm();
+ case FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM:
+ return getRightHandTerm();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.DYADIC_EXPRESSION__LOGICAL_OPERATOR:
+ setLogicalOperator((DyadicLogicalOperator)newValue);
+ return;
+ case FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM:
+ setLeftHandTerm((BooleanExpression)newValue);
+ return;
+ case FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM:
+ setRightHandTerm((BooleanExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.DYADIC_EXPRESSION__LOGICAL_OPERATOR:
+ unsetLogicalOperator();
+ return;
+ case FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM:
+ unsetLeftHandTerm();
+ return;
+ case FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM:
+ unsetRightHandTerm();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.DYADIC_EXPRESSION__LOGICAL_OPERATOR:
+ return isSetLogicalOperator();
+ case FilterexprPackage.DYADIC_EXPRESSION__LEFT_HAND_TERM:
+ return isSetLeftHandTerm();
+ case FilterexprPackage.DYADIC_EXPRESSION__RIGHT_HAND_TERM:
+ return isSetRightHandTerm();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ // Left hand Expression
+ result.append('(');
+ if (leftHandTerm != null) {
+ result.append(leftHandTerm.toString());
+ } else {
+ result.append("null");
+ }
+ result.append(") ");
+
+ // DyadicLogicalOperator
+ if (logicalOperatorESet)
+ result.append(FilterExprUtil.dyadicLogicalOperatorToString(logicalOperator));
+ else
+ result.append("<unset>");
+
+ // Right hand Expression
+ result.append(" (");
+ if (rightHandTerm != null) {
+ result.append(rightHandTerm.toString());
+ } else {
+ result.append("null");
+ }
+ result.append(')');
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ // Left hand Expression
+ result.append(indent);
+ result.append('(');
+ result.append(NEW_LINE);
+
+ indent += indentSize;
+
+ if (leftHandTerm != null) {
+ result.append(leftHandTerm.format(indent, indentSize));
+ } else {
+ result.append("null");
+ }
+ result.append(NEW_LINE);
+
+ indent = indent.substring(0, indent.lastIndexOf(indentSize));
+
+ result.append(indent);
+ result.append(") ");
+
+ // DyadicLogicalOperator
+ if (logicalOperatorESet)
+ result.append(FilterExprUtil.dyadicLogicalOperatorToString(logicalOperator));
+ else
+ result.append("<unset>");
+
+ // Right hand Expression
+ result.append(" (");
+ result.append(NEW_LINE);
+
+ indent += indentSize;
+
+ if (rightHandTerm != null) {
+ result.append(rightHandTerm.format(indent, indentSize));
+ } else {
+ result.append("null");
+ }
+ result.append(NEW_LINE);
+
+ indent = indent.substring(0, indent.lastIndexOf(indentSize));
+
+ result.append(indent);
+ result.append(')');
+
+ return result.toString();
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ LOGGER.info("Going to evaluate left hand side");
+ boolean result = false;
+ boolean leftHandResult = leftHandTerm.evaluate(object);
+ boolean rightHandResult;
+
+ switch (logicalOperator) {
+ case AND:
+ LOGGER.info("Operator is AND");
+ if (leftHandResult) {
+ LOGGER.info("Needed to evaluate right hand side");
+ rightHandResult = rightHandTerm.evaluate(object);
+ result = leftHandResult && rightHandResult;
+ }
+ break;
+
+ case OR:
+ LOGGER.info("Operator is OR");
+ if (leftHandResult) {
+ result = true;
+ } else {
+ LOGGER.info("Needed to evaluate right hand side");
+ rightHandResult = rightHandTerm.evaluate(object);
+ result = leftHandResult || rightHandResult;
+ }
+ }
+
+ LOGGER.info("evaluate <= " + result);
+ return result;
+ }
+} //DyadicExpressionImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprFactoryImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprFactoryImpl.java
new file mode 100755
index 0000000..e9b00e9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprFactoryImpl.java
@@ -0,0 +1,394 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.booleanexpr.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FilterexprFactoryImpl extends EFactoryImpl implements FilterexprFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FilterexprFactory init() {
+ try {
+ FilterexprFactory theFilterexprFactory = (FilterexprFactory)EPackage.Registry.INSTANCE.getEFactory(FilterexprPackage.eNS_URI);
+ if (theFilterexprFactory != null) {
+ return theFilterexprFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FilterexprFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterexprFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case FilterexprPackage.UNARY_EXPRESSION: return createUnaryExpression();
+ case FilterexprPackage.DYADIC_EXPRESSION: return createDyadicExpression();
+ case FilterexprPackage.COMPARISON_PREDICATE: return createComparisonPredicate();
+ case FilterexprPackage.IN_PREDICATE: return createInPredicate();
+ case FilterexprPackage.SIGNED_INTEGER_LITERAL: return createSignedIntegerLiteral();
+ case FilterexprPackage.STRING_LITERAL: return createStringLiteral();
+ case FilterexprPackage.BOOLEAN_LITERAL: return createBooleanLiteral();
+ case FilterexprPackage.SUB_CLASS_PREDICATE: return createSubClassPredicate();
+ case FilterexprPackage.CLASS_ATTRIBUTE: return createClassAttribute();
+ case FilterexprPackage.DOWN_CAST_PREDICATE: return createDownCastPredicate();
+ case FilterexprPackage.MULTIPLICITY_PREDICATE: return createMultiplicityPredicate();
+ case FilterexprPackage.IS_SET_PREDICATE: return createIsSetPredicate();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case FilterexprPackage.DYADIC_LOGICAL_OPERATOR:
+ return createDyadicLogicalOperatorFromString(eDataType, initialValue);
+ case FilterexprPackage.UNARY_LOGICAL_OPERATOR:
+ return createUnaryLogicalOperatorFromString(eDataType, initialValue);
+ case FilterexprPackage.COMPARISON_OPERATOR:
+ return createComparisonOperatorFromString(eDataType, initialValue);
+ case FilterexprPackage.LIST_OPERATOR:
+ return createListOperatorFromString(eDataType, initialValue);
+ case FilterexprPackage.IN_OPERATOR:
+ return createInOperatorFromString(eDataType, initialValue);
+ case FilterexprPackage.META_OPERATOR:
+ return createMetaOperatorFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case FilterexprPackage.DYADIC_LOGICAL_OPERATOR:
+ return convertDyadicLogicalOperatorToString(eDataType, instanceValue);
+ case FilterexprPackage.UNARY_LOGICAL_OPERATOR:
+ return convertUnaryLogicalOperatorToString(eDataType, instanceValue);
+ case FilterexprPackage.COMPARISON_OPERATOR:
+ return convertComparisonOperatorToString(eDataType, instanceValue);
+ case FilterexprPackage.LIST_OPERATOR:
+ return convertListOperatorToString(eDataType, instanceValue);
+ case FilterexprPackage.IN_OPERATOR:
+ return convertInOperatorToString(eDataType, instanceValue);
+ case FilterexprPackage.META_OPERATOR:
+ return convertMetaOperatorToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnaryExpression createUnaryExpression() {
+ UnaryExpressionImpl unaryExpression = new UnaryExpressionImpl();
+ return unaryExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DyadicExpression createDyadicExpression() {
+ DyadicExpressionImpl dyadicExpression = new DyadicExpressionImpl();
+ return dyadicExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComparisonPredicate createComparisonPredicate() {
+ ComparisonPredicateImpl comparisonPredicate = new ComparisonPredicateImpl();
+ return comparisonPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InPredicate createInPredicate() {
+ InPredicateImpl inPredicate = new InPredicateImpl();
+ return inPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SignedIntegerLiteral createSignedIntegerLiteral() {
+ SignedIntegerLiteralImpl signedIntegerLiteral = new SignedIntegerLiteralImpl();
+ return signedIntegerLiteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringLiteral createStringLiteral() {
+ StringLiteralImpl stringLiteral = new StringLiteralImpl();
+ return stringLiteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanLiteral createBooleanLiteral() {
+ BooleanLiteralImpl booleanLiteral = new BooleanLiteralImpl();
+ return booleanLiteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SubClassPredicate createSubClassPredicate() {
+ SubClassPredicateImpl subClassPredicate = new SubClassPredicateImpl();
+ return subClassPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassAttribute createClassAttribute() {
+ ClassAttributeImpl classAttribute = new ClassAttributeImpl();
+ return classAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DownCastPredicate createDownCastPredicate() {
+ DownCastPredicateImpl downCastPredicate = new DownCastPredicateImpl();
+ return downCastPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiplicityPredicate createMultiplicityPredicate() {
+ MultiplicityPredicateImpl multiplicityPredicate = new MultiplicityPredicateImpl();
+ return multiplicityPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IsSetPredicate createIsSetPredicate() {
+ IsSetPredicateImpl isSetPredicate = new IsSetPredicateImpl();
+ return isSetPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DyadicLogicalOperator createDyadicLogicalOperatorFromString(EDataType eDataType, String initialValue) {
+ DyadicLogicalOperator result = DyadicLogicalOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDyadicLogicalOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnaryLogicalOperator createUnaryLogicalOperatorFromString(EDataType eDataType, String initialValue) {
+ UnaryLogicalOperator result = UnaryLogicalOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertUnaryLogicalOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComparisonOperator createComparisonOperatorFromString(EDataType eDataType, String initialValue) {
+ ComparisonOperator result = ComparisonOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertComparisonOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ListOperator createListOperatorFromString(EDataType eDataType, String initialValue) {
+ ListOperator result = ListOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertListOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InOperator createInOperatorFromString(EDataType eDataType, String initialValue) {
+ InOperator result = InOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertInOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MetaOperator createMetaOperatorFromString(EDataType eDataType, String initialValue) {
+ MetaOperator result = MetaOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMetaOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterexprPackage getFilterexprPackage() {
+ return (FilterexprPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FilterexprPackage getPackage() {
+ return FilterexprPackage.eINSTANCE;
+ }
+
+} //FilterexprFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprPackageImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprPackageImpl.java
new file mode 100755
index 0000000..3eee31f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/FilterexprPackageImpl.java
@@ -0,0 +1,934 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.BooleanLiteral;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.ComparisonOperator;
+import org.genivi.booleanexpr.ComparisonPredicate;
+import org.genivi.booleanexpr.DownCastPredicate;
+import org.genivi.booleanexpr.DyadicExpression;
+import org.genivi.booleanexpr.DyadicLogicalOperator;
+import org.genivi.booleanexpr.FilterexprFactory;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.InOperator;
+import org.genivi.booleanexpr.InPredicate;
+import org.genivi.booleanexpr.IsSetPredicate;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.Literal;
+import org.genivi.booleanexpr.MetaOperator;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.Predicate;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.booleanexpr.StringLiteral;
+import org.genivi.booleanexpr.SubClassPredicate;
+import org.genivi.booleanexpr.UnaryExpression;
+import org.genivi.booleanexpr.UnaryLogicalOperator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FilterexprPackageImpl extends EPackageImpl implements FilterexprPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass booleanExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unaryExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass predicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dyadicExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass comparisonPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass signedIntegerLiteralEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stringLiteralEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass booleanLiteralEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass subClassPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classAttributeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass downCastPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiplicityPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass isSetPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dyadicLogicalOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum unaryLogicalOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum comparisonOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum listOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum inOperatorEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum metaOperatorEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.booleanexpr.FilterexprPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FilterexprPackageImpl() {
+ super(eNS_URI, FilterexprFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link FilterexprPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static FilterexprPackage init() {
+ if (isInited) return (FilterexprPackage)EPackage.Registry.INSTANCE.getEPackage(FilterexprPackage.eNS_URI);
+
+ // Obtain or create and register package
+ FilterexprPackageImpl theFilterexprPackage = (FilterexprPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FilterexprPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FilterexprPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theFilterexprPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFilterexprPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFilterexprPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FilterexprPackage.eNS_URI, theFilterexprPackage);
+ return theFilterexprPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBooleanExpression() {
+ return booleanExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUnaryExpression() {
+ return unaryExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUnaryExpression_UnaryOperator() {
+ return (EAttribute)unaryExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUnaryExpression_Expression() {
+ return (EReference)unaryExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPredicate() {
+ return predicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDyadicExpression() {
+ return dyadicExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDyadicExpression_LogicalOperator() {
+ return (EAttribute)dyadicExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDyadicExpression_LeftHandTerm() {
+ return (EReference)dyadicExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDyadicExpression_RightHandTerm() {
+ return (EReference)dyadicExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComparisonPredicate() {
+ return comparisonPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getComparisonPredicate_ComparisonOperator() {
+ return (EAttribute)comparisonPredicateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComparisonPredicate_Literal() {
+ return (EReference)comparisonPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComparisonPredicate_Attribute() {
+ return (EReference)comparisonPredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInPredicate() {
+ return inPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInPredicate_Attribute() {
+ return (EReference)inPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getInPredicate_InOperator() {
+ return (EAttribute)inPredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInPredicate_Literals() {
+ return (EReference)inPredicateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteral() {
+ return literalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSignedIntegerLiteral() {
+ return signedIntegerLiteralEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSignedIntegerLiteral_Value() {
+ return (EAttribute)signedIntegerLiteralEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStringLiteral() {
+ return stringLiteralEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStringLiteral_Value() {
+ return (EAttribute)stringLiteralEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBooleanLiteral() {
+ return booleanLiteralEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBooleanLiteral_Value() {
+ return (EAttribute)booleanLiteralEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSubClassPredicate() {
+ return subClassPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSubClassPredicate_SubClassExpression() {
+ return (EReference)subClassPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSubClassPredicate_SubClassAttribute() {
+ return (EReference)subClassPredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassAttribute() {
+ return classAttributeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClassAttribute_AttributeName() {
+ return (EAttribute)classAttributeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClassAttribute_MetaOperator() {
+ return (EAttribute)classAttributeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClassAttribute_Index() {
+ return (EAttribute)classAttributeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDownCastPredicate() {
+ return downCastPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDownCastPredicate_ClassName() {
+ return (EAttribute)downCastPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDownCastPredicate_Expression() {
+ return (EReference)downCastPredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiplicityPredicate() {
+ return multiplicityPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiplicityPredicate_Expression() {
+ return (EReference)multiplicityPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiplicityPredicate_ListOperator() {
+ return (EAttribute)multiplicityPredicateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiplicityPredicate_Attribute() {
+ return (EReference)multiplicityPredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIsSetPredicate() {
+ return isSetPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIsSetPredicate_Attribute() {
+ return (EReference)isSetPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDyadicLogicalOperator() {
+ return dyadicLogicalOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getUnaryLogicalOperator() {
+ return unaryLogicalOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getComparisonOperator() {
+ return comparisonOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getListOperator() {
+ return listOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getInOperator() {
+ return inOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMetaOperator() {
+ return metaOperatorEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterexprFactory getFilterexprFactory() {
+ return (FilterexprFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ booleanExpressionEClass = createEClass(BOOLEAN_EXPRESSION);
+
+ unaryExpressionEClass = createEClass(UNARY_EXPRESSION);
+ createEAttribute(unaryExpressionEClass, UNARY_EXPRESSION__UNARY_OPERATOR);
+ createEReference(unaryExpressionEClass, UNARY_EXPRESSION__EXPRESSION);
+
+ predicateEClass = createEClass(PREDICATE);
+
+ dyadicExpressionEClass = createEClass(DYADIC_EXPRESSION);
+ createEAttribute(dyadicExpressionEClass, DYADIC_EXPRESSION__LOGICAL_OPERATOR);
+ createEReference(dyadicExpressionEClass, DYADIC_EXPRESSION__LEFT_HAND_TERM);
+ createEReference(dyadicExpressionEClass, DYADIC_EXPRESSION__RIGHT_HAND_TERM);
+
+ comparisonPredicateEClass = createEClass(COMPARISON_PREDICATE);
+ createEReference(comparisonPredicateEClass, COMPARISON_PREDICATE__LITERAL);
+ createEReference(comparisonPredicateEClass, COMPARISON_PREDICATE__ATTRIBUTE);
+ createEAttribute(comparisonPredicateEClass, COMPARISON_PREDICATE__COMPARISON_OPERATOR);
+
+ inPredicateEClass = createEClass(IN_PREDICATE);
+ createEReference(inPredicateEClass, IN_PREDICATE__ATTRIBUTE);
+ createEAttribute(inPredicateEClass, IN_PREDICATE__IN_OPERATOR);
+ createEReference(inPredicateEClass, IN_PREDICATE__LITERALS);
+
+ literalEClass = createEClass(LITERAL);
+
+ signedIntegerLiteralEClass = createEClass(SIGNED_INTEGER_LITERAL);
+ createEAttribute(signedIntegerLiteralEClass, SIGNED_INTEGER_LITERAL__VALUE);
+
+ stringLiteralEClass = createEClass(STRING_LITERAL);
+ createEAttribute(stringLiteralEClass, STRING_LITERAL__VALUE);
+
+ booleanLiteralEClass = createEClass(BOOLEAN_LITERAL);
+ createEAttribute(booleanLiteralEClass, BOOLEAN_LITERAL__VALUE);
+
+ subClassPredicateEClass = createEClass(SUB_CLASS_PREDICATE);
+ createEReference(subClassPredicateEClass, SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION);
+ createEReference(subClassPredicateEClass, SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE);
+
+ classAttributeEClass = createEClass(CLASS_ATTRIBUTE);
+ createEAttribute(classAttributeEClass, CLASS_ATTRIBUTE__ATTRIBUTE_NAME);
+ createEAttribute(classAttributeEClass, CLASS_ATTRIBUTE__META_OPERATOR);
+ createEAttribute(classAttributeEClass, CLASS_ATTRIBUTE__INDEX);
+
+ downCastPredicateEClass = createEClass(DOWN_CAST_PREDICATE);
+ createEAttribute(downCastPredicateEClass, DOWN_CAST_PREDICATE__CLASS_NAME);
+ createEReference(downCastPredicateEClass, DOWN_CAST_PREDICATE__EXPRESSION);
+
+ multiplicityPredicateEClass = createEClass(MULTIPLICITY_PREDICATE);
+ createEReference(multiplicityPredicateEClass, MULTIPLICITY_PREDICATE__EXPRESSION);
+ createEReference(multiplicityPredicateEClass, MULTIPLICITY_PREDICATE__ATTRIBUTE);
+ createEAttribute(multiplicityPredicateEClass, MULTIPLICITY_PREDICATE__LIST_OPERATOR);
+
+ isSetPredicateEClass = createEClass(IS_SET_PREDICATE);
+ createEReference(isSetPredicateEClass, IS_SET_PREDICATE__ATTRIBUTE);
+
+ // Create enums
+ dyadicLogicalOperatorEEnum = createEEnum(DYADIC_LOGICAL_OPERATOR);
+ unaryLogicalOperatorEEnum = createEEnum(UNARY_LOGICAL_OPERATOR);
+ comparisonOperatorEEnum = createEEnum(COMPARISON_OPERATOR);
+ listOperatorEEnum = createEEnum(LIST_OPERATOR);
+ inOperatorEEnum = createEEnum(IN_OPERATOR);
+ metaOperatorEEnum = createEEnum(META_OPERATOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ unaryExpressionEClass.getESuperTypes().add(this.getBooleanExpression());
+ predicateEClass.getESuperTypes().add(this.getBooleanExpression());
+ dyadicExpressionEClass.getESuperTypes().add(this.getBooleanExpression());
+ comparisonPredicateEClass.getESuperTypes().add(this.getPredicate());
+ inPredicateEClass.getESuperTypes().add(this.getPredicate());
+ signedIntegerLiteralEClass.getESuperTypes().add(this.getLiteral());
+ stringLiteralEClass.getESuperTypes().add(this.getLiteral());
+ booleanLiteralEClass.getESuperTypes().add(this.getLiteral());
+ subClassPredicateEClass.getESuperTypes().add(this.getPredicate());
+ downCastPredicateEClass.getESuperTypes().add(this.getPredicate());
+ multiplicityPredicateEClass.getESuperTypes().add(this.getPredicate());
+ isSetPredicateEClass.getESuperTypes().add(this.getPredicate());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(booleanExpressionEClass, BooleanExpression.class, "BooleanExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ EOperation op = addEOperation(booleanExpressionEClass, ecorePackage.getEBoolean(), "evaluate", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(booleanExpressionEClass, ecorePackage.getEString(), "format", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "indent", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "indentSize", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(unaryExpressionEClass, UnaryExpression.class, "UnaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUnaryExpression_UnaryOperator(), this.getUnaryLogicalOperator(), "unaryOperator", "NOT", 1, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getUnaryExpression_Expression(), this.getBooleanExpression(), null, "expression", null, 1, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(dyadicExpressionEClass, DyadicExpression.class, "DyadicExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDyadicExpression_LogicalOperator(), this.getDyadicLogicalOperator(), "logicalOperator", "AND", 1, 1, DyadicExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDyadicExpression_LeftHandTerm(), this.getBooleanExpression(), null, "leftHandTerm", null, 1, 1, DyadicExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDyadicExpression_RightHandTerm(), this.getBooleanExpression(), null, "rightHandTerm", null, 1, 1, DyadicExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(comparisonPredicateEClass, ComparisonPredicate.class, "ComparisonPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getComparisonPredicate_Literal(), this.getLiteral(), null, "literal", null, 1, 1, ComparisonPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getComparisonPredicate_Attribute(), this.getClassAttribute(), null, "attribute", null, 1, 1, ComparisonPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getComparisonPredicate_ComparisonOperator(), this.getComparisonOperator(), "comparisonOperator", null, 1, 1, ComparisonPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(inPredicateEClass, InPredicate.class, "InPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInPredicate_Attribute(), this.getClassAttribute(), null, "attribute", null, 1, 1, InPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getInPredicate_InOperator(), this.getInOperator(), "inOperator", null, 1, 1, InPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInPredicate_Literals(), this.getLiteral(), null, "literals", null, 0, -1, InPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(literalEClass, Literal.class, "Literal", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(signedIntegerLiteralEClass, SignedIntegerLiteral.class, "SignedIntegerLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSignedIntegerLiteral_Value(), ecorePackage.getELong(), "value", null, 1, 1, SignedIntegerLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStringLiteral_Value(), ecorePackage.getEString(), "value", null, 1, 1, StringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(booleanLiteralEClass, BooleanLiteral.class, "BooleanLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBooleanLiteral_Value(), ecorePackage.getEBoolean(), "value", null, 1, 1, BooleanLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(subClassPredicateEClass, SubClassPredicate.class, "SubClassPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSubClassPredicate_SubClassExpression(), this.getBooleanExpression(), null, "subClassExpression", null, 1, 1, SubClassPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSubClassPredicate_SubClassAttribute(), this.getClassAttribute(), null, "subClassAttribute", null, 1, 1, SubClassPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classAttributeEClass, ClassAttribute.class, "ClassAttribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getClassAttribute_AttributeName(), ecorePackage.getEString(), "attributeName", null, 1, 1, ClassAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getClassAttribute_MetaOperator(), this.getMetaOperator(), "metaOperator", null, 0, 1, ClassAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getClassAttribute_Index(), ecorePackage.getEInt(), "index", null, 0, 1, ClassAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(classAttributeEClass, ecorePackage.getEBoolean(), "isSet", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(classAttributeEClass, null, "getListValue", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
+ EGenericType g1 = createEGenericType(ecorePackage.getEEList());
+ EGenericType g2 = createEGenericType();
+ g1.getETypeArguments().add(g2);
+ initEOperation(op, g1);
+
+ op = addEOperation(classAttributeEClass, ecorePackage.getEJavaObject(), "getValue", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(downCastPredicateEClass, DownCastPredicate.class, "DownCastPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDownCastPredicate_ClassName(), ecorePackage.getEString(), "className", null, 1, 1, DownCastPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDownCastPredicate_Expression(), this.getBooleanExpression(), null, "expression", null, 1, 1, DownCastPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiplicityPredicateEClass, MultiplicityPredicate.class, "MultiplicityPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiplicityPredicate_Expression(), this.getBooleanExpression(), null, "expression", null, 1, 1, MultiplicityPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiplicityPredicate_Attribute(), this.getClassAttribute(), null, "attribute", null, 1, 1, MultiplicityPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMultiplicityPredicate_ListOperator(), this.getListOperator(), "listOperator", null, 1, 1, MultiplicityPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(isSetPredicateEClass, IsSetPredicate.class, "IsSetPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getIsSetPredicate_Attribute(), this.getClassAttribute(), null, "attribute", null, 1, 1, IsSetPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(dyadicLogicalOperatorEEnum, DyadicLogicalOperator.class, "DyadicLogicalOperator");
+ addEEnumLiteral(dyadicLogicalOperatorEEnum, DyadicLogicalOperator.AND);
+ addEEnumLiteral(dyadicLogicalOperatorEEnum, DyadicLogicalOperator.OR);
+
+ initEEnum(unaryLogicalOperatorEEnum, UnaryLogicalOperator.class, "UnaryLogicalOperator");
+ addEEnumLiteral(unaryLogicalOperatorEEnum, UnaryLogicalOperator.NOT);
+
+ initEEnum(comparisonOperatorEEnum, ComparisonOperator.class, "ComparisonOperator");
+ addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.EQUAL);
+ addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.NOT_EQUAL);
+ addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.GREATER_THEN);
+ addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.GREATER_OR_EQUAL_THAN);
+ addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.LESS_THAN);
+ addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.LESS_OR_EQUAL_THAN);
+
+ initEEnum(listOperatorEEnum, ListOperator.class, "ListOperator");
+ addEEnumLiteral(listOperatorEEnum, ListOperator.ANY);
+ addEEnumLiteral(listOperatorEEnum, ListOperator.ALL);
+ addEEnumLiteral(listOperatorEEnum, ListOperator.NONE);
+
+ initEEnum(inOperatorEEnum, InOperator.class, "InOperator");
+ addEEnumLiteral(inOperatorEEnum, InOperator.IN);
+ addEEnumLiteral(inOperatorEEnum, InOperator.NOT_IN);
+
+ initEEnum(metaOperatorEEnum, MetaOperator.class, "MetaOperator");
+ addEEnumLiteral(metaOperatorEEnum, MetaOperator.SIZE);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //FilterexprPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/InPredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/InPredicateImpl.java
new file mode 100755
index 0000000..06bf100
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/InPredicateImpl.java
@@ -0,0 +1,613 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.booleanexpr.BooleanLiteral;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.InOperator;
+import org.genivi.booleanexpr.InPredicate;
+import org.genivi.booleanexpr.Literal;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.booleanexpr.StringLiteral;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>In Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.InPredicateImpl#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.InPredicateImpl#getInOperator <em>In Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.InPredicateImpl#getLiterals <em>Literals</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InPredicateImpl extends PredicateImpl implements InPredicate {
+ private final static Logger LOGGER = Logger.getLogger(ComparisonPredicateImpl.class.getName());
+
+ /**
+ * The cached value of the '{@link #getAttribute() <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttribute()
+ * @generated
+ * @ordered
+ */
+ protected ClassAttribute attribute;
+ /**
+ * This is true if the Attribute containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean attributeESet;
+ /**
+ * The default value of the '{@link #getInOperator() <em>In Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final InOperator IN_OPERATOR_EDEFAULT = InOperator.IN;
+ /**
+ * The cached value of the '{@link #getInOperator() <em>In Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInOperator()
+ * @generated
+ * @ordered
+ */
+ protected InOperator inOperator = IN_OPERATOR_EDEFAULT;
+ /**
+ * This is true if the In Operator attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean inOperatorESet;
+ /**
+ * The cached value of the '{@link #getLiterals() <em>Literals</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLiterals()
+ * @generated
+ * @ordered
+ */
+ protected EList<Literal> literals;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.IN_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassAttribute getAttribute() {
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAttribute(ClassAttribute newAttribute, NotificationChain msgs) {
+ ClassAttribute oldAttribute = attribute;
+ attribute = newAttribute;
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.IN_PREDICATE__ATTRIBUTE, oldAttribute, newAttribute, !oldAttributeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttribute(ClassAttribute newAttribute) {
+ if (newAttribute != attribute) {
+ NotificationChain msgs = null;
+ if (attribute != null)
+ msgs = ((InternalEObject)attribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.IN_PREDICATE__ATTRIBUTE, null, msgs);
+ if (newAttribute != null)
+ msgs = ((InternalEObject)newAttribute).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.IN_PREDICATE__ATTRIBUTE, null, msgs);
+ msgs = basicSetAttribute(newAttribute, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.IN_PREDICATE__ATTRIBUTE, newAttribute, newAttribute, !oldAttributeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetAttribute(NotificationChain msgs) {
+ ClassAttribute oldAttribute = attribute;
+ attribute = null;
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.IN_PREDICATE__ATTRIBUTE, oldAttribute, null, oldAttributeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAttribute() {
+ if (attribute != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)attribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.IN_PREDICATE__ATTRIBUTE, null, msgs);
+ msgs = basicUnsetAttribute(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.IN_PREDICATE__ATTRIBUTE, null, null, oldAttributeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttribute() {
+ return attributeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InOperator getInOperator() {
+ return inOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInOperator(InOperator newInOperator) {
+ InOperator oldInOperator = inOperator;
+ inOperator = newInOperator == null ? IN_OPERATOR_EDEFAULT : newInOperator;
+ boolean oldInOperatorESet = inOperatorESet;
+ inOperatorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.IN_PREDICATE__IN_OPERATOR, oldInOperator, inOperator, !oldInOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetInOperator() {
+ InOperator oldInOperator = inOperator;
+ boolean oldInOperatorESet = inOperatorESet;
+ inOperator = IN_OPERATOR_EDEFAULT;
+ inOperatorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.IN_PREDICATE__IN_OPERATOR, oldInOperator, IN_OPERATOR_EDEFAULT, oldInOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInOperator() {
+ return inOperatorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Literal> getLiterals() {
+ if (literals == null) {
+ literals = new EObjectContainmentEList.Unsettable<Literal>(Literal.class, this, FilterexprPackage.IN_PREDICATE__LITERALS);
+ }
+ return literals;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLiterals() {
+ if (literals != null) ((InternalEList.Unsettable<?>)literals).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLiterals() {
+ return literals != null && ((InternalEList.Unsettable<?>)literals).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.IN_PREDICATE__ATTRIBUTE:
+ return basicUnsetAttribute(msgs);
+ case FilterexprPackage.IN_PREDICATE__LITERALS:
+ return ((InternalEList<?>)getLiterals()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.IN_PREDICATE__ATTRIBUTE:
+ return getAttribute();
+ case FilterexprPackage.IN_PREDICATE__IN_OPERATOR:
+ return getInOperator();
+ case FilterexprPackage.IN_PREDICATE__LITERALS:
+ return getLiterals();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.IN_PREDICATE__ATTRIBUTE:
+ setAttribute((ClassAttribute)newValue);
+ return;
+ case FilterexprPackage.IN_PREDICATE__IN_OPERATOR:
+ setInOperator((InOperator)newValue);
+ return;
+ case FilterexprPackage.IN_PREDICATE__LITERALS:
+ getLiterals().clear();
+ getLiterals().addAll((Collection<? extends Literal>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.IN_PREDICATE__ATTRIBUTE:
+ unsetAttribute();
+ return;
+ case FilterexprPackage.IN_PREDICATE__IN_OPERATOR:
+ unsetInOperator();
+ return;
+ case FilterexprPackage.IN_PREDICATE__LITERALS:
+ unsetLiterals();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.IN_PREDICATE__ATTRIBUTE:
+ return isSetAttribute();
+ case FilterexprPackage.IN_PREDICATE__IN_OPERATOR:
+ return isSetInOperator();
+ case FilterexprPackage.IN_PREDICATE__LITERALS:
+ return isSetLiterals();
+ }
+ return super.eIsSet(featureID);
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ if (attribute != null) {
+ result.append(attribute.toString());
+ } else {
+ result.append("@");
+ }
+ result.append(' ');
+ result.append(FilterExprUtil.inOperatorToString(inOperator));
+ result.append(" [");
+ boolean first = true;
+ for (Literal literal: literals) {
+ if (first) {
+ first = false;
+ } else {
+ result.append(", ");
+ }
+ result.append(literal.toString());
+ }
+ result.append("]");
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ boolean returnValue = false;
+ Object attributeObjectValue = null;
+ if (object instanceof EObject) {
+ attributeObjectValue = attribute.getValue((EObject) object);
+ } else {
+ attributeObjectValue = object;
+ }
+ if (attributeObjectValue == null) {
+ returnValue = evaluateNull();
+ } else if (attributeObjectValue instanceof Boolean) {
+ returnValue = evaluateBoolean(attributeObjectValue);
+ } else if (attributeObjectValue instanceof Integer) {
+ returnValue = evaluateInteger(attributeObjectValue);
+ } else if (attributeObjectValue instanceof Long) {
+ returnValue = evaluateInteger(attributeObjectValue);
+ } else if (attributeObjectValue instanceof String) {
+ returnValue = evaluateString(attributeObjectValue);
+ } else {
+ throw new IllegalArgumentException("Unsupported attribute type in InPredicate. Attribute value = " + attributeObjectValue);
+ }
+
+ LOGGER.info("evaluate <= " + returnValue);
+
+ return returnValue;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateNull() {
+ LOGGER.info("=>");
+
+ boolean returnValue = false;
+
+ switch (inOperator) {
+
+ case NOT_IN:
+ returnValue = true;
+ break;
+
+ default:
+ break; // No action.
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateBoolean(Object attributeObjectValue) {
+ LOGGER.info("=>");
+ boolean attributeValue = (Boolean) attributeObjectValue;
+ List<Boolean> literalValues = new ArrayList<Boolean>();
+
+ for (Literal literal: literals) {
+ if (!(literal instanceof BooleanLiteral)) {
+ throw new IllegalArgumentException("Incompatible types in ComparisonPredicate. Attribute value is Boolean, while literal is not a Boolean. Literal = " + literal);
+ }
+
+ boolean literalValue = ((BooleanLiteral) literal).isValue();
+ literalValues.add(literalValue);
+ }
+
+ boolean returnValue = false;
+
+ switch (inOperator) {
+ case IN:
+ LOGGER.info("Applying IN");
+ returnValue = literalValues.contains(attributeValue);
+ break;
+
+ case NOT_IN:
+ LOGGER.info("Applying NOT_IN");
+ returnValue = !literalValues.contains(attributeValue);
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateInteger(Object attributeObjectValue) {
+ LOGGER.info("=>");
+ Long attributeValue = null;
+ if (attributeObjectValue != null) {
+ if (attributeObjectValue instanceof Long) {
+ attributeValue = (Long) attributeObjectValue;
+ } else {
+ attributeValue = new Long(((Integer) attributeObjectValue).intValue());
+ }
+ }
+ List<Long> literalValues = new ArrayList<Long>();
+
+ for (Literal literal: literals) {
+ if (!(literal instanceof SignedIntegerLiteral)) {
+ throw new IllegalArgumentException("Incompatible types in ComparisonPredicate. Attribute value is Integer, while literal is not a Integer. Literal = " + literal);
+ }
+
+ Long literalValue = ((SignedIntegerLiteral) literal).getValue();
+ literalValues.add(literalValue);
+ }
+
+ boolean returnValue = false;
+
+ switch (inOperator) {
+ case IN:
+ LOGGER.info("Applying IN");
+ returnValue = literalValues.contains(attributeValue);
+ break;
+
+ case NOT_IN:
+ LOGGER.info("Applying NOT_IN");
+ returnValue = !literalValues.contains(attributeValue);
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateString(Object attributeObjectValue) {
+ LOGGER.info("=>");
+ String attributeValue = (String) attributeObjectValue;
+ List<String> literalValues = new ArrayList<String>();
+
+ for (Literal literal: literals) {
+ if (!(literal instanceof StringLiteral)) {
+ throw new IllegalArgumentException("Incompatible types in ComparisonPredicate. Attribute value is String, while literal is not a String. Literal = " + literal);
+ }
+
+ String literalValue = ((StringLiteral) literal).getValue();
+ literalValues.add(literalValue);
+ }
+
+ boolean returnValue = false;
+
+ switch (inOperator) {
+ case IN:
+ LOGGER.info("Applying IN");
+ returnValue = literalValues.contains(attributeValue);
+ break;
+
+ case NOT_IN:
+ LOGGER.info("Applying NOT_IN");
+ returnValue = !literalValues.contains(attributeValue);
+ break;
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+} //InPredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/IsSetPredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/IsSetPredicateImpl.java
new file mode 100755
index 0000000..6c25c89
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/IsSetPredicateImpl.java
@@ -0,0 +1,245 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.IsSetPredicate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Is Set Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.IsSetPredicateImpl#getAttribute <em>Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IsSetPredicateImpl extends PredicateImpl implements IsSetPredicate {
+ private final static Logger LOGGER = Logger.getLogger(IsSetPredicateImpl.class.getName());
+
+ /**
+ * The cached value of the '{@link #getAttribute() <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttribute()
+ * @generated
+ * @ordered
+ */
+ protected ClassAttribute attribute;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IsSetPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.IS_SET_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassAttribute getAttribute() {
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAttribute(ClassAttribute newAttribute, NotificationChain msgs) {
+ ClassAttribute oldAttribute = attribute;
+ attribute = newAttribute;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE, oldAttribute, newAttribute);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttribute(ClassAttribute newAttribute) {
+ if (newAttribute != attribute) {
+ NotificationChain msgs = null;
+ if (attribute != null)
+ msgs = ((InternalEObject)attribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE, null, msgs);
+ if (newAttribute != null)
+ msgs = ((InternalEObject)newAttribute).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE, null, msgs);
+ msgs = basicSetAttribute(newAttribute, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE, newAttribute, newAttribute));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE:
+ return basicSetAttribute(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE:
+ return getAttribute();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE:
+ setAttribute((ClassAttribute)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE:
+ setAttribute((ClassAttribute)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.IS_SET_PREDICATE__ATTRIBUTE:
+ return attribute != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ // isSet operator
+ result.append("isSet ");
+
+ // ClassAttribute
+ if (attribute != null) {
+ result.append(attribute.toString());
+ } else {
+ result.append("<attribute is null>");
+ }
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ result.append(indent);
+ result.append(toString());
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ boolean returnValue = false;
+ if (object instanceof EObject) {
+ returnValue = attribute.isSet((EObject) object);
+ } else {
+ throw new IllegalArgumentException("Unsupported attribute in IsSetPredicate. Attribute = " + object);
+ }
+
+ LOGGER.info("evaluate <= " + returnValue);
+
+ return returnValue;
+ }
+} //IsSetPredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/LiteralImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/LiteralImpl.java
new file mode 100755
index 0000000..68b46a9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/LiteralImpl.java
@@ -0,0 +1,57 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.Literal;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LiteralImpl extends EObjectImpl implements Literal {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.LITERAL;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ return toString();
+ }
+} //LiteralImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/MultiplicityPredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/MultiplicityPredicateImpl.java
new file mode 100755
index 0000000..843f1d7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/MultiplicityPredicateImpl.java
@@ -0,0 +1,638 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multiplicity Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.MultiplicityPredicateImpl#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.MultiplicityPredicateImpl#getAttribute <em>Attribute</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.MultiplicityPredicateImpl#getListOperator <em>List Operator</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiplicityPredicateImpl extends PredicateImpl implements MultiplicityPredicate {
+ private final static Logger LOGGER = Logger.getLogger(SubClassPredicateImpl.class.getName());
+ private static final String NEW_LINE = System.getProperty("line.separator");
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected BooleanExpression expression;
+
+ /**
+ * This is true if the Expression containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expressionESet;
+
+ /**
+ * The cached value of the '{@link #getAttribute() <em>Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttribute()
+ * @generated
+ * @ordered
+ */
+ protected ClassAttribute attribute;
+
+ /**
+ * This is true if the Attribute containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean attributeESet;
+
+ /**
+ * The default value of the '{@link #getListOperator() <em>List Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getListOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final ListOperator LIST_OPERATOR_EDEFAULT = ListOperator.ANY;
+
+ /**
+ * The cached value of the '{@link #getListOperator() <em>List Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getListOperator()
+ * @generated
+ * @ordered
+ */
+ protected ListOperator listOperator = LIST_OPERATOR_EDEFAULT;
+
+ /**
+ * This is true if the List Operator attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean listOperatorESet;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiplicityPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.MULTIPLICITY_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanExpression getExpression() {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(BooleanExpression newExpression, NotificationChain msgs) {
+ BooleanExpression oldExpression = expression;
+ expression = newExpression;
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, oldExpression, newExpression, !oldExpressionESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(BooleanExpression newExpression) {
+ if (newExpression != expression) {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, newExpression, newExpression, !oldExpressionESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetExpression(NotificationChain msgs) {
+ BooleanExpression oldExpression = expression;
+ expression = null;
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, oldExpression, null, oldExpressionESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpression() {
+ if (expression != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, null, msgs);
+ msgs = basicUnsetExpression(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION, null, null, oldExpressionESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpression() {
+ return expressionESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ListOperator getListOperator() {
+ return listOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setListOperator(ListOperator newListOperator) {
+ ListOperator oldListOperator = listOperator;
+ listOperator = newListOperator == null ? LIST_OPERATOR_EDEFAULT : newListOperator;
+ boolean oldListOperatorESet = listOperatorESet;
+ listOperatorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.MULTIPLICITY_PREDICATE__LIST_OPERATOR, oldListOperator, listOperator, !oldListOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetListOperator() {
+ ListOperator oldListOperator = listOperator;
+ boolean oldListOperatorESet = listOperatorESet;
+ listOperator = LIST_OPERATOR_EDEFAULT;
+ listOperatorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.MULTIPLICITY_PREDICATE__LIST_OPERATOR, oldListOperator, LIST_OPERATOR_EDEFAULT, oldListOperatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetListOperator() {
+ return listOperatorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassAttribute getAttribute() {
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAttribute(ClassAttribute newAttribute, NotificationChain msgs) {
+ ClassAttribute oldAttribute = attribute;
+ attribute = newAttribute;
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, oldAttribute, newAttribute, !oldAttributeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAttribute(ClassAttribute newAttribute) {
+ if (newAttribute != attribute) {
+ NotificationChain msgs = null;
+ if (attribute != null)
+ msgs = ((InternalEObject)attribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, null, msgs);
+ if (newAttribute != null)
+ msgs = ((InternalEObject)newAttribute).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, null, msgs);
+ msgs = basicSetAttribute(newAttribute, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, newAttribute, newAttribute, !oldAttributeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetAttribute(NotificationChain msgs) {
+ ClassAttribute oldAttribute = attribute;
+ attribute = null;
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, oldAttribute, null, oldAttributeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAttribute() {
+ if (attribute != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)attribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, null, msgs);
+ msgs = basicUnsetAttribute(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldAttributeESet = attributeESet;
+ attributeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE, null, null, oldAttributeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttribute() {
+ return attributeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION:
+ return basicUnsetExpression(msgs);
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE:
+ return basicUnsetAttribute(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION:
+ return getExpression();
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE:
+ return getAttribute();
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__LIST_OPERATOR:
+ return getListOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION:
+ setExpression((BooleanExpression)newValue);
+ return;
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE:
+ setAttribute((ClassAttribute)newValue);
+ return;
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__LIST_OPERATOR:
+ setListOperator((ListOperator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION:
+ unsetExpression();
+ return;
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE:
+ unsetAttribute();
+ return;
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__LIST_OPERATOR:
+ unsetListOperator();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__EXPRESSION:
+ return isSetExpression();
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__ATTRIBUTE:
+ return isSetAttribute();
+ case FilterexprPackage.MULTIPLICITY_PREDICATE__LIST_OPERATOR:
+ return isSetListOperator();
+ }
+ return super.eIsSet(featureID);
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ // ListOperator
+ if (listOperatorESet)
+ result.append(FilterExprUtil.listOperatorToString(listOperator));
+ else
+ result.append("<unset>");
+
+ // ClassAttribute
+ result.append(' ');
+ if (attribute != null) {
+ result.append(attribute.toString());
+ } else {
+ result.append("<not set>");
+ }
+
+ // Expression
+ result.append(" (");
+ result.append(expression.toString());
+ result.append(')');
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ result.append(indent);
+ // ListOperator
+ if (listOperatorESet)
+ result.append(FilterExprUtil.listOperatorToString(listOperator));
+ else
+ result.append("<unset>");
+
+ // ClassAttribute
+ result.append(' ');
+ if (attribute != null) {
+ result.append(attribute.toString());
+ } else {
+ result.append("<not set>");
+ }
+
+ // Expression
+ result.append(" (");
+ result.append(NEW_LINE);
+
+ indent += indentSize;
+
+ result.append(expression.format(indent, indentSize));
+ result.append(NEW_LINE);
+
+ indent = indent.substring(0, indent.lastIndexOf(indentSize));
+
+ result.append(indent);
+ result.append(')');
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ boolean returnValue = false;
+
+ Object attributeObject = attribute.getListValue((EObject) object);
+
+ // subClassObject can be
+ // a simple object, e.g. Integer
+ // a list of simple objects
+ // a subClass
+ // a list of subClasses.
+
+ if (attributeObject instanceof EList<?>) {
+ LOGGER.fine("EList, so many");
+ @SuppressWarnings("unchecked")
+ EList<EObject> eObjects = (EList<EObject>) attributeObject;
+
+ switch (listOperator) {
+ case ALL:
+ returnValue = evaluateForAllListOperator(eObjects);
+ break;
+
+ case ANY:
+ returnValue = evaluateForAnyListOperator(eObjects);
+ break;
+
+ case NONE:
+ returnValue = !evaluateForAnyListOperator(eObjects);
+ break;
+
+ default:
+ throw new IllegalArgumentException("Operator not supported: " + listOperator);
+ }
+ } else {
+ LOGGER.severe("No EList, so single subclass object");
+ throw new IllegalArgumentException("Attribute \'" + attribute.getAttributeName() + "\' is not a list.");
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateForAllListOperator(EList<EObject> eObjects) {
+ LOGGER.info("=>");
+
+ boolean returnValue = true;
+
+ for (EObject eObject: eObjects) {
+ boolean result = expression.evaluate(eObject);
+ if (result == false) {
+ returnValue = false;
+ break;
+ }
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ private boolean evaluateForAnyListOperator(EList<EObject> eObjects) {
+ LOGGER.info("=>");
+
+ boolean returnValue = false;
+
+ for (Object eObject: eObjects) {
+ LOGGER.info("Handling eObject in for loop");
+ boolean result = expression.evaluate(eObject);
+ if (result == true) {
+ returnValue = true;
+ break;
+ }
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+} //MultiplicityPredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/PredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/PredicateImpl.java
new file mode 100755
index 0000000..c8ed172
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/PredicateImpl.java
@@ -0,0 +1,60 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.Predicate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PredicateImpl extends BooleanExpressionImpl implements Predicate {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ result.append(indent);
+ result.append(toString());
+
+ return result.toString();
+ }
+
+} //PredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SignedIntegerLiteralImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SignedIntegerLiteralImpl.java
new file mode 100755
index 0000000..7b6577b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SignedIntegerLiteralImpl.java
@@ -0,0 +1,204 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Signed Integer Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.SignedIntegerLiteralImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SignedIntegerLiteralImpl extends LiteralImpl implements SignedIntegerLiteral {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final long VALUE_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected long value = VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean valueESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SignedIntegerLiteralImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.SIGNED_INTEGER_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(long newValue) {
+ long oldValue = value;
+ value = newValue;
+ boolean oldValueESet = valueESet;
+ valueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.SIGNED_INTEGER_LITERAL__VALUE, oldValue, value, !oldValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetValue() {
+ long oldValue = value;
+ boolean oldValueESet = valueESet;
+ value = VALUE_EDEFAULT;
+ valueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.SIGNED_INTEGER_LITERAL__VALUE, oldValue, VALUE_EDEFAULT, oldValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetValue() {
+ return valueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.SIGNED_INTEGER_LITERAL__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.SIGNED_INTEGER_LITERAL__VALUE:
+ setValue((Long)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.SIGNED_INTEGER_LITERAL__VALUE:
+ unsetValue();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.SIGNED_INTEGER_LITERAL__VALUE:
+ return isSetValue();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ if (valueESet)
+ result.append(value);
+ else
+ result.append("<unset>");
+
+ return result.toString();
+ }
+
+} //SignedIntegerLiteralImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/StringLiteralImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/StringLiteralImpl.java
new file mode 100755
index 0000000..7d7c626
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/StringLiteralImpl.java
@@ -0,0 +1,207 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.StringLiteral;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.StringLiteralImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StringLiteralImpl extends LiteralImpl implements StringLiteral {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean valueESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StringLiteralImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.STRING_LITERAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ boolean oldValueESet = valueESet;
+ valueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.STRING_LITERAL__VALUE, oldValue, value, !oldValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetValue() {
+ String oldValue = value;
+ boolean oldValueESet = valueESet;
+ value = VALUE_EDEFAULT;
+ valueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.STRING_LITERAL__VALUE, oldValue, VALUE_EDEFAULT, oldValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetValue() {
+ return valueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.STRING_LITERAL__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.STRING_LITERAL__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.STRING_LITERAL__VALUE:
+ unsetValue();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.STRING_LITERAL__VALUE:
+ return isSetValue();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ if (valueESet) {
+ result.append("\"");
+ result.append(value);
+ result.append("\"");
+ } else {
+ result.append("<unset>");
+ }
+
+ return result.toString();
+ }
+
+} //StringLiteralImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SubClassPredicateImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SubClassPredicateImpl.java
new file mode 100755
index 0000000..359ce51
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/SubClassPredicateImpl.java
@@ -0,0 +1,462 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.SubClassPredicate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sub Class Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.SubClassPredicateImpl#getSubClassExpression <em>Sub Class Expression</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.SubClassPredicateImpl#getSubClassAttribute <em>Sub Class Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SubClassPredicateImpl extends PredicateImpl implements SubClassPredicate {
+ private final static Logger LOGGER = Logger.getLogger(SubClassPredicateImpl.class.getName());
+ private static final String NEW_LINE = System.getProperty("line.separator");
+
+ /**
+ * The cached value of the '{@link #getSubClassExpression() <em>Sub Class Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubClassExpression()
+ * @generated
+ * @ordered
+ */
+ protected BooleanExpression subClassExpression;
+
+ /**
+ * This is true if the Sub Class Expression containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subClassExpressionESet;
+
+ /**
+ * The cached value of the '{@link #getSubClassAttribute() <em>Sub Class Attribute</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubClassAttribute()
+ * @generated
+ * @ordered
+ */
+ protected ClassAttribute subClassAttribute;
+
+ /**
+ * This is true if the Sub Class Attribute containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subClassAttributeESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SubClassPredicateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.SUB_CLASS_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanExpression getSubClassExpression() {
+ return subClassExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSubClassExpression(BooleanExpression newSubClassExpression, NotificationChain msgs) {
+ BooleanExpression oldSubClassExpression = subClassExpression;
+ subClassExpression = newSubClassExpression;
+ boolean oldSubClassExpressionESet = subClassExpressionESet;
+ subClassExpressionESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, oldSubClassExpression, newSubClassExpression, !oldSubClassExpressionESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubClassExpression(BooleanExpression newSubClassExpression) {
+ if (newSubClassExpression != subClassExpression) {
+ NotificationChain msgs = null;
+ if (subClassExpression != null)
+ msgs = ((InternalEObject)subClassExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, null, msgs);
+ if (newSubClassExpression != null)
+ msgs = ((InternalEObject)newSubClassExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, null, msgs);
+ msgs = basicSetSubClassExpression(newSubClassExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldSubClassExpressionESet = subClassExpressionESet;
+ subClassExpressionESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, newSubClassExpression, newSubClassExpression, !oldSubClassExpressionESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetSubClassExpression(NotificationChain msgs) {
+ BooleanExpression oldSubClassExpression = subClassExpression;
+ subClassExpression = null;
+ boolean oldSubClassExpressionESet = subClassExpressionESet;
+ subClassExpressionESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, oldSubClassExpression, null, oldSubClassExpressionESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubClassExpression() {
+ if (subClassExpression != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)subClassExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, null, msgs);
+ msgs = basicUnsetSubClassExpression(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldSubClassExpressionESet = subClassExpressionESet;
+ subClassExpressionESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION, null, null, oldSubClassExpressionESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubClassExpression() {
+ return subClassExpressionESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassAttribute getSubClassAttribute() {
+ return subClassAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSubClassAttribute(ClassAttribute newSubClassAttribute, NotificationChain msgs) {
+ ClassAttribute oldSubClassAttribute = subClassAttribute;
+ subClassAttribute = newSubClassAttribute;
+ boolean oldSubClassAttributeESet = subClassAttributeESet;
+ subClassAttributeESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, oldSubClassAttribute, newSubClassAttribute, !oldSubClassAttributeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubClassAttribute(ClassAttribute newSubClassAttribute) {
+ if (newSubClassAttribute != subClassAttribute) {
+ NotificationChain msgs = null;
+ if (subClassAttribute != null)
+ msgs = ((InternalEObject)subClassAttribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, null, msgs);
+ if (newSubClassAttribute != null)
+ msgs = ((InternalEObject)newSubClassAttribute).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, null, msgs);
+ msgs = basicSetSubClassAttribute(newSubClassAttribute, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldSubClassAttributeESet = subClassAttributeESet;
+ subClassAttributeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, newSubClassAttribute, newSubClassAttribute, !oldSubClassAttributeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetSubClassAttribute(NotificationChain msgs) {
+ ClassAttribute oldSubClassAttribute = subClassAttribute;
+ subClassAttribute = null;
+ boolean oldSubClassAttributeESet = subClassAttributeESet;
+ subClassAttributeESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, oldSubClassAttribute, null, oldSubClassAttributeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubClassAttribute() {
+ if (subClassAttribute != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)subClassAttribute).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, null, msgs);
+ msgs = basicUnsetSubClassAttribute(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldSubClassAttributeESet = subClassAttributeESet;
+ subClassAttributeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE, null, null, oldSubClassAttributeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubClassAttribute() {
+ return subClassAttributeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION:
+ return basicUnsetSubClassExpression(msgs);
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE:
+ return basicUnsetSubClassAttribute(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION:
+ return getSubClassExpression();
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE:
+ return getSubClassAttribute();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION:
+ setSubClassExpression((BooleanExpression)newValue);
+ return;
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE:
+ setSubClassAttribute((ClassAttribute)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION:
+ unsetSubClassExpression();
+ return;
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE:
+ unsetSubClassAttribute();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_EXPRESSION:
+ return isSetSubClassExpression();
+ case FilterexprPackage.SUB_CLASS_PREDICATE__SUB_CLASS_ATTRIBUTE:
+ return isSetSubClassAttribute();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+
+ // ClassAttribute
+ if (subClassAttribute != null) {
+ result.append(subClassAttribute.toString());
+ } else {
+ result.append("@");
+ }
+
+ // Expression
+ result.append(" (");
+ result.append(subClassExpression.toString());
+ result.append(')');
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+
+ result.append(indent);
+
+ // ClassAttribute
+ if (subClassAttribute != null) {
+ result.append(subClassAttribute.toString());
+ } else {
+ result.append("@");
+ }
+
+ // Expression
+ result.append(" (");
+ result.append(NEW_LINE);
+
+ indent += indentSize;
+
+ result.append(subClassExpression.format(indent, indentSize));
+ result.append(NEW_LINE);
+
+ indent = indent.substring(0, indent.lastIndexOf(indentSize));
+
+ result.append(indent);
+ result.append(')');
+ result.append(NEW_LINE);
+
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ String subClassAttributeName = "<null>";
+ if (subClassAttribute != null) {
+ subClassAttributeName =subClassAttribute.getAttributeName();
+ }
+ LOGGER.info("=> attributeName = " + subClassAttributeName);
+
+ boolean returnValue = false;
+
+ Object subClassObject;
+ if (subClassAttribute != null) {
+ subClassObject = subClassAttribute.getValue((EObject) object);
+ } else {
+ subClassObject = object; // TODO throw exception
+ }
+
+ returnValue = subClassExpression.evaluate(subClassObject);
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+} //SubClassPredicateImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/UnaryExpressionImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/UnaryExpressionImpl.java
new file mode 100755
index 0000000..ef2fd3f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/impl/UnaryExpressionImpl.java
@@ -0,0 +1,306 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.impl;
+
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.FilterexprPackage;
+import org.genivi.booleanexpr.UnaryExpression;
+import org.genivi.booleanexpr.UnaryLogicalOperator;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>unary Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.booleanexpr.impl.UnaryExpressionImpl#getUnaryOperator <em>Unary Operator</em>}</li>
+ * <li>{@link org.genivi.booleanexpr.impl.UnaryExpressionImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UnaryExpressionImpl extends BooleanExpressionImpl implements UnaryExpression {
+ private final static Logger LOGGER = Logger.getLogger(UnaryExpressionImpl.class.getName());
+ private static final String NEW_LINE = System.getProperty("line.separator");
+
+ /**
+ * The default value of the '{@link #getUnaryOperator() <em>Unary Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnaryOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final UnaryLogicalOperator UNARY_OPERATOR_EDEFAULT = UnaryLogicalOperator.NOT;
+
+ /**
+ * The cached value of the '{@link #getUnaryOperator() <em>Unary Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnaryOperator()
+ * @generated
+ * @ordered
+ */
+ protected UnaryLogicalOperator unaryOperator = UNARY_OPERATOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected BooleanExpression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnaryExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FilterexprPackage.Literals.UNARY_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnaryLogicalOperator getUnaryOperator() {
+ return unaryOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnaryOperator(UnaryLogicalOperator newUnaryOperator) {
+ UnaryLogicalOperator oldUnaryOperator = unaryOperator;
+ unaryOperator = newUnaryOperator == null ? UNARY_OPERATOR_EDEFAULT : newUnaryOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.UNARY_EXPRESSION__UNARY_OPERATOR, oldUnaryOperator, unaryOperator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BooleanExpression getExpression() {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(BooleanExpression newExpression, NotificationChain msgs) {
+ BooleanExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FilterexprPackage.UNARY_EXPRESSION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(BooleanExpression newExpression) {
+ if (newExpression != expression) {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.UNARY_EXPRESSION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FilterexprPackage.UNARY_EXPRESSION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FilterexprPackage.UNARY_EXPRESSION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FilterexprPackage.UNARY_EXPRESSION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FilterexprPackage.UNARY_EXPRESSION__UNARY_OPERATOR:
+ return getUnaryOperator();
+ case FilterexprPackage.UNARY_EXPRESSION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FilterexprPackage.UNARY_EXPRESSION__UNARY_OPERATOR:
+ setUnaryOperator((UnaryLogicalOperator)newValue);
+ return;
+ case FilterexprPackage.UNARY_EXPRESSION__EXPRESSION:
+ setExpression((BooleanExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.UNARY_EXPRESSION__UNARY_OPERATOR:
+ setUnaryOperator(UNARY_OPERATOR_EDEFAULT);
+ return;
+ case FilterexprPackage.UNARY_EXPRESSION__EXPRESSION:
+ setExpression((BooleanExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FilterexprPackage.UNARY_EXPRESSION__UNARY_OPERATOR:
+ return unaryOperator != UNARY_OPERATOR_EDEFAULT;
+ case FilterexprPackage.UNARY_EXPRESSION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean evaluate(Object object) {
+ LOGGER.info("evaluate => " + toString());
+
+ LOGGER.info("Going to evaluate expression.");
+ boolean result = expression.evaluate(object);
+
+ switch (unaryOperator) {
+ case NOT:
+ LOGGER.fine("applying unary operator NOT.");
+ result = !result;
+ break;
+ }
+
+ LOGGER.info("evaluate <= " + result);
+ return result;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+ result.append(FilterExprUtil.unaryLogicalOperatorToString(unaryOperator));
+ result.append(" (");
+
+ result.append(expression.toString());
+ result.append(")");
+
+ return result.toString();
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String format(String indent, String indentSize) {
+ StringBuffer result = new StringBuffer();
+ result.append(indent);
+ result.append(FilterExprUtil.unaryLogicalOperatorToString(unaryOperator));
+ result.append(" (");
+ result.append(NEW_LINE);
+
+ indent += indentSize;
+
+ result.append(expression.format(indent, indentSize));
+ indent = indent.substring(0, indent.lastIndexOf(indentSize));
+ result.append(NEW_LINE);
+
+ result.append(indent);
+ result.append(")");
+ result.append(NEW_LINE);
+
+ return result.toString();
+ }
+} //unaryExpressionImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterExprUtil.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterExprUtil.java
new file mode 100755
index 0000000..0702f72
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterExprUtil.java
@@ -0,0 +1,714 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.util;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.BooleanLiteral;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.ComparisonOperator;
+import org.genivi.booleanexpr.ComparisonPredicate;
+import org.genivi.booleanexpr.DownCastPredicate;
+import org.genivi.booleanexpr.DyadicExpression;
+import org.genivi.booleanexpr.DyadicLogicalOperator;
+import org.genivi.booleanexpr.FilterexprFactory;
+import org.genivi.booleanexpr.InOperator;
+import org.genivi.booleanexpr.InPredicate;
+import org.genivi.booleanexpr.IsSetPredicate;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.Literal;
+import org.genivi.booleanexpr.MetaOperator;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.booleanexpr.StringLiteral;
+import org.genivi.booleanexpr.SubClassPredicate;
+import org.genivi.booleanexpr.UnaryExpression;
+import org.genivi.booleanexpr.UnaryLogicalOperator;
+
+
+public class FilterExprUtil {
+ private final static Logger LOGGER = Logger.getLogger(FilterExprUtil.class.getName());
+ private final static FilterexprFactory FILTER_EXPR_FACTORY = FilterexprFactory.eINSTANCE;
+ private static Map<ComparisonOperator, String> comparisonOperatorToString = new HashMap<>();
+ private static Map<String, ComparisonOperator> stringToComparisonOperator = new HashMap<>();
+ private static Map<ListOperator, String> listOperatorToString = new HashMap<>();
+ private static Map<String, ListOperator> stringToListOperator = new HashMap<>();
+ private static Map<UnaryLogicalOperator, String> unaryLogicalOperatorToString = new HashMap<>();
+ private static Map<String, UnaryLogicalOperator> stringToUnaryLogicalOperator = new HashMap<>();
+ private static Map<DyadicLogicalOperator, String> dyadicLogicalOperatorToString = new HashMap<>();
+ private static Map<String, DyadicLogicalOperator> stringToDyadicLogicalOperator = new HashMap<>();
+ private static Map<MetaOperator, String> metaOperatorToString = new HashMap<>();
+ private static Map<String, MetaOperator> stringToMetaOperator = new HashMap<>();
+ private static Map<InOperator, String> inOperatorToString = new HashMap<>();
+ private static Map<String, InOperator> stringToInOperator = new HashMap<>();
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+
+ comparisonOperatorToString.put(ComparisonOperator.EQUAL, "==");
+ comparisonOperatorToString.put(ComparisonOperator.NOT_EQUAL, "!=");
+ comparisonOperatorToString.put(ComparisonOperator.GREATER_THEN, ">");
+ comparisonOperatorToString.put(ComparisonOperator.GREATER_OR_EQUAL_THAN, ">=");
+ comparisonOperatorToString.put(ComparisonOperator.LESS_THAN, "<");
+ comparisonOperatorToString.put(ComparisonOperator.LESS_OR_EQUAL_THAN, "<=");
+
+ stringToComparisonOperator.put("==", ComparisonOperator.EQUAL);
+ stringToComparisonOperator.put("!=", ComparisonOperator.NOT_EQUAL);
+ stringToComparisonOperator.put(">", ComparisonOperator.GREATER_THEN);
+ stringToComparisonOperator.put(">=", ComparisonOperator.GREATER_OR_EQUAL_THAN);
+ stringToComparisonOperator.put("<", ComparisonOperator.LESS_THAN);
+ stringToComparisonOperator.put("<=", ComparisonOperator.LESS_OR_EQUAL_THAN);
+
+ listOperatorToString.put(ListOperator.ANY, "any");
+ listOperatorToString.put(ListOperator.ALL, "all");
+ listOperatorToString.put(ListOperator.NONE, "none");
+
+ stringToListOperator.put("any", ListOperator.ANY);
+ stringToListOperator.put("all", ListOperator.ALL);
+ stringToListOperator.put("none", ListOperator.NONE);
+
+ unaryLogicalOperatorToString.put(UnaryLogicalOperator.NOT, "not");
+
+ stringToUnaryLogicalOperator.put("not", UnaryLogicalOperator.NOT);
+
+ dyadicLogicalOperatorToString.put(DyadicLogicalOperator.AND, "and");
+ dyadicLogicalOperatorToString.put(DyadicLogicalOperator.OR, "or");
+
+ stringToDyadicLogicalOperator.put("and", DyadicLogicalOperator.AND);
+ stringToDyadicLogicalOperator.put("or", DyadicLogicalOperator.OR);
+
+ metaOperatorToString.put(MetaOperator.SIZE, "size");
+ stringToMetaOperator.put("size", MetaOperator.SIZE);
+
+ inOperatorToString.put(InOperator.IN, "in");
+ inOperatorToString.put(InOperator.NOT_IN, "not-in");
+
+ stringToInOperator.put("in", InOperator.IN);
+ stringToInOperator.put("not-in", InOperator.NOT_IN);
+ }
+
+ public static BooleanExpression parseFilterExpression(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ BooleanExpression booleanExpression = null;
+
+ expressionString = expressionString.trim();
+ if (!expressionString.isEmpty()) {
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseComparisonPredicate(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not ComparisonPredicate, continue ... (" + e.getMessage() + ")");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseDownCastPredicate(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not DownCastPredicate, continue ... (" + e.getMessage() + ")");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseDyadicExpression(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not DyadicExpression, continue ...");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseIsSetPredicate(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not IsSetPredicate, continue ...");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseMultiplicityPredicate(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not MultiplicityPredicate, continue ...");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseSubClassPredicate(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not SubClassPredicate, continue ...");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseUnaryExpression(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not UnaryExpression, continue ...");
+ }
+ }
+
+ if (booleanExpression == null) {
+ try {
+ booleanExpression = parseInPredicate(expressionString);
+ } catch (IllegalArgumentException e) {
+ LOGGER.info("expression is not InPredicate, continue ...");
+ }
+ }
+
+ if (booleanExpression == null) {
+ throw new IllegalArgumentException("Wrong expression format: " + expressionString);
+ }
+ }
+
+ LOGGER.info("<= " + booleanExpression);
+ return booleanExpression;
+
+ }
+
+ public static BooleanExpression parseUnaryExpression(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ UnaryExpression unaryExpression = FILTER_EXPR_FACTORY.createUnaryExpression();
+
+ expressionString = expressionString.trim();
+
+ // UnaryLogicalOperator
+ int spaceAfterOperatorIndex = expressionString.indexOf(" ");
+ if (spaceAfterOperatorIndex == -1) {
+ throw new IllegalArgumentException("Cannot find operator: " + expressionString);
+ }
+ String operatorString = expressionString.substring(0, spaceAfterOperatorIndex);
+ UnaryLogicalOperator operator = parseUnaryLogicalOperator(operatorString);
+ unaryExpression.setUnaryOperator(operator);
+
+ // Followed by expression between braces
+ expressionString = expressionString.substring(spaceAfterOperatorIndex);
+ expressionString = expressionString.trim();
+ if (!expressionString.startsWith("(")) {
+ throw new IllegalArgumentException("Term not starting with '(': " + expressionString);
+ }
+ int matchingClosingParenthesisIndex = findMatchingClosingParenthesis(expressionString);
+ if (matchingClosingParenthesisIndex == -1) {
+ throw new IllegalArgumentException("No matching parenthesis in term: " + expressionString);
+ }
+ String termString = expressionString.substring(1, matchingClosingParenthesisIndex);
+ BooleanExpression filterExpression = parseFilterExpression(termString);
+ unaryExpression.setExpression(filterExpression);
+
+ return unaryExpression;
+ }
+
+ public static DyadicExpression parseDyadicExpression(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ DyadicExpression dyadicExpression = FILTER_EXPR_FACTORY.createDyadicExpression();
+
+ expressionString = expressionString.trim();
+
+ // Left hand Expression
+ if (!expressionString.startsWith("(")) {
+ throw new IllegalArgumentException("Left hand term not starting with '(': " + expressionString);
+ }
+ int matchingClosingParenthesisIndex = findMatchingClosingParenthesis(expressionString);
+ if (matchingClosingParenthesisIndex == -1) {
+ throw new IllegalArgumentException("No matching parenthesis in left hand term: " + expressionString);
+ }
+ String termString = expressionString.substring(1, matchingClosingParenthesisIndex);
+ BooleanExpression filterExpression = parseFilterExpression(termString);
+ dyadicExpression.setLeftHandTerm(filterExpression);
+
+ expressionString = expressionString.substring(matchingClosingParenthesisIndex + 1);
+
+ // DyadicLogicalOperator
+ expressionString = expressionString.trim();
+ int spaceAfterOperatorIndex = expressionString.indexOf(" ");
+ if (spaceAfterOperatorIndex == -1) {
+ throw new IllegalArgumentException("Cannot find operator: " + expressionString);
+ }
+ String operatorString = expressionString.substring(0, spaceAfterOperatorIndex);
+ DyadicLogicalOperator operator = parseDyadicLogicalOperator(operatorString);
+ dyadicExpression.setLogicalOperator(operator);
+
+ expressionString = expressionString.substring(spaceAfterOperatorIndex);
+ expressionString = expressionString.trim();
+
+ // Right hand Expression
+ if (!expressionString.startsWith("(")) {
+ throw new IllegalArgumentException("Right hand term not starting with '(': " + expressionString);
+ }
+ matchingClosingParenthesisIndex = findMatchingClosingParenthesis(expressionString);
+ if (matchingClosingParenthesisIndex == -1) {
+ throw new IllegalArgumentException("No matching parenthesis in right hand term: " + expressionString);
+ }
+ termString = expressionString.substring(1, matchingClosingParenthesisIndex);
+ filterExpression = parseFilterExpression(termString);
+ dyadicExpression.setRightHandTerm(filterExpression);
+
+ return dyadicExpression;
+ }
+
+ private static int findMatchingClosingParenthesis(String expressionString) {
+ int bracesToMatch = 0;
+ int matchIndex = -1;
+
+ for (int i = 0; i < expressionString.length(); i++) {
+ char c = expressionString.charAt(i);
+ if (c == '(') {
+ bracesToMatch++;
+ } else if (c == ')') {
+ bracesToMatch--;
+ if (bracesToMatch == 0) {
+ matchIndex = i;
+ break;
+ }
+ }
+ }
+
+ return matchIndex;
+ }
+
+ public static ComparisonPredicate parseComparisonPredicate(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ ComparisonPredicate comparisonPredicate = FILTER_EXPR_FACTORY.createComparisonPredicate();
+
+ expressionString = expressionString.trim();
+
+ StringTokenizer tokens = new StringTokenizer(expressionString, " ");
+ if (tokens.countTokens() != 3) {
+ throw new IllegalArgumentException("wrong number of tokens in comparison predicate: " + expressionString);
+ }
+
+ // Attribute
+ ClassAttribute attribute = parseClassAttribute(tokens.nextToken());
+ comparisonPredicate.setAttribute(attribute);
+
+ // ComparisonOperator
+ ComparisonOperator comparisonOperator = parseComparisonOperator(tokens.nextToken());
+ comparisonPredicate.setComparisonOperator(comparisonOperator);
+
+ // Literal
+ Literal literal = parseLiteral(tokens.nextToken());
+ comparisonPredicate.setLiteral(literal);
+
+ LOGGER.info("<= " + comparisonPredicate);
+ return comparisonPredicate;
+ }
+
+ public static DownCastPredicate parseDownCastPredicate(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ DownCastPredicate downCastPredicate = FILTER_EXPR_FACTORY.createDownCastPredicate();
+
+ expressionString = expressionString.trim();
+
+ // 'DownCast to' class between '[' and ']'
+ if (!expressionString.startsWith("[")) {
+ throw new IllegalArgumentException("DownCastPredicate not starting with '[': " + expressionString);
+ }
+
+ int closingBracketIndex = expressionString.indexOf("]");
+ if (closingBracketIndex == -1) {
+ throw new IllegalArgumentException("DownCastPredicate is missing ']': " + expressionString);
+ }
+
+ String className = expressionString.substring(1, closingBracketIndex);
+ downCastPredicate.setClassName(className);
+
+ expressionString = expressionString.substring(closingBracketIndex + 1);
+ expressionString = expressionString.trim();
+
+ // Expression
+ if (!expressionString.startsWith("(")) {
+ throw new IllegalArgumentException("DownCastPredicate is missing '(': " + expressionString);
+ }
+
+ if (!expressionString.endsWith(")")) {
+ throw new IllegalArgumentException("DownCastPredicate is missing ')': " + expressionString);
+ }
+
+ expressionString = expressionString.substring(1, expressionString.length() - 1);
+ BooleanExpression filterExpression = parseFilterExpression(expressionString);
+ downCastPredicate.setExpression(filterExpression);
+
+ LOGGER.info("<= " + downCastPredicate);
+ return downCastPredicate;
+ }
+
+
+ public static IsSetPredicate parseIsSetPredicate(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ IsSetPredicate isSetPredicate = FILTER_EXPR_FACTORY.createIsSetPredicate();
+
+ expressionString = expressionString.trim();
+
+ // isSet operator
+ if (!expressionString.startsWith("isSet")) {
+ LOGGER.info("Not starting with isSet");
+ throw new IllegalArgumentException("IsSetPredicate not starting with 'isSet': " + expressionString);
+ }
+ LOGGER.info("Starting with isSet: " + expressionString);
+ expressionString = expressionString.substring(5);
+ expressionString = expressionString.trim();
+
+ // Expression
+// if (!expressionString.startsWith("(")) {
+// LOGGER.info("Not opening brace");
+// throw new IllegalArgumentException("IsSetPredicate is missing '(': " + expressionString);
+// }
+// if (!expressionString.endsWith(")")) {
+// LOGGER.info("Not closing brace");
+// throw new IllegalArgumentException("IsSetPredicate is missing ')': " + expressionString);
+// }
+
+// String className = expressionString.substring(1, expressionString.length() - 1);
+// ClassAttribute classAttribute = parseClassAttribute(className);
+
+ // ClassAttribute
+ ClassAttribute classAttribute = parseClassAttribute(expressionString);
+ isSetPredicate.setAttribute(classAttribute);
+
+ LOGGER.info("<= " + isSetPredicate);
+ return isSetPredicate;
+ }
+
+ public static MultiplicityPredicate parseMultiplicityPredicate(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ MultiplicityPredicate multiplicityPredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+
+ expressionString = expressionString.trim();
+
+ // ListOperator
+ int spaceAfterOperator = expressionString.indexOf(" ");
+ if (spaceAfterOperator == -1) {
+ throw new IllegalArgumentException("No operator found: " + expressionString);
+ }
+ String operatorString = expressionString.substring(0, spaceAfterOperator);
+ ListOperator listOperator = parseListOperator(operatorString);
+ multiplicityPredicate.setListOperator(listOperator);
+
+
+ expressionString = expressionString.substring(spaceAfterOperator);
+ expressionString = expressionString.trim();
+
+ // ClassAttribute
+ int spaceAfterAttribute = expressionString.indexOf(" ");
+ String attributeString = expressionString.substring(0, spaceAfterAttribute);
+ ClassAttribute classAttribute = parseClassAttribute(attributeString);
+ multiplicityPredicate.setAttribute(classAttribute);
+
+ expressionString = expressionString.substring(spaceAfterAttribute);
+ expressionString = expressionString.trim();
+
+ // Expression
+ if (!expressionString.startsWith("(")) {
+ throw new IllegalArgumentException("'(' expected: " + expressionString);
+ }
+ if (!expressionString.endsWith(")")) {
+ throw new IllegalArgumentException("')' expected: " + expressionString);
+ }
+
+ expressionString = expressionString.substring(1, expressionString.length() - 1);
+ BooleanExpression filterExpression = parseFilterExpression(expressionString);
+ multiplicityPredicate.setExpression(filterExpression);
+
+ LOGGER.info("<= " + multiplicityPredicate);
+ return multiplicityPredicate;
+ }
+
+ public static SubClassPredicate parseSubClassPredicate(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ SubClassPredicate subClassPredicate = FILTER_EXPR_FACTORY.createSubClassPredicate();
+
+ expressionString = expressionString.trim();
+
+ // ClassAttribute
+ int spaceAfterAttribute = expressionString.indexOf(" ");
+ if (spaceAfterAttribute == -1) {
+ throw new IllegalArgumentException("No attribute found: " + expressionString);
+ }
+ String attributeString = expressionString.substring(0, spaceAfterAttribute);
+ if (attributeString.equals("@")) {
+ subClassPredicate.setSubClassAttribute(null);
+ } else {
+ ClassAttribute classAttribute = parseClassAttribute(attributeString);
+ subClassPredicate.setSubClassAttribute(classAttribute);
+ }
+
+ expressionString = expressionString.substring(spaceAfterAttribute);
+ expressionString = expressionString.trim();
+
+ // Expression
+ if (!expressionString.startsWith("(")) {
+ throw new IllegalArgumentException("'(' expected: " + expressionString);
+ }
+ if (!expressionString.endsWith(")")) {
+ throw new IllegalArgumentException("')' expected: " + expressionString);
+ }
+
+ expressionString = expressionString.substring(1, expressionString.length() - 1);
+ BooleanExpression filterExpression = parseFilterExpression(expressionString);
+ subClassPredicate.setSubClassExpression(filterExpression);
+
+ LOGGER.info("<= " + subClassPredicate);
+ return subClassPredicate;
+ }
+
+ public static InPredicate parseInPredicate(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ InPredicate inPredicate = FILTER_EXPR_FACTORY.createInPredicate();
+
+ expressionString = expressionString.trim();
+
+
+ // Attribute - text before the first space character
+ int index = expressionString.indexOf(" ");
+ if (index == -1) {
+ throw new IllegalArgumentException("no space after class attribute found: " + expressionString);
+ }
+ String token = expressionString.substring(0, index);
+ ClassAttribute attribute = parseClassAttribute(token);
+ inPredicate.setAttribute(attribute);
+
+ // in operator - text before the next space
+ String remainingExpressioString = expressionString.substring(index).trim();
+ index = remainingExpressioString.indexOf(" ");
+ if (index == -1) {
+ throw new IllegalArgumentException("no space after in operator found: " + remainingExpressioString);
+ }
+ token = remainingExpressioString.substring(0, index);
+ InOperator inOperator = parseInOperator(token);
+ inPredicate.setInOperator(inOperator);
+
+ // Set of Literals
+ remainingExpressioString = remainingExpressioString.substring(index).trim();
+ if (remainingExpressioString.startsWith("[") &&
+ remainingExpressioString.endsWith("]")) {
+ // TODO This simple implementation doesn't handle comma's in string literals.
+ remainingExpressioString = remainingExpressioString.substring(1, remainingExpressioString.length() - 1);
+ StringTokenizer tokens = new StringTokenizer(remainingExpressioString, ",");
+ while (tokens.hasMoreElements()) {
+ Literal literal = parseLiteral(tokens.nextToken());
+ inPredicate.getLiterals().add(literal);
+ }
+ } else {
+ throw new IllegalArgumentException("no brackets around literals found: " + remainingExpressioString);
+ }
+
+ LOGGER.info("<= " + inPredicate);
+ return inPredicate;
+ }
+
+ public static ClassAttribute parseClassAttribute(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+
+ expressionString = expressionString.trim();
+ if (!expressionString.startsWith("@")) {
+ throw new IllegalArgumentException("Class attribute is not starting with @:" + expressionString);
+ }
+ expressionString = expressionString.substring(1);
+
+ // Handle 'empty' attribute
+ if (expressionString.length() == 0) {
+ return null;
+ }
+
+ ClassAttribute classAttribute = FILTER_EXPR_FACTORY.createClassAttribute();
+
+ // Handle optional meta operator
+ int metaOperatorSeparatorIndex = expressionString.indexOf("^");
+ if (metaOperatorSeparatorIndex != -1) {
+ String metaOperatorString = expressionString.substring(metaOperatorSeparatorIndex + 1);
+ MetaOperator metaOperator = stringToMetaOperator.get(metaOperatorString);
+ if (metaOperator == null) {
+ LOGGER.severe("Unknown meta operator: " + metaOperatorString);
+ throw new IllegalArgumentException("Unknown meta operator: " + metaOperatorString);
+ }
+ classAttribute.setMetaOperator(metaOperator);
+
+ expressionString = expressionString.substring(0, metaOperatorSeparatorIndex);
+ }
+
+ // Handle optional index
+ int openBracketIndex = expressionString.indexOf("[");
+ if (openBracketIndex != -1) {
+ int closeBracketIndex = expressionString.indexOf("]");
+ if (closeBracketIndex == -1) {
+ throw new IllegalArgumentException("No matching \']\' found.");
+ }
+ String indexString = expressionString.substring(openBracketIndex + 1, closeBracketIndex);
+ indexString = indexString.trim();
+ int index = Integer.valueOf(indexString);
+ classAttribute.setIndex(index);
+
+ expressionString = expressionString.substring(0, openBracketIndex);
+ }
+
+ char firstChar = expressionString.charAt(0);
+ if (!Character.isLetter(firstChar)) {
+ throw new IllegalArgumentException("Attribute name is not starting with a letter: " + expressionString);
+ }
+ classAttribute.setAttributeName(expressionString);
+
+ LOGGER.info("<= " + classAttribute);
+ return classAttribute;
+ }
+
+ public static Literal parseLiteral(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ expressionString = expressionString.trim();
+
+ Literal literal;
+
+ char firstChar = expressionString.charAt(0);
+ if (firstChar == '+' || firstChar == '-' ||
+ (firstChar >= '0' && firstChar <= '9')) {
+ literal = parseSignedIntegerLiteral(expressionString);
+ } else if (firstChar == '\"') {
+ literal = parseStringLiteral(expressionString);
+ } else if (expressionString.equals("true") || expressionString.equals("false")) {
+ literal = parseBooleanLiteral(expressionString);
+ } else {
+ throw new IllegalArgumentException(expressionString);
+ }
+
+ LOGGER.info("<= " + literal);
+ return literal;
+ }
+
+ public static BooleanLiteral parseBooleanLiteral(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ BooleanLiteral booleanLiteral = FILTER_EXPR_FACTORY.createBooleanLiteral();
+
+ expressionString = expressionString.trim();
+ if (expressionString.equals("true")) {
+ booleanLiteral.setValue(true);
+ } else if (expressionString.equals("false")) {
+ booleanLiteral.setValue(false);
+ } else {
+ throw new IllegalArgumentException(expressionString);
+ }
+
+ LOGGER.info("<= " + booleanLiteral);
+ return booleanLiteral;
+ }
+
+ public static SignedIntegerLiteral parseSignedIntegerLiteral(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ SignedIntegerLiteral signedIntegerLiteral = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+
+ expressionString = expressionString.trim();
+ signedIntegerLiteral.setValue(Long.parseLong(expressionString));
+
+ LOGGER.info("<= " + signedIntegerLiteral);
+ return signedIntegerLiteral;
+ }
+
+ public static StringLiteral parseStringLiteral(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ StringLiteral stringLiteral = FILTER_EXPR_FACTORY.createStringLiteral();
+
+ expressionString = expressionString.trim();
+ if (!expressionString.startsWith("\"")) {
+ throw new IllegalArgumentException("String not starting with quotes: " + expressionString);
+ }
+ if (!expressionString.endsWith("\"")) {
+ throw new IllegalArgumentException("String not ending with quotes: " + expressionString);
+ }
+
+ String value = expressionString.substring(1, expressionString.length() - 1);
+ stringLiteral.setValue(value);
+
+ LOGGER.info("<= " + stringLiteral);
+ return stringLiteral;
+ }
+
+ public static ComparisonOperator parseComparisonOperator(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ expressionString = expressionString.trim();
+
+ ComparisonOperator comparisonOperator = stringToComparisonOperator.get(expressionString);
+
+ LOGGER.info("<= " + comparisonOperator);
+ return comparisonOperator;
+ }
+
+ public static String comparisonOperatorToString(ComparisonOperator comparisonOperator) {
+ return comparisonOperatorToString.get(comparisonOperator);
+ }
+
+ public static UnaryLogicalOperator parseUnaryLogicalOperator(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ expressionString = expressionString.trim();
+
+ UnaryLogicalOperator unaryLogicalOperator = stringToUnaryLogicalOperator.get(expressionString);
+
+ LOGGER.info("<= " + unaryLogicalOperator);
+ return unaryLogicalOperator;
+ }
+
+ public static String unaryLogicalOperatorToString(UnaryLogicalOperator unaryLogicalOperator) {
+ return unaryLogicalOperatorToString.get(unaryLogicalOperator);
+ }
+
+ public static DyadicLogicalOperator parseDyadicLogicalOperator(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ expressionString = expressionString.trim();
+
+ DyadicLogicalOperator dyadicLogicalOperator = stringToDyadicLogicalOperator.get(expressionString);
+
+ LOGGER.info("<= " + dyadicLogicalOperator);
+ return dyadicLogicalOperator;
+ }
+
+ public static String dyadicLogicalOperatorToString(DyadicLogicalOperator dyadicLogicalOperator) {
+ return dyadicLogicalOperatorToString.get(dyadicLogicalOperator);
+ }
+
+ public static ListOperator parseListOperator(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ expressionString = expressionString.trim();
+
+ if (!expressionString.startsWith("#")) {
+ throw new IllegalArgumentException("List operator not starting with '#': " + expressionString);
+ }
+ expressionString = expressionString.substring(1);
+ ListOperator listOperator = stringToListOperator.get(expressionString);
+
+ LOGGER.info("<= " + listOperator);
+ return listOperator;
+ }
+
+ public static String listOperatorToString(ListOperator listOperator) {
+ return "#" + listOperatorToString.get(listOperator);
+ }
+
+ public static String metaOperatorToString(MetaOperator metaOperator) {
+ return metaOperatorToString.get(metaOperator);
+ }
+
+ public static InOperator parseInOperator(String expressionString) {
+ LOGGER.info("=> " + expressionString);
+ expressionString = expressionString.trim();
+
+ InOperator inOperator = stringToInOperator.get(expressionString);
+
+ LOGGER.info("<= " + inOperator);
+ return inOperator;
+ }
+
+ public static String inOperatorToString(InOperator inOperator) {
+ return inOperatorToString.get(inOperator);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprAdapterFactory.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprAdapterFactory.java
new file mode 100755
index 0000000..43b5594
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprAdapterFactory.java
@@ -0,0 +1,379 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.booleanexpr.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage
+ * @generated
+ */
+public class FilterexprAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FilterexprPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterexprAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = FilterexprPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilterexprSwitch<Adapter> modelSwitch =
+ new FilterexprSwitch<Adapter>() {
+ @Override
+ public Adapter caseBooleanExpression(BooleanExpression object) {
+ return createBooleanExpressionAdapter();
+ }
+ @Override
+ public Adapter caseUnaryExpression(UnaryExpression object) {
+ return createUnaryExpressionAdapter();
+ }
+ @Override
+ public Adapter casePredicate(Predicate object) {
+ return createPredicateAdapter();
+ }
+ @Override
+ public Adapter caseDyadicExpression(DyadicExpression object) {
+ return createDyadicExpressionAdapter();
+ }
+ @Override
+ public Adapter caseComparisonPredicate(ComparisonPredicate object) {
+ return createComparisonPredicateAdapter();
+ }
+ @Override
+ public Adapter caseInPredicate(InPredicate object) {
+ return createInPredicateAdapter();
+ }
+ @Override
+ public Adapter caseLiteral(Literal object) {
+ return createLiteralAdapter();
+ }
+ @Override
+ public Adapter caseSignedIntegerLiteral(SignedIntegerLiteral object) {
+ return createSignedIntegerLiteralAdapter();
+ }
+ @Override
+ public Adapter caseStringLiteral(StringLiteral object) {
+ return createStringLiteralAdapter();
+ }
+ @Override
+ public Adapter caseBooleanLiteral(BooleanLiteral object) {
+ return createBooleanLiteralAdapter();
+ }
+ @Override
+ public Adapter caseSubClassPredicate(SubClassPredicate object) {
+ return createSubClassPredicateAdapter();
+ }
+ @Override
+ public Adapter caseClassAttribute(ClassAttribute object) {
+ return createClassAttributeAdapter();
+ }
+ @Override
+ public Adapter caseDownCastPredicate(DownCastPredicate object) {
+ return createDownCastPredicateAdapter();
+ }
+ @Override
+ public Adapter caseMultiplicityPredicate(MultiplicityPredicate object) {
+ return createMultiplicityPredicateAdapter();
+ }
+ @Override
+ public Adapter caseIsSetPredicate(IsSetPredicate object) {
+ return createIsSetPredicateAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.BooleanExpression <em>Boolean Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.BooleanExpression
+ * @generated
+ */
+ public Adapter createBooleanExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.UnaryExpression <em>Unary Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.UnaryExpression
+ * @generated
+ */
+ public Adapter createUnaryExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.Predicate
+ * @generated
+ */
+ public Adapter createPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.DyadicExpression <em>Dyadic Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.DyadicExpression
+ * @generated
+ */
+ public Adapter createDyadicExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.ComparisonPredicate <em>Comparison Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.ComparisonPredicate
+ * @generated
+ */
+ public Adapter createComparisonPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.InPredicate <em>In Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.InPredicate
+ * @generated
+ */
+ public Adapter createInPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.Literal <em>Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.Literal
+ * @generated
+ */
+ public Adapter createLiteralAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.SignedIntegerLiteral <em>Signed Integer Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.SignedIntegerLiteral
+ * @generated
+ */
+ public Adapter createSignedIntegerLiteralAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.StringLiteral <em>String Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.StringLiteral
+ * @generated
+ */
+ public Adapter createStringLiteralAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.BooleanLiteral <em>Boolean Literal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.BooleanLiteral
+ * @generated
+ */
+ public Adapter createBooleanLiteralAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.SubClassPredicate <em>Sub Class Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.SubClassPredicate
+ * @generated
+ */
+ public Adapter createSubClassPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.ClassAttribute <em>Class Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.ClassAttribute
+ * @generated
+ */
+ public Adapter createClassAttributeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.DownCastPredicate <em>Down Cast Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.DownCastPredicate
+ * @generated
+ */
+ public Adapter createDownCastPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.MultiplicityPredicate <em>Multiplicity Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.MultiplicityPredicate
+ * @generated
+ */
+ public Adapter createMultiplicityPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.booleanexpr.IsSetPredicate <em>Is Set Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.booleanexpr.IsSetPredicate
+ * @generated
+ */
+ public Adapter createIsSetPredicateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //FilterexprAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprSwitch.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprSwitch.java
new file mode 100755
index 0000000..8db9edd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/main/java/org/genivi/booleanexpr/util/FilterexprSwitch.java
@@ -0,0 +1,429 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.booleanexpr.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.booleanexpr.FilterexprPackage
+ * @generated
+ */
+public class FilterexprSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FilterexprPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterexprSwitch() {
+ if (modelPackage == null) {
+ modelPackage = FilterexprPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case FilterexprPackage.BOOLEAN_EXPRESSION: {
+ BooleanExpression booleanExpression = (BooleanExpression)theEObject;
+ T result = caseBooleanExpression(booleanExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.UNARY_EXPRESSION: {
+ UnaryExpression unaryExpression = (UnaryExpression)theEObject;
+ T result = caseUnaryExpression(unaryExpression);
+ if (result == null) result = caseBooleanExpression(unaryExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.PREDICATE: {
+ Predicate predicate = (Predicate)theEObject;
+ T result = casePredicate(predicate);
+ if (result == null) result = caseBooleanExpression(predicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.DYADIC_EXPRESSION: {
+ DyadicExpression dyadicExpression = (DyadicExpression)theEObject;
+ T result = caseDyadicExpression(dyadicExpression);
+ if (result == null) result = caseBooleanExpression(dyadicExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.COMPARISON_PREDICATE: {
+ ComparisonPredicate comparisonPredicate = (ComparisonPredicate)theEObject;
+ T result = caseComparisonPredicate(comparisonPredicate);
+ if (result == null) result = casePredicate(comparisonPredicate);
+ if (result == null) result = caseBooleanExpression(comparisonPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.IN_PREDICATE: {
+ InPredicate inPredicate = (InPredicate)theEObject;
+ T result = caseInPredicate(inPredicate);
+ if (result == null) result = casePredicate(inPredicate);
+ if (result == null) result = caseBooleanExpression(inPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.LITERAL: {
+ Literal literal = (Literal)theEObject;
+ T result = caseLiteral(literal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.SIGNED_INTEGER_LITERAL: {
+ SignedIntegerLiteral signedIntegerLiteral = (SignedIntegerLiteral)theEObject;
+ T result = caseSignedIntegerLiteral(signedIntegerLiteral);
+ if (result == null) result = caseLiteral(signedIntegerLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.STRING_LITERAL: {
+ StringLiteral stringLiteral = (StringLiteral)theEObject;
+ T result = caseStringLiteral(stringLiteral);
+ if (result == null) result = caseLiteral(stringLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.BOOLEAN_LITERAL: {
+ BooleanLiteral booleanLiteral = (BooleanLiteral)theEObject;
+ T result = caseBooleanLiteral(booleanLiteral);
+ if (result == null) result = caseLiteral(booleanLiteral);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.SUB_CLASS_PREDICATE: {
+ SubClassPredicate subClassPredicate = (SubClassPredicate)theEObject;
+ T result = caseSubClassPredicate(subClassPredicate);
+ if (result == null) result = casePredicate(subClassPredicate);
+ if (result == null) result = caseBooleanExpression(subClassPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.CLASS_ATTRIBUTE: {
+ ClassAttribute classAttribute = (ClassAttribute)theEObject;
+ T result = caseClassAttribute(classAttribute);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.DOWN_CAST_PREDICATE: {
+ DownCastPredicate downCastPredicate = (DownCastPredicate)theEObject;
+ T result = caseDownCastPredicate(downCastPredicate);
+ if (result == null) result = casePredicate(downCastPredicate);
+ if (result == null) result = caseBooleanExpression(downCastPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.MULTIPLICITY_PREDICATE: {
+ MultiplicityPredicate multiplicityPredicate = (MultiplicityPredicate)theEObject;
+ T result = caseMultiplicityPredicate(multiplicityPredicate);
+ if (result == null) result = casePredicate(multiplicityPredicate);
+ if (result == null) result = caseBooleanExpression(multiplicityPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FilterexprPackage.IS_SET_PREDICATE: {
+ IsSetPredicate isSetPredicate = (IsSetPredicate)theEObject;
+ T result = caseIsSetPredicate(isSetPredicate);
+ if (result == null) result = casePredicate(isSetPredicate);
+ if (result == null) result = caseBooleanExpression(isSetPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Boolean Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Boolean Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBooleanExpression(BooleanExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Unary Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Unary Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnaryExpression(UnaryExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePredicate(Predicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dyadic Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dyadic Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDyadicExpression(DyadicExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comparison Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comparison Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComparisonPredicate(ComparisonPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>In Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>In Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInPredicate(InPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Literal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Literal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLiteral(Literal object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Signed Integer Literal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Signed Integer Literal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSignedIntegerLiteral(SignedIntegerLiteral object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>String Literal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>String Literal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStringLiteral(StringLiteral object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Boolean Literal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Boolean Literal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBooleanLiteral(BooleanLiteral object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sub Class Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sub Class Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSubClassPredicate(SubClassPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Class Attribute</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Class Attribute</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassAttribute(ClassAttribute object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Down Cast Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Down Cast Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDownCastPredicate(DownCastPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multiplicity Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multiplicity Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiplicityPredicate(MultiplicityPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Is Set Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Is Set Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIsSetPredicate(IsSetPredicate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //FilterexprSwitch
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/booleanexpr/BooleanExprTests.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/booleanexpr/BooleanExprTests.java
new file mode 100755
index 0000000..60ca14d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/booleanexpr/BooleanExprTests.java
@@ -0,0 +1,439 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.booleanexpr;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.booleanexpr.util.FilterExprUtil;
+import org.genivi.family.Address;
+import org.genivi.family.Family;
+import org.genivi.family.FamilyFactory;
+import org.genivi.family.Person;
+import org.genivi.family.Sexe;
+import org.genivi.family.WealthyFamily;
+import org.genivi.trafficinfo.demo.logging.EclipseConsoleFormatter;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * About the tests:
+ * - Literals and attributes are implicitly tested in predicate tests
+ */
+public class BooleanExprTests {
+ private final static Logger LOGGER = Logger.getLogger(BooleanExprTests.class.getName());
+ private static final FamilyFactory FAMILY_FACTORY = FamilyFactory.eINSTANCE;
+
+ private static final String FAMILY_SURNAME = "Smith";
+ private static final int FAMILY_NUMBER_OF_PETS = 2;
+ private static final boolean FAMILY_HAS_SWIMMINGPOOL = false;
+ private static final String FAMILY_PERSON_1_FIRSTNAME = "Jim";
+ private static final Sexe FAMILY_PERSON_1_SEXE = Sexe.MALE;
+ private static final String FAMILY_PERSON_2_FIRSTNAME = "John";
+ private static final Sexe FAMILY_PERSON_2_SEXE = Sexe.MALE;
+ private static final String FAMILY_ADDRESS_STREET = "PacificHwy";
+ private static final String[] FAMILY_FAVORITE_HOLIDAY_DESTINATIONS = {
+ "Egypt", "Austria"
+ };
+
+ private static final String WEALTHY_FAMILY_SURNAME = "Slim";
+ private static final boolean WEALTHY_FAMILY_HAS_SWIMMINGPOOL = true;
+ private static final int WEALTHY_FAMILY_FORBES_RANKING = 1;
+
+ private static Family family;
+ private static Family wealthyFamily;
+ private final static Level logLevel = Level.SEVERE;
+
+ @BeforeClass
+ public static void setUp() {
+ logSetup();
+
+ family = createFamily();
+ wealthyFamily = createWealthyFamily();
+ LOGGER.info("family = " + family);
+ }
+
+ @Test
+ public void testUnaryExpression() {
+ String expressionString;
+ BooleanExpression expression;
+
+ expressionString = "not (@surname != \"" + FAMILY_SURNAME + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "not (@surname != \"Adams\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+ }
+
+ @Test
+ public void testDyadicExpression() {
+ String expressionString;
+ BooleanExpression expression;
+
+ expressionString = "(@surname == \"" + FAMILY_SURNAME + "\") and (@numberOfPets == " + FAMILY_NUMBER_OF_PETS + ")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "(@surname != \"" + FAMILY_SURNAME + "\") and (@numberOfPets == " + FAMILY_NUMBER_OF_PETS + ")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "(@surname != \"" + FAMILY_SURNAME + "\") or (@numberOfPets == " + FAMILY_NUMBER_OF_PETS + ")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+ }
+
+ @Test
+ public void testComparisonPredicate() {
+ String expressionString;
+ BooleanExpression expression;
+
+ // Test all supported operations for type String (only EQUAL, NOT_EQUAL)
+ expressionString = "@surname == \"" + FAMILY_SURNAME + "\"";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+
+ expressionString = "@surname == \"Adams\"";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@surname != \"" + FAMILY_SURNAME + "\"";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@surname != \"Adams\"";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ // Test all supported operations for type Integer (all operations)
+ expressionString = "@numberOfPets == " + FAMILY_NUMBER_OF_PETS;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets == " + 99;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets != " + 99;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets != " + FAMILY_NUMBER_OF_PETS;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets > " + -1;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets > " + FAMILY_NUMBER_OF_PETS;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets >= " + -1;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets >= " + (FAMILY_NUMBER_OF_PETS + 1);
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets < " + 1000;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets < " + FAMILY_NUMBER_OF_PETS;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets <= " + FAMILY_NUMBER_OF_PETS;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets <= " + (FAMILY_NUMBER_OF_PETS - 1);
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ // Test all supported operations for type boolean (only EQUAL, NOT_EQUAL)
+ expressionString = "@hasASwimmingPool == " + FAMILY_HAS_SWIMMINGPOOL;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@hasASwimmingPool == " + !FAMILY_HAS_SWIMMINGPOOL;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@hasASwimmingPool != " + !FAMILY_HAS_SWIMMINGPOOL;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@hasASwimmingPool != " + FAMILY_HAS_SWIMMINGPOOL;
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ }
+
+ @Test
+ public void testSubClassPredicate() {
+ String expressionString;
+ BooleanExpression expression;
+
+ expressionString = "@address (@street == \"" + FAMILY_ADDRESS_STREET + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@address (@street != \"" + FAMILY_ADDRESS_STREET + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+ }
+
+ @Test
+ public void testDownCastPredicate() {
+ String expressionString;
+ BooleanExpression expression;
+
+ expressionString = "[@WealthyFamily](@forbesRanking < 100)";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(wealthyFamily));
+
+
+ expressionString = "[@WealthyFamily](@forbesRanking != 1)";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(wealthyFamily));
+ }
+
+ @Test
+ public void testIsSetPredicate() {
+ String expressionString;
+ BooleanExpression expression;
+
+ expressionString = "isSet @numberOfPets";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+ assertFalse("Wrong evaluation result", expression.evaluate(wealthyFamily));
+ }
+
+ @Test
+ public void testInPredicate() {
+ String expressionString;
+ BooleanExpression expression;
+
+ expressionString = "@surname in [\"Dummy\", \"Smith\", \"Dummy2\"]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@surname in [\"Dummy\", \"Dummy3\", \"Dummy2\"]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@surname not-in [\"Dummy\", \"Smith\", \"Dummy2\"]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@surname not-in [\"Dummy\", \"Dummy3\", \"Dummy2\"]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets in [2, 3, 4]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets in [4, 3, 2]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets in [4, 3, 12]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets not-in [2, 3, 4]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets not-in [4, 3, 2]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@numberOfPets not-in [4, 3, 12]";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+ }
+
+ @Test
+ public void testMultiplicityPredicate() {
+ String expressionString;
+ BooleanExpression expression;
+
+ // ANY
+ expressionString = "#any @members (@firstName == \"" + FAMILY_PERSON_1_FIRSTNAME + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "#any @members (@firstName == \"Susan\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "#any @favoriteHolidayDestinations (@ in [\"Netherlands\", \"Egypt\"])";
+ System.out.println(expressionString);
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ // ALL
+ expressionString = "#all @members (@sexe == " + Sexe.MALE.getValue() + ")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "#all @members (@firstName == \"" + FAMILY_PERSON_1_FIRSTNAME + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ // NONE
+ expressionString = "#none @members (@sexe == " + Sexe.FEMALE.getValue() + ")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "#none @members (@sexe == " + Sexe.MALE.getValue() + ")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ // MetaOperator
+ expressionString = "@members^size == 2";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@members^size == 4";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+
+ // index
+ expressionString = "@members[1] (@firstName == \"" + FAMILY_PERSON_2_FIRSTNAME + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertTrue("Wrong evaluation result", expression.evaluate(family));
+
+ expressionString = "@members[0] (@firstName == \"" + FAMILY_PERSON_2_FIRSTNAME + "\")";
+ expression = FilterExprUtil.parseFilterExpression(expressionString);
+ assertEquals("Error in expression translation", expressionString, expression.toString());
+ assertFalse("Wrong evaluation result", expression.evaluate(family));
+ }
+
+ private static void logSetup() {
+ // Create Logger
+ Logger logger = Logger.getLogger("");
+ logger.setLevel(logLevel);
+
+ Handler consoleHandler = null;
+ for (Handler handler: logger.getHandlers()) {
+ if (handler.getClass().getName().equals("java.util.logging.ConsoleHandler")) {
+ consoleHandler = handler;
+ break;
+ }
+ }
+ consoleHandler.setFormatter(new EclipseConsoleFormatter());
+ consoleHandler.setLevel(Level.INFO);
+ }
+
+ private static Family createFamily() {
+ Family family = FAMILY_FACTORY.createFamily();
+
+ family.setSurname(FAMILY_SURNAME);
+ family.setNumberOfPets(FAMILY_NUMBER_OF_PETS);
+ family.setHasASwimmingPool(FAMILY_HAS_SWIMMINGPOOL);
+
+ Person person;
+
+ person = FAMILY_FACTORY.createPerson();
+ person.setFirstName(FAMILY_PERSON_1_FIRSTNAME);
+ person.setSexe(FAMILY_PERSON_1_SEXE);
+ family.getMembers().add(person);
+
+ person = FAMILY_FACTORY.createPerson();
+ person.setFirstName(FAMILY_PERSON_2_FIRSTNAME);
+ person.setSexe(FAMILY_PERSON_2_SEXE);
+ family.getMembers().add(person);
+
+ Address address = FAMILY_FACTORY.createAddress();
+ address.setStreet(FAMILY_ADDRESS_STREET);
+ family.setAddress(address);
+
+ for (String destination: FAMILY_FAVORITE_HOLIDAY_DESTINATIONS) {
+ family.getFavoriteHolidayDestinations().add(destination);
+ }
+
+ return family;
+ }
+
+ private static Family createWealthyFamily() {
+ WealthyFamily family = FAMILY_FACTORY.createWealthyFamily();
+
+ family.setSurname(WEALTHY_FAMILY_SURNAME);
+ family.setHasASwimmingPool(WEALTHY_FAMILY_HAS_SWIMMINGPOOL);
+ family.setForbesRanking(WEALTHY_FAMILY_FORBES_RANKING);
+
+ return family;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Address.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Address.java
new file mode 100755
index 0000000..e004ca8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Address.java
@@ -0,0 +1,84 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.family.Address#getStreet <em>Street</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.family.FamilyPackage#getAddress()
+ * @model
+ * @generated
+ */
+public interface Address extends EObject {
+ /**
+ * Returns the value of the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Street</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Street</em>' attribute.
+ * @see #isSetStreet()
+ * @see #unsetStreet()
+ * @see #setStreet(String)
+ * @see org.genivi.family.FamilyPackage#getAddress_Street()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getStreet();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Address#getStreet <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Street</em>' attribute.
+ * @see #isSetStreet()
+ * @see #unsetStreet()
+ * @see #getStreet()
+ * @generated
+ */
+ void setStreet(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Address#getStreet <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStreet()
+ * @see #getStreet()
+ * @see #setStreet(String)
+ * @generated
+ */
+ void unsetStreet();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Address#getStreet <em>Street</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Street</em>' attribute is set.
+ * @see #unsetStreet()
+ * @see #getStreet()
+ * @see #setStreet(String)
+ * @generated
+ */
+ boolean isSetStreet();
+
+} // Address
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Car.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Car.java
new file mode 100755
index 0000000..09c82fc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Car.java
@@ -0,0 +1,84 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Car</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.family.Car#getNumberOfSeats <em>Number Of Seats</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.family.FamilyPackage#getCar()
+ * @model
+ * @generated
+ */
+public interface Car extends EObject {
+ /**
+ * Returns the value of the '<em><b>Number Of Seats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Seats</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Seats</em>' attribute.
+ * @see #isSetNumberOfSeats()
+ * @see #unsetNumberOfSeats()
+ * @see #setNumberOfSeats(Integer)
+ * @see org.genivi.family.FamilyPackage#getCar_NumberOfSeats()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getNumberOfSeats();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Car#getNumberOfSeats <em>Number Of Seats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Seats</em>' attribute.
+ * @see #isSetNumberOfSeats()
+ * @see #unsetNumberOfSeats()
+ * @see #getNumberOfSeats()
+ * @generated
+ */
+ void setNumberOfSeats(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Car#getNumberOfSeats <em>Number Of Seats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNumberOfSeats()
+ * @see #getNumberOfSeats()
+ * @see #setNumberOfSeats(Integer)
+ * @generated
+ */
+ void unsetNumberOfSeats();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Car#getNumberOfSeats <em>Number Of Seats</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Number Of Seats</em>' attribute is set.
+ * @see #unsetNumberOfSeats()
+ * @see #getNumberOfSeats()
+ * @see #setNumberOfSeats(Integer)
+ * @generated
+ */
+ boolean isSetNumberOfSeats();
+
+} // Car
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Family.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Family.java
new file mode 100755
index 0000000..021fdcc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Family.java
@@ -0,0 +1,282 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Family</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.family.Family#getMembers <em>Members</em>}</li>
+ * <li>{@link org.genivi.family.Family#getSurname <em>Surname</em>}</li>
+ * <li>{@link org.genivi.family.Family#getNumberOfPets <em>Number Of Pets</em>}</li>
+ * <li>{@link org.genivi.family.Family#isHasASwimmingPool <em>Has ASwimming Pool</em>}</li>
+ * <li>{@link org.genivi.family.Family#getAddress <em>Address</em>}</li>
+ * <li>{@link org.genivi.family.Family#getFavoriteHolidayDestinations <em>Favorite Holiday Destinations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.family.FamilyPackage#getFamily()
+ * @model
+ * @generated
+ */
+public interface Family extends EObject {
+ /**
+ * Returns the value of the '<em><b>Members</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.family.Person}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Members</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Members</em>' containment reference list.
+ * @see org.genivi.family.FamilyPackage#getFamily_Members()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Person> getMembers();
+
+ /**
+ * Returns the value of the '<em><b>Surname</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Surname</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Surname</em>' attribute.
+ * @see #isSetSurname()
+ * @see #unsetSurname()
+ * @see #setSurname(String)
+ * @see org.genivi.family.FamilyPackage#getFamily_Surname()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getSurname();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Family#getSurname <em>Surname</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Surname</em>' attribute.
+ * @see #isSetSurname()
+ * @see #unsetSurname()
+ * @see #getSurname()
+ * @generated
+ */
+ void setSurname(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Family#getSurname <em>Surname</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSurname()
+ * @see #getSurname()
+ * @see #setSurname(String)
+ * @generated
+ */
+ void unsetSurname();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Family#getSurname <em>Surname</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Surname</em>' attribute is set.
+ * @see #unsetSurname()
+ * @see #getSurname()
+ * @see #setSurname(String)
+ * @generated
+ */
+ boolean isSetSurname();
+
+ /**
+ * Returns the value of the '<em><b>Number Of Pets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Pets</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Pets</em>' attribute.
+ * @see #isSetNumberOfPets()
+ * @see #unsetNumberOfPets()
+ * @see #setNumberOfPets(int)
+ * @see org.genivi.family.FamilyPackage#getFamily_NumberOfPets()
+ * @model unsettable="true"
+ * @generated
+ */
+ int getNumberOfPets();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Family#getNumberOfPets <em>Number Of Pets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Pets</em>' attribute.
+ * @see #isSetNumberOfPets()
+ * @see #unsetNumberOfPets()
+ * @see #getNumberOfPets()
+ * @generated
+ */
+ void setNumberOfPets(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Family#getNumberOfPets <em>Number Of Pets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNumberOfPets()
+ * @see #getNumberOfPets()
+ * @see #setNumberOfPets(int)
+ * @generated
+ */
+ void unsetNumberOfPets();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Family#getNumberOfPets <em>Number Of Pets</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Number Of Pets</em>' attribute is set.
+ * @see #unsetNumberOfPets()
+ * @see #getNumberOfPets()
+ * @see #setNumberOfPets(int)
+ * @generated
+ */
+ boolean isSetNumberOfPets();
+
+ /**
+ * Returns the value of the '<em><b>Has ASwimming Pool</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Has ASwimming Pool</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Has ASwimming Pool</em>' attribute.
+ * @see #isSetHasASwimmingPool()
+ * @see #unsetHasASwimmingPool()
+ * @see #setHasASwimmingPool(boolean)
+ * @see org.genivi.family.FamilyPackage#getFamily_HasASwimmingPool()
+ * @model unsettable="true"
+ * @generated
+ */
+ boolean isHasASwimmingPool();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Family#isHasASwimmingPool <em>Has ASwimming Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Has ASwimming Pool</em>' attribute.
+ * @see #isSetHasASwimmingPool()
+ * @see #unsetHasASwimmingPool()
+ * @see #isHasASwimmingPool()
+ * @generated
+ */
+ void setHasASwimmingPool(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Family#isHasASwimmingPool <em>Has ASwimming Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetHasASwimmingPool()
+ * @see #isHasASwimmingPool()
+ * @see #setHasASwimmingPool(boolean)
+ * @generated
+ */
+ void unsetHasASwimmingPool();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Family#isHasASwimmingPool <em>Has ASwimming Pool</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Has ASwimming Pool</em>' attribute is set.
+ * @see #unsetHasASwimmingPool()
+ * @see #isHasASwimmingPool()
+ * @see #setHasASwimmingPool(boolean)
+ * @generated
+ */
+ boolean isSetHasASwimmingPool();
+
+ /**
+ * Returns the value of the '<em><b>Address</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Address</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Address</em>' containment reference.
+ * @see #isSetAddress()
+ * @see #unsetAddress()
+ * @see #setAddress(Address)
+ * @see org.genivi.family.FamilyPackage#getFamily_Address()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ Address getAddress();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Family#getAddress <em>Address</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Address</em>' containment reference.
+ * @see #isSetAddress()
+ * @see #unsetAddress()
+ * @see #getAddress()
+ * @generated
+ */
+ void setAddress(Address value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Family#getAddress <em>Address</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAddress()
+ * @see #getAddress()
+ * @see #setAddress(Address)
+ * @generated
+ */
+ void unsetAddress();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Family#getAddress <em>Address</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Address</em>' containment reference is set.
+ * @see #unsetAddress()
+ * @see #getAddress()
+ * @see #setAddress(Address)
+ * @generated
+ */
+ boolean isSetAddress();
+
+ /**
+ * Returns the value of the '<em><b>Favorite Holiday Destinations</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Favorite Holiday Destinations</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Favorite Holiday Destinations</em>' attribute list.
+ * @see org.genivi.family.FamilyPackage#getFamily_FavoriteHolidayDestinations()
+ * @model
+ * @generated
+ */
+ EList<String> getFavoriteHolidayDestinations();
+
+} // Family
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyFactory.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyFactory.java
new file mode 100755
index 0000000..4208ede
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyFactory.java
@@ -0,0 +1,85 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.FamilyPackage
+ * @generated
+ */
+public interface FamilyFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FamilyFactory eINSTANCE = org.genivi.family.impl.FamilyFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Family</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Family</em>'.
+ * @generated
+ */
+ Family createFamily();
+
+ /**
+ * Returns a new object of class '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Person</em>'.
+ * @generated
+ */
+ Person createPerson();
+
+ /**
+ * Returns a new object of class '<em>Car</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Car</em>'.
+ * @generated
+ */
+ Car createCar();
+
+ /**
+ * Returns a new object of class '<em>Address</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Address</em>'.
+ * @generated
+ */
+ Address createAddress();
+
+ /**
+ * Returns a new object of class '<em>Wealthy Family</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Wealthy Family</em>'.
+ * @generated
+ */
+ WealthyFamily createWealthyFamily();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FamilyPackage getFamilyPackage();
+
+} //FamilyFactory
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyPackage.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyPackage.java
new file mode 100755
index 0000000..05b8d31
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/FamilyPackage.java
@@ -0,0 +1,707 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.FamilyFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface FamilyPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "family";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.family";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "family";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ FamilyPackage eINSTANCE = org.genivi.family.impl.FamilyPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.family.impl.FamilyImpl <em>Family</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.FamilyImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getFamily()
+ * @generated
+ */
+ int FAMILY = 0;
+
+ /**
+ * The feature id for the '<em><b>Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY__MEMBERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Surname</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY__SURNAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Number Of Pets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY__NUMBER_OF_PETS = 2;
+
+ /**
+ * The feature id for the '<em><b>Has ASwimming Pool</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY__HAS_ASWIMMING_POOL = 3;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY__ADDRESS = 4;
+
+ /**
+ * The feature id for the '<em><b>Favorite Holiday Destinations</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY__FAVORITE_HOLIDAY_DESTINATIONS = 5;
+
+ /**
+ * The number of structural features of the '<em>Family</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FAMILY_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.genivi.family.impl.PersonImpl <em>Person</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.PersonImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getPerson()
+ * @generated
+ */
+ int PERSON = 1;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__FIRST_NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Sexe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__SEXE = 1;
+
+ /**
+ * The feature id for the '<em><b>Owned Cars</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__OWNED_CARS = 2;
+
+ /**
+ * The number of structural features of the '<em>Person</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.family.impl.CarImpl <em>Car</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.CarImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getCar()
+ * @generated
+ */
+ int CAR = 2;
+
+ /**
+ * The feature id for the '<em><b>Number Of Seats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAR__NUMBER_OF_SEATS = 0;
+
+ /**
+ * The number of structural features of the '<em>Car</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAR_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.family.impl.AddressImpl <em>Address</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.AddressImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getAddress()
+ * @generated
+ */
+ int ADDRESS = 3;
+
+ /**
+ * The feature id for the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS__STREET = 0;
+
+ /**
+ * The number of structural features of the '<em>Address</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.family.impl.WealthyFamilyImpl <em>Wealthy Family</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.WealthyFamilyImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getWealthyFamily()
+ * @generated
+ */
+ int WEALTHY_FAMILY = 4;
+
+ /**
+ * The feature id for the '<em><b>Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__MEMBERS = FAMILY__MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Surname</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__SURNAME = FAMILY__SURNAME;
+
+ /**
+ * The feature id for the '<em><b>Number Of Pets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__NUMBER_OF_PETS = FAMILY__NUMBER_OF_PETS;
+
+ /**
+ * The feature id for the '<em><b>Has ASwimming Pool</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__HAS_ASWIMMING_POOL = FAMILY__HAS_ASWIMMING_POOL;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__ADDRESS = FAMILY__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>Favorite Holiday Destinations</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__FAVORITE_HOLIDAY_DESTINATIONS = FAMILY__FAVORITE_HOLIDAY_DESTINATIONS;
+
+ /**
+ * The feature id for the '<em><b>Forbes Ranking</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY__FORBES_RANKING = FAMILY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Wealthy Family</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WEALTHY_FAMILY_FEATURE_COUNT = FAMILY_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.family.Sexe <em>Sexe</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.Sexe
+ * @see org.genivi.family.impl.FamilyPackageImpl#getSexe()
+ * @generated
+ */
+ int SEXE = 5;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.family.Family <em>Family</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Family</em>'.
+ * @see org.genivi.family.Family
+ * @generated
+ */
+ EClass getFamily();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.family.Family#getMembers <em>Members</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Members</em>'.
+ * @see org.genivi.family.Family#getMembers()
+ * @see #getFamily()
+ * @generated
+ */
+ EReference getFamily_Members();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Family#getSurname <em>Surname</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Surname</em>'.
+ * @see org.genivi.family.Family#getSurname()
+ * @see #getFamily()
+ * @generated
+ */
+ EAttribute getFamily_Surname();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Family#getNumberOfPets <em>Number Of Pets</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Pets</em>'.
+ * @see org.genivi.family.Family#getNumberOfPets()
+ * @see #getFamily()
+ * @generated
+ */
+ EAttribute getFamily_NumberOfPets();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Family#isHasASwimmingPool <em>Has ASwimming Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Has ASwimming Pool</em>'.
+ * @see org.genivi.family.Family#isHasASwimmingPool()
+ * @see #getFamily()
+ * @generated
+ */
+ EAttribute getFamily_HasASwimmingPool();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.family.Family#getAddress <em>Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Address</em>'.
+ * @see org.genivi.family.Family#getAddress()
+ * @see #getFamily()
+ * @generated
+ */
+ EReference getFamily_Address();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.family.Family#getFavoriteHolidayDestinations <em>Favorite Holiday Destinations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Favorite Holiday Destinations</em>'.
+ * @see org.genivi.family.Family#getFavoriteHolidayDestinations()
+ * @see #getFamily()
+ * @generated
+ */
+ EAttribute getFamily_FavoriteHolidayDestinations();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.family.Person <em>Person</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Person</em>'.
+ * @see org.genivi.family.Person
+ * @generated
+ */
+ EClass getPerson();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Person#getFirstName <em>First Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>First Name</em>'.
+ * @see org.genivi.family.Person#getFirstName()
+ * @see #getPerson()
+ * @generated
+ */
+ EAttribute getPerson_FirstName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Person#getSexe <em>Sexe</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sexe</em>'.
+ * @see org.genivi.family.Person#getSexe()
+ * @see #getPerson()
+ * @generated
+ */
+ EAttribute getPerson_Sexe();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.family.Person#getOwnedCars <em>Owned Cars</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Owned Cars</em>'.
+ * @see org.genivi.family.Person#getOwnedCars()
+ * @see #getPerson()
+ * @generated
+ */
+ EReference getPerson_OwnedCars();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.family.Car <em>Car</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Car</em>'.
+ * @see org.genivi.family.Car
+ * @generated
+ */
+ EClass getCar();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Car#getNumberOfSeats <em>Number Of Seats</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Seats</em>'.
+ * @see org.genivi.family.Car#getNumberOfSeats()
+ * @see #getCar()
+ * @generated
+ */
+ EAttribute getCar_NumberOfSeats();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.family.Address <em>Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Address</em>'.
+ * @see org.genivi.family.Address
+ * @generated
+ */
+ EClass getAddress();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.Address#getStreet <em>Street</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Street</em>'.
+ * @see org.genivi.family.Address#getStreet()
+ * @see #getAddress()
+ * @generated
+ */
+ EAttribute getAddress_Street();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.family.WealthyFamily <em>Wealthy Family</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Wealthy Family</em>'.
+ * @see org.genivi.family.WealthyFamily
+ * @generated
+ */
+ EClass getWealthyFamily();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.family.WealthyFamily#getForbesRanking <em>Forbes Ranking</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Forbes Ranking</em>'.
+ * @see org.genivi.family.WealthyFamily#getForbesRanking()
+ * @see #getWealthyFamily()
+ * @generated
+ */
+ EAttribute getWealthyFamily_ForbesRanking();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.family.Sexe <em>Sexe</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Sexe</em>'.
+ * @see org.genivi.family.Sexe
+ * @generated
+ */
+ EEnum getSexe();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ FamilyFactory getFamilyFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.family.impl.FamilyImpl <em>Family</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.FamilyImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getFamily()
+ * @generated
+ */
+ EClass FAMILY = eINSTANCE.getFamily();
+
+ /**
+ * The meta object literal for the '<em><b>Members</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FAMILY__MEMBERS = eINSTANCE.getFamily_Members();
+
+ /**
+ * The meta object literal for the '<em><b>Surname</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAMILY__SURNAME = eINSTANCE.getFamily_Surname();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Pets</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAMILY__NUMBER_OF_PETS = eINSTANCE.getFamily_NumberOfPets();
+
+ /**
+ * The meta object literal for the '<em><b>Has ASwimming Pool</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAMILY__HAS_ASWIMMING_POOL = eINSTANCE.getFamily_HasASwimmingPool();
+
+ /**
+ * The meta object literal for the '<em><b>Address</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FAMILY__ADDRESS = eINSTANCE.getFamily_Address();
+
+ /**
+ * The meta object literal for the '<em><b>Favorite Holiday Destinations</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FAMILY__FAVORITE_HOLIDAY_DESTINATIONS = eINSTANCE.getFamily_FavoriteHolidayDestinations();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.family.impl.PersonImpl <em>Person</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.PersonImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getPerson()
+ * @generated
+ */
+ EClass PERSON = eINSTANCE.getPerson();
+
+ /**
+ * The meta object literal for the '<em><b>First Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERSON__FIRST_NAME = eINSTANCE.getPerson_FirstName();
+
+ /**
+ * The meta object literal for the '<em><b>Sexe</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERSON__SEXE = eINSTANCE.getPerson_Sexe();
+
+ /**
+ * The meta object literal for the '<em><b>Owned Cars</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PERSON__OWNED_CARS = eINSTANCE.getPerson_OwnedCars();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.family.impl.CarImpl <em>Car</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.CarImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getCar()
+ * @generated
+ */
+ EClass CAR = eINSTANCE.getCar();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Seats</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CAR__NUMBER_OF_SEATS = eINSTANCE.getCar_NumberOfSeats();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.family.impl.AddressImpl <em>Address</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.AddressImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getAddress()
+ * @generated
+ */
+ EClass ADDRESS = eINSTANCE.getAddress();
+
+ /**
+ * The meta object literal for the '<em><b>Street</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADDRESS__STREET = eINSTANCE.getAddress_Street();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.family.impl.WealthyFamilyImpl <em>Wealthy Family</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.impl.WealthyFamilyImpl
+ * @see org.genivi.family.impl.FamilyPackageImpl#getWealthyFamily()
+ * @generated
+ */
+ EClass WEALTHY_FAMILY = eINSTANCE.getWealthyFamily();
+
+ /**
+ * The meta object literal for the '<em><b>Forbes Ranking</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute WEALTHY_FAMILY__FORBES_RANKING = eINSTANCE.getWealthyFamily_ForbesRanking();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.family.Sexe <em>Sexe</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.Sexe
+ * @see org.genivi.family.impl.FamilyPackageImpl#getSexe()
+ * @generated
+ */
+ EEnum SEXE = eINSTANCE.getSexe();
+
+ }
+
+} //FamilyPackage
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Person.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Person.java
new file mode 100755
index 0000000..73cd952
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Person.java
@@ -0,0 +1,160 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Person</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.family.Person#getFirstName <em>First Name</em>}</li>
+ * <li>{@link org.genivi.family.Person#getSexe <em>Sexe</em>}</li>
+ * <li>{@link org.genivi.family.Person#getOwnedCars <em>Owned Cars</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.family.FamilyPackage#getPerson()
+ * @model
+ * @generated
+ */
+public interface Person extends EObject {
+ /**
+ * Returns the value of the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>First Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>First Name</em>' attribute.
+ * @see #isSetFirstName()
+ * @see #unsetFirstName()
+ * @see #setFirstName(String)
+ * @see org.genivi.family.FamilyPackage#getPerson_FirstName()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getFirstName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Person#getFirstName <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>First Name</em>' attribute.
+ * @see #isSetFirstName()
+ * @see #unsetFirstName()
+ * @see #getFirstName()
+ * @generated
+ */
+ void setFirstName(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Person#getFirstName <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFirstName()
+ * @see #getFirstName()
+ * @see #setFirstName(String)
+ * @generated
+ */
+ void unsetFirstName();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Person#getFirstName <em>First Name</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>First Name</em>' attribute is set.
+ * @see #unsetFirstName()
+ * @see #getFirstName()
+ * @see #setFirstName(String)
+ * @generated
+ */
+ boolean isSetFirstName();
+
+ /**
+ * Returns the value of the '<em><b>Sexe</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.family.Sexe}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sexe</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sexe</em>' attribute.
+ * @see org.genivi.family.Sexe
+ * @see #isSetSexe()
+ * @see #unsetSexe()
+ * @see #setSexe(Sexe)
+ * @see org.genivi.family.FamilyPackage#getPerson_Sexe()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ Sexe getSexe();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.Person#getSexe <em>Sexe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sexe</em>' attribute.
+ * @see org.genivi.family.Sexe
+ * @see #isSetSexe()
+ * @see #unsetSexe()
+ * @see #getSexe()
+ * @generated
+ */
+ void setSexe(Sexe value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.Person#getSexe <em>Sexe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSexe()
+ * @see #getSexe()
+ * @see #setSexe(Sexe)
+ * @generated
+ */
+ void unsetSexe();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.Person#getSexe <em>Sexe</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sexe</em>' attribute is set.
+ * @see #unsetSexe()
+ * @see #getSexe()
+ * @see #setSexe(Sexe)
+ * @generated
+ */
+ boolean isSetSexe();
+
+ /**
+ * Returns the value of the '<em><b>Owned Cars</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.family.Car}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owned Cars</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owned Cars</em>' containment reference list.
+ * @see org.genivi.family.FamilyPackage#getPerson_OwnedCars()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Car> getOwnedCars();
+
+} // Person
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Sexe.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Sexe.java
new file mode 100755
index 0000000..299eb4e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/Sexe.java
@@ -0,0 +1,215 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Sexe</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.FamilyPackage#getSexe()
+ * @model
+ * @generated
+ */
+public enum Sexe implements Enumerator {
+ /**
+ * The '<em><b>MALE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MALE_VALUE
+ * @generated
+ * @ordered
+ */
+ MALE(0, "MALE", "MALE"),
+
+ /**
+ * The '<em><b>FEMALE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FEMALE_VALUE
+ * @generated
+ * @ordered
+ */
+ FEMALE(1, "FEMALE", "FEMALE");
+
+ /**
+ * The '<em><b>MALE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MALE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MALE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MALE_VALUE = 0;
+
+ /**
+ * The '<em><b>FEMALE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FEMALE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FEMALE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FEMALE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Sexe</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Sexe[] VALUES_ARRAY =
+ new Sexe[] {
+ MALE,
+ FEMALE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Sexe</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Sexe> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Sexe</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Sexe get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Sexe result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Sexe</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Sexe getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Sexe result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Sexe</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Sexe get(int value) {
+ switch (value) {
+ case MALE_VALUE: return MALE;
+ case FEMALE_VALUE: return FEMALE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Sexe(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Sexe
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/WealthyFamily.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/WealthyFamily.java
new file mode 100755
index 0000000..7b5ed67
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/WealthyFamily.java
@@ -0,0 +1,83 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Wealthy Family</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.family.WealthyFamily#getForbesRanking <em>Forbes Ranking</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.family.FamilyPackage#getWealthyFamily()
+ * @model
+ * @generated
+ */
+public interface WealthyFamily extends Family {
+ /**
+ * Returns the value of the '<em><b>Forbes Ranking</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Forbes Ranking</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Forbes Ranking</em>' attribute.
+ * @see #isSetForbesRanking()
+ * @see #unsetForbesRanking()
+ * @see #setForbesRanking(int)
+ * @see org.genivi.family.FamilyPackage#getWealthyFamily_ForbesRanking()
+ * @model unsettable="true"
+ * @generated
+ */
+ int getForbesRanking();
+
+ /**
+ * Sets the value of the '{@link org.genivi.family.WealthyFamily#getForbesRanking <em>Forbes Ranking</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Forbes Ranking</em>' attribute.
+ * @see #isSetForbesRanking()
+ * @see #unsetForbesRanking()
+ * @see #getForbesRanking()
+ * @generated
+ */
+ void setForbesRanking(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.family.WealthyFamily#getForbesRanking <em>Forbes Ranking</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetForbesRanking()
+ * @see #getForbesRanking()
+ * @see #setForbesRanking(int)
+ * @generated
+ */
+ void unsetForbesRanking();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.family.WealthyFamily#getForbesRanking <em>Forbes Ranking</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Forbes Ranking</em>' attribute is set.
+ * @see #unsetForbesRanking()
+ * @see #getForbesRanking()
+ * @see #setForbesRanking(int)
+ * @generated
+ */
+ boolean isSetForbesRanking();
+
+} // WealthyFamily
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/AddressImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/AddressImpl.java
new file mode 100755
index 0000000..8b1e40e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/AddressImpl.java
@@ -0,0 +1,204 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.family.Address;
+import org.genivi.family.FamilyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Address</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.family.impl.AddressImpl#getStreet <em>Street</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AddressImpl extends EObjectImpl implements Address {
+ /**
+ * The default value of the '{@link #getStreet() <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStreet()
+ * @generated
+ * @ordered
+ */
+ protected static final String STREET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStreet() <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStreet()
+ * @generated
+ * @ordered
+ */
+ protected String street = STREET_EDEFAULT;
+
+ /**
+ * This is true if the Street attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean streetESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AddressImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FamilyPackage.Literals.ADDRESS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getStreet() {
+ return street;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStreet(String newStreet) {
+ String oldStreet = street;
+ street = newStreet;
+ boolean oldStreetESet = streetESet;
+ streetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.ADDRESS__STREET, oldStreet, street, !oldStreetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStreet() {
+ String oldStreet = street;
+ boolean oldStreetESet = streetESet;
+ street = STREET_EDEFAULT;
+ streetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.ADDRESS__STREET, oldStreet, STREET_EDEFAULT, oldStreetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStreet() {
+ return streetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FamilyPackage.ADDRESS__STREET:
+ return getStreet();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FamilyPackage.ADDRESS__STREET:
+ setStreet((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.ADDRESS__STREET:
+ unsetStreet();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.ADDRESS__STREET:
+ return isSetStreet();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (street: ");
+ if (streetESet) result.append(street); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //AddressImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/CarImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/CarImpl.java
new file mode 100755
index 0000000..c465489
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/CarImpl.java
@@ -0,0 +1,204 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.family.Car;
+import org.genivi.family.FamilyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Car</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.family.impl.CarImpl#getNumberOfSeats <em>Number Of Seats</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CarImpl extends EObjectImpl implements Car {
+ /**
+ * The default value of the '{@link #getNumberOfSeats() <em>Number Of Seats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfSeats()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer NUMBER_OF_SEATS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNumberOfSeats() <em>Number Of Seats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfSeats()
+ * @generated
+ * @ordered
+ */
+ protected Integer numberOfSeats = NUMBER_OF_SEATS_EDEFAULT;
+
+ /**
+ * This is true if the Number Of Seats attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean numberOfSeatsESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CarImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FamilyPackage.Literals.CAR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getNumberOfSeats() {
+ return numberOfSeats;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfSeats(Integer newNumberOfSeats) {
+ Integer oldNumberOfSeats = numberOfSeats;
+ numberOfSeats = newNumberOfSeats;
+ boolean oldNumberOfSeatsESet = numberOfSeatsESet;
+ numberOfSeatsESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.CAR__NUMBER_OF_SEATS, oldNumberOfSeats, numberOfSeats, !oldNumberOfSeatsESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetNumberOfSeats() {
+ Integer oldNumberOfSeats = numberOfSeats;
+ boolean oldNumberOfSeatsESet = numberOfSeatsESet;
+ numberOfSeats = NUMBER_OF_SEATS_EDEFAULT;
+ numberOfSeatsESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.CAR__NUMBER_OF_SEATS, oldNumberOfSeats, NUMBER_OF_SEATS_EDEFAULT, oldNumberOfSeatsESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNumberOfSeats() {
+ return numberOfSeatsESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FamilyPackage.CAR__NUMBER_OF_SEATS:
+ return getNumberOfSeats();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FamilyPackage.CAR__NUMBER_OF_SEATS:
+ setNumberOfSeats((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.CAR__NUMBER_OF_SEATS:
+ unsetNumberOfSeats();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.CAR__NUMBER_OF_SEATS:
+ return isSetNumberOfSeats();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (numberOfSeats: ");
+ if (numberOfSeatsESet) result.append(numberOfSeats); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //CarImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyFactoryImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyFactoryImpl.java
new file mode 100755
index 0000000..a6ec37d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyFactoryImpl.java
@@ -0,0 +1,197 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.family.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FamilyFactoryImpl extends EFactoryImpl implements FamilyFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FamilyFactory init() {
+ try {
+ FamilyFactory theFamilyFactory = (FamilyFactory)EPackage.Registry.INSTANCE.getEFactory(FamilyPackage.eNS_URI);
+ if (theFamilyFactory != null) {
+ return theFamilyFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FamilyFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FamilyFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case FamilyPackage.FAMILY: return createFamily();
+ case FamilyPackage.PERSON: return createPerson();
+ case FamilyPackage.CAR: return createCar();
+ case FamilyPackage.ADDRESS: return createAddress();
+ case FamilyPackage.WEALTHY_FAMILY: return createWealthyFamily();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case FamilyPackage.SEXE:
+ return createSexeFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case FamilyPackage.SEXE:
+ return convertSexeToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Family createFamily() {
+ FamilyImpl family = new FamilyImpl();
+ return family;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person createPerson() {
+ PersonImpl person = new PersonImpl();
+ return person;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Car createCar() {
+ CarImpl car = new CarImpl();
+ return car;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Address createAddress() {
+ AddressImpl address = new AddressImpl();
+ return address;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WealthyFamily createWealthyFamily() {
+ WealthyFamilyImpl wealthyFamily = new WealthyFamilyImpl();
+ return wealthyFamily;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sexe createSexeFromString(EDataType eDataType, String initialValue) {
+ Sexe result = Sexe.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSexeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FamilyPackage getFamilyPackage() {
+ return (FamilyPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FamilyPackage getPackage() {
+ return FamilyPackage.eINSTANCE;
+ }
+
+} //FamilyFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyImpl.java
new file mode 100755
index 0000000..c1b027c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyImpl.java
@@ -0,0 +1,604 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.family.Address;
+import org.genivi.family.Family;
+import org.genivi.family.FamilyPackage;
+import org.genivi.family.Person;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Family</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.family.impl.FamilyImpl#getMembers <em>Members</em>}</li>
+ * <li>{@link org.genivi.family.impl.FamilyImpl#getSurname <em>Surname</em>}</li>
+ * <li>{@link org.genivi.family.impl.FamilyImpl#getNumberOfPets <em>Number Of Pets</em>}</li>
+ * <li>{@link org.genivi.family.impl.FamilyImpl#isHasASwimmingPool <em>Has ASwimming Pool</em>}</li>
+ * <li>{@link org.genivi.family.impl.FamilyImpl#getAddress <em>Address</em>}</li>
+ * <li>{@link org.genivi.family.impl.FamilyImpl#getFavoriteHolidayDestinations <em>Favorite Holiday Destinations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FamilyImpl extends EObjectImpl implements Family {
+ /**
+ * The cached value of the '{@link #getMembers() <em>Members</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMembers()
+ * @generated
+ * @ordered
+ */
+ protected EList<Person> members;
+
+ /**
+ * The default value of the '{@link #getSurname() <em>Surname</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSurname()
+ * @generated
+ * @ordered
+ */
+ protected static final String SURNAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSurname() <em>Surname</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSurname()
+ * @generated
+ * @ordered
+ */
+ protected String surname = SURNAME_EDEFAULT;
+
+ /**
+ * This is true if the Surname attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean surnameESet;
+
+ /**
+ * The default value of the '{@link #getNumberOfPets() <em>Number Of Pets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfPets()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUMBER_OF_PETS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNumberOfPets() <em>Number Of Pets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfPets()
+ * @generated
+ * @ordered
+ */
+ protected int numberOfPets = NUMBER_OF_PETS_EDEFAULT;
+
+ /**
+ * This is true if the Number Of Pets attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean numberOfPetsESet;
+
+ /**
+ * The default value of the '{@link #isHasASwimmingPool() <em>Has ASwimming Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHasASwimmingPool()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean HAS_ASWIMMING_POOL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isHasASwimmingPool() <em>Has ASwimming Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHasASwimmingPool()
+ * @generated
+ * @ordered
+ */
+ protected boolean hasASwimmingPool = HAS_ASWIMMING_POOL_EDEFAULT;
+
+ /**
+ * This is true if the Has ASwimming Pool attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean hasASwimmingPoolESet;
+
+ /**
+ * The cached value of the '{@link #getAddress() <em>Address</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected Address address;
+
+ /**
+ * This is true if the Address containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean addressESet;
+
+ /**
+ * The cached value of the '{@link #getFavoriteHolidayDestinations() <em>Favorite Holiday Destinations</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFavoriteHolidayDestinations()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> favoriteHolidayDestinations;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FamilyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FamilyPackage.Literals.FAMILY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Person> getMembers() {
+ if (members == null) {
+ members = new EObjectContainmentEList<Person>(Person.class, this, FamilyPackage.FAMILY__MEMBERS);
+ }
+ return members;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSurname() {
+ return surname;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSurname(String newSurname) {
+ String oldSurname = surname;
+ surname = newSurname;
+ boolean oldSurnameESet = surnameESet;
+ surnameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.FAMILY__SURNAME, oldSurname, surname, !oldSurnameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSurname() {
+ String oldSurname = surname;
+ boolean oldSurnameESet = surnameESet;
+ surname = SURNAME_EDEFAULT;
+ surnameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.FAMILY__SURNAME, oldSurname, SURNAME_EDEFAULT, oldSurnameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSurname() {
+ return surnameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumberOfPets() {
+ return numberOfPets;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfPets(int newNumberOfPets) {
+ int oldNumberOfPets = numberOfPets;
+ numberOfPets = newNumberOfPets;
+ boolean oldNumberOfPetsESet = numberOfPetsESet;
+ numberOfPetsESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.FAMILY__NUMBER_OF_PETS, oldNumberOfPets, numberOfPets, !oldNumberOfPetsESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetNumberOfPets() {
+ int oldNumberOfPets = numberOfPets;
+ boolean oldNumberOfPetsESet = numberOfPetsESet;
+ numberOfPets = NUMBER_OF_PETS_EDEFAULT;
+ numberOfPetsESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.FAMILY__NUMBER_OF_PETS, oldNumberOfPets, NUMBER_OF_PETS_EDEFAULT, oldNumberOfPetsESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNumberOfPets() {
+ return numberOfPetsESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isHasASwimmingPool() {
+ return hasASwimmingPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHasASwimmingPool(boolean newHasASwimmingPool) {
+ boolean oldHasASwimmingPool = hasASwimmingPool;
+ hasASwimmingPool = newHasASwimmingPool;
+ boolean oldHasASwimmingPoolESet = hasASwimmingPoolESet;
+ hasASwimmingPoolESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.FAMILY__HAS_ASWIMMING_POOL, oldHasASwimmingPool, hasASwimmingPool, !oldHasASwimmingPoolESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetHasASwimmingPool() {
+ boolean oldHasASwimmingPool = hasASwimmingPool;
+ boolean oldHasASwimmingPoolESet = hasASwimmingPoolESet;
+ hasASwimmingPool = HAS_ASWIMMING_POOL_EDEFAULT;
+ hasASwimmingPoolESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.FAMILY__HAS_ASWIMMING_POOL, oldHasASwimmingPool, HAS_ASWIMMING_POOL_EDEFAULT, oldHasASwimmingPoolESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetHasASwimmingPool() {
+ return hasASwimmingPoolESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Address getAddress() {
+ return address;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAddress(Address newAddress, NotificationChain msgs) {
+ Address oldAddress = address;
+ address = newAddress;
+ boolean oldAddressESet = addressESet;
+ addressESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FamilyPackage.FAMILY__ADDRESS, oldAddress, newAddress, !oldAddressESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAddress(Address newAddress) {
+ if (newAddress != address) {
+ NotificationChain msgs = null;
+ if (address != null)
+ msgs = ((InternalEObject)address).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FamilyPackage.FAMILY__ADDRESS, null, msgs);
+ if (newAddress != null)
+ msgs = ((InternalEObject)newAddress).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - FamilyPackage.FAMILY__ADDRESS, null, msgs);
+ msgs = basicSetAddress(newAddress, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldAddressESet = addressESet;
+ addressESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.FAMILY__ADDRESS, newAddress, newAddress, !oldAddressESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetAddress(NotificationChain msgs) {
+ Address oldAddress = address;
+ address = null;
+ boolean oldAddressESet = addressESet;
+ addressESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, FamilyPackage.FAMILY__ADDRESS, oldAddress, null, oldAddressESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAddress() {
+ if (address != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)address).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FamilyPackage.FAMILY__ADDRESS, null, msgs);
+ msgs = basicUnsetAddress(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldAddressESet = addressESet;
+ addressESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.FAMILY__ADDRESS, null, null, oldAddressESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAddress() {
+ return addressESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getFavoriteHolidayDestinations() {
+ if (favoriteHolidayDestinations == null) {
+ favoriteHolidayDestinations = new EDataTypeUniqueEList<String>(String.class, this, FamilyPackage.FAMILY__FAVORITE_HOLIDAY_DESTINATIONS);
+ }
+ return favoriteHolidayDestinations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FamilyPackage.FAMILY__MEMBERS:
+ return ((InternalEList<?>)getMembers()).basicRemove(otherEnd, msgs);
+ case FamilyPackage.FAMILY__ADDRESS:
+ return basicUnsetAddress(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FamilyPackage.FAMILY__MEMBERS:
+ return getMembers();
+ case FamilyPackage.FAMILY__SURNAME:
+ return getSurname();
+ case FamilyPackage.FAMILY__NUMBER_OF_PETS:
+ return getNumberOfPets();
+ case FamilyPackage.FAMILY__HAS_ASWIMMING_POOL:
+ return isHasASwimmingPool();
+ case FamilyPackage.FAMILY__ADDRESS:
+ return getAddress();
+ case FamilyPackage.FAMILY__FAVORITE_HOLIDAY_DESTINATIONS:
+ return getFavoriteHolidayDestinations();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FamilyPackage.FAMILY__MEMBERS:
+ getMembers().clear();
+ getMembers().addAll((Collection<? extends Person>)newValue);
+ return;
+ case FamilyPackage.FAMILY__SURNAME:
+ setSurname((String)newValue);
+ return;
+ case FamilyPackage.FAMILY__NUMBER_OF_PETS:
+ setNumberOfPets((Integer)newValue);
+ return;
+ case FamilyPackage.FAMILY__HAS_ASWIMMING_POOL:
+ setHasASwimmingPool((Boolean)newValue);
+ return;
+ case FamilyPackage.FAMILY__ADDRESS:
+ setAddress((Address)newValue);
+ return;
+ case FamilyPackage.FAMILY__FAVORITE_HOLIDAY_DESTINATIONS:
+ getFavoriteHolidayDestinations().clear();
+ getFavoriteHolidayDestinations().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.FAMILY__MEMBERS:
+ getMembers().clear();
+ return;
+ case FamilyPackage.FAMILY__SURNAME:
+ unsetSurname();
+ return;
+ case FamilyPackage.FAMILY__NUMBER_OF_PETS:
+ unsetNumberOfPets();
+ return;
+ case FamilyPackage.FAMILY__HAS_ASWIMMING_POOL:
+ unsetHasASwimmingPool();
+ return;
+ case FamilyPackage.FAMILY__ADDRESS:
+ unsetAddress();
+ return;
+ case FamilyPackage.FAMILY__FAVORITE_HOLIDAY_DESTINATIONS:
+ getFavoriteHolidayDestinations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.FAMILY__MEMBERS:
+ return members != null && !members.isEmpty();
+ case FamilyPackage.FAMILY__SURNAME:
+ return isSetSurname();
+ case FamilyPackage.FAMILY__NUMBER_OF_PETS:
+ return isSetNumberOfPets();
+ case FamilyPackage.FAMILY__HAS_ASWIMMING_POOL:
+ return isSetHasASwimmingPool();
+ case FamilyPackage.FAMILY__ADDRESS:
+ return isSetAddress();
+ case FamilyPackage.FAMILY__FAVORITE_HOLIDAY_DESTINATIONS:
+ return favoriteHolidayDestinations != null && !favoriteHolidayDestinations.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (surname: ");
+ if (surnameESet) result.append(surname); else result.append("<unset>");
+ result.append(", numberOfPets: ");
+ if (numberOfPetsESet) result.append(numberOfPets); else result.append("<unset>");
+ result.append(", hasASwimmingPool: ");
+ if (hasASwimmingPoolESet) result.append(hasASwimmingPool); else result.append("<unset>");
+ result.append(", favoriteHolidayDestinations: ");
+ result.append(favoriteHolidayDestinations);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FamilyImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyPackageImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyPackageImpl.java
new file mode 100755
index 0000000..41cd05e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/FamilyPackageImpl.java
@@ -0,0 +1,437 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.family.Address;
+import org.genivi.family.Car;
+import org.genivi.family.Family;
+import org.genivi.family.FamilyFactory;
+import org.genivi.family.FamilyPackage;
+import org.genivi.family.Person;
+import org.genivi.family.Sexe;
+import org.genivi.family.WealthyFamily;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FamilyPackageImpl extends EPackageImpl implements FamilyPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass familyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass personEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass carEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addressEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass wealthyFamilyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum sexeEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.family.FamilyPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FamilyPackageImpl() {
+ super(eNS_URI, FamilyFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link FamilyPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static FamilyPackage init() {
+ if (isInited) return (FamilyPackage)EPackage.Registry.INSTANCE.getEPackage(FamilyPackage.eNS_URI);
+
+ // Obtain or create and register package
+ FamilyPackageImpl theFamilyPackage = (FamilyPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FamilyPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FamilyPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theFamilyPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFamilyPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFamilyPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FamilyPackage.eNS_URI, theFamilyPackage);
+ return theFamilyPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFamily() {
+ return familyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFamily_Members() {
+ return (EReference)familyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFamily_Surname() {
+ return (EAttribute)familyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFamily_NumberOfPets() {
+ return (EAttribute)familyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFamily_HasASwimmingPool() {
+ return (EAttribute)familyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFamily_Address() {
+ return (EReference)familyEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFamily_FavoriteHolidayDestinations() {
+ return (EAttribute)familyEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPerson() {
+ return personEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPerson_FirstName() {
+ return (EAttribute)personEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPerson_Sexe() {
+ return (EAttribute)personEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPerson_OwnedCars() {
+ return (EReference)personEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCar() {
+ return carEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCar_NumberOfSeats() {
+ return (EAttribute)carEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddress() {
+ return addressEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddress_Street() {
+ return (EAttribute)addressEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWealthyFamily() {
+ return wealthyFamilyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getWealthyFamily_ForbesRanking() {
+ return (EAttribute)wealthyFamilyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSexe() {
+ return sexeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FamilyFactory getFamilyFactory() {
+ return (FamilyFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ familyEClass = createEClass(FAMILY);
+ createEReference(familyEClass, FAMILY__MEMBERS);
+ createEAttribute(familyEClass, FAMILY__SURNAME);
+ createEAttribute(familyEClass, FAMILY__NUMBER_OF_PETS);
+ createEAttribute(familyEClass, FAMILY__HAS_ASWIMMING_POOL);
+ createEReference(familyEClass, FAMILY__ADDRESS);
+ createEAttribute(familyEClass, FAMILY__FAVORITE_HOLIDAY_DESTINATIONS);
+
+ personEClass = createEClass(PERSON);
+ createEAttribute(personEClass, PERSON__FIRST_NAME);
+ createEAttribute(personEClass, PERSON__SEXE);
+ createEReference(personEClass, PERSON__OWNED_CARS);
+
+ carEClass = createEClass(CAR);
+ createEAttribute(carEClass, CAR__NUMBER_OF_SEATS);
+
+ addressEClass = createEClass(ADDRESS);
+ createEAttribute(addressEClass, ADDRESS__STREET);
+
+ wealthyFamilyEClass = createEClass(WEALTHY_FAMILY);
+ createEAttribute(wealthyFamilyEClass, WEALTHY_FAMILY__FORBES_RANKING);
+
+ // Create enums
+ sexeEEnum = createEEnum(SEXE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ wealthyFamilyEClass.getESuperTypes().add(this.getFamily());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(familyEClass, Family.class, "Family", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFamily_Members(), this.getPerson(), null, "members", null, 1, -1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFamily_Surname(), ecorePackage.getEString(), "surname", null, 1, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFamily_NumberOfPets(), ecorePackage.getEInt(), "numberOfPets", null, 0, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFamily_HasASwimmingPool(), ecorePackage.getEBoolean(), "hasASwimmingPool", null, 0, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFamily_Address(), this.getAddress(), null, "address", null, 0, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFamily_FavoriteHolidayDestinations(), ecorePackage.getEString(), "favoriteHolidayDestinations", null, 0, -1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPerson_FirstName(), ecorePackage.getEString(), "firstName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPerson_Sexe(), this.getSexe(), "sexe", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPerson_OwnedCars(), this.getCar(), null, "ownedCars", null, 0, -1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(carEClass, Car.class, "Car", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCar_NumberOfSeats(), ecorePackage.getEIntegerObject(), "numberOfSeats", null, 0, 1, Car.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(addressEClass, Address.class, "Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAddress_Street(), ecorePackage.getEString(), "street", null, 0, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(wealthyFamilyEClass, WealthyFamily.class, "WealthyFamily", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getWealthyFamily_ForbesRanking(), ecorePackage.getEInt(), "forbesRanking", null, 0, 1, WealthyFamily.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(sexeEEnum, Sexe.class, "Sexe");
+ addEEnumLiteral(sexeEEnum, Sexe.MALE);
+ addEEnumLiteral(sexeEEnum, Sexe.FEMALE);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //FamilyPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/PersonImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/PersonImpl.java
new file mode 100755
index 0000000..66002c6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/PersonImpl.java
@@ -0,0 +1,352 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.family.Car;
+import org.genivi.family.FamilyPackage;
+import org.genivi.family.Person;
+import org.genivi.family.Sexe;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Person</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.family.impl.PersonImpl#getFirstName <em>First Name</em>}</li>
+ * <li>{@link org.genivi.family.impl.PersonImpl#getSexe <em>Sexe</em>}</li>
+ * <li>{@link org.genivi.family.impl.PersonImpl#getOwnedCars <em>Owned Cars</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PersonImpl extends EObjectImpl implements Person {
+ /**
+ * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FIRST_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstName()
+ * @generated
+ * @ordered
+ */
+ protected String firstName = FIRST_NAME_EDEFAULT;
+
+ /**
+ * This is true if the First Name attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean firstNameESet;
+
+ /**
+ * The default value of the '{@link #getSexe() <em>Sexe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSexe()
+ * @generated
+ * @ordered
+ */
+ protected static final Sexe SEXE_EDEFAULT = Sexe.MALE;
+
+ /**
+ * The cached value of the '{@link #getSexe() <em>Sexe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSexe()
+ * @generated
+ * @ordered
+ */
+ protected Sexe sexe = SEXE_EDEFAULT;
+
+ /**
+ * This is true if the Sexe attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean sexeESet;
+
+ /**
+ * The cached value of the '{@link #getOwnedCars() <em>Owned Cars</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwnedCars()
+ * @generated
+ * @ordered
+ */
+ protected EList<Car> ownedCars;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PersonImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FamilyPackage.Literals.PERSON;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFirstName(String newFirstName) {
+ String oldFirstName = firstName;
+ firstName = newFirstName;
+ boolean oldFirstNameESet = firstNameESet;
+ firstNameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.PERSON__FIRST_NAME, oldFirstName, firstName, !oldFirstNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFirstName() {
+ String oldFirstName = firstName;
+ boolean oldFirstNameESet = firstNameESet;
+ firstName = FIRST_NAME_EDEFAULT;
+ firstNameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.PERSON__FIRST_NAME, oldFirstName, FIRST_NAME_EDEFAULT, oldFirstNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFirstName() {
+ return firstNameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sexe getSexe() {
+ return sexe;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSexe(Sexe newSexe) {
+ Sexe oldSexe = sexe;
+ sexe = newSexe == null ? SEXE_EDEFAULT : newSexe;
+ boolean oldSexeESet = sexeESet;
+ sexeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.PERSON__SEXE, oldSexe, sexe, !oldSexeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSexe() {
+ Sexe oldSexe = sexe;
+ boolean oldSexeESet = sexeESet;
+ sexe = SEXE_EDEFAULT;
+ sexeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.PERSON__SEXE, oldSexe, SEXE_EDEFAULT, oldSexeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSexe() {
+ return sexeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Car> getOwnedCars() {
+ if (ownedCars == null) {
+ ownedCars = new EObjectContainmentEList<Car>(Car.class, this, FamilyPackage.PERSON__OWNED_CARS);
+ }
+ return ownedCars;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FamilyPackage.PERSON__OWNED_CARS:
+ return ((InternalEList<?>)getOwnedCars()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FamilyPackage.PERSON__FIRST_NAME:
+ return getFirstName();
+ case FamilyPackage.PERSON__SEXE:
+ return getSexe();
+ case FamilyPackage.PERSON__OWNED_CARS:
+ return getOwnedCars();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FamilyPackage.PERSON__FIRST_NAME:
+ setFirstName((String)newValue);
+ return;
+ case FamilyPackage.PERSON__SEXE:
+ setSexe((Sexe)newValue);
+ return;
+ case FamilyPackage.PERSON__OWNED_CARS:
+ getOwnedCars().clear();
+ getOwnedCars().addAll((Collection<? extends Car>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.PERSON__FIRST_NAME:
+ unsetFirstName();
+ return;
+ case FamilyPackage.PERSON__SEXE:
+ unsetSexe();
+ return;
+ case FamilyPackage.PERSON__OWNED_CARS:
+ getOwnedCars().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.PERSON__FIRST_NAME:
+ return isSetFirstName();
+ case FamilyPackage.PERSON__SEXE:
+ return isSetSexe();
+ case FamilyPackage.PERSON__OWNED_CARS:
+ return ownedCars != null && !ownedCars.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (firstName: ");
+ if (firstNameESet) result.append(firstName); else result.append("<unset>");
+ result.append(", sexe: ");
+ if (sexeESet) result.append(sexe); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //PersonImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/WealthyFamilyImpl.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/WealthyFamilyImpl.java
new file mode 100755
index 0000000..5bbb0ef
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/impl/WealthyFamilyImpl.java
@@ -0,0 +1,200 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.family.FamilyPackage;
+import org.genivi.family.WealthyFamily;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Wealthy Family</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.family.impl.WealthyFamilyImpl#getForbesRanking <em>Forbes Ranking</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WealthyFamilyImpl extends FamilyImpl implements WealthyFamily {
+ /**
+ * The default value of the '{@link #getForbesRanking() <em>Forbes Ranking</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getForbesRanking()
+ * @generated
+ * @ordered
+ */
+ protected static final int FORBES_RANKING_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getForbesRanking() <em>Forbes Ranking</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getForbesRanking()
+ * @generated
+ * @ordered
+ */
+ protected int forbesRanking = FORBES_RANKING_EDEFAULT;
+
+ /**
+ * This is true if the Forbes Ranking attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean forbesRankingESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WealthyFamilyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FamilyPackage.Literals.WEALTHY_FAMILY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getForbesRanking() {
+ return forbesRanking;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setForbesRanking(int newForbesRanking) {
+ int oldForbesRanking = forbesRanking;
+ forbesRanking = newForbesRanking;
+ boolean oldForbesRankingESet = forbesRankingESet;
+ forbesRankingESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FamilyPackage.WEALTHY_FAMILY__FORBES_RANKING, oldForbesRanking, forbesRanking, !oldForbesRankingESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetForbesRanking() {
+ int oldForbesRanking = forbesRanking;
+ boolean oldForbesRankingESet = forbesRankingESet;
+ forbesRanking = FORBES_RANKING_EDEFAULT;
+ forbesRankingESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, FamilyPackage.WEALTHY_FAMILY__FORBES_RANKING, oldForbesRanking, FORBES_RANKING_EDEFAULT, oldForbesRankingESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetForbesRanking() {
+ return forbesRankingESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FamilyPackage.WEALTHY_FAMILY__FORBES_RANKING:
+ return getForbesRanking();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FamilyPackage.WEALTHY_FAMILY__FORBES_RANKING:
+ setForbesRanking((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.WEALTHY_FAMILY__FORBES_RANKING:
+ unsetForbesRanking();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FamilyPackage.WEALTHY_FAMILY__FORBES_RANKING:
+ return isSetForbesRanking();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (forbesRanking: ");
+ if (forbesRankingESet) result.append(forbesRanking); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //WealthyFamilyImpl
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilyAdapterFactory.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilyAdapterFactory.java
new file mode 100755
index 0000000..be65e1f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilyAdapterFactory.java
@@ -0,0 +1,199 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.family.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.FamilyPackage
+ * @generated
+ */
+public class FamilyAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FamilyPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FamilyAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = FamilyPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FamilySwitch<Adapter> modelSwitch =
+ new FamilySwitch<Adapter>() {
+ @Override
+ public Adapter caseFamily(Family object) {
+ return createFamilyAdapter();
+ }
+ @Override
+ public Adapter casePerson(Person object) {
+ return createPersonAdapter();
+ }
+ @Override
+ public Adapter caseCar(Car object) {
+ return createCarAdapter();
+ }
+ @Override
+ public Adapter caseAddress(Address object) {
+ return createAddressAdapter();
+ }
+ @Override
+ public Adapter caseWealthyFamily(WealthyFamily object) {
+ return createWealthyFamilyAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.family.Family <em>Family</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.family.Family
+ * @generated
+ */
+ public Adapter createFamilyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.family.Person <em>Person</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.family.Person
+ * @generated
+ */
+ public Adapter createPersonAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.family.Car <em>Car</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.family.Car
+ * @generated
+ */
+ public Adapter createCarAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.family.Address <em>Address</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.family.Address
+ * @generated
+ */
+ public Adapter createAddressAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.family.WealthyFamily <em>Wealthy Family</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.family.WealthyFamily
+ * @generated
+ */
+ public Adapter createWealthyFamilyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //FamilyAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilySwitch.java b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilySwitch.java
new file mode 100755
index 0000000..46a6949
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.booleanexpr-model/src/test/java/org/genivi/family/util/FamilySwitch.java
@@ -0,0 +1,202 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.family.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.family.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.family.FamilyPackage
+ * @generated
+ */
+public class FamilySwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static FamilyPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FamilySwitch() {
+ if (modelPackage == null) {
+ modelPackage = FamilyPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case FamilyPackage.FAMILY: {
+ Family family = (Family)theEObject;
+ T result = caseFamily(family);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FamilyPackage.PERSON: {
+ Person person = (Person)theEObject;
+ T result = casePerson(person);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FamilyPackage.CAR: {
+ Car car = (Car)theEObject;
+ T result = caseCar(car);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FamilyPackage.ADDRESS: {
+ Address address = (Address)theEObject;
+ T result = caseAddress(address);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case FamilyPackage.WEALTHY_FAMILY: {
+ WealthyFamily wealthyFamily = (WealthyFamily)theEObject;
+ T result = caseWealthyFamily(wealthyFamily);
+ if (result == null) result = caseFamily(wealthyFamily);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Family</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Family</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFamily(Family object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Person</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePerson(Person object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Car</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Car</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCar(Car object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Address</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Address</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAddress(Address object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Wealthy Family</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Wealthy Family</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWealthyFamily(WealthyFamily object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //FamilySwitch
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/.classpath b/src/traffic-incidents-service/org.genivi.iconset-model/.classpath
new file mode 100755
index 0000000..1bf6a1d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/.project b/src/traffic-incidents-service/org.genivi.iconset-model/.project
new file mode 100755
index 0000000..990cebd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/.project
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.iconset-model</name>
+ <comment>This project contains the model for the GENIVI IconSet. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.iconset-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..dece26a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.iconset-model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.iconset,
+ org.genivi.iconset.impl,
+ org.genivi.iconset.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.iconset-model/ReadMe.confluence
new file mode 100755
index 0000000..50818ef
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/ReadMe.confluence
@@ -0,0 +1,5 @@
+This project defines an Icon Set.
+Icon Sets are used in the TrafficIncidents interface, but can also be used in other locations where icons are used.
+Detailed information can be found in the "GENIVI TrafficIncidentsService Component Specification".
+
+IconSet.ecorediag, in de model folder, provides a good overview of the structure of an Icon Set. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/build.properties b/src/traffic-incidents-service/org.genivi.iconset-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecore b/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecore
new file mode 100755
index 0000000..7f719b4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecore
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="iconset" nsURI="http://org.genivi.iconset" nsPrefix="iconset">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="IconSet">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconSetId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="colorType" lowerBound="1"
+ eType="#//ColorType" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dimension" eType="#//IconDimension"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" lowerBound="1" eType="#//IconSize"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dayTimeIcon" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="themeId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mediumType" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="iconDescriptors" upperBound="-1"
+ eType="#//IconDescriptor" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ColorType">
+ <eLiterals name="BLACK_AND_WHITE" value="1"/>
+ <eLiterals name="GRAY_4" value="2"/>
+ <eLiterals name="GRAY_8" value="3"/>
+ <eLiterals name="RGB555" value="4"/>
+ <eLiterals name="RGB565" value="5"/>
+ <eLiterals name="RGB888" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="IconDimension">
+ <eLiterals name="D_2D" value="1"/>
+ <eLiterals name="D_2_5D" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IconSize">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dpi" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IconDescriptor">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IconData">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByteArray"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IconInfo">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconSetId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IconDefinition">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="iconInfo" lowerBound="1"
+ eType="#//IconInfo" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="iconData" lowerBound="1"
+ eType="#//IconData" unsettable="true" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecorediag b/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecorediag
new file mode 100755
index 0000000..83d72e8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.ecorediag
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_PzUI0AMwEeKPy-s2XR1yyQ" type="EcoreTools" name="IconSet.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_QwGhMAMwEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_QwGhMwMwEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_QwGhNAMwEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_TKdDwAMwEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSet/iconSetId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TKdDwQMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JJp3wAMxEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSet/colorType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JJp3wQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qauP0AMxEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSet/dimension"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qauP0QMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__SvnkAMxEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSet/dayTimeIcon"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__SvnkQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ey1zEAMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSet/themeId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ey1zEQMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NOUKkAMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSet/mediumType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NOUKkQMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QwGhNQMwEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QwGhNgMwEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QwGhNwMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QwGhOAMwEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QwGhOQMwEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QwGhOgMwEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QwGhOwMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QwGhMQMwEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="IconSet.ecore#//IconSet"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QwGhMgMwEeKPy-s2XR1yyQ" x="36" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bS38YAMwEeKPy-s2XR1yyQ" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_bS38YwMwEeKPy-s2XR1yyQ" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_bS38ZAMwEeKPy-s2XR1yyQ" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_sn8x0AMwEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//ColorType/BLACK_AND_WHITE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sn8x0QMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_u2-1MAMwEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//ColorType/GRAY_4"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u2-1MQMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wqvR0AMwEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//ColorType/GRAY_8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wqvR0QMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yESesAMwEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//ColorType/RGB555"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yESesQMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BzTVQAMxEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//ColorType/RGB565"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BzTVQQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DVx0oAMxEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//ColorType/RGB888"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DVx0oQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bS38ZQMwEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bS38ZgMwEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bS38ZwMwEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_bS38YQMwEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="IconSet.ecore#//ColorType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bS38YgMwEeKPy-s2XR1yyQ" x="396" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OZ63gAMxEeKPy-s2XR1yyQ" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_OZ63gwMxEeKPy-s2XR1yyQ" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_OZ63hAMxEeKPy-s2XR1yyQ" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_QoNUAAMxEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//IconDimension/D_2D"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QoNUAQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SjIIkAMxEeKPy-s2XR1yyQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="IconSet.ecore#//IconDimension/D_2_5D"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SjIIkQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_OZ63hQMxEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OZ63hgMxEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OZ63hwMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_OZ63gQMxEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="IconSet.ecore#//IconDimension"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OZ63ggMxEeKPy-s2XR1yyQ" x="408" y="216"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wfOI4AMxEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_wfOI4wMxEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_wfOI5AMxEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_ywYTMAMxEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSize/width"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ywYTMQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1bWrsAMxEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSize/height"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1bWrsQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4UNIIAMxEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconSize/dpi"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4UNIIQMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_wfOI5QMxEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wfOI5gMxEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wfOI5wMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wfOI6AMxEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_wfOI6QMxEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wfOI6gMxEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wfOI6wMxEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_wfOI4QMxEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="IconSet.ecore#//IconSize"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wfOI4gMxEeKPy-s2XR1yyQ" x="228" y="228"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SYLnYAMyEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_SYLnYwMyEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_SYLnZAMyEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_V25J8AMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconDescriptor/url"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_V25J8QMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Y8GnYAMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconDescriptor/iconId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y8GnYQMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_SYLnZQMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SYLnZgMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SYLnZwMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SYLnaAMyEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_SYLnaQMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SYLnagMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SYLnawMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_SYLnYQMyEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="IconSet.ecore#//IconDescriptor"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SYLnYgMyEeKPy-s2XR1yyQ" x="72" y="312"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oWc1gAMyEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_oWc1gwMyEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_oWc1hAMyEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_qsaAQAMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconData/data"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qsaAQQMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oWc1hQMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oWc1hgMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oWc1hwMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oWc1iAMyEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oWc1iQMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oWc1igMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oWc1iwMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_oWc1gQMyEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="IconSet.ecore#//IconData"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oWc1ggMyEeKPy-s2XR1yyQ" x="396" y="456"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3KyMgAMyEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_3KyMgwMyEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_3KyMhAMyEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_6GmdYAMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconInfo/iconSetId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6GmdYQMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-SUP4AMyEeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="IconSet.ecore#//IconInfo/iconId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-SUP4QMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_3KyMhQMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3KyMhgMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3KyMhwMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3KyMiAMyEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_3KyMiQMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3KyMigMyEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3KyMiwMyEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3KyMgQMyEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="IconSet.ecore#//IconInfo"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3KyMggMyEeKPy-s2XR1yyQ" x="216" y="456"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lbj_cA02EeKQkNvsZzz0Dw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Lbj_cw02EeKQkNvsZzz0Dw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Lbj_dA02EeKQkNvsZzz0Dw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Lbj_dQ02EeKQkNvsZzz0Dw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lbj_dg02EeKQkNvsZzz0Dw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lbj_dw02EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lbj_eA02EeKQkNvsZzz0Dw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Lbj_eQ02EeKQkNvsZzz0Dw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lbj_eg02EeKQkNvsZzz0Dw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lbj_ew02EeKQkNvsZzz0Dw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Lbj_cQ02EeKQkNvsZzz0Dw" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="IconSet.ecore#//IconDefinition"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lbj_cg02EeKQkNvsZzz0Dw" x="324" y="360"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PzUI0QMwEeKPy-s2XR1yyQ"/>
+ <element xmi:type="ecore:EPackage" href="IconSet.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_8Es-QAMxEeKPy-s2XR1yyQ" type="3002" source="_QwGhMAMwEeKPy-s2XR1yyQ" target="_wfOI4AMxEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_8Es-RAMxEeKPy-s2XR1yyQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8Es-RQMxEeKPy-s2XR1yyQ" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8Es-RgMxEeKPy-s2XR1yyQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8Es-RwMxEeKPy-s2XR1yyQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_8Es-QQMxEeKPy-s2XR1yyQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8Es-QgMxEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="IconSet.ecore#//IconSet/size"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8Es-QwMxEeKPy-s2XR1yyQ" points="[32, 40, -285, -312]$[267, 361, -50, 9]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_b810gAMyEeKPy-s2XR1yyQ" type="3002" source="_QwGhMAMwEeKPy-s2XR1yyQ" target="_SYLnYAMyEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_b810hAMyEeKPy-s2XR1yyQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b810hQMyEeKPy-s2XR1yyQ" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b810hgMyEeKPy-s2XR1yyQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b810hwMyEeKPy-s2XR1yyQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_b810gQMyEeKPy-s2XR1yyQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_b810ggMyEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="IconSet.ecore#//IconSet/iconDescriptors"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b810gwMyEeKPy-s2XR1yyQ" points="[-8, 64, -2, -180]$[-56, 249, -50, 5]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Sp8RsA02EeKQkNvsZzz0Dw" type="3002" source="_Lbj_cA02EeKQkNvsZzz0Dw" target="_3KyMgAMyEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_Sp8RtA02EeKQkNvsZzz0Dw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Sp8RtQ02EeKQkNvsZzz0Dw" x="-37" y="-5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Sp8Rtg02EeKQkNvsZzz0Dw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Sp8Rtw02EeKQkNvsZzz0Dw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Sp8RsQ02EeKQkNvsZzz0Dw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Sp8Rsg02EeKQkNvsZzz0Dw" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="IconSet.ecore#//IconDefinition/iconInfo"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sp8Rsw02EeKQkNvsZzz0Dw" points="[50, 6, -129, -17]$[180, -7, 1, -30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SqFboA02EeKQkNvsZzz0Dw" id="(0.24166666666666667,0.47692307692307695)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_W74A8A02EeKQkNvsZzz0Dw" type="3002" source="_Lbj_cA02EeKQkNvsZzz0Dw" target="_oWc1gAMyEeKPy-s2XR1yyQ">
+ <children xmi:type="notation:Node" xmi:id="_W74A9A02EeKQkNvsZzz0Dw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W74A9Q02EeKQkNvsZzz0Dw" x="-22" y="-3"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W74A9g02EeKQkNvsZzz0Dw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W74A9w02EeKQkNvsZzz0Dw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_W74A8Q02EeKQkNvsZzz0Dw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_W74A8g02EeKQkNvsZzz0Dw" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="IconSet.ecore#//IconDefinition/iconData"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_W74A8w02EeKQkNvsZzz0Dw" points="[-48, 20, 120, -56]$[-169, 53, -1, -23]"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.genmodel b/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.genmodel
new file mode 100755
index 0000000..ee8d66f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/model/IconSet.genmodel
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.iconset-model/src" modelPluginID="org.genivi.iconset-model"
+ modelName="IconSet" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+ copyrightFields="false">
+ <foreignModel>IconSet.ecore</foreignModel>
+ <genPackages prefix="Iconset" basePackage="org.genivi" disposableProviderFactory="true"
+ ecorePackage="IconSet.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="IconSet.ecore#//ColorType">
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//ColorType/BLACK_AND_WHITE"/>
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//ColorType/GRAY_4"/>
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//ColorType/GRAY_8"/>
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//ColorType/RGB555"/>
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//ColorType/RGB565"/>
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//ColorType/RGB888"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="IconSet.ecore#//IconDimension">
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//IconDimension/D_2D"/>
+ <genEnumLiterals ecoreEnumLiteral="IconSet.ecore#//IconDimension/D_2_5D"/>
+ </genEnums>
+ <genClasses ecoreClass="IconSet.ecore#//IconSet">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSet/iconSetId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSet/colorType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSet/dimension"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IconSet.ecore#//IconSet/size"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSet/dayTimeIcon"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSet/themeId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSet/mediumType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IconSet.ecore#//IconSet/iconDescriptors"/>
+ </genClasses>
+ <genClasses ecoreClass="IconSet.ecore#//IconSize">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSize/width"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSize/height"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconSize/dpi"/>
+ </genClasses>
+ <genClasses ecoreClass="IconSet.ecore#//IconDescriptor">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconDescriptor/url"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconDescriptor/iconId"/>
+ </genClasses>
+ <genClasses ecoreClass="IconSet.ecore#//IconData">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconData/data"/>
+ </genClasses>
+ <genClasses ecoreClass="IconSet.ecore#//IconInfo">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconInfo/iconSetId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IconSet.ecore#//IconInfo/iconId"/>
+ </genClasses>
+ <genClasses ecoreClass="IconSet.ecore#//IconDefinition">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IconSet.ecore#//IconDefinition/iconInfo"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IconSet.ecore#//IconDefinition/iconData"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/plugin.properties b/src/traffic-incidents-service/org.genivi.iconset-model/plugin.properties
new file mode 100755
index 0000000..dc0a984
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = IconSet Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/plugin.xml b/src/traffic-incidents-service/org.genivi.iconset-model/plugin.xml
new file mode 100755
index 0000000..adf2832
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://org.genivi.iconset"
+ class="org.genivi.iconset.IconsetPackage"
+ genModel="model/IconSet.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/pom.xml b/src/traffic-incidents-service/org.genivi.iconset-model/pom.xml
new file mode 100755
index 0000000..6bd970f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi</groupId>
+ <artifactId>iconset-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI IconSet model</name>
+ <description>This project contains the model for the GENIVI IconSet.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/ColorType.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/ColorType.java
new file mode 100755
index 0000000..33c8c3a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/ColorType.java
@@ -0,0 +1,323 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Color Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconsetPackage#getColorType()
+ * @model
+ * @generated
+ */
+public enum ColorType implements Enumerator {
+ /**
+ * The '<em><b>BLACK AND WHITE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLACK_AND_WHITE_VALUE
+ * @generated
+ * @ordered
+ */
+ BLACK_AND_WHITE(1, "BLACK_AND_WHITE", "BLACK_AND_WHITE"),
+
+ /**
+ * The '<em><b>GRAY 4</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GRAY_4_VALUE
+ * @generated
+ * @ordered
+ */
+ GRAY_4(2, "GRAY_4", "GRAY_4"),
+
+ /**
+ * The '<em><b>GRAY 8</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GRAY_8_VALUE
+ * @generated
+ * @ordered
+ */
+ GRAY_8(3, "GRAY_8", "GRAY_8"),
+
+ /**
+ * The '<em><b>RGB555</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RGB555_VALUE
+ * @generated
+ * @ordered
+ */
+ RGB555(4, "RGB555", "RGB555"),
+
+ /**
+ * The '<em><b>RGB565</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RGB565_VALUE
+ * @generated
+ * @ordered
+ */
+ RGB565(5, "RGB565", "RGB565"),
+
+ /**
+ * The '<em><b>RGB888</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RGB888_VALUE
+ * @generated
+ * @ordered
+ */
+ RGB888(6, "RGB888", "RGB888");
+
+ /**
+ * The '<em><b>BLACK AND WHITE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLACK AND WHITE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLACK_AND_WHITE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLACK_AND_WHITE_VALUE = 1;
+
+ /**
+ * The '<em><b>GRAY 4</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GRAY 4</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GRAY_4
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GRAY_4_VALUE = 2;
+
+ /**
+ * The '<em><b>GRAY 8</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GRAY 8</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GRAY_8
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GRAY_8_VALUE = 3;
+
+ /**
+ * The '<em><b>RGB555</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RGB555</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RGB555
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RGB555_VALUE = 4;
+
+ /**
+ * The '<em><b>RGB565</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RGB565</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RGB565
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RGB565_VALUE = 5;
+
+ /**
+ * The '<em><b>RGB888</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RGB888</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RGB888
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RGB888_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Color Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ColorType[] VALUES_ARRAY =
+ new ColorType[] {
+ BLACK_AND_WHITE,
+ GRAY_4,
+ GRAY_8,
+ RGB555,
+ RGB565,
+ RGB888,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Color Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ColorType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Color Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ColorType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ColorType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Color Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ColorType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ColorType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Color Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ColorType get(int value) {
+ switch (value) {
+ case BLACK_AND_WHITE_VALUE: return BLACK_AND_WHITE;
+ case GRAY_4_VALUE: return GRAY_4;
+ case GRAY_8_VALUE: return GRAY_8;
+ case RGB555_VALUE: return RGB555;
+ case RGB565_VALUE: return RGB565;
+ case RGB888_VALUE: return RGB888;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ColorType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ColorType
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconData.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconData.java
new file mode 100755
index 0000000..07b4002
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconData.java
@@ -0,0 +1,84 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Icon Data</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.iconset.IconData#getData <em>Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.iconset.IconsetPackage#getIconData()
+ * @model
+ * @generated
+ */
+public interface IconData extends EObject {
+ /**
+ * Returns the value of the '<em><b>Data</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data</em>' attribute.
+ * @see #isSetData()
+ * @see #unsetData()
+ * @see #setData(byte[])
+ * @see org.genivi.iconset.IconsetPackage#getIconData_Data()
+ * @model unsettable="true"
+ * @generated
+ */
+ byte[] getData();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconData#getData <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data</em>' attribute.
+ * @see #isSetData()
+ * @see #unsetData()
+ * @see #getData()
+ * @generated
+ */
+ void setData(byte[] value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconData#getData <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetData()
+ * @see #getData()
+ * @see #setData(byte[])
+ * @generated
+ */
+ void unsetData();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconData#getData <em>Data</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Data</em>' attribute is set.
+ * @see #unsetData()
+ * @see #getData()
+ * @see #setData(byte[])
+ * @generated
+ */
+ boolean isSetData();
+
+} // IconData
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDefinition.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDefinition.java
new file mode 100755
index 0000000..7b98447
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDefinition.java
@@ -0,0 +1,138 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Icon Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.iconset.IconDefinition#getIconInfo <em>Icon Info</em>}</li>
+ * <li>{@link org.genivi.iconset.IconDefinition#getIconData <em>Icon Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.iconset.IconsetPackage#getIconDefinition()
+ * @model
+ * @generated
+ */
+public interface IconDefinition extends EObject {
+ /**
+ * Returns the value of the '<em><b>Icon Info</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Info</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Info</em>' containment reference.
+ * @see #isSetIconInfo()
+ * @see #unsetIconInfo()
+ * @see #setIconInfo(IconInfo)
+ * @see org.genivi.iconset.IconsetPackage#getIconDefinition_IconInfo()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ IconInfo getIconInfo();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconDefinition#getIconInfo <em>Icon Info</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Info</em>' containment reference.
+ * @see #isSetIconInfo()
+ * @see #unsetIconInfo()
+ * @see #getIconInfo()
+ * @generated
+ */
+ void setIconInfo(IconInfo value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconDefinition#getIconInfo <em>Icon Info</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconInfo()
+ * @see #getIconInfo()
+ * @see #setIconInfo(IconInfo)
+ * @generated
+ */
+ void unsetIconInfo();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconDefinition#getIconInfo <em>Icon Info</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Info</em>' containment reference is set.
+ * @see #unsetIconInfo()
+ * @see #getIconInfo()
+ * @see #setIconInfo(IconInfo)
+ * @generated
+ */
+ boolean isSetIconInfo();
+
+ /**
+ * Returns the value of the '<em><b>Icon Data</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Data</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Data</em>' containment reference.
+ * @see #isSetIconData()
+ * @see #unsetIconData()
+ * @see #setIconData(IconData)
+ * @see org.genivi.iconset.IconsetPackage#getIconDefinition_IconData()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ IconData getIconData();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconDefinition#getIconData <em>Icon Data</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Data</em>' containment reference.
+ * @see #isSetIconData()
+ * @see #unsetIconData()
+ * @see #getIconData()
+ * @generated
+ */
+ void setIconData(IconData value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconDefinition#getIconData <em>Icon Data</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconData()
+ * @see #getIconData()
+ * @see #setIconData(IconData)
+ * @generated
+ */
+ void unsetIconData();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconDefinition#getIconData <em>Icon Data</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Data</em>' containment reference is set.
+ * @see #unsetIconData()
+ * @see #getIconData()
+ * @see #setIconData(IconData)
+ * @generated
+ */
+ boolean isSetIconData();
+
+} // IconDefinition
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDescriptor.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDescriptor.java
new file mode 100755
index 0000000..e028118
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDescriptor.java
@@ -0,0 +1,138 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Icon Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.iconset.IconDescriptor#getUrl <em>Url</em>}</li>
+ * <li>{@link org.genivi.iconset.IconDescriptor#getIconId <em>Icon Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.iconset.IconsetPackage#getIconDescriptor()
+ * @model
+ * @generated
+ */
+public interface IconDescriptor extends EObject {
+ /**
+ * Returns the value of the '<em><b>Url</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Url</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Url</em>' attribute.
+ * @see #isSetUrl()
+ * @see #unsetUrl()
+ * @see #setUrl(String)
+ * @see org.genivi.iconset.IconsetPackage#getIconDescriptor_Url()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getUrl();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconDescriptor#getUrl <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Url</em>' attribute.
+ * @see #isSetUrl()
+ * @see #unsetUrl()
+ * @see #getUrl()
+ * @generated
+ */
+ void setUrl(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconDescriptor#getUrl <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUrl()
+ * @see #getUrl()
+ * @see #setUrl(String)
+ * @generated
+ */
+ void unsetUrl();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconDescriptor#getUrl <em>Url</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Url</em>' attribute is set.
+ * @see #unsetUrl()
+ * @see #getUrl()
+ * @see #setUrl(String)
+ * @generated
+ */
+ boolean isSetUrl();
+
+ /**
+ * Returns the value of the '<em><b>Icon Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Id</em>' attribute.
+ * @see #isSetIconId()
+ * @see #unsetIconId()
+ * @see #setIconId(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconDescriptor_IconId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getIconId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconDescriptor#getIconId <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Id</em>' attribute.
+ * @see #isSetIconId()
+ * @see #unsetIconId()
+ * @see #getIconId()
+ * @generated
+ */
+ void setIconId(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconDescriptor#getIconId <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconId()
+ * @see #getIconId()
+ * @see #setIconId(int)
+ * @generated
+ */
+ void unsetIconId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconDescriptor#getIconId <em>Icon Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Id</em>' attribute is set.
+ * @see #unsetIconId()
+ * @see #getIconId()
+ * @see #setIconId(int)
+ * @generated
+ */
+ boolean isSetIconId();
+
+} // IconDescriptor
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDimension.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDimension.java
new file mode 100755
index 0000000..567a13e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconDimension.java
@@ -0,0 +1,215 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Icon Dimension</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconsetPackage#getIconDimension()
+ * @model
+ * @generated
+ */
+public enum IconDimension implements Enumerator {
+ /**
+ * The '<em><b>D2D</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #D2D_VALUE
+ * @generated
+ * @ordered
+ */
+ D2D(1, "D_2D", "D_2D"),
+
+ /**
+ * The '<em><b>D25D</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #D25D_VALUE
+ * @generated
+ * @ordered
+ */
+ D25D(2, "D_2_5D", "D_2_5D");
+
+ /**
+ * The '<em><b>D2D</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>D2D</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #D2D
+ * @model name="D_2D"
+ * @generated
+ * @ordered
+ */
+ public static final int D2D_VALUE = 1;
+
+ /**
+ * The '<em><b>D25D</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>D25D</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #D25D
+ * @model name="D_2_5D"
+ * @generated
+ * @ordered
+ */
+ public static final int D25D_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Icon Dimension</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final IconDimension[] VALUES_ARRAY =
+ new IconDimension[] {
+ D2D,
+ D25D,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Icon Dimension</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<IconDimension> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Icon Dimension</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IconDimension get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ IconDimension result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Icon Dimension</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IconDimension getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ IconDimension result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Icon Dimension</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IconDimension get(int value) {
+ switch (value) {
+ case D2D_VALUE: return D2D;
+ case D25D_VALUE: return D25D;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private IconDimension(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //IconDimension
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconInfo.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconInfo.java
new file mode 100755
index 0000000..2af6314
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconInfo.java
@@ -0,0 +1,138 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Icon Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.iconset.IconInfo#getIconSetId <em>Icon Set Id</em>}</li>
+ * <li>{@link org.genivi.iconset.IconInfo#getIconId <em>Icon Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.iconset.IconsetPackage#getIconInfo()
+ * @model
+ * @generated
+ */
+public interface IconInfo extends EObject {
+ /**
+ * Returns the value of the '<em><b>Icon Set Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Set Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Set Id</em>' attribute.
+ * @see #isSetIconSetId()
+ * @see #unsetIconSetId()
+ * @see #setIconSetId(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconInfo_IconSetId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getIconSetId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconInfo#getIconSetId <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Set Id</em>' attribute.
+ * @see #isSetIconSetId()
+ * @see #unsetIconSetId()
+ * @see #getIconSetId()
+ * @generated
+ */
+ void setIconSetId(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconInfo#getIconSetId <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconSetId()
+ * @see #getIconSetId()
+ * @see #setIconSetId(int)
+ * @generated
+ */
+ void unsetIconSetId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconInfo#getIconSetId <em>Icon Set Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Set Id</em>' attribute is set.
+ * @see #unsetIconSetId()
+ * @see #getIconSetId()
+ * @see #setIconSetId(int)
+ * @generated
+ */
+ boolean isSetIconSetId();
+
+ /**
+ * Returns the value of the '<em><b>Icon Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Id</em>' attribute.
+ * @see #isSetIconId()
+ * @see #unsetIconId()
+ * @see #setIconId(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconInfo_IconId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getIconId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconInfo#getIconId <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Id</em>' attribute.
+ * @see #isSetIconId()
+ * @see #unsetIconId()
+ * @see #getIconId()
+ * @generated
+ */
+ void setIconId(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconInfo#getIconId <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconId()
+ * @see #getIconId()
+ * @see #setIconId(int)
+ * @generated
+ */
+ void unsetIconId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconInfo#getIconId <em>Icon Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Id</em>' attribute is set.
+ * @see #unsetIconId()
+ * @see #getIconId()
+ * @see #setIconId(int)
+ * @generated
+ */
+ boolean isSetIconId();
+
+} // IconInfo
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSet.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSet.java
new file mode 100755
index 0000000..6cc5741
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSet.java
@@ -0,0 +1,456 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Icon Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.iconset.IconSet#getIconSetId <em>Icon Set Id</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#getColorType <em>Color Type</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#getDimension <em>Dimension</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#getSize <em>Size</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#isDayTimeIcon <em>Day Time Icon</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#getThemeId <em>Theme Id</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#getMediumType <em>Medium Type</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSet#getIconDescriptors <em>Icon Descriptors</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.iconset.IconsetPackage#getIconSet()
+ * @model
+ * @generated
+ */
+public interface IconSet extends EObject {
+ /**
+ * Returns the value of the '<em><b>Icon Set Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Set Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Set Id</em>' attribute.
+ * @see #isSetIconSetId()
+ * @see #unsetIconSetId()
+ * @see #setIconSetId(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_IconSetId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getIconSetId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#getIconSetId <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Set Id</em>' attribute.
+ * @see #isSetIconSetId()
+ * @see #unsetIconSetId()
+ * @see #getIconSetId()
+ * @generated
+ */
+ void setIconSetId(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getIconSetId <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconSetId()
+ * @see #getIconSetId()
+ * @see #setIconSetId(int)
+ * @generated
+ */
+ void unsetIconSetId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getIconSetId <em>Icon Set Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Set Id</em>' attribute is set.
+ * @see #unsetIconSetId()
+ * @see #getIconSetId()
+ * @see #setIconSetId(int)
+ * @generated
+ */
+ boolean isSetIconSetId();
+
+ /**
+ * Returns the value of the '<em><b>Color Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.iconset.ColorType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Color Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Color Type</em>' attribute.
+ * @see org.genivi.iconset.ColorType
+ * @see #isSetColorType()
+ * @see #unsetColorType()
+ * @see #setColorType(ColorType)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_ColorType()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ ColorType getColorType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#getColorType <em>Color Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Color Type</em>' attribute.
+ * @see org.genivi.iconset.ColorType
+ * @see #isSetColorType()
+ * @see #unsetColorType()
+ * @see #getColorType()
+ * @generated
+ */
+ void setColorType(ColorType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getColorType <em>Color Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetColorType()
+ * @see #getColorType()
+ * @see #setColorType(ColorType)
+ * @generated
+ */
+ void unsetColorType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getColorType <em>Color Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Color Type</em>' attribute is set.
+ * @see #unsetColorType()
+ * @see #getColorType()
+ * @see #setColorType(ColorType)
+ * @generated
+ */
+ boolean isSetColorType();
+
+ /**
+ * Returns the value of the '<em><b>Dimension</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.iconset.IconDimension}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dimension</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dimension</em>' attribute.
+ * @see org.genivi.iconset.IconDimension
+ * @see #isSetDimension()
+ * @see #unsetDimension()
+ * @see #setDimension(IconDimension)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_Dimension()
+ * @model unsettable="true"
+ * @generated
+ */
+ IconDimension getDimension();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#getDimension <em>Dimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dimension</em>' attribute.
+ * @see org.genivi.iconset.IconDimension
+ * @see #isSetDimension()
+ * @see #unsetDimension()
+ * @see #getDimension()
+ * @generated
+ */
+ void setDimension(IconDimension value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getDimension <em>Dimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDimension()
+ * @see #getDimension()
+ * @see #setDimension(IconDimension)
+ * @generated
+ */
+ void unsetDimension();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getDimension <em>Dimension</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Dimension</em>' attribute is set.
+ * @see #unsetDimension()
+ * @see #getDimension()
+ * @see #setDimension(IconDimension)
+ * @generated
+ */
+ boolean isSetDimension();
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' containment reference.
+ * @see #isSetSize()
+ * @see #unsetSize()
+ * @see #setSize(IconSize)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_Size()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ IconSize getSize();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#getSize <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' containment reference.
+ * @see #isSetSize()
+ * @see #unsetSize()
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(IconSize value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getSize <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSize()
+ * @see #getSize()
+ * @see #setSize(IconSize)
+ * @generated
+ */
+ void unsetSize();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getSize <em>Size</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Size</em>' containment reference is set.
+ * @see #unsetSize()
+ * @see #getSize()
+ * @see #setSize(IconSize)
+ * @generated
+ */
+ boolean isSetSize();
+
+ /**
+ * Returns the value of the '<em><b>Day Time Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Day Time Icon</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Day Time Icon</em>' attribute.
+ * @see #isSetDayTimeIcon()
+ * @see #unsetDayTimeIcon()
+ * @see #setDayTimeIcon(boolean)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_DayTimeIcon()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ boolean isDayTimeIcon();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#isDayTimeIcon <em>Day Time Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Day Time Icon</em>' attribute.
+ * @see #isSetDayTimeIcon()
+ * @see #unsetDayTimeIcon()
+ * @see #isDayTimeIcon()
+ * @generated
+ */
+ void setDayTimeIcon(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#isDayTimeIcon <em>Day Time Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDayTimeIcon()
+ * @see #isDayTimeIcon()
+ * @see #setDayTimeIcon(boolean)
+ * @generated
+ */
+ void unsetDayTimeIcon();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#isDayTimeIcon <em>Day Time Icon</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Day Time Icon</em>' attribute is set.
+ * @see #unsetDayTimeIcon()
+ * @see #isDayTimeIcon()
+ * @see #setDayTimeIcon(boolean)
+ * @generated
+ */
+ boolean isSetDayTimeIcon();
+
+ /**
+ * Returns the value of the '<em><b>Theme Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Theme Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Theme Id</em>' attribute.
+ * @see #isSetThemeId()
+ * @see #unsetThemeId()
+ * @see #setThemeId(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_ThemeId()
+ * @model unsettable="true"
+ * @generated
+ */
+ int getThemeId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#getThemeId <em>Theme Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Theme Id</em>' attribute.
+ * @see #isSetThemeId()
+ * @see #unsetThemeId()
+ * @see #getThemeId()
+ * @generated
+ */
+ void setThemeId(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getThemeId <em>Theme Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetThemeId()
+ * @see #getThemeId()
+ * @see #setThemeId(int)
+ * @generated
+ */
+ void unsetThemeId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getThemeId <em>Theme Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Theme Id</em>' attribute is set.
+ * @see #unsetThemeId()
+ * @see #getThemeId()
+ * @see #setThemeId(int)
+ * @generated
+ */
+ boolean isSetThemeId();
+
+ /**
+ * Returns the value of the '<em><b>Medium Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Medium Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Medium Type</em>' attribute.
+ * @see #isSetMediumType()
+ * @see #unsetMediumType()
+ * @see #setMediumType(String)
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_MediumType()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getMediumType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSet#getMediumType <em>Medium Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Medium Type</em>' attribute.
+ * @see #isSetMediumType()
+ * @see #unsetMediumType()
+ * @see #getMediumType()
+ * @generated
+ */
+ void setMediumType(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getMediumType <em>Medium Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMediumType()
+ * @see #getMediumType()
+ * @see #setMediumType(String)
+ * @generated
+ */
+ void unsetMediumType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getMediumType <em>Medium Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Medium Type</em>' attribute is set.
+ * @see #unsetMediumType()
+ * @see #getMediumType()
+ * @see #setMediumType(String)
+ * @generated
+ */
+ boolean isSetMediumType();
+
+ /**
+ * Returns the value of the '<em><b>Icon Descriptors</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.iconset.IconDescriptor}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Descriptors</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Descriptors</em>' containment reference list.
+ * @see #isSetIconDescriptors()
+ * @see #unsetIconDescriptors()
+ * @see org.genivi.iconset.IconsetPackage#getIconSet_IconDescriptors()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<IconDescriptor> getIconDescriptors();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSet#getIconDescriptors <em>Icon Descriptors</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIconDescriptors()
+ * @see #getIconDescriptors()
+ * @generated
+ */
+ void unsetIconDescriptors();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSet#getIconDescriptors <em>Icon Descriptors</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Icon Descriptors</em>' containment reference list is set.
+ * @see #unsetIconDescriptors()
+ * @see #getIconDescriptors()
+ * @generated
+ */
+ boolean isSetIconDescriptors();
+
+} // IconSet
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSize.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSize.java
new file mode 100755
index 0000000..8c74955
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconSize.java
@@ -0,0 +1,192 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Icon Size</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.iconset.IconSize#getWidth <em>Width</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSize#getHeight <em>Height</em>}</li>
+ * <li>{@link org.genivi.iconset.IconSize#getDpi <em>Dpi</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.iconset.IconsetPackage#getIconSize()
+ * @model
+ * @generated
+ */
+public interface IconSize extends EObject {
+ /**
+ * Returns the value of the '<em><b>Width</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Width</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Width</em>' attribute.
+ * @see #isSetWidth()
+ * @see #unsetWidth()
+ * @see #setWidth(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconSize_Width()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getWidth();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSize#getWidth <em>Width</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Width</em>' attribute.
+ * @see #isSetWidth()
+ * @see #unsetWidth()
+ * @see #getWidth()
+ * @generated
+ */
+ void setWidth(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSize#getWidth <em>Width</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetWidth()
+ * @see #getWidth()
+ * @see #setWidth(int)
+ * @generated
+ */
+ void unsetWidth();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSize#getWidth <em>Width</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Width</em>' attribute is set.
+ * @see #unsetWidth()
+ * @see #getWidth()
+ * @see #setWidth(int)
+ * @generated
+ */
+ boolean isSetWidth();
+
+ /**
+ * Returns the value of the '<em><b>Height</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Height</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Height</em>' attribute.
+ * @see #isSetHeight()
+ * @see #unsetHeight()
+ * @see #setHeight(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconSize_Height()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getHeight();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSize#getHeight <em>Height</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Height</em>' attribute.
+ * @see #isSetHeight()
+ * @see #unsetHeight()
+ * @see #getHeight()
+ * @generated
+ */
+ void setHeight(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSize#getHeight <em>Height</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetHeight()
+ * @see #getHeight()
+ * @see #setHeight(int)
+ * @generated
+ */
+ void unsetHeight();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSize#getHeight <em>Height</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Height</em>' attribute is set.
+ * @see #unsetHeight()
+ * @see #getHeight()
+ * @see #setHeight(int)
+ * @generated
+ */
+ boolean isSetHeight();
+
+ /**
+ * Returns the value of the '<em><b>Dpi</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dpi</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dpi</em>' attribute.
+ * @see #isSetDpi()
+ * @see #unsetDpi()
+ * @see #setDpi(int)
+ * @see org.genivi.iconset.IconsetPackage#getIconSize_Dpi()
+ * @model unsettable="true"
+ * @generated
+ */
+ int getDpi();
+
+ /**
+ * Sets the value of the '{@link org.genivi.iconset.IconSize#getDpi <em>Dpi</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dpi</em>' attribute.
+ * @see #isSetDpi()
+ * @see #unsetDpi()
+ * @see #getDpi()
+ * @generated
+ */
+ void setDpi(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.iconset.IconSize#getDpi <em>Dpi</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDpi()
+ * @see #getDpi()
+ * @see #setDpi(int)
+ * @generated
+ */
+ void unsetDpi();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.iconset.IconSize#getDpi <em>Dpi</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Dpi</em>' attribute is set.
+ * @see #unsetDpi()
+ * @see #getDpi()
+ * @see #setDpi(int)
+ * @generated
+ */
+ boolean isSetDpi();
+
+} // IconSize
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetFactory.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetFactory.java
new file mode 100755
index 0000000..5941e3c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetFactory.java
@@ -0,0 +1,94 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconsetPackage
+ * @generated
+ */
+public interface IconsetFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ IconsetFactory eINSTANCE = org.genivi.iconset.impl.IconsetFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Icon Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon Set</em>'.
+ * @generated
+ */
+ IconSet createIconSet();
+
+ /**
+ * Returns a new object of class '<em>Icon Size</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon Size</em>'.
+ * @generated
+ */
+ IconSize createIconSize();
+
+ /**
+ * Returns a new object of class '<em>Icon Descriptor</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon Descriptor</em>'.
+ * @generated
+ */
+ IconDescriptor createIconDescriptor();
+
+ /**
+ * Returns a new object of class '<em>Icon Data</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon Data</em>'.
+ * @generated
+ */
+ IconData createIconData();
+
+ /**
+ * Returns a new object of class '<em>Icon Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon Info</em>'.
+ * @generated
+ */
+ IconInfo createIconInfo();
+
+ /**
+ * Returns a new object of class '<em>Icon Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon Definition</em>'.
+ * @generated
+ */
+ IconDefinition createIconDefinition();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ IconsetPackage getIconsetPackage();
+
+} //IconsetFactory
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetPackage.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetPackage.java
new file mode 100755
index 0000000..4e74c3b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/IconsetPackage.java
@@ -0,0 +1,890 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconsetFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface IconsetPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "iconset";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.iconset";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "iconset";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ IconsetPackage eINSTANCE = org.genivi.iconset.impl.IconsetPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.impl.IconSetImpl <em>Icon Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconSetImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconSet()
+ * @generated
+ */
+ int ICON_SET = 0;
+
+ /**
+ * The feature id for the '<em><b>Icon Set Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__ICON_SET_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Color Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__COLOR_TYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Dimension</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__DIMENSION = 2;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__SIZE = 3;
+
+ /**
+ * The feature id for the '<em><b>Day Time Icon</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__DAY_TIME_ICON = 4;
+
+ /**
+ * The feature id for the '<em><b>Theme Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__THEME_ID = 5;
+
+ /**
+ * The feature id for the '<em><b>Medium Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__MEDIUM_TYPE = 6;
+
+ /**
+ * The feature id for the '<em><b>Icon Descriptors</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET__ICON_DESCRIPTORS = 7;
+
+ /**
+ * The number of structural features of the '<em>Icon Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SET_FEATURE_COUNT = 8;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.impl.IconSizeImpl <em>Icon Size</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconSizeImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconSize()
+ * @generated
+ */
+ int ICON_SIZE = 1;
+
+ /**
+ * The feature id for the '<em><b>Width</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SIZE__WIDTH = 0;
+
+ /**
+ * The feature id for the '<em><b>Height</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SIZE__HEIGHT = 1;
+
+ /**
+ * The feature id for the '<em><b>Dpi</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SIZE__DPI = 2;
+
+ /**
+ * The number of structural features of the '<em>Icon Size</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_SIZE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.impl.IconDescriptorImpl <em>Icon Descriptor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconDescriptorImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconDescriptor()
+ * @generated
+ */
+ int ICON_DESCRIPTOR = 2;
+
+ /**
+ * The feature id for the '<em><b>Url</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DESCRIPTOR__URL = 0;
+
+ /**
+ * The feature id for the '<em><b>Icon Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DESCRIPTOR__ICON_ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Icon Descriptor</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DESCRIPTOR_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.impl.IconDataImpl <em>Icon Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconDataImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconData()
+ * @generated
+ */
+ int ICON_DATA = 3;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DATA__DATA = 0;
+
+ /**
+ * The number of structural features of the '<em>Icon Data</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DATA_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.impl.IconInfoImpl <em>Icon Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconInfoImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconInfo()
+ * @generated
+ */
+ int ICON_INFO = 4;
+
+ /**
+ * The feature id for the '<em><b>Icon Set Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_INFO__ICON_SET_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Icon Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_INFO__ICON_ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Icon Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_INFO_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.impl.IconDefinitionImpl <em>Icon Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconDefinitionImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconDefinition()
+ * @generated
+ */
+ int ICON_DEFINITION = 5;
+
+ /**
+ * The feature id for the '<em><b>Icon Info</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DEFINITION__ICON_INFO = 0;
+
+ /**
+ * The feature id for the '<em><b>Icon Data</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DEFINITION__ICON_DATA = 1;
+
+ /**
+ * The number of structural features of the '<em>Icon Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_DEFINITION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.ColorType <em>Color Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.ColorType
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getColorType()
+ * @generated
+ */
+ int COLOR_TYPE = 6;
+
+ /**
+ * The meta object id for the '{@link org.genivi.iconset.IconDimension <em>Icon Dimension</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconDimension
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconDimension()
+ * @generated
+ */
+ int ICON_DIMENSION = 7;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.iconset.IconSet <em>Icon Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Icon Set</em>'.
+ * @see org.genivi.iconset.IconSet
+ * @generated
+ */
+ EClass getIconSet();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSet#getIconSetId <em>Icon Set Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Icon Set Id</em>'.
+ * @see org.genivi.iconset.IconSet#getIconSetId()
+ * @see #getIconSet()
+ * @generated
+ */
+ EAttribute getIconSet_IconSetId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSet#getColorType <em>Color Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Color Type</em>'.
+ * @see org.genivi.iconset.IconSet#getColorType()
+ * @see #getIconSet()
+ * @generated
+ */
+ EAttribute getIconSet_ColorType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSet#getDimension <em>Dimension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dimension</em>'.
+ * @see org.genivi.iconset.IconSet#getDimension()
+ * @see #getIconSet()
+ * @generated
+ */
+ EAttribute getIconSet_Dimension();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.iconset.IconSet#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Size</em>'.
+ * @see org.genivi.iconset.IconSet#getSize()
+ * @see #getIconSet()
+ * @generated
+ */
+ EReference getIconSet_Size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSet#isDayTimeIcon <em>Day Time Icon</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Day Time Icon</em>'.
+ * @see org.genivi.iconset.IconSet#isDayTimeIcon()
+ * @see #getIconSet()
+ * @generated
+ */
+ EAttribute getIconSet_DayTimeIcon();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSet#getThemeId <em>Theme Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Theme Id</em>'.
+ * @see org.genivi.iconset.IconSet#getThemeId()
+ * @see #getIconSet()
+ * @generated
+ */
+ EAttribute getIconSet_ThemeId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSet#getMediumType <em>Medium Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Medium Type</em>'.
+ * @see org.genivi.iconset.IconSet#getMediumType()
+ * @see #getIconSet()
+ * @generated
+ */
+ EAttribute getIconSet_MediumType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.iconset.IconSet#getIconDescriptors <em>Icon Descriptors</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Icon Descriptors</em>'.
+ * @see org.genivi.iconset.IconSet#getIconDescriptors()
+ * @see #getIconSet()
+ * @generated
+ */
+ EReference getIconSet_IconDescriptors();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.iconset.IconSize <em>Icon Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Icon Size</em>'.
+ * @see org.genivi.iconset.IconSize
+ * @generated
+ */
+ EClass getIconSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSize#getWidth <em>Width</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Width</em>'.
+ * @see org.genivi.iconset.IconSize#getWidth()
+ * @see #getIconSize()
+ * @generated
+ */
+ EAttribute getIconSize_Width();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSize#getHeight <em>Height</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Height</em>'.
+ * @see org.genivi.iconset.IconSize#getHeight()
+ * @see #getIconSize()
+ * @generated
+ */
+ EAttribute getIconSize_Height();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconSize#getDpi <em>Dpi</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dpi</em>'.
+ * @see org.genivi.iconset.IconSize#getDpi()
+ * @see #getIconSize()
+ * @generated
+ */
+ EAttribute getIconSize_Dpi();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.iconset.IconDescriptor <em>Icon Descriptor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Icon Descriptor</em>'.
+ * @see org.genivi.iconset.IconDescriptor
+ * @generated
+ */
+ EClass getIconDescriptor();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconDescriptor#getUrl <em>Url</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Url</em>'.
+ * @see org.genivi.iconset.IconDescriptor#getUrl()
+ * @see #getIconDescriptor()
+ * @generated
+ */
+ EAttribute getIconDescriptor_Url();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconDescriptor#getIconId <em>Icon Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Icon Id</em>'.
+ * @see org.genivi.iconset.IconDescriptor#getIconId()
+ * @see #getIconDescriptor()
+ * @generated
+ */
+ EAttribute getIconDescriptor_IconId();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.iconset.IconData <em>Icon Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Icon Data</em>'.
+ * @see org.genivi.iconset.IconData
+ * @generated
+ */
+ EClass getIconData();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconData#getData <em>Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data</em>'.
+ * @see org.genivi.iconset.IconData#getData()
+ * @see #getIconData()
+ * @generated
+ */
+ EAttribute getIconData_Data();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.iconset.IconInfo <em>Icon Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Icon Info</em>'.
+ * @see org.genivi.iconset.IconInfo
+ * @generated
+ */
+ EClass getIconInfo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconInfo#getIconSetId <em>Icon Set Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Icon Set Id</em>'.
+ * @see org.genivi.iconset.IconInfo#getIconSetId()
+ * @see #getIconInfo()
+ * @generated
+ */
+ EAttribute getIconInfo_IconSetId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.iconset.IconInfo#getIconId <em>Icon Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Icon Id</em>'.
+ * @see org.genivi.iconset.IconInfo#getIconId()
+ * @see #getIconInfo()
+ * @generated
+ */
+ EAttribute getIconInfo_IconId();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.iconset.IconDefinition <em>Icon Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Icon Definition</em>'.
+ * @see org.genivi.iconset.IconDefinition
+ * @generated
+ */
+ EClass getIconDefinition();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.iconset.IconDefinition#getIconInfo <em>Icon Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Icon Info</em>'.
+ * @see org.genivi.iconset.IconDefinition#getIconInfo()
+ * @see #getIconDefinition()
+ * @generated
+ */
+ EReference getIconDefinition_IconInfo();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.iconset.IconDefinition#getIconData <em>Icon Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Icon Data</em>'.
+ * @see org.genivi.iconset.IconDefinition#getIconData()
+ * @see #getIconDefinition()
+ * @generated
+ */
+ EReference getIconDefinition_IconData();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.iconset.ColorType <em>Color Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Color Type</em>'.
+ * @see org.genivi.iconset.ColorType
+ * @generated
+ */
+ EEnum getColorType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.iconset.IconDimension <em>Icon Dimension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Icon Dimension</em>'.
+ * @see org.genivi.iconset.IconDimension
+ * @generated
+ */
+ EEnum getIconDimension();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ IconsetFactory getIconsetFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.impl.IconSetImpl <em>Icon Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconSetImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconSet()
+ * @generated
+ */
+ EClass ICON_SET = eINSTANCE.getIconSet();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Set Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SET__ICON_SET_ID = eINSTANCE.getIconSet_IconSetId();
+
+ /**
+ * The meta object literal for the '<em><b>Color Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SET__COLOR_TYPE = eINSTANCE.getIconSet_ColorType();
+
+ /**
+ * The meta object literal for the '<em><b>Dimension</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SET__DIMENSION = eINSTANCE.getIconSet_Dimension();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ICON_SET__SIZE = eINSTANCE.getIconSet_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Day Time Icon</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SET__DAY_TIME_ICON = eINSTANCE.getIconSet_DayTimeIcon();
+
+ /**
+ * The meta object literal for the '<em><b>Theme Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SET__THEME_ID = eINSTANCE.getIconSet_ThemeId();
+
+ /**
+ * The meta object literal for the '<em><b>Medium Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SET__MEDIUM_TYPE = eINSTANCE.getIconSet_MediumType();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Descriptors</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ICON_SET__ICON_DESCRIPTORS = eINSTANCE.getIconSet_IconDescriptors();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.impl.IconSizeImpl <em>Icon Size</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconSizeImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconSize()
+ * @generated
+ */
+ EClass ICON_SIZE = eINSTANCE.getIconSize();
+
+ /**
+ * The meta object literal for the '<em><b>Width</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SIZE__WIDTH = eINSTANCE.getIconSize_Width();
+
+ /**
+ * The meta object literal for the '<em><b>Height</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SIZE__HEIGHT = eINSTANCE.getIconSize_Height();
+
+ /**
+ * The meta object literal for the '<em><b>Dpi</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_SIZE__DPI = eINSTANCE.getIconSize_Dpi();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.impl.IconDescriptorImpl <em>Icon Descriptor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconDescriptorImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconDescriptor()
+ * @generated
+ */
+ EClass ICON_DESCRIPTOR = eINSTANCE.getIconDescriptor();
+
+ /**
+ * The meta object literal for the '<em><b>Url</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_DESCRIPTOR__URL = eINSTANCE.getIconDescriptor_Url();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_DESCRIPTOR__ICON_ID = eINSTANCE.getIconDescriptor_IconId();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.impl.IconDataImpl <em>Icon Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconDataImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconData()
+ * @generated
+ */
+ EClass ICON_DATA = eINSTANCE.getIconData();
+
+ /**
+ * The meta object literal for the '<em><b>Data</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_DATA__DATA = eINSTANCE.getIconData_Data();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.impl.IconInfoImpl <em>Icon Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconInfoImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconInfo()
+ * @generated
+ */
+ EClass ICON_INFO = eINSTANCE.getIconInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Set Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_INFO__ICON_SET_ID = eINSTANCE.getIconInfo_IconSetId();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ICON_INFO__ICON_ID = eINSTANCE.getIconInfo_IconId();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.impl.IconDefinitionImpl <em>Icon Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.impl.IconDefinitionImpl
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconDefinition()
+ * @generated
+ */
+ EClass ICON_DEFINITION = eINSTANCE.getIconDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Info</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ICON_DEFINITION__ICON_INFO = eINSTANCE.getIconDefinition_IconInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Data</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ICON_DEFINITION__ICON_DATA = eINSTANCE.getIconDefinition_IconData();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.ColorType <em>Color Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.ColorType
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getColorType()
+ * @generated
+ */
+ EEnum COLOR_TYPE = eINSTANCE.getColorType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.iconset.IconDimension <em>Icon Dimension</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconDimension
+ * @see org.genivi.iconset.impl.IconsetPackageImpl#getIconDimension()
+ * @generated
+ */
+ EEnum ICON_DIMENSION = eINSTANCE.getIconDimension();
+
+ }
+
+} //IconsetPackage
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDataImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDataImpl.java
new file mode 100755
index 0000000..1a5abfe
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDataImpl.java
@@ -0,0 +1,204 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Icon Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.iconset.impl.IconDataImpl#getData <em>Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconDataImpl extends EObjectImpl implements IconData {
+ /**
+ * The default value of the '{@link #getData() <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData()
+ * @generated
+ * @ordered
+ */
+ protected static final byte[] DATA_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getData() <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData()
+ * @generated
+ * @ordered
+ */
+ protected byte[] data = DATA_EDEFAULT;
+
+ /**
+ * This is true if the Data attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dataESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return IconsetPackage.Literals.ICON_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte[] getData() {
+ return data;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setData(byte[] newData) {
+ byte[] oldData = data;
+ data = newData;
+ boolean oldDataESet = dataESet;
+ dataESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DATA__DATA, oldData, data, !oldDataESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetData() {
+ byte[] oldData = data;
+ boolean oldDataESet = dataESet;
+ data = DATA_EDEFAULT;
+ dataESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DATA__DATA, oldData, DATA_EDEFAULT, oldDataESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetData() {
+ return dataESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DATA__DATA:
+ return getData();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DATA__DATA:
+ setData((byte[])newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DATA__DATA:
+ unsetData();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DATA__DATA:
+ return isSetData();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (data: ");
+ if (dataESet) result.append(data); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //IconDataImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDefinitionImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDefinitionImpl.java
new file mode 100755
index 0000000..e633fa8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDefinitionImpl.java
@@ -0,0 +1,372 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Icon Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.iconset.impl.IconDefinitionImpl#getIconInfo <em>Icon Info</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconDefinitionImpl#getIconData <em>Icon Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconDefinitionImpl extends EObjectImpl implements IconDefinition {
+ /**
+ * The cached value of the '{@link #getIconInfo() <em>Icon Info</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconInfo()
+ * @generated
+ * @ordered
+ */
+ protected IconInfo iconInfo;
+
+ /**
+ * This is true if the Icon Info containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean iconInfoESet;
+
+ /**
+ * The cached value of the '{@link #getIconData() <em>Icon Data</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconData()
+ * @generated
+ * @ordered
+ */
+ protected IconData iconData;
+
+ /**
+ * This is true if the Icon Data containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean iconDataESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconDefinitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return IconsetPackage.Literals.ICON_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconInfo getIconInfo() {
+ return iconInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIconInfo(IconInfo newIconInfo, NotificationChain msgs) {
+ IconInfo oldIconInfo = iconInfo;
+ iconInfo = newIconInfo;
+ boolean oldIconInfoESet = iconInfoESet;
+ iconInfoESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DEFINITION__ICON_INFO, oldIconInfo, newIconInfo, !oldIconInfoESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconInfo(IconInfo newIconInfo) {
+ if (newIconInfo != iconInfo) {
+ NotificationChain msgs = null;
+ if (iconInfo != null)
+ msgs = ((InternalEObject)iconInfo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_DEFINITION__ICON_INFO, null, msgs);
+ if (newIconInfo != null)
+ msgs = ((InternalEObject)newIconInfo).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_DEFINITION__ICON_INFO, null, msgs);
+ msgs = basicSetIconInfo(newIconInfo, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldIconInfoESet = iconInfoESet;
+ iconInfoESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DEFINITION__ICON_INFO, newIconInfo, newIconInfo, !oldIconInfoESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetIconInfo(NotificationChain msgs) {
+ IconInfo oldIconInfo = iconInfo;
+ iconInfo = null;
+ boolean oldIconInfoESet = iconInfoESet;
+ iconInfoESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DEFINITION__ICON_INFO, oldIconInfo, null, oldIconInfoESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconInfo() {
+ if (iconInfo != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)iconInfo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_DEFINITION__ICON_INFO, null, msgs);
+ msgs = basicUnsetIconInfo(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldIconInfoESet = iconInfoESet;
+ iconInfoESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DEFINITION__ICON_INFO, null, null, oldIconInfoESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconInfo() {
+ return iconInfoESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconData getIconData() {
+ return iconData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIconData(IconData newIconData, NotificationChain msgs) {
+ IconData oldIconData = iconData;
+ iconData = newIconData;
+ boolean oldIconDataESet = iconDataESet;
+ iconDataESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DEFINITION__ICON_DATA, oldIconData, newIconData, !oldIconDataESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconData(IconData newIconData) {
+ if (newIconData != iconData) {
+ NotificationChain msgs = null;
+ if (iconData != null)
+ msgs = ((InternalEObject)iconData).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_DEFINITION__ICON_DATA, null, msgs);
+ if (newIconData != null)
+ msgs = ((InternalEObject)newIconData).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_DEFINITION__ICON_DATA, null, msgs);
+ msgs = basicSetIconData(newIconData, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldIconDataESet = iconDataESet;
+ iconDataESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DEFINITION__ICON_DATA, newIconData, newIconData, !oldIconDataESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetIconData(NotificationChain msgs) {
+ IconData oldIconData = iconData;
+ iconData = null;
+ boolean oldIconDataESet = iconDataESet;
+ iconDataESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DEFINITION__ICON_DATA, oldIconData, null, oldIconDataESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconData() {
+ if (iconData != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)iconData).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_DEFINITION__ICON_DATA, null, msgs);
+ msgs = basicUnsetIconData(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldIconDataESet = iconDataESet;
+ iconDataESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DEFINITION__ICON_DATA, null, null, oldIconDataESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconData() {
+ return iconDataESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DEFINITION__ICON_INFO:
+ return basicUnsetIconInfo(msgs);
+ case IconsetPackage.ICON_DEFINITION__ICON_DATA:
+ return basicUnsetIconData(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DEFINITION__ICON_INFO:
+ return getIconInfo();
+ case IconsetPackage.ICON_DEFINITION__ICON_DATA:
+ return getIconData();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DEFINITION__ICON_INFO:
+ setIconInfo((IconInfo)newValue);
+ return;
+ case IconsetPackage.ICON_DEFINITION__ICON_DATA:
+ setIconData((IconData)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DEFINITION__ICON_INFO:
+ unsetIconInfo();
+ return;
+ case IconsetPackage.ICON_DEFINITION__ICON_DATA:
+ unsetIconData();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DEFINITION__ICON_INFO:
+ return isSetIconInfo();
+ case IconsetPackage.ICON_DEFINITION__ICON_DATA:
+ return isSetIconData();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //IconDefinitionImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDescriptorImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDescriptorImpl.java
new file mode 100755
index 0000000..1440228
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconDescriptorImpl.java
@@ -0,0 +1,289 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Icon Descriptor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.iconset.impl.IconDescriptorImpl#getUrl <em>Url</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconDescriptorImpl#getIconId <em>Icon Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconDescriptorImpl extends EObjectImpl implements IconDescriptor {
+ /**
+ * The default value of the '{@link #getUrl() <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUrl()
+ * @generated
+ * @ordered
+ */
+ protected static final String URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUrl()
+ * @generated
+ * @ordered
+ */
+ protected String url = URL_EDEFAULT;
+
+ /**
+ * This is true if the Url attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean urlESet;
+
+ /**
+ * The default value of the '{@link #getIconId() <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconId()
+ * @generated
+ * @ordered
+ */
+ protected static final int ICON_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIconId() <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconId()
+ * @generated
+ * @ordered
+ */
+ protected int iconId = ICON_ID_EDEFAULT;
+
+ /**
+ * This is true if the Icon Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean iconIdESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconDescriptorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return IconsetPackage.Literals.ICON_DESCRIPTOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUrl() {
+ return url;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUrl(String newUrl) {
+ String oldUrl = url;
+ url = newUrl;
+ boolean oldUrlESet = urlESet;
+ urlESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DESCRIPTOR__URL, oldUrl, url, !oldUrlESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetUrl() {
+ String oldUrl = url;
+ boolean oldUrlESet = urlESet;
+ url = URL_EDEFAULT;
+ urlESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DESCRIPTOR__URL, oldUrl, URL_EDEFAULT, oldUrlESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetUrl() {
+ return urlESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIconId() {
+ return iconId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconId(int newIconId) {
+ int oldIconId = iconId;
+ iconId = newIconId;
+ boolean oldIconIdESet = iconIdESet;
+ iconIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_DESCRIPTOR__ICON_ID, oldIconId, iconId, !oldIconIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconId() {
+ int oldIconId = iconId;
+ boolean oldIconIdESet = iconIdESet;
+ iconId = ICON_ID_EDEFAULT;
+ iconIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_DESCRIPTOR__ICON_ID, oldIconId, ICON_ID_EDEFAULT, oldIconIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconId() {
+ return iconIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DESCRIPTOR__URL:
+ return getUrl();
+ case IconsetPackage.ICON_DESCRIPTOR__ICON_ID:
+ return getIconId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DESCRIPTOR__URL:
+ setUrl((String)newValue);
+ return;
+ case IconsetPackage.ICON_DESCRIPTOR__ICON_ID:
+ setIconId((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DESCRIPTOR__URL:
+ unsetUrl();
+ return;
+ case IconsetPackage.ICON_DESCRIPTOR__ICON_ID:
+ unsetIconId();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_DESCRIPTOR__URL:
+ return isSetUrl();
+ case IconsetPackage.ICON_DESCRIPTOR__ICON_ID:
+ return isSetIconId();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (url: ");
+ if (urlESet) result.append(url); else result.append("<unset>");
+ result.append(", iconId: ");
+ if (iconIdESet) result.append(iconId); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //IconDescriptorImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconInfoImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconInfoImpl.java
new file mode 100755
index 0000000..b16cab4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconInfoImpl.java
@@ -0,0 +1,309 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Icon Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.iconset.impl.IconInfoImpl#getIconSetId <em>Icon Set Id</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconInfoImpl#getIconId <em>Icon Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconInfoImpl extends EObjectImpl implements IconInfo {
+ /**
+ * The default value of the '{@link #getIconSetId() <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconSetId()
+ * @generated
+ * @ordered
+ */
+ protected static final int ICON_SET_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIconSetId() <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconSetId()
+ * @generated
+ * @ordered
+ */
+ protected int iconSetId = ICON_SET_ID_EDEFAULT;
+
+ /**
+ * This is true if the Icon Set Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean iconSetIdESet;
+
+ /**
+ * The default value of the '{@link #getIconId() <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconId()
+ * @generated
+ * @ordered
+ */
+ protected static final int ICON_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIconId() <em>Icon Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconId()
+ * @generated
+ * @ordered
+ */
+ protected int iconId = ICON_ID_EDEFAULT;
+
+ /**
+ * This is true if the Icon Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean iconIdESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconInfoImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return IconsetPackage.Literals.ICON_INFO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIconSetId() {
+ return iconSetId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconSetId(int newIconSetId) {
+ int oldIconSetId = iconSetId;
+ iconSetId = newIconSetId;
+ boolean oldIconSetIdESet = iconSetIdESet;
+ iconSetIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_INFO__ICON_SET_ID, oldIconSetId, iconSetId, !oldIconSetIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconSetId() {
+ int oldIconSetId = iconSetId;
+ boolean oldIconSetIdESet = iconSetIdESet;
+ iconSetId = ICON_SET_ID_EDEFAULT;
+ iconSetIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_INFO__ICON_SET_ID, oldIconSetId, ICON_SET_ID_EDEFAULT, oldIconSetIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconSetId() {
+ return iconSetIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIconId() {
+ return iconId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconId(int newIconId) {
+ int oldIconId = iconId;
+ iconId = newIconId;
+ boolean oldIconIdESet = iconIdESet;
+ iconIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_INFO__ICON_ID, oldIconId, iconId, !oldIconIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconId() {
+ int oldIconId = iconId;
+ boolean oldIconIdESet = iconIdESet;
+ iconId = ICON_ID_EDEFAULT;
+ iconIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_INFO__ICON_ID, oldIconId, ICON_ID_EDEFAULT, oldIconIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconId() {
+ return iconIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case IconsetPackage.ICON_INFO__ICON_SET_ID:
+ return getIconSetId();
+ case IconsetPackage.ICON_INFO__ICON_ID:
+ return getIconId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case IconsetPackage.ICON_INFO__ICON_SET_ID:
+ setIconSetId((Integer)newValue);
+ return;
+ case IconsetPackage.ICON_INFO__ICON_ID:
+ setIconId((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_INFO__ICON_SET_ID:
+ unsetIconSetId();
+ return;
+ case IconsetPackage.ICON_INFO__ICON_ID:
+ unsetIconId();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_INFO__ICON_SET_ID:
+ return isSetIconSetId();
+ case IconsetPackage.ICON_INFO__ICON_ID:
+ return isSetIconId();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (iconSetId: ");
+ if (iconSetIdESet) result.append(iconSetId); else result.append("<unset>");
+ result.append(", iconId: ");
+ if (iconIdESet) result.append(iconId); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return iconSetId == ((IconInfo) obj).getIconSetId() &&
+ iconId == ((IconInfo) obj).getIconId();
+ }
+
+
+ @Override
+ public int hashCode() {
+ int hash = 7;
+
+ hash = 31 * hash + iconSetId;
+ hash = 31 * hash + (iconId);
+
+ return hash;
+ }
+
+} //IconInfoImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSetImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSetImpl.java
new file mode 100755
index 0000000..c05206c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSetImpl.java
@@ -0,0 +1,851 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.iconset.ColorType;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconDimension;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconSize;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Icon Set</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getIconSetId <em>Icon Set Id</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getColorType <em>Color Type</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getDimension <em>Dimension</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getSize <em>Size</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#isDayTimeIcon <em>Day Time Icon</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getThemeId <em>Theme Id</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getMediumType <em>Medium Type</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSetImpl#getIconDescriptors <em>Icon Descriptors</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconSetImpl extends EObjectImpl implements IconSet {
+ /**
+ * The default value of the '{@link #getIconSetId() <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconSetId()
+ * @generated
+ * @ordered
+ */
+ protected static final int ICON_SET_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIconSetId() <em>Icon Set Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconSetId()
+ * @generated
+ * @ordered
+ */
+ protected int iconSetId = ICON_SET_ID_EDEFAULT;
+
+ /**
+ * This is true if the Icon Set Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean iconSetIdESet;
+
+ /**
+ * The default value of the '{@link #getColorType() <em>Color Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColorType()
+ * @generated
+ * @ordered
+ */
+ protected static final ColorType COLOR_TYPE_EDEFAULT = ColorType.BLACK_AND_WHITE;
+
+ /**
+ * The cached value of the '{@link #getColorType() <em>Color Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColorType()
+ * @generated
+ * @ordered
+ */
+ protected ColorType colorType = COLOR_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Color Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean colorTypeESet;
+
+ /**
+ * The default value of the '{@link #getDimension() <em>Dimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDimension()
+ * @generated
+ * @ordered
+ */
+ protected static final IconDimension DIMENSION_EDEFAULT = IconDimension.D2D;
+
+ /**
+ * The cached value of the '{@link #getDimension() <em>Dimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDimension()
+ * @generated
+ * @ordered
+ */
+ protected IconDimension dimension = DIMENSION_EDEFAULT;
+
+ /**
+ * This is true if the Dimension attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dimensionESet;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected IconSize size;
+
+ /**
+ * This is true if the Size containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean sizeESet;
+
+ /**
+ * The default value of the '{@link #isDayTimeIcon() <em>Day Time Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDayTimeIcon()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DAY_TIME_ICON_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDayTimeIcon() <em>Day Time Icon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDayTimeIcon()
+ * @generated
+ * @ordered
+ */
+ protected boolean dayTimeIcon = DAY_TIME_ICON_EDEFAULT;
+
+ /**
+ * This is true if the Day Time Icon attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dayTimeIconESet;
+
+ /**
+ * The default value of the '{@link #getThemeId() <em>Theme Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThemeId()
+ * @generated
+ * @ordered
+ */
+ protected static final int THEME_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getThemeId() <em>Theme Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThemeId()
+ * @generated
+ * @ordered
+ */
+ protected int themeId = THEME_ID_EDEFAULT;
+
+ /**
+ * This is true if the Theme Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean themeIdESet;
+
+ /**
+ * The default value of the '{@link #getMediumType() <em>Medium Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMediumType()
+ * @generated
+ * @ordered
+ */
+ protected static final String MEDIUM_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMediumType() <em>Medium Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMediumType()
+ * @generated
+ * @ordered
+ */
+ protected String mediumType = MEDIUM_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Medium Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean mediumTypeESet;
+
+ /**
+ * The cached value of the '{@link #getIconDescriptors() <em>Icon Descriptors</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconDescriptors()
+ * @generated
+ * @ordered
+ */
+ protected EList<IconDescriptor> iconDescriptors;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return IconsetPackage.Literals.ICON_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIconSetId() {
+ return iconSetId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconSetId(int newIconSetId) {
+ int oldIconSetId = iconSetId;
+ iconSetId = newIconSetId;
+ boolean oldIconSetIdESet = iconSetIdESet;
+ iconSetIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__ICON_SET_ID, oldIconSetId, iconSetId, !oldIconSetIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconSetId() {
+ int oldIconSetId = iconSetId;
+ boolean oldIconSetIdESet = iconSetIdESet;
+ iconSetId = ICON_SET_ID_EDEFAULT;
+ iconSetIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__ICON_SET_ID, oldIconSetId, ICON_SET_ID_EDEFAULT, oldIconSetIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconSetId() {
+ return iconSetIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ColorType getColorType() {
+ return colorType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setColorType(ColorType newColorType) {
+ ColorType oldColorType = colorType;
+ colorType = newColorType == null ? COLOR_TYPE_EDEFAULT : newColorType;
+ boolean oldColorTypeESet = colorTypeESet;
+ colorTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__COLOR_TYPE, oldColorType, colorType, !oldColorTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetColorType() {
+ ColorType oldColorType = colorType;
+ boolean oldColorTypeESet = colorTypeESet;
+ colorType = COLOR_TYPE_EDEFAULT;
+ colorTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__COLOR_TYPE, oldColorType, COLOR_TYPE_EDEFAULT, oldColorTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetColorType() {
+ return colorTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconDimension getDimension() {
+ return dimension;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDimension(IconDimension newDimension) {
+ IconDimension oldDimension = dimension;
+ dimension = newDimension == null ? DIMENSION_EDEFAULT : newDimension;
+ boolean oldDimensionESet = dimensionESet;
+ dimensionESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__DIMENSION, oldDimension, dimension, !oldDimensionESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDimension() {
+ IconDimension oldDimension = dimension;
+ boolean oldDimensionESet = dimensionESet;
+ dimension = DIMENSION_EDEFAULT;
+ dimensionESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__DIMENSION, oldDimension, DIMENSION_EDEFAULT, oldDimensionESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDimension() {
+ return dimensionESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconSize getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSize(IconSize newSize, NotificationChain msgs) {
+ IconSize oldSize = size;
+ size = newSize;
+ boolean oldSizeESet = sizeESet;
+ sizeESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__SIZE, oldSize, newSize, !oldSizeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(IconSize newSize) {
+ if (newSize != size) {
+ NotificationChain msgs = null;
+ if (size != null)
+ msgs = ((InternalEObject)size).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_SET__SIZE, null, msgs);
+ if (newSize != null)
+ msgs = ((InternalEObject)newSize).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_SET__SIZE, null, msgs);
+ msgs = basicSetSize(newSize, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldSizeESet = sizeESet;
+ sizeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__SIZE, newSize, newSize, !oldSizeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetSize(NotificationChain msgs) {
+ IconSize oldSize = size;
+ size = null;
+ boolean oldSizeESet = sizeESet;
+ sizeESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__SIZE, oldSize, null, oldSizeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSize() {
+ if (size != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)size).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - IconsetPackage.ICON_SET__SIZE, null, msgs);
+ msgs = basicUnsetSize(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldSizeESet = sizeESet;
+ sizeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__SIZE, null, null, oldSizeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSize() {
+ return sizeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDayTimeIcon() {
+ return dayTimeIcon;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDayTimeIcon(boolean newDayTimeIcon) {
+ boolean oldDayTimeIcon = dayTimeIcon;
+ dayTimeIcon = newDayTimeIcon;
+ boolean oldDayTimeIconESet = dayTimeIconESet;
+ dayTimeIconESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__DAY_TIME_ICON, oldDayTimeIcon, dayTimeIcon, !oldDayTimeIconESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDayTimeIcon() {
+ boolean oldDayTimeIcon = dayTimeIcon;
+ boolean oldDayTimeIconESet = dayTimeIconESet;
+ dayTimeIcon = DAY_TIME_ICON_EDEFAULT;
+ dayTimeIconESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__DAY_TIME_ICON, oldDayTimeIcon, DAY_TIME_ICON_EDEFAULT, oldDayTimeIconESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDayTimeIcon() {
+ return dayTimeIconESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getThemeId() {
+ return themeId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThemeId(int newThemeId) {
+ int oldThemeId = themeId;
+ themeId = newThemeId;
+ boolean oldThemeIdESet = themeIdESet;
+ themeIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__THEME_ID, oldThemeId, themeId, !oldThemeIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetThemeId() {
+ int oldThemeId = themeId;
+ boolean oldThemeIdESet = themeIdESet;
+ themeId = THEME_ID_EDEFAULT;
+ themeIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__THEME_ID, oldThemeId, THEME_ID_EDEFAULT, oldThemeIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetThemeId() {
+ return themeIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMediumType() {
+ return mediumType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMediumType(String newMediumType) {
+ String oldMediumType = mediumType;
+ mediumType = newMediumType;
+ boolean oldMediumTypeESet = mediumTypeESet;
+ mediumTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SET__MEDIUM_TYPE, oldMediumType, mediumType, !oldMediumTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMediumType() {
+ String oldMediumType = mediumType;
+ boolean oldMediumTypeESet = mediumTypeESet;
+ mediumType = MEDIUM_TYPE_EDEFAULT;
+ mediumTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SET__MEDIUM_TYPE, oldMediumType, MEDIUM_TYPE_EDEFAULT, oldMediumTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMediumType() {
+ return mediumTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<IconDescriptor> getIconDescriptors() {
+ if (iconDescriptors == null) {
+ iconDescriptors = new EObjectContainmentEList.Unsettable<IconDescriptor>(IconDescriptor.class, this, IconsetPackage.ICON_SET__ICON_DESCRIPTORS);
+ }
+ return iconDescriptors;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIconDescriptors() {
+ if (iconDescriptors != null) ((InternalEList.Unsettable<?>)iconDescriptors).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIconDescriptors() {
+ return iconDescriptors != null && ((InternalEList.Unsettable<?>)iconDescriptors).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SET__SIZE:
+ return basicUnsetSize(msgs);
+ case IconsetPackage.ICON_SET__ICON_DESCRIPTORS:
+ return ((InternalEList<?>)getIconDescriptors()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SET__ICON_SET_ID:
+ return getIconSetId();
+ case IconsetPackage.ICON_SET__COLOR_TYPE:
+ return getColorType();
+ case IconsetPackage.ICON_SET__DIMENSION:
+ return getDimension();
+ case IconsetPackage.ICON_SET__SIZE:
+ return getSize();
+ case IconsetPackage.ICON_SET__DAY_TIME_ICON:
+ return isDayTimeIcon();
+ case IconsetPackage.ICON_SET__THEME_ID:
+ return getThemeId();
+ case IconsetPackage.ICON_SET__MEDIUM_TYPE:
+ return getMediumType();
+ case IconsetPackage.ICON_SET__ICON_DESCRIPTORS:
+ return getIconDescriptors();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SET__ICON_SET_ID:
+ setIconSetId((Integer)newValue);
+ return;
+ case IconsetPackage.ICON_SET__COLOR_TYPE:
+ setColorType((ColorType)newValue);
+ return;
+ case IconsetPackage.ICON_SET__DIMENSION:
+ setDimension((IconDimension)newValue);
+ return;
+ case IconsetPackage.ICON_SET__SIZE:
+ setSize((IconSize)newValue);
+ return;
+ case IconsetPackage.ICON_SET__DAY_TIME_ICON:
+ setDayTimeIcon((Boolean)newValue);
+ return;
+ case IconsetPackage.ICON_SET__THEME_ID:
+ setThemeId((Integer)newValue);
+ return;
+ case IconsetPackage.ICON_SET__MEDIUM_TYPE:
+ setMediumType((String)newValue);
+ return;
+ case IconsetPackage.ICON_SET__ICON_DESCRIPTORS:
+ getIconDescriptors().clear();
+ getIconDescriptors().addAll((Collection<? extends IconDescriptor>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SET__ICON_SET_ID:
+ unsetIconSetId();
+ return;
+ case IconsetPackage.ICON_SET__COLOR_TYPE:
+ unsetColorType();
+ return;
+ case IconsetPackage.ICON_SET__DIMENSION:
+ unsetDimension();
+ return;
+ case IconsetPackage.ICON_SET__SIZE:
+ unsetSize();
+ return;
+ case IconsetPackage.ICON_SET__DAY_TIME_ICON:
+ unsetDayTimeIcon();
+ return;
+ case IconsetPackage.ICON_SET__THEME_ID:
+ unsetThemeId();
+ return;
+ case IconsetPackage.ICON_SET__MEDIUM_TYPE:
+ unsetMediumType();
+ return;
+ case IconsetPackage.ICON_SET__ICON_DESCRIPTORS:
+ unsetIconDescriptors();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SET__ICON_SET_ID:
+ return isSetIconSetId();
+ case IconsetPackage.ICON_SET__COLOR_TYPE:
+ return isSetColorType();
+ case IconsetPackage.ICON_SET__DIMENSION:
+ return isSetDimension();
+ case IconsetPackage.ICON_SET__SIZE:
+ return isSetSize();
+ case IconsetPackage.ICON_SET__DAY_TIME_ICON:
+ return isSetDayTimeIcon();
+ case IconsetPackage.ICON_SET__THEME_ID:
+ return isSetThemeId();
+ case IconsetPackage.ICON_SET__MEDIUM_TYPE:
+ return isSetMediumType();
+ case IconsetPackage.ICON_SET__ICON_DESCRIPTORS:
+ return isSetIconDescriptors();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (iconSetId: ");
+ if (iconSetIdESet) result.append(iconSetId); else result.append("<unset>");
+ result.append(", colorType: ");
+ if (colorTypeESet) result.append(colorType); else result.append("<unset>");
+ result.append(", dimension: ");
+ if (dimensionESet) result.append(dimension); else result.append("<unset>");
+ result.append(", dayTimeIcon: ");
+ if (dayTimeIconESet) result.append(dayTimeIcon); else result.append("<unset>");
+ result.append(", themeId: ");
+ if (themeIdESet) result.append(themeId); else result.append("<unset>");
+ result.append(", mediumType: ");
+ if (mediumTypeESet) result.append(mediumType); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //IconSetImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSizeImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSizeImpl.java
new file mode 100755
index 0000000..5afad2a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconSizeImpl.java
@@ -0,0 +1,380 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.iconset.IconSize;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Icon Size</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.iconset.impl.IconSizeImpl#getWidth <em>Width</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSizeImpl#getHeight <em>Height</em>}</li>
+ * <li>{@link org.genivi.iconset.impl.IconSizeImpl#getDpi <em>Dpi</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconSizeImpl extends EObjectImpl implements IconSize {
+ /**
+ * The default value of the '{@link #getWidth() <em>Width</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWidth()
+ * @generated
+ * @ordered
+ */
+ protected static final int WIDTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getWidth() <em>Width</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWidth()
+ * @generated
+ * @ordered
+ */
+ protected int width = WIDTH_EDEFAULT;
+
+ /**
+ * This is true if the Width attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean widthESet;
+
+ /**
+ * The default value of the '{@link #getHeight() <em>Height</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeight()
+ * @generated
+ * @ordered
+ */
+ protected static final int HEIGHT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getHeight() <em>Height</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeight()
+ * @generated
+ * @ordered
+ */
+ protected int height = HEIGHT_EDEFAULT;
+
+ /**
+ * This is true if the Height attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean heightESet;
+
+ /**
+ * The default value of the '{@link #getDpi() <em>Dpi</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDpi()
+ * @generated
+ * @ordered
+ */
+ protected static final int DPI_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDpi() <em>Dpi</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDpi()
+ * @generated
+ * @ordered
+ */
+ protected int dpi = DPI_EDEFAULT;
+
+ /**
+ * This is true if the Dpi attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dpiESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconSizeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return IconsetPackage.Literals.ICON_SIZE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getWidth() {
+ return width;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWidth(int newWidth) {
+ int oldWidth = width;
+ width = newWidth;
+ boolean oldWidthESet = widthESet;
+ widthESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SIZE__WIDTH, oldWidth, width, !oldWidthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetWidth() {
+ int oldWidth = width;
+ boolean oldWidthESet = widthESet;
+ width = WIDTH_EDEFAULT;
+ widthESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SIZE__WIDTH, oldWidth, WIDTH_EDEFAULT, oldWidthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetWidth() {
+ return widthESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHeight() {
+ return height;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHeight(int newHeight) {
+ int oldHeight = height;
+ height = newHeight;
+ boolean oldHeightESet = heightESet;
+ heightESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SIZE__HEIGHT, oldHeight, height, !oldHeightESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetHeight() {
+ int oldHeight = height;
+ boolean oldHeightESet = heightESet;
+ height = HEIGHT_EDEFAULT;
+ heightESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SIZE__HEIGHT, oldHeight, HEIGHT_EDEFAULT, oldHeightESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetHeight() {
+ return heightESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDpi() {
+ return dpi;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDpi(int newDpi) {
+ int oldDpi = dpi;
+ dpi = newDpi;
+ boolean oldDpiESet = dpiESet;
+ dpiESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, IconsetPackage.ICON_SIZE__DPI, oldDpi, dpi, !oldDpiESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDpi() {
+ int oldDpi = dpi;
+ boolean oldDpiESet = dpiESet;
+ dpi = DPI_EDEFAULT;
+ dpiESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, IconsetPackage.ICON_SIZE__DPI, oldDpi, DPI_EDEFAULT, oldDpiESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDpi() {
+ return dpiESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SIZE__WIDTH:
+ return getWidth();
+ case IconsetPackage.ICON_SIZE__HEIGHT:
+ return getHeight();
+ case IconsetPackage.ICON_SIZE__DPI:
+ return getDpi();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SIZE__WIDTH:
+ setWidth((Integer)newValue);
+ return;
+ case IconsetPackage.ICON_SIZE__HEIGHT:
+ setHeight((Integer)newValue);
+ return;
+ case IconsetPackage.ICON_SIZE__DPI:
+ setDpi((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SIZE__WIDTH:
+ unsetWidth();
+ return;
+ case IconsetPackage.ICON_SIZE__HEIGHT:
+ unsetHeight();
+ return;
+ case IconsetPackage.ICON_SIZE__DPI:
+ unsetDpi();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case IconsetPackage.ICON_SIZE__WIDTH:
+ return isSetWidth();
+ case IconsetPackage.ICON_SIZE__HEIGHT:
+ return isSetHeight();
+ case IconsetPackage.ICON_SIZE__DPI:
+ return isSetDpi();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (width: ");
+ if (widthESet) result.append(width); else result.append("<unset>");
+ result.append(", height: ");
+ if (heightESet) result.append(height); else result.append("<unset>");
+ result.append(", dpi: ");
+ if (dpiESet) result.append(dpi); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //IconSizeImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetFactoryImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetFactoryImpl.java
new file mode 100755
index 0000000..2e72047
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetFactoryImpl.java
@@ -0,0 +1,232 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.iconset.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IconsetFactoryImpl extends EFactoryImpl implements IconsetFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IconsetFactory init() {
+ try {
+ IconsetFactory theIconsetFactory = (IconsetFactory)EPackage.Registry.INSTANCE.getEFactory(IconsetPackage.eNS_URI);
+ if (theIconsetFactory != null) {
+ return theIconsetFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new IconsetFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconsetFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case IconsetPackage.ICON_SET: return createIconSet();
+ case IconsetPackage.ICON_SIZE: return createIconSize();
+ case IconsetPackage.ICON_DESCRIPTOR: return createIconDescriptor();
+ case IconsetPackage.ICON_DATA: return createIconData();
+ case IconsetPackage.ICON_INFO: return createIconInfo();
+ case IconsetPackage.ICON_DEFINITION: return createIconDefinition();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case IconsetPackage.COLOR_TYPE:
+ return createColorTypeFromString(eDataType, initialValue);
+ case IconsetPackage.ICON_DIMENSION:
+ return createIconDimensionFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case IconsetPackage.COLOR_TYPE:
+ return convertColorTypeToString(eDataType, instanceValue);
+ case IconsetPackage.ICON_DIMENSION:
+ return convertIconDimensionToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconSet createIconSet() {
+ IconSetImpl iconSet = new IconSetImpl();
+ return iconSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconSize createIconSize() {
+ IconSizeImpl iconSize = new IconSizeImpl();
+ return iconSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconDescriptor createIconDescriptor() {
+ IconDescriptorImpl iconDescriptor = new IconDescriptorImpl();
+ return iconDescriptor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconData createIconData() {
+ IconDataImpl iconData = new IconDataImpl();
+ return iconData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconInfo createIconInfo() {
+ IconInfoImpl iconInfo = new IconInfoImpl();
+ return iconInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconDefinition createIconDefinition() {
+ IconDefinitionImpl iconDefinition = new IconDefinitionImpl();
+ return iconDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ColorType createColorTypeFromString(EDataType eDataType, String initialValue) {
+ ColorType result = ColorType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertColorTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconDimension createIconDimensionFromString(EDataType eDataType, String initialValue) {
+ IconDimension result = IconDimension.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertIconDimensionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconsetPackage getIconsetPackage() {
+ return (IconsetPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static IconsetPackage getPackage() {
+ return IconsetPackage.eINSTANCE;
+ }
+
+} //IconsetFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetPackageImpl.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetPackageImpl.java
new file mode 100755
index 0000000..5ebf0ee
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/impl/IconsetPackageImpl.java
@@ -0,0 +1,549 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.iconset.ColorType;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconDimension;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconSize;
+import org.genivi.iconset.IconsetFactory;
+import org.genivi.iconset.IconsetPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IconsetPackageImpl extends EPackageImpl implements IconsetPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iconSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iconSizeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iconDescriptorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iconDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iconInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass iconDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum colorTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum iconDimensionEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.iconset.IconsetPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private IconsetPackageImpl() {
+ super(eNS_URI, IconsetFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link IconsetPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static IconsetPackage init() {
+ if (isInited) return (IconsetPackage)EPackage.Registry.INSTANCE.getEPackage(IconsetPackage.eNS_URI);
+
+ // Obtain or create and register package
+ IconsetPackageImpl theIconsetPackage = (IconsetPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof IconsetPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new IconsetPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theIconsetPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theIconsetPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theIconsetPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(IconsetPackage.eNS_URI, theIconsetPackage);
+ return theIconsetPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIconSet() {
+ return iconSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSet_IconSetId() {
+ return (EAttribute)iconSetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSet_ColorType() {
+ return (EAttribute)iconSetEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSet_Dimension() {
+ return (EAttribute)iconSetEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIconSet_Size() {
+ return (EReference)iconSetEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSet_DayTimeIcon() {
+ return (EAttribute)iconSetEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSet_ThemeId() {
+ return (EAttribute)iconSetEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSet_MediumType() {
+ return (EAttribute)iconSetEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIconSet_IconDescriptors() {
+ return (EReference)iconSetEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIconSize() {
+ return iconSizeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSize_Width() {
+ return (EAttribute)iconSizeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSize_Height() {
+ return (EAttribute)iconSizeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconSize_Dpi() {
+ return (EAttribute)iconSizeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIconDescriptor() {
+ return iconDescriptorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconDescriptor_Url() {
+ return (EAttribute)iconDescriptorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconDescriptor_IconId() {
+ return (EAttribute)iconDescriptorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIconData() {
+ return iconDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconData_Data() {
+ return (EAttribute)iconDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIconInfo() {
+ return iconInfoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconInfo_IconSetId() {
+ return (EAttribute)iconInfoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getIconInfo_IconId() {
+ return (EAttribute)iconInfoEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIconDefinition() {
+ return iconDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIconDefinition_IconInfo() {
+ return (EReference)iconDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getIconDefinition_IconData() {
+ return (EReference)iconDefinitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getColorType() {
+ return colorTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getIconDimension() {
+ return iconDimensionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconsetFactory getIconsetFactory() {
+ return (IconsetFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ iconSetEClass = createEClass(ICON_SET);
+ createEAttribute(iconSetEClass, ICON_SET__ICON_SET_ID);
+ createEAttribute(iconSetEClass, ICON_SET__COLOR_TYPE);
+ createEAttribute(iconSetEClass, ICON_SET__DIMENSION);
+ createEReference(iconSetEClass, ICON_SET__SIZE);
+ createEAttribute(iconSetEClass, ICON_SET__DAY_TIME_ICON);
+ createEAttribute(iconSetEClass, ICON_SET__THEME_ID);
+ createEAttribute(iconSetEClass, ICON_SET__MEDIUM_TYPE);
+ createEReference(iconSetEClass, ICON_SET__ICON_DESCRIPTORS);
+
+ iconSizeEClass = createEClass(ICON_SIZE);
+ createEAttribute(iconSizeEClass, ICON_SIZE__WIDTH);
+ createEAttribute(iconSizeEClass, ICON_SIZE__HEIGHT);
+ createEAttribute(iconSizeEClass, ICON_SIZE__DPI);
+
+ iconDescriptorEClass = createEClass(ICON_DESCRIPTOR);
+ createEAttribute(iconDescriptorEClass, ICON_DESCRIPTOR__URL);
+ createEAttribute(iconDescriptorEClass, ICON_DESCRIPTOR__ICON_ID);
+
+ iconDataEClass = createEClass(ICON_DATA);
+ createEAttribute(iconDataEClass, ICON_DATA__DATA);
+
+ iconInfoEClass = createEClass(ICON_INFO);
+ createEAttribute(iconInfoEClass, ICON_INFO__ICON_SET_ID);
+ createEAttribute(iconInfoEClass, ICON_INFO__ICON_ID);
+
+ iconDefinitionEClass = createEClass(ICON_DEFINITION);
+ createEReference(iconDefinitionEClass, ICON_DEFINITION__ICON_INFO);
+ createEReference(iconDefinitionEClass, ICON_DEFINITION__ICON_DATA);
+
+ // Create enums
+ colorTypeEEnum = createEEnum(COLOR_TYPE);
+ iconDimensionEEnum = createEEnum(ICON_DIMENSION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(iconSetEClass, IconSet.class, "IconSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIconSet_IconSetId(), ecorePackage.getEInt(), "iconSetId", null, 1, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSet_ColorType(), this.getColorType(), "colorType", null, 1, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSet_Dimension(), this.getIconDimension(), "dimension", null, 0, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getIconSet_Size(), this.getIconSize(), null, "size", null, 1, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSet_DayTimeIcon(), ecorePackage.getEBoolean(), "dayTimeIcon", null, 1, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSet_ThemeId(), ecorePackage.getEInt(), "themeId", null, 0, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSet_MediumType(), ecorePackage.getEString(), "mediumType", null, 1, 1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getIconSet_IconDescriptors(), this.getIconDescriptor(), null, "iconDescriptors", null, 0, -1, IconSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(iconSizeEClass, IconSize.class, "IconSize", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIconSize_Width(), ecorePackage.getEInt(), "width", null, 1, 1, IconSize.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSize_Height(), ecorePackage.getEInt(), "height", null, 1, 1, IconSize.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconSize_Dpi(), ecorePackage.getEInt(), "dpi", null, 0, 1, IconSize.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(iconDescriptorEClass, IconDescriptor.class, "IconDescriptor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIconDescriptor_Url(), ecorePackage.getEString(), "url", null, 0, 1, IconDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconDescriptor_IconId(), ecorePackage.getEInt(), "iconId", null, 1, 1, IconDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(iconDataEClass, IconData.class, "IconData", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIconData_Data(), ecorePackage.getEByteArray(), "data", null, 0, 1, IconData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(iconInfoEClass, IconInfo.class, "IconInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIconInfo_IconSetId(), ecorePackage.getEInt(), "iconSetId", null, 1, 1, IconInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIconInfo_IconId(), ecorePackage.getEInt(), "iconId", null, 1, 1, IconInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(iconDefinitionEClass, IconDefinition.class, "IconDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getIconDefinition_IconInfo(), this.getIconInfo(), null, "iconInfo", null, 1, 1, IconDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getIconDefinition_IconData(), this.getIconData(), null, "iconData", null, 1, 1, IconDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(colorTypeEEnum, ColorType.class, "ColorType");
+ addEEnumLiteral(colorTypeEEnum, ColorType.BLACK_AND_WHITE);
+ addEEnumLiteral(colorTypeEEnum, ColorType.GRAY_4);
+ addEEnumLiteral(colorTypeEEnum, ColorType.GRAY_8);
+ addEEnumLiteral(colorTypeEEnum, ColorType.RGB555);
+ addEEnumLiteral(colorTypeEEnum, ColorType.RGB565);
+ addEEnumLiteral(colorTypeEEnum, ColorType.RGB888);
+
+ initEEnum(iconDimensionEEnum, IconDimension.class, "IconDimension");
+ addEEnumLiteral(iconDimensionEEnum, IconDimension.D2D);
+ addEEnumLiteral(iconDimensionEEnum, IconDimension.D25D);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //IconsetPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetAdapterFactory.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetAdapterFactory.java
new file mode 100755
index 0000000..edc3f92
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetAdapterFactory.java
@@ -0,0 +1,217 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.iconset.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconsetPackage
+ * @generated
+ */
+public class IconsetAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static IconsetPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconsetAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = IconsetPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IconsetSwitch<Adapter> modelSwitch =
+ new IconsetSwitch<Adapter>() {
+ @Override
+ public Adapter caseIconSet(IconSet object) {
+ return createIconSetAdapter();
+ }
+ @Override
+ public Adapter caseIconSize(IconSize object) {
+ return createIconSizeAdapter();
+ }
+ @Override
+ public Adapter caseIconDescriptor(IconDescriptor object) {
+ return createIconDescriptorAdapter();
+ }
+ @Override
+ public Adapter caseIconData(IconData object) {
+ return createIconDataAdapter();
+ }
+ @Override
+ public Adapter caseIconInfo(IconInfo object) {
+ return createIconInfoAdapter();
+ }
+ @Override
+ public Adapter caseIconDefinition(IconDefinition object) {
+ return createIconDefinitionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.iconset.IconSet <em>Icon Set</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.iconset.IconSet
+ * @generated
+ */
+ public Adapter createIconSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.iconset.IconSize <em>Icon Size</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.iconset.IconSize
+ * @generated
+ */
+ public Adapter createIconSizeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.iconset.IconDescriptor <em>Icon Descriptor</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.iconset.IconDescriptor
+ * @generated
+ */
+ public Adapter createIconDescriptorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.iconset.IconData <em>Icon Data</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.iconset.IconData
+ * @generated
+ */
+ public Adapter createIconDataAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.iconset.IconInfo <em>Icon Info</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.iconset.IconInfo
+ * @generated
+ */
+ public Adapter createIconInfoAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.iconset.IconDefinition <em>Icon Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.iconset.IconDefinition
+ * @generated
+ */
+ public Adapter createIconDefinitionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //IconsetAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetSwitch.java b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetSwitch.java
new file mode 100755
index 0000000..8d5a550
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.iconset-model/src/org/genivi/iconset/util/IconsetSwitch.java
@@ -0,0 +1,222 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.iconset.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.iconset.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.iconset.IconsetPackage
+ * @generated
+ */
+public class IconsetSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static IconsetPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconsetSwitch() {
+ if (modelPackage == null) {
+ modelPackage = IconsetPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case IconsetPackage.ICON_SET: {
+ IconSet iconSet = (IconSet)theEObject;
+ T result = caseIconSet(iconSet);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case IconsetPackage.ICON_SIZE: {
+ IconSize iconSize = (IconSize)theEObject;
+ T result = caseIconSize(iconSize);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case IconsetPackage.ICON_DESCRIPTOR: {
+ IconDescriptor iconDescriptor = (IconDescriptor)theEObject;
+ T result = caseIconDescriptor(iconDescriptor);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case IconsetPackage.ICON_DATA: {
+ IconData iconData = (IconData)theEObject;
+ T result = caseIconData(iconData);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case IconsetPackage.ICON_INFO: {
+ IconInfo iconInfo = (IconInfo)theEObject;
+ T result = caseIconInfo(iconInfo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case IconsetPackage.ICON_DEFINITION: {
+ IconDefinition iconDefinition = (IconDefinition)theEObject;
+ T result = caseIconDefinition(iconDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Set</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconSet(IconSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Size</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Size</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconSize(IconSize object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Descriptor</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Descriptor</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconDescriptor(IconDescriptor object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Data</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Data</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconData(IconData object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Info</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Info</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconInfo(IconInfo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconDefinition(IconDefinition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //IconsetSwitch
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/.classpath b/src/traffic-incidents-service/org.genivi.locref-model/.classpath
new file mode 100755
index 0000000..1af8d0d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/.project b/src/traffic-incidents-service/org.genivi.locref-model/.project
new file mode 100755
index 0000000..d3f8643
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.locref-model</name>
+ <comment>This project contains the model for GENIVI location references. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.locref-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..2b78f58
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.locref-model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.locref,
+ org.genivi.locref.impl,
+ org.genivi.locref.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.basetypes-model
+Bundle-ActivationPolicy: lazy
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.locref-model/ReadMe.confluence
new file mode 100755
index 0000000..5d0b2a9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/ReadMe.confluence
@@ -0,0 +1,4 @@
+This project defines an interface for decoding Location References.
+Currently this is an internal interface within the TrafficIncidentsService. However, in the future, they may be a separate component for decoding Location References (as part of Map Data Access).
+
+LocationReference.ecorediag, in de model folder, provides an overview of the interface. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/build.properties b/src/traffic-incidents-service/org.genivi.locref-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecore b/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecore
new file mode 100755
index 0000000..74c2bd0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecore
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="locref" nsURI="http://org.genivi.locref" nsPrefix="locref">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="LocationReference">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="locationReferenceType"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocationReferenceDecodingService">
+ <eOperations name="decode">
+ <eParameters name="listener" lowerBound="1" eType="#//LocationReferenceDecodingServiceListener"/>
+ <eParameters name="locationReference" lowerBound="1" eType="#//LocationReference"/>
+ </eOperations>
+ <eOperations name="setLanguage">
+ <eParameters name="languageCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="countryCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getLanguage">
+ <eParameters name="listener" eType="#//LocationReferenceDecodingServiceListener"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocationReferenceDecodingServiceListener">
+ <eOperations name="decodeReply">
+ <eParameters name="location" lowerBound="1" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//location/Location"/>
+ <eParameters name="locationInfo" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//location/LocationInfo"/>
+ </eOperations>
+ <eOperations name="getLanguageReply">
+ <eParameters name="languageCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="countryCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LocationReferenceType">
+ <eLiterals name="TMC_LOC" value="1"/>
+ <eLiterals name="OPEN_LR" value="2"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecorediag b/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecorediag
new file mode 100755
index 0000000..58f3380
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.ecorediag
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Kymo0L6kEeG2bpJ885_B6A" type="EcoreTools" name="LocationReference.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_evTAwL6kEeG2bpJ885_B6A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_evTAw76kEeG2bpJ885_B6A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_evTAxL6kEeG2bpJ885_B6A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_tk2fwL6kEeG2bpJ885_B6A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="LocationReference.ecore#//LocationReference/data"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tk2fwb6kEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jMlEYL6kEeG2bpJ885_B6A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="LocationReference.ecore#//LocationReference/locationReferenceType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jMlEYb6kEeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_evTAxb6kEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_evTAxr6kEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_evTAx76kEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_evTAyL6kEeG2bpJ885_B6A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_evTAyb6kEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_evTAyr6kEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_evTAy76kEeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_evTAwb6kEeG2bpJ885_B6A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="LocationReference.ecore#//LocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_evTAwr6kEeG2bpJ885_B6A" x="24" y="228"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AMkSsL6uEeG2bpJ885_B6A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_AMkSs76uEeG2bpJ885_B6A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_AMkStL6uEeG2bpJ885_B6A" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_AMkStb6uEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AMkStr6uEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AMkSt76uEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AMkSuL6uEeG2bpJ885_B6A" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_4EzyMDL9EeKmrrjF28z5iw" type="2002">
+ <element xmi:type="ecore:EOperation" href="LocationReference.ecore#//LocationReferenceDecodingService/getLanguage"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4EzyMTL9EeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tkBUADL9EeKmrrjF28z5iw" type="2002">
+ <element xmi:type="ecore:EOperation" href="LocationReference.ecore#//LocationReferenceDecodingService/setLanguage"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tkBUATL9EeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0HJfYL61EeG2bpJ885_B6A" type="2002">
+ <element xmi:type="ecore:EOperation" href="LocationReference.ecore#//LocationReferenceDecodingService/decode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0HJfYb61EeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_AMkSub6uEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AMkSur6uEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AMkSu76uEeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_AMkSsb6uEeG2bpJ885_B6A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="LocationReference.ecore#//LocationReferenceDecodingService"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AMkSsr6uEeG2bpJ885_B6A" x="24" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EPwPwL64EeG2bpJ885_B6A" type="Note" description="There is also an interface LocationReferenceTypes.java.&#xD;&#xA;This interface contains constants for known location reference types.&#xD;&#xA;As EMF doesn't support constants (without getters, not being enums) it is not part of the model." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_EPwPxL64EeG2bpJ885_B6A" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_EPwPxb64EeG2bpJ885_B6A" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_EPwPwb64EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_EPwPwr64EeG2bpJ885_B6A"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EPwPw764EeG2bpJ885_B6A" x="24" y="324" width="325" height="109"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-95NML66EeG2bpJ885_B6A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_-95NM766EeG2bpJ885_B6A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_-95NNL66EeG2bpJ885_B6A" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-95NNb66EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-95NNr66EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-95NN766EeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-95NOL66EeG2bpJ885_B6A" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_6U1UEDL9EeKmrrjF28z5iw" type="2002">
+ <element xmi:type="ecore:EOperation" href="LocationReference.ecore#//LocationReferenceDecodingServiceListener/getLanguageReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6U1UETL9EeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MV03oL67EeG2bpJ885_B6A" type="2002">
+ <element xmi:type="ecore:EOperation" href="LocationReference.ecore#//LocationReferenceDecodingServiceListener/decodeReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MV03ob67EeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-95NOb66EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-95NOr66EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-95NO766EeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_-95NMb66EeG2bpJ885_B6A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="LocationReference.ecore#//LocationReferenceDecodingServiceListener"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-95NMr66EeG2bpJ885_B6A" x="324" y="144"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W4LxML69EeG2bpJ885_B6A" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W4ViML69EeG2bpJ885_B6A" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W4ViMb69EeG2bpJ885_B6A" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_W4LxM769EeG2bpJ885_B6A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_W4LxNL69EeG2bpJ885_B6A" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_W4LxNb69EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W4LxNr69EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W4LxN769EeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W4LxOL69EeG2bpJ885_B6A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_W4LxOb69EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W4LxOr69EeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W4LxO769EeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_W4LxMb69EeG2bpJ885_B6A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.basetypes-model/model/Basetypes.ecore#//location/Location"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W4LxMr69EeG2bpJ885_B6A" x="432" y="252"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oYWUwNJ8EeKeXo0UVa3l6w" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_oYWUw9J8EeKeXo0UVa3l6w" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_oYWUxNJ8EeKeXo0UVa3l6w" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_ukOoMNJ8EeKeXo0UVa3l6w" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="LocationReference.ecore#//LocationReferenceType/TMC_LOC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ukOoMdJ8EeKeXo0UVa3l6w"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xcU2sNJ8EeKeXo0UVa3l6w" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="LocationReference.ecore#//LocationReferenceType/OPEN_LR"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xcU2sdJ8EeKeXo0UVa3l6w"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oYWUxdJ8EeKeXo0UVa3l6w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oYWUxtJ8EeKeXo0UVa3l6w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oYWUx9J8EeKeXo0UVa3l6w"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_oYWUwdJ8EeKeXo0UVa3l6w" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="LocationReference.ecore#//LocationReferenceType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oYWUwtJ8EeKeXo0UVa3l6w" x="432" y="372"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Kymo0b6kEeG2bpJ885_B6A"/>
+ <element xmi:type="ecore:EPackage" href="LocationReference.ecore#/"/>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.genmodel b/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.genmodel
new file mode 100755
index 0000000..dc830eb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/model/LocationReference.genmodel
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.locref-model/src" modelPluginID="org.genivi.locref-model"
+ modelName="LocationReference" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+ copyrightFields="false" usedGenPackages="../../org.genivi.basetypes-model/model/Basetypes.genmodel#//genivi">
+ <foreignModel>LocationReference.ecore</foreignModel>
+ <genPackages prefix="locref" basePackage="org.genivi" disposableProviderFactory="true"
+ ecorePackage="LocationReference.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="LocationReference.ecore#//LocationReferenceType">
+ <genEnumLiterals ecoreEnumLiteral="LocationReference.ecore#//LocationReferenceType/TMC_LOC"/>
+ <genEnumLiterals ecoreEnumLiteral="LocationReference.ecore#//LocationReferenceType/OPEN_LR"/>
+ </genEnums>
+ <genClasses ecoreClass="LocationReference.ecore#//LocationReference">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute LocationReference.ecore#//LocationReference/data"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute LocationReference.ecore#//LocationReference/locationReferenceType"/>
+ </genClasses>
+ <genClasses ecoreClass="LocationReference.ecore#//LocationReferenceDecodingService">
+ <genOperations ecoreOperation="LocationReference.ecore#//LocationReferenceDecodingService/decode">
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingService/decode/listener"/>
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingService/decode/locationReference"/>
+ </genOperations>
+ <genOperations ecoreOperation="LocationReference.ecore#//LocationReferenceDecodingService/setLanguage">
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingService/setLanguage/languageCode"/>
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingService/setLanguage/countryCode"/>
+ </genOperations>
+ <genOperations ecoreOperation="LocationReference.ecore#//LocationReferenceDecodingService/getLanguage">
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingService/getLanguage/listener"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="LocationReference.ecore#//LocationReferenceDecodingServiceListener">
+ <genOperations ecoreOperation="LocationReference.ecore#//LocationReferenceDecodingServiceListener/decodeReply">
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingServiceListener/decodeReply/location"/>
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingServiceListener/decodeReply/locationInfo"/>
+ </genOperations>
+ <genOperations ecoreOperation="LocationReference.ecore#//LocationReferenceDecodingServiceListener/getLanguageReply">
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingServiceListener/getLanguageReply/languageCode"/>
+ <genParameters ecoreParameter="LocationReference.ecore#//LocationReferenceDecodingServiceListener/getLanguageReply/countryCode"/>
+ </genOperations>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/plugin.properties b/src/traffic-incidents-service/org.genivi.locref-model/plugin.properties
new file mode 100755
index 0000000..a1daed6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = LocationReference Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/plugin.xml b/src/traffic-incidents-service/org.genivi.locref-model/plugin.xml
new file mode 100755
index 0000000..353c7a1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://org.genivi.locref"
+ class="org.genivi.locref.locrefPackage"
+ genModel="model/LocationReference.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/pom.xml b/src/traffic-incidents-service/org.genivi.locref-model/pom.xml
new file mode 100755
index 0000000..7109855
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Location Reference model</name>
+ <description>This project contains the model for GENIVI location references.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReference.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReference.java
new file mode 100755
index 0000000..54e0240
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReference.java
@@ -0,0 +1,138 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.locref.LocationReference#getData <em>Data</em>}</li>
+ * <li>{@link org.genivi.locref.LocationReference#getLocationReferenceType <em>Location Reference Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.locref.locrefPackage#getLocationReference()
+ * @model
+ * @generated
+ */
+public interface LocationReference extends EObject {
+ /**
+ * Returns the value of the '<em><b>Location Reference Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location Reference Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location Reference Type</em>' attribute.
+ * @see #isSetLocationReferenceType()
+ * @see #unsetLocationReferenceType()
+ * @see #setLocationReferenceType(byte)
+ * @see org.genivi.locref.locrefPackage#getLocationReference_LocationReferenceType()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getLocationReferenceType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.locref.LocationReference#getLocationReferenceType <em>Location Reference Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location Reference Type</em>' attribute.
+ * @see #isSetLocationReferenceType()
+ * @see #unsetLocationReferenceType()
+ * @see #getLocationReferenceType()
+ * @generated
+ */
+ void setLocationReferenceType(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.locref.LocationReference#getLocationReferenceType <em>Location Reference Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLocationReferenceType()
+ * @see #getLocationReferenceType()
+ * @see #setLocationReferenceType(byte)
+ * @generated
+ */
+ void unsetLocationReferenceType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.locref.LocationReference#getLocationReferenceType <em>Location Reference Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Location Reference Type</em>' attribute is set.
+ * @see #unsetLocationReferenceType()
+ * @see #getLocationReferenceType()
+ * @see #setLocationReferenceType(byte)
+ * @generated
+ */
+ boolean isSetLocationReferenceType();
+
+ /**
+ * Returns the value of the '<em><b>Data</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data</em>' attribute.
+ * @see #isSetData()
+ * @see #unsetData()
+ * @see #setData(Object)
+ * @see org.genivi.locref.locrefPackage#getLocationReference_Data()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ Object getData();
+
+ /**
+ * Sets the value of the '{@link org.genivi.locref.LocationReference#getData <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data</em>' attribute.
+ * @see #isSetData()
+ * @see #unsetData()
+ * @see #getData()
+ * @generated
+ */
+ void setData(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.locref.LocationReference#getData <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetData()
+ * @see #getData()
+ * @see #setData(Object)
+ * @generated
+ */
+ void unsetData();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.locref.LocationReference#getData <em>Data</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Data</em>' attribute is set.
+ * @see #unsetData()
+ * @see #getData()
+ * @see #setData(Object)
+ * @generated
+ */
+ boolean isSetData();
+
+} // LocationReference
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingService.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingService.java
new file mode 100755
index 0000000..4d65cb5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingService.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Location Reference Decoding Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.locref.locrefPackage#getLocationReferenceDecodingService()
+ * @model
+ * @generated
+ */
+public interface LocationReferenceDecodingService extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model listenerRequired="true" locationReferenceRequired="true"
+ * @generated
+ */
+ void decode(LocationReferenceDecodingServiceListener listener, LocationReference locationReference);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setLanguage(String languageCode, String countryCode);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void getLanguage(LocationReferenceDecodingServiceListener listener);
+
+} // LocationReferenceDecodingService
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingServiceListener.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingServiceListener.java
new file mode 100755
index 0000000..ccb8967
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceDecodingServiceListener.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Location Reference Decoding Service Listener</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.locref.locrefPackage#getLocationReferenceDecodingServiceListener()
+ * @model
+ * @generated
+ */
+public interface LocationReferenceDecodingServiceListener extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model locationRequired="true"
+ * @generated
+ */
+ void decodeReply(Location location, LocationInfo locationInfo);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void getLanguageReply(String languageCode, String countryCode);
+
+} // LocationReferenceDecodingServiceListener
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceType.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceType.java
new file mode 100755
index 0000000..418f2a0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceType.java
@@ -0,0 +1,215 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Location Reference Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.locrefPackage#getLocationReferenceType()
+ * @model
+ * @generated
+ */
+public enum LocationReferenceType implements Enumerator {
+ /**
+ * The '<em><b>TMC LOC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TMC_LOC_VALUE
+ * @generated
+ * @ordered
+ */
+ TMC_LOC(1, "TMC_LOC", "TMC_LOC"),
+
+ /**
+ * The '<em><b>OPEN LR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OPEN_LR_VALUE
+ * @generated
+ * @ordered
+ */
+ OPEN_LR(2, "OPEN_LR", "OPEN_LR");
+
+ /**
+ * The '<em><b>TMC LOC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TMC LOC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TMC_LOC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TMC_LOC_VALUE = 1;
+
+ /**
+ * The '<em><b>OPEN LR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OPEN LR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OPEN_LR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OPEN_LR_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Location Reference Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LocationReferenceType[] VALUES_ARRAY =
+ new LocationReferenceType[] {
+ TMC_LOC,
+ OPEN_LR,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Location Reference Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<LocationReferenceType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Location Reference Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LocationReferenceType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LocationReferenceType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Location Reference Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LocationReferenceType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LocationReferenceType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Location Reference Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LocationReferenceType get(int value) {
+ switch (value) {
+ case TMC_LOC_VALUE: return TMC_LOC;
+ case OPEN_LR_VALUE: return OPEN_LR;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LocationReferenceType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //LocationReferenceType
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceTypes.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceTypes.java
new file mode 100755
index 0000000..aca9b50
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/LocationReferenceTypes.java
@@ -0,0 +1,16 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+public interface LocationReferenceTypes {
+
+ public static final String OPEN_LR = "OpenLR";
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceImpl.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceImpl.java
new file mode 100755
index 0000000..6b9f986
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceImpl.java
@@ -0,0 +1,83 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.locref.LocationReference;
+import org.genivi.locref.LocationReferenceDecodingService;
+import org.genivi.locref.LocationReferenceDecodingServiceListener;
+import org.genivi.locref.locrefPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Location Reference Decoding Service</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class LocationReferenceDecodingServiceImpl extends EObjectImpl implements LocationReferenceDecodingService {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationReferenceDecodingServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return locrefPackage.Literals.LOCATION_REFERENCE_DECODING_SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void decode(LocationReferenceDecodingServiceListener listener, LocationReference locationReference) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguage(String languageCode, String countryCode) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getLanguage(LocationReferenceDecodingServiceListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //LocationReferenceDecodingServiceImpl
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceListenerImpl.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceListenerImpl.java
new file mode 100755
index 0000000..eeb31f3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceDecodingServiceListenerImpl.java
@@ -0,0 +1,73 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.location.Location;
+
+import org.genivi.location.LocationInfo;
+import org.genivi.locref.LocationReferenceDecodingServiceListener;
+import org.genivi.locref.locrefPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Location Reference Decoding Service Listener</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class LocationReferenceDecodingServiceListenerImpl extends EObjectImpl implements LocationReferenceDecodingServiceListener {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationReferenceDecodingServiceListenerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return locrefPackage.Literals.LOCATION_REFERENCE_DECODING_SERVICE_LISTENER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void decodeReply(Location location, LocationInfo locationInfo) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //LocationReferenceDecodingServiceListenerImpl
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceImpl.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceImpl.java
new file mode 100755
index 0000000..f5f7411
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/LocationReferenceImpl.java
@@ -0,0 +1,292 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.locref.LocationReference;
+import org.genivi.locref.locrefPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.locref.impl.LocationReferenceImpl#getData <em>Data</em>}</li>
+ * <li>{@link org.genivi.locref.impl.LocationReferenceImpl#getLocationReferenceType <em>Location Reference Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LocationReferenceImpl extends EObjectImpl implements LocationReference {
+ /**
+ * The default value of the '{@link #getData() <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData()
+ * @generated
+ * @ordered
+ */
+ protected static final Object DATA_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getData() <em>Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData()
+ * @generated
+ * @ordered
+ */
+ protected Object data = DATA_EDEFAULT;
+
+ /**
+ * This is true if the Data attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dataESet;
+
+ /**
+ * The default value of the '{@link #getLocationReferenceType() <em>Location Reference Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationReferenceType()
+ * @generated
+ * @ordered
+ */
+ protected static final byte LOCATION_REFERENCE_TYPE_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getLocationReferenceType() <em>Location Reference Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationReferenceType()
+ * @generated
+ * @ordered
+ */
+ protected byte locationReferenceType = LOCATION_REFERENCE_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Location Reference Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean locationReferenceTypeESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return locrefPackage.Literals.LOCATION_REFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getData() {
+ return data;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setData(Object newData) {
+ Object oldData = data;
+ data = newData;
+ boolean oldDataESet = dataESet;
+ dataESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, locrefPackage.LOCATION_REFERENCE__DATA, oldData, data, !oldDataESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetData() {
+ Object oldData = data;
+ boolean oldDataESet = dataESet;
+ data = DATA_EDEFAULT;
+ dataESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, locrefPackage.LOCATION_REFERENCE__DATA, oldData, DATA_EDEFAULT, oldDataESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetData() {
+ return dataESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getLocationReferenceType() {
+ return locationReferenceType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocationReferenceType(byte newLocationReferenceType) {
+ byte oldLocationReferenceType = locationReferenceType;
+ locationReferenceType = newLocationReferenceType;
+ boolean oldLocationReferenceTypeESet = locationReferenceTypeESet;
+ locationReferenceTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, locrefPackage.LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE, oldLocationReferenceType, locationReferenceType, !oldLocationReferenceTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLocationReferenceType() {
+ byte oldLocationReferenceType = locationReferenceType;
+ boolean oldLocationReferenceTypeESet = locationReferenceTypeESet;
+ locationReferenceType = LOCATION_REFERENCE_TYPE_EDEFAULT;
+ locationReferenceTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, locrefPackage.LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE, oldLocationReferenceType, LOCATION_REFERENCE_TYPE_EDEFAULT, oldLocationReferenceTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLocationReferenceType() {
+ return locationReferenceTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case locrefPackage.LOCATION_REFERENCE__DATA:
+ return getData();
+ case locrefPackage.LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE:
+ return getLocationReferenceType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case locrefPackage.LOCATION_REFERENCE__DATA:
+ setData(newValue);
+ return;
+ case locrefPackage.LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE:
+ setLocationReferenceType((Byte)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case locrefPackage.LOCATION_REFERENCE__DATA:
+ unsetData();
+ return;
+ case locrefPackage.LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE:
+ unsetLocationReferenceType();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case locrefPackage.LOCATION_REFERENCE__DATA:
+ return isSetData();
+ case locrefPackage.LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE:
+ return isSetLocationReferenceType();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (data: ");
+ if (dataESet) result.append(data); else result.append("<unset>");
+ result.append(", locationReferenceType: ");
+ if (locationReferenceTypeESet) result.append(locationReferenceType); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LocationReferenceImpl
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefFactoryImpl.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefFactoryImpl.java
new file mode 100755
index 0000000..c4af42f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefFactoryImpl.java
@@ -0,0 +1,175 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.locref.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class locrefFactoryImpl extends EFactoryImpl implements locrefFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static locrefFactory init() {
+ try {
+ locrefFactory thelocrefFactory = (locrefFactory)EPackage.Registry.INSTANCE.getEFactory(locrefPackage.eNS_URI);
+ if (thelocrefFactory != null) {
+ return thelocrefFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new locrefFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public locrefFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case locrefPackage.LOCATION_REFERENCE: return createLocationReference();
+ case locrefPackage.LOCATION_REFERENCE_DECODING_SERVICE: return createLocationReferenceDecodingService();
+ case locrefPackage.LOCATION_REFERENCE_DECODING_SERVICE_LISTENER: return createLocationReferenceDecodingServiceListener();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case locrefPackage.LOCATION_REFERENCE_TYPE:
+ return createLocationReferenceTypeFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case locrefPackage.LOCATION_REFERENCE_TYPE:
+ return convertLocationReferenceTypeToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReference createLocationReference() {
+ LocationReferenceImpl locationReference = new LocationReferenceImpl();
+ return locationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReferenceDecodingService createLocationReferenceDecodingService() {
+ LocationReferenceDecodingServiceImpl locationReferenceDecodingService = new LocationReferenceDecodingServiceImpl();
+ return locationReferenceDecodingService;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReferenceDecodingServiceListener createLocationReferenceDecodingServiceListener() {
+ LocationReferenceDecodingServiceListenerImpl locationReferenceDecodingServiceListener = new LocationReferenceDecodingServiceListenerImpl();
+ return locationReferenceDecodingServiceListener;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReferenceType createLocationReferenceTypeFromString(EDataType eDataType, String initialValue) {
+ LocationReferenceType result = LocationReferenceType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLocationReferenceTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public locrefPackage getlocrefPackage() {
+ return (locrefPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static locrefPackage getPackage() {
+ return locrefPackage.eINSTANCE;
+ }
+
+} //locrefFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefPackageImpl.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefPackageImpl.java
new file mode 100755
index 0000000..993bf15
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/impl/locrefPackageImpl.java
@@ -0,0 +1,314 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.common.CommonPackage;
+
+import org.genivi.location.LocationPackage;
+
+import org.genivi.locref.LocationReference;
+import org.genivi.locref.LocationReferenceDecodingService;
+import org.genivi.locref.LocationReferenceDecodingServiceListener;
+import org.genivi.locref.LocationReferenceType;
+import org.genivi.locref.locrefFactory;
+import org.genivi.locref.locrefPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class locrefPackageImpl extends EPackageImpl implements locrefPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass locationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass locationReferenceDecodingServiceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass locationReferenceDecodingServiceListenerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum locationReferenceTypeEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.locref.locrefPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private locrefPackageImpl() {
+ super(eNS_URI, locrefFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link locrefPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static locrefPackage init() {
+ if (isInited) return (locrefPackage)EPackage.Registry.INSTANCE.getEPackage(locrefPackage.eNS_URI);
+
+ // Obtain or create and register package
+ locrefPackageImpl thelocrefPackage = (locrefPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof locrefPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new locrefPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ LocationPackage.eINSTANCE.eClass();
+ CommonPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ thelocrefPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thelocrefPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thelocrefPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(locrefPackage.eNS_URI, thelocrefPackage);
+ return thelocrefPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocationReference() {
+ return locationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocationReference_Data() {
+ return (EAttribute)locationReferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocationReference_LocationReferenceType() {
+ return (EAttribute)locationReferenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocationReferenceDecodingService() {
+ return locationReferenceDecodingServiceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocationReferenceDecodingServiceListener() {
+ return locationReferenceDecodingServiceListenerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLocationReferenceType() {
+ return locationReferenceTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public locrefFactory getlocrefFactory() {
+ return (locrefFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ locationReferenceEClass = createEClass(LOCATION_REFERENCE);
+ createEAttribute(locationReferenceEClass, LOCATION_REFERENCE__DATA);
+ createEAttribute(locationReferenceEClass, LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE);
+
+ locationReferenceDecodingServiceEClass = createEClass(LOCATION_REFERENCE_DECODING_SERVICE);
+
+ locationReferenceDecodingServiceListenerEClass = createEClass(LOCATION_REFERENCE_DECODING_SERVICE_LISTENER);
+
+ // Create enums
+ locationReferenceTypeEEnum = createEEnum(LOCATION_REFERENCE_TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ LocationPackage theLocationPackage = (LocationPackage)EPackage.Registry.INSTANCE.getEPackage(LocationPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(locationReferenceEClass, LocationReference.class, "LocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLocationReference_Data(), ecorePackage.getEJavaObject(), "data", null, 1, 1, LocationReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLocationReference_LocationReferenceType(), ecorePackage.getEByte(), "locationReferenceType", null, 1, 1, LocationReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(locationReferenceDecodingServiceEClass, LocationReferenceDecodingService.class, "LocationReferenceDecodingService", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ EOperation op = addEOperation(locationReferenceDecodingServiceEClass, null, "decode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getLocationReferenceDecodingServiceListener(), "listener", 1, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getLocationReference(), "locationReference", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(locationReferenceDecodingServiceEClass, null, "setLanguage", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "languageCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "countryCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(locationReferenceDecodingServiceEClass, null, "getLanguage", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getLocationReferenceDecodingServiceListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(locationReferenceDecodingServiceListenerEClass, LocationReferenceDecodingServiceListener.class, "LocationReferenceDecodingServiceListener", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(locationReferenceDecodingServiceListenerEClass, null, "decodeReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theLocationPackage.getLocation(), "location", 1, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theLocationPackage.getLocationInfo(), "locationInfo", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(locationReferenceDecodingServiceListenerEClass, null, "getLanguageReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "languageCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "countryCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(locationReferenceTypeEEnum, LocationReferenceType.class, "LocationReferenceType");
+ addEEnumLiteral(locationReferenceTypeEEnum, LocationReferenceType.TMC_LOC);
+ addEEnumLiteral(locationReferenceTypeEEnum, LocationReferenceType.OPEN_LR);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //locrefPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefFactory.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefFactory.java
new file mode 100755
index 0000000..d473fb6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefFactory.java
@@ -0,0 +1,67 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.locrefPackage
+ * @generated
+ */
+public interface locrefFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ locrefFactory eINSTANCE = org.genivi.locref.impl.locrefFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Location Reference</em>'.
+ * @generated
+ */
+ LocationReference createLocationReference();
+
+ /**
+ * Returns a new object of class '<em>Location Reference Decoding Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Location Reference Decoding Service</em>'.
+ * @generated
+ */
+ LocationReferenceDecodingService createLocationReferenceDecodingService();
+
+ /**
+ * Returns a new object of class '<em>Location Reference Decoding Service Listener</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Location Reference Decoding Service Listener</em>'.
+ * @generated
+ */
+ LocationReferenceDecodingServiceListener createLocationReferenceDecodingServiceListener();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ locrefPackage getlocrefPackage();
+
+} //locrefFactory
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefPackage.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefPackage.java
new file mode 100755
index 0000000..16c5e93
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/locrefPackage.java
@@ -0,0 +1,295 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.locrefFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface locrefPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "locref";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.locref";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "locref";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ locrefPackage eINSTANCE = org.genivi.locref.impl.locrefPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.locref.impl.LocationReferenceImpl <em>Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.impl.LocationReferenceImpl
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReference()
+ * @generated
+ */
+ int LOCATION_REFERENCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCE__DATA = 0;
+
+ /**
+ * The feature id for the '<em><b>Location Reference Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE = 1;
+
+ /**
+ * The number of structural features of the '<em>Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.locref.impl.LocationReferenceDecodingServiceImpl <em>Location Reference Decoding Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.impl.LocationReferenceDecodingServiceImpl
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReferenceDecodingService()
+ * @generated
+ */
+ int LOCATION_REFERENCE_DECODING_SERVICE = 1;
+
+ /**
+ * The number of structural features of the '<em>Location Reference Decoding Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCE_DECODING_SERVICE_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.locref.impl.LocationReferenceDecodingServiceListenerImpl <em>Location Reference Decoding Service Listener</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.impl.LocationReferenceDecodingServiceListenerImpl
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReferenceDecodingServiceListener()
+ * @generated
+ */
+ int LOCATION_REFERENCE_DECODING_SERVICE_LISTENER = 2;
+
+ /**
+ * The number of structural features of the '<em>Location Reference Decoding Service Listener</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCE_DECODING_SERVICE_LISTENER_FEATURE_COUNT = 0;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.locref.LocationReferenceType <em>Location Reference Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.LocationReferenceType
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReferenceType()
+ * @generated
+ */
+ int LOCATION_REFERENCE_TYPE = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.locref.LocationReference <em>Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Location Reference</em>'.
+ * @see org.genivi.locref.LocationReference
+ * @generated
+ */
+ EClass getLocationReference();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.locref.LocationReference#getData <em>Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data</em>'.
+ * @see org.genivi.locref.LocationReference#getData()
+ * @see #getLocationReference()
+ * @generated
+ */
+ EAttribute getLocationReference_Data();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.locref.LocationReference#getLocationReferenceType <em>Location Reference Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location Reference Type</em>'.
+ * @see org.genivi.locref.LocationReference#getLocationReferenceType()
+ * @see #getLocationReference()
+ * @generated
+ */
+ EAttribute getLocationReference_LocationReferenceType();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.locref.LocationReferenceDecodingService <em>Location Reference Decoding Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Location Reference Decoding Service</em>'.
+ * @see org.genivi.locref.LocationReferenceDecodingService
+ * @generated
+ */
+ EClass getLocationReferenceDecodingService();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.locref.LocationReferenceDecodingServiceListener <em>Location Reference Decoding Service Listener</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Location Reference Decoding Service Listener</em>'.
+ * @see org.genivi.locref.LocationReferenceDecodingServiceListener
+ * @generated
+ */
+ EClass getLocationReferenceDecodingServiceListener();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.locref.LocationReferenceType <em>Location Reference Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Location Reference Type</em>'.
+ * @see org.genivi.locref.LocationReferenceType
+ * @generated
+ */
+ EEnum getLocationReferenceType();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ locrefFactory getlocrefFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.locref.impl.LocationReferenceImpl <em>Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.impl.LocationReferenceImpl
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReference()
+ * @generated
+ */
+ EClass LOCATION_REFERENCE = eINSTANCE.getLocationReference();
+
+ /**
+ * The meta object literal for the '<em><b>Data</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCATION_REFERENCE__DATA = eINSTANCE.getLocationReference_Data();
+
+ /**
+ * The meta object literal for the '<em><b>Location Reference Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCATION_REFERENCE__LOCATION_REFERENCE_TYPE = eINSTANCE.getLocationReference_LocationReferenceType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.locref.impl.LocationReferenceDecodingServiceImpl <em>Location Reference Decoding Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.impl.LocationReferenceDecodingServiceImpl
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReferenceDecodingService()
+ * @generated
+ */
+ EClass LOCATION_REFERENCE_DECODING_SERVICE = eINSTANCE.getLocationReferenceDecodingService();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.locref.impl.LocationReferenceDecodingServiceListenerImpl <em>Location Reference Decoding Service Listener</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.impl.LocationReferenceDecodingServiceListenerImpl
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReferenceDecodingServiceListener()
+ * @generated
+ */
+ EClass LOCATION_REFERENCE_DECODING_SERVICE_LISTENER = eINSTANCE.getLocationReferenceDecodingServiceListener();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.locref.LocationReferenceType <em>Location Reference Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.LocationReferenceType
+ * @see org.genivi.locref.impl.locrefPackageImpl#getLocationReferenceType()
+ * @generated
+ */
+ EEnum LOCATION_REFERENCE_TYPE = eINSTANCE.getLocationReferenceType();
+
+ }
+
+} //locrefPackage
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefAdapterFactory.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefAdapterFactory.java
new file mode 100755
index 0000000..4c4d30a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefAdapterFactory.java
@@ -0,0 +1,163 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.locref.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.locrefPackage
+ * @generated
+ */
+public class locrefAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static locrefPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public locrefAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = locrefPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected locrefSwitch<Adapter> modelSwitch =
+ new locrefSwitch<Adapter>() {
+ @Override
+ public Adapter caseLocationReference(LocationReference object) {
+ return createLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseLocationReferenceDecodingService(LocationReferenceDecodingService object) {
+ return createLocationReferenceDecodingServiceAdapter();
+ }
+ @Override
+ public Adapter caseLocationReferenceDecodingServiceListener(LocationReferenceDecodingServiceListener object) {
+ return createLocationReferenceDecodingServiceListenerAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.locref.LocationReference <em>Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.locref.LocationReference
+ * @generated
+ */
+ public Adapter createLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.locref.LocationReferenceDecodingService <em>Location Reference Decoding Service</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.locref.LocationReferenceDecodingService
+ * @generated
+ */
+ public Adapter createLocationReferenceDecodingServiceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.locref.LocationReferenceDecodingServiceListener <em>Location Reference Decoding Service Listener</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.locref.LocationReferenceDecodingServiceListener
+ * @generated
+ */
+ public Adapter createLocationReferenceDecodingServiceListenerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //locrefAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefSwitch.java b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefSwitch.java
new file mode 100755
index 0000000..7bbd7f1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.locref-model/src/org/genivi/locref/util/locrefSwitch.java
@@ -0,0 +1,159 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.locref.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.locref.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.locref.locrefPackage
+ * @generated
+ */
+public class locrefSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static locrefPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public locrefSwitch() {
+ if (modelPackage == null) {
+ modelPackage = locrefPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case locrefPackage.LOCATION_REFERENCE: {
+ LocationReference locationReference = (LocationReference)theEObject;
+ T result = caseLocationReference(locationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case locrefPackage.LOCATION_REFERENCE_DECODING_SERVICE: {
+ LocationReferenceDecodingService locationReferenceDecodingService = (LocationReferenceDecodingService)theEObject;
+ T result = caseLocationReferenceDecodingService(locationReferenceDecodingService);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case locrefPackage.LOCATION_REFERENCE_DECODING_SERVICE_LISTENER: {
+ LocationReferenceDecodingServiceListener locationReferenceDecodingServiceListener = (LocationReferenceDecodingServiceListener)theEObject;
+ T result = caseLocationReferenceDecodingServiceListener(locationReferenceDecodingServiceListener);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocationReference(LocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Location Reference Decoding Service</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Location Reference Decoding Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocationReferenceDecodingService(LocationReferenceDecodingService object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Location Reference Decoding Service Listener</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Location Reference Decoding Service Listener</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocationReferenceDecodingServiceListener(LocationReferenceDecodingServiceListener object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //locrefSwitch
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.classpath b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.classpath
new file mode 100755
index 0000000..f6a3397
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.classpath
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.dbus-java"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.libmatthew"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentsservice-model"/>
+ <classpathentry kind="src" path="/org.genivi.booleanexpr-model"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.demo"/>
+ <classpathentry kind="src" path="/org.genivi.iconset-model"/>
+ <classpathentry kind="src" path="/org.genivi.locref-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidenttables-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.dbuswrapper"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.project b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.project
new file mode 100755
index 0000000..1af0408
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsservice.dbus.impl</name>
+ <comment>This project contains the Traffic Incidents Service of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ <project>org.genivi.trafficinfo</project>
+ <project>org.genivi.trafficinfo.dbus-java</project>
+ <project>org.genivi.trafficinfo.libmatthew</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentsservice-model</project>
+ <project>org.genivi.booleanexpr-model</project>
+ <project>org.genivi.trafficinfo.demo</project>
+ <project>org.genivi.iconset-model</project>
+ <project>org.genivi.locref-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidenttables-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model</project>
+ <project>org.genivi.trafficincidentsservice.dbuswrapper</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/ReadMe.confluence
new file mode 100755
index 0000000..83b2c42
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains a class to wrap the TrafficIncidentsService from org.genivi.trafficincidentsservice.refimpl into a D-Bus service. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/pom.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/pom.xml
new file mode 100755
index 0000000..cb6118d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/pom.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbus.impl</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Service</name>
+ <description>This project contains the Traffic Incidents Service of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficincidentsservice.dbus.impl.DBusTrafficIncidentsService</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/src/main/java/org/genivi/trafficincidentsservice/dbus/impl/DBusTrafficIncidentsService.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/src/main/java/org/genivi/trafficincidentsservice/dbus/impl/DBusTrafficIncidentsService.java
new file mode 100755
index 0000000..5e86d63
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbus.impl/src/main/java/org/genivi/trafficincidentsservice/dbus/impl/DBusTrafficIncidentsService.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.dbus.impl;
+
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import openlr.map.MapDatabase;
+import openlr.map.teleatlas.sqlite.impl.MapDatabaseImpl;
+
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.locref.LocationReferenceType;
+import org.genivi.locref.decoder.openlr.OpenLRDecoder;
+import org.genivi.locref.refimpl.LocationReferenceDecodingHandlerRefImpl;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.refimpl.TrafficIncidentsService;
+import org.genivi.trafficincidentsservice.textgenerator.basictextgenerator.BasicTextGenerator;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl.TrafficIncidentsUpdatesAdaptor;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.impl.TrafficIncidentsAdaptor;
+
+public class DBusTrafficIncidentsService {
+ private final static Logger LOGGER = Logger.getLogger(DBusTrafficIncidentsService.class.getName());
+ private final static String TRAFFIC_INCIDENTS_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsDBus";
+ private final static String TRAFFIC_INCIDENT_FEED_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsUpdatesDBus";
+ private final static String MAP_PATH = "../resources/tomtom_utrecht_2008_04.db3";
+
+ //settings to control what to run and what not
+ private final static Level logLevel = Level.SEVERE;
+
+ DBusTrafficIncidentsService() throws DBusException {
+
+ logSetup();
+
+ // Create the Traffic Incidents Service
+ TrafficIncidentsService trafficIncidentsService = createTrafficIncidentsService();
+
+ // Create the Traffic Incident Feed Adaptor
+ createTrafficIncidentFeedAdaptor(trafficIncidentsService);
+
+ // Create the Traffic Incidents Adaptor
+ createTrafficIncidentsAdaptor(trafficIncidentsService);
+ }
+
+ private void logSetup() {
+ // Create Logger
+ Logger logger = Logger.getLogger("");
+ logger.setLevel(logLevel);
+
+ Handler consoleHandler = null;
+ for (Handler handler: logger.getHandlers()) {
+ if (handler.getClass().getName().equals("java.util.logging.ConsoleHandler")) {
+ consoleHandler = handler;
+ break;
+ }
+ }
+ consoleHandler.setLevel(Level.INFO);
+ }
+
+ private TrafficIncidentsService createTrafficIncidentsService() {
+ // Create a Location Reference Decoding Handler to be used by the Traffic Incidents Service
+ LocationReferenceDecodingHandlerRefImpl locationReferenceDecodingHandlerRefImpl = new LocationReferenceDecodingHandlerRefImpl();
+
+ // Open a map database to be used by the location decoders
+ MapDatabase mapDataBase = new MapDatabaseImpl(MAP_PATH);
+
+ // Create an OpenLR decoder and register it on the LocationReferenceDecodingHandlerRefImpl
+ OpenLRDecoder openLRDecoder = new OpenLRDecoder(mapDataBase);
+ locationReferenceDecodingHandlerRefImpl.addDecoder((Byte) (byte) LocationReferenceType.OPEN_LR.getValue(), openLRDecoder);
+
+ // Create the Traffic Incidents Service
+ TrafficIncidentsService trafficIncidentsService = new TrafficIncidentsService(locationReferenceDecodingHandlerRefImpl, new BasicTextGenerator());
+
+ return trafficIncidentsService;
+ }
+
+ private void createTrafficIncidentFeedAdaptor(TrafficIncidentFeed trafficIncidentFeed) throws DBusException {
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ LOGGER.info("DBusConnection obtained");
+
+ conn.requestBusName(TRAFFIC_INCIDENT_FEED_SERVICE_NAME);
+ conn.exportObject("/trafficincidentfeed", new TrafficIncidentsUpdatesAdaptor(conn, trafficIncidentFeed));
+ LOGGER.info("D-Bus Service TrafficIncidentsUpdatesDBus running");
+ }
+
+ private void createTrafficIncidentsAdaptor(TrafficIncidentsService trafficIncidentsService) throws DBusException {
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ LOGGER.info("DBusConnection obtained");
+
+ conn.requestBusName(TRAFFIC_INCIDENTS_SERVICE_NAME);
+
+ conn.exportObject("/java", new TrafficIncidentsAdaptor(conn, trafficIncidentsService));
+ LOGGER.info("D-Bus Service TrafficIncidentsDBus running");
+ }
+
+ public static void main(String[] args) throws DBusException {
+ @SuppressWarnings("unused")
+ DBusTrafficIncidentsService dBusTrafficIncidentsService = new DBusTrafficIncidentsService();
+ LOGGER.info("DBusTrafficIncidentsService running");
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.classpath b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.classpath
new file mode 100755
index 0000000..ce5fb3a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.classpath
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.dbus-java"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.libmatthew"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentsservice-model"/>
+ <classpathentry kind="src" path="/org.genivi.booleanexpr-model"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.demo"/>
+ <classpathentry kind="src" path="/org.genivi.iconset-model"/>
+ <classpathentry kind="src" path="/org.genivi.locref-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidenttables-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.project b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.project
new file mode 100755
index 0000000..fa7882c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/.project
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsservice.dbuswrapper</name>
+ <comment>This project contains the glue code between D-Bus and the clean Java interfaces. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ <project>org.genivi.trafficinfo</project>
+ <project>org.genivi.trafficinfo.dbus-java</project>
+ <project>org.genivi.trafficinfo.libmatthew</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentsservice-model</project>
+ <project>org.genivi.booleanexpr-model</project>
+ <project>org.genivi.trafficinfo.demo</project>
+ <project>org.genivi.iconset-model</project>
+ <project>org.genivi.locref-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidenttables-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/ReadMe.confluence
new file mode 100755
index 0000000..254733a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/ReadMe.confluence
@@ -0,0 +1 @@
+This project defines the D-Bus version of the interfaces of the TrafficIncidentsService and it contains the Proxies and Adaptors to connect the D-Bus interfaces to the plain java interfaces. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/pom.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/pom.xml
new file mode 100755
index 0000000..bead4d5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents D-Bus wrapper</name>
+ <description>This project contains the glue code between D-Bus and the clean Java interfaces.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/AdviceStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/AdviceStruct.java
new file mode 100755
index 0000000..577edf9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/AdviceStruct.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class AdviceStruct extends Struct {
+ @Position(0)
+ public final Byte mainAdvice; // AdviceCode
+
+ @Position(1)
+ public final Byte subAdvice;
+
+ @Position(2)
+ public final List<LocalizedStringStruct> freeText;
+
+ @Position(3)
+ public final List<ApplicabilityStruct> applicability;
+
+ public AdviceStruct(Byte mainAdvice, Byte subAdvice,
+ List<LocalizedStringStruct> freeText, List<ApplicabilityStruct> applicability) {
+ super();
+ this.mainAdvice = mainAdvice;
+ this.subAdvice = subAdvice;
+ this.freeText = freeText;
+ this.applicability = applicability;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/ApplicabilityStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/ApplicabilityStruct.java
new file mode 100755
index 0000000..d0abb66
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/ApplicabilityStruct.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class ApplicabilityStruct extends Struct {
+ @Position(0)
+ public final Byte vehicleType; // VehicleType
+
+ @Position(1)
+ public final List<VehicleRelatedRestrictionStruct> vehicleRelatedRestrictions;
+
+ public ApplicabilityStruct(Byte vehicleType,
+ List<VehicleRelatedRestrictionStruct> vehicleRelatedRestrictions) {
+ super();
+ this.vehicleType = vehicleType;
+ this.vehicleRelatedRestrictions = vehicleRelatedRestrictions;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseDiscriminatedVariant.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseDiscriminatedVariant.java
new file mode 100755
index 0000000..8097cb2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseDiscriminatedVariant.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.Variant;
+
+public class CauseDiscriminatedVariant extends Struct {
+ @Position(0)
+ public final Byte causeType;
+
+ @Position(1)
+ public final Variant<? extends CauseStruct> cause;
+
+ public CauseDiscriminatedVariant(
+ Byte causeType,
+ Variant<? extends CauseStruct> cause
+ ) {
+ super();
+ this.causeType = causeType;
+ this.cause = cause;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseStruct.java
new file mode 100755
index 0000000..01b4ff4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseStruct.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Struct;
+
+public class CauseStruct extends Struct {
+ public CauseStruct() {
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseType.java
new file mode 100755
index 0000000..5dbd7dc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/CauseType.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+public enum CauseType {
+ DIRECT((byte) 1),
+ LINKED((byte) 2);
+
+ private Byte value;
+
+ CauseType(Byte value) {
+ this.value = value;
+ }
+
+ public Byte getValue() {
+ return value;
+ }
+
+ public static CauseType getCauseType(Byte value) {
+ for (CauseType causeType: values()) {
+ if (causeType.value == value) {
+ return causeType;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/DirectCauseStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/DirectCauseStruct.java
new file mode 100755
index 0000000..db5ebe5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/DirectCauseStruct.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+
+public class DirectCauseStruct extends CauseStruct {
+ @Position(0)
+ public final Byte mainCause;
+
+ @Position(1)
+ public final Byte warningLevel;
+
+ @Position(2)
+ public final Boolean unverifiedInformation;
+
+ @Position(3)
+ public final Byte subCause;
+
+ @Position(4)
+ public final Integer lengthAffected;
+
+ @Position(5)
+ public final Integer causeOffset;
+
+ @Position(6)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<LaneRestrictionsStruct> laneRestrictions;
+
+ @Position(7)
+ public final List<LocalizedStringStruct> freeText;
+
+ public DirectCauseStruct(Byte mainCause, Byte warningLevel,
+ Boolean unverifiedInformation, Byte subCause, Integer lengthAffected, Integer causeOffset,
+ List<LaneRestrictionsStruct> laneRestrictions, List<LocalizedStringStruct> freeText) {
+ super();
+ this.mainCause = mainCause;
+ this.warningLevel = warningLevel;
+ this.unverifiedInformation = unverifiedInformation;
+ this.subCause = subCause;
+ this.lengthAffected = lengthAffected;
+ this.causeOffset = causeOffset;
+ this.laneRestrictions = laneRestrictions;
+ this.freeText = freeText;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LaneRestrictionsStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LaneRestrictionsStruct.java
new file mode 100755
index 0000000..0a0139a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LaneRestrictionsStruct.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class LaneRestrictionsStruct extends Struct {
+ @Position(0)
+ public final Byte laneRestrictionType; // LaneRestrictionType
+
+ @Position(1)
+ public final Integer numberOfLanes;
+
+ public LaneRestrictionsStruct(Byte laneRestrictionType, int numberOfLanes) {
+ super();
+ this.laneRestrictionType = laneRestrictionType;
+ this.numberOfLanes = numberOfLanes;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LinkedCauseStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LinkedCauseStruct.java
new file mode 100755
index 0000000..1243226
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LinkedCauseStruct.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+
+public class LinkedCauseStruct extends CauseStruct {
+ @Position(0)
+ public final Byte mainCause;
+
+ @Position(1)
+ public final String causeTrafficIncidentId;
+
+ public LinkedCauseStruct(Byte mainCause, String causeTrafficIncidentId) {
+ super();
+ this.mainCause = mainCause;
+ this.causeTrafficIncidentId = causeTrafficIncidentId;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocalizedStringStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocalizedStringStruct.java
new file mode 100755
index 0000000..0f623dc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocalizedStringStruct.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class LocalizedStringStruct extends Struct {
+ @Position(0)
+ public final String languageCode;
+
+ @Position(1)
+ public final String countryCode;
+
+ @Position(2)
+ public final String string;
+
+ public LocalizedStringStruct(String languageCode, String countryCode,
+ String string) {
+ super();
+ this.languageCode = languageCode;
+ this.countryCode = countryCode;
+ this.string = string;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocationReferenceStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocationReferenceStruct.java
new file mode 100755
index 0000000..e0829e1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/LocationReferenceStruct.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class LocationReferenceStruct extends Struct {
+ @Position(0)
+ public final Byte locationReferenceType;
+
+ @Position(1)
+ public final byte[] data;
+
+ public LocationReferenceStruct(Byte locationReferenceType, byte[] data) {
+ super();
+ this.locationReferenceType = locationReferenceType;
+ this.data = data;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitSectionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitSectionStruct.java
new file mode 100755
index 0000000..6e3ef60
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitSectionStruct.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2014 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class TemporarySpeedLimitSectionStruct extends Struct {
+ @Position(0)
+ public final Short speedLimitValue;
+
+ @Position(1)
+ public final Short speedLimitValueWet;
+
+ @Position(2)
+ public final Integer speedLimitLength;
+
+
+ public TemporarySpeedLimitSectionStruct(Short speedLimitValue,
+ Short speedLimitValueWet, Integer speedLimitLength) {
+ super();
+ this.speedLimitValue = speedLimitValue;
+ this.speedLimitValueWet = speedLimitValueWet;
+ this.speedLimitLength = speedLimitLength;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitStruct.java
new file mode 100755
index 0000000..2750532
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TemporarySpeedLimitStruct.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2014 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class TemporarySpeedLimitStruct extends Struct {
+ @Position(0)
+ public final Boolean unitsMPH;
+
+ @Position(1)
+ public final Integer offset;
+
+ @Position(2)
+ public final List<TemporarySpeedLimitSectionStruct> temporarySpeedLimitSections;
+
+ @Position(3)
+ public final List<ApplicabilityStruct> applicability;
+
+
+ public TemporarySpeedLimitStruct(Boolean unitsMPH, Integer offset,
+ List<TemporarySpeedLimitSectionStruct> temporarySpeedLimitSections,
+ List<ApplicabilityStruct> applicability) {
+ super();
+ this.unitsMPH = unitsMPH;
+ this.offset = offset;
+ this.temporarySpeedLimitSections = temporarySpeedLimitSections;
+ this.applicability = applicability;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentFeedDBus.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentFeedDBus.java
new file mode 100755
index 0000000..243ee13
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentFeedDBus.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TwoTuple;
+
+public interface TrafficIncidentFeedDBus extends DBusInterface {
+ public VersionStruct GetVersion();
+
+ public TwoTuple<String, String> GetLanguage();
+
+ public Integer RegisterFeed(String dataProviderName, String protocolName,
+ String communicationChannelName);
+
+ public void Clear();
+
+ public void UpdateIncidents(Integer feedId, List<String> cancelledIncidentIds,
+ List<TrafficIncidentStruct> updatedIncidents);
+
+ public void UpdateStatus(Integer feedId, Byte feedStatus, Byte incidentsStatus);
+
+ public void AddLanguageListener();
+
+ public void RemoveLanguageListener();
+
+ public class LanguageChanged extends DBusSignal {
+ public final String languageCode;
+ public final String countryCode;
+
+ public LanguageChanged(String path, String languageCode, String countryCode) throws DBusException {
+ super(path, languageCode, countryCode);
+ this.languageCode = languageCode;
+ this.countryCode = countryCode;
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentStruct.java
new file mode 100755
index 0000000..ca56600
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/TrafficIncidentStruct.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class TrafficIncidentStruct extends Struct {
+ @Position(0)
+ public final String trafficIncidentId;
+
+ @Position(1)
+ public final Byte effectCode; // EffectCode
+
+ @Position(2)
+ public final Integer startTime;
+
+ @Position(3)
+ public final Integer stopTime;
+
+ @Position(4)
+ public final Byte tendency; // Tendency
+
+ @Position(5)
+ public final Integer lengthAffected;
+
+ @Position(6)
+ public final Integer averageSpeedAbsolute;
+
+ @Position(7)
+ public final Integer delay;
+
+ @Position(8)
+ public final Integer segmentSpeedLimit;
+
+ @Position(9)
+ public final Integer expectedSpeedAbsolute;
+
+ @Position(10)
+ public final List<CauseDiscriminatedVariant> causes;
+
+ @Position(11)
+ public final List<AdviceStruct> advices;
+
+ @Position(12)
+ public final List<ApplicabilityStruct> applicability;
+
+ @Position(13)
+ public final List<TemporarySpeedLimitStruct> temporarySpeedLimits;
+
+ @Position(14)
+ public final Integer expirationTime;
+
+ @Position(15)
+ public final Integer updateTime;
+
+ @Position(16)
+ public final LocationReferenceStruct locationReference;
+
+
+ public TrafficIncidentStruct(
+ String trafficIncidentManagementId,
+ Byte effectCode,
+ Integer startTime,
+ Integer stopTime,
+ Byte tendency,
+ Integer lengthAffected,
+ Integer averageSpeedAbsolute,
+ Integer delay,
+ Integer segmentSpeedLimit,
+ Integer expectedSpeedAbsolute,
+ List<CauseDiscriminatedVariant> causes,
+ List<AdviceStruct> advices,
+ List<ApplicabilityStruct> applicability,
+ List<TemporarySpeedLimitStruct> temporarySpeedLimits,
+ Integer expirationTime,
+ Integer updateTime,
+ LocationReferenceStruct locationReference
+ ) {
+ super();
+ this.trafficIncidentId = trafficIncidentManagementId;
+ this.effectCode = effectCode;
+ this.startTime = startTime;
+ this.stopTime = stopTime;
+ this.tendency = tendency;
+ this.lengthAffected = lengthAffected;
+ this.averageSpeedAbsolute = averageSpeedAbsolute;
+ this.delay = delay;
+ this.segmentSpeedLimit = segmentSpeedLimit;
+ this.expectedSpeedAbsolute = expectedSpeedAbsolute;
+ this.causes = causes;
+ this.advices = advices;
+ this.applicability = applicability;
+ this.temporarySpeedLimits = temporarySpeedLimits;
+ this.expirationTime = expirationTime;
+ this.updateTime = updateTime;
+ this.locationReference = locationReference;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VehicleRelatedRestrictionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VehicleRelatedRestrictionStruct.java
new file mode 100755
index 0000000..3c7d854
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VehicleRelatedRestrictionStruct.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class VehicleRelatedRestrictionStruct extends Struct {
+ @Position(0)
+ public final Byte restrictionType; // RestrictionType
+
+ @Position(1)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<Integer> restrictionValue;
+
+ @Position(2)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<LocationReferenceStruct> restrictionLocationReference;
+
+ public VehicleRelatedRestrictionStruct(Byte restrictionType,
+ List<Integer> restrictionValue,
+ List<LocationReferenceStruct> restrictionLocationReference
+ ) {
+ super();
+ this.restrictionType = restrictionType;
+ this.restrictionValue = restrictionValue;
+ this.restrictionLocationReference = restrictionLocationReference;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VersionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VersionStruct.java
new file mode 100755
index 0000000..870ceac
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/VersionStruct.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.UInt16;
+
+public class VersionStruct extends Struct {
+ @Position(0)
+ public final UInt16 major;
+
+ @Position(1)
+ public final UInt16 minor;
+
+ @Position(2)
+ public final UInt16 micro;
+
+ @Position(3)
+ public final String date;
+
+ public VersionStruct(UInt16 major, UInt16 minor, UInt16 micro, String date) {
+ super();
+ this.major = major;
+ this.minor = minor;
+ this.micro = micro;
+ this.date = date;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/StructUtil.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/StructUtil.java
new file mode 100755
index 0000000..4234365
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/StructUtil.java
@@ -0,0 +1,1447 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.dbus.Variant;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.LocalizedString;
+import org.genivi.common.Version;
+import org.genivi.locref.LocationReference;
+import org.genivi.locref.locrefFactory;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.AdviceStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.ApplicabilityStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.CauseDiscriminatedVariant;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.CauseStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.CauseType;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.DirectCauseStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.LaneRestrictionsStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.LinkedCauseStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.LocalizedStringStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.LocationReferenceStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TemporarySpeedLimitSectionStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TemporarySpeedLimitStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TrafficIncidentStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.VehicleRelatedRestrictionStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.VersionStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.FeedInformationStruct;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Accident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Fire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind;
+import org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility;
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment;
+import org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+public class StructUtil {
+ private final static Logger LOGGER = Logger.getLogger(StructUtil.class.getName());
+ private final static CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private final static locrefFactory LOCATION_REFERENCE_FACTORY = locrefFactory.eINSTANCE;
+ private final static XTrafficIncidentFactory TRAFFIC_INCIDENT_FACTORY = XTrafficIncidentFactory.eINSTANCE;
+ private final static trafficincidentsserviceFactory TRAFFIC_INCIDENTS_SVC_FACTORY = trafficincidentsserviceFactory.eINSTANCE;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ public static Version versionStructToVersion(VersionStruct versionStruct) {
+ Version version = COMMON_FACTORY.createVersion();
+
+ version.setMajor(versionStruct.major.intValue());
+ version.setMinor(versionStruct.minor.intValue());
+ version.setMicro(versionStruct.micro.intValue());
+ version.setDate(versionStruct.date);
+
+ return version;
+ }
+
+ public static VersionStruct versionToVersionStruct(Version version) {
+ LOGGER.info("=>");
+ UInt16 major = new UInt16(version.getMajor());
+ UInt16 minor = new UInt16(version.getMinor());
+ UInt16 micro = new UInt16(version.getMicro());
+
+ VersionStruct versionStruct = new VersionStruct(major, minor, micro, version.getDate());
+
+ LOGGER.info("<= " + versionStruct);
+ return versionStruct;
+ }
+
+ public static TrafficIncident trafficIncidentStructToTrafficIncident(TrafficIncidentStruct trafficIncidentStruct) {
+ LOGGER.info("trafficIncidentStructToTrafficIncident =>");
+ TrafficIncident trafficIncident = TRAFFIC_INCIDENT_FACTORY.createTrafficIncident();
+
+ if (trafficIncidentStruct.effectCode != 0) {
+ EffectCode effectCode = EffectCode.get(trafficIncidentStruct.effectCode);
+ trafficIncident.setEffectCode(effectCode);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: effectCode set: " + trafficIncident.getEffectCode());
+ }
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: effectCode handled OK");
+
+ long startTimeValue = trafficIncidentStruct.startTime;
+ if (startTimeValue != -1) {
+ Date startTime = new Date(startTimeValue * 1000 * 60);
+ trafficIncident.setStartTime(startTime);
+ LOGGER.info("startTimeValue = " + startTimeValue);
+ LOGGER.info("startTimeValue * 1000 * 60 = " + startTimeValue * 1000 * 60);
+ LOGGER.info("trafficIncidentStruct.startTime * 1000 * 60 = " + trafficIncidentStruct.startTime * 1000 * 60);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: startTime set: " + trafficIncident.getStartTime());
+ }
+
+ long stopTimeValue = trafficIncidentStruct.stopTime;
+ if (stopTimeValue != -1) {
+ Date stopTime = new Date(stopTimeValue * 1000 * 60);
+ trafficIncident.setStopTime(stopTime);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: stopTime set: " + trafficIncident.getStopTime());
+ }
+
+ if (trafficIncidentStruct.tendency != 0) {
+ Tendency tendency = Tendency.get(trafficIncidentStruct.tendency);
+ trafficIncident.setTendency(tendency);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: tendency set: " + trafficIncident.getTendency());
+ }
+
+ if (trafficIncidentStruct.lengthAffected != -1) {
+ trafficIncident.setLengthAffected(trafficIncidentStruct.lengthAffected);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: lengthAffected set: " + trafficIncident.getLengthAffected());
+ }
+
+ if (trafficIncidentStruct.averageSpeedAbsolute != -1) {
+ trafficIncident.setAverageSpeedAbsolute(trafficIncidentStruct.averageSpeedAbsolute);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: averageSpeedAbsolute set: " + trafficIncident.getAverageSpeedAbsolute());
+ }
+
+ if (trafficIncidentStruct.delay != -1) {
+ trafficIncident.setDelay(trafficIncidentStruct.delay);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: delay set: " + trafficIncident.getDelay());
+ }
+
+ if (trafficIncidentStruct.segmentSpeedLimit != -1) {
+ trafficIncident.setSegmentSpeedLimit(trafficIncidentStruct.segmentSpeedLimit);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: segmentSpeedLimit set: " + trafficIncident.getSegmentSpeedLimit());
+ }
+
+ if (trafficIncidentStruct.expectedSpeedAbsolute != -1) {
+ trafficIncident.setExpectedSpeedAbsolute(trafficIncidentStruct.expectedSpeedAbsolute);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: expectedSpeedAbsolute set: " + trafficIncident.getExpectedSpeedAbsolute());
+ }
+
+ for (CauseDiscriminatedVariant causeDiscriminatedVariant: trafficIncidentStruct.causes) {
+ Cause cause = causeDiscriminatedVariantToCause(causeDiscriminatedVariant);
+ trafficIncident.getCauses().add(cause);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: cause added: " + cause);
+ }
+
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: number of advices = " + trafficIncidentStruct.advices.size());
+ for (AdviceStruct adviceUpdateStruct: trafficIncidentStruct.advices) {
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: loop start");
+ Advice advice = adviceStructToAdvice(adviceUpdateStruct);
+ trafficIncident.getAdvices().add(advice);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: advice added: " + advice);
+ }
+
+ for (ApplicabilityStruct applicabilityStruct: trafficIncidentStruct.applicability) {
+ Applicability applicability = applicabilityStructToApplicability(applicabilityStruct);
+ trafficIncident.getApplicability().add(applicability);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: applicability added: " + applicability);
+ }
+
+ for (TemporarySpeedLimitStruct temporarySpeedLimitStruct: trafficIncidentStruct.temporarySpeedLimits) {
+ TemporarySpeedLimit temporarySpeedLimit = temporarySpeedLimitStructToTemporarySpeedLimit(temporarySpeedLimitStruct);
+ trafficIncident.getTemporarySpeedLimit().add(temporarySpeedLimit);
+ LOGGER.info("temporarySpeedLimit added: " + temporarySpeedLimit);
+ }
+
+ trafficIncident.setTrafficIncidentId(trafficIncidentStruct.trafficIncidentId);
+
+ long expirationTimeValue = trafficIncidentStruct.expirationTime;
+ if (expirationTimeValue != -1) {
+ Date expirationTime = new Date(expirationTimeValue * 1000 * 60);
+ trafficIncident.setExpirationTime(expirationTime);
+ }
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: expirationTime handled OK");
+
+ long updateTimeValue = trafficIncidentStruct.updateTime;
+ if (updateTimeValue != -1) {
+ Date updateTime = new Date(updateTimeValue * 1000 * 60);
+ trafficIncident.setUpdateTime(updateTime);
+ }
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: updateTime handled OK");
+
+ LocationReference locationReference = locationReferenceStructToLocationReference(trafficIncidentStruct.locationReference);
+ trafficIncident.setLocationReference(locationReference);
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident: locationReference handled OK");
+
+ LOGGER.info("managedTrafficIncidentStructToManagedTrafficIncident <=");
+ return trafficIncident;
+ }
+
+ public static TrafficIncidentStruct trafficIncidentToTrafficIncidentStruct(
+ TrafficIncident trafficIncident) {
+
+ byte effectCodeId = 0;
+ EffectCode effectCode = trafficIncident.getEffectCode();
+ if (effectCode != null) {
+ effectCodeId = (byte) effectCode.getValue();
+ }
+
+ Integer startTime;
+ if (trafficIncident.isSetStartTime()) {
+ LOGGER.info("Start date = " + trafficIncident.getStartTime());
+ LOGGER.info("Start date.time = " + trafficIncident.getStartTime().getTime());
+ startTime = (int) (trafficIncident.getStartTime().getTime() / (1000 * 60));
+ LOGGER.info("Start struct = " + startTime);
+ } else {
+ startTime = -1;
+ }
+
+ Integer stopTime;
+ if (trafficIncident.isSetStopTime()) {
+ stopTime = (int) (trafficIncident.getStopTime().getTime() / (1000 * 60));
+ } else {
+ stopTime = -1;
+ }
+
+ Byte tendencyId = 0;
+ Tendency tendency = trafficIncident.getTendency();
+ if (tendency != null) {
+ tendencyId = (Byte) (byte) tendency.getValue();
+ }
+
+ int lengthAffected = -1;
+ if (trafficIncident.getLengthAffected() != null) {
+ lengthAffected =trafficIncident.getLengthAffected();
+ }
+
+ int averageSpeedAbsolute = -1;
+ if (trafficIncident.getAverageSpeedAbsolute() != null) {
+ averageSpeedAbsolute = trafficIncident.getAverageSpeedAbsolute();
+ }
+
+ int delay = -1;
+ if (trafficIncident.isSetDelay() && trafficIncident.getDelay() != null) {
+ Integer integerDelay = trafficIncident.getDelay();
+ if (integerDelay != null) {
+ delay = integerDelay;
+ }
+ }
+
+ int segmentSpeedLimit = -1;
+ if (trafficIncident.getSegmentSpeedLimit() != null) {
+ segmentSpeedLimit = trafficIncident.getSegmentSpeedLimit();
+ }
+
+ int expectedSpeedAbsolute = -1;
+ if (trafficIncident.getExpectedSpeedAbsolute() != null) {
+ expectedSpeedAbsolute = trafficIncident.getExpectedSpeedAbsolute();
+ }
+
+ EList<Cause> causes = trafficIncident.getCauses();
+ List<CauseDiscriminatedVariant> causeDiscriminatedVariants = new ArrayList<>();
+ for (Cause cause: causes) {
+ CauseDiscriminatedVariant causeDiscriminatedVariant = causeToCauseDiscriminatedVariant(cause);
+ causeDiscriminatedVariants.add(causeDiscriminatedVariant);
+ }
+
+ EList<Advice> advices = trafficIncident.getAdvices();
+ List<AdviceStruct> adviceStructs = new ArrayList<>();
+ for (int i = 0; i < advices.size(); i++) {
+ AdviceStruct adviceStruct = adviceToAdviceStruct(advices.get(i));
+ adviceStructs.add(adviceStruct);
+ }
+
+ EList<Applicability> applicabilities = trafficIncident.getApplicability();
+ List<ApplicabilityStruct> applicabilityStructs = new ArrayList<>();
+ for (int i = 0; i < applicabilities.size(); i++) {
+ ApplicabilityStruct applicabilityStruct = applicabilityToApplicabilityStruct(applicabilities.get(i));
+ applicabilityStructs.add(applicabilityStruct);
+ }
+
+ EList<TemporarySpeedLimit> temporarySpeedLimits = trafficIncident.getTemporarySpeedLimit();
+ List<TemporarySpeedLimitStruct> temporarySpeedLimitStructs = new ArrayList<>();
+ for (int i = 0; i < temporarySpeedLimits.size(); i++) {
+ TemporarySpeedLimitStruct temporarySpeedLimitStruct = temporarySpeedLimitToTemporarySpeedLimitStruct(temporarySpeedLimits.get(i));
+ temporarySpeedLimitStructs.add(temporarySpeedLimitStruct);
+ }
+
+ String trafficIncidentManagementId = trafficIncident.getTrafficIncidentId();
+
+ Integer expirationTime;
+ if (trafficIncident.isSetExpirationTime() && trafficIncident.getExpirationTime() != null) {
+ expirationTime = (int) (trafficIncident.getExpirationTime().getTime() / (1000 * 60));
+ } else {
+ expirationTime = -1;
+ }
+
+ Integer updateTime;
+ if (trafficIncident.isSetUpdateTime()) {
+ updateTime = (int) (trafficIncident.getUpdateTime().getTime() / (1000 * 60));
+ } else {
+ updateTime = -1;
+ }
+
+ LocationReferenceStruct locationReferenceStruct = locationReferenceToLocationReferenceStruct(trafficIncident.getLocationReference());
+
+
+ TrafficIncidentStruct trafficIncidentStruct = new TrafficIncidentStruct(
+ trafficIncidentManagementId,
+ effectCodeId,
+ startTime,
+ stopTime,
+ tendencyId,
+ lengthAffected,
+ averageSpeedAbsolute,
+ delay,
+ segmentSpeedLimit,
+ expectedSpeedAbsolute,
+ causeDiscriminatedVariants,
+ adviceStructs,
+ applicabilityStructs,
+ temporarySpeedLimitStructs,
+ expirationTime,
+ updateTime,
+ locationReferenceStruct
+ );
+
+ return trafficIncidentStruct;
+ }
+
+ private static Cause causeDiscriminatedVariantToCause(CauseDiscriminatedVariant causeDiscriminatedVariant) {
+ CauseType causeType = CauseType.getCauseType(causeDiscriminatedVariant.causeType);
+ CauseStruct causeStruct = reconstructCauseStruct(causeType, causeDiscriminatedVariant.cause);
+ LOGGER.info("causeStruct = " + causeStruct);
+ Cause cause;
+ switch (causeType) {
+ case DIRECT:
+ LOGGER.info("is DirectCauseStruct");
+ DirectCauseStruct directCauseStruct = (DirectCauseStruct) causeStruct;
+ cause = directCauseStructToDirectCause(directCauseStruct);
+ break;
+
+ case LINKED:
+ LOGGER.info("is LinkedCauseStruct");
+ LinkedCauseStruct linkedCauseStruct = (LinkedCauseStruct) causeStruct;
+ cause = linkedCauseStructToLinkedCause(linkedCauseStruct);
+ break;
+
+ default:
+ throw new RuntimeException("Illegal causeType: " + causeType);
+ }
+
+ return cause;
+ }
+
+ private static CauseStruct reconstructCauseStruct(CauseType causeType, Variant<?> causeVariant) {
+ LOGGER.info("reconstructCauseStruct => causeType = " + causeType + ", causeVariant" + causeVariant);
+
+ Object[] structFields = (Object[]) causeVariant.getValue();
+ CauseStruct causeStruct = null;
+
+ Byte mainCause;
+
+ switch (causeType) {
+ case DIRECT:
+ if (!(structFields.length == 8 &&
+ structFields[0] instanceof Byte &&
+ structFields[1] instanceof Byte &&
+ structFields[2] instanceof Boolean &&
+ structFields[3] instanceof Byte &&
+ structFields[4] instanceof Integer &&
+ structFields[5] instanceof Integer &&
+ structFields[6] instanceof Vector &&
+ structFields[7] instanceof Vector)) {
+ for (Object structField: structFields) {
+ LOGGER.info("reconstructCauseStructs field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for DirectCause");
+ }
+ mainCause = (Byte) structFields[0];
+ Byte warningLevel = (Byte) structFields[1];
+ LOGGER.info("warningLevel OK");
+ Boolean unverifiedInformation = (Boolean) structFields[2];
+ LOGGER.info("unverifiedInformation OK");
+ Byte subCause = (Byte) structFields[3];
+ LOGGER.info("subCause OK");
+ int lengthAffected = (Integer) structFields[4];
+ LOGGER.info("lengthAffected OK");
+ int causeOffset = (Integer) structFields[5];
+ LOGGER.info("causeCode OK");
+ @SuppressWarnings("unchecked")
+ List<LaneRestrictionsStruct> laneRestrictions = reconstructLaneRestrictionsStructs((Vector<Object>) structFields[6]);
+ LOGGER.info("LaneRestrictionsStruct OK");
+ @SuppressWarnings("unchecked")
+ List<LocalizedStringStruct> freeTexts = reconstructLocalizedStringStructs((Vector<Object>) structFields[7]);
+ LOGGER.info("freeTexts OK");
+ causeStruct = new DirectCauseStruct(mainCause, warningLevel, unverifiedInformation,
+ subCause, lengthAffected, causeOffset, laneRestrictions, freeTexts);
+ break;
+
+ case LINKED:
+ if (!(structFields.length == 2 &&
+ structFields[0] instanceof Byte &&
+ structFields[1] instanceof String)) {
+ LOGGER.severe("Wrong signature for LinkedCause");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructCauseStructs field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for LinkedCause");
+ }
+ mainCause = (Byte) structFields[0];
+ String causeTrafficIncidentId = (String) structFields[1];
+ causeStruct = new LinkedCauseStruct(mainCause, causeTrafficIncidentId);
+ break;
+ }
+
+ LOGGER.info("reconstructCauseStruct <= " + causeStruct);
+ return causeStruct;
+ }
+
+ private static CauseDiscriminatedVariant causeToCauseDiscriminatedVariant(Cause cause) {
+ CauseType causeType;
+ CauseStruct causeStruct;
+
+ if (cause instanceof DirectCause) {
+ causeType = CauseType.DIRECT;
+ causeStruct = directCauseToDirectCauseStruct((DirectCause) cause);
+ } else if (cause instanceof LinkedCause) {
+ causeType = CauseType.LINKED;
+ causeStruct = linkedCauseToLinkedCauseStruct((LinkedCause) cause);
+ } else {
+ throw new IllegalArgumentException("Unknow subclass of Cause");
+ }
+
+ Variant<? extends CauseStruct> causeVariant = new Variant<CauseStruct>(causeStruct);
+ return new CauseDiscriminatedVariant(causeType.getValue(), causeVariant);
+ }
+
+ private static LinkedCause linkedCauseStructToLinkedCause(LinkedCauseStruct linkedCauseStruct) {
+ LinkedCause linkedCause = TRAFFIC_INCIDENT_FACTORY.createLinkedCause();
+
+ CauseCode mainCause = CauseCode.get(linkedCauseStruct.mainCause);
+ linkedCause.setMainCause(mainCause);
+
+ linkedCause.setCauseTrafficIncidentId(linkedCauseStruct.causeTrafficIncidentId);
+
+ return linkedCause;
+ }
+
+ private static LinkedCauseStruct linkedCauseToLinkedCauseStruct(LinkedCause linkedCause) {
+ Byte mainCause = (byte) linkedCause.getMainCause().getValue();
+ String causeTrafficIncidentId = linkedCause.getCauseTrafficIncidentId();
+
+ LinkedCauseStruct linkedCauseStruct = new LinkedCauseStruct(mainCause, causeTrafficIncidentId);
+
+ return linkedCauseStruct;
+ }
+
+ private static DirectCause directCauseStructToDirectCause(DirectCauseStruct directCauseStruct) {
+ DirectCause directCause = TRAFFIC_INCIDENT_FACTORY.createDirectCause();
+
+ CauseCode mainCause = CauseCode.get(directCauseStruct.mainCause);
+ directCause.setMainCause(mainCause);
+
+ if (directCauseStruct.warningLevel != 0) {
+ WarningLevel warningLevel = WarningLevel.get(directCauseStruct.warningLevel);
+ directCause.setWarningLevel(warningLevel);
+ }
+
+ boolean unverifiedInformation = directCauseStruct.unverifiedInformation;
+ directCause.setUnverifiedInformation(unverifiedInformation);
+
+ Byte subCauseValue = directCauseStruct.subCause;
+
+ if (subCauseValue != 0) {
+ Object subCause;
+ switch (mainCause) {
+ case ACCIDENT:
+ subCause = Accident.get(subCauseValue);
+ break;
+
+ case ANIMALS_ON_ROADWAY:
+ subCause = AnimalsOnRoadway.get(subCauseValue);
+ break;
+
+ case BROKEN_DOWN_VEHICLES:
+ subCause = BrokenDownVehicles.get(subCauseValue);
+ break;
+
+ case DANGEROUS_END_OF_QUEUE:
+ subCause = DangerousEndOfQueue.get(subCauseValue);
+ break;
+
+ case EXTREME_WEATHER_CONDITIONS:
+ subCause = ExtremeWeatherConditions.get(subCauseValue);
+ break;
+
+ case FIRE:
+ subCause = Fire.get(subCauseValue);
+ break;
+
+ case HAZARDOUS_DRIVING_CONDITIONS:
+ subCause = HazardousDrivingConditions.get(subCauseValue);
+ break;
+
+ case IMPASSIBILITY:
+ subCause = Impassibility.get(subCauseValue);
+ break;
+
+ case MAJOR_EVENT:
+ subCause = MajorEvent.get(subCauseValue);
+ break;
+
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ subCause = MalfunctioningRoadsideEquipment.get(subCauseValue);
+ break;
+
+ case NARROW_LANES:
+ subCause = NarrowLanes.get(subCauseValue);
+ break;
+
+ case OBJECTS_ON_THE_ROAD:
+ subCause = ObjectsOnTheRoad.get(subCauseValue);
+ break;
+
+ case PEOPLE_ON_ROADWAY:
+ subCause = PeopleOnRoadway.get(subCauseValue);
+ break;
+
+ case POLICE_CHECKPOINT:
+ subCause = PoliceCheckpoint.get(subCauseValue);
+ break;
+
+ case PRECIPITATION:
+ subCause = Precipitation.get(subCauseValue);
+ break;
+
+ case RECKLESS_PERSONS:
+ subCause = RecklessPersons.get(subCauseValue);
+ break;
+
+ case REGULATORY_MEASURE:
+ subCause = RegulatoryMeasure.get(subCauseValue);
+ break;
+
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ subCause = RescueAndRecoveryWorkInProgress.get(subCauseValue);
+ break;
+
+ case RISK_OF_FIRE:
+ subCause = RiskOfFire.get(subCauseValue);
+ break;
+
+ case ROADWORKS:
+ subCause = RoadWorks.get(subCauseValue);
+ break;
+
+ case SERVICE_NOT_OPERATING:
+ subCause = ServiceNotOperating.get(subCauseValue);
+ break;
+
+ case SERVICE_NOT_USEABLE:
+ subCause = ServiceNotUsable.get(subCauseValue);
+ break;
+
+ case SLIPPERY_ROAD:
+ subCause = SlipperyRoad.get(subCauseValue);
+ break;
+
+ case SLOW_MOVING_VEHICLES:
+ subCause = SlowMovingVehicles.get(subCauseValue);
+ break;
+
+ case TIME_DELAY:
+ subCause = TimeDelay.get(subCauseValue);
+ break;
+
+ case TRAFFIC_CONGESTION:
+ subCause = TrafficCongestion.get(subCauseValue);
+ break;
+
+ case VISIBILITY_REDUCED:
+ subCause = VisibilityReduced.get(subCauseValue);
+ break;
+
+ case AQUAPLANING:
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED:
+ case TRAFFIC_REGULATIONS_CHANGED:
+ case VEHICLE_ON_WRONG_CARRIAGEWAY:
+ throw new IllegalArgumentException("Subcause for main cause which doesn't support a subcause");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainCause");
+ }
+
+ directCause.setSubCause(subCause);
+ }
+
+ if (directCauseStruct.lengthAffected != -1) {
+ directCause.setLengthAffected(directCauseStruct.lengthAffected);
+ }
+
+ if (directCauseStruct.causeOffset != -1) {
+ directCause.setCauseOffset(directCauseStruct.causeOffset);
+ }
+
+ if (directCauseStruct.laneRestrictions.size() == 1) {
+ LaneRestrictions laneRestrictions = laneRestrictionsStructToLaneRestrictions(directCauseStruct.laneRestrictions.get(0));
+ directCause.setLaneRestrictions(laneRestrictions);
+ } else if (directCauseStruct.laneRestrictions.size() == 0) {
+ // no action
+ } else {
+ throw new RuntimeException("Illegal size of LaneRestrictions list: " + directCauseStruct.laneRestrictions.size());
+ }
+
+ for (LocalizedStringStruct localizedStringStruct: directCauseStruct.freeText) {
+ LocalizedString freeText = localizedStringStructToLocalizedString(localizedStringStruct);
+ directCause.getFreeText().add(freeText);
+ }
+
+ return directCause;
+ }
+
+ private static DirectCauseStruct directCauseToDirectCauseStruct(DirectCause directCause) {
+ Byte mainCause = (byte) directCause.getMainCause().getValue();
+
+ Byte warningLevel = 0;
+ if (directCause.getWarningLevel() != null) {
+ warningLevel = (byte) directCause.getWarningLevel().getValue();
+ }
+
+ Boolean unverifiedInformation = directCause.isUnverifiedInformation();
+
+ Object subCauseObj = directCause.getSubCause();
+ int subCauseValue = -1;
+ Byte subCause = 0;
+ if (subCauseObj != null) {
+ switch (directCause.getMainCause()) {
+ case ACCIDENT:
+ subCauseValue = ((Accident) subCauseObj).getValue();
+ break;
+
+ case ANIMALS_ON_ROADWAY:
+ subCauseValue = ((AnimalsOnRoadway) subCauseObj).getValue();
+ break;
+
+ case BROKEN_DOWN_VEHICLES:
+ subCauseValue = ((BrokenDownVehicles) subCauseObj).getValue();
+ break;
+
+ case DANGEROUS_END_OF_QUEUE:
+ subCauseValue = ((DangerousEndOfQueue) subCauseObj).getValue();
+ break;
+
+ case EXTREME_WEATHER_CONDITIONS:
+ subCauseValue = ((ExtremeWeatherConditions) subCauseObj).getValue();
+ break;
+
+ case FIRE:
+ subCauseValue = ((Fire) subCauseObj).getValue();
+ break;
+
+ case HAZARDOUS_DRIVING_CONDITIONS:
+ subCauseValue = ((HazardousDrivingConditions) subCauseObj).getValue();
+ break;
+
+ case IMPASSIBILITY:
+ subCauseValue = ((Impassibility) subCauseObj).getValue();
+ break;
+
+ case MAJOR_EVENT:
+ subCauseValue = ((MajorEvent) subCauseObj).getValue();
+ break;
+
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ subCauseValue = ((MalfunctioningRoadsideEquipment) subCauseObj).getValue();
+ break;
+
+ case NARROW_LANES:
+ subCauseValue = ((NarrowLanes) subCauseObj).getValue();
+ break;
+
+ case OBJECTS_ON_THE_ROAD:
+ subCauseValue = ((ObjectsOnTheRoad) subCauseObj).getValue();
+ break;
+
+ case PEOPLE_ON_ROADWAY:
+ subCauseValue = ((PeopleOnRoadway) subCauseObj).getValue();
+ break;
+
+ case POLICE_CHECKPOINT:
+ subCauseValue = ((PoliceCheckpoint) subCauseObj).getValue();
+ break;
+
+ case PRECIPITATION:
+ subCauseValue = ((Precipitation) subCauseObj).getValue();
+ break;
+
+ case RECKLESS_PERSONS:
+ subCauseValue = ((RecklessPersons) subCauseObj).getValue();
+ break;
+
+ case REGULATORY_MEASURE:
+ subCauseValue = ((RegulatoryMeasure) subCauseObj).getValue();
+ break;
+
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ subCauseValue = ((RescueAndRecoveryWorkInProgress) subCauseObj).getValue();
+ break;
+
+ case RISK_OF_FIRE:
+ subCauseValue = ((RiskOfFire) subCauseObj).getValue();
+ break;
+
+ case ROADWORKS:
+ subCauseValue = ((RoadWorks) subCauseObj).getValue();
+ break;
+
+ case SERVICE_NOT_OPERATING:
+ subCauseValue = ((ServiceNotOperating) subCauseObj).getValue();
+ break;
+
+ case SERVICE_NOT_USEABLE:
+ subCauseValue = ((ServiceNotUsable) subCauseObj).getValue();
+ break;
+
+ case SLIPPERY_ROAD:
+ subCauseValue = ((SlipperyRoad) subCauseObj).getValue();
+ break;
+
+ case SLOW_MOVING_VEHICLES:
+ subCauseValue = ((SlowMovingVehicles) subCauseObj).getValue();
+ break;
+
+ case TIME_DELAY:
+ subCauseValue = ((TimeDelay) subCauseObj).getValue();
+ break;
+
+ case TRAFFIC_CONGESTION:
+ subCauseValue = ((TrafficCongestion) subCauseObj).getValue();
+ break;
+
+ case VISIBILITY_REDUCED:
+ subCauseValue = ((VisibilityReduced) subCauseObj).getValue();
+ break;
+
+ case AQUAPLANING:
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED:
+ case TRAFFIC_REGULATIONS_CHANGED:
+ case VEHICLE_ON_WRONG_CARRIAGEWAY:
+ throw new IllegalArgumentException("Subcause for main cause which doesn't support a subcause");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainCause");
+ }
+ subCause = (byte) subCauseValue;
+ }
+
+ int lengthAffected = -1;
+ if (directCause.getLengthAffected() != null) {
+ lengthAffected = directCause.getLengthAffected();
+ }
+
+ int causeOffset = -1;
+ if (directCause.getCauseOffset() != null) {
+ causeOffset = directCause.getCauseOffset();
+ }
+
+ LaneRestrictions laneRestrictions = directCause.getLaneRestrictions();
+ List<LaneRestrictionsStruct> laneRestrictionsStructs = new ArrayList<>();
+ if (laneRestrictions != null) {
+ LaneRestrictionsStruct laneRestrictionsStruct = laneRestrictionsToLaneRestrictionsStruct(laneRestrictions);
+ laneRestrictionsStructs.add(laneRestrictionsStruct);
+ }
+
+ EList<LocalizedString> freeTexts = directCause.getFreeText();
+ List<LocalizedStringStruct> freeTextStructs = new ArrayList<>();
+ for (int i = 0; i < freeTexts.size(); i++) {
+ LocalizedStringStruct freeTextStruct = localizedStringToLocalizedStringStruct(freeTexts.get(i));
+ freeTextStructs.add(freeTextStruct);
+ }
+
+ DirectCauseStruct directCauseStruct = new DirectCauseStruct(
+ mainCause,
+ warningLevel,
+ unverifiedInformation,
+ subCause,
+ lengthAffected,
+ causeOffset,
+ laneRestrictionsStructs,
+ freeTextStructs);
+
+ return directCauseStruct;
+ }
+
+ private static List<LocalizedStringStruct> reconstructLocalizedStringStructs(Vector<Object> vector) {
+ LOGGER.info("reconstructLocalizedStringStructs =>");
+ List<LocalizedStringStruct> localizedStringStructs = new ArrayList<>();
+
+ for (Object object: vector) {
+ LOGGER.info("Handling object: " + object + " = " + object.getClass().getName());
+ if (object instanceof Object[]) {
+ LOGGER.info("Type OK");
+ LocalizedStringStruct localizedStringStruct = reconstructLocalizedStringStruct((Object[]) object);
+ localizedStringStructs.add(localizedStringStruct);
+ } else {
+ LOGGER.info("Wrong Type");
+ }
+ }
+
+ LOGGER.info("reconstructLocalizedStringStructs <= " + localizedStringStructs);
+ return localizedStringStructs;
+ }
+
+ private static LocalizedStringStruct reconstructLocalizedStringStruct(Object[] objects) {
+ LOGGER.info("reconstructLocalizedStringStruct => " + objects);
+
+ LocalizedStringStruct localizedStringStruct = null;
+
+ if (objects.length != 3) {
+ LOGGER.info("Wrong number of elements");
+ return null;
+ }
+
+ String languageCode = null;
+ String text = null;
+ String countryCode = null;
+
+ if (objects[0] instanceof String) {
+ languageCode = (String) objects[0];
+ LOGGER.fine("languageCode OK");
+ } else {
+ LOGGER.info("Wrong type for languageCode");
+ }
+
+ if (objects[1] instanceof String) {
+ text = (String) objects[1];
+ LOGGER.fine("text OK");
+ } else {
+ LOGGER.info("Wrong type for text");
+ }
+
+ if (objects[2] instanceof String) {
+ countryCode = (String) objects[2];
+ LOGGER.fine("countryCode OK");
+ } else {
+ LOGGER.info("Wrong type for countryCode");
+ }
+
+ localizedStringStruct = new LocalizedStringStruct(languageCode, text, countryCode);
+
+ LOGGER.info("reconstructLocalizedStringStruct <= " + localizedStringStruct);
+ return localizedStringStruct;
+ }
+
+ private static List<LaneRestrictionsStruct> reconstructLaneRestrictionsStructs(Vector<Object> vector) {
+ LOGGER.info("reconstructLaneRestrictionsStructs =>");
+ List<LaneRestrictionsStruct> laneRestrictionsStructs = new ArrayList<>();
+
+ for (Object object: vector) {
+ LOGGER.info("Handling object: " + object + " = " + object.getClass().getName());
+ if (object instanceof Object[]) {
+ LOGGER.info("Type OK");
+ LaneRestrictionsStruct laneRestrictionsStruct = reconstructLaneRestrictionsStruct((Object[]) object);
+ laneRestrictionsStructs.add(laneRestrictionsStruct);
+ } else {
+ LOGGER.info("Wrong Type");
+ }
+ }
+
+ LOGGER.info("reconstructLaneRestrictionsStructs <= " + laneRestrictionsStructs);
+ return laneRestrictionsStructs;
+ }
+
+ private static LaneRestrictionsStruct reconstructLaneRestrictionsStruct(Object[] objects) {
+ LOGGER.info("reconstructLaneRestrictionsStruct =>");
+ if (objects.length != 2) {
+ LOGGER.info("Wrong number of elements");
+ return null;
+ }
+
+ Byte laneRestrictionType = 0;
+ int numberOfLanes = -1;
+
+ if (objects[0] instanceof Byte) {
+ laneRestrictionType = (Byte) objects[0];
+ LOGGER.info("laneRestrictionType OK");
+ } else {
+ LOGGER.info("Wrong type for laneRestrictionType");
+ }
+
+ if (objects[1] instanceof Integer) {
+ numberOfLanes = (Integer) objects[1];
+ LOGGER.info("numberOfLanes OK");
+ } else {
+ LOGGER.info("Wrong type for numberOfLanes");
+ }
+
+ LaneRestrictionsStruct laneRestrictionsStruct = new LaneRestrictionsStruct(laneRestrictionType, numberOfLanes);
+
+ LOGGER.info("reconstructLaneRestrictionsStruct <= " + laneRestrictionsStruct);
+ return laneRestrictionsStruct;
+ }
+
+ private static Advice adviceStructToAdvice(AdviceStruct adviceStruct) {
+ LOGGER.info("adviceStructToAdvice => adviceStruct = " + adviceStruct);
+ Advice advice = TRAFFIC_INCIDENT_FACTORY.createAdvice();
+
+ AdviceCode mainAdvice = AdviceCode.get(adviceStruct.mainAdvice);
+ advice.setMainAdvice(mainAdvice);
+
+ Byte subAdviceValue = adviceStruct.subAdvice;
+ if (subAdviceValue != 0) {
+ Object subAdviceObj;
+ switch (mainAdvice) {
+ case DO_NOT_LEAVE_YOUR_VEHICLE:
+ subAdviceObj = DoNotLeaveYourVehicle.get(subAdviceValue);
+ break;
+
+ case DRIVE_CAREFULLY:
+ subAdviceObj = DriveCarefully.get(subAdviceValue);
+ break;
+
+ case DRIVING_NOT_ALLOWED:
+ subAdviceObj = DrivingNotAllowed.get(subAdviceValue);
+ break;
+
+ case FOLLOW_DIVERSION:
+ subAdviceObj = FollowDiversion.get(subAdviceValue);
+ break;
+
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND:
+ subAdviceObj = GivingPathVehiclesFromBehind.get(subAdviceValue);
+ break;
+
+ case OVERTAKING_NOT_ALLOWED:
+ subAdviceObj = OvertakingNotAllowed.get(subAdviceValue);
+ break;
+
+ case USE_TOLL_LANES:
+ subAdviceObj = UseTollLanes.get(subAdviceValue);
+ break;
+
+ case AVOID_THE_AREA:
+ case DO_NOT_DIVERT:
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE:
+ case FOLLOW_POLICE_INSTRUCTIONS:
+ case NO_DIVERSION_TO_RECOMMEND:
+ case SWITCH_ON_RADIO:
+ case USE_HARD_SHOULDER_AS_LANE:
+ case WAIT_FOR_CONVOI:
+ case WAIT_FOR_IMPROVED_WEATHER:
+ case WAIT_FOR_POLICE_PATROL:
+ throw new IllegalArgumentException("Subadvice for main advice which doesn't support a subadvice");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainAdvice");
+ }
+ advice.setSubAdvice(subAdviceObj);
+ }
+
+ for (LocalizedStringStruct localizedStringStruct: adviceStruct.freeText) {
+ LocalizedString localizedString = localizedStringStructToLocalizedString(localizedStringStruct);
+ advice.getFreeText().add(localizedString);
+ }
+
+ for (ApplicabilityStruct applicabilityStruct: adviceStruct.applicability) {
+ Applicability applicability = applicabilityStructToApplicability(applicabilityStruct);
+ advice.getApplicability().add(applicability);
+ }
+
+ LOGGER.info("adviceStructToAdvice <= advice = " + advice);
+ return advice;
+ }
+
+ private static AdviceStruct adviceToAdviceStruct(Advice advice) {
+ Byte mainAdvice = (Byte) (byte) advice.getMainAdvice().getValue();
+
+ Object subAdviceObj = advice.getSubAdvice();
+ int subAdviceValue = 0;
+ if (subAdviceObj != null) {
+ switch (advice.getMainAdvice()) {
+ case DO_NOT_LEAVE_YOUR_VEHICLE:
+ subAdviceValue = ((DoNotLeaveYourVehicle) subAdviceObj).getValue();
+ break;
+
+ case DRIVE_CAREFULLY:
+ subAdviceValue = ((DriveCarefully) subAdviceObj).getValue();
+ break;
+
+ case DRIVING_NOT_ALLOWED:
+ subAdviceValue = ((DrivingNotAllowed) subAdviceObj).getValue();
+ break;
+
+ case FOLLOW_DIVERSION:
+ subAdviceValue = ((FollowDiversion) subAdviceObj).getValue();
+ break;
+
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND:
+ subAdviceValue = ((GivingPathVehiclesFromBehind) subAdviceObj).getValue();
+ break;
+
+ case OVERTAKING_NOT_ALLOWED:
+ subAdviceValue = ((OvertakingNotAllowed) subAdviceObj).getValue();
+ break;
+
+ case USE_TOLL_LANES:
+ subAdviceValue = ((UseTollLanes) subAdviceObj).getValue();
+ break;
+
+ case AVOID_THE_AREA:
+ case DO_NOT_DIVERT:
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE:
+ case FOLLOW_POLICE_INSTRUCTIONS:
+ case NO_DIVERSION_TO_RECOMMEND:
+ case SWITCH_ON_RADIO:
+ case USE_HARD_SHOULDER_AS_LANE:
+ case WAIT_FOR_CONVOI:
+ case WAIT_FOR_IMPROVED_WEATHER:
+ case WAIT_FOR_POLICE_PATROL:
+ throw new IllegalArgumentException("Subadvice for main advice which doesn't support a subadvice");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainAdvice");
+ }
+ }
+ Byte subAdvice = (Byte) (byte) subAdviceValue;
+
+ EList<LocalizedString> freeTexts = advice.getFreeText();
+ List<LocalizedStringStruct> freeTextStructs = new ArrayList<>();
+ for (int i = 0; i < freeTexts.size(); i++) {
+ LocalizedStringStruct localizedStringStruct = localizedStringToLocalizedStringStruct(freeTexts.get(i));
+ freeTextStructs.add(localizedStringStruct);
+ }
+
+ EList<Applicability> applicabilities = advice.getApplicability();
+ List<ApplicabilityStruct> applicabilityStructs = new ArrayList<>();
+ for (int i = 0; i < applicabilities.size(); i++) {
+ ApplicabilityStruct applicabilityStruct = applicabilityToApplicabilityStruct(applicabilities.get(i));
+ applicabilityStructs.add(applicabilityStruct);
+ }
+
+ AdviceStruct adviceStruct = new AdviceStruct(
+ mainAdvice,
+ subAdvice,
+ freeTextStructs,
+ applicabilityStructs);
+
+ return adviceStruct;
+ }
+
+ public static Applicability applicabilityStructToApplicability(ApplicabilityStruct applicabilityStruct) {
+ LOGGER.info("applicabilityStructToApplicability() => " + applicabilityStruct);
+ Applicability applicability = TRAFFIC_INCIDENT_FACTORY.createApplicability();
+
+ if (applicabilityStruct.vehicleType != 0) {
+ VehicleType vehicleType = VehicleType.get(applicabilityStruct.vehicleType);
+ applicability.setVehicleType(vehicleType);
+ LOGGER.info("applicabilityStructToApplicability: vehicleType set to " + vehicleType + " = " + vehicleType.getValue());
+ }
+
+ for (VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct: applicabilityStruct.vehicleRelatedRestrictions) {
+ LOGGER.info("applicabilityStructToApplicability: loop for vehicleRelatedRestrictionStruct = " + vehicleRelatedRestrictionStruct);
+ VehicleRelatedRestriction vehicleRelatedRestriction = vehicleRelatedRestrictionStructToVehicleRelatedRestriction(vehicleRelatedRestrictionStruct);
+ applicability.getVehicleRelatedRestrictions().add(vehicleRelatedRestriction);
+ LOGGER.info("applicabilityStructToApplicability: loop: vehicleRelatedRestriction = " + vehicleRelatedRestriction);
+ }
+
+ LOGGER.info("applicabilityStructToApplicability() <= " + applicability);
+ return applicability;
+ }
+
+ public static ApplicabilityStruct applicabilityToApplicabilityStruct(Applicability applicability) {
+ Byte vehicleType = 0;
+ if (applicability.getVehicleType() != null) {
+ vehicleType = (Byte) (byte) applicability.getVehicleType().getValue();
+ }
+
+ EList<VehicleRelatedRestriction> vehicleRelatedRestrictions = applicability.getVehicleRelatedRestrictions();
+ List<VehicleRelatedRestrictionStruct> vehicleRelatedRestrictionStructs = new ArrayList<>();
+ for (int i = 0; i < vehicleRelatedRestrictions.size(); i++) {
+ VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct = vehicleRelatedRestrictionToVehicleRelatedRestrictionStruct(vehicleRelatedRestrictions.get(i));
+ vehicleRelatedRestrictionStructs.add(vehicleRelatedRestrictionStruct);
+ }
+
+ ApplicabilityStruct applicabilityStruct = new ApplicabilityStruct(
+ vehicleType,
+ vehicleRelatedRestrictionStructs);
+
+ return applicabilityStruct;
+ }
+
+ public static VehicleRelatedRestriction vehicleRelatedRestrictionStructToVehicleRelatedRestriction(VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct) {
+ LOGGER.info("vehicleRelatedRestrictionStructToVehicleRelatedRestriction() => " + vehicleRelatedRestrictionStruct);
+ VehicleRelatedRestriction vehicleRelatedRestriction = TRAFFIC_INCIDENT_FACTORY.createVehicleRelatedRestriction();
+ RestrictionType restrictionType = RestrictionType.get(vehicleRelatedRestrictionStruct.restrictionType);
+ vehicleRelatedRestriction.setRestrictionType(restrictionType);
+ LOGGER.info("restrictionType = " + restrictionType + " = " + restrictionType.getValue());
+
+ if (vehicleRelatedRestrictionStruct.restrictionValue.size() == 1) {
+ vehicleRelatedRestriction.setRestrictionValue(vehicleRelatedRestrictionStruct.restrictionValue.get(0));
+ LOGGER.info("restrictionValue = " + vehicleRelatedRestriction.getRestrictionValue());
+ } else if (vehicleRelatedRestrictionStruct.restrictionValue.size() == 0) {
+ LOGGER.info("No restrictionValue");
+ } else {
+ throw new RuntimeException("Illegal size of restrictionValue: " + vehicleRelatedRestrictionStruct.restrictionValue);
+ }
+
+ if (vehicleRelatedRestrictionStruct.restrictionLocationReference.size() == 1) {
+ LocationReference restrictionLocationReference = locationReferenceStructToLocationReference(vehicleRelatedRestrictionStruct.restrictionLocationReference.get(0));
+ vehicleRelatedRestriction.setRestrictionLocationReference(restrictionLocationReference);
+ } else if (vehicleRelatedRestrictionStruct.restrictionLocationReference.size() == 0) {
+ // No action
+ } else {
+ throw new RuntimeException("Illegal size for restrictionLocation: " + vehicleRelatedRestrictionStruct.restrictionLocationReference.size());
+ }
+ LOGGER.info("RestrictionLocation is handled");
+
+ LOGGER.info("vehicleRelatedRestrictionStructToVehicleRelatedRestriction() <= " + vehicleRelatedRestriction);
+ return vehicleRelatedRestriction;
+ }
+
+ public static VehicleRelatedRestrictionStruct vehicleRelatedRestrictionToVehicleRelatedRestrictionStruct(VehicleRelatedRestriction vehicleRelatedRestriction) {
+ Byte restrictionType = (Byte) (byte) vehicleRelatedRestriction.getRestrictionType().getValue();
+
+ List<Integer> restrictionValues = new ArrayList<>();
+ if (vehicleRelatedRestriction.getRestrictionValue() != null) {
+ Integer restrictionValue = vehicleRelatedRestriction.getRestrictionValue();
+ restrictionValues.add(restrictionValue);
+ }
+
+ List<LocationReferenceStruct> restrictionLocationReferences = new ArrayList<>();
+ if (vehicleRelatedRestriction.isSetRestrictionLocationReference()) {
+ LocationReferenceStruct locationReferenceStruct = locationReferenceToLocationReferenceStruct(vehicleRelatedRestriction.getRestrictionLocationReference());
+ restrictionLocationReferences.add(locationReferenceStruct);
+ }
+
+ VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct = new VehicleRelatedRestrictionStruct(
+ restrictionType, restrictionValues, restrictionLocationReferences);
+
+ return vehicleRelatedRestrictionStruct;
+ }
+
+ public static LaneRestrictions laneRestrictionsStructToLaneRestrictions(LaneRestrictionsStruct laneRestrictionsStruct) {
+ LaneRestrictions laneRestrictions = TRAFFIC_INCIDENT_FACTORY.createLaneRestrictions();
+
+ if (laneRestrictionsStruct.laneRestrictionType != 0 ) {
+ LaneRestrictionType laneRestrictionType = LaneRestrictionType.get(laneRestrictionsStruct.laneRestrictionType);
+ laneRestrictions.setLaneRestrictionType(laneRestrictionType);
+ }
+
+ if (laneRestrictionsStruct.numberOfLanes != -1) {
+ laneRestrictions.setNumberOfLanes(laneRestrictionsStruct.numberOfLanes);
+ }
+
+ return laneRestrictions;
+ }
+
+ public static LaneRestrictionsStruct laneRestrictionsToLaneRestrictionsStruct(LaneRestrictions laneRestrictions) {
+ Byte laneRestrictionType = 0;
+ if (laneRestrictions.getLaneRestrictionType() != null) {
+ laneRestrictionType = (Byte) (byte) laneRestrictions.getLaneRestrictionType().getValue();
+ }
+
+ int numberOfLanes = -1;
+ if (laneRestrictions.getNumberOfLanes() != null) {
+ numberOfLanes= laneRestrictions.getNumberOfLanes();
+ }
+
+ LaneRestrictionsStruct laneRestrictionsStruct = new LaneRestrictionsStruct(
+ laneRestrictionType,
+ numberOfLanes);
+
+ return laneRestrictionsStruct;
+ }
+
+ public static LocalizedString localizedStringStructToLocalizedString(LocalizedStringStruct localizedStringStruct) {
+ LocalizedString localizedString = COMMON_FACTORY.createLocalizedString();
+
+ localizedString.setLanguageCode(localizedStringStruct.languageCode);
+ if (!localizedStringStruct.countryCode.isEmpty()) {
+ localizedString.setCountryCode(localizedStringStruct.countryCode);
+ }
+ localizedString.setString(localizedStringStruct.string);
+
+ return localizedString;
+ }
+
+ public static LocalizedStringStruct localizedStringToLocalizedStringStruct(LocalizedString localizedString) {
+ String languageCode = localizedString.getLanguageCode();
+ if (languageCode == null) {
+ throw new IllegalArgumentException("languageCode may not be null");
+ }
+ String countryCode = localizedString.getCountryCode();
+ if (countryCode == null) {
+ countryCode = "";
+ }
+ String string = localizedString.getString();
+ if (string == null) {
+ throw new IllegalArgumentException("string may not be null");
+ }
+
+ LocalizedStringStruct localizedStringStruct = new LocalizedStringStruct(
+ languageCode, countryCode, string);
+
+ return localizedStringStruct;
+ }
+
+ public static FeedInformation feedInformationStructToFeedInformation(FeedInformationStruct feedInformationStruct) {
+ FeedInformation feedInformation = TRAFFIC_INCIDENTS_SVC_FACTORY.createFeedInformation();
+
+ if (!feedInformationStruct.dataProviderName.isEmpty()) {
+ feedInformation.setDataProviderName(feedInformationStruct.dataProviderName);
+ }
+
+ if (!feedInformationStruct.protocolName.isEmpty()) {
+ feedInformation.setProtocolName(feedInformationStruct.protocolName);
+ }
+
+ if (!feedInformationStruct.communicationChannelName.isEmpty()) {
+ feedInformation.setCommunicationChannelName(feedInformationStruct.communicationChannelName);
+ }
+
+ if (feedInformationStruct.feedStatus != 0) {
+ TrafficIncidentFeedStatus trafficIncidentFeedStatus = TrafficIncidentFeedStatus.get(feedInformationStruct.feedStatus);
+ feedInformation.setFeedStatus(trafficIncidentFeedStatus);
+ }
+
+ if (feedInformationStruct.trafficIncidentsStatus != 0) {
+ TrafficIncidentsStatus trafficIncidentsStatus = TrafficIncidentsStatus.get(feedInformationStruct.trafficIncidentsStatus);
+ feedInformation.setTrafficIncidentsStatus(trafficIncidentsStatus);
+ }
+
+ return feedInformation;
+ }
+
+ public static FeedInformationStruct feedInformationToFeedInformationStruct(FeedInformation feedInformation) {
+ String dataProviderName = feedInformation.getDataProviderName();
+ if (dataProviderName == null) {
+ dataProviderName = "";
+ }
+
+ String protocolName = feedInformation.getProtocolName();
+ if (protocolName == null) {
+ protocolName = "";
+ }
+
+ String communicationChannelName = feedInformation.getCommunicationChannelName();
+ if (communicationChannelName == null) {
+ communicationChannelName = "";
+ }
+
+ TrafficIncidentFeedStatus feedStatus = feedInformation.getFeedStatus();
+ Byte feedStatusId;
+ if (feedStatus != null) {
+ feedStatusId = (Byte) (byte) feedStatus.getValue();
+ } else {
+ feedStatusId = 0;
+ }
+
+ TrafficIncidentsStatus trafficIncidentsStatus = feedInformation.getTrafficIncidentsStatus();
+ Byte trafficIncidentsStatusId;
+ if (trafficIncidentsStatus != null) {
+ trafficIncidentsStatusId = (Byte) (byte) trafficIncidentsStatus.getValue();
+ } else {
+ trafficIncidentsStatusId = 0;
+ }
+
+ FeedInformationStruct feedInformationStruct = new FeedInformationStruct(
+ dataProviderName, protocolName, communicationChannelName,
+ feedStatusId, trafficIncidentsStatusId);
+
+ return feedInformationStruct;
+ }
+
+ private static LocationReference locationReferenceStructToLocationReference(LocationReferenceStruct locationReferenceStruct) {
+ LOGGER.info("locationReferenceStructToLocationReference =>");
+ LocationReference locationReference = LOCATION_REFERENCE_FACTORY.createLocationReference();
+
+ locationReference.setLocationReferenceType(locationReferenceStruct.locationReferenceType);
+ locationReference.setData(locationReferenceStruct.data);
+
+ LOGGER.info("locationReferenceStructToLocationReference <=");
+ return locationReference;
+ }
+
+ private static LocationReferenceStruct locationReferenceToLocationReferenceStruct(LocationReference locationReference) {
+ Byte locationReferenceType = 0;
+ if (locationReference.isSetLocationReferenceType()) {
+ locationReferenceType = (Byte) (byte) locationReference.getLocationReferenceType();
+ }
+
+ byte[] data;
+ if (locationReference.isSetData()) {
+ data = (byte[]) locationReference.getData();
+ } else {
+ data = new byte[0];
+ }
+
+ LocationReferenceStruct locationReferenceStruct = new LocationReferenceStruct(
+ locationReferenceType,
+ data
+ );
+
+ return locationReferenceStruct;
+ }
+
+ private static TemporarySpeedLimit temporarySpeedLimitStructToTemporarySpeedLimit(TemporarySpeedLimitStruct temporarySpeedLimitStruct) {
+ LOGGER.info("temporarySpeedLimitStructToTemporarySpeedLimit() => " + temporarySpeedLimitStruct);
+ TemporarySpeedLimit temporarySpeedLimit = TRAFFIC_INCIDENT_FACTORY.createTemporarySpeedLimit();
+
+ temporarySpeedLimit.setUnitsMPH(temporarySpeedLimitStruct.unitsMPH);
+
+ if (temporarySpeedLimitStruct.offset != -1) {
+ temporarySpeedLimit.setOffset(temporarySpeedLimitStruct.offset);
+ }
+
+ for (TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct: temporarySpeedLimitStruct.temporarySpeedLimitSections) {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = temporarySpeedLimitSectionStructToTemporarySpeedLimitSection(temporarySpeedLimitSectionStruct);
+ temporarySpeedLimit.getTemporarySpeedLimitSections().add(temporarySpeedLimitSection);
+ }
+
+ for (ApplicabilityStruct applicabilityStruct: temporarySpeedLimitStruct.applicability) {
+ Applicability applicability = applicabilityStructToApplicability(applicabilityStruct);
+ temporarySpeedLimit.getApplicability().add(applicability);
+ }
+
+ LOGGER.info("temporarySpeedLimitStructToTemporarySpeedLimit() <= " + temporarySpeedLimit);
+ return temporarySpeedLimit;
+ }
+
+ private static TemporarySpeedLimitStruct temporarySpeedLimitToTemporarySpeedLimitStruct(TemporarySpeedLimit temporarySpeedLimit) {
+ Boolean unitsMPH = temporarySpeedLimit.isUnitsMPH();
+
+ Integer offset = -1;
+ if (temporarySpeedLimit.isSetOffset()) {
+ offset = temporarySpeedLimit.getOffset();
+ }
+
+ EList<TemporarySpeedLimitSection> temporarySpeedLimitSections = temporarySpeedLimit.getTemporarySpeedLimitSections();
+ List<TemporarySpeedLimitSectionStruct> temporarySpeedLimitSectionStructs = new ArrayList<>();
+ for (int i = 0; i < temporarySpeedLimitSections.size(); i++) {
+ TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct = temporarySpeedLimitSectionToTemporarySpeedLimitSectionStruct(temporarySpeedLimitSections.get(i));
+ temporarySpeedLimitSectionStructs.add(temporarySpeedLimitSectionStruct);
+ }
+
+ EList<Applicability> applicabilities = temporarySpeedLimit.getApplicability();
+ List<ApplicabilityStruct> applicabilityStructs = new ArrayList<>();
+ for (int i = 0; i < applicabilities.size(); i++) {
+ ApplicabilityStruct applicabilityStruct = applicabilityToApplicabilityStruct(applicabilities.get(i));
+ applicabilityStructs.add(applicabilityStruct);
+ }
+
+ TemporarySpeedLimitStruct temporarySpeedLimitStruct = new TemporarySpeedLimitStruct(
+ unitsMPH,
+ offset,
+ temporarySpeedLimitSectionStructs,
+ applicabilityStructs
+ );
+
+ return temporarySpeedLimitStruct;
+ }
+
+ private static TemporarySpeedLimitSection temporarySpeedLimitSectionStructToTemporarySpeedLimitSection(TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct) {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = TRAFFIC_INCIDENT_FACTORY.createTemporarySpeedLimitSection();
+
+ if (temporarySpeedLimitSectionStruct.speedLimitValue != -1) {
+ temporarySpeedLimitSection.setSpeedLimitValue(temporarySpeedLimitSectionStruct.speedLimitValue);
+ }
+
+ if (temporarySpeedLimitSectionStruct.speedLimitValueWet != -1) {
+ temporarySpeedLimitSection.setSpeedLimitValueWet(temporarySpeedLimitSectionStruct.speedLimitValueWet);
+ }
+
+ if (temporarySpeedLimitSectionStruct.speedLimitLength != -1) {
+ temporarySpeedLimitSection.setSpeedLimitLength(temporarySpeedLimitSectionStruct.speedLimitLength);
+ }
+
+ return temporarySpeedLimitSection;
+ }
+
+ private static TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionToTemporarySpeedLimitSectionStruct(TemporarySpeedLimitSection temporarySpeedLimitSection) {
+ Short speedLimitValue = -1;
+ if (temporarySpeedLimitSection.isSetSpeedLimitValue()) {
+ speedLimitValue = temporarySpeedLimitSection.getSpeedLimitValue();
+ }
+
+ Short speedLimitValueWet = -1;
+ if (temporarySpeedLimitSection.isSetSpeedLimitValueWet()) {
+ speedLimitValueWet = temporarySpeedLimitSection.getSpeedLimitValueWet();
+ }
+
+ Integer speedLimitLength = -1;
+ if (temporarySpeedLimitSection.isSetSpeedLimitLength()) {
+ speedLimitLength = temporarySpeedLimitSection.getSpeedLimitLength();
+ }
+
+ TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct = new TemporarySpeedLimitSectionStruct(
+ speedLimitValue,
+ speedLimitValueWet,
+ speedLimitLength
+ );
+
+ return temporarySpeedLimitSectionStruct;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentFeedDBusProxy.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentFeedDBusProxy.java
new file mode 100755
index 0000000..8509275
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentFeedDBusProxy.java
@@ -0,0 +1,319 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.freedesktop.dbus.CallbackHandler;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.genivi.common.Version;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TrafficIncidentStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TrafficIncidentFeedDBus;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.VersionStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TwoTuple;
+
+public class TrafficIncidentFeedDBusProxy extends EObjectImpl implements TrafficIncidentFeed {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentFeedDBusProxy.class.getName());
+
+ private DBusConnection conn;
+ private TrafficIncidentFeedDBus trafficIncidentFeedDBus;
+
+ private Map<CallbackHandler<?>, TrafficIncidentFeedListener> callsInProgress = new HashMap<>();
+ private List<TrafficIncidentFeedListener> languageChangedListeners = new ArrayList<>();
+
+ public TrafficIncidentFeedDBusProxy(DBusConnection conn, TrafficIncidentFeedDBus trafficIncidentFeedDBus) {
+ super();
+ this.conn = conn;
+ this.trafficIncidentFeedDBus = trafficIncidentFeedDBus;
+ LOGGER.setLevel(Level.SEVERE);
+
+ try {
+ conn.addSigHandler(TrafficIncidentFeedDBus.LanguageChanged.class, new LanguageChangedSignalHandler());
+ } catch (DBusException e) {
+ LOGGER.severe("Failed to install signal handler for LanguageChanged");
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void getVersion(TrafficIncidentFeedListener listener) {
+ LOGGER.info("getVersion => listener = " + listener);
+
+ CallbackHandler<VersionStruct> callbackHandler = new CallbackHandler<VersionStruct>() {
+ @Override
+ public void handle(VersionStruct versionStruct) {
+ LOGGER.info("getVersion:handle => versionStruct " + versionStruct);
+ TrafficIncidentFeedListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ Version version = StructUtil.versionStructToVersion(versionStruct);
+
+ LOGGER.info("version = " + version);
+
+ listener.getVersionReply(version);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentFeedDBus, "GetVersion", callbackHandler);
+
+ LOGGER.info("getVersion <=");
+ }
+
+ @Override
+ public void getLanguage(TrafficIncidentFeedListener listener) {
+ LOGGER.info("getLanguage => listener = " + listener);
+
+ CallbackHandler<TwoTuple<String, String>> callbackHandler = new CallbackHandler<TwoTuple<String, String>>() {
+ @Override
+ public void handle(TwoTuple<String, String> languageTuple) {
+ LOGGER.info("getLanguage:handle => languageTuple = " + languageTuple);
+ TrafficIncidentFeedListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ String languageCode = languageTuple.a;
+ String countryCode = languageTuple.b;
+ if (countryCode.isEmpty()) {
+ countryCode = null;
+ }
+ LOGGER.info("languageCode = " + languageCode + ", countryCode = " + countryCode);
+
+ listener.getLanguageReply(languageCode, countryCode);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentFeedDBus, "GetLanguage", callbackHandler);
+
+ LOGGER.info("getLanguage <=");
+ }
+
+ @Override
+ public void addLanguageListener(
+ TrafficIncidentFeedListener listener, TrafficIncidentFeedListener languageChangedListener) {
+ LOGGER.info("addLanguageListener => listener = " + listener + ", languageChangedListener = " + languageChangedListener);
+
+ languageChangedListeners.add(languageChangedListener);
+
+ if (languageChangedListeners.size() == 1) {
+ // First listener added, so notify the TrafficIncidentsService that we are listening.
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addLanguageListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentFeedListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addLanguageListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentFeedDBus, "AddLanguageListener", callbackHandler);
+ } else {
+ conn.callMethodAsync(trafficIncidentFeedDBus, "AddLanguageListener");
+ }
+ } else {
+ if (listener != null) {
+ listener.addLanguageListenerReply();
+ }
+ }
+
+ LOGGER.info("addLanguageListener <=");
+ }
+
+ @Override
+ public void removeLanguageListener(TrafficIncidentFeedListener listener, TrafficIncidentFeedListener languageChangedListener) {
+ LOGGER.info("removeLanguageListener => listener = " + listener + ", languageChangedListener = " + languageChangedListener);
+
+ languageChangedListeners.remove(languageChangedListener);
+
+ if (languageChangedListeners.isEmpty()) {
+ // Last listener removed, so notify the TrafficIncidentsService that we are no longer listening.
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeLanguageListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentFeedListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeLanguageListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentFeedDBus, "RemoveLanguageListener", callbackHandler);
+ } else {
+ conn.callMethodAsync(trafficIncidentFeedDBus, "RemoveLanguageListener");
+ }
+ } else {
+ if (listener != null) {
+ listener.removeLanguageListenerReply();
+ }
+ }
+
+ LOGGER.fine("removeLanguageListener <=");
+ }
+
+ @Override
+ public void clear() {
+ LOGGER.info("clear =>");
+
+ conn.callMethodAsync(trafficIncidentFeedDBus, "Clear");
+
+ LOGGER.info("clear <=");
+ }
+
+ @Override
+ public void updateIncidents(int feedId, EList<String> cancelledIncidentIds,
+ EList<TrafficIncident> updatedIncidents) {
+ LOGGER.info("updateIncidents => feedId = " + feedId + ", cancelledIncidentIds = " + cancelledIncidentIds + ", updatedIncidents = " + updatedIncidents);
+
+ UInt32 feedIdUInt32 = new UInt32(feedId);
+ List<TrafficIncidentStruct> updatedIncidentStructs = new ArrayList<>();
+ for (TrafficIncident managedTrafficIncident: updatedIncidents) {
+ TrafficIncidentStruct managedTrafficIncidentStruct = StructUtil.trafficIncidentToTrafficIncidentStruct(managedTrafficIncident);
+ updatedIncidentStructs.add(managedTrafficIncidentStruct);
+ LOGGER.info("updateIncidents, added incident = " + managedTrafficIncidentStruct);
+ }
+ conn.callMethodAsync(trafficIncidentFeedDBus, "UpdateIncidents", feedIdUInt32, cancelledIncidentIds,
+ updatedIncidentStructs);
+
+ LOGGER.info("updateIncidents <=");
+ }
+
+ @Override
+ public void updateStatus(int feedId, TrafficIncidentFeedStatus feedStatus,
+ TrafficIncidentsStatus incidentsStatus) {
+ LOGGER.info("updateStatus => feedId = " + feedId + ", feedStatus = " + feedStatus + ", incidentsStatus = " + incidentsStatus);
+
+ UInt32 feedIdUInt32 = new UInt32(feedId);
+ Integer feedStatusValue = feedStatus.getValue();
+ Integer incidentsStatusValue = incidentsStatus.getValue();
+ conn.callMethodAsync(trafficIncidentFeedDBus, "UpdateStatus", feedIdUInt32, feedStatusValue,
+ incidentsStatusValue);
+
+ LOGGER.info("updateStatus <=");
+ }
+
+ @Override
+ public void registerFeed(TrafficIncidentFeedListener listener,
+ String dataProviderName, String protocolName,
+ String communicationChannelName) {
+ LOGGER.info("registerFeed => listener = " + listener + ", dataProviderName = " + dataProviderName +
+ ", protocolName = " + protocolName +
+ ", communicationChannelName = " + communicationChannelName);
+
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer feedId) {
+ LOGGER.info("registerFeed:handle => feedId " + feedId);
+ TrafficIncidentFeedListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.registerFeedReply(feedId);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+
+ conn.callWithCallback(trafficIncidentFeedDBus, "RegisterFeed", callbackHandler, dataProviderName, protocolName,
+ communicationChannelName);
+
+ LOGGER.info("registerFeed <=");
+ }
+
+
+ class LanguageChangedSignalHandler implements DBusSigHandler<TrafficIncidentFeedDBus.LanguageChanged> {
+ public void handle(TrafficIncidentFeedDBus.LanguageChanged languageChanged) {
+ LOGGER.info("LanguageChangedSignalHandler => path = " + languageChanged.getPath());
+
+ String languageCode = null;
+ if (!languageChanged.languageCode.isEmpty()) {
+ languageCode = languageChanged.languageCode;
+ }
+
+ String countryCode = null;
+ if (!languageChanged.countryCode.isEmpty()) {
+ countryCode = languageChanged.countryCode;
+ }
+
+ if (languageChangedListeners.isEmpty()) {
+ LOGGER.info("No listener registered");
+ } else {
+ for (TrafficIncidentFeedListener listener: languageChangedListeners) {
+ LOGGER.info("Calling getLanguageReply: languageCode = " + languageCode + ", countryCode = " + countryCode);
+ listener.getLanguageReply(languageCode, countryCode);
+ }
+ }
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentsUpdatesAdaptor.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentsUpdatesAdaptor.java
new file mode 100755
index 0000000..7b52098
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidentfeed/dbus/impl/TrafficIncidentsUpdatesAdaptor.java
@@ -0,0 +1,363 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.AbstractConnection;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.common.Version;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsUpdatesListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TrafficIncidentStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TrafficIncidentFeedDBus;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.VersionStruct;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TwoTuple;
+
+public class TrafficIncidentsUpdatesAdaptor implements TrafficIncidentFeedDBus {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsUpdatesAdaptor.class.getName());
+
+ private DBusConnection conn;
+ private TrafficIncidentFeed trafficIncidentsService;
+ private List<String> languageChangedListeners = new ArrayList<>();
+ private TrafficIncidentFeedListener languageChangedListener = null;
+
+ private PendingReplyGetLanguage pendingReplyGetLanguage;
+ private PendingReply pendingReplyAddLanguageListener;
+ private PendingReply pendingReplyRemoveLanguageListener;
+ private PendingReplyGetVersion pendingReplyGetVersion;
+ private PendingReplyRegisterFeed pendingReplyRegisterFeed;
+
+
+ public TrafficIncidentsUpdatesAdaptor(DBusConnection conn, TrafficIncidentFeed trafficIncidentsService) {
+ this.conn = conn;
+ this.trafficIncidentsService = trafficIncidentsService;
+
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+@Override
+ public boolean isRemote() {
+ return false;
+ }
+
+ @Override
+ public VersionStruct GetVersion() {
+ LOGGER.info("getVersion =>");
+ TrafficIncidentFeedListener listener = new DefaultTrafficIncidentsUpdatesListener() {
+
+ @Override
+ public void getVersionReply(Version trafficIncidentsVersion) {
+ LOGGER.info("getVersionReply => trafficIncidentsVersion = " + trafficIncidentsVersion);
+ pendingReplyGetVersion.setVersion(trafficIncidentsVersion);
+ pendingReplyGetVersion.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetVersion = new PendingReplyGetVersion(listener);
+
+ trafficIncidentsService.getVersion(listener);
+
+ while (!pendingReplyGetVersion.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getVersion - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("getVersion: reply received");
+ Version version = pendingReplyGetVersion.getVersion();
+ LOGGER.info("getVersion: version = " + version);
+ VersionStruct versionStruct = StructUtil.versionToVersionStruct(version);
+
+ LOGGER.info("getVersion <= versionStruct = " + versionStruct);
+ return versionStruct;
+ }
+
+ @Override
+ public TwoTuple<String, String> GetLanguage() {
+ LOGGER.info("getLanguage =>");
+ TrafficIncidentFeedListener listener = new DefaultTrafficIncidentsUpdatesListener() {
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ LOGGER.info("getLanguageReply => languageCode = " + languageCode + ", countryCode = " + countryCode);
+ pendingReplyGetLanguage.setLanguageCode(languageCode);
+ pendingReplyGetLanguage.setCountryCode(countryCode);
+ pendingReplyGetLanguage.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetLanguage = new PendingReplyGetLanguage(listener);
+
+ trafficIncidentsService.getLanguage(listener);
+
+ while (!pendingReplyGetLanguage.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getLanguage - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ String countryCode = pendingReplyGetLanguage.getCountryCode();
+ if (countryCode == null) {
+ countryCode = "";
+ }
+ TwoTuple<String, String> language = new TwoTuple<>(
+ pendingReplyGetLanguage.getLanguageCode(),
+ countryCode);
+ LOGGER.info("getLanguage <= language = " + language.a + ", " + language.b);
+ return language;
+ }
+
+ @Override
+ public void AddLanguageListener() {
+ LOGGER.info("addLanguageListener =>");
+
+ String sender = AbstractConnection.currentSender;
+ if (!languageChangedListeners.contains(sender)) {
+ languageChangedListeners.add(sender);
+ }
+
+ if (languageChangedListener == null) {
+ languageChangedListener = new DefaultTrafficIncidentsUpdatesListener() {
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ LOGGER.info("getLanguageReply: " + languageCode + ", " + countryCode);
+ sendLanguageChangedSignal(languageCode, countryCode);
+ }
+ };
+
+ TrafficIncidentFeedListener listener = new DefaultTrafficIncidentsUpdatesListener() {
+
+ @Override
+ public void addLanguageListenerReply() {
+ LOGGER.info("addLanguageListenerReply =>");
+ pendingReplyAddLanguageListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddLanguageListener = new PendingReply(listener);
+
+ trafficIncidentsService.addLanguageListener(listener, languageChangedListener);
+
+ while (!pendingReplyAddLanguageListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("pendingReplyAddLanguageListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ LOGGER.info("addLanguageListener <=");
+ }
+
+ @Override
+ public void RemoveLanguageListener() {
+ LOGGER.info("removeLanguageListener =>");
+
+ String sender = AbstractConnection.currentSender;
+ languageChangedListeners.remove(sender);
+
+ if (languageChangedListeners.isEmpty()) {
+ TrafficIncidentFeedListener listener = new DefaultTrafficIncidentsUpdatesListener() {
+
+ @Override
+ public void removeLanguageListenerReply() {
+ LOGGER.info("removeLanguageListenerReply =>");
+ languageChangedListener = null;
+ pendingReplyRemoveLanguageListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyRemoveLanguageListener = new PendingReply(listener);
+
+ trafficIncidentsService.removeLanguageListener(listener, languageChangedListener);
+
+ while (!pendingReplyRemoveLanguageListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeLanguageListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ LOGGER.info("removeLanguageListener <=");
+ }
+
+ @Override
+ public Integer RegisterFeed(String dataProviderName, String protocolName,
+ String communicationChannelName) {
+ LOGGER.info("registerFeed => dataProviderName = " + dataProviderName +
+ ", protocolName = " + protocolName + ", communicationChannelName = " + communicationChannelName);
+ TrafficIncidentFeedListener listener = new DefaultTrafficIncidentsUpdatesListener() {
+
+ @Override
+ public void registerFeedReply(int feedId) {
+ LOGGER.info("registerFeedReply => feedId = " + feedId);
+ pendingReplyRegisterFeed.setFeedId(feedId);
+ pendingReplyRegisterFeed.setReplyReceived(true);
+ }
+ };
+ pendingReplyRegisterFeed = new PendingReplyRegisterFeed(listener);
+
+ trafficIncidentsService.registerFeed(listener, dataProviderName, protocolName, communicationChannelName);
+
+ while (!pendingReplyRegisterFeed.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("registerFeed - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ Integer feedId = pendingReplyRegisterFeed.getFeedId();
+
+ LOGGER.info("registerFeed <= feedId = " + feedId);
+ return feedId;
+ }
+
+ @Override
+ public void Clear() {
+ LOGGER.info("clear =>");
+ trafficIncidentsService.clear();
+
+ LOGGER.info("clear <=");
+ }
+
+ @Override
+ public void UpdateIncidents(Integer feedId, List<String> cancelledIncidentIds,
+ List<TrafficIncidentStruct> updatedIncidentStructs) {
+ LOGGER.info("updateIncidents => feedId = " + feedId + ", cancelledIncidentIds = " +
+ cancelledIncidentIds + ", updatedIncidentStructs = " + updatedIncidentStructs);
+ EList<String> cancelledIncidentIdsEList = new BasicEList<>(cancelledIncidentIds);
+
+ EList<TrafficIncident> updatedIncidents = new BasicEList<>();
+ for (TrafficIncidentStruct managedTrafficIncidentStruct: updatedIncidentStructs) {
+ TrafficIncident managedTrafficIncident = StructUtil.trafficIncidentStructToTrafficIncident(managedTrafficIncidentStruct);
+ updatedIncidents.add(managedTrafficIncident);
+ }
+ LOGGER.info("Calling service feedId = " + feedId + ", cancelledIncidentIdsEList = " +
+ cancelledIncidentIdsEList + ", updatedIncidents = " + updatedIncidents);
+ trafficIncidentsService.updateIncidents(feedId, cancelledIncidentIdsEList, updatedIncidents);
+
+ LOGGER.info("updateIncidents <=");
+ }
+
+ @Override
+ public void UpdateStatus(Integer feedId, Byte feedStatusId,
+ Byte incidentsStatusId) {
+ LOGGER.info("updateStatus => feedId = " + feedId +
+ ", feedStatusId = " + feedStatusId + ", incidentsStatusId = " + incidentsStatusId);
+
+ TrafficIncidentFeedStatus feedStatus = TrafficIncidentFeedStatus.get(feedStatusId);
+ TrafficIncidentsStatus incidentsStatus = TrafficIncidentsStatus.get(incidentsStatusId);
+
+ trafficIncidentsService.updateStatus(feedId, feedStatus, incidentsStatus);
+ LOGGER.info("updateStatus <=");
+ }
+
+ private void sendLanguageChangedSignal(String languageCode, String countryCode) {
+ LOGGER.info("going to send LanguageChanged signal");
+
+ try {
+ conn.sendSignal(new TrafficIncidentFeedDBus.LanguageChanged("/trafficincidentfeed", languageCode, countryCode));
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public class PendingReply {
+ private boolean replyReceived = false;
+ private TrafficIncidentFeedListener listener;
+
+ public PendingReply(TrafficIncidentFeedListener listener) {
+ this.listener = listener;
+ }
+
+ public boolean isReplyReceived() {
+ return replyReceived;
+ }
+
+ public void setReplyReceived(boolean replyReceived) {
+ this.replyReceived = replyReceived;
+ }
+
+ public TrafficIncidentFeedListener getListener() {
+ return listener;
+ }
+ }
+
+ class PendingReplyGetVersion extends PendingReply {
+ private Version version;
+
+ public PendingReplyGetVersion(TrafficIncidentFeedListener listener) {
+ super(listener);
+ }
+
+ public Version getVersion() {
+ return version;
+ }
+
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+ }
+
+ class PendingReplyGetLanguage extends PendingReply {
+ private String languageCode;
+ private String countryCode;
+
+ public PendingReplyGetLanguage(TrafficIncidentFeedListener listener) {
+ super(listener);
+ }
+
+ public String getLanguageCode() {
+ return languageCode;
+ }
+
+ public void setLanguageCode(String languageCode) {
+ this.languageCode = languageCode;
+ }
+
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ public void setCountryCode(String countryCode) {
+ this.countryCode = countryCode;
+ }
+ }
+
+ class PendingReplyRegisterFeed extends PendingReply {
+ private Integer feedId;
+
+ public PendingReplyRegisterFeed(TrafficIncidentFeedListener listener) {
+ super(listener);
+ }
+
+ public Integer getFeedId() {
+ return feedId;
+ }
+
+ public void setFeedId(Integer feedId) {
+ this.feedId = feedId;
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AdviceStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AdviceStruct.java
new file mode 100755
index 0000000..e744902
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AdviceStruct.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class AdviceStruct extends Struct {
+ @Position(0)
+ public final Byte mainAdvice; // AdviceCode
+
+ @Position(1)
+ public final Byte subAdvice;
+
+ @Position(2)
+ public final String freeText;
+
+ @Position(3)
+ public final List<ApplicabilityStruct> applicability;
+
+ public AdviceStruct(Byte mainAdvice, Byte subAdvice,
+ String freeText, List<ApplicabilityStruct> applicability) {
+ super();
+ this.mainAdvice = mainAdvice;
+ this.subAdvice = subAdvice;
+ this.freeText = freeText;
+ this.applicability = applicability;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/ApplicabilityStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/ApplicabilityStruct.java
new file mode 100755
index 0000000..75a65a8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/ApplicabilityStruct.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class ApplicabilityStruct extends Struct {
+ @Position(0)
+ public final Byte vehicleType; // VehicleType
+
+ @Position(1)
+ public final List<VehicleRelatedRestrictionStruct> vehicleRelatedRestrictions;
+
+ public ApplicabilityStruct(Byte vehicleType,
+ List<VehicleRelatedRestrictionStruct> vehicleRelatedRestrictions) {
+ super();
+ this.vehicleType = vehicleType;
+ this.vehicleRelatedRestrictions = vehicleRelatedRestrictions;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationInfoStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationInfoStruct.java
new file mode 100755
index 0000000..f75570e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationInfoStruct.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+
+public class AreaLocationInfoStruct extends LocationInfoStruct {
+ @Position(0)
+ public final String name;
+
+ @Position(1)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<CoordinateStruct> mainLocation;
+
+ public AreaLocationInfoStruct(String name, List<CoordinateStruct> mainLocation) {
+ super();
+ this.name = name;
+ this.mainLocation = mainLocation;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationStruct.java
new file mode 100755
index 0000000..3bff33b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/AreaLocationStruct.java
@@ -0,0 +1,12 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+public class AreaLocationStruct extends LocationStruct {
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CategoryDefinitionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CategoryDefinitionStruct.java
new file mode 100755
index 0000000..ff7d491
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CategoryDefinitionStruct.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class CategoryDefinitionStruct extends Struct {
+ @Position(0)
+ public final List<LocalizedStringStruct> localizedNames;
+
+ @Position(1)
+ public final int categoryId;
+
+ @Position(2)
+ public final List<IconInfoStruct> icons;
+
+ @Position(3)
+ public final String expression;
+
+ public CategoryDefinitionStruct(
+ List<LocalizedStringStruct> localizedNames,
+ int categoryId,
+ List<IconInfoStruct> icons,
+ String expression) {
+ super();
+ this.localizedNames = localizedNames;
+ this.categoryId = categoryId;
+ this.icons = icons;
+ this.expression = expression;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseDiscriminatedVariant.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseDiscriminatedVariant.java
new file mode 100755
index 0000000..ced2914
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseDiscriminatedVariant.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.Variant;
+
+public class CauseDiscriminatedVariant extends Struct {
+ @Position(0)
+ public final Byte causeType;
+
+ @Position(1)
+ public final Variant<? extends CauseStruct> cause;
+
+ public CauseDiscriminatedVariant(
+ Byte causeType,
+ Variant<? extends CauseStruct> cause
+ ) {
+ super();
+ this.causeType = causeType;
+ this.cause = cause;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseStruct.java
new file mode 100755
index 0000000..074c3d8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseStruct.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Struct;
+
+public class CauseStruct extends Struct {
+ public CauseStruct() {
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseType.java
new file mode 100755
index 0000000..462fb8a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CauseType.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+public enum CauseType {
+ DIRECT((byte) 1),
+ LINKED((byte) 2);
+
+ private Byte value;
+
+ CauseType(Byte value) {
+ this.value = value;
+ }
+
+ public Byte getValue() {
+ return value;
+ }
+
+ public static CauseType getCauseType(Byte value) {
+ for (CauseType causeType: values()) {
+ if (causeType.value == value) {
+ return causeType;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CoordinateStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CoordinateStruct.java
new file mode 100755
index 0000000..694b059
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/CoordinateStruct.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class CoordinateStruct extends Struct {
+ @Position(0)
+ public final Double latitude;
+
+ @Position(1)
+ public final Double longitude;
+
+ @Position(2)
+ public final int altitude;
+
+ public CoordinateStruct(Double latitude, Double longitude, int altitude) {
+ super();
+ this.latitude = latitude;
+ this.longitude = longitude;
+ this.altitude = altitude;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/DirectCauseStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/DirectCauseStruct.java
new file mode 100755
index 0000000..4a7ed9a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/DirectCauseStruct.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+
+public class DirectCauseStruct extends CauseStruct {
+ @Position(0)
+ public final Byte mainCause;
+
+ @Position(1)
+ public final Byte warningLevel;
+
+ @Position(2)
+ public final Boolean unverifiedInformation;
+
+ @Position(3)
+ public final Byte subCause;
+
+ @Position(4)
+ public final Integer lengthAffected;
+
+ @Position(5)
+ public final Integer causeOffset;
+
+ @Position(6)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<LaneRestrictionsStruct> laneRestrictions;
+
+ @Position(7)
+ public final String freeText;
+
+ public DirectCauseStruct(Byte mainCause, Byte warningLevel,
+ Boolean unverifiedInformation, Byte subCause, Integer lengthAffected, Integer causeOffset,
+ List<LaneRestrictionsStruct> laneRestrictions, String freeText) {
+ super();
+ this.mainCause = mainCause;
+ this.warningLevel = warningLevel;
+ this.unverifiedInformation = unverifiedInformation;
+ this.subCause = subCause;
+ this.lengthAffected = lengthAffected;
+ this.causeOffset = causeOffset;
+ this.laneRestrictions = laneRestrictions;
+ this.freeText = freeText;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/FeedInformationStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/FeedInformationStruct.java
new file mode 100755
index 0000000..e2e8403
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/FeedInformationStruct.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class FeedInformationStruct extends Struct {
+ @Position(0)
+ public final String dataProviderName;
+
+ @Position(1)
+ public final String protocolName;
+
+ @Position(2)
+ public final String communicationChannelName;
+
+ @Position(3)
+ public final Byte feedStatus;
+
+ @Position(4)
+ public final Byte trafficIncidentsStatus;
+
+ public FeedInformationStruct(String dataProviderName, String protocolName,
+ String communicationChannelName,
+ Byte feedStatus,
+ Byte trafficIncidentsStatus) {
+ super();
+ this.dataProviderName = dataProviderName;
+ this.protocolName = protocolName;
+ this.communicationChannelName = communicationChannelName;
+ this.feedStatus = feedStatus;
+ this.trafficIncidentsStatus = trafficIncidentsStatus;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDataStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDataStruct.java
new file mode 100755
index 0000000..ee6055c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDataStruct.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class IconDataStruct extends Struct {
+ @Position(0)
+ public final byte[] data;
+
+ public IconDataStruct(byte[] data) {
+ super();
+ this.data = data;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDefinitionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDefinitionStruct.java
new file mode 100755
index 0000000..c50ca27
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDefinitionStruct.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class IconDefinitionStruct extends Struct {
+ @Position(0)
+ public final IconInfoStruct iconInfo;
+
+ @Position(1)
+ public final IconDataStruct iconData;
+
+ public IconDefinitionStruct(IconInfoStruct iconInfo, IconDataStruct iconData) {
+ super();
+ this.iconInfo = iconInfo;
+ this.iconData = iconData;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDescriptorStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDescriptorStruct.java
new file mode 100755
index 0000000..7194938
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconDescriptorStruct.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class IconDescriptorStruct extends Struct {
+ @Position(0)
+ public final String url;
+
+ @Position(1)
+ public final int iconId;
+
+ public IconDescriptorStruct(String url, int iconId) {
+ super();
+ this.url = url;
+ this.iconId = iconId;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconInfoStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconInfoStruct.java
new file mode 100755
index 0000000..69543e7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconInfoStruct.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class IconInfoStruct extends Struct {
+ @Position(0)
+ public final int iconSetId;
+
+ @Position(1)
+ public final int iconId;
+
+ public IconInfoStruct(int iconSetId, int iconId) {
+ super();
+ this.iconSetId = iconSetId;
+ this.iconId = iconId;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSetStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSetStruct.java
new file mode 100755
index 0000000..5991407
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSetStruct.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class IconSetStruct extends Struct {
+ @Position(0)
+ public final Integer iconSetId;
+
+ @Position(1)
+ public final Byte colorType; // ColorType
+
+ @Position(2)
+ public final Byte dimension; // IconDimension
+
+ @Position(3)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final IconSizeStruct[] size;
+
+ @Position(4)
+ public final Boolean dayTimeIcon;
+
+ @Position(5)
+ public final Integer themeId;
+
+ @Position(6)
+ public final String mediumType;
+
+ @Position(7)
+ public final IconDescriptorStruct[] iconDescriptors;
+
+ public IconSetStruct(int iconSetId, byte colorType, byte dimension,
+ IconSizeStruct[] size, Boolean dayTimeIcon, int themeId, String mediumType,
+ IconDescriptorStruct[] iconDescriptors) {
+ super();
+ this.iconSetId = iconSetId;
+ this.colorType = colorType;
+ this.dimension = dimension;
+ this.size = size;
+ this.dayTimeIcon = dayTimeIcon;
+ this.themeId = themeId;
+ this.mediumType = mediumType;
+ this.iconDescriptors = iconDescriptors;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSizeStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSizeStruct.java
new file mode 100755
index 0000000..bfb7ab1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/IconSizeStruct.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class IconSizeStruct extends Struct {
+ @Position(0)
+ public final int width;
+
+ @Position(1)
+ public final int height;
+
+ @Position(2)
+ public final int dpi;
+
+ public IconSizeStruct(int width, int height, int dpi) {
+ super();
+ this.width = width;
+ this.height = height;
+ this.dpi = dpi;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LaneRestrictionsStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LaneRestrictionsStruct.java
new file mode 100755
index 0000000..4b8f02c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LaneRestrictionsStruct.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class LaneRestrictionsStruct extends Struct {
+ @Position(0)
+ public final Byte laneRestrictionType; // LaneRestrictionType
+
+ @Position(1)
+ public final Integer numberOfLanes;
+
+ public LaneRestrictionsStruct(Byte laneRestrictionType, int numberOfLanes) {
+ super();
+ this.laneRestrictionType = laneRestrictionType;
+ this.numberOfLanes = numberOfLanes;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationInfoStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationInfoStruct.java
new file mode 100755
index 0000000..d7bb7de
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationInfoStruct.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+
+public class LinearLocationInfoStruct extends LocationInfoStruct {
+ @Position(0)
+ public final String name;
+
+ @Position(1)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<CoordinateStruct> mainLocation;
+
+ @Position(2)
+ public final String fromLocationName;
+
+ @Position(3)
+ public final String fromLocationParentName;
+
+ @Position(4)
+ public final String toLocationName;
+
+ @Position(5)
+ public final String toLocationParentName;
+
+ @Position(6)
+ public final List<CoordinateStruct> coordinates;
+
+ public LinearLocationInfoStruct(String name, List<CoordinateStruct> mainLocation,
+ String fromLocationName, String fromLocationParentName,
+ String toLocationName, String toLocationParentName,
+ List<CoordinateStruct> coordinates) {
+ super();
+ this.name = name;
+ this.mainLocation = mainLocation;
+ this.fromLocationName = fromLocationName;
+ this.fromLocationParentName = fromLocationParentName;
+ this.toLocationName = toLocationName;
+ this.toLocationParentName = toLocationParentName;
+ this.coordinates = coordinates;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationStruct.java
new file mode 100755
index 0000000..b0288fd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinearLocationStruct.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.UInt32;
+
+public class LinearLocationStruct extends LocationStruct {
+ @Position(0)
+ public final List<Long> segments;
+
+ @Position(1)
+ public final UInt32 positiveOffset;
+
+ @Position(2)
+ public final UInt32 negativeOffset;
+
+ public LinearLocationStruct(List<Long> segments, UInt32 positiveOffset,
+ UInt32 negativeOffset) {
+ super();
+ this.segments = segments;
+ this.positiveOffset = positiveOffset;
+ this.negativeOffset = negativeOffset;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinkedCauseStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinkedCauseStruct.java
new file mode 100755
index 0000000..f8e6eba
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LinkedCauseStruct.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+
+public class LinkedCauseStruct extends CauseStruct {
+ @Position(0)
+ public final Byte mainCause;
+
+ @Position(1)
+ public final Integer causeTrafficIncidentId;
+
+ public LinkedCauseStruct(Byte mainCause, Integer causeTrafficIncidentId) {
+ super();
+ this.mainCause = mainCause;
+ this.causeTrafficIncidentId = causeTrafficIncidentId;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocalizedStringStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocalizedStringStruct.java
new file mode 100755
index 0000000..7049b79
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocalizedStringStruct.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class LocalizedStringStruct extends Struct {
+ @Position(0)
+ public final String languageCode;
+
+ @Position(1)
+ public final String countryCode;
+
+ @Position(2)
+ public final String string;
+
+ public LocalizedStringStruct(String languageCode, String countryCode,
+ String string) {
+ super();
+ this.languageCode = languageCode;
+ this.countryCode = countryCode;
+ this.string = string;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationDiscriminatedVariant.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationDiscriminatedVariant.java
new file mode 100755
index 0000000..16d3c5f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationDiscriminatedVariant.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.Variant;
+
+public class LocationDiscriminatedVariant extends Struct {
+ @Position(0)
+ public final Byte locationType;
+
+ @Position(1)
+ public final Variant<? extends LocationStruct> location;
+
+
+ public LocationDiscriminatedVariant(
+ Byte locationType,
+ Variant<? extends LocationStruct> location
+ ) {
+ super();
+ this.locationType = locationType;
+ this.location = location;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoDiscriminatedVariant.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoDiscriminatedVariant.java
new file mode 100755
index 0000000..d677e64
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoDiscriminatedVariant.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.Variant;
+
+public class LocationInfoDiscriminatedVariant extends Struct {
+ public static final Byte LOCATION_INFO_TYPE_POINT = 1;
+ public static final Byte LOCATION_INFO_TYPE_LINEAR = 2;
+ public static final Byte LOCATION_INFO_TYPE_AREA = 3;
+
+ @Position(0)
+ public final Byte locationInfoType;
+
+ @Position(1)
+ public final Variant<? extends LocationInfoStruct> locationInfo;
+
+
+ public LocationInfoDiscriminatedVariant(
+ Byte locationInfoType,
+ Variant<? extends LocationInfoStruct> locationInfo
+ ) {
+ super();
+ this.locationInfoType = locationInfoType;
+ this.locationInfo = locationInfo;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoStruct.java
new file mode 100755
index 0000000..21f4a8b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoStruct.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Struct;
+
+public class LocationInfoStruct extends Struct {
+ public LocationInfoStruct() {
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoType.java
new file mode 100755
index 0000000..70a6a55
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationInfoType.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+public enum LocationInfoType {
+ POINT((byte) 1),
+ LINEAR((byte) 2),
+ AREA((byte) 3);
+
+ private Byte value;
+
+ LocationInfoType(Byte value) {
+ this.value = value;
+ }
+
+ public Byte getValue() {
+ return value;
+ }
+
+ public static LocationInfoType getLocationInfoType(Byte value) {
+ for (LocationInfoType causeType: values()) {
+ if (causeType.value == value) {
+ return causeType;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationStruct.java
new file mode 100755
index 0000000..f58076d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationStruct.java
@@ -0,0 +1,14 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Struct;
+
+public class LocationStruct extends Struct {
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationType.java
new file mode 100755
index 0000000..b37cdaf
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/LocationType.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+public enum LocationType {
+ POINT((byte) 1),
+ LINEAR((byte) 2),
+ AREA((byte) 3);
+
+ private Byte value;
+
+ LocationType(Byte value) {
+ this.value = value;
+ }
+
+ public Byte getValue() {
+ return value;
+ }
+
+ public static LocationType getLocationType(Byte value) {
+ for (LocationType causeType: values()) {
+ if (causeType.value == value) {
+ return causeType;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationInfoStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationInfoStruct.java
new file mode 100755
index 0000000..9262b74
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationInfoStruct.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+
+public class PointLocationInfoStruct extends LocationInfoStruct {
+ @Position(0)
+ public final String name;
+
+ @Position(1)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<CoordinateStruct> mainLocation;
+
+ @Position(2)
+ public final int locationType; // PointLocationType
+
+ public PointLocationInfoStruct(String name, List<CoordinateStruct> mainLocation,
+ int locationType) {
+ super();
+ this.name = name;
+ this.mainLocation = mainLocation;
+ this.locationType = locationType;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationStruct.java
new file mode 100755
index 0000000..5058975
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/PointLocationStruct.java
@@ -0,0 +1,12 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+
+public class PointLocationStruct extends LocationStruct {
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/RectangularAreaStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/RectangularAreaStruct.java
new file mode 100755
index 0000000..16055f4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/RectangularAreaStruct.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class RectangularAreaStruct extends Struct {
+ @Position(0)
+ public final CoordinateStruct bottomLeft;
+
+ @Position(1)
+ public final CoordinateStruct topRight;
+
+ public RectangularAreaStruct(CoordinateStruct bottomLeft,
+ CoordinateStruct topRight) {
+ super();
+ this.bottomLeft = bottomLeft;
+ this.topRight = topRight;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitSectionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitSectionStruct.java
new file mode 100755
index 0000000..d057cbf
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitSectionStruct.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2014 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class TemporarySpeedLimitSectionStruct extends Struct {
+ @Position(0)
+ public final Short speedLimitValue;
+
+ @Position(1)
+ public final Short speedLimitValueWet;
+
+ @Position(2)
+ public final Integer speedLimitLength;
+
+
+ public TemporarySpeedLimitSectionStruct(Short speedLimitValue,
+ Short speedLimitValueWet, Integer speedLimitLength) {
+ super();
+ this.speedLimitValue = speedLimitValue;
+ this.speedLimitValueWet = speedLimitValueWet;
+ this.speedLimitLength = speedLimitLength;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitStruct.java
new file mode 100755
index 0000000..8b9cb38
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TemporarySpeedLimitStruct.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2014 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class TemporarySpeedLimitStruct extends Struct {
+ @Position(0)
+ public final Boolean unitsMPH;
+
+ @Position(1)
+ public final Integer offset;
+
+ @Position(2)
+ public final List<TemporarySpeedLimitSectionStruct> temporarySpeedLimitSections;
+
+ @Position(3)
+ public final List<ApplicabilityStruct> applicability;
+
+
+ public TemporarySpeedLimitStruct(Boolean unitsMPH, Integer offset,
+ List<TemporarySpeedLimitSectionStruct> temporarySpeedLimitSections,
+ List<ApplicabilityStruct> applicability) {
+ super();
+ this.unitsMPH = unitsMPH;
+ this.offset = offset;
+ this.temporarySpeedLimitSections = temporarySpeedLimitSections;
+ this.applicability = applicability;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentStruct.java
new file mode 100755
index 0000000..bac57fc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentStruct.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class TrafficIncidentStruct extends Struct {
+ @Position(0)
+ public final Integer trafficIncidentId;
+
+ @Position(1)
+ public final Byte effectCode;
+
+ @Position(2)
+ public final String effectText;
+
+ @Position(3)
+ public final Integer startTime;
+
+ @Position(4)
+ public final Integer stopTime;
+
+ @Position(5)
+ public final Byte tendency; // Tendency
+
+ @Position(6)
+ public final String tendencyText;
+
+ @Position(7)
+ public final Integer lengthAffected;
+
+ @Position(8)
+ public final Integer averageSpeedAbsolute;
+
+ @Position(9)
+ public final Integer delay;
+
+ @Position(10)
+ public final Integer segmentSpeedLimit;
+
+ @Position(11)
+ public final Integer expectedSpeedAbsolute;
+
+ @Position(12)
+ public final List<CauseDiscriminatedVariant> causes;
+
+ @Position(13)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<LocationDiscriminatedVariant> location; // LocationUnion
+
+ @Position(14)
+ public final List<AdviceStruct> advices;
+
+ @Position(15)
+ public final List<ApplicabilityStruct> applicability;
+
+ @Position(16)
+ public final List<TemporarySpeedLimitStruct> temporarySpeedLimits;
+
+ @Position(17)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<LocationInfoDiscriminatedVariant> locationInfo; // LocationInfoUnion
+
+ @Position(18)
+ public final List<String> causeTexts;
+
+ @Position(19)
+ public final List<String> applicabilityTexts;
+
+ @Position(20)
+ public final List<String> adviceTexts;
+
+ @Position(21)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<RectangularAreaStruct> locationBoundingBox;
+
+ @Position(22)
+ public final List<Integer> categoryIds;
+
+ public TrafficIncidentStruct(
+ Integer trafficIncidentId,
+ Byte effectCode,
+ String effectText,
+ Integer startTime,
+ Integer stopTime,
+ Byte tendency,
+ String tendencyText,
+ Integer lengthAffected,
+ Integer averageSpeedAbsolute,
+ Integer delay,
+ Integer segmentSpeedLimit,
+ Integer expectedSpeedAbsolute,
+ List<CauseDiscriminatedVariant> causes,
+ List<LocationDiscriminatedVariant> location,
+ List<AdviceStruct> advices,
+ List<ApplicabilityStruct> applicability,
+ List<TemporarySpeedLimitStruct> temporarySpeedLimits,
+ List<LocationInfoDiscriminatedVariant> locationInfo,
+ List<String> causeTexts,
+ List<String> applicabilityTexts,
+ List<String> adviceTexts,
+ List<RectangularAreaStruct> locationBoundingBox,
+ List<Integer> categoryIds
+ ) {
+ super();
+ this.trafficIncidentId = trafficIncidentId;
+ this.effectCode = effectCode;
+ this.effectText = effectText;
+ this.startTime = startTime;
+ this.stopTime = stopTime;
+ this.tendency = tendency;
+ this.tendencyText = tendencyText;
+ this.lengthAffected = lengthAffected;
+ this.averageSpeedAbsolute = averageSpeedAbsolute;
+ this.delay = delay;
+ this.segmentSpeedLimit = segmentSpeedLimit;
+ this.expectedSpeedAbsolute = expectedSpeedAbsolute;
+ this.causes = causes;
+ this.location = location;
+ this.advices = advices;
+ this.applicability = applicability;
+ this.locationInfo = locationInfo;
+ this.causeTexts = causeTexts;
+ this.applicabilityTexts = applicabilityTexts;
+ this.adviceTexts = adviceTexts;
+ this.locationBoundingBox = locationBoundingBox;
+ this.categoryIds = categoryIds;
+ this.temporarySpeedLimits = temporarySpeedLimits;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentsDBus.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentsDBus.java
new file mode 100755
index 0000000..c9805ad
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TrafficIncidentsDBus.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public interface TrafficIncidentsDBus extends DBusInterface {
+ public VersionStruct GetVersion();
+
+ public TwoTuple<String, String> GetLanguage();
+
+ public void SetLanguage(String languageCode, String countryCode);
+
+ public void SetTimeFormat(String timeFormat);
+
+ public void SetDateFormat(String dateFormat);
+
+ public void SetLengthUnit(Byte lengthUnit);
+
+ public void SetWeightUnit(Byte weightUnit);
+
+ public String GetApplicability();
+
+ public void SetApplicability(String expression);
+
+ public List<Integer> ReserveIconSetIds(Integer numberOfIds);
+
+ public void FreeIconSetIds(List<Integer> iconSetIds);
+
+ public List<IconSetStruct> GetIconSets();
+
+ public void AddIconSetDefinitions(List<IconSetStruct> iconSets);
+
+ public void RemoveIconSetDefinitions(List<Integer> iconSetIds);
+
+ public List<IconDefinitionStruct> GetIconDefinitions(List<IconInfoStruct> iconInfos);
+
+ public void AddIconDefinitions(List<IconDefinitionStruct> iconDefinitions);
+
+ public void RemoveIconDefinitions(List<IconInfoStruct> iconInfos);
+
+ public List<Integer> ReserveCategoryIds(Integer numberOfIds);
+
+ public void FreeCategoryIds(List<Integer> categoryIds);
+
+ public List<CategoryDefinitionStruct> GetCategoryDefinitions();
+
+ public void AddCategoryDefinitions(List<CategoryDefinitionStruct> categoryDefinitions);
+
+ public void RemoveCategoryDefinitions(List<Integer> categoryIds);
+
+ public List<Integer> GetTrafficIncidentIds(List<Byte> warningLevels, List<Integer> categoryIds);
+
+ public List<Integer> GetTrafficIncidentIdsInAreas(List<Byte> warningLevels, List<Integer> categoryIds, List<RectangularAreaStruct> areas);
+
+ public List<TrafficIncidentStruct> GetTrafficIncidents(List<Integer> trafficIncidentIds, boolean includeTextFields);
+
+ public List<TrafficIncidentStruct> GetTrafficIncidentsFields(List<Integer> trafficIncidentIds, List<Byte> trafficIncidentFields);
+
+ public List<String> GetTexts(List<Integer> trafficIncidentIds, Byte textDetailLevel);
+
+ public void AddTrafficIncidentsStatusListener();
+
+ public void RemoveTrafficIncidentsStatusListener();
+
+ public void AddFeedInformationListener();
+
+ public void RemoveFeedInformationListener();
+
+ public void AddUpdateListener(Integer listenerId, List<Byte> warningLevels, List<Integer> categoryIds);
+
+ public void RemoveUpdateListener(Integer listenerId);
+
+ public void AddAreasUpdateListener(Integer listenerId, List<Byte> warningLevels, List<Integer> categoryIds, List<RectangularAreaStruct> areas);
+
+ public void RemoveAreasUpdateListener(Integer listenerId);
+
+
+ public class TrafficIncidentsStatus extends DBusSignal {
+ public final Byte trafficIncidentFeedStatus;
+ public final Byte trafficIncidentsStatus;
+
+ public TrafficIncidentsStatus(String path,
+ Byte trafficIncidentFeedStatus,
+ Byte trafficIncidentsStatus) throws DBusException {
+ super(path, trafficIncidentFeedStatus, trafficIncidentsStatus);
+ this.trafficIncidentFeedStatus = trafficIncidentFeedStatus;
+ this.trafficIncidentsStatus =trafficIncidentsStatus;
+ }
+ }
+
+
+ public class FeedInformation extends DBusSignal {
+ public final List<FeedInformationStruct> feedsInformation;
+
+ public FeedInformation(String path, List<FeedInformationStruct> feedsInformation) throws DBusException {
+ super(path, feedsInformation);
+ this.feedsInformation = feedsInformation;
+ }
+ }
+
+
+ public class Updates extends DBusSignal {
+ public final Integer listenerId;
+ public final List<Integer> unchangedTrafficIncidentIds;
+ public final List<Integer> changedTrafficIncidentIds;
+ public final List<Integer> newTrafficIncidentIds;
+ public final List<Integer> deletedTrafficIncidentIds;
+
+ public Updates(String path, Integer listenerId,
+ List<Integer> unchangedTrafficIncidentIds,
+ List<Integer> changedTrafficIncidentIds,
+ List<Integer> newTrafficIncidentIds,
+ List<Integer> deletedTrafficIncidentIds) throws DBusException {
+ super(path, listenerId, unchangedTrafficIncidentIds, changedTrafficIncidentIds, newTrafficIncidentIds, deletedTrafficIncidentIds);
+ this.listenerId = listenerId;
+ this.unchangedTrafficIncidentIds = unchangedTrafficIncidentIds;
+ this.changedTrafficIncidentIds = changedTrafficIncidentIds;
+ this.newTrafficIncidentIds = newTrafficIncidentIds;
+ this.deletedTrafficIncidentIds = deletedTrafficIncidentIds;
+ }
+ }
+
+
+ public class UpdatesInAreas extends DBusSignal {
+ public final Integer listenerId;
+ public final List<RectangularAreaStruct> areas;
+
+ public UpdatesInAreas(String path, Integer listenerId,
+ List<RectangularAreaStruct> areas) throws DBusException {
+ super(path, listenerId, areas);
+ this.listenerId = listenerId;
+ this.areas = areas;
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TwoTuple.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TwoTuple.java
new file mode 100755
index 0000000..d2fa41d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/TwoTuple.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Tuple;
+
+public class TwoTuple<A, B> extends Tuple {
+ @Position(0)
+ public final A a;
+
+ @Position(1)
+ public final B b;
+
+ public TwoTuple(A a, B b) {
+ this.a = a;
+ this.b = b;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VehicleRelatedRestrictionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VehicleRelatedRestrictionStruct.java
new file mode 100755
index 0000000..4763e7d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VehicleRelatedRestrictionStruct.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import java.util.List;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public class VehicleRelatedRestrictionStruct extends Struct {
+ @Position(0)
+ public final Byte restrictionType; // RestrictionType
+
+ @Position(1)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<Integer> restrictionValue;
+
+ @Position(2)
+ // Actually an optional value, which is represented by an array of length 0 or 1.
+ public final List<LocationDiscriminatedVariant> restrictionLocation;
+
+ public VehicleRelatedRestrictionStruct(Byte restrictionType,
+ List<Integer> restrictionValue,
+ List<LocationDiscriminatedVariant> restrictionLocation
+ ) {
+ super();
+ this.restrictionType = restrictionType;
+ this.restrictionValue = restrictionValue;
+ this.restrictionLocation = restrictionLocation;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VersionStruct.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VersionStruct.java
new file mode 100755
index 0000000..280c9cb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/VersionStruct.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.UInt16;
+
+public class VersionStruct extends Struct {
+ @Position(0)
+ public final UInt16 major;
+
+ @Position(1)
+ public final UInt16 minor;
+
+ @Position(2)
+ public final UInt16 micro;
+
+ @Position(3)
+ public final String date;
+
+ public VersionStruct(UInt16 major, UInt16 minor, UInt16 micro, String date) {
+ super();
+ this.major = major;
+ this.minor = minor;
+ this.micro = micro;
+ this.date = date;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/StructUtil.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/StructUtil.java
new file mode 100755
index 0000000..3caef1a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/StructUtil.java
@@ -0,0 +1,2236 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.Variant;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.Coordinate;
+import org.genivi.common.LocalizedString;
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+import org.genivi.iconset.ColorType;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconDimension;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconSize;
+import org.genivi.iconset.IconsetFactory;
+import org.genivi.location.AreaLocation;
+import org.genivi.location.AreaLocationInfo;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationFactory;
+import org.genivi.location.LocationInfo;
+import org.genivi.location.PointLocation;
+import org.genivi.location.PointLocationInfo;
+import org.genivi.location.PointLocationType;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.AdviceStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.ApplicabilityStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.AreaLocationInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.AreaLocationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CategoryDefinitionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CauseDiscriminatedVariant;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CauseStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CauseType;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CoordinateStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.DirectCauseStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.FeedInformationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconDataStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconDefinitionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconDescriptorStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconSetStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconSizeStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LaneRestrictionsStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LinearLocationInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LinearLocationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LinkedCauseStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocalizedStringStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocationDiscriminatedVariant;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocationInfoDiscriminatedVariant;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocationInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocationInfoType;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.LocationType;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.PointLocationInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.PointLocationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.RectangularAreaStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TemporarySpeedLimitSectionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TemporarySpeedLimitStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.VehicleRelatedRestrictionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.VersionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Accident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Fire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind;
+import org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility;
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment;
+import org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+public class StructUtil {
+ private final static Logger LOGGER = Logger.getLogger(StructUtil.class.getName());
+ private final static CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private final static LocationFactory LOCATION_FACTORY = LocationFactory.eINSTANCE;
+ private final static trafficincidentFactory TRAFFIC_INCIDENT_FACTORY = trafficincidentFactory.eINSTANCE;
+ private final static trafficincidentsserviceFactory TRAFFIC_INCIDENTS_SVC_FACTORY = trafficincidentsserviceFactory.eINSTANCE;
+ private final static IconsetFactory ICON_SET_FACTORY = IconsetFactory.eINSTANCE;
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ public static Version versionStructToVersion(VersionStruct versionStruct) {
+ Version version = COMMON_FACTORY.createVersion();
+
+ version.setMajor(versionStruct.major.intValue());
+ version.setMinor(versionStruct.minor.intValue());
+ version.setMicro(versionStruct.micro.intValue());
+ version.setDate(versionStruct.date);
+
+ return version;
+ }
+
+ public static VersionStruct versionToVersionStruct(Version version) {
+ UInt16 major = new UInt16(version.getMajor());
+ UInt16 minor = new UInt16(version.getMinor());
+ UInt16 micro = new UInt16(version.getMicro());
+
+ VersionStruct versionStruct = new VersionStruct(major, minor, micro, version.getDate());
+
+ return versionStruct;
+ }
+
+ public static TrafficIncident trafficIncidentStructToTrafficIncident(TrafficIncidentStruct trafficIncidentStruct) {
+ TrafficIncident trafficIncident = TRAFFIC_INCIDENT_FACTORY.createTrafficIncident();
+
+ if (trafficIncidentStruct.effectCode != 0) {
+ EffectCode effectCode = EffectCode.get(trafficIncidentStruct.effectCode);
+ trafficIncident.setEffectCode(effectCode);
+ }
+
+ if (!trafficIncidentStruct.effectText.isEmpty()) {
+ trafficIncident.setEffectText(trafficIncidentStruct.effectText);
+ }
+
+ long startTimeValue = trafficIncidentStruct.startTime;
+ if (startTimeValue != -1) {
+ Date startTime = new Date(startTimeValue * 1000 * 60);
+ trafficIncident.setStartTime(startTime);
+ }
+
+ long stopTimeValue = trafficIncidentStruct.stopTime;
+ if (stopTimeValue != -1) {
+ Date stopTime = new Date(stopTimeValue * 1000 * 60);
+ trafficIncident.setStopTime(stopTime);
+ }
+
+ if (trafficIncidentStruct.tendency != 0) {
+ Tendency tendency = Tendency.get(trafficIncidentStruct.tendency);
+ trafficIncident.setTendency(tendency);
+ }
+
+ if (!trafficIncidentStruct.tendencyText.isEmpty()) {
+ trafficIncident.setTendencyText(trafficIncidentStruct.tendencyText);
+ }
+
+ if (trafficIncidentStruct.lengthAffected != -1) {
+ trafficIncident.setLengthAffected(trafficIncidentStruct.lengthAffected);
+ }
+
+ if (trafficIncidentStruct.averageSpeedAbsolute != -1) {
+ trafficIncident.setAverageSpeedAbsolute(trafficIncidentStruct.averageSpeedAbsolute);
+ }
+
+ if (trafficIncidentStruct.delay != -1) {
+ trafficIncident.setDelay(trafficIncidentStruct.delay);
+ }
+
+ if (trafficIncidentStruct.segmentSpeedLimit != -1) {
+ trafficIncident.setSegmentSpeedLimit(trafficIncidentStruct.segmentSpeedLimit);
+ }
+
+ if (trafficIncidentStruct.expectedSpeedAbsolute != -1) {
+ trafficIncident.setExpectedSpeedAbsolute(trafficIncidentStruct.expectedSpeedAbsolute);
+ }
+
+ for (CauseDiscriminatedVariant causeDiscriminatedVariant: trafficIncidentStruct.causes) {
+ Cause cause = causeDiscriminatedVariantToCause(causeDiscriminatedVariant);
+ trafficIncident.getCauses().add(cause);
+ }
+
+ if (trafficIncidentStruct.location.size() == 1) {
+ Location location = locationDiscriminatedVariantToLocation(trafficIncidentStruct.location.get(0));
+ trafficIncident.setLocation(location);
+ } else if (trafficIncidentStruct.location.size() == 0) {
+ // No action
+ } else {
+ throw new RuntimeException("Illegal size for location: " + trafficIncidentStruct.location.size());
+ }
+
+ for (AdviceStruct adviceStruct: trafficIncidentStruct.advices) {
+ Advice advice = adviceStructToAdvice(adviceStruct);
+ trafficIncident.getAdvices().add(advice);
+ }
+
+ for (ApplicabilityStruct applicabilityStruct: trafficIncidentStruct.applicability) {
+ Applicability applicability = applicabilityStructToApplicability(applicabilityStruct);
+ trafficIncident.getApplicability().add(applicability);
+ }
+
+ for (TemporarySpeedLimitStruct temporarySpeedLimitStruct: trafficIncidentStruct.temporarySpeedLimits) {
+ TemporarySpeedLimit temporarySpeedLimit = temporarySpeedLimitStructToTemporarySpeedLimit(temporarySpeedLimitStruct);
+ trafficIncident.getTemporarySpeedLimit().add(temporarySpeedLimit);
+ LOGGER.info("temporarySpeedLimit added: " + temporarySpeedLimit);
+ }
+
+ trafficIncident.setTrafficIncidentId(trafficIncidentStruct.trafficIncidentId);
+
+ if (trafficIncidentStruct.locationInfo.size() == 1) {
+ LocationInfo locationInfo = locationInfoDiscriminatedVariantToLocationInfo(trafficIncidentStruct.locationInfo.get(0));
+ trafficIncident.setLocationInfo(locationInfo);
+ } else if (trafficIncidentStruct.locationInfo.size() == 0) {
+ // No action
+ } else {
+ throw new RuntimeException("Illegal size for locationInfo: " + trafficIncidentStruct.locationInfo.size());
+ }
+
+ for (String string: trafficIncidentStruct.causeTexts) {
+ trafficIncident.getCauseTexts().add(string);
+ }
+
+ for (String string: trafficIncidentStruct.applicabilityTexts) {
+ trafficIncident.getApplicabilityTexts().add(string);
+ }
+
+ for (String string: trafficIncidentStruct.adviceTexts) {
+ trafficIncident.getAdviceTexts().add(string);
+ }
+
+ if (trafficIncidentStruct.locationBoundingBox.size() == 1) {
+ RectangularArea locationBoundingBox = rectangularAreaStructToRectangularArea(trafficIncidentStruct.locationBoundingBox.get(0));
+ trafficIncident.setLocationBoundingBox(locationBoundingBox);
+ } else if (trafficIncidentStruct.locationBoundingBox.size() != 0) {
+ throw new RuntimeException("Illegal size for locationBoundingBox: " + trafficIncidentStruct.locationBoundingBox.size());
+ }
+
+ for (Integer categoryId: trafficIncidentStruct.categoryIds) {
+ trafficIncident.getCategoryIds().add(categoryId);
+ }
+
+ return trafficIncident;
+ }
+
+ public static TrafficIncidentStruct trafficIncidentToTrafficIncidentStruct(TrafficIncident trafficIncident) {
+ Integer trafficIncidentId = trafficIncident.getTrafficIncidentId();
+
+ byte effectCodeId = 0;
+ EffectCode effectCode = trafficIncident.getEffectCode();
+ if (effectCode != null) {
+ effectCodeId = (byte) effectCode.getValue();
+ }
+
+ String effectText;
+ if (trafficIncident.getEffectText() != null) {
+ effectText = trafficIncident.getEffectText();
+ } else {
+ effectText = "";
+ }
+
+ Integer startTime;
+ if (trafficIncident.isSetStartTime()) {
+ startTime = (int) (trafficIncident.getStartTime().getTime() / (1000 * 60));
+ } else {
+ startTime = -1;
+ }
+
+ Integer stopTime;
+ if (trafficIncident.getStopTime() != null) {
+ stopTime = (int) (trafficIncident.getStopTime().getTime() / (1000 * 60));
+ } else {
+ stopTime = -1;
+ }
+
+ Byte tendencyId = 0;
+ Tendency tendency = trafficIncident.getTendency();
+ if (tendency != null) {
+ tendencyId = (Byte) (byte) tendency.getValue();
+ }
+
+ String tendencyText;
+ if (trafficIncident.getTendencyText() != null) {
+ tendencyText= trafficIncident.getTendencyText();
+ } else {
+ tendencyText = "";
+ }
+
+ int lengthAffected = -1;
+ if (trafficIncident.getLengthAffected() != null) {
+ lengthAffected =trafficIncident.getLengthAffected();
+ }
+
+ int averageSpeedAbsolute = -1;
+ if (trafficIncident.getAverageSpeedAbsolute() != null) {
+ averageSpeedAbsolute = trafficIncident.getAverageSpeedAbsolute();
+ }
+
+ int delay = -1;
+ if (trafficIncident.isSetDelay() && trafficIncident.getDelay() != null) {
+ delay = trafficIncident.getDelay();
+ }
+
+ int segmentSpeedLimit = -1;
+ if (trafficIncident.getSegmentSpeedLimit() != null) {
+ segmentSpeedLimit = trafficIncident.getSegmentSpeedLimit();
+ }
+
+ int expectedSpeedAbsolute = -1;
+ if (trafficIncident.getExpectedSpeedAbsolute() != null) {
+ expectedSpeedAbsolute = trafficIncident.getExpectedSpeedAbsolute();
+ }
+
+ EList<Cause> causes = trafficIncident.getCauses();
+ List<CauseDiscriminatedVariant> causeDiscriminatedVariants = new ArrayList<>();
+ for (Cause cause: causes) {
+ CauseDiscriminatedVariant causeDiscriminatedVariant = causeToCauseDiscriminatedVariant(cause);
+ causeDiscriminatedVariants.add(causeDiscriminatedVariant);
+ }
+
+ List<LocationDiscriminatedVariant> locationDiscriminatedVariants = new ArrayList<>();
+ if (trafficIncident.getLocation() != null) {
+ LocationDiscriminatedVariant locationDiscriminatedVariant = locationToLocationDiscriminatedVariant(trafficIncident.getLocation());
+ locationDiscriminatedVariants.add(locationDiscriminatedVariant);
+ }
+
+ EList<Advice> advices = trafficIncident.getAdvices();
+ List<AdviceStruct> adviceStructs = new ArrayList<>();
+ for (int i = 0; i < advices.size(); i++) {
+ AdviceStruct adviceStruct = adviceToAdviceStruct(advices.get(i));
+ adviceStructs.add(adviceStruct);
+ }
+
+ EList<Applicability> applicabilities = trafficIncident.getApplicability();
+ List<ApplicabilityStruct> applicabilityStructs = new ArrayList<>();
+ for (int i = 0; i < applicabilities.size(); i++) {
+ ApplicabilityStruct applicabilityStruct = applicabilityToApplicabilityStruct(applicabilities.get(i));
+ applicabilityStructs.add(applicabilityStruct);
+ }
+
+ EList<TemporarySpeedLimit> temporarySpeedLimits = trafficIncident.getTemporarySpeedLimit();
+ List<TemporarySpeedLimitStruct> temporarySpeedLimitStructs = new ArrayList<>();
+ for (int i = 0; i < temporarySpeedLimits.size(); i++) {
+ TemporarySpeedLimitStruct temporarySpeedLimitStruct = temporarySpeedLimitToTemporarySpeedLimitStruct(temporarySpeedLimits.get(i));
+ temporarySpeedLimitStructs.add(temporarySpeedLimitStruct);
+ }
+
+ List<LocationInfoDiscriminatedVariant> locationInfoDiscriminatedVariants = new ArrayList<>();
+ if (trafficIncident.getLocationInfo() != null) {
+ LocationInfoDiscriminatedVariant locationInfoDiscriminatedVariant = locationInfoToLocationInfoDiscriminatedVariant(trafficIncident.getLocationInfo());
+ locationInfoDiscriminatedVariants.add(locationInfoDiscriminatedVariant);
+ }
+
+ List<String> causeTexts = new ArrayList<>();
+ for (String text: trafficIncident.getCauseTexts()) {
+ causeTexts.add(text);
+ }
+
+ List<String> applicabilityTexts = new ArrayList<>();
+ for (String text: trafficIncident.getApplicabilityTexts()) {
+ applicabilityTexts.add(text);
+ }
+
+ List<String> adviceTexts = new ArrayList<>();
+ for (String text: trafficIncident.getAdviceTexts()) {
+ adviceTexts.add(text);
+ }
+
+ RectangularArea locationBoundingBox = trafficIncident.getLocationBoundingBox();
+ List<RectangularAreaStruct> locationBoundingBoxStructs = new ArrayList<>();
+ if (locationBoundingBox != null) {
+ RectangularAreaStruct locationBoundingBoxStruct = rectangularAreaToRectangularAreaStruct(locationBoundingBox);
+ locationBoundingBoxStructs.add(locationBoundingBoxStruct);
+ }
+
+ List<Integer> categoryIds = new ArrayList<>();
+ for (Integer categoryId: trafficIncident.getCategoryIds()) {
+ categoryIds.add(categoryId);
+ }
+
+ TrafficIncidentStruct trafficIncidentStruct = new TrafficIncidentStruct(
+ trafficIncidentId,
+ effectCodeId,
+ effectText,
+ startTime,
+ stopTime,
+ tendencyId,
+ tendencyText,
+ lengthAffected,
+ averageSpeedAbsolute,
+ delay,
+ segmentSpeedLimit,
+ expectedSpeedAbsolute,
+ causeDiscriminatedVariants,
+ locationDiscriminatedVariants,
+ adviceStructs,
+ applicabilityStructs,
+ temporarySpeedLimitStructs,
+ locationInfoDiscriminatedVariants,
+ causeTexts,
+ applicabilityTexts,
+ adviceTexts,
+ locationBoundingBoxStructs,
+ categoryIds
+ );
+
+ return trafficIncidentStruct;
+ }
+
+ private static Cause causeDiscriminatedVariantToCause(CauseDiscriminatedVariant causeDiscriminatedVariant) {
+ CauseType causeType = CauseType.getCauseType(causeDiscriminatedVariant.causeType);
+ CauseStruct causeStruct = reconstructCauseStruct(causeType, causeDiscriminatedVariant.cause);
+ LOGGER.info("causeStruct = " + causeStruct);
+ Cause cause;
+ switch (causeType) {
+ case DIRECT:
+ LOGGER.info("is DirectCauseStruct");
+ DirectCauseStruct directCauseStruct = (DirectCauseStruct) causeStruct;
+ cause = directCauseStructToDirectCause(directCauseStruct);
+ break;
+
+ case LINKED:
+ LOGGER.info("is LinkedCauseStruct");
+ LinkedCauseStruct linkedCauseStruct = (LinkedCauseStruct) causeStruct;
+ cause = linkedCauseStructToLinkedCause(linkedCauseStruct);
+ break;
+
+ default:
+ throw new RuntimeException("Illegal causeType: " + causeType);
+ }
+
+ return cause;
+ }
+
+ private static CauseStruct reconstructCauseStruct(CauseType causeType, Variant<?> causeVariant) {
+ LOGGER.info("reconstructCauseStruct => causeType = " + causeType + ", causeVariant" + causeVariant);
+
+ Object[] structFields = (Object[]) causeVariant.getValue();
+ CauseStruct causeStruct = null;
+
+ Byte mainCause;
+
+ switch (causeType) {
+ case DIRECT:
+ if (!(structFields.length == 8 &&
+ structFields[0] instanceof Byte &&
+ structFields[1] instanceof Byte &&
+ structFields[2] instanceof Boolean &&
+ structFields[3] instanceof Byte &&
+ structFields[4] instanceof Integer &&
+ structFields[5] instanceof Integer &&
+ structFields[6] instanceof Vector &&
+ structFields[7] instanceof String)) {
+ for (Object structField: structFields) {
+ LOGGER.info("reconstructCauseStructs field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for DirectCause");
+ }
+ mainCause = (Byte) structFields[0];
+ Byte warningLevel = (Byte) structFields[1];
+ LOGGER.info("warningLevel OK");
+ Boolean unverifiedInformation = (Boolean) structFields[2];
+ LOGGER.info("unverifiedInformation OK");
+ Byte subCause = (Byte) structFields[3];
+ LOGGER.info("subCause OK");
+ int lengthAffected = (Integer) structFields[4];
+ LOGGER.info("lengthAffected OK");
+ int causeOffset = (Integer) structFields[5];
+ LOGGER.info("causeOffset OK");
+ @SuppressWarnings("unchecked")
+ List<LaneRestrictionsStruct> laneRestrictions = reconstructLaneRestrictionsStructs((Vector<Object>) structFields[6]);
+ LOGGER.info("LaneRestrictionsStruct OK");
+ String freeText = (String) structFields[7];
+ LOGGER.info("freeTexts OK");
+ causeStruct = new DirectCauseStruct(mainCause, warningLevel, unverifiedInformation,
+ subCause, lengthAffected, causeOffset, laneRestrictions, freeText);
+ break;
+
+ case LINKED:
+ if (!(structFields.length == 2 &&
+ structFields[0] instanceof Byte &&
+ structFields[1] instanceof Integer)) {
+ LOGGER.severe("Wrong signature for LinkedCause");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructCauseStructs field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for LinkedCause");
+ }
+ mainCause = (Byte) structFields[0];
+ Integer causeTrafficIncidentId = (Integer) structFields[1];
+ causeStruct = new LinkedCauseStruct(mainCause, causeTrafficIncidentId);
+ break;
+ }
+
+ LOGGER.info("reconstructCauseStruct <= " + causeStruct);
+ return causeStruct;
+ }
+
+ private static CauseDiscriminatedVariant causeToCauseDiscriminatedVariant(Cause cause) {
+ CauseType causeType;
+ CauseStruct causeStruct;
+
+ if (cause instanceof DirectCause) {
+ causeType = CauseType.DIRECT;
+ causeStruct = directCauseToDirectCauseStruct((DirectCause) cause);
+ } else if (cause instanceof LinkedCause) {
+ causeType = CauseType.LINKED;
+ causeStruct = linkedCauseToLinkedCauseStruct((LinkedCause) cause);
+ } else {
+ throw new IllegalArgumentException("Unknow subclass of Cause");
+ }
+
+ Variant<? extends CauseStruct> causeVariant = new Variant<CauseStruct>(causeStruct);
+ return new CauseDiscriminatedVariant(causeType.getValue(), causeVariant);
+ }
+
+ private static LinkedCause linkedCauseStructToLinkedCause(LinkedCauseStruct linkedCauseStruct) {
+ LinkedCause linkedCause = TRAFFIC_INCIDENT_FACTORY.createLinkedCause();
+
+ CauseCode mainCause = CauseCode.get(linkedCauseStruct.mainCause);
+ linkedCause.setMainCause(mainCause);
+
+ linkedCause.setCauseTrafficIncidentId(linkedCauseStruct.causeTrafficIncidentId);
+
+ return linkedCause;
+ }
+
+ private static LinkedCauseStruct linkedCauseToLinkedCauseStruct(LinkedCause linkedCause) {
+ Byte mainCause = (byte) linkedCause.getMainCause().getValue();
+ Integer causeTrafficIncidentId = linkedCause.getCauseTrafficIncidentId();
+
+ LinkedCauseStruct linkedCauseStruct = new LinkedCauseStruct(mainCause, causeTrafficIncidentId);
+
+ return linkedCauseStruct;
+ }
+
+ private static DirectCause directCauseStructToDirectCause(DirectCauseStruct directCauseStruct) {
+ DirectCause directCause = TRAFFIC_INCIDENT_FACTORY.createDirectCause();
+
+ CauseCode mainCause = CauseCode.get(directCauseStruct.mainCause);
+ directCause.setMainCause(mainCause);
+
+ if (directCauseStruct.warningLevel != 0) {
+ WarningLevel warningLevel = WarningLevel.get(directCauseStruct.warningLevel);
+ directCause.setWarningLevel(warningLevel);
+ }
+
+ boolean unverifiedInformation = directCauseStruct.unverifiedInformation;
+ directCause.setUnverifiedInformation(unverifiedInformation);
+
+ Byte subCauseValue = directCauseStruct.subCause;
+
+ if (subCauseValue != 0) {
+ Object subCause;
+ switch (mainCause) {
+ case ACCIDENT:
+ subCause = Accident.get(subCauseValue);
+ break;
+
+ case ANIMALS_ON_ROADWAY:
+ subCause = AnimalsOnRoadway.get(subCauseValue);
+ break;
+
+ case BROKEN_DOWN_VEHICLES:
+ subCause = BrokenDownVehicles.get(subCauseValue);
+ break;
+
+ case DANGEROUS_END_OF_QUEUE:
+ subCause = DangerousEndOfQueue.get(subCauseValue);
+ break;
+
+ case EXTREME_WEATHER_CONDITIONS:
+ subCause = ExtremeWeatherConditions.get(subCauseValue);
+ break;
+
+ case FIRE:
+ subCause = Fire.get(subCauseValue);
+ break;
+
+ case HAZARDOUS_DRIVING_CONDITIONS:
+ subCause = HazardousDrivingConditions.get(subCauseValue);
+ break;
+
+ case IMPASSIBILITY:
+ subCause = Impassibility.get(subCauseValue);
+ break;
+
+ case MAJOR_EVENT:
+ subCause = MajorEvent.get(subCauseValue);
+ break;
+
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ subCause = MalfunctioningRoadsideEquipment.get(subCauseValue);
+ break;
+
+ case NARROW_LANES:
+ subCause = NarrowLanes.get(subCauseValue);
+ break;
+
+ case OBJECTS_ON_THE_ROAD:
+ subCause = ObjectsOnTheRoad.get(subCauseValue);
+ break;
+
+ case PEOPLE_ON_ROADWAY:
+ subCause = PeopleOnRoadway.get(subCauseValue);
+ break;
+
+ case POLICE_CHECKPOINT:
+ subCause = PoliceCheckpoint.get(subCauseValue);
+ break;
+
+ case PRECIPITATION:
+ subCause = Precipitation.get(subCauseValue);
+ break;
+
+ case RECKLESS_PERSONS:
+ subCause = RecklessPersons.get(subCauseValue);
+ break;
+
+ case REGULATORY_MEASURE:
+ subCause = RegulatoryMeasure.get(subCauseValue);
+ break;
+
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ subCause = RescueAndRecoveryWorkInProgress.get(subCauseValue);
+ break;
+
+ case RISK_OF_FIRE:
+ subCause = RiskOfFire.get(subCauseValue);
+ break;
+
+ case ROADWORKS:
+ subCause = RoadWorks.get(subCauseValue);
+ break;
+
+ case SERVICE_NOT_OPERATING:
+ subCause = ServiceNotOperating.get(subCauseValue);
+ break;
+
+ case SERVICE_NOT_USEABLE:
+ subCause = ServiceNotUsable.get(subCauseValue);
+ break;
+
+ case SLIPPERY_ROAD:
+ subCause = SlipperyRoad.get(subCauseValue);
+ break;
+
+ case SLOW_MOVING_VEHICLES:
+ subCause = SlowMovingVehicles.get(subCauseValue);
+ break;
+
+ case TIME_DELAY:
+ subCause = TimeDelay.get(subCauseValue);
+ break;
+
+ case TRAFFIC_CONGESTION:
+ subCause = TrafficCongestion.get(subCauseValue);
+ break;
+
+ case VISIBILITY_REDUCED:
+ subCause = VisibilityReduced.get(subCauseValue);
+ break;
+
+ case AQUAPLANING:
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED:
+ case TRAFFIC_REGULATIONS_CHANGED:
+ case VEHICLE_ON_WRONG_CARRIAGEWAY:
+ throw new IllegalArgumentException("Subcause for main cause which doesn't support a subcause");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainCause");
+ }
+
+ directCause.setSubCause(subCause);
+ }
+
+ if (directCauseStruct.lengthAffected != -1) {
+ directCause.setLengthAffected(directCauseStruct.lengthAffected);
+ }
+
+ if (directCauseStruct.causeOffset != -1) {
+ directCause.setCauseOffset(directCauseStruct.causeOffset);
+ }
+
+ if (directCauseStruct.laneRestrictions.size() == 1) {
+ LaneRestrictions laneRestrictions = laneRestrictionsStructToLaneRestrictions(directCauseStruct.laneRestrictions.get(0));
+ directCause.setLaneRestrictions(laneRestrictions);
+ } else if (directCauseStruct.laneRestrictions.size() == 0) {
+ // no action
+ } else {
+ throw new RuntimeException("Illegal size of LaneRestrictions list: " + directCauseStruct.laneRestrictions.size());
+ }
+
+ if (!directCauseStruct.freeText.isEmpty()) {
+ directCause.setFreeText(directCauseStruct.freeText);
+ }
+
+ return directCause;
+ }
+
+ private static DirectCauseStruct directCauseToDirectCauseStruct(DirectCause directCause) {
+ Byte mainCause = (byte) directCause.getMainCause().getValue();
+
+ Byte warningLevel = 0;
+ if (directCause.getWarningLevel() != null) {
+ warningLevel = (byte) directCause.getWarningLevel().getValue();
+ }
+
+ Boolean unverifiedInformation = directCause.isUnverifiedInformation();
+
+ Object subCauseObj = directCause.getSubCause();
+ int subCauseValue = -1;
+ Byte subCause = 0;
+ if (subCauseObj != null) {
+ switch (directCause.getMainCause()) {
+ case ACCIDENT:
+ subCauseValue = ((Accident) subCauseObj).getValue();
+ break;
+
+ case ANIMALS_ON_ROADWAY:
+ subCauseValue = ((AnimalsOnRoadway) subCauseObj).getValue();
+ break;
+
+ case BROKEN_DOWN_VEHICLES:
+ subCauseValue = ((BrokenDownVehicles) subCauseObj).getValue();
+ break;
+
+ case DANGEROUS_END_OF_QUEUE:
+ subCauseValue = ((DangerousEndOfQueue) subCauseObj).getValue();
+ break;
+
+ case EXTREME_WEATHER_CONDITIONS:
+ subCauseValue = ((ExtremeWeatherConditions) subCauseObj).getValue();
+ break;
+
+ case FIRE:
+ subCauseValue = ((Fire) subCauseObj).getValue();
+ break;
+
+ case HAZARDOUS_DRIVING_CONDITIONS:
+ subCauseValue = ((HazardousDrivingConditions) subCauseObj).getValue();
+ break;
+
+ case IMPASSIBILITY:
+ subCauseValue = ((Impassibility) subCauseObj).getValue();
+ break;
+
+ case MAJOR_EVENT:
+ subCauseValue = ((MajorEvent) subCauseObj).getValue();
+ break;
+
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ subCauseValue = ((MalfunctioningRoadsideEquipment) subCauseObj).getValue();
+ break;
+
+ case NARROW_LANES:
+ subCauseValue = ((NarrowLanes) subCauseObj).getValue();
+ break;
+
+ case OBJECTS_ON_THE_ROAD:
+ subCauseValue = ((ObjectsOnTheRoad) subCauseObj).getValue();
+ break;
+
+ case PEOPLE_ON_ROADWAY:
+ subCauseValue = ((PeopleOnRoadway) subCauseObj).getValue();
+ break;
+
+ case POLICE_CHECKPOINT:
+ subCauseValue = ((PoliceCheckpoint) subCauseObj).getValue();
+ break;
+
+ case PRECIPITATION:
+ subCauseValue = ((Precipitation) subCauseObj).getValue();
+ break;
+
+ case RECKLESS_PERSONS:
+ subCauseValue = ((RecklessPersons) subCauseObj).getValue();
+ break;
+
+ case REGULATORY_MEASURE:
+ subCauseValue = ((RegulatoryMeasure) subCauseObj).getValue();
+ break;
+
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ subCauseValue = ((RescueAndRecoveryWorkInProgress) subCauseObj).getValue();
+ break;
+
+ case RISK_OF_FIRE:
+ subCauseValue = ((RiskOfFire) subCauseObj).getValue();
+ break;
+
+ case ROADWORKS:
+ subCauseValue = ((RoadWorks) subCauseObj).getValue();
+ break;
+
+ case SERVICE_NOT_OPERATING:
+ subCauseValue = ((ServiceNotOperating) subCauseObj).getValue();
+ break;
+
+ case SERVICE_NOT_USEABLE:
+ subCauseValue = ((ServiceNotUsable) subCauseObj).getValue();
+ break;
+
+ case SLIPPERY_ROAD:
+ subCauseValue = ((SlipperyRoad) subCauseObj).getValue();
+ break;
+
+ case SLOW_MOVING_VEHICLES:
+ subCauseValue = ((SlowMovingVehicles) subCauseObj).getValue();
+ break;
+
+ case TIME_DELAY:
+ subCauseValue = ((TimeDelay) subCauseObj).getValue();
+ break;
+
+ case TRAFFIC_CONGESTION:
+ subCauseValue = ((TrafficCongestion) subCauseObj).getValue();
+ break;
+
+ case VISIBILITY_REDUCED:
+ subCauseValue = ((VisibilityReduced) subCauseObj).getValue();
+ break;
+
+ case AQUAPLANING:
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED:
+ case TRAFFIC_REGULATIONS_CHANGED:
+ case VEHICLE_ON_WRONG_CARRIAGEWAY:
+ throw new IllegalArgumentException("Subcause for main cause which doesn't support a subcause");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainCause");
+ }
+ subCause = (byte) subCauseValue;
+ }
+
+ int lengthAffected = -1;
+ if (directCause.getLengthAffected() != null) {
+ lengthAffected = directCause.getLengthAffected();
+ }
+
+ int causeOffset = -1;
+ if (directCause.getCauseOffset() != null) {
+ causeOffset = directCause.getCauseOffset();
+ }
+
+ LaneRestrictions laneRestrictions = directCause.getLaneRestrictions();
+ List<LaneRestrictionsStruct> laneRestrictionsStructs = new ArrayList<>();
+ if (laneRestrictions != null) {
+ LaneRestrictionsStruct laneRestrictionsStruct = laneRestrictionsToLaneRestrictionsStruct(laneRestrictions);
+ laneRestrictionsStructs.add(laneRestrictionsStruct);
+ }
+
+ String freeText = "";
+ if (directCause.isSetFreeText()) {
+ freeText = directCause.getFreeText();
+ }
+
+ DirectCauseStruct directCauseStruct = new DirectCauseStruct(
+ mainCause,
+ warningLevel,
+ unverifiedInformation,
+ subCause,
+ lengthAffected,
+ causeOffset,
+ laneRestrictionsStructs,
+ freeText);
+
+ return directCauseStruct;
+ }
+
+ private static List<LaneRestrictionsStruct> reconstructLaneRestrictionsStructs(Vector<Object> vector) {
+ LOGGER.info("reconstructLaneRestrictionsStructs =>");
+ List<LaneRestrictionsStruct> laneRestrictionsStructs = new ArrayList<>();
+
+ for (Object object: vector) {
+ LOGGER.info("Handling object: " + object + " = " + object.getClass().getName());
+ if (object instanceof Object[]) {
+ LOGGER.info("Type OK");
+ LaneRestrictionsStruct laneRestrictionsStruct = reconstructLaneRestrictionsStruct((Object[]) object);
+ laneRestrictionsStructs.add(laneRestrictionsStruct);
+ } else {
+ LOGGER.info("Wrong Type");
+ }
+ }
+
+ LOGGER.info("reconstructLaneRestrictionsStructs <= " + laneRestrictionsStructs);
+ return laneRestrictionsStructs;
+ }
+
+ private static LaneRestrictionsStruct reconstructLaneRestrictionsStruct(Object[] objects) {
+ LOGGER.info("reconstructLaneRestrictionsStruct =>");
+ if (objects.length != 2) {
+ LOGGER.info("Wrong number of elements");
+ return null;
+ }
+
+ Byte laneRestrictionType = 0;
+ int numberOfLanes = -1;
+
+ if (objects[0] instanceof Byte) {
+ laneRestrictionType = (Byte) objects[0];
+ LOGGER.info("laneRestrictionType OK");
+ } else {
+ LOGGER.info("Wrong type for laneRestrictionType");
+ }
+
+ if (objects[1] instanceof Integer) {
+ numberOfLanes = (Integer) objects[1];
+ LOGGER.info("numberOfLanes OK");
+ } else {
+ LOGGER.info("Wrong type for numberOfLanes");
+ }
+
+ LaneRestrictionsStruct laneRestrictionsStruct = new LaneRestrictionsStruct(laneRestrictionType, numberOfLanes);
+
+ LOGGER.info("reconstructLaneRestrictionsStruct <= " + laneRestrictionsStruct);
+ return laneRestrictionsStruct;
+ }
+
+ private static Location locationDiscriminatedVariantToLocation(LocationDiscriminatedVariant locationDiscriminatedVariant) {
+ LocationType locationType = LocationType.getLocationType(locationDiscriminatedVariant.locationType);
+ LocationStruct locationStruct = reconstructLocationStruct(locationType, locationDiscriminatedVariant.location);
+ LOGGER.info("locationStruct = " + locationStruct);
+
+ Location location;
+
+ switch (locationType) {
+ case POINT:
+ LOGGER.info("is PointLocation");
+ PointLocationStruct pointLocationStruct = (PointLocationStruct) locationStruct;
+ location = pointLocationStructToPointLocation(pointLocationStruct);
+ break;
+
+ case LINEAR:
+ LOGGER.info("is LinearLocation");
+ LinearLocationStruct linearLocationStruct = (LinearLocationStruct) locationStruct;
+ location = linearLocationStructToLinearLocation(linearLocationStruct);
+ break;
+
+ case AREA:
+ LOGGER.info("is AreaLocation");
+ AreaLocationStruct areaLocationStruct = (AreaLocationStruct) locationStruct;
+ location = areaLocationStructToAreaLocation(areaLocationStruct);
+ break;
+
+ default:
+ throw new RuntimeException("Illegal locationType: " + locationType);
+ }
+
+ return location;
+ }
+
+ private static LocationStruct reconstructLocationStruct(LocationType locationType, Variant<?> locationVariant) {
+ LOGGER.info("reconstructLocationStruct => locationType = " + locationType + ", locationVariant" + locationVariant);
+
+ Object[] structFields = (Object[]) locationVariant.getValue();
+ LocationStruct locationStruct = null;
+
+
+ switch (locationType) {
+ case POINT:
+ throw new RuntimeException("PointLocation isn't supported");
+
+ case LINEAR:
+ if (!(structFields.length == 3 &&
+ structFields[0] instanceof List<?> &&
+ structFields[1] instanceof UInt32 &&
+ structFields[2] instanceof UInt32)) {
+ LOGGER.severe("Wrong signature for LinearLocation");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructLocationStruct field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for LinearLocation");
+ }
+ LOGGER.info("LinearLocationStruct");
+ @SuppressWarnings("unchecked")
+ List<Long> segments = (List<Long>) structFields[0];
+ LOGGER.fine("parameter 0 OK");
+ UInt32 positiveOffset = (UInt32) structFields[1];
+ LOGGER.fine("parameter 1 OK");
+ UInt32 negativeOffset = (UInt32) structFields[2];
+ LOGGER.fine("parameter 2 OK");
+ locationStruct = new LinearLocationStruct(segments, positiveOffset, negativeOffset);
+ break;
+
+ case AREA:
+ throw new RuntimeException("AreaLocation isn't supported");
+ }
+
+ LOGGER.info("reconstructLocationStruct <= " + locationStruct);
+ return locationStruct;
+ }
+
+ public static Location locationStructToLocation(LocationStruct locationStruct) {
+ Location location = LOCATION_FACTORY.createLocation();
+
+ if (locationStruct instanceof PointLocationStruct) {
+ location = pointLocationStructToPointLocation((PointLocationStruct) locationStruct);
+ } else if (locationStruct instanceof LinearLocationStruct) {
+ location = linearLocationStructToLinearLocation((LinearLocationStruct) locationStruct);
+ } else if (locationStruct instanceof AreaLocationStruct) {
+ location = areaLocationStructToAreaLocation((AreaLocationStruct) locationStruct);
+ } else {
+ throw new IllegalArgumentException("Unknown subclass of LocationStruct");
+ }
+
+ return location;
+ }
+
+ private static LocationDiscriminatedVariant locationToLocationDiscriminatedVariant(Location location) {
+ LocationType locationType;
+ LocationStruct locationStruct;
+
+ if (location instanceof PointLocation) {
+ locationType = LocationType.POINT;
+ locationStruct = pointLocationToPointLocationStruct((PointLocation) location);
+ } else if (location instanceof LinearLocation) {
+ locationType = LocationType.LINEAR;
+ locationStruct = linearLocationToLinearLocationStruct((LinearLocation) location);
+ } else if (location instanceof AreaLocation) {
+ locationType = LocationType.AREA;
+ locationStruct = areaLocationToAreaLocationStruct((AreaLocation) location);
+ } else {
+ throw new IllegalArgumentException("Unknow subclass of Location");
+ }
+
+ Variant<? extends LocationStruct> locationVariant = new Variant<LocationStruct>(locationStruct);
+ return new LocationDiscriminatedVariant(locationType.getValue(), locationVariant);
+ }
+
+ public static PointLocation pointLocationStructToPointLocation(PointLocationStruct pointLocationStruct) {
+ PointLocation pointLocation = LOCATION_FACTORY.createPointLocation();
+
+ return pointLocation;
+ }
+
+ public static PointLocationStruct pointLocationToPointLocationStruct(PointLocation pointLocation) {
+ PointLocationStruct pointLocationStruct = new PointLocationStruct();
+
+ return pointLocationStruct;
+ }
+
+ public static LinearLocation linearLocationStructToLinearLocation(LinearLocationStruct linearLocationStruct) {
+ LinearLocation linearLocation = LOCATION_FACTORY.createLinearLocation();
+
+ for (Long segment: linearLocationStruct.segments) {
+ linearLocation.getSegments().add(segment.longValue());
+ }
+
+ linearLocation.setPositiveOffset(linearLocationStruct.positiveOffset.longValue());
+
+ linearLocation.setNegativeOffset(linearLocationStruct.negativeOffset.longValue());
+
+ return linearLocation;
+ }
+
+ public static LinearLocationStruct linearLocationToLinearLocationStruct(LinearLocation linearLocation) {
+ EList<Long> segments = linearLocation.getSegments();
+
+ UInt32 positiveOffset = new UInt32(linearLocation.getPositiveOffset());
+
+ UInt32 negativeOffset = new UInt32(linearLocation.getNegativeOffset());
+
+ LinearLocationStruct linearLocationStruct = new LinearLocationStruct(
+ segments, positiveOffset, negativeOffset);
+
+ return linearLocationStruct;
+ }
+
+ public static AreaLocation areaLocationStructToAreaLocation(AreaLocationStruct areaLocationStruct) {
+ AreaLocation areaLocation = LOCATION_FACTORY.createAreaLocation();
+
+ return areaLocation;
+ }
+
+ public static AreaLocationStruct areaLocationToAreaLocationStruct(AreaLocation areaLocation) {
+ AreaLocationStruct areaLocationStruct = new AreaLocationStruct();
+
+ return areaLocationStruct;
+ }
+
+ private static LocationInfo locationInfoDiscriminatedVariantToLocationInfo(LocationInfoDiscriminatedVariant locationInfoDiscriminatedVariant) {
+ LocationInfoType locationInfoType = LocationInfoType.getLocationInfoType(locationInfoDiscriminatedVariant.locationInfoType);
+ LocationInfoStruct locationInfoStruct = reconstructLocationInfoStruct(locationInfoType, locationInfoDiscriminatedVariant.locationInfo);
+ LOGGER.info("locationInfoStruct = " + locationInfoStruct);
+
+ LocationInfo locationInfo;
+
+ switch (locationInfoType) {
+ case POINT:
+ LOGGER.info("is PointLocationInfo");
+ PointLocationInfoStruct pointLocationInfoStruct = (PointLocationInfoStruct) locationInfoStruct;
+ locationInfo = pointLocationInfoStructToPointLocationInfo(pointLocationInfoStruct);
+ break;
+
+ case LINEAR:
+ LOGGER.info("is LinearLocationInfo");
+ LinearLocationInfoStruct linearLocationInfoStruct = (LinearLocationInfoStruct) locationInfoStruct;
+ locationInfo = linearLocationInfoStructToLinearLocationInfo(linearLocationInfoStruct);
+ break;
+
+ case AREA:
+ LOGGER.info("is AreaLocationInfo");
+ AreaLocationInfoStruct areaLocationInfoStruct = (AreaLocationInfoStruct) locationInfoStruct;
+ locationInfo = areaLocationInfoStructToAreaLocationInfo(areaLocationInfoStruct);
+ break;
+
+ default:
+ throw new RuntimeException("Illegal locationInfoType: " + locationInfoType);
+ }
+
+ return locationInfo;
+ }
+
+ @SuppressWarnings("unchecked")
+ private static LocationInfoStruct reconstructLocationInfoStruct(LocationInfoType locationInfoType, Variant<?> locationInfoVariant) {
+ LOGGER.info("reconstructLocationInfoStruct => locationInfoType = " + locationInfoType + ", locationInfoVariant" + locationInfoVariant);
+
+ Object[] structFields = (Object[]) locationInfoVariant.getValue();
+ LocationInfoStruct locationInfoStruct = null;
+
+ String name;
+ List<CoordinateStruct> mainLocationStructs;
+
+ if (structFields.length >= 2 &&
+ structFields[0] instanceof String &&
+ structFields[1] instanceof Vector) {
+ name = (String) structFields[0];
+ mainLocationStructs = reconstructCoordinateStructs((Vector<Object>) structFields[1]);
+ } else {
+ LOGGER.severe("Wrong signature for LocationInfo");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructLocationStruct field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for LocationInfo");
+ }
+
+ switch (locationInfoType) {
+ case POINT:
+ if (!(structFields.length == 3 &&
+ structFields[2] instanceof Integer)) {
+ LOGGER.severe("Wrong signature for PointLocationInfo");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructLocationStruct field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for PointLocationInfo");
+ }
+ LOGGER.info("PointLocationInfoStruct");
+ int locationType = (Integer) structFields[2];
+ LOGGER.info("locationType OK");
+ locationInfoStruct = new PointLocationInfoStruct(name, mainLocationStructs, locationType);
+ break;
+
+ case LINEAR:
+ if (!(structFields.length == 7 &&
+ structFields[2] instanceof String &&
+ structFields[3] instanceof String &&
+ structFields[4] instanceof String &&
+ structFields[5] instanceof String &&
+ structFields[6] instanceof Vector)) {
+ LOGGER.severe("Wrong signature for LinearLocationInfo");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructLocationStruct field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for LinearLocationInfo");
+ }
+ LOGGER.info("LinearLocationInfoStruct");
+ String fromLocationName = (String) structFields[2];
+ LOGGER.info("fromLocationName OK");
+ String fromLocationParentName = (String) structFields[3];
+ LOGGER.info("fromLocationParentName OK");
+ String toLocationName = (String) structFields[4];
+ LOGGER.info("toLocationName OK");
+ String toLocationParentName = (String) structFields[5];
+ LOGGER.info("toLocationParentName OK");
+ List<CoordinateStruct> coordinates = reconstructCoordinateStructs((Vector<Object>) structFields[6]);
+ LOGGER.info("coordinates OK");
+ locationInfoStruct = new LinearLocationInfoStruct(name, mainLocationStructs, fromLocationName,
+ fromLocationParentName, toLocationName, toLocationParentName, coordinates);
+ break;
+
+ case AREA:
+ if (!(structFields.length == 2)) {
+ LOGGER.severe("Wrong signature for AreaLocationInfo");
+ for (Object structField: structFields) {
+ LOGGER.severe("reconstructLocationStruct field = " + structField + " = " + structField.getClass().getName());
+ }
+ throw new RuntimeException("Wrong signature for AreaLocationInfo");
+ }
+ LOGGER.info("AreaLocationInfoStruct");
+ locationInfoStruct = new AreaLocationInfoStruct(name, mainLocationStructs);
+ break;
+ }
+
+ LOGGER.info("reconstructLocationInfoStruct <= " + locationInfoStruct);
+ return locationInfoStruct;
+ }
+
+ public static LocationInfo locationInfoStructToLocationInfo(LocationInfoStruct locationInfoStruct) {
+ if (locationInfoStruct instanceof PointLocationInfoStruct) {
+ return pointLocationInfoStructToPointLocationInfo((PointLocationInfoStruct) locationInfoStruct);
+ } else if (locationInfoStruct instanceof LinearLocationInfoStruct) {
+ return linearLocationInfoStructToLinearLocationInfo((LinearLocationInfoStruct) locationInfoStruct);
+ } else if (locationInfoStruct instanceof AreaLocationInfoStruct) {
+ return areaLocationInfoStructToAreaLocationInfo((AreaLocationInfoStruct) locationInfoStruct);
+ } else {
+ throw new IllegalArgumentException("Unknow subclass of LocationInfoStruct");
+ }
+ }
+
+ private static LocationInfoDiscriminatedVariant locationInfoToLocationInfoDiscriminatedVariant(LocationInfo locationInfo) {
+ LocationInfoType locationInfoType;
+ LocationInfoStruct locationInfoStruct;
+
+ if (locationInfo instanceof PointLocationInfo) {
+ locationInfoType = LocationInfoType.POINT;
+ locationInfoStruct = pointLocationInfoToPointLocationInfoStruct((PointLocationInfo) locationInfo);
+ } else if (locationInfo instanceof LinearLocationInfo) {
+ locationInfoType = LocationInfoType.LINEAR;
+ locationInfoStruct = linearLocationInfoToLinearLocationInfoStruct((LinearLocationInfo) locationInfo);
+ } else if (locationInfo instanceof AreaLocationInfo) {
+ locationInfoType = LocationInfoType.AREA;
+ locationInfoStruct = areaLocationInfoToAreaLocationInfoStruct((AreaLocationInfo) locationInfo);
+ } else {
+ throw new IllegalArgumentException("Unknow subclass of LocationInfo");
+ }
+
+ Variant<? extends LocationInfoStruct> locationInfoVariant = new Variant<LocationInfoStruct>(locationInfoStruct);
+ return new LocationInfoDiscriminatedVariant(locationInfoType.getValue(), locationInfoVariant);
+ }
+
+ public static PointLocationInfo pointLocationInfoStructToPointLocationInfo(PointLocationInfoStruct pointLocationInfoStruct) {
+ PointLocationInfo pointLocationInfo = LOCATION_FACTORY.createPointLocationInfo();
+
+ String name = pointLocationInfoStruct.name;
+ pointLocationInfo.setName(name);
+
+ if (pointLocationInfoStruct.mainLocation.size() == 1) {
+ Coordinate mainLocation = coordinateStructToCoordinate(pointLocationInfoStruct.mainLocation.get(0));
+ pointLocationInfo.setMainLocation(mainLocation);
+ } else if (pointLocationInfoStruct.mainLocation.size() != 0){
+ throw new RuntimeException("Illegal size of mainLocation: " + pointLocationInfoStruct.mainLocation.size());
+ }
+
+ PointLocationType pointLocationType = PointLocationType.get(pointLocationInfoStruct.locationType);
+ pointLocationInfo.setLocationType(pointLocationType);
+
+ return pointLocationInfo;
+ }
+
+ public static PointLocationInfoStruct pointLocationInfoToPointLocationInfoStruct(PointLocationInfo pointLocationInfo) {
+ String name = pointLocationInfo.getName();
+
+ Coordinate mainLocation = pointLocationInfo.getMainLocation();
+ List<CoordinateStruct> mainLocationStructs = new ArrayList<>();
+ if (mainLocation != null) {
+ CoordinateStruct mainLocationStruct = coordinateToCoordinateStruct(mainLocation);
+ mainLocationStructs.add(mainLocationStruct);
+ }
+
+ int locationType = pointLocationInfo.getLocationType().getValue();
+
+ PointLocationInfoStruct pointLocationInfoStruct = new PointLocationInfoStruct(
+ name, mainLocationStructs, locationType);
+
+ return pointLocationInfoStruct;
+ }
+
+ public static LinearLocationInfo linearLocationInfoStructToLinearLocationInfo(LinearLocationInfoStruct linearLocationInfoStruct) {
+ LinearLocationInfo linearLocationInfo = LOCATION_FACTORY.createLinearLocationInfo();
+
+ String name = linearLocationInfoStruct.name;
+ if (!name.isEmpty()) {
+ linearLocationInfo.setName(name);
+ }
+
+ if (linearLocationInfoStruct.mainLocation.size() == 1) {
+ Coordinate mainLocation = coordinateStructToCoordinate(linearLocationInfoStruct.mainLocation.get(0));
+ linearLocationInfo.setMainLocation(mainLocation);
+ } else if (linearLocationInfoStruct.mainLocation.size() != 0){
+ throw new RuntimeException("Illegal size of mainLocation: " + linearLocationInfoStruct.mainLocation.size());
+ }
+
+ if (!linearLocationInfoStruct.fromLocationName.isEmpty()) {
+ linearLocationInfo.setFromLocationName(linearLocationInfoStruct.fromLocationName);
+ }
+
+ if (!linearLocationInfoStruct.fromLocationParentName.isEmpty()) {
+ linearLocationInfo.setFromLocationParentName(linearLocationInfoStruct.fromLocationParentName);
+ }
+
+ if (!linearLocationInfoStruct.toLocationName.isEmpty()) {
+ linearLocationInfo.setToLocationName(linearLocationInfoStruct.toLocationName);
+ }
+
+ if (!linearLocationInfoStruct.toLocationParentName.isEmpty()) {
+ linearLocationInfo.setToLocationParentName(linearLocationInfoStruct.toLocationParentName);
+ }
+
+ for (CoordinateStruct coordinateStruct: linearLocationInfoStruct.coordinates) {
+ Coordinate coordinate = coordinateStructToCoordinate(coordinateStruct);
+ linearLocationInfo.getCoordinates().add(coordinate);
+ }
+
+ return linearLocationInfo;
+ }
+
+ public static LinearLocationInfoStruct linearLocationInfoToLinearLocationInfoStruct(LinearLocationInfo linearLocationInfo) {
+ String name;
+ if (linearLocationInfo.getName() != null) {
+ name = linearLocationInfo.getName();
+ } else {
+ name = "";
+ }
+
+ Coordinate mainLocation = linearLocationInfo.getMainLocation();
+ List<CoordinateStruct> mainLocationStructs = new ArrayList<>();
+ if (mainLocation != null) {
+ CoordinateStruct mainLocationStruct = coordinateToCoordinateStruct(mainLocation);
+ mainLocationStructs.add(mainLocationStruct);
+ }
+
+ String fromLocationName;
+ if (linearLocationInfo.getFromLocationName() != null) {
+ fromLocationName = linearLocationInfo.getFromLocationName();
+ } else {
+ fromLocationName = "";
+ }
+
+ String fromLocationParentName;
+ if (linearLocationInfo.getFromLocationParentName() != null) {
+ fromLocationParentName = linearLocationInfo.getFromLocationParentName();
+ } else {
+ fromLocationParentName = "";
+ }
+
+ String toLocationName;
+ if (linearLocationInfo.getToLocationName() != null) {
+ toLocationName = linearLocationInfo.getToLocationName();
+ } else {
+ toLocationName = "";
+ }
+
+ String toLocationParentName;
+ if (linearLocationInfo.getToLocationParentName() != null) {
+ toLocationParentName = linearLocationInfo.getToLocationParentName();
+ } else {
+ toLocationParentName = "";
+ }
+
+ EList<Coordinate> coordinates = linearLocationInfo.getCoordinates();
+ List<CoordinateStruct> coordinateStructs = new ArrayList<>();
+ for (int i = 0; i < coordinates.size(); i++) {
+ CoordinateStruct coordinateStruct = coordinateToCoordinateStruct(coordinates.get(i));
+ coordinateStructs.add(coordinateStruct);
+ }
+
+ LinearLocationInfoStruct linearLocationInfoStruct = new LinearLocationInfoStruct(
+ name, mainLocationStructs,
+ fromLocationName, fromLocationParentName,
+ toLocationName, toLocationParentName,
+ coordinateStructs);
+
+ return linearLocationInfoStruct;
+ }
+
+ public static AreaLocationInfo areaLocationInfoStructToAreaLocationInfo(AreaLocationInfoStruct areaLocationInfoStruct) {
+ AreaLocationInfo areaLocationInfo = LOCATION_FACTORY.createAreaLocationInfo();
+
+ String name = areaLocationInfoStruct.name;
+ areaLocationInfo.setName(name);
+
+ if (areaLocationInfoStruct.mainLocation.size() == 1) {
+ Coordinate mainLocation = coordinateStructToCoordinate(areaLocationInfoStruct.mainLocation.get(0));
+ areaLocationInfo.setMainLocation(mainLocation);
+ } else if (areaLocationInfoStruct.mainLocation.size() != 0){
+ throw new RuntimeException("Illegal size of mainLocation: " + areaLocationInfoStruct.mainLocation.size());
+ }
+
+ return areaLocationInfo;
+ }
+
+ public static AreaLocationInfoStruct areaLocationInfoToAreaLocationInfoStruct(AreaLocationInfo areaLocationInfo) {
+ String name = areaLocationInfo.getName();
+
+ Coordinate mainLocation = areaLocationInfo.getMainLocation();
+ List<CoordinateStruct> mainLocationStructs = new ArrayList<>();
+ if (mainLocation != null) {
+ CoordinateStruct mainLocationStruct = coordinateToCoordinateStruct(mainLocation);
+ mainLocationStructs.add(mainLocationStruct);
+ }
+
+ AreaLocationInfoStruct areaLocationInfoStruct = new AreaLocationInfoStruct(
+ name, mainLocationStructs);
+
+ return areaLocationInfoStruct;
+ }
+
+ private static List<CoordinateStruct> reconstructCoordinateStructs(Vector<Object> vector) {
+ LOGGER.info("reconstructCoordinateStructs => " + vector);
+ List<CoordinateStruct> coordinateStructs = new ArrayList<>();
+
+ for (Object object: vector) {
+ if (object instanceof Object[]) {
+ CoordinateStruct coordinateStruct = reconstructCoordinateStruct((Object[]) object);
+ coordinateStructs.add(coordinateStruct);
+ } else {
+ LOGGER.severe("Wrong type");
+ }
+ }
+
+ LOGGER.info("reconstructCoordinateStructs <= " + coordinateStructs);
+ return coordinateStructs;
+ }
+
+ private static CoordinateStruct reconstructCoordinateStruct(Object[] objects) {
+ LOGGER.info("reconstructCoordinateStruct => " + objects);
+
+ CoordinateStruct coordinateStruct = null;
+
+ if (objects.length != 3) {
+ LOGGER.info("Wrong number of elements");
+ return null;
+ }
+
+ Double latitude = null;
+ Double longitude = null;
+ int altitude = -1;
+
+ if (objects[0] instanceof Double) {
+ latitude = (Double) objects[0];
+ LOGGER.info("latitude OK");
+ } else {
+ LOGGER.severe("Wrong type for latitude");
+ }
+
+ if (objects[1] instanceof Double) {
+ longitude = (Double) objects[1];
+ LOGGER.info("longitude OK");
+ } else {
+ LOGGER.severe("Wrong type for longitude");
+ }
+
+ if (objects[2] instanceof Integer) {
+ altitude = (Integer) objects[2];
+ LOGGER.info("altitude OK");
+ } else {
+ LOGGER.severe("Wrong type for altitude");
+ }
+
+ coordinateStruct = new CoordinateStruct(latitude, longitude, altitude);
+
+ LOGGER.info("reconstructCoordinateStruct <= " + coordinateStruct);
+ return coordinateStruct;
+ }
+
+ private static Advice adviceStructToAdvice(AdviceStruct adviceStruct) {
+ LOGGER.info("adviceStructToAdvice => adviceStruct = " + adviceStruct);
+ Advice advice = TRAFFIC_INCIDENT_FACTORY.createAdvice();
+
+ AdviceCode mainAdvice = AdviceCode.get(adviceStruct.mainAdvice);
+ advice.setMainAdvice(mainAdvice);
+
+ Byte subAdviceValue = adviceStruct.subAdvice;
+ if (subAdviceValue != 0) {
+ Object subAdviceObj;
+ switch (mainAdvice) {
+ case DO_NOT_LEAVE_YOUR_VEHICLE:
+ subAdviceObj = DoNotLeaveYourVehicle.get(subAdviceValue);
+ break;
+
+ case DRIVE_CAREFULLY:
+ subAdviceObj = DriveCarefully.get(subAdviceValue);
+ break;
+
+ case DRIVING_NOT_ALLOWED:
+ subAdviceObj = DrivingNotAllowed.get(subAdviceValue);
+ break;
+
+ case FOLLOW_DIVERSION:
+ subAdviceObj = FollowDiversion.get(subAdviceValue);
+ break;
+
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND:
+ subAdviceObj = GivingPathVehiclesFromBehind.get(subAdviceValue);
+ break;
+
+ case OVERTAKING_NOT_ALLOWED:
+ subAdviceObj = OvertakingNotAllowed.get(subAdviceValue);
+ break;
+
+ case USE_TOLL_LANES:
+ subAdviceObj = UseTollLanes.get(subAdviceValue);
+ break;
+
+ case AVOID_THE_AREA:
+ case DO_NOT_DIVERT:
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE:
+ case FOLLOW_POLICE_INSTRUCTIONS:
+ case NO_DIVERSION_TO_RECOMMEND:
+ case SWITCH_ON_RADIO:
+ case USE_HARD_SHOULDER_AS_LANE:
+ case WAIT_FOR_CONVOI:
+ case WAIT_FOR_IMPROVED_WEATHER:
+ case WAIT_FOR_POLICE_PATROL:
+ throw new IllegalArgumentException("Subadvice for main advice which doesn't support a subadvice");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainAdvice");
+ }
+ advice.setSubAdvice(subAdviceObj);
+ }
+
+ if (!adviceStruct.freeText.isEmpty()) {
+ advice.setFreeText(adviceStruct.freeText);
+ }
+
+ for (ApplicabilityStruct applicabilityStruct: adviceStruct.applicability) {
+ Applicability applicability = applicabilityStructToApplicability(applicabilityStruct);
+ advice.getApplicability().add(applicability);
+ }
+
+ LOGGER.info("adviceStructToAdvice <= advice = " + advice);
+ return advice;
+ }
+
+ private static AdviceStruct adviceToAdviceStruct(Advice advice) {
+ Byte mainAdvice = (Byte) (byte) advice.getMainAdvice().getValue();
+
+ Object subAdviceObj = advice.getSubAdvice();
+ int subAdviceValue = 0;
+ if (subAdviceObj != null) {
+ switch (advice.getMainAdvice()) {
+ case DO_NOT_LEAVE_YOUR_VEHICLE:
+ subAdviceValue = ((DoNotLeaveYourVehicle) subAdviceObj).getValue();
+ break;
+
+ case DRIVE_CAREFULLY:
+ subAdviceValue = ((DriveCarefully) subAdviceObj).getValue();
+ break;
+
+ case DRIVING_NOT_ALLOWED:
+ subAdviceValue = ((DrivingNotAllowed) subAdviceObj).getValue();
+ break;
+
+ case FOLLOW_DIVERSION:
+ subAdviceValue = ((FollowDiversion) subAdviceObj).getValue();
+ break;
+
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND:
+ subAdviceValue = ((GivingPathVehiclesFromBehind) subAdviceObj).getValue();
+ break;
+
+ case OVERTAKING_NOT_ALLOWED:
+ subAdviceValue = ((OvertakingNotAllowed) subAdviceObj).getValue();
+ break;
+
+ case USE_TOLL_LANES:
+ subAdviceValue = ((UseTollLanes) subAdviceObj).getValue();
+ break;
+
+ case AVOID_THE_AREA:
+ case DO_NOT_DIVERT:
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE:
+ case FOLLOW_POLICE_INSTRUCTIONS:
+ case NO_DIVERSION_TO_RECOMMEND:
+ case SWITCH_ON_RADIO:
+ case USE_HARD_SHOULDER_AS_LANE:
+ case WAIT_FOR_CONVOI:
+ case WAIT_FOR_IMPROVED_WEATHER:
+ case WAIT_FOR_POLICE_PATROL:
+ throw new IllegalArgumentException("Subadvice for main advice which doesn't support a subadvice");
+
+ default:
+ throw new IllegalArgumentException("Unknown mainAdvice");
+ }
+ }
+ Byte subAdvice = (Byte) (byte) subAdviceValue;
+
+ String freeText = "";
+ if (advice.isSetFreeText()) {
+ freeText = advice.getFreeText();
+ }
+
+ EList<Applicability> applicabilities = advice.getApplicability();
+ List<ApplicabilityStruct> applicabilityStructs = new ArrayList<>();
+ for (int i = 0; i < applicabilities.size(); i++) {
+ ApplicabilityStruct applicabilityStruct = applicabilityToApplicabilityStruct(applicabilities.get(i));
+ applicabilityStructs.add(applicabilityStruct);
+ }
+
+ AdviceStruct adviceStruct = new AdviceStruct(
+ mainAdvice,
+ subAdvice,
+ freeText,
+ applicabilityStructs);
+
+ return adviceStruct;
+ }
+
+ public static Applicability applicabilityStructToApplicability(ApplicabilityStruct applicabilityStruct) {
+ LOGGER.info("applicabilityStructToApplicability() => " + applicabilityStruct);
+ Applicability applicability = TRAFFIC_INCIDENT_FACTORY.createApplicability();
+
+ if (applicabilityStruct.vehicleType != 0) {
+ VehicleType vehicleType = VehicleType.get(applicabilityStruct.vehicleType);
+ applicability.setVehicleType(vehicleType);
+ LOGGER.info("applicabilityStructToApplicability: vehicleType set to " + vehicleType + " = " + vehicleType.getValue());
+ }
+
+ for (VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct: applicabilityStruct.vehicleRelatedRestrictions) {
+ LOGGER.info("applicabilityStructToApplicability: loop for vehicleRelatedRestrictionStruct = " + vehicleRelatedRestrictionStruct);
+ VehicleRelatedRestriction vehicleRelatedRestriction = vehicleRelatedRestrictionStructToVehicleRelatedRestriction(vehicleRelatedRestrictionStruct);
+ applicability.getVehicleRelatedRestrictions().add(vehicleRelatedRestriction);
+ LOGGER.info("applicabilityStructToApplicability: loop: vehicleRelatedRestriction = " + vehicleRelatedRestriction);
+ }
+
+ LOGGER.info("applicabilityStructToApplicability() <= " + applicability);
+ return applicability;
+ }
+
+ public static ApplicabilityStruct applicabilityToApplicabilityStruct(Applicability applicability) {
+ Byte vehicleType = 0;
+ if (applicability.getVehicleType() != null) {
+ vehicleType = (Byte) (byte) applicability.getVehicleType().getValue();
+ }
+
+ EList<VehicleRelatedRestriction> vehicleRelatedRestrictions = applicability.getVehicleRelatedRestrictions();
+ List<VehicleRelatedRestrictionStruct> vehicleRelatedRestrictionStructs = new ArrayList<>();
+ for (int i = 0; i < vehicleRelatedRestrictions.size(); i++) {
+ VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct = vehicleRelatedRestrictionToVehicleRelatedRestrictionStruct(vehicleRelatedRestrictions.get(i));
+ vehicleRelatedRestrictionStructs.add(vehicleRelatedRestrictionStruct);
+ }
+
+ ApplicabilityStruct applicabilityStruct = new ApplicabilityStruct(
+ vehicleType,
+ vehicleRelatedRestrictionStructs);
+
+ return applicabilityStruct;
+ }
+
+ public static VehicleRelatedRestriction vehicleRelatedRestrictionStructToVehicleRelatedRestriction(VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct) {
+ LOGGER.info("vehicleRelatedRestrictionStructToVehicleRelatedRestriction() => " + vehicleRelatedRestrictionStruct);
+ VehicleRelatedRestriction vehicleRelatedRestriction = TRAFFIC_INCIDENT_FACTORY.createVehicleRelatedRestriction();
+ RestrictionType restrictionType = RestrictionType.get(vehicleRelatedRestrictionStruct.restrictionType);
+ vehicleRelatedRestriction.setRestrictionType(restrictionType);
+ LOGGER.info("restrictionType = " + restrictionType + " = " + restrictionType.getValue());
+
+ if (vehicleRelatedRestrictionStruct.restrictionValue.size() == 1) {
+ vehicleRelatedRestriction.setRestrictionValue(vehicleRelatedRestrictionStruct.restrictionValue.get(0));
+ LOGGER.info("restrictionValue = " + vehicleRelatedRestriction.getRestrictionValue());
+ } else if (vehicleRelatedRestrictionStruct.restrictionValue.size() == 0) {
+ LOGGER.info("No restrictionValue");
+ } else {
+ throw new RuntimeException("Illegal size of restrictionValue: " + vehicleRelatedRestrictionStruct.restrictionValue);
+ }
+
+ if (vehicleRelatedRestrictionStruct.restrictionLocation.size() == 1) {
+ Location restrictionLocation = locationDiscriminatedVariantToLocation(vehicleRelatedRestrictionStruct.restrictionLocation.get(0));
+ vehicleRelatedRestriction.setRestrictionLocation(restrictionLocation);
+ } else if (vehicleRelatedRestrictionStruct.restrictionLocation.size() == 0) {
+ // No action
+ } else {
+ throw new RuntimeException("Illegal size for restrictionLocation: " + vehicleRelatedRestrictionStruct.restrictionLocation.size());
+ }
+ LOGGER.info("RestrictionLocation is handled");
+
+ LOGGER.info("vehicleRelatedRestrictionStructToVehicleRelatedRestriction() <= " + vehicleRelatedRestriction);
+ return vehicleRelatedRestriction;
+ }
+
+ public static VehicleRelatedRestrictionStruct vehicleRelatedRestrictionToVehicleRelatedRestrictionStruct(VehicleRelatedRestriction vehicleRelatedRestriction) {
+ Byte restrictionType = (Byte) (byte) vehicleRelatedRestriction.getRestrictionType().getValue();
+
+ List<Integer> restrictionValues = new ArrayList<>();
+ if (vehicleRelatedRestriction.getRestrictionValue() != null) {
+ Integer restrictionValue = vehicleRelatedRestriction.getRestrictionValue();
+ restrictionValues.add(restrictionValue);
+ }
+
+ List<LocationDiscriminatedVariant> restrictionLocationDiscriminatedVariants = new ArrayList<>();
+ if (vehicleRelatedRestriction.getRestrictionLocation() != null) {
+ LocationDiscriminatedVariant restrictionLocationDiscriminatedVariant = locationToLocationDiscriminatedVariant(vehicleRelatedRestriction.getRestrictionLocation());
+ restrictionLocationDiscriminatedVariants.add(restrictionLocationDiscriminatedVariant);
+ }
+
+ VehicleRelatedRestrictionStruct vehicleRelatedRestrictionStruct = new VehicleRelatedRestrictionStruct(
+ restrictionType, restrictionValues, restrictionLocationDiscriminatedVariants);
+
+ return vehicleRelatedRestrictionStruct;
+ }
+
+ public static LaneRestrictions laneRestrictionsStructToLaneRestrictions(LaneRestrictionsStruct laneRestrictionsStruct) {
+ LaneRestrictions laneRestrictions = TRAFFIC_INCIDENT_FACTORY.createLaneRestrictions();
+
+ if (laneRestrictionsStruct.laneRestrictionType != 0 ) {
+ LaneRestrictionType laneRestrictionType = LaneRestrictionType.get(laneRestrictionsStruct.laneRestrictionType);
+ laneRestrictions.setLaneRestrictionType(laneRestrictionType);
+ }
+
+ if (laneRestrictionsStruct.numberOfLanes != -1) {
+ laneRestrictions.setNumberOfLanes(laneRestrictionsStruct.numberOfLanes);
+ }
+
+ return laneRestrictions;
+ }
+
+ public static LaneRestrictionsStruct laneRestrictionsToLaneRestrictionsStruct(LaneRestrictions laneRestrictions) {
+ Byte laneRestrictionType = 0;
+ if (laneRestrictions.getLaneRestrictionType() != null) {
+ laneRestrictionType = (Byte) (byte) laneRestrictions.getLaneRestrictionType().getValue();
+ }
+
+ int numberOfLanes = -1;
+ if (laneRestrictions.getNumberOfLanes() != null) {
+ numberOfLanes= laneRestrictions.getNumberOfLanes();
+ }
+
+ LaneRestrictionsStruct laneRestrictionsStruct = new LaneRestrictionsStruct(
+ laneRestrictionType,
+ numberOfLanes);
+
+ return laneRestrictionsStruct;
+ }
+
+ public static IconSet iconSetStructToIconSet(IconSetStruct iconSetStruct) {
+ IconSet iconSet = ICON_SET_FACTORY.createIconSet();
+
+ iconSet.setIconSetId(iconSetStruct.iconSetId);
+
+ if (iconSetStruct.colorType != 0) {
+ ColorType colorType = ColorType.get(iconSetStruct.colorType);
+ iconSet.setColorType(colorType);
+ }
+
+ if (iconSetStruct.dimension != 0) {
+ IconDimension dimension = IconDimension.get(iconSetStruct.dimension);
+ iconSet.setDimension(dimension);
+ }
+
+ if (iconSetStruct.size.length != 0) {
+ IconSize size = iconSizeStructToIconSize(iconSetStruct.size[0]);
+ iconSet.setSize(size);
+ }
+
+ iconSet.setDayTimeIcon(iconSetStruct.dayTimeIcon);
+
+ iconSet.setThemeId(iconSetStruct.themeId);
+
+ iconSet.setMediumType(iconSetStruct.mediumType);
+
+ for (IconDescriptorStruct iconDescriptorStruct: iconSetStruct.iconDescriptors) {
+ IconDescriptor iconDescriptor = iconDescriptorStructToIconDescriptor(iconDescriptorStruct);
+ iconSet.getIconDescriptors().add(iconDescriptor);
+ }
+
+ return iconSet;
+ }
+
+ public static IconSetStruct iconSetToIconSetStruct(IconSet iconSet) {
+ int iconSetId = iconSet.getIconSetId();
+ byte colorType = 0;
+ if (iconSet.isSetColorType()) {
+ colorType = (byte) iconSet.getColorType().getValue();
+ }
+ byte dimension = 0;
+ if (iconSet.isSetDimension()) {
+ dimension = (byte) iconSet.getDimension().getValue();
+ }
+ IconSizeStruct[] iconSizeStruct;
+ if (iconSet.isSetSize()) {
+ iconSizeStruct = new IconSizeStruct[1];
+ iconSizeStruct[0] = iconSizeToIconSizeStruct(iconSet.getSize());
+ } else {
+ iconSizeStruct = new IconSizeStruct[0];
+ }
+ Boolean dayTimeIcon = iconSet.isDayTimeIcon();
+ int themeId = iconSet.getThemeId();
+ String mediumType = iconSet.getMediumType();
+
+ EList<IconDescriptor> iconDescriptors = iconSet.getIconDescriptors();
+ IconDescriptorStruct[] iconDescriptorStructs = new IconDescriptorStruct[iconDescriptors.size()];
+ for (int i = 0; i < iconDescriptors.size(); i++) {
+ IconDescriptorStruct iconDescriptorStruct = iconDescriptorToIconDescriptorStruct(iconDescriptors.get(i));
+ iconDescriptorStructs[i] = iconDescriptorStruct;
+ }
+
+ IconSetStruct iconSetStruct = new IconSetStruct(
+ iconSetId,
+ colorType,
+ dimension,
+ iconSizeStruct,
+ dayTimeIcon,
+ themeId,
+ mediumType,
+ iconDescriptorStructs);
+
+ return iconSetStruct;
+ }
+
+ public static IconDescriptor iconDescriptorStructToIconDescriptor(IconDescriptorStruct iconDescriptorStruct) {
+ IconDescriptor iconDescriptor = ICON_SET_FACTORY.createIconDescriptor();
+
+ if (!iconDescriptorStruct.url.isEmpty()) {
+ iconDescriptor.setUrl(iconDescriptorStruct.url);
+ }
+ iconDescriptor.setIconId(iconDescriptorStruct.iconId);
+
+ return iconDescriptor;
+ }
+
+ public static IconDescriptorStruct iconDescriptorToIconDescriptorStruct(IconDescriptor iconDescriptor) {
+ String url = iconDescriptor.getUrl();
+ if (url == null) {
+ url = "";
+ }
+ int iconId = iconDescriptor.getIconId();
+
+ IconDescriptorStruct iconDescriptorStruct = new IconDescriptorStruct(url, iconId);
+
+ return iconDescriptorStruct;
+ }
+
+ public static IconSize iconSizeStructToIconSize(IconSizeStruct sizeStruct) {
+ IconSize iconSize = ICON_SET_FACTORY.createIconSize();
+
+ iconSize.setWidth(sizeStruct.width);
+ iconSize.setHeight(sizeStruct.height);
+ iconSize.setDpi(sizeStruct.dpi);
+
+ return iconSize;
+ }
+
+ public static IconSizeStruct iconSizeToIconSizeStruct(IconSize iconSize) {
+ int width = iconSize.getWidth();
+ int height = iconSize.getHeight();
+ int dpi = iconSize.getDpi();
+
+ IconSizeStruct iconSizeStruct = new IconSizeStruct(width, height, dpi);
+
+ return iconSizeStruct;
+ }
+
+ public static IconDefinition iconDefinitionStructToIconDefinition(IconDefinitionStruct iconDefinitionStruct) {
+ IconDefinition iconDefinition = ICON_SET_FACTORY.createIconDefinition();
+
+ IconInfo iconInfo = iconInfoStructToIconInfo(iconDefinitionStruct.iconInfo);
+ iconDefinition.setIconInfo(iconInfo);
+
+ IconData iconData = iconDataStructToIconData(iconDefinitionStruct.iconData);
+ iconDefinition.setIconData(iconData);
+
+ return iconDefinition;
+ }
+
+ public static IconDefinitionStruct iconDefinitionToIconDefinitionStruct(IconDefinition iconDefinition) {
+ IconInfoStruct iconInfoStruct = iconInfoToIconInfoStruct(iconDefinition.getIconInfo());
+ IconDataStruct iconDataStruct = iconDataToIconDataStruct(iconDefinition.getIconData());
+
+ IconDefinitionStruct iconDefinitionStruct = new IconDefinitionStruct(iconInfoStruct, iconDataStruct);
+
+ return iconDefinitionStruct;
+ }
+
+ public static IconData iconDataStructToIconData(IconDataStruct iconDataStruct) {
+ IconData iconData = ICON_SET_FACTORY.createIconData();
+
+ iconData.setData(iconDataStruct.data);
+
+ return iconData;
+ }
+
+ public static IconDataStruct iconDataToIconDataStruct(IconData iconData) {
+ IconDataStruct iconDataStruct = new IconDataStruct(iconData.getData());
+
+ return iconDataStruct;
+ }
+
+ public static IconInfo iconInfoStructToIconInfo(IconInfoStruct iconInfoStruct) {
+ IconInfo iconInfo = ICON_SET_FACTORY.createIconInfo();
+
+ iconInfo.setIconSetId(iconInfoStruct.iconSetId);
+ iconInfo.setIconId(iconInfoStruct.iconId);
+
+ return iconInfo;
+ }
+
+ public static IconInfoStruct iconInfoToIconInfoStruct(IconInfo iconInfo) {
+ int iconSetId = iconInfo.getIconSetId();
+ int iconId = iconInfo.getIconId();
+
+ IconInfoStruct iconInfoStruct = new IconInfoStruct(iconSetId, iconId);
+
+ return iconInfoStruct;
+ }
+
+ public static CategoryDefinition categoryDefinitionStructToCategoryDefinition(CategoryDefinitionStruct categoryDefinitionStruct) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ List<LocalizedStringStruct> localizedNamesStructs = categoryDefinitionStruct.localizedNames;
+ LocalizedString[] localizedNames = new LocalizedString[localizedNamesStructs.size()];
+ for (int i = 0; i < localizedNamesStructs.size(); i++) {
+ LocalizedStringStruct localizedStringStruct = localizedNamesStructs.get(i);
+ LocalizedString localizedString = localizedStringStructToLocalizedString(localizedStringStruct);
+ localizedNames[i] = localizedString;
+ }
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+ categoryDefinition.setCategoryId(categoryDefinitionStruct.categoryId);
+ List<IconInfoStruct> iconStructs = categoryDefinitionStruct.icons;
+ IconInfo[] icons = new IconInfo[iconStructs.size()];
+ for (int i = 0; i < iconStructs.size(); i++) {
+ IconInfoStruct iconInfoStruct = iconStructs.get(i);
+ IconInfo iconInfo = iconInfoStructToIconInfo(iconInfoStruct);
+ icons[i] = iconInfo;
+ }
+ categoryDefinition.setIcons(icons);
+
+ categoryDefinition.setExpression(categoryDefinitionStruct.expression);
+
+ return categoryDefinition;
+ }
+
+ public static CategoryDefinitionStruct categoryDefinitionToCategoryDefinitionStruct(CategoryDefinition categoryDefinition) {
+ LocalizedString[] localizedNames = categoryDefinition.getLocalizedNames();
+ List<LocalizedStringStruct> localizedNameStructs = new ArrayList<>();
+ for (int i = 0; i < localizedNames.length; i++) {
+ LocalizedStringStruct localizedStringStruct = localizedStringToLocalizedStringStruct(localizedNames[i]);
+ localizedNameStructs.add(localizedStringStruct);
+ }
+
+ int categoryId = categoryDefinition.getCategoryId();
+
+ IconInfo[] icons = categoryDefinition.getIcons();
+ List<IconInfoStruct> iconInfoStructs = new ArrayList<>();
+ for (int i = 0; i < icons.length; i++) {
+ IconInfoStruct iconInfoStruct = iconInfoToIconInfoStruct(icons[i]);
+ iconInfoStructs.add(iconInfoStruct);
+ }
+
+ String expression = categoryDefinition.getExpression();
+
+ CategoryDefinitionStruct categoryDefinitionStruct = new CategoryDefinitionStruct(
+ localizedNameStructs, categoryId, iconInfoStructs, expression);
+
+ return categoryDefinitionStruct;
+ }
+
+ public static Coordinate coordinateStructToCoordinate(CoordinateStruct coordinateStruct) {
+ Coordinate coordinate = COMMON_FACTORY.createCoordinate();
+
+ coordinate.setLatitude(coordinateStruct.latitude);
+ coordinate.setLongitude(coordinateStruct.longitude);
+ coordinate.setAltitude(coordinateStruct.altitude);
+
+ return coordinate;
+ }
+
+ public static CoordinateStruct coordinateToCoordinateStruct(Coordinate coordinate) {
+ Double latitude = coordinate.getLatitude();
+ Double longitude = coordinate.getLongitude();
+ int altitude = coordinate.getAltitude();
+
+ CoordinateStruct coordinateStruct = new CoordinateStruct(
+ latitude, longitude, altitude);
+
+ return coordinateStruct;
+ }
+
+ public static RectangularArea rectangularAreaStructToRectangularArea(RectangularAreaStruct rectangularAreastruct) {
+ RectangularArea rectangularArea = COMMON_FACTORY.createRectangularArea();
+
+ Coordinate bottomLeft = coordinateStructToCoordinate(rectangularAreastruct.bottomLeft);
+ rectangularArea.setBottomLeft(bottomLeft);
+
+ Coordinate topRight = coordinateStructToCoordinate(rectangularAreastruct.topRight);
+ rectangularArea.setTopRight(topRight);
+
+ return rectangularArea;
+ }
+
+ public static RectangularAreaStruct rectangularAreaToRectangularAreaStruct(RectangularArea rectangularArea) {
+ CoordinateStruct bottomLeft = coordinateToCoordinateStruct(rectangularArea.getBottomLeft());
+ CoordinateStruct topRight = coordinateToCoordinateStruct(rectangularArea.getTopRight());
+
+ RectangularAreaStruct rectangularAreaStruct = new RectangularAreaStruct(
+ bottomLeft, topRight);
+
+ return rectangularAreaStruct;
+ }
+
+ public static LocalizedString localizedStringStructToLocalizedString(LocalizedStringStruct localizedStringStruct) {
+ LocalizedString localizedString = COMMON_FACTORY.createLocalizedString();
+
+ localizedString.setLanguageCode(localizedStringStruct.languageCode);
+ if (!localizedStringStruct.countryCode.isEmpty()) {
+ localizedString.setCountryCode(localizedStringStruct.countryCode);
+ }
+ localizedString.setString(localizedStringStruct.string);
+
+ return localizedString;
+ }
+
+ public static LocalizedStringStruct localizedStringToLocalizedStringStruct(LocalizedString localizedString) {
+ String languageCode = localizedString.getLanguageCode();
+ if (languageCode == null) {
+ throw new IllegalArgumentException("languageCode may not be null");
+ }
+ String countryCode = localizedString.getCountryCode();
+ if (countryCode == null) {
+ countryCode = "";
+ }
+ String string = localizedString.getString();
+ if (string == null) {
+ throw new IllegalArgumentException("string may not be null");
+ }
+
+ LocalizedStringStruct localizedStringStruct = new LocalizedStringStruct(
+ languageCode, countryCode, string);
+
+ return localizedStringStruct;
+ }
+
+ public static FeedInformation feedInformationStructToFeedInformation(FeedInformationStruct feedInformationStruct) {
+ FeedInformation feedInformation = TRAFFIC_INCIDENTS_SVC_FACTORY.createFeedInformation();
+
+ if (!feedInformationStruct.dataProviderName.isEmpty()) {
+ feedInformation.setDataProviderName(feedInformationStruct.dataProviderName);
+ }
+
+ if (!feedInformationStruct.protocolName.isEmpty()) {
+ feedInformation.setProtocolName(feedInformationStruct.protocolName);
+ }
+
+ if (!feedInformationStruct.communicationChannelName.isEmpty()) {
+ feedInformation.setCommunicationChannelName(feedInformationStruct.communicationChannelName);
+ }
+
+ if (feedInformationStruct.feedStatus != 0) {
+ TrafficIncidentFeedStatus trafficIncidentFeedStatus = TrafficIncidentFeedStatus.get(feedInformationStruct.feedStatus);
+ feedInformation.setFeedStatus(trafficIncidentFeedStatus);
+ }
+
+ if (feedInformationStruct.trafficIncidentsStatus != 0) {
+ TrafficIncidentsStatus trafficIncidentsStatus = TrafficIncidentsStatus.get(feedInformationStruct.trafficIncidentsStatus);
+ feedInformation.setTrafficIncidentsStatus(trafficIncidentsStatus);
+ }
+
+ return feedInformation;
+ }
+
+ public static FeedInformationStruct feedInformationToFeedInformationStruct(FeedInformation feedInformation) {
+ String dataProviderName = feedInformation.getDataProviderName();
+ if (dataProviderName == null) {
+ dataProviderName = "";
+ }
+
+ String protocolName = feedInformation.getProtocolName();
+ if (protocolName == null) {
+ protocolName = "";
+ }
+
+ String communicationChannelName = feedInformation.getCommunicationChannelName();
+ if (communicationChannelName == null) {
+ communicationChannelName = "";
+ }
+
+ TrafficIncidentFeedStatus feedStatus = feedInformation.getFeedStatus();
+ Byte feedStatusId;
+ if (feedStatus != null) {
+ feedStatusId = (Byte) (byte) feedStatus.getValue();
+ } else {
+ feedStatusId = 0;
+ }
+
+ TrafficIncidentsStatus trafficIncidentsStatus = feedInformation.getTrafficIncidentsStatus();
+ Byte trafficIncidentsStatusId;
+ if (trafficIncidentsStatus != null) {
+ trafficIncidentsStatusId = (Byte) (byte) trafficIncidentsStatus.getValue();
+ } else {
+ trafficIncidentsStatusId = 0;
+ }
+
+ FeedInformationStruct feedInformationStruct = new FeedInformationStruct(
+ dataProviderName, protocolName, communicationChannelName,
+ feedStatusId, trafficIncidentsStatusId);
+
+ return feedInformationStruct;
+ }
+
+ private static TemporarySpeedLimit temporarySpeedLimitStructToTemporarySpeedLimit(TemporarySpeedLimitStruct temporarySpeedLimitStruct) {
+ LOGGER.info("temporarySpeedLimitStructToTemporarySpeedLimit() => " + temporarySpeedLimitStruct);
+ TemporarySpeedLimit temporarySpeedLimit = TRAFFIC_INCIDENT_FACTORY.createTemporarySpeedLimit();
+
+ temporarySpeedLimit.setUnitsMPH(temporarySpeedLimitStruct.unitsMPH);
+
+ if (temporarySpeedLimitStruct.offset != -1) {
+ temporarySpeedLimit.setOffset(temporarySpeedLimitStruct.offset);
+ }
+
+ for (TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct: temporarySpeedLimitStruct.temporarySpeedLimitSections) {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = temporarySpeedLimitSectionStructToTemporarySpeedLimitSection(temporarySpeedLimitSectionStruct);
+ temporarySpeedLimit.getTemporarySpeedLimitSections().add(temporarySpeedLimitSection);
+ }
+
+ for (ApplicabilityStruct applicabilityStruct: temporarySpeedLimitStruct.applicability) {
+ Applicability applicability = applicabilityStructToApplicability(applicabilityStruct);
+ temporarySpeedLimit.getApplicability().add(applicability);
+ }
+
+ LOGGER.info("temporarySpeedLimitStructToTemporarySpeedLimit() <= " + temporarySpeedLimit);
+ return temporarySpeedLimit;
+ }
+
+ private static TemporarySpeedLimitStruct temporarySpeedLimitToTemporarySpeedLimitStruct(TemporarySpeedLimit temporarySpeedLimit) {
+ Boolean unitsMPH = temporarySpeedLimit.isUnitsMPH();
+
+ Integer offset = -1;
+ if (temporarySpeedLimit.isSetOffset()) {
+ offset = temporarySpeedLimit.getOffset();
+ }
+
+ EList<TemporarySpeedLimitSection> temporarySpeedLimitSections = temporarySpeedLimit.getTemporarySpeedLimitSections();
+ List<TemporarySpeedLimitSectionStruct> temporarySpeedLimitSectionStructs = new ArrayList<>();
+ for (int i = 0; i < temporarySpeedLimitSections.size(); i++) {
+ TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct = temporarySpeedLimitSectionToTemporarySpeedLimitSectionStruct(temporarySpeedLimitSections.get(i));
+ temporarySpeedLimitSectionStructs.add(temporarySpeedLimitSectionStruct);
+ }
+
+ EList<Applicability> applicabilities = temporarySpeedLimit.getApplicability();
+ List<ApplicabilityStruct> applicabilityStructs = new ArrayList<>();
+ for (int i = 0; i < applicabilities.size(); i++) {
+ ApplicabilityStruct applicabilityStruct = applicabilityToApplicabilityStruct(applicabilities.get(i));
+ applicabilityStructs.add(applicabilityStruct);
+ }
+
+ TemporarySpeedLimitStruct temporarySpeedLimitStruct = new TemporarySpeedLimitStruct(
+ unitsMPH,
+ offset,
+ temporarySpeedLimitSectionStructs,
+ applicabilityStructs
+ );
+
+ return temporarySpeedLimitStruct;
+ }
+
+ private static TemporarySpeedLimitSection temporarySpeedLimitSectionStructToTemporarySpeedLimitSection(TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct) {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = TRAFFIC_INCIDENT_FACTORY.createTemporarySpeedLimitSection();
+
+ if (temporarySpeedLimitSectionStruct.speedLimitValue != -1) {
+ temporarySpeedLimitSection.setSpeedLimitValue(temporarySpeedLimitSectionStruct.speedLimitValue);
+ }
+
+ if (temporarySpeedLimitSectionStruct.speedLimitValueWet != -1) {
+ temporarySpeedLimitSection.setSpeedLimitValueWet(temporarySpeedLimitSectionStruct.speedLimitValueWet);
+ }
+
+ if (temporarySpeedLimitSectionStruct.speedLimitLength != -1) {
+ temporarySpeedLimitSection.setSpeedLimitLength(temporarySpeedLimitSectionStruct.speedLimitLength);
+ }
+
+ return temporarySpeedLimitSection;
+ }
+
+ private static TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionToTemporarySpeedLimitSectionStruct(TemporarySpeedLimitSection temporarySpeedLimitSection) {
+ Short speedLimitValue = -1;
+ if (temporarySpeedLimitSection.isSetSpeedLimitValue()) {
+ speedLimitValue = temporarySpeedLimitSection.getSpeedLimitValue();
+ }
+
+ Short speedLimitValueWet = -1;
+ if (temporarySpeedLimitSection.isSetSpeedLimitValueWet()) {
+ speedLimitValueWet = temporarySpeedLimitSection.getSpeedLimitValueWet();
+ }
+
+ Integer speedLimitLength = -1;
+ if (temporarySpeedLimitSection.isSetSpeedLimitLength()) {
+ speedLimitLength = temporarySpeedLimitSection.getSpeedLimitLength();
+ }
+
+ TemporarySpeedLimitSectionStruct temporarySpeedLimitSectionStruct = new TemporarySpeedLimitSectionStruct(
+ speedLimitValue,
+ speedLimitValueWet,
+ speedLimitLength
+ );
+
+ return temporarySpeedLimitSectionStruct;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsAdaptor.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsAdaptor.java
new file mode 100755
index 0000000..6658291
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsAdaptor.java
@@ -0,0 +1,1578 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.AbstractConnection;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.refimpl.TrafficIncidentsService;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CategoryDefinitionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.FeedInformationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconDefinitionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconSetStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.RectangularAreaStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentsDBus;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TwoTuple;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.VersionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+public class TrafficIncidentsAdaptor implements TrafficIncidentsDBus {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsAdaptor.class.getName());
+
+ private DBusConnection conn;
+ private TrafficIncidentsService trafficIncidentsService;
+
+ private List<String> trafficIncidentsStatusListeners = new ArrayList<>();
+ private TrafficIncidentsListener trafficIncidentsStatusListener;
+ private List<String> feedInformationListeners = new ArrayList<>();
+ private TrafficIncidentsListener feedInformationListener = null;
+ private List<TrafficIncidentsListenerProxy> updatesListeners = new ArrayList<>();
+ private List<TrafficIncidentsListenerProxy> updatesInAreasListeners = new ArrayList<>();
+
+ private PendingReplyAddAreasUpdateListener pendingReplyAddAreasUpdateListener;
+ private PendingReply pendingReplyAddCategoryDefinitions;
+ private PendingReply pendingReplyAddFeedInformationListener;
+ private PendingReply pendingReplyAddIconDefinitions;
+ private PendingReply pendingReplyAddIconSetDefinitions;
+ private PendingReply pendingReplyAddTrafficIncidentsStatusListener;
+ private PendingReply pendingReplyAddUpdateListener;
+ private PendingReply pendingReplyFreeCategoryIds;
+ private PendingReply pendingReplyFreeIconSetIds;
+ private PendingReplyGetApplicability pendingReplyGetApplicability;
+ private PendingReplyGetCategoryDefinitions pendingReplyGetCategoryDefinitions;
+ private PendingReplyGetIconDefinitions pendingReplyGetIconDefinitions;
+ private PendingReplyGetIconSets pendingReplyGetIconSets;
+ private PendingReplyGetLanguage pendingReplyGetLanguage;
+ private PendingReplyGetTexts pendingReplyGetTexts;
+ private PendingReplyGetTrafficIncidentIds pendingReplyGetTrafficIncidentIds;
+ private PendingReplyGetTrafficIncidentIdsInAreas pendingReplyGetTrafficIncidentIdsInAreas;
+ private PendingReplyGetTrafficIncidents pendingReplyGetTrafficIncidents;
+ private PendingReplyGetTrafficIncidentsFields pendingReplyGetTrafficIncidentsFields;
+ private PendingReplyGetVersion pendingReplyGetVersion;
+ private PendingReply pendingReplyRemoveAreasUpdateListener;
+ private PendingReply pendingReplyRemoveCategoryDefinitions;
+ private PendingReply pendingReplyRemoveIconDefinitions;
+ private PendingReply pendingReplyRemoveIconSetDefinitions;
+ private PendingReply pendingReplyRemoveFeedInformationListener;
+ private PendingReply pendingReplyRemoveTrafficIncidentsStatusListener;
+ private PendingReply pendingReplyRemoveUpdateListener;
+ private PendingReplyReserveCategoryIds pendingReplyReserveCategoryIds;
+ private PendingReplyReserveIconSetIds pendingReplyReserveIconSetIds;
+ private PendingReply pendingReplySetApplicability;
+ private PendingReply pendingReplySetDateFormat;
+ private PendingReply pendingReplySetLanguage;
+ private PendingReply pendingReplySetLengthUnit;
+ private PendingReply pendingReplySetTimeFormat;
+ private PendingReply pendingReplySetWeightUnit;
+
+ public TrafficIncidentsAdaptor(DBusConnection conn, TrafficIncidentsService trafficIncidentsService) {
+ this.conn = conn;
+ this.trafficIncidentsService = trafficIncidentsService;
+
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ @Override
+ public boolean isRemote() {
+ return false;
+ }
+
+ @Override
+ public VersionStruct GetVersion() {
+ LOGGER.info("getVersion =>");
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getVersionReply(Version trafficIncidentsVersion) {
+ LOGGER.info("getVersionReply => trafficIncidentsVersion = " + trafficIncidentsVersion);
+ pendingReplyGetVersion.setVersion(trafficIncidentsVersion);
+ pendingReplyGetVersion.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetVersion = new PendingReplyGetVersion(listener);
+
+ trafficIncidentsService.getVersion(listener);
+
+ while (!pendingReplyGetVersion.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getVersion - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ Version version = pendingReplyGetVersion.getVersion();
+ VersionStruct versionStruct = StructUtil.versionToVersionStruct(version);
+
+ LOGGER.info("getVersion <= versionStruct = " + versionStruct);
+ return versionStruct;
+ }
+
+ @Override
+ public TwoTuple<String, String> GetLanguage() {
+ LOGGER.info("getLanguage =>");
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ LOGGER.info("getLanguageReply => languageCode = " + languageCode + ", countryCode = " + countryCode);
+ pendingReplyGetLanguage.setLanguageCode(languageCode);
+ pendingReplyGetLanguage.setCountryCode(countryCode);
+ pendingReplyGetLanguage.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetLanguage = new PendingReplyGetLanguage(listener);
+
+ trafficIncidentsService.getLanguage(listener);
+
+ while (!pendingReplyGetLanguage.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getLanguage - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ String countryCode = pendingReplyGetLanguage.getCountryCode();
+ if (countryCode == null) {
+ countryCode = "";
+ }
+ TwoTuple<String, String> language = new TwoTuple<>(
+ pendingReplyGetLanguage.getLanguageCode(),
+ countryCode);
+ LOGGER.info("getLanguage <= language = " + language.a + ", " + language.b);
+ return language;
+ }
+
+ @Override
+ public void SetLanguage(String languageCode, String countryCode) {
+ LOGGER.info("setLanguage => languageCode = " + languageCode + ", countryCode = " + countryCode);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void setLanguageReply() {
+ LOGGER.info("setLanguageReply =>");
+ pendingReplySetLanguage.setReplyReceived(true);
+ }
+ };
+ pendingReplySetLanguage = new PendingReply(listener);
+
+ if (languageCode.isEmpty()) {
+ languageCode = null;
+ }
+ if (countryCode.isEmpty()) {
+ countryCode = null;
+ }
+
+ trafficIncidentsService.setLanguage(listener, languageCode, countryCode);
+
+ while (!pendingReplySetLanguage.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("setLanguage - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("setLanguage <=");
+ }
+
+ @Override
+ public void SetTimeFormat(String timeFormat) {
+ LOGGER.info("setTimeFormat => timeFormat = " + timeFormat);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void setTimeFormatReply() {
+ LOGGER.info("setTimeFormatReply =>");
+ pendingReplySetTimeFormat.setReplyReceived(true);
+ }
+ };
+ pendingReplySetTimeFormat = new PendingReply(listener);
+
+ trafficIncidentsService.setTimeFormat(listener, timeFormat);
+
+ while (!pendingReplySetTimeFormat.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("setTimeFormat - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("setTimeFormat <=");
+ }
+
+ @Override
+ public void SetDateFormat(String dateFormat) {
+ LOGGER.info("setDateFormat => dateFormat = " + dateFormat);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void setDateFormatReply() {
+ LOGGER.info("setDateFormatReply =>");
+ pendingReplySetDateFormat.setReplyReceived(true);
+ }
+ };
+ pendingReplySetDateFormat = new PendingReply(listener);
+
+ trafficIncidentsService.setDateFormat(listener, dateFormat);
+
+ while (!pendingReplySetDateFormat.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("setDateFormat - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("setDateFormat <=");
+ }
+
+ @Override
+ public void SetLengthUnit(Byte lengthUnitId) {
+ LOGGER.info("setLengthUnit => lengthUnitId = " + lengthUnitId);
+ LengthUnit lengthUnit = LengthUnit.get(lengthUnitId);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void setLengthUnitReply() {
+ LOGGER.info("setLengthUnitReply =>");
+ pendingReplySetLengthUnit.setReplyReceived(true);
+ }
+ };
+ pendingReplySetLengthUnit = new PendingReply(listener);
+
+ trafficIncidentsService.setLengthUnit(listener, lengthUnit);
+
+ while (!pendingReplySetLengthUnit.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("setLengthUnit - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("setLengthUnit <=");
+ }
+
+ @Override
+ public void SetWeightUnit(Byte weightUnitId) {
+ LOGGER.info("setWeightUnit => weightUnitId = " + weightUnitId);
+ WeightUnit weightUnit = WeightUnit.get(weightUnitId);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void setWeightUnitReply() {
+ LOGGER.info("setWeightUnitReply =>");
+ pendingReplySetWeightUnit.setReplyReceived(true);
+ }
+ };
+ pendingReplySetWeightUnit = new PendingReply(listener);
+
+ trafficIncidentsService.setWeightUnit(listener, weightUnit);
+
+ while (!pendingReplySetWeightUnit.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("setWeightUnit - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("setWeightUnit <=");
+ }
+
+ @Override
+ public String GetApplicability() {
+ LOGGER.info("getApplicability =>");
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getApplicabilityReply(String filterExpression) {
+ LOGGER.info("getApplicabilityReply => filterExpression = " + filterExpression);
+ pendingReplyGetApplicability.setFilterExpression(filterExpression);
+ pendingReplyGetApplicability.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetApplicability = new PendingReplyGetApplicability(listener);
+
+ trafficIncidentsService.getApplicability(listener);
+
+ while (!pendingReplyGetApplicability.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getApplicability - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ String filterExpression = pendingReplyGetApplicability.getFilterExpression();
+ LOGGER.info("getApplicability <= filterExpression = " + filterExpression);
+ return filterExpression;
+ }
+
+ @Override
+ public void SetApplicability(String expression) {
+ LOGGER.info("setApplicability => expression = " + expression);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void setApplicabilityReply() {
+ LOGGER.info("setApplicabilityReply =>");
+ pendingReplySetApplicability.setReplyReceived(true);
+ }
+ };
+ pendingReplySetApplicability = new PendingReply(listener);
+
+ trafficIncidentsService.setApplicability(listener, expression);
+
+ while (!pendingReplySetApplicability.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("setApplicability - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("setApplicability <=");
+ }
+
+ @Override
+ public List<Integer> ReserveIconSetIds(Integer numberOfIds) {
+ LOGGER.info("reserveIconSetIds => numberOfIds = " + numberOfIds);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void reserveIconSetIdsReply(EList<Integer> iconSetIds) {
+ LOGGER.info("reserveIconSetIdsReply => iconSetIds = " + iconSetIds);
+ pendingReplyReserveIconSetIds.setIconSetIds(iconSetIds);
+ pendingReplyReserveIconSetIds.setReplyReceived(true);
+ }
+ };
+ pendingReplyReserveIconSetIds = new PendingReplyReserveIconSetIds(listener);
+
+ trafficIncidentsService.reserveIconSetIds(listener, numberOfIds);
+
+ while (!pendingReplyReserveIconSetIds.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("reserveIconSetIds - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<Integer> iconSetIds = pendingReplyReserveIconSetIds.getIconSetIds();
+ LOGGER.info("reserveIconSetIds <= iconSetIds = " + iconSetIds);
+ return iconSetIds;
+ }
+
+ @Override
+ public void FreeIconSetIds(List<Integer> iconSetIds) {
+ LOGGER.info("freeIconSetIds => iconSetIds = " + iconSetIds);
+
+ EList<Integer> eListIconSetIds = new BasicEList<>(iconSetIds);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void freeIconSetIdsReply() {
+ LOGGER.info("freeIconSetIdsReply =>");
+ pendingReplyFreeIconSetIds.setReplyReceived(true);
+ }
+ };
+ pendingReplyFreeIconSetIds = new PendingReply(listener);
+
+ trafficIncidentsService.freeIconSetIds(listener, eListIconSetIds);
+
+ while (!pendingReplyFreeIconSetIds.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("freeIconSetIds - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("freeIconSetIds <=");
+ }
+
+ @Override
+ public List<IconSetStruct> GetIconSets() {
+ LOGGER.info("getIconSets =>");
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getIconSetsReply(EList<IconSet> iconSets) {
+ LOGGER.info("getIconSetsReply => iconSets = " + iconSets);
+ pendingReplyGetIconSets.setIconSets(iconSets);
+ pendingReplyGetIconSets.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetIconSets = new PendingReplyGetIconSets(listener);
+
+ trafficIncidentsService.getIconSets(listener);
+
+ while (!pendingReplyGetIconSets.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getIconSets - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<IconSetStruct> iconSetStructs = new ArrayList<>();
+ for (IconSet iconSet: pendingReplyGetIconSets.getIconSets()) {
+ IconSetStruct iconSetStruct = StructUtil.iconSetToIconSetStruct(iconSet);
+ iconSetStructs.add(iconSetStruct);
+ }
+ LOGGER.info("getIconSets <= iconSetStructs = " + iconSetStructs);
+ return iconSetStructs;
+ }
+
+ @Override
+ public void AddIconSetDefinitions(List<IconSetStruct> iconSetStructs) {
+ LOGGER.info("addIconSetDefinitions => iconSetStructs = " + iconSetStructs);
+
+ EList<IconSet> iconSets = new BasicEList<>();
+ for (IconSetStruct iconSetStruct: iconSetStructs) {
+ IconSet iconSet = StructUtil.iconSetStructToIconSet(iconSetStruct);
+ iconSets.add(iconSet);
+ }
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addIconSetDefinitionsReply() {
+ LOGGER.info("addIconSetDefinitionsReply =>");
+ pendingReplyAddIconSetDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddIconSetDefinitions = new PendingReply(listener);
+
+ trafficIncidentsService.addIconSetDefinitions(listener, iconSets);
+
+ while (!pendingReplyAddIconSetDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addIconSetDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("addIconSetDefinitions <=");
+ }
+
+ @Override
+ public void RemoveIconSetDefinitions(List<Integer> iconSetIds) {
+ LOGGER.info("removeIconSetDefinitions => iconSetIds = " + iconSetIds);
+
+ EList<Integer> eListIconSetIds = new BasicEList<>(iconSetIds);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeIconSetDefinitionsReply() {
+ LOGGER.info("removeIconSetDefinitionsReply =>");
+ pendingReplyRemoveIconSetDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyRemoveIconSetDefinitions = new PendingReply(listener);
+
+ trafficIncidentsService.removeIconSetDefinitions(listener, eListIconSetIds);
+
+ while (!pendingReplyRemoveIconSetDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeIconSetDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("removeIconSetDefinitions <=");
+ }
+
+ @Override
+ public List<IconDefinitionStruct> GetIconDefinitions(List<IconInfoStruct> iconInfoStructs) {
+ LOGGER.info("getIconDefinitions => iconInfoStructs = " + iconInfoStructs);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getIconDefinitionsReply(EList<IconDefinition> iconDefinitions) {
+ LOGGER.info("getIconDefinitionsReply => iconDefinitions = " + iconDefinitions);
+ pendingReplyGetIconDefinitions.setIconDefinitions(iconDefinitions);
+ pendingReplyGetIconDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetIconDefinitions = new PendingReplyGetIconDefinitions(listener);
+
+ EList<IconInfo> iconInfos = new BasicEList<>();
+ if (!(iconInfoStructs.size() == 1 && iconInfoStructs.get(0).iconId == -1 && iconInfoStructs.get(0).iconSetId == -1)) {
+ for (IconInfoStruct iconInfoStruct: iconInfoStructs) {
+ IconInfo iconInfo = StructUtil.iconInfoStructToIconInfo(iconInfoStruct);
+ iconInfos.add(iconInfo);
+ }
+ }
+ trafficIncidentsService.getIconDefinitions(listener, iconInfos);
+
+ while (!pendingReplyGetIconDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getIconDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<IconDefinitionStruct> iconDefinitionStructs = new ArrayList<>();
+ for (IconDefinition iconDefinition: pendingReplyGetIconDefinitions.getIconDefinitions()) {
+ IconDefinitionStruct iconDefinitionStruct = StructUtil.iconDefinitionToIconDefinitionStruct(iconDefinition);
+ iconDefinitionStructs.add(iconDefinitionStruct);
+ }
+ LOGGER.info("getIconDefinitions <= iconDefinitionStructs = " + iconDefinitionStructs);
+ return iconDefinitionStructs;
+ }
+
+ @Override
+ public void AddIconDefinitions(List<IconDefinitionStruct> iconDefinitionStructs) {
+ LOGGER.info("addIconDefinitions => iconDefinitionStructs = " + iconDefinitionStructs);
+
+ EList<IconDefinition> iconDefinitions = new BasicEList<>();
+ for (IconDefinitionStruct iconDefinitionStruct: iconDefinitionStructs) {
+ IconDefinition iconDefinition = StructUtil.iconDefinitionStructToIconDefinition(iconDefinitionStruct);
+ iconDefinitions.add(iconDefinition);
+ }
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addIconDefinitionsReply() {
+ LOGGER.info("addIconDefinitionsReply =>");
+ pendingReplyAddIconDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddIconDefinitions = new PendingReply(listener);
+
+ trafficIncidentsService.addIconDefinitions(listener, iconDefinitions);
+
+ while (!pendingReplyAddIconDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addIconDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("addIconDefinitions <=");
+ }
+
+ @Override
+ public void RemoveIconDefinitions(List<IconInfoStruct> iconInfoStructs) {
+ LOGGER.info("removeIconDefinitions => iconInfoStructs = " + iconInfoStructs);
+
+ EList<IconInfo> iconInfos = new BasicEList<>();
+ for (IconInfoStruct iconInfoStruct: iconInfoStructs) {
+ IconInfo iconInfo = StructUtil.iconInfoStructToIconInfo(iconInfoStruct);
+ iconInfos.add(iconInfo);
+ }
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeIconDefinitionsReply() {
+ LOGGER.info("removeIconDefinitionsReply =>");
+ pendingReplyRemoveIconDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyRemoveIconDefinitions = new PendingReply(listener);
+
+ trafficIncidentsService.removeIconDefinitions(listener, iconInfos);
+
+ while (!pendingReplyRemoveIconDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeIconDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("removeIconDefinitions <=");
+ }
+
+ @Override
+ public List<Integer> ReserveCategoryIds(Integer numberOfIds) {
+ LOGGER.info("reserveCategoryIds => numberOfIds = " + numberOfIds);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void reserveCategoryIdsReply(EList<Integer> categoryIds) {
+ LOGGER.info("reserveCategoryIdsReply => categoryIds = " + categoryIds);
+ pendingReplyReserveCategoryIds.setCategoryIds(categoryIds);
+ pendingReplyReserveCategoryIds.setReplyReceived(true);
+ }
+ };
+ pendingReplyReserveCategoryIds = new PendingReplyReserveCategoryIds(listener);
+
+ trafficIncidentsService.reserveCategoryIds(listener, numberOfIds);
+
+ while (!pendingReplyReserveCategoryIds.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("reserveCategoryIds - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<Integer> categoryIds = pendingReplyReserveCategoryIds.getCategoryIds();
+ LOGGER.info("reserveCategoryIds <= categoryIds = " + categoryIds);
+ return categoryIds;
+ }
+
+ @Override
+ public void FreeCategoryIds(List<Integer> categoryIds) {
+ LOGGER.info("freeCategoryIds => categoryIds = " + categoryIds);
+
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void freeCategoryIdsReply() {
+ LOGGER.info("freeCategoryIdsReply =>");
+ pendingReplyFreeCategoryIds.setReplyReceived(true);
+ }
+ };
+ pendingReplyFreeCategoryIds = new PendingReply(listener);
+
+ trafficIncidentsService.freeCategoryIds(listener, eListCategoryIds);
+
+ while (!pendingReplyFreeCategoryIds.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("freeCategoryIds - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("freeCategoryIds <=");
+ }
+
+ @Override
+ public List<CategoryDefinitionStruct> GetCategoryDefinitions() {
+ LOGGER.info("getCategoryDefinitions =>");
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions) {
+ LOGGER.info("getCategoryDefinitionsReply => categoryDefinitions = " + categoryDefinitions);
+ pendingReplyGetCategoryDefinitions.setCategoryDefinitions(categoryDefinitions);
+ pendingReplyGetCategoryDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetCategoryDefinitions = new PendingReplyGetCategoryDefinitions(listener);
+
+ trafficIncidentsService.getCategoryDefinitions(listener);
+
+ while (!pendingReplyGetCategoryDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getCategoryDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<CategoryDefinitionStruct> categoryDefinitionStructs = new ArrayList<>();
+ for (CategoryDefinition categoryDefinition: pendingReplyGetCategoryDefinitions.getCategoryDefinitions()) {
+ CategoryDefinitionStruct categoryDefinitionStruct = StructUtil.categoryDefinitionToCategoryDefinitionStruct(categoryDefinition);
+ categoryDefinitionStructs.add(categoryDefinitionStruct);
+ }
+ LOGGER.info("getCategoryDefinitions <= categoryDefinitionStructs = " + categoryDefinitionStructs);
+ return categoryDefinitionStructs;
+ }
+
+ @Override
+ public void AddCategoryDefinitions(List<CategoryDefinitionStruct> categoryDefinitionStructs) {
+ LOGGER.info("addCategoryDefinitions => categoryDefinitionStructs = " + categoryDefinitionStructs);
+
+ EList<CategoryDefinition> categoryDefinitions = new BasicEList<>();
+ for (CategoryDefinitionStruct categoryDefinitionStruct: categoryDefinitionStructs) {
+ CategoryDefinition categoryDefinition = StructUtil.categoryDefinitionStructToCategoryDefinition(categoryDefinitionStruct);
+ categoryDefinitions.add(categoryDefinition);
+ }
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addCategoryDefinitionsReply() {
+ LOGGER.info("addCategoryDefinitionsReply =>");
+ pendingReplyAddCategoryDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddCategoryDefinitions = new PendingReply(listener);
+
+ trafficIncidentsService.addCategoryDefinitions(listener, categoryDefinitions);
+
+ while (!pendingReplyAddCategoryDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addCategoryDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("addCategoryDefinitions <=");
+ }
+
+ @Override
+ public void RemoveCategoryDefinitions(List<Integer> categoryIds) {
+ LOGGER.info("removeCategoryDefinitions => categoryIds = " + categoryIds);
+
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeCategoryDefinitionsReply() {
+ LOGGER.info("removeCategoryDefinitionsReply =>");
+ pendingReplyRemoveCategoryDefinitions.setReplyReceived(true);
+ }
+ };
+ pendingReplyRemoveCategoryDefinitions = new PendingReply(listener);
+
+ trafficIncidentsService.removeCategoryDefinitions(listener, eListCategoryIds);
+
+ while (!pendingReplyRemoveCategoryDefinitions.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeCategoryDefinitions - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("removeCategoryDefinitions <=");
+ }
+
+ @Override
+ public synchronized List<Integer> GetTrafficIncidentIds(List<Byte> warningLevelIds, List<Integer> categoryIds) {
+ LOGGER.info("getTrafficIncidentIds => warningLevelIds = " + warningLevelIds + ", categoryIds = " + categoryIds);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentIdsReply(EList<Integer> incidentIds) {
+ LOGGER.info("getTrafficIncidentIdsReply => incidentIds = " + incidentIds);
+ pendingReplyGetTrafficIncidentIds.setIncidentIds(incidentIds);
+ pendingReplyGetTrafficIncidentIds.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetTrafficIncidentIds = new PendingReplyGetTrafficIncidentIds(listener);
+
+ EList<WarningLevel> warningLevels = new BasicEList<>();
+ for (Byte warningLevelId: warningLevelIds) {
+ warningLevels.add(WarningLevel.get(warningLevelId));
+ }
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+ trafficIncidentsService.getTrafficIncidentIds(listener, warningLevels, eListCategoryIds);
+
+ while (!pendingReplyGetTrafficIncidentIds.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getTrafficIncidentIds - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<Integer> incidentIds = pendingReplyGetTrafficIncidentIds.getIncidentIds();
+
+ LOGGER.info("getTrafficIncidentIds <= incidentIds = " + incidentIds);
+ return incidentIds;
+ }
+
+ @Override
+ public synchronized List<Integer> GetTrafficIncidentIdsInAreas(List<Byte> warningLevelIds, List<Integer> categoryIds, List<RectangularAreaStruct> areaStructs) {
+ LOGGER.info("getTrafficIncidentIdsInAreas => warningLevelIds = " + warningLevelIds + ", categoryIds = " + categoryIds + ", areaStructs = " + areaStructs);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentIdsReply(EList<Integer> incidentIds) {
+ LOGGER.info("getTrafficIncidentIdsReply => incidentIds = " + incidentIds);
+ pendingReplyGetTrafficIncidentIdsInAreas.setIncidentIds(incidentIds);
+ pendingReplyGetTrafficIncidentIdsInAreas.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetTrafficIncidentIdsInAreas = new PendingReplyGetTrafficIncidentIdsInAreas(listener);
+
+ EList<WarningLevel> warningLevels = new BasicEList<>();
+ for (Byte warningLevelId: warningLevelIds) {
+ warningLevels.add(WarningLevel.get(warningLevelId));
+ }
+ EList<RectangularArea> areas = new BasicEList<>();
+ for (RectangularAreaStruct rectangularAreaStruct: areaStructs) {
+ RectangularArea rectangularArea = StructUtil.rectangularAreaStructToRectangularArea(rectangularAreaStruct);
+ areas.add(rectangularArea);
+ }
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+ trafficIncidentsService.getTrafficIncidentIdsInAreas(listener, warningLevels, eListCategoryIds, areas);
+
+ while (!pendingReplyGetTrafficIncidentIdsInAreas.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getTrafficIncidentIdsInAreas - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<Integer> incidentIds = pendingReplyGetTrafficIncidentIdsInAreas.getIncidentIds();
+
+ LOGGER.info("getTrafficIncidentIdsInAreas <= incidentIds = " + incidentIds);
+ return incidentIds;
+ }
+
+ @Override
+ public synchronized List<TrafficIncidentStruct> GetTrafficIncidents(List<Integer> trafficIncidentIds, boolean includeTextFields) {
+ LOGGER.info("getTrafficIncidents => trafficIncidentIds = " + trafficIncidentIds + ", includeTextFields = " + includeTextFields);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ LOGGER.info("getTrafficIncidentsReply => trafficIncidents = " + trafficIncidents);
+ pendingReplyGetTrafficIncidents.setTrafficIncidents(trafficIncidents);
+ pendingReplyGetTrafficIncidents.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetTrafficIncidents = new PendingReplyGetTrafficIncidents(listener);
+
+ EList<Integer> eListTrafficIncidentIds = new BasicEList<>(trafficIncidentIds);
+ trafficIncidentsService.getTrafficIncidents(listener, eListTrafficIncidentIds, includeTextFields);
+
+ while (!pendingReplyGetTrafficIncidents.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getTrafficIncidents - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ EList<TrafficIncident> trafficIncidents = pendingReplyGetTrafficIncidents.getTrafficIncidents();
+ List<TrafficIncidentStruct> trafficIncidentStructs = new ArrayList<>();
+ for (TrafficIncident trafficIncident: trafficIncidents) {
+ TrafficIncidentStruct trafficIncidentStruct = StructUtil.trafficIncidentToTrafficIncidentStruct(trafficIncident);
+ trafficIncidentStructs.add(trafficIncidentStruct);
+ }
+
+ LOGGER.info("getTrafficIncidents <= trafficIncidentStructs = " + trafficIncidentStructs);
+ return trafficIncidentStructs;
+ }
+
+ @Override
+ public synchronized List<TrafficIncidentStruct> GetTrafficIncidentsFields(List<Integer> trafficIncidentIds, List<Byte> trafficIncidentFieldIds) {
+ LOGGER.info("getTrafficIncidentsFields => trafficIncidentIds = " + trafficIncidentIds + ", trafficIncidentFieldIds = " + trafficIncidentFieldIds);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ LOGGER.info("getTrafficIncidentsFieldsReply => trafficIncidents = " + trafficIncidents);
+ pendingReplyGetTrafficIncidentsFields.setTrafficIncidents(trafficIncidents);
+ pendingReplyGetTrafficIncidentsFields.setReplyReceived(true);
+ }
+ };
+ LOGGER.info("listner = " + listener);
+ pendingReplyGetTrafficIncidentsFields = new PendingReplyGetTrafficIncidentsFields(listener);
+
+ EList<TrafficIncidentField> trafficIncidentFields = new BasicEList<>();
+ for (Byte trafficIncidentFieldId: trafficIncidentFieldIds) {
+ trafficIncidentFields.add(TrafficIncidentField.get(trafficIncidentFieldId));
+ }
+ EList<Integer> eListTrafficIncidentIds = new BasicEList<>(trafficIncidentIds);
+ trafficIncidentsService.getTrafficIncidentsFields(listener, eListTrafficIncidentIds, trafficIncidentFields);
+
+ while (!pendingReplyGetTrafficIncidentsFields.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getTrafficIncidentsFields - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ EList<TrafficIncident> trafficIncidents = pendingReplyGetTrafficIncidentsFields.getTrafficIncidents();
+ List<TrafficIncidentStruct> trafficIncidentStructs = new ArrayList<>();
+ for (TrafficIncident trafficIncident: trafficIncidents) {
+ TrafficIncidentStruct trafficIncidentStruct = StructUtil.trafficIncidentToTrafficIncidentStruct(trafficIncident);
+ trafficIncidentStructs.add(trafficIncidentStruct);
+ }
+
+ LOGGER.info("getTrafficIncidentsFields <= trafficIncidentStructs = " + trafficIncidentStructs);
+ return trafficIncidentStructs;
+ }
+
+ @Override
+ public synchronized List<String> GetTexts(List<Integer> trafficIncidentIds, Byte textDetailLevelId) {
+ LOGGER.info("getTexts => trafficIncidentIds = " + trafficIncidentIds + ", textDetailLevelId = " + textDetailLevelId);
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTextsReply(EList<String> texts) {
+ LOGGER.info("getTextsReply => texts = " + texts);
+ pendingReplyGetTexts.setTexts(texts);
+ pendingReplyGetTexts.setReplyReceived(true);
+ }
+ };
+ pendingReplyGetTexts = new PendingReplyGetTexts(listener);
+
+ TextDetailLevel textDetailLevel = TextDetailLevel.get(textDetailLevelId);
+ EList<Integer> eListTrafficIncidentIds = new BasicEList<>(trafficIncidentIds);
+ trafficIncidentsService.getTexts(listener, eListTrafficIncidentIds, textDetailLevel);
+
+ while (!pendingReplyGetTexts.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("getTexts - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ List<String> texts = pendingReplyGetTexts.getTexts();
+ LOGGER.info("getTexts <= texts = " + texts);
+ return texts;
+ }
+
+ @Override
+ public void AddTrafficIncidentsStatusListener() {
+ LOGGER.info("addTrafficIncidentsStatusListener =>");
+
+ String sender = AbstractConnection.currentSender;
+ if (!trafficIncidentsStatusListeners.contains(sender)) {
+ trafficIncidentsStatusListeners.add(sender);
+ }
+
+ if (trafficIncidentsStatusListener == null) {
+ trafficIncidentsStatusListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void trafficIncidentsStatus(
+ TrafficIncidentFeedStatus trafficIncidentFeedStatus,
+ org.genivi.trafficincidentsservice.TrafficIncidentsStatus trafficIncidentsStatus) {
+ LOGGER.info("trafficIncidentsStatus() called.");
+ sendSignalTrafficIncidentsStatus(trafficIncidentFeedStatus, trafficIncidentsStatus);
+ }
+ };
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addTrafficIncidentsStatusListenerReply() {
+ LOGGER.info("addTrafficIncidentsStatusListenerReply =>");
+ pendingReplyAddTrafficIncidentsStatusListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddTrafficIncidentsStatusListener = new PendingReply(listener);
+
+ trafficIncidentsService.addTrafficIncidentsStatusListener(listener, trafficIncidentsStatusListener);
+
+ while (!pendingReplyAddTrafficIncidentsStatusListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addTrafficIncidentsStatusListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ LOGGER.info("addTrafficIncidentsStatusListener <=");
+ }
+
+ @Override
+ public void RemoveTrafficIncidentsStatusListener() {
+ LOGGER.info("removeTrafficIncidentsStatusListener =>");
+
+ String sender = AbstractConnection.currentSender;
+ trafficIncidentsStatusListeners.remove(sender);
+
+ if (trafficIncidentsStatusListeners.isEmpty()) {
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeTrafficIncidentsStatusListenerReply() {
+ LOGGER.info("removeTrafficIncidentsStatusListenerReply =>");
+ trafficIncidentsStatusListener = null;
+ pendingReplyRemoveTrafficIncidentsStatusListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyRemoveTrafficIncidentsStatusListener = new PendingReply(listener);
+
+ trafficIncidentsService.removeTrafficIncidentsStatusListener(listener, trafficIncidentsStatusListener);
+
+ while (!pendingReplyRemoveTrafficIncidentsStatusListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeTrafficIncidentsStatusListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ LOGGER.info("removeTrafficIncidentsStatusListener <=");
+ }
+
+ @Override
+ public void AddFeedInformationListener() {
+ LOGGER.info("addFeedInformationListener =>");
+
+ String sender = AbstractConnection.currentSender;
+ if (!feedInformationListeners.contains(sender)) {
+ feedInformationListeners.add(sender);
+ }
+
+ if (feedInformationListener == null) {
+ feedInformationListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void feedInformation(EList<org.genivi.trafficincidentsservice.FeedInformation> feedsInformation) {
+ LOGGER.info("feedInformation() called.");
+ sendSignalFeedInformation(feedsInformation);
+ }
+ };
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addFeedInformationListenerReply() {
+ LOGGER.info("addFeedInformationListenerReply =>");
+ pendingReplyAddFeedInformationListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddFeedInformationListener = new PendingReply(listener);
+
+ trafficIncidentsService.addFeedInformationListener(listener, feedInformationListener);
+
+ while (!pendingReplyAddFeedInformationListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addFeedInformationListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ LOGGER.info("addFeedInformationListener <=");
+ }
+
+ @Override
+ public void RemoveFeedInformationListener() {
+ LOGGER.info("removeFeedInformationListener =>");
+
+ String sender = AbstractConnection.currentSender;
+ feedInformationListeners.remove(sender);
+
+ if (feedInformationListeners.isEmpty()) {
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeFeedInformationListenerReply() {
+ LOGGER.info("removeFeedInformationListenerReply =>");
+ feedInformationListener = null;
+ pendingReplyRemoveFeedInformationListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyRemoveFeedInformationListener = new PendingReply(listener);
+
+ trafficIncidentsService.removeFeedInformationListener(listener, feedInformationListener);
+
+ while (!pendingReplyRemoveFeedInformationListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeFeedInformationListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ LOGGER.info("removeFeedInformationListener <=");
+ }
+
+ @Override
+ public void AddUpdateListener(Integer listenerId, List<Byte> warningLevelIds, List<Integer> categoryIds) {
+ LOGGER.info("addUpdateListener => listenerId = " + listenerId +
+ ", warningLevelIds = " + warningLevelIds + ", categoryIds = " + categoryIds);
+ String sender = AbstractConnection.currentSender;
+ LOGGER.info(">>> Sender = " + sender);
+
+ // Listener for the addUpdateListenerReply
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addUpdateListenerReply() {
+ LOGGER.info("addUpdateListenerReply =>");
+ pendingReplyAddUpdateListener.setReplyReceived(true);
+ }
+
+ };
+ pendingReplyAddUpdateListener = new PendingReply(listener);
+
+ EList<WarningLevel> warningLevels = new BasicEList<>();
+ for (Byte warningLevelId: warningLevelIds) {
+ warningLevels.add(WarningLevel.get(warningLevelId));
+ }
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+
+ // listener proxy to forward the update to the remote client.
+ TrafficIncidentsListenerProxy trafficIncidentsListenerProxy = new TrafficIncidentsListenerProxy(sender, listenerId);
+ updatesListeners.add(trafficIncidentsListenerProxy);
+ trafficIncidentsService.addUpdateListener(listener, warningLevels, eListCategoryIds, trafficIncidentsListenerProxy);
+
+ while (!pendingReplyAddUpdateListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addUpdateListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("addUpdateListener <=");
+ }
+
+ @Override
+ public void RemoveUpdateListener(Integer listenerId) {
+ LOGGER.info("removeUpdateListener => listenerId = " + listenerId);
+ String sender = AbstractConnection.currentSender;
+ LOGGER.info(">>> Sender = " + sender);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeUpdateListenerReply() {
+ LOGGER.info("removeUpdateListenerReply =>");
+ pendingReplyRemoveUpdateListener.setReplyReceived(true);
+ }
+
+ };
+ pendingReplyRemoveUpdateListener = new PendingReply(listener);
+
+ TrafficIncidentsListener trafficIncidentsListener = null;
+ for (TrafficIncidentsListenerProxy trafficIncidentsListenerProxy: updatesListeners) {
+ if (trafficIncidentsListenerProxy.getDestination().equals(sender) &&
+ trafficIncidentsListenerProxy.getListenerId() == listenerId) {
+ trafficIncidentsListener = trafficIncidentsListenerProxy;
+ }
+ }
+ updatesListeners.remove(trafficIncidentsListener);
+
+ trafficIncidentsService.removeUpdateListener(listener, trafficIncidentsListener);
+
+ while (!pendingReplyRemoveUpdateListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeUpdateListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("removeUpdateListener <=");
+ }
+
+ @Override
+ public void AddAreasUpdateListener(Integer listenerId, List<Byte> warningLevelIds, List<Integer> categoryIds, List<RectangularAreaStruct> areaStructs) {
+ LOGGER.info("addAreasUpdateListener => listenerId = " + listenerId + ", warningLevelIds = " + warningLevelIds +
+ ", categoryIds = " + categoryIds + ", areaStructs = " + areaStructs);
+ String sender = AbstractConnection.currentSender;
+ LOGGER.info(">>> Sender = " + sender);
+
+ // Listener for the addAreasUpdateListenerReply
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void addAreasUpdateListenerReply() {
+ LOGGER.info("addAreasUpdateListenerReply =>");
+ pendingReplyAddAreasUpdateListener.setReplyReceived(true);
+ }
+ };
+ pendingReplyAddAreasUpdateListener = new PendingReplyAddAreasUpdateListener(listener);
+
+ EList<WarningLevel> warningLevels = new BasicEList<>();
+ for (Byte warningLevelId: warningLevelIds) {
+ warningLevels.add(WarningLevel.get(warningLevelId));
+ }
+ EList<RectangularArea> areas = new BasicEList<>();
+ for (RectangularAreaStruct rectangularAreaStruct: areaStructs) {
+ RectangularArea rectangularArea = StructUtil.rectangularAreaStructToRectangularArea(rectangularAreaStruct);
+ areas.add(rectangularArea);
+ }
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+
+
+ // listener proxy to forward the update to the remote client.
+ TrafficIncidentsListenerProxy trafficIncidentsListenerProxy = new TrafficIncidentsListenerProxy(sender, listenerId);
+ updatesInAreasListeners.add(trafficIncidentsListenerProxy);
+ trafficIncidentsService.addAreasUpdateListener(listener, warningLevels, eListCategoryIds, areas, trafficIncidentsListenerProxy);
+
+ while (!pendingReplyAddAreasUpdateListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("addAreasUpdateListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("addAreasUpdateListener <=");
+ }
+
+ @Override
+ public void RemoveAreasUpdateListener(Integer listenerId) {
+ LOGGER.info("removeAreasUpdateListener => listenerId = " + listenerId);
+ String sender = AbstractConnection.currentSender;
+ LOGGER.info(">>> Sender = " + sender);
+
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void removeAreasUpdateListenerReply() {
+ LOGGER.info("removeAreasUpdateListenerReply =>");
+ pendingReplyRemoveAreasUpdateListener.setReplyReceived(true);
+ }
+
+ };
+ pendingReplyRemoveAreasUpdateListener = new PendingReply(listener);
+
+ TrafficIncidentsListener trafficIncidentsListener = null;
+ for (TrafficIncidentsListenerProxy trafficIncidentsListenerProxy: updatesInAreasListeners) {
+ if (trafficIncidentsListenerProxy.getDestination().equals(sender) &&
+ trafficIncidentsListenerProxy.getListenerId() == listenerId) {
+ trafficIncidentsListener = trafficIncidentsListenerProxy;
+ }
+ }
+ updatesInAreasListeners.remove(trafficIncidentsListener);
+
+ trafficIncidentsService.removeAreasUpdateListener(listener, trafficIncidentsListener);
+
+ while (!pendingReplyRemoveAreasUpdateListener.isReplyReceived()) {
+ try {
+ Thread.sleep(10);
+ LOGGER.info("removeAreasUpdateListener - Waiting for reply ...");
+ } catch (InterruptedException e) {
+ }
+ }
+
+ LOGGER.info("removeAreasUpdateListener <=");
+ }
+
+ public void sendSignalTrafficIncidentsStatus(TrafficIncidentFeedStatus trafficIncidentFeedStatus, org.genivi.trafficincidentsservice.TrafficIncidentsStatus trafficIncidentsStatus) {
+ Byte trafficIncidentFeedStatusId = 0;
+ if (trafficIncidentFeedStatus != null) {
+ trafficIncidentFeedStatusId = (Byte) (byte) trafficIncidentFeedStatus.getValue();
+ }
+
+ Byte trafficIncidentsStatusId = 0;
+ if (trafficIncidentsStatus != null) {
+ trafficIncidentsStatusId = (Byte) (byte) trafficIncidentsStatus.getValue();
+ }
+
+ LOGGER.info("going to send TrafficIncidentsStatus signal");
+
+ try {
+ conn.sendSignal(new TrafficIncidentsDBus.TrafficIncidentsStatus("/java", trafficIncidentFeedStatusId, trafficIncidentsStatusId));
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void sendSignalFeedInformation(EList<org.genivi.trafficincidentsservice.FeedInformation> feedsInformation) {
+ List<FeedInformationStruct> feedsInformationStructs = new ArrayList<>();
+ for (org.genivi.trafficincidentsservice.FeedInformation feedInformation: feedsInformation) {
+ FeedInformationStruct feedInformationStruct = StructUtil.feedInformationToFeedInformationStruct(feedInformation);
+ feedsInformationStructs.add(feedInformationStruct);
+ }
+
+ LOGGER.info("going to send FeedInformation signal");
+
+ try {
+ conn.sendSignal(new TrafficIncidentsDBus.FeedInformation("/java", feedsInformationStructs));
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public class PendingReply {
+ private boolean replyReceived = false;
+ private TrafficIncidentsListener listener;
+
+ public PendingReply(TrafficIncidentsListener listener) {
+ this.listener = listener;
+ }
+
+ public boolean isReplyReceived() {
+ return replyReceived;
+ }
+
+ public void setReplyReceived(boolean replyReceived) {
+ this.replyReceived = replyReceived;
+ }
+
+ public TrafficIncidentsListener getListener() {
+ return listener;
+ }
+ }
+
+ class PendingReplyGetVersion extends PendingReply {
+ private Version version;
+
+ public PendingReplyGetVersion(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public Version getVersion() {
+ return version;
+ }
+
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+ }
+
+ class PendingReplyGetTrafficIncidentIds extends PendingReply {
+ private EList<Integer> incidentIds;
+
+ public PendingReplyGetTrafficIncidentIds(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<Integer> getIncidentIds() {
+ return incidentIds;
+ }
+
+ public void setIncidentIds(EList<Integer> incidentIds) {
+ this.incidentIds = incidentIds;
+ }
+ }
+
+ class PendingReplyGetTrafficIncidentIdsInAreas extends PendingReply {
+ private EList<Integer> incidentIds;
+
+ public PendingReplyGetTrafficIncidentIdsInAreas(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<Integer> getIncidentIds() {
+ return incidentIds;
+ }
+
+ public void setIncidentIds(EList<Integer> incidentIds) {
+ this.incidentIds = incidentIds;
+ }
+ }
+
+ class PendingReplyGetTrafficIncidents extends PendingReply {
+ private EList<TrafficIncident> trafficIncidents;
+
+ public PendingReplyGetTrafficIncidents(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<TrafficIncident> getTrafficIncidents() {
+ return trafficIncidents;
+ }
+
+ public void setTrafficIncidents(EList<TrafficIncident> trafficIncidents) {
+ this.trafficIncidents = trafficIncidents;
+ }
+ }
+
+ class PendingReplyGetTrafficIncidentsFields extends PendingReply {
+ private EList<TrafficIncident> trafficIncidents;
+
+ public PendingReplyGetTrafficIncidentsFields(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<TrafficIncident> getTrafficIncidents() {
+ return trafficIncidents;
+ }
+
+ public void setTrafficIncidents(EList<TrafficIncident> trafficIncidents) {
+ this.trafficIncidents = trafficIncidents;
+ }
+ }
+
+ class PendingReplyGetTexts extends PendingReply {
+ private EList<String> texts;
+
+ public PendingReplyGetTexts(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<String> getTexts() {
+ return texts;
+ }
+
+ public void setTexts(EList<String> texts) {
+ this.texts = texts;
+ }
+ }
+
+ class PendingReplyAddAreasUpdateListener extends PendingReply {
+ private int listenerId;
+
+ public PendingReplyAddAreasUpdateListener(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public int getListenerId() {
+ return listenerId;
+ }
+
+ public void setListenerId(int listenerId) {
+ this.listenerId = listenerId;
+ }
+ }
+
+ class PendingReplyGetLanguage extends PendingReply {
+ private String languageCode;
+ private String countryCode;
+
+ public PendingReplyGetLanguage(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public String getLanguageCode() {
+ return languageCode;
+ }
+
+ public void setLanguageCode(String languageCode) {
+ this.languageCode = languageCode;
+ }
+
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ public void setCountryCode(String countryCode) {
+ this.countryCode = countryCode;
+ }
+ }
+
+ class PendingReplyReserveIconSetIds extends PendingReply {
+ private EList<Integer> iconSetIds;
+
+ public PendingReplyReserveIconSetIds(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<Integer> getIconSetIds() {
+ return iconSetIds;
+ }
+
+ public void setIconSetIds(EList<Integer> iconSetIds) {
+ this.iconSetIds = iconSetIds;
+ }
+ }
+
+ class PendingReplyGetIconSets extends PendingReply {
+ private EList<IconSet> iconSets;
+
+ public PendingReplyGetIconSets(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<IconSet> getIconSets() {
+ return iconSets;
+ }
+
+ public void setIconSets(EList<IconSet> iconSets) {
+ this.iconSets = iconSets;
+ }
+ }
+
+ class PendingReplyGetIconDefinitions extends PendingReply {
+ private EList<IconDefinition> iconDefinitions;
+
+ public PendingReplyGetIconDefinitions(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<IconDefinition> getIconDefinitions() {
+ return iconDefinitions;
+ }
+
+ public void setIconDefinitions(EList<IconDefinition> iconDefinitions) {
+ this.iconDefinitions = iconDefinitions;
+ }
+ }
+
+ class PendingReplyReserveCategoryIds extends PendingReply {
+ private EList<Integer> categoryIds;
+
+ public PendingReplyReserveCategoryIds(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<Integer> getCategoryIds() {
+ return categoryIds;
+ }
+
+ public void setCategoryIds(EList<Integer> categoryIds) {
+ this.categoryIds = categoryIds;
+ }
+ }
+
+ class PendingReplyGetCategoryDefinitions extends PendingReply {
+ private EList<CategoryDefinition> categoryDefinitions;
+
+ public PendingReplyGetCategoryDefinitions(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public EList<CategoryDefinition> getCategoryDefinitions() {
+ return categoryDefinitions;
+ }
+
+ public void setCategoryDefinitions(EList<CategoryDefinition> categoryDefinitions) {
+ this.categoryDefinitions = categoryDefinitions;
+ }
+ }
+
+ class PendingReplyGetApplicability extends PendingReply {
+ private String filterExpression;
+
+ public PendingReplyGetApplicability(TrafficIncidentsListener listener) {
+ super(listener);
+ }
+
+ public String getFilterExpression() {
+ return filterExpression;
+ }
+
+ public void setFilterExpression(String filterExpression) {
+ this.filterExpression = filterExpression;
+ }
+
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsDBusProxy.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsDBusProxy.java
new file mode 100755
index 0000000..3de724e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsDBusProxy.java
@@ -0,0 +1,1623 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.CallbackHandler;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.CategoryDefinitionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.FeedInformationStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconDefinitionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconInfoStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.IconSetStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.RectangularAreaStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentsDBus;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TwoTuple;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.VersionStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * All method have a listener as first parameter.
+ * For methods where this parameter cannot be null (always a reply):
+ * A CallBackHandler is created and the remote method is called with 'callWithCallback'.
+ *
+ * For methods where this parameter can be null (fire and forget if null):
+ * If the listener is null, 'callMethodAsync' is called.
+ * If the listener is not null, same handling as when the parameter cannot be null.
+ *
+ *
+ * A CallBackHandler needs a type, even if there are no output parameters. In this case
+ * always the type Integer is used, and the parameter of the 'handle' method is called dummyReturnValue.
+ */
+public class TrafficIncidentsDBusProxy extends EObjectImpl implements TrafficIncidents {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsDBusProxy.class.getName());
+
+ private DBusConnection conn;
+ private TrafficIncidentsDBus trafficIncidentsDBus;
+
+ private Map<CallbackHandler<?>, TrafficIncidentsListener> callsInProgress = new HashMap<>();
+ private Map<Integer, TrafficIncidentsListener> updatesListeners = new HashMap<>();
+ private Map<Integer, TrafficIncidentsListener> updatesInAreasListeners = new HashMap<>();
+ private List<TrafficIncidentsListener> trafficIncidentsStatusListeners = new ArrayList<>();
+ private List<TrafficIncidentsListener> feedInformationListeners = new ArrayList<>();
+
+ private int firstListenerId;
+
+ public TrafficIncidentsDBusProxy(
+ String trafficIncidentsInterfaceName,
+ String trafficIncidentsObjectPath) throws DBusException {
+ super();
+
+ LOGGER.setLevel(Level.SEVERE);
+
+ Date date = new Date();
+ long time = date.getTime();
+ firstListenerId = (int) (time % 100);
+ LOGGER.info("TrafficIncidentsDBusProxy: firstListenerId = " + firstListenerId);
+
+ conn = DBusConnection.getConnection(DBusConnection.SESSION);
+
+ // Show the D-Bus xml interface definition
+ Introspectable introSpectable = (Introspectable) conn.getRemoteObject(trafficIncidentsInterfaceName, trafficIncidentsObjectPath, Introspectable.class);
+ boolean introspectOk = false;
+ while (!introspectOk) {
+ LOGGER.fine("Waiting for service to become available ...");
+ try {
+ String data = introSpectable.Introspect();
+ LOGGER.severe("Connected to interface with following specification:");
+ LOGGER.severe(data);
+ introspectOk = true;
+ } catch (Exception e) {
+ LOGGER.info(e.getMessage());
+ }
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ }
+ }
+
+ trafficIncidentsDBus = (TrafficIncidentsDBus) conn.getRemoteObject(trafficIncidentsInterfaceName, trafficIncidentsObjectPath, TrafficIncidentsDBus.class);
+ LOGGER.fine("TrafficIncidentsDBus obtained");
+
+ try {
+ conn.addSigHandlerWithoutMatch(TrafficIncidentsDBus.Updates.class, new UpdatesSignalHandler());
+ conn.addSigHandlerWithoutMatch(TrafficIncidentsDBus.UpdatesInAreas.class, new UpdatesInAreasSignalHandler());
+ conn.addSigHandler(TrafficIncidentsDBus.TrafficIncidentsStatus.class, new TrafficIncidentsStatusSignalHandler());
+ conn.addSigHandler(TrafficIncidentsDBus.FeedInformation.class, new FeedInformationSignalHandler());
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void getVersion(TrafficIncidentsListener listener) {
+ LOGGER.fine("getVersion => listener = " + listener);
+
+ CallbackHandler<VersionStruct> callbackHandler = new CallbackHandler<VersionStruct>() {
+ @Override
+ public void handle(VersionStruct versionStruct) {
+ LOGGER.fine("getVersion:handle => versionStruct " + versionStruct);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ Version version = StructUtil.versionStructToVersion(versionStruct);
+
+ LOGGER.fine("version = " + version);
+
+ listener.getVersionReply(version);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "GetVersion", callbackHandler);
+
+ LOGGER.fine("getVersion <=");
+ }
+
+ @Override
+ public void getLanguage(TrafficIncidentsListener listener) {
+ LOGGER.fine("getLanguage => listener = " + listener);
+
+ CallbackHandler<TwoTuple<String, String>> callbackHandler = new CallbackHandler<TwoTuple<String, String>>() {
+ @Override
+ public void handle(TwoTuple<String, String> languageTuple) {
+ LOGGER.fine("getLanguage:handle => languageTuple = " + languageTuple);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ String languageCode = languageTuple.a;
+ String countryCode = languageTuple.b;
+ if (countryCode.isEmpty()) {
+ countryCode = null;
+ }
+ LOGGER.fine("languageCode = " + languageCode + ", countryCode = " + countryCode);
+
+ listener.getLanguageReply(languageCode, countryCode);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "GetLanguage", callbackHandler);
+
+ LOGGER.fine("getLanguage <=");
+ }
+
+ @Override
+ public void setLanguage(TrafficIncidentsListener listener, String languageCode, String countryCode) {
+ LOGGER.info("setLanguage => languageCode = " + languageCode + ", countryCode = " + countryCode);
+
+ if (languageCode == null) {
+ languageCode = "";
+ }
+
+ if (countryCode == null) {
+ countryCode = "";
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("setLanguage:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.setLanguageReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "SetLanguage", callbackHandler, languageCode, countryCode);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "SetLanguage", languageCode, countryCode);
+ }
+
+ LOGGER.fine("setLanguage <=");
+ }
+
+ @Override
+ public void setTimeFormat(TrafficIncidentsListener listener, String timeFormat) {
+ LOGGER.fine("setTimeFormat => timeFormat = " + timeFormat);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("setTimeFormat:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.setTimeFormatReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "SetTimeFormat", callbackHandler, timeFormat);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "SetTimeFormat", timeFormat);
+ }
+
+ LOGGER.fine("setTimeFormat <=");
+ }
+
+ @Override
+ public void setDateFormat(TrafficIncidentsListener listener, String dateFormat) {
+ LOGGER.fine("setDateFormat => + dateFormat = " + dateFormat);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("setDateFormat:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.setDateFormatReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "SetDateFormat", callbackHandler, dateFormat);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "SetDateFormat", dateFormat);
+ }
+
+ LOGGER.fine("setDateFormat <=");
+ }
+
+ @Override
+ public void setLengthUnit(TrafficIncidentsListener listener, LengthUnit lengthUnit) {
+ LOGGER.fine("setLengthUnit => lengthUnit = " + lengthUnit);
+
+ Byte lengthUnitId = (byte) lengthUnit.getValue();
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("setLengthUnit:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.setLengthUnitReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "SetLengthUnit", callbackHandler, lengthUnitId);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "SetLengthUnit", lengthUnitId);
+ }
+
+ LOGGER.fine("setLengthUnit <=");
+ }
+
+ @Override
+ public void setWeightUnit(TrafficIncidentsListener listener, WeightUnit weightUnit) {
+ LOGGER.fine("setWeightUnit => weightUnit = " + weightUnit);
+
+ Byte weightUnitId = (byte) weightUnit.getValue();
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("setWeightUnit:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.setWeightUnitReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "SetWeightUnit", callbackHandler, weightUnitId);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "SetWeightUnit", weightUnitId);
+ }
+
+ LOGGER.fine("setWeightUnit <=");
+ }
+
+ @Override
+ public void getApplicability(TrafficIncidentsListener listener) {
+ LOGGER.fine("getApplicability => listener = " + listener);
+
+ CallbackHandler<String> callbackHandler = new CallbackHandler<String>() {
+ @Override
+ public void handle(String filterExpression) {
+ LOGGER.fine("getApplicability:handle => filterExpression = " + filterExpression);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.getApplicabilityReply(filterExpression);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "GetApplicability", callbackHandler);
+
+ LOGGER.fine("getApplicability <=");
+ }
+
+ @Override
+ public void setApplicability(TrafficIncidentsListener listener, String filterExpression) {
+ LOGGER.fine("setApplicability => filterExpression = " + filterExpression);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("setApplicability:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.setApplicabilityReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "SetApplicability", callbackHandler, filterExpression);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "SetApplicability", filterExpression);
+ }
+
+ LOGGER.fine("setApplicability <=");
+ }
+
+ @Override
+ public void reserveIconSetIds(TrafficIncidentsListener listener, int numberOfIds) {
+ LOGGER.fine("reserveIconSetIds => listener = " + listener + ", numberOfIds = " + numberOfIds);
+
+ CallbackHandler<List<Integer>> callbackHandler = new CallbackHandler<List<Integer>>() {
+ @Override
+ public void handle(List<Integer> iconSetIds) {
+ LOGGER.fine("reserveIconSetIds:handle => iconSetIds = " + iconSetIds);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ EList<Integer> eListIconSetIds = new BasicEList<>(iconSetIds);
+ listener.reserveIconSetIdsReply(eListIconSetIds);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "ReserveIconSetIds", callbackHandler, (Integer) numberOfIds);
+
+ LOGGER.fine("reserveIconSetIds <=");
+ }
+
+ @Override
+ public void freeIconSetIds(TrafficIncidentsListener listener, EList<Integer> iconSetIds) {
+ LOGGER.fine("freeIconSetIds => iconSetIds = " + iconSetIds);
+
+ List<Integer> listIconSetIds = new ArrayList<>(iconSetIds);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("freeIconSetIds:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.freeIconSetIdsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "FreeIconSetIds", callbackHandler, listIconSetIds);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "FreeIconSetIds", listIconSetIds);
+ }
+
+ LOGGER.fine("freeIconSetIds <=");
+ }
+
+ @Override
+ public void getIconSets(TrafficIncidentsListener listener) {
+ LOGGER.fine("getIconSets => listener = " + listener);
+
+ CallbackHandler<List<IconSetStruct>> callbackHandler = new CallbackHandler<List<IconSetStruct>>() {
+ @Override
+ public void handle(List<IconSetStruct> iconSetStructs) {
+ LOGGER.fine("getIconSets:handle => iconSetStructs = " + iconSetStructs);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+
+ EList<IconSet> iconSets = new BasicEList<>();
+ for (IconSetStruct iconSetStruct: iconSetStructs) {
+ IconSet iconSet = StructUtil.iconSetStructToIconSet(iconSetStruct);
+ iconSets.add(iconSet);
+ }
+ LOGGER.fine("iconSets => " + iconSets);
+ listener.getIconSetsReply(iconSets);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "GetIconSets", callbackHandler);
+
+ LOGGER.fine("getIconSets <=");
+ }
+
+ @Override
+ public void addIconSetDefinitions(TrafficIncidentsListener listener, EList<IconSet> iconSets) {
+ LOGGER.fine("addIconSetDefinitions => iconSets = " + iconSets);
+
+ List<IconSetStruct> iconSetStructs = new ArrayList<>();
+ for (IconSet iconSet: iconSets) {
+ IconSetStruct iconSetStruct = StructUtil.iconSetToIconSetStruct(iconSet);
+ iconSetStructs.add(iconSetStruct);
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addIconSetDefinitions:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addIconSetDefinitionsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "AddIconSetDefinitions", callbackHandler, iconSetStructs);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "AddIconSetDefinitions", iconSetStructs);
+ }
+
+ LOGGER.fine("addIconSetDefinitions <=");
+ }
+
+ @Override
+ public void removeIconSetDefinitions(TrafficIncidentsListener listener, EList<Integer> iconSetIds) {
+ LOGGER.fine("removeIconSetDefinitions => iconSetIds = " + iconSetIds);
+
+ List<Integer> listIconSetIds = new ArrayList<>(iconSetIds);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeIconSetDefinitions:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeIconSetDefinitionsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveIconSetDefinitions", callbackHandler, listIconSetIds);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveIconSetDefinitions", listIconSetIds);
+ }
+
+ LOGGER.fine("removeIconSetDefinitions <=");
+ }
+
+ @Override
+ public void getIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos) {
+ LOGGER.fine("getIconDefinitions => listener = " + listener + ", iconInfos" + iconInfos);
+
+ CallbackHandler<List<IconDefinitionStruct>> callbackHandler = new CallbackHandler<List<IconDefinitionStruct>>() {
+ @Override
+ public void handle(List<IconDefinitionStruct> iconDefinitionStructs) {
+ LOGGER.fine("getIconDefinitions:handle => icondefinitionStructs = " + iconDefinitionStructs);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+
+ EList<IconDefinition> iconDefinitions = new BasicEList<IconDefinition>();
+ for (IconDefinitionStruct iconDefinitionStruct: iconDefinitionStructs) {
+ IconDefinition iconDefinition = StructUtil.iconDefinitionStructToIconDefinition(iconDefinitionStruct);
+ iconDefinitions.add(iconDefinition);
+ }
+ LOGGER.fine("iconDefinitions => " + iconDefinitions);
+ listener.getIconDefinitionsReply(iconDefinitions);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ List<IconInfoStruct> iconInfoStructs = new ArrayList<>();
+ for (IconInfo iconInfo: iconInfos) {
+ IconInfoStruct iconInfoStruct = StructUtil.iconInfoToIconInfoStruct(iconInfo);
+ LOGGER.fine("iconInfoStruct = " + iconInfoStruct.iconId + ", " + iconInfoStruct.iconSetId);
+ iconInfoStructs.add(iconInfoStruct);
+ }
+ if (iconInfoStructs.size() == 0) {
+ IconInfoStruct iconInfoStruct = new IconInfoStruct(-1, -1);
+ LOGGER.fine("Added iconInfoStruct = " + iconInfoStruct.iconId + ", " + iconInfoStruct.iconSetId);
+ iconInfoStructs.add(iconInfoStruct);
+ }
+ conn.callWithCallback(trafficIncidentsDBus, "GetIconDefinitions", callbackHandler, iconInfoStructs);
+
+ LOGGER.fine("getIconDefinitions <=");
+ }
+
+ @Override
+ public void addIconDefinitions(TrafficIncidentsListener listener, EList<IconDefinition> iconDefinitions) {
+
+ LOGGER.fine("addIconDefinitions => iconDefinitions = " + iconDefinitions);
+
+ List<IconDefinitionStruct> iconDefinitionStructs = new ArrayList<>();
+ for (IconDefinition iconDefinition: iconDefinitions) {
+ IconDefinitionStruct iconDefinitionStruct = StructUtil.iconDefinitionToIconDefinitionStruct(iconDefinition);
+ iconDefinitionStructs.add(iconDefinitionStruct);
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addIconDefinitions:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addIconDefinitionsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "AddIconDefinitions", callbackHandler, iconDefinitionStructs);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "AddIconDefinitions", iconDefinitionStructs);
+ }
+
+ LOGGER.fine("addIconDefinitions <=");
+ }
+
+ @Override
+ public void removeIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos) {
+ LOGGER.fine("removeIconDefinitions => iconInfos = " + iconInfos);
+
+ List<IconInfoStruct> iconInfoStructs = new ArrayList<>();
+ for (IconInfo iconInfo: iconInfos) {
+ IconInfoStruct iconInfoStruct = StructUtil.iconInfoToIconInfoStruct(iconInfo);
+ iconInfoStructs.add(iconInfoStruct);
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeIconDefinitions:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeIconDefinitionsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveIconDefinitions", callbackHandler, iconInfoStructs);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveIconDefinitions", iconInfoStructs);
+ }
+
+ LOGGER.fine("removeIconDefinitions <=");
+ }
+
+ @Override
+ public void reserveCategoryIds(TrafficIncidentsListener listener, int numberOfIds) {
+ LOGGER.fine("reserveCategoryIds => listener = " + listener + ", numberOfIds = " + numberOfIds);
+
+ CallbackHandler<List<Integer>> callbackHandler = new CallbackHandler<List<Integer>>() {
+ @Override
+ public void handle(List<Integer> categoryIds) {
+ LOGGER.fine("reserveCategoryIds:handle => categoryIds = " + categoryIds);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ EList<Integer> eListCategoryIds = new BasicEList<>(categoryIds);
+ listener.reserveCategoryIdsReply(eListCategoryIds);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "ReserveCategoryIds", callbackHandler, (Integer) numberOfIds);
+
+ LOGGER.fine("reserveCategoryIds <=");
+ }
+
+ @Override
+ public void freeCategoryIds(TrafficIncidentsListener listener, EList<Integer> categoryIds) {
+ LOGGER.fine("freeCategoryIds => categoryIds = " + categoryIds);
+
+ List<Integer> listCategoryIds = new ArrayList<>(categoryIds);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("freeCategoryIds:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.freeCategoryIdsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "FreeCategoryIds", callbackHandler, listCategoryIds);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "FreeCategoryIds", listCategoryIds);
+ }
+
+ LOGGER.fine("freeCategoryIds <=");
+ }
+
+ @Override
+ public void getCategoryDefinitions(TrafficIncidentsListener listener) {
+ LOGGER.info("getCategoryDefinitions => listener = " + listener);
+
+ CallbackHandler<List<CategoryDefinitionStruct>> callbackHandler = new CallbackHandler<List<CategoryDefinitionStruct>>() {
+ @Override
+ public void handle(List<CategoryDefinitionStruct> categoryDefinitionStructs) {
+ LOGGER.info("getCategoryDefinitions:handle => categoryDefinitionStructs = " + categoryDefinitionStructs);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+
+ EList<CategoryDefinition> categoryDefinitions = new BasicEList<>();
+ for (CategoryDefinitionStruct categoryDefinitionStruct: categoryDefinitionStructs) {
+ CategoryDefinition categoryDefinition = StructUtil.categoryDefinitionStructToCategoryDefinition(categoryDefinitionStruct);
+ categoryDefinitions.add(categoryDefinition);
+ }
+ LOGGER.info("categoryDefinitions => " + categoryDefinitions);
+ listener.getCategoryDefinitionsReply(categoryDefinitions);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "GetCategoryDefinitions", callbackHandler);
+
+ LOGGER.info("getCategoryDefinitions <=");
+ }
+
+ @Override
+ public void addCategoryDefinitions(TrafficIncidentsListener listener, EList<CategoryDefinition> categoryDefinitions) {
+ LOGGER.info("addCategoryDefinitions => categoryDefinitions = " + categoryDefinitions);
+
+ List<CategoryDefinitionStruct> categoryDefinitionStructs = new ArrayList<>();
+ for (CategoryDefinition categoryDefinition: categoryDefinitions) {
+ CategoryDefinitionStruct categoryDefinitionStruct = StructUtil.categoryDefinitionToCategoryDefinitionStruct(categoryDefinition);
+ categoryDefinitionStructs.add(categoryDefinitionStruct);
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addCategoryDefinitions:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addCategoryDefinitionsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "AddCategoryDefinitions", callbackHandler, categoryDefinitionStructs);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "AddCategoryDefinitions", categoryDefinitionStructs);
+ }
+
+ LOGGER.info("addCategoryDefinitions <=");
+ }
+
+ @Override
+ public void removeCategoryDefinitions(TrafficIncidentsListener listener, EList<Integer> categoryIds) {
+ LOGGER.fine("removeCategoryDefinitions => categoryIds = " + categoryIds);
+
+ List<Integer> listCategoryIds = new ArrayList<>(categoryIds);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeCategoryDefinitions:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeCategoryDefinitionsReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveCategoryDefinitions", callbackHandler, listCategoryIds);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveCategoryDefinitions", listCategoryIds);
+ }
+
+ LOGGER.fine("removeCategoryDefinitions <=");
+ }
+
+ @Override
+ public void getTrafficIncidentIds(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds) {
+ LOGGER.fine("getTrafficIncidentIds => listener = " + listener + ", warningLevels = " + warningLevels + ", categoryIds = " + categoryIds);
+
+ CallbackHandler<List<Integer>> callbackHandler = new CallbackHandler<List<Integer>>() {
+ @Override
+ public void handle(List<Integer> trafficIncidentIds) {
+ LOGGER.fine("getTrafficIncidentIds:handle => trafficIncidentids = " + trafficIncidentIds);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ EList<Integer> eListTrafficIncidentIds = new BasicEList<>(trafficIncidentIds);
+ listener.getTrafficIncidentIdsReply(eListTrafficIncidentIds);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ List<Byte> warningLevelIds = new ArrayList<>();
+ for (WarningLevel warningLevel: warningLevels) {
+ Byte warningLevelId = (byte) warningLevel.getValue();
+ warningLevelIds.add(warningLevelId);
+ }
+ conn.callWithCallback(trafficIncidentsDBus, "GetTrafficIncidentIds", callbackHandler, warningLevelIds, categoryIds);
+
+ LOGGER.fine("getTrafficIncidentIds <=");
+ }
+
+ @Override
+ public void getTrafficIncidentIdsInAreas(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas) {
+ LOGGER.fine("getTrafficIncidentIdsInAreas => listener = " + listener + ", warningLevels = " + warningLevels + ", categoryIds = " + categoryIds + ", areas = " + areas);
+
+ CallbackHandler<List<Integer>> callbackHandler = new CallbackHandler<List<Integer>>() {
+ @Override
+ public void handle(List<Integer> trafficIncidentIds) {
+ LOGGER.fine("getTrafficIncidentIdsInAreas:handle => trafficIncidentIds = " + trafficIncidentIds);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ EList<Integer> eListTrafficIncidentIds = new BasicEList<>(trafficIncidentIds);
+ listener.getTrafficIncidentIdsReply(eListTrafficIncidentIds);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ List<Byte> warningLevelIds = new ArrayList<>();
+ for (WarningLevel warningLevel: warningLevels) {
+ Byte warningLevelId = (byte) warningLevel.getValue();
+ warningLevelIds.add(warningLevelId);
+ }
+ List<RectangularAreaStruct> rectangularAreaStructs = new ArrayList<>();
+ for (RectangularArea rectangularArea: areas) {
+ RectangularAreaStruct rectangularAreaStruct = StructUtil.rectangularAreaToRectangularAreaStruct(rectangularArea);
+ rectangularAreaStructs.add(rectangularAreaStruct);
+ }
+ conn.callWithCallback(trafficIncidentsDBus, "GetTrafficIncidentIdsInAreas", callbackHandler, warningLevelIds, categoryIds, rectangularAreaStructs);
+
+ LOGGER.fine("getTrafficIncidentIdsInAreas <=");
+ }
+
+ @Override
+ public void getTrafficIncidents(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, boolean includeTextFields) {
+ LOGGER.info("getTrafficIncidents => listener = " + listener + ", trafficIncidentIds = " + trafficIncidentIds + ", includeTextFields = " + includeTextFields);
+
+ CallbackHandler<List<TrafficIncidentStruct>> callbackHandler = new CallbackHandler<List<TrafficIncidentStruct>>() {
+ @Override
+ public void handle(List<TrafficIncidentStruct> trafficIncidentStructs) {
+ LOGGER.info("getTrafficIncidents:handle => trafficIncidentStructs = " + trafficIncidentStructs);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+
+ EList<TrafficIncident> trafficIncidents = new BasicEList<>();
+ for (TrafficIncidentStruct trafficIncidentStruct: trafficIncidentStructs) {
+ TrafficIncident trafficIncident = StructUtil.trafficIncidentStructToTrafficIncident(trafficIncidentStruct);
+ trafficIncidents.add(trafficIncident);
+ }
+ LOGGER.info("trafficIncidents = " + trafficIncidents);
+ listener.getTrafficIncidentsReply(trafficIncidents);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "GetTrafficIncidents", callbackHandler, trafficIncidentIds, includeTextFields);
+
+ LOGGER.info("getTrafficIncidents <=");
+ }
+
+ @Override
+ public void getTrafficIncidentsFields(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, EList<TrafficIncidentField> trafficIncidentFields) {
+ LOGGER.fine("getTrafficIncidentsFields => listener = " + listener + ", trafficIncidentIds = " + trafficIncidentIds + ", trafficIncidentFields = " + trafficIncidentFields);
+
+ CallbackHandler<List<TrafficIncidentStruct>> callbackHandler = new CallbackHandler<List<TrafficIncidentStruct>>() {
+ @Override
+ public void handle(List<TrafficIncidentStruct> trafficIncidentStructs) {
+ LOGGER.fine("getTrafficIncidentsFields:handle => trafficIncidentStructs = " + trafficIncidentStructs);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+
+ EList<TrafficIncident> trafficIncidents = new BasicEList<>();
+ for (TrafficIncidentStruct trafficIncidentStruct: trafficIncidentStructs) {
+ TrafficIncident trafficIncident = StructUtil.trafficIncidentStructToTrafficIncident(trafficIncidentStruct);
+ trafficIncidents.add(trafficIncident);
+ }
+ LOGGER.fine("trafficIncidents = " + trafficIncidents);
+ listener.getTrafficIncidentsReply(trafficIncidents);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ List<Byte> trafficIncidentFieldIds = new ArrayList<>();
+ for (TrafficIncidentField trafficIncidentField: trafficIncidentFields) {
+ Byte trafficIncidentFieldId = (Byte) (byte) trafficIncidentField.getValue();
+ trafficIncidentFieldIds.add(trafficIncidentFieldId);
+ }
+ LOGGER.info("trafficIncidentFieldIds = " + trafficIncidentFieldIds);
+ conn.callWithCallback(trafficIncidentsDBus, "GetTrafficIncidentsFields", callbackHandler, trafficIncidentIds, trafficIncidentFieldIds);
+
+ LOGGER.fine("getTrafficIncidentsFields <=");
+ }
+
+ @Override
+ public void getTexts(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, TextDetailLevel textDetailLevel) {
+ LOGGER.fine("getTexts => listener = " + listener + ", trafficIncidentIds = " + trafficIncidentIds + ", textDetailLevel = " + textDetailLevel);
+
+ CallbackHandler<List<String>> callbackHandler = new CallbackHandler<List<String>>() {
+ @Override
+ public void handle(List<String> texts) {
+ LOGGER.fine("getTexts:handle => texts = " + texts);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ EList<String> eListTexts = new BasicEList<>(texts);
+ listener.getTextsReply(eListTexts);
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ Integer textDetailLevelId = textDetailLevel.getValue();
+ conn.callWithCallback(trafficIncidentsDBus, "GetTexts", callbackHandler, trafficIncidentIds, textDetailLevelId);
+
+ LOGGER.fine("getTexts <=");
+ }
+
+ @Override
+ public void addTrafficIncidentsStatusListener(TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener) {
+ LOGGER.fine("addTrafficIncidentsStatusListener => listener = " + listener + ", trafficIncidentsStatusListener = " + trafficIncidentsStatusListener);
+
+ trafficIncidentsStatusListeners.add(trafficIncidentsStatusListener);
+
+ if (trafficIncidentsStatusListeners.size() == 1) {
+ // First listener added, so notify the TrafficIncidentsService that we are listening.
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addTrafficIncidentsStatusListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addTrafficIncidentsStatusListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "AddTrafficIncidentsStatusListener", callbackHandler);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "AddTrafficIncidentsStatusListener");
+ }
+ } else {
+ if (listener != null) {
+ listener.addTrafficIncidentsStatusListenerReply();
+ }
+ }
+
+ LOGGER.fine("addTrafficIncidentsStatusListener <=");
+ }
+
+ @Override
+ public void removeTrafficIncidentsStatusListener(TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener) {
+ LOGGER.fine("removeTrafficIncidentsStatusListener => listener = " + listener + ", trafficIncidentsStatusListener = " + trafficIncidentsStatusListener);
+
+ trafficIncidentsStatusListeners.remove(trafficIncidentsStatusListener);
+
+ if (trafficIncidentsStatusListeners.isEmpty()) {
+ // Last listener removed, so notify the TrafficIncidentsService that we are no longer listening.
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeTrafficIncidentsStatusListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeTrafficIncidentsStatusListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveTrafficIncidentsStatusListener", callbackHandler);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveTrafficIncidentsStatusListener");
+ }
+ } else {
+ if (listener != null) {
+ listener.removeTrafficIncidentsStatusListenerReply();
+ }
+ }
+
+ LOGGER.fine("removeTrafficIncidentsStatusListener <=");
+ }
+
+ @Override
+ public void addFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener) {
+ LOGGER.fine("addFeedInformationListener => listener = " + listener + ", feedInformationListener = " + feedInformationListener);
+
+ feedInformationListeners.add(feedInformationListener);
+
+ if (feedInformationListeners.size() == 1) {
+ // First listener added, so notify the TrafficIncidentsService that we are listening.
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addFeedInformationListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addFeedInformationListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "AddFeedInformationListener", callbackHandler);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "AddFeedInformationListener");
+ }
+ } else {
+ if (listener != null) {
+ listener.addFeedInformationListenerReply();
+ }
+ }
+
+ LOGGER.fine("addFeedInformationListener <=");
+ }
+
+ @Override
+ public void removeFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener) {
+ LOGGER.fine("removeFeedInformationListener => listener = " + listener + ", feedInformationListener = " + feedInformationListener);
+
+ feedInformationListeners.remove(feedInformationListener);
+
+ if (feedInformationListeners.isEmpty()) {
+ // Last listener removed, so notify the TrafficIncidentsService that we are no longer listening.
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeFeedInformationListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeFeedInformationListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveFeedInformationListener", callbackHandler);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveFeedInformationListener");
+ }
+ } else {
+ if (listener != null) {
+ listener.removeFeedInformationListenerReply();
+ }
+ }
+
+ LOGGER.fine("removeFeedInformationListener <=");
+ }
+
+ @Override
+ public void addUpdateListener(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds,
+ TrafficIncidentsListener updatesListener) {
+ LOGGER.info("addUpdateListener => listener = " + listener + ", warningLevels = " + warningLevels + ", categoryIds = " + categoryIds +
+ ", updatesListener = " + updatesListener);
+
+ if(updatesListeners.containsValue(updatesListener)) {
+ throw new IllegalArgumentException("Listener already exists");
+ }
+
+ Integer listenerId = generateListenerId(updatesListeners);
+ LOGGER.info("addUpdateListener: listenerId = " + listenerId);
+ updatesListeners.put(listenerId, updatesListener);
+
+ List<Byte> warningLevelIds = new ArrayList<>();
+ for (WarningLevel warningLevel: warningLevels) {
+ Byte warningLevelId = (Byte) (byte) warningLevel.getValue();
+ warningLevelIds.add(warningLevelId);
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addUpdateListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addUpdateListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ LOGGER.info("Going to send addUpdateListener D-Bus request (with Callback)");
+ conn.callWithCallback(trafficIncidentsDBus, "AddUpdateListener", callbackHandler, listenerId, warningLevelIds, categoryIds);
+ } else {
+ LOGGER.info("Going to send addUpdateListener D-Bus request (fire and forget)");
+ conn.callMethodAsync(trafficIncidentsDBus, "AddUpdateListener", listenerId, warningLevelIds, categoryIds);
+ }
+
+ LOGGER.info("addUpdateListener <=");
+ }
+
+ @Override
+ public void removeUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updatesListener) {
+ LOGGER.fine("removeUpdateListener => listener = " + listener + ", updatesListener = " + updatesListener);
+
+ Integer listenerId = null;
+ for (Integer key: updatesListeners.keySet()) {
+ if (updatesListeners.get(key).equals(updatesListener)) {
+ listenerId = key;
+ break;
+ }
+ }
+
+ if (listenerId == null) {
+ throw new IllegalArgumentException("Unknown updatesListener");
+ }
+
+ updatesListeners.remove(listenerId);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeUpdateListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeUpdateListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveUpdateListener", callbackHandler, listenerId);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveUpdateListener", listenerId);
+ }
+
+ LOGGER.fine("removeUpdateListener <=");
+ }
+
+ @Override
+ public void addAreasUpdateListener(TrafficIncidentsListener listener,
+ EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas,
+ TrafficIncidentsListener areasUpdateListener) {
+ LOGGER.fine("addAreasUpdateListener => listener = " + listener +
+ ", warningLevels = " + warningLevels + ", categoryIds = " + categoryIds +
+ ", areas = " + areas + ", areasUpdateListener" + areasUpdateListener);
+
+ if(updatesInAreasListeners.containsValue(areasUpdateListener)) {
+ throw new IllegalArgumentException("Listener already exists");
+ }
+
+ Integer listenerId = generateListenerId(updatesInAreasListeners);
+ updatesInAreasListeners.put(listenerId, areasUpdateListener);
+
+ List<Byte> warningLevelIds = new ArrayList<>();
+ for (WarningLevel warningLevel: warningLevels) {
+ Byte warningLevelId = (Byte) (byte) warningLevel.getValue();
+ warningLevelIds.add(warningLevelId);
+ }
+ List<RectangularAreaStruct> areaStructs = new ArrayList<>();
+ for (RectangularArea rectangularArea: areas) {
+ RectangularAreaStruct rectangularAreaStruct = StructUtil.rectangularAreaToRectangularAreaStruct(rectangularArea);
+ areaStructs.add(rectangularAreaStruct);
+ }
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("addAreasUpdateListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.addAreasUpdateListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ LOGGER.info("Going to send addAreasUpdateListener D-Bus request (with Callback)");
+ conn.callWithCallback(trafficIncidentsDBus, "AddAreasUpdateListener", callbackHandler, listenerId, warningLevelIds, categoryIds, areaStructs);
+ } else {
+ LOGGER.info("Going to send addAreasUpdateListener D-Bus request (fire and forget)");
+ conn.callMethodAsync(trafficIncidentsDBus, "AddAreasUpdateListener", listenerId, warningLevelIds, categoryIds, areaStructs);
+ }
+
+ LOGGER.fine("addAreasUpdateListener <=");
+ }
+
+ @Override
+ public void removeAreasUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener areasUpdateListener) {
+ LOGGER.fine("removeAreasUpdateListener => listener = " + listener + ", areasUpdateListener = " + areasUpdateListener);
+
+ Integer listenerId = null;
+ for (Integer key: updatesInAreasListeners.keySet()) {
+ if (updatesInAreasListeners.get(key).equals(areasUpdateListener)) {
+ listenerId = key;
+ break;
+ }
+ }
+
+ if (listenerId == null) {
+ throw new IllegalArgumentException("Unknown areasUpdateListener");
+ }
+
+ updatesInAreasListeners.remove(listenerId);
+
+ if (listener != null) {
+ CallbackHandler<Integer> callbackHandler = new CallbackHandler<Integer>() {
+ @Override
+ public void handle(Integer dummyReturnValue) {
+ LOGGER.info("removeAreasUpdateListener:handle => dummyReturnValue = " + dummyReturnValue);
+ TrafficIncidentsListener listener = callsInProgress.remove(this);
+ if (listener == null) {
+ throw new RuntimeException("No entry for callbackHandler found");
+ }
+
+ listener.removeAreasUpdateListenerReply();
+ }
+
+ @Override
+ public void handleError(DBusExecutionException e) {
+ LOGGER.severe(e.getMessage());
+ e.printStackTrace();
+ }
+
+ };
+
+ callsInProgress.put(callbackHandler, listener);
+ conn.callWithCallback(trafficIncidentsDBus, "RemoveAreasUpdateListener", callbackHandler, listenerId);
+ } else {
+ conn.callMethodAsync(trafficIncidentsDBus, "RemoveAreasUpdateListener", listenerId);
+ }
+
+ LOGGER.fine("removeAreasUpdateListener <=");
+ }
+
+ private Integer generateListenerId(Map<Integer, TrafficIncidentsListener> currentListeners) {
+ Set<Integer> currentIds = currentListeners.keySet();
+
+ for (int id = firstListenerId; id < Integer.MAX_VALUE; id++) {
+ if (!currentIds.contains(id)) {
+ return id;
+ }
+ }
+
+ throw new RuntimeException("UpdateListenerId overflow.");
+ }
+
+ class TrafficIncidentsStatusSignalHandler implements DBusSigHandler<TrafficIncidentsDBus.TrafficIncidentsStatus> {
+ public void handle(TrafficIncidentsDBus.TrafficIncidentsStatus status) {
+ LOGGER.fine("TrafficIncidentsStatusSignalHandler => path = " + status.getPath());
+
+ TrafficIncidentFeedStatus trafficIncidentFeedStatus = null;
+ if (status.trafficIncidentFeedStatus != 0) {
+ trafficIncidentFeedStatus = TrafficIncidentFeedStatus.get(status.trafficIncidentFeedStatus);
+ }
+
+ TrafficIncidentsStatus trafficIncidentsStatus = null;
+ if (status.trafficIncidentsStatus != 0) {
+ trafficIncidentsStatus = TrafficIncidentsStatus.get(status.trafficIncidentsStatus);
+ }
+
+ if (trafficIncidentsStatusListeners.isEmpty()) {
+ LOGGER.info("TrafficIncidentsStatusSignalHandler: No listener registered");
+ } else {
+ for (TrafficIncidentsListener listener: trafficIncidentsStatusListeners) {
+ listener.trafficIncidentsStatus(trafficIncidentFeedStatus, trafficIncidentsStatus);
+ }
+ }
+ }
+ }
+
+ class FeedInformationSignalHandler implements DBusSigHandler<TrafficIncidentsDBus.FeedInformation> {
+ public void handle(TrafficIncidentsDBus.FeedInformation info) {
+ LOGGER.fine("TrafficIncidentsStatusSignalHandler => path = " + info.getPath());
+
+ EList<FeedInformation> feedsInformation = new BasicEList<>();
+ List<FeedInformationStruct> feedsInformationStructs = info.feedsInformation;
+
+ for (FeedInformationStruct feedInformationStruct: feedsInformationStructs) {
+ FeedInformation feedInformation = StructUtil.feedInformationStructToFeedInformation(feedInformationStruct);
+ feedsInformation.add(feedInformation);
+ }
+
+ if (feedInformationListeners.isEmpty()) {
+ LOGGER.info("FeedInformationSignalHandler: No listener registered");
+ } else {
+ for (TrafficIncidentsListener listener: feedInformationListeners) {
+ listener.feedInformation(feedsInformation);
+ }
+ }
+ }
+ }
+
+ class UpdatesSignalHandler implements DBusSigHandler<TrafficIncidentsDBus.Updates> {
+ public void handle(TrafficIncidentsDBus.Updates updates) {
+ LOGGER.info("UpdatesSignalHandler => path = " + updates.getPath());
+ EList<Integer> unchangedTrafficIncidentIds = new BasicEList<>();
+ EList<Integer> changedTrafficIncidentIds = new BasicEList<>();
+ EList<Integer> newTrafficIncidentIds = new BasicEList<>();
+ EList<Integer> deletedTrafficIncidentIds = new BasicEList<>();
+
+ for (Integer id: updates.unchangedTrafficIncidentIds) {
+ unchangedTrafficIncidentIds.add(id);
+ }
+
+ for (Integer id: updates.changedTrafficIncidentIds) {
+ changedTrafficIncidentIds.add(id);
+ }
+
+ for (Integer id: updates.newTrafficIncidentIds) {
+ newTrafficIncidentIds.add(id);
+ }
+
+ for (Integer id: updates.deletedTrafficIncidentIds) {
+ deletedTrafficIncidentIds.add(id);
+ }
+
+ int listenerId = updates.listenerId;
+ LOGGER.info("UpdatesSignalHandler: listenerId = " + listenerId);
+
+ TrafficIncidentsListener listener = updatesListeners.get(listenerId);
+
+ if (listener != null) {
+ LOGGER.info("UpdatesSignalHandler: calling updates on listener");
+ listener.updates(unchangedTrafficIncidentIds, changedTrafficIncidentIds, newTrafficIncidentIds, deletedTrafficIncidentIds);
+ } else {
+ LOGGER.severe("UpdatesSignalHandler: Signal received for listenerId that is not in use at this node, listenerId = " + listenerId);
+ }
+
+ LOGGER.info("UpdatesSignalHandler <=");
+ }
+ }
+
+
+ class UpdatesInAreasSignalHandler implements DBusSigHandler<TrafficIncidentsDBus.UpdatesInAreas> {
+ public void handle(TrafficIncidentsDBus.UpdatesInAreas updatesInAreas) {
+ LOGGER.fine("UpdatesInAreasSignalHandler => path = " + updatesInAreas.getPath());
+ EList<RectangularArea> areas = new BasicEList<>();
+
+ for (RectangularAreaStruct rectangularAreaStruct: updatesInAreas.areas) {
+ RectangularArea rectangularArea = StructUtil.rectangularAreaStructToRectangularArea(rectangularAreaStruct);
+ areas.add(rectangularArea);
+ }
+
+ int listenerId = updatesInAreas.listenerId;
+ LOGGER.fine("listenerId = " + listenerId);
+
+ TrafficIncidentsListener listener = updatesInAreasListeners.get(listenerId);
+
+ if (listener != null) {
+ listener.updatesInAreas(areas);
+ } else {
+ LOGGER.severe("UpdatesInAreasSignalHandler: Signal received for listenerId that is not in use at this node, listenerId = " + listenerId);
+ }
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsListenerProxy.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsListenerProxy.java
new file mode 100755
index 0000000..f415194
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.dbuswrapper/src/main/java/org/genivi/trafficincidentsservice/trafficincidents/dbus/impl/TrafficIncidentsListenerProxy.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.dbus.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.common.RectangularArea;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.RectangularAreaStruct;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentsDBus;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentsDBus.Updates;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.TrafficIncidentsDBus.UpdatesInAreas;
+
+public class TrafficIncidentsListenerProxy extends DefaultTrafficIncidentsListener {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsListenerProxy.class.getName());
+
+ private DBusConnection conn;
+ private Integer listenerId;
+ private String destination;
+
+ public TrafficIncidentsListenerProxy(String destination, Integer listenerId) {
+ this.listenerId = listenerId;
+ this.destination = destination;
+
+ try {
+ conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+
+ @Override
+ public void updates(EList<Integer> eListUnchangedTrafficIncidentIds,
+ EList<Integer> eListChangedTrafficIncidentIds, EList<Integer> eListNewTrafficIncidentIds,
+ EList<Integer> eListDeletedTrafficIncidentIds) {
+ LOGGER.info("TrafficIncidentsListenerProxy:updates => eListUnchangedTrafficIncidentIds = " + eListUnchangedTrafficIncidentIds +
+ ", eListChangedTrafficIncidentIds = " + eListChangedTrafficIncidentIds +
+ ", eListNewTrafficIncidentIds = " + eListNewTrafficIncidentIds +
+ ", eListDeletedTrafficIncidentIds = " + eListDeletedTrafficIncidentIds);
+
+ sendSignalUpdates(listenerId, eListUnchangedTrafficIncidentIds, eListChangedTrafficIncidentIds, eListNewTrafficIncidentIds, eListDeletedTrafficIncidentIds);
+ }
+
+ @Override
+ public void updatesInAreas(EList<RectangularArea> areas) {
+ LOGGER.info("TrafficIncidentsListenerProxy:updatesInAreas => areas = " + areas);
+ sendSignalUpdatesInAreas(listenerId, areas);
+ }
+
+ public Integer getListenerId() {
+ return listenerId;
+ }
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void sendSignalUpdates(Integer listenerId, EList<Integer> eListUnchangedTrafficIncidentIds, EList<Integer> eListChangedTrafficIncidentIds, EList<Integer> eListNewTrafficIncidentIds, EList<Integer> eListDeletedTrafficIncidentIds) {
+ List<Integer> unchangedTrafficIncidentIds = new ArrayList<>();
+ for (Integer id: eListUnchangedTrafficIncidentIds) {
+ unchangedTrafficIncidentIds.add(id);
+ }
+
+ List<Integer> changedTrafficIncidentIds = new ArrayList<>();
+ for (Integer id: eListChangedTrafficIncidentIds) {
+ changedTrafficIncidentIds.add(id);
+ }
+
+ List<Integer> newTrafficIncidentIds = new ArrayList<>();
+ for (Integer id: eListNewTrafficIncidentIds) {
+ newTrafficIncidentIds.add(id);
+ }
+
+ List<Integer> deletedTrafficIncidentIds = new ArrayList<>();
+ for (Integer id: eListDeletedTrafficIncidentIds) {
+ deletedTrafficIncidentIds.add(id);
+ }
+
+ try {
+ String path = addDestinationInfoToPath();
+ Updates updates = new TrafficIncidentsDBus.Updates(path, listenerId, unchangedTrafficIncidentIds, changedTrafficIncidentIds, newTrafficIncidentIds, deletedTrafficIncidentIds);
+ LOGGER.info("going to send Updates signal to: " + destination);
+ conn.sendSignal(updates);
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void sendSignalUpdatesInAreas(Integer listenerId, EList<RectangularArea> areas) {
+ List<RectangularAreaStruct> areaStructs = new ArrayList<>();
+
+ for (RectangularArea area: areas) {
+ RectangularAreaStruct areaStruct = StructUtil.rectangularAreaToRectangularAreaStruct(area);
+ areaStructs.add(areaStruct);
+ }
+
+ LOGGER.info("going to send UpdatesInAreas signal to: " + destination);
+
+ try {
+ String path = addDestinationInfoToPath();
+ UpdatesInAreas updatesInAreas = new TrafficIncidentsDBus.UpdatesInAreas(path, listenerId, areaStructs);
+ conn.sendSignal(updatesInAreas);
+ } catch (DBusException e) {
+ e.printStackTrace();
+ }
+ }
+
+ String addDestinationInfoToPath() {
+ String destinationPatched = destination.replaceAll(":", "/p");
+ destinationPatched = destinationPatched.replaceAll("\\.", "/p");
+ String path = "/java" + destinationPatched + "id" + listenerId;
+ path = path + "&" + destination;
+ LOGGER.info("addDestinationInfoToPath: path (2) = " + path);
+
+ return path;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.classpath b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.classpath
new file mode 100755
index 0000000..841f9a5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.locref-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidenttables-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.project b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.project
new file mode 100755
index 0000000..9c2e226
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/.project
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model</name>
+ <comment>This project contains the data model for Traffic Incidents in the TrafficIncidentFeed interface. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ <project>org.genivi.locref-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidenttables-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..dedfc4e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.trafficinfo.xtrafficincident;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident,
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl,
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.util
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.basetypes-model,
+ org.genivi.locref-model;visibility:=reexport,
+ org.genivi.trafficinfo.trafficincidenttables;visibility:=reexport
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/ReadMe.confluence
new file mode 100755
index 0000000..9bc1bc0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/ReadMe.confluence
@@ -0,0 +1,3 @@
+This project defines the TrafficIncident data model as used in the TrafficIncidentFeed interface.
+
+XTrafficIncident.ecorediag, in de model folder, provides a good overview of the structure of a TrafficIncident. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/build.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecore b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecore
new file mode 100755
index 0000000..01a452f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecore
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="trafficincident" nsURI="http://org.genivi.xtrafficinfo" nsPrefix="TrafficIncident">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="TrafficIncident">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="See http://vos.intra.local/display/GENIVI/GENIVI+Traffic+Information+-+Traffic+Incident+Definition for definitions of the meanings of the attributes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="effectCode" lowerBound="1"
+ eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//EffectCode"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stopTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tendency" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//Tendency"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthAffected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="averageSpeedAbsolute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="delay" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="segmentSpeedLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="causes" upperBound="-1"
+ eType="#//Cause" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="advices" upperBound="-1"
+ eType="#//Advice" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applicability" upperBound="-1"
+ eType="#//Applicability" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="trafficIncidentId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expectedSpeedAbsolute"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expirationTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="updateTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="locationReference" lowerBound="1"
+ eType="ecore:EClass ../../org.genivi.locref-model/model/LocationReference.ecore#//LocationReference"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="temporarySpeedLimit" upperBound="-1"
+ eType="#//TemporarySpeedLimit" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mainCause" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//CauseCode"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkedCause" eSuperTypes="#//Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="causeTrafficIncidentId"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There can be a LinkedCause for which the linked TrafficIncident isn't available (to the application) yet. Therefore this atttibute is optional."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DirectCause" eSuperTypes="#//Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="warningLevel" lowerBound="1"
+ eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//WarningLevel"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unverifiedInformation"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subCause" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthAffected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="laneRestrictions" eType="#//LaneRestrictions"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="freeText" upperBound="-1"
+ eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/LocalizedString"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="causeOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LaneRestrictions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="laneRestrictionType" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//LaneRestrictionType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfLanes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Advice">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mainAdvice" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//AdviceCode"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subAdvice" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="freeText" upperBound="-1"
+ eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/LocalizedString"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applicability" upperBound="-1"
+ eType="#//Applicability" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Applicability">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vehicleType" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//VehicleType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="vehicleRelatedRestrictions"
+ upperBound="-1" eType="#//VehicleRelatedRestriction" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VehicleRelatedRestriction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="restrictionType" lowerBound="1"
+ eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//RestrictionType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="restrictionValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="restrictionLocationReference"
+ eType="ecore:EClass ../../org.genivi.locref-model/model/LocationReference.ecore#//LocationReference"
+ unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemporarySpeedLimitSection">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitValue" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitValueWet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemporarySpeedLimit">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="temporarySpeedLimitSections"
+ lowerBound="1" upperBound="-1" eType="#//TemporarySpeedLimitSection" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unitsMPH" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applicability" upperBound="-1"
+ eType="#//Applicability" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecorediag b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecorediag
new file mode 100755
index 0000000..b38fe1a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.ecorediag
@@ -0,0 +1,529 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Mlnn8T8-EeCZw9yYN1vKNg" type="EcoreTools" name="TrafficIncident.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_NkCp8VoXEeC3H6JlN9FMhA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_NkVk4FoXEeC3H6JlN9FMhA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_NkyQ0FoXEeC3H6JlN9FMhA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_-OXG0Fb1EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/trafficIncidentId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-OXG0Vb1EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LRiJ4FoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/effectCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LRiJ4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_S5FKEFoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/startTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S5FKEVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ynal4FoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/stopTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ynal4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C9O78FoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/tendency"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C9O78VoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JLaVcFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/lengthAffected"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JLaVcVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VD-e4FoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/averageSpeedAbsolute"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VD-e4VoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dvk9EFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/delay"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dvk9EVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iqHkcFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/segmentSpeedLimit"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iqHkcVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZiqgoJ-VEeO2bPxtRJW0gw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/expectedSpeedAbsolute"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZiqgoZ-VEeO2bPxtRJW0gw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jeKIkM0fEeKfKdqTiSF_4g" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/expirationTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jeKIkc0fEeKfKdqTiSF_4g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_o4fqUM0fEeKfKdqTiSF_4g" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TrafficIncident/updateTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o4fqUc0fEeKfKdqTiSF_4g"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NkyQ0VoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NkyQ0loXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NkyQ01oXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkyQ1FoXEeC3H6JlN9FMhA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NkyQ1VoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NkyQ1loXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NkyQ11oXEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NkCp8loXEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//TrafficIncident"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NkCp81oXEeC3H6JlN9FMhA" x="348" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tKvDgFoaEeC3H6JlN9FMhA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_tKvDg1oaEeC3H6JlN9FMhA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_tKvDhFoaEeC3H6JlN9FMhA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_1X1lYFqqEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//Cause/mainCause"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1X1lYVqqEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tKvDhVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKvDhloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKvDh1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tKvDiFoaEeC3H6JlN9FMhA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tKvDiVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKvDiloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKvDi1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tKvDgVoaEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//Cause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tKvDgloaEeC3H6JlN9FMhA" x="96" y="216"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7PGeQFqrEeCUVO0erQdu-A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_7PGeQ1qrEeCUVO0erQdu-A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_7PGeRFqrEeCUVO0erQdu-A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_S-FTsFiiEeGnKKOPQnHHAw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//LinkedCause/causeTrafficIncidentId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-FTsViiEeGnKKOPQnHHAw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7PGeRVqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7PGeRlqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7PGeR1qrEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7PGeSFqrEeCUVO0erQdu-A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7PGeSVqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7PGeSlqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7PGeS1qrEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7PGeQVqrEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//LinkedCause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7PGeQlqrEeCUVO0erQdu-A" x="216" y="348"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFcFqsEeCUVO0erQdu-A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ZzAFc1qsEeCUVO0erQdu-A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFdFqsEeCUVO0erQdu-A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_G03yEFqtEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//DirectCause/warningLevel"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G03yEVqtEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RdQtEFqtEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//DirectCause/unverifiedInformation"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RdQtEVqtEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ymqOgFYyEeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//DirectCause/subCause"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ymqOgVYyEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Dl4hAFY5EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//DirectCause/lengthAffected"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Dl4hAVY5EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4R3zIKK6EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//DirectCause/causeOffset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4R3zIaK6EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZzAFdVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZzAFdlqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZzAFd1qsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFeFqsEeCUVO0erQdu-A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZzAFeVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZzAFelqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZzAFe1qsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZzAFcVqsEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//DirectCause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZzAFclqsEeCUVO0erQdu-A" x="36" y="420"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_onuXEVM7EeGPO9BWHBmh1Q" type="Note" description="Based on TISA version of TEC:&#xD;&#xA;TPEG2-TEC_3.1/001 2011-11-07" fillColor="8047085" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ooBSAFM7EeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ooBSAVM7EeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_onuXElM7EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_onuXE1M7EeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_onuXFFM7EeGPO9BWHBmh1Q" x="48" y="48"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ciUwcFY5EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ciUwc1Y5EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ciUwdFY5EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_lUjbEFY5EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//LaneRestrictions/laneRestrictionType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lUjbEVY5EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s73xwFY5EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//LaneRestrictions/numberOfLanes"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s73xwVY5EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ciUwdVY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ciUwdlY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ciUwd1Y5EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cid6YFY5EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_cid6YVY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cid6YlY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cid6Y1Y5EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ciUwcVY5EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//LaneRestrictions"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ciUwclY5EeGPO9BWHBmh1Q" x="24" y="600"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uzRGUFY7EeGPO9BWHBmh1Q" type="Note" description="As there are no requirements related to the DiversionRoute, this is left out of the model." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_uzRGVFY7EeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_uzRGVVY7EeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_uzRGUVY7EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_uzRGUlY7EeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uzRGU1Y7EeGPO9BWHBmh1Q" x="792" y="24" width="181" height="73"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QFQrcFY8EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_QFQrc1Y8EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_QFQrdFY8EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_oqgi4FY8EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//Advice/mainAdvice"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oqgi4VY8EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0EiWMFY8EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//Advice/subAdvice"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0EiWMVY8EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QFQrdVY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QFQrdlY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QFQrd1Y8EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QFQreFY8EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QFQreVY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QFQrelY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QFQre1Y8EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QFQrcVY8EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//Advice"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QFQrclY8EeGPO9BWHBmh1Q" x="408" y="420"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lB814FY-EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_lB8141Y-EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_lB815FY-EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_UlTAwFY_EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//Applicability/vehicleType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UlTAwVY_EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lB815VY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lB815lY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lB8151Y-EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lB816FY-EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lB816VY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lB816lY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lB8161Y-EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_lB814VY-EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//Applicability"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lB814lY-EeGPO9BWHBmh1Q" x="516" y="564"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0HqbUFY_EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_0HqbU1Y_EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_0HqbVFY_EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_pyVw0FZAEeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//VehicleRelatedRestriction/restrictionType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pyVw0VZAEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ww43UFZAEeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//VehicleRelatedRestriction/restrictionValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ww43UVZAEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0HqbVVY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0HqbVlY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0HqbV1Y_EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0HqbWFY_EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0HqbWVY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0HqbWlY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0HqbW1Y_EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0HqbUVY_EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//VehicleRelatedRestriction"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0HqbUlY_EeGPO9BWHBmh1Q" x="660" y="660"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kZJhwMIJEeKzfrbTBoIYAA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kiiuUMIJEeKzfrbTBoIYAA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kiiuUcIJEeKzfrbTBoIYAA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_kaV0kMIJEeKzfrbTBoIYAA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_kaV0kcIJEeKzfrbTBoIYAA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kaV0ksIJEeKzfrbTBoIYAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kaV0k8IJEeKzfrbTBoIYAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kaV0lMIJEeKzfrbTBoIYAA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kaV0lcIJEeKzfrbTBoIYAA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kaV0lsIJEeKzfrbTBoIYAA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kaV0l8IJEeKzfrbTBoIYAA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kaV0mMIJEeKzfrbTBoIYAA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_kZJhwcIJEeKzfrbTBoIYAA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.basetypes-model/model/Basetypes.ecore#//common/LocalizedString"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kZJhwsIJEeKzfrbTBoIYAA" x="324" y="588"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C9ePIM0gEeKfKdqTiSF_4g" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C-OdEM0gEeKfKdqTiSF_4g" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-OdEc0gEeKfKdqTiSF_4g" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_C9oAIM0gEeKfKdqTiSF_4g" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_C9oAIc0gEeKfKdqTiSF_4g" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_C9oAIs0gEeKfKdqTiSF_4g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_C9oAI80gEeKfKdqTiSF_4g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_C9oAJM0gEeKfKdqTiSF_4g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C9oAJc0gEeKfKdqTiSF_4g" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_C9oAJs0gEeKfKdqTiSF_4g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_C9oAJ80gEeKfKdqTiSF_4g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_C9oAKM0gEeKfKdqTiSF_4g"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_C9ePIc0gEeKfKdqTiSF_4g" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.locref-model/model/LocationReference.ecore#//LocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C9ePIs0gEeKfKdqTiSF_4g" x="756" y="456"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b8VEcKK7EeOqyayr_JFKKw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_b8W5oKK7EeOqyayr_JFKKw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_b8W5oaK7EeOqyayr_JFKKw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_lM0YYKK7EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TemporarySpeedLimitSection/speedLimitValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lM0YYaK7EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_m_ugcKK7EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TemporarySpeedLimitSection/speedLimitValueWet"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m_ugcaK7EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ozoHAKK7EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TemporarySpeedLimitSection/speedLimitLength"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozoHAaK7EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_b8W5oqK7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b8W5o6K7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b8W5pKK7EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b8W5paK7EeOqyayr_JFKKw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_b8W5pqK7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b8W5p6K7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b8W5qKK7EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_b8VEcaK7EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//TemporarySpeedLimitSection"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b8VEcqK7EeOqyayr_JFKKw" x="756" y="288"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_g7cp0KK7EeOqyayr_JFKKw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_g7dQ4KK7EeOqyayr_JFKKw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_g7dQ4aK7EeOqyayr_JFKKw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_PFgtkKK8EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TemporarySpeedLimit/unitsMPH"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PFgtkaK8EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VTjkMKK8EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="XTrafficIncident.ecore#//TemporarySpeedLimit/offset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VTjkMaK8EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_g7dQ4qK7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g7dQ46K7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g7dQ5KK7EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_g7d38KK7EeOqyayr_JFKKw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_g7d38aK7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g7d38qK7EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g7d386K7EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_g7cp0aK7EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="XTrafficIncident.ecore#//TemporarySpeedLimit"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g7cp0qK7EeOqyayr_JFKKw" x="672" y="168"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mlnn8j8-EeCZw9yYN1vKNg"/>
+ <element xmi:type="ecore:EPackage" href="XTrafficIncident.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_CF82wFqrEeCUVO0erQdu-A" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <children xmi:type="notation:Node" xmi:id="_CGjTsFqrEeCUVO0erQdu-A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGjTsVqrEeCUVO0erQdu-A" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CGjTslqrEeCUVO0erQdu-A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGjTs1qrEeCUVO0erQdu-A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CF82wVqrEeCUVO0erQdu-A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CF82wlqrEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TrafficIncident/causes"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CF82w1qrEeCUVO0erQdu-A" points="[-59, 3, 145, -8]$[-202, 35, 2, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CH5XgFqrEeCUVO0erQdu-A" id="(0.22988505747126436,0.453416149068323)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CH5XgVqrEeCUVO0erQdu-A" id="(0.7777777777777778,0.4897959183673469)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_RsFBoFqsEeCUVO0erQdu-A" type="3003" source="_7PGeQFqrEeCUVO0erQdu-A" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_RsFBoVqsEeCUVO0erQdu-A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RsFBolqsEeCUVO0erQdu-A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RsFBo1qsEeCUVO0erQdu-A" points="[-20, -20, 102, 85]$[-37, -102, 85, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_dAiYcFqsEeCUVO0erQdu-A" type="3003" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_dAiYcVqsEeCUVO0erQdu-A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dAiYclqsEeCUVO0erQdu-A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dAiYc1qsEeCUVO0erQdu-A" points="[5, -20, -27, 72]$[-12, -68, -44, 24]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_yWckEFY5EeGPO9BWHBmh1Q" type="3002" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_ciUwcFY5EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_yWckFFY5EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yWckFVY5EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yWckFlY5EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yWckF1Y5EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_yWckEVY5EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_yWckElY5EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//DirectCause/laneRestrictions"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yWckE1Y5EeGPO9BWHBmh1Q" points="[109, 6, -301, -14]$[276, 20, -134, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_QmIZUFY7EeGPO9BWHBmh1Q" type="3002" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_kZJhwMIJEeKzfrbTBoIYAA">
+ <children xmi:type="notation:Node" xmi:id="_QmIZVFY7EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QmIZVVY7EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QmIZVlY7EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QmIZV1Y7EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_QmIZUVY7EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QmIZUlY7EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//DirectCause/freeText"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QmIZU1Y7EeGPO9BWHBmh1Q" points="[-20, 48, 23, -81]$[-96, 128, -53, -1]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qKspoMIJEeKzfrbTBoIYAA" id="(0.5389221556886228,0.061855670103092786)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_T7evEFY8EeGPO9BWHBmh1Q" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_QFQrcFY8EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_T7evFFY8EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T7evFVY8EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T7evFlY8EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T7evF1Y8EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_T7evEVY8EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T7evElY8EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TrafficIncident/advices"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T7evE1Y8EeGPO9BWHBmh1Q" points="[7, 80, -34, -125]$[-9, 202, -50, -3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_FBN5wFY9EeGPO9BWHBmh1Q" type="3002" source="_QFQrcFY8EeGPO9BWHBmh1Q" target="_kZJhwMIJEeKzfrbTBoIYAA">
+ <children xmi:type="notation:Node" xmi:id="_FBN5xFY9EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FBN5xVY9EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FBN5xlY9EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FBN5x1Y9EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_FBN5wVY9EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FBN5wlY9EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//Advice/freeText"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FBN5w1Y9EeGPO9BWHBmh1Q" points="[-38, 32, 151, -123]$[-187, 149, 2, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FBXqwFY9EeGPO9BWHBmh1Q" id="(0.6646706586826348,0.08247422680412371)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_vrSMEFY-EeGPO9BWHBmh1Q" type="3002" source="_QFQrcFY8EeGPO9BWHBmh1Q" target="_lB814FY-EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_vrSMFFY-EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vrSMFVY-EeGPO9BWHBmh1Q" x="-30" y="-6"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vrSMFlY-EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vrSMF1Y-EeGPO9BWHBmh1Q" x="-18" y="14"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_vrSMEVY-EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vrSMElY-EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//Advice/applicability"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vrSME1Y-EeGPO9BWHBmh1Q" points="[10, 32, -14, -101]$[-26, 133, -50, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_CwdwYFZDEeGPO9BWHBmh1Q" type="3002" source="_lB814FY-EeGPO9BWHBmh1Q" target="_0HqbUFY_EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_CwdwZFZDEeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CwdwZVZDEeGPO9BWHBmh1Q" x="-48" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CwdwZlZDEeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CwdwZ1ZDEeGPO9BWHBmh1Q" x="-3" y="-5"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CwdwYVZDEeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CwdwYlZDEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//Applicability/vehicleRelatedRestrictions"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CwdwY1ZDEeGPO9BWHBmh1Q" points="[-9, 24, 41, -92]$[-22, 85, 28, -31]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_XOD18FZDEeGPO9BWHBmh1Q" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_lB814FY-EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_XOD19FZDEeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XOD19VZDEeGPO9BWHBmh1Q" x="-159"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XOD19lZDEeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XOD191ZDEeGPO9BWHBmh1Q" x="27" y="-18"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_XOD18VZDEeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XOD18lZDEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TrafficIncident/applicability"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XOD181ZDEeGPO9BWHBmh1Q" points="[7, 47, -46, -280]$[55, 308, 2, -19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XOD1-FZDEeGPO9BWHBmh1Q" id="(0.7126436781609196,0.9565217391304348)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XOD1-VZDEeGPO9BWHBmh1Q" id="(0.8611111111111112,0.40816326530612246)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_GIgnwM0gEeKfKdqTiSF_4g" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_C9ePIM0gEeKfKdqTiSF_4g">
+ <children xmi:type="notation:Node" xmi:id="_GIgnxM0gEeKfKdqTiSF_4g" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GIgnxc0gEeKfKdqTiSF_4g" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GIgnxs0gEeKfKdqTiSF_4g" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GIgnx80gEeKfKdqTiSF_4g" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_GIgnwc0gEeKfKdqTiSF_4g" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GIgnws0gEeKfKdqTiSF_4g" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TrafficIncident/locationReference"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GIgnw80gEeKfKdqTiSF_4g" points="[53, 27, -270, -144]$[284, 132, -39, -39]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GIqYwM0gEeKfKdqTiSF_4g" id="(0.7969348659003831,0.5980861244019139)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_R4LT4M0gEeKfKdqTiSF_4g" type="3002" source="_0HqbUFY_EeGPO9BWHBmh1Q" target="_C9ePIM0gEeKfKdqTiSF_4g">
+ <children xmi:type="notation:Node" xmi:id="_R4LT5M0gEeKfKdqTiSF_4g" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R4LT5c0gEeKfKdqTiSF_4g" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_R4LT5s0gEeKfKdqTiSF_4g" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R4LT580gEeKfKdqTiSF_4g" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_R4LT4c0gEeKfKdqTiSF_4g" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_R4LT4s0gEeKfKdqTiSF_4g" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//VehicleRelatedRestriction/restrictionLocationReference"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R4LT480gEeKfKdqTiSF_4g" points="[6, -31, -103, 330]$[2, -358, -107, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_H1Pk8KK8EeOqyayr_JFKKw" type="3002" source="_g7cp0KK7EeOqyayr_JFKKw" target="_b8VEcKK7EeOqyayr_JFKKw">
+ <children xmi:type="notation:Node" xmi:id="_H1Pk9KK8EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H1Pk9aK8EeOqyayr_JFKKw" x="-1" y="-39"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_H1QzEKK8EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H1QzEaK8EeOqyayr_JFKKw" x="29" y="-32"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_H1Pk8aK8EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_H1Pk8qK8EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TemporarySpeedLimit/temporarySpeedLimitSections"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_H1Pk86K8EeOqyayr_JFKKw" points="[18, 21, -105, -93]$[9, 76, -114, -38]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_H1SoQKK8EeOqyayr_JFKKw" id="(0.21333333333333335,0.4883720930232558)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_bOBXgKK8EeOqyayr_JFKKw" type="3002" source="_g7cp0KK7EeOqyayr_JFKKw" target="_lB814FY-EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_bOBXhKK8EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bOBXhaK8EeOqyayr_JFKKw" x="-101"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bOB-kKK8EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bOB-kaK8EeOqyayr_JFKKw" x="31" y="-13"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_bOBXgaK8EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_bOBXgqK8EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TemporarySpeedLimit/applicability"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bOBXg6K8EeOqyayr_JFKKw" points="[-16, 33, 183, -383]$[-198, 408, 1, -8]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bOEa0KK8EeOqyayr_JFKKw" id="(0.45555555555555555,0.1836734693877551)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_iv5NgKK8EeOqyayr_JFKKw" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_g7cp0KK7EeOqyayr_JFKKw">
+ <children xmi:type="notation:Node" xmi:id="_iv5NhKK8EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iv5NhaK8EeOqyayr_JFKKw" x="6" y="-40"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iv5NhqK8EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iv5Nh6K8EeOqyayr_JFKKw" x="23" y="-22"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_iv5NgaK8EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iv5NgqK8EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="XTrafficIncident.ecore#//TrafficIncident/temporarySpeedLimit"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iv5Ng6K8EeOqyayr_JFKKw" points="[64, 14, -184, -44]$[245, 25, -3, -33]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iv8Q0KK8EeOqyayr_JFKKw" id="(0.7593984962406015,0.28)"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.genmodel b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.genmodel
new file mode 100755
index 0000000..6db91e7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/model/XTrafficIncident.genmodel
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident-model/src" modelPluginID="org.genivi.trafficinfo.xtrafficincident"
+ modelName="XTrafficIncident" editPluginClass="org.genivi.trafficinfo.xtrafficincident.provider.XTrafficIncidentEditPlugin"
+ editorPluginClass="org.genivi.trafficinfo.xtrafficincident.presentation.XTrafficIncidentEditorPlugin"
+ testSuiteClass="org.genivi.trafficinfo.XTrafficIncident.tests.TrafficIncidentAllTests"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ usedGenPackages="../../org.genivi.basetypes-model/model/Basetypes.genmodel#//genivi ../../org.genivi.locref-model/model/LocationReference.genmodel#//locref ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel#//trafficincidenttables">
+ <foreignModel>XTrafficIncident.ecore</foreignModel>
+ <genPackages prefix="XTrafficIncident" basePackage="org.genivi.trafficincidentsservice.trafficincidentfeed"
+ disposableProviderFactory="true" ecorePackage="XTrafficIncident.ecore#/">
+ <genClasses ecoreClass="XTrafficIncident.ecore#//TrafficIncident">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/effectCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/startTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/stopTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/tendency"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/lengthAffected"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/averageSpeedAbsolute"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/delay"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/segmentSpeedLimit"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//TrafficIncident/causes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//TrafficIncident/advices"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//TrafficIncident/applicability"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/trafficIncidentId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/expirationTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//TrafficIncident/updateTime"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//TrafficIncident/locationReference"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//Cause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//Cause/mainCause"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//LinkedCause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//LinkedCause/causeTrafficIncidentId"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//DirectCause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//DirectCause/warningLevel"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//DirectCause/unverifiedInformation"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//DirectCause/subCause"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//DirectCause/lengthAffected"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//DirectCause/laneRestrictions"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//DirectCause/freeText"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//LaneRestrictions">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//LaneRestrictions/laneRestrictionType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//LaneRestrictions/numberOfLanes"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//Advice">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//Advice/mainAdvice"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//Advice/subAdvice"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//Advice/freeText"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//Advice/applicability"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//Applicability">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//Applicability/vehicleType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//Applicability/vehicleRelatedRestrictions"/>
+ </genClasses>
+ <genClasses ecoreClass="XTrafficIncident.ecore#//VehicleRelatedRestriction">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//VehicleRelatedRestriction/restrictionType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XTrafficIncident.ecore#//VehicleRelatedRestriction/restrictionValue"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference XTrafficIncident.ecore#//VehicleRelatedRestriction/restrictionLocationReference"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.properties
new file mode 100755
index 0000000..d4e01b4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = TrafficIncident Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.xml
new file mode 100755
index 0000000..1f5f3c8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated XTrafficIncident -->
+ <package
+ uri="http://org.genivi.xtrafficinfo"
+ class="org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage"
+ genModel="model/XTrafficIncident.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/pom.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/pom.xml
new file mode 100755
index 0000000..a658a38
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidentfeed</groupId>
+ <artifactId>trafficincidentfeed-trafficincident-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>Traffic Incident data model for the TrafficIncidentFeed interface</name>
+ <description>This project contains the data model for Traffic Incidents in the TrafficIncidentFeed interface.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Advice.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Advice.java
new file mode 100755
index 0000000..2fcf0e4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Advice.java
@@ -0,0 +1,224 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.LocalizedString;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Advice</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getApplicability <em>Applicability</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getAdvice()
+ * @model
+ * @generated
+ */
+public interface Advice extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Advice</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Advice</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Advice</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @see #isSetMainAdvice()
+ * @see #unsetMainAdvice()
+ * @see #setMainAdvice(AdviceCode)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getAdvice_MainAdvice()
+ * @model unsettable="true"
+ * @generated
+ */
+ AdviceCode getMainAdvice();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Advice</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @see #isSetMainAdvice()
+ * @see #unsetMainAdvice()
+ * @see #getMainAdvice()
+ * @generated
+ */
+ void setMainAdvice(AdviceCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMainAdvice()
+ * @see #getMainAdvice()
+ * @see #setMainAdvice(AdviceCode)
+ * @generated
+ */
+ void unsetMainAdvice();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Main Advice</em>' attribute is set.
+ * @see #unsetMainAdvice()
+ * @see #getMainAdvice()
+ * @see #setMainAdvice(AdviceCode)
+ * @generated
+ */
+ boolean isSetMainAdvice();
+
+ /**
+ * Returns the value of the '<em><b>Sub Advice</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Sub Advice</em>' attribute.
+ * @see #isSetSubAdvice()
+ * @see #unsetSubAdvice()
+ * @see #setSubAdvice(Object)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getAdvice_SubAdvice()
+ * @model unsettable="true"
+ * @generated
+ */
+ Object getSubAdvice();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Advice</em>' attribute.
+ * @see #isSetSubAdvice()
+ * @see #unsetSubAdvice()
+ * @see #getSubAdvice()
+ * @generated
+ */
+ void setSubAdvice(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubAdvice()
+ * @see #getSubAdvice()
+ * @see #setSubAdvice(Object)
+ * @generated
+ */
+ void unsetSubAdvice();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Advice</em>' attribute is set.
+ * @see #unsetSubAdvice()
+ * @see #getSubAdvice()
+ * @see #setSubAdvice(Object)
+ * @generated
+ */
+ boolean isSetSubAdvice();
+
+ /**
+ * Returns the value of the '<em><b>Free Text</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.common.LocalizedString}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Free Text</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Free Text</em>' containment reference list.
+ * @see #isSetFreeText()
+ * @see #unsetFreeText()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getAdvice_FreeText()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<LocalizedString> getFreeText();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getFreeText <em>Free Text</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFreeText()
+ * @see #getFreeText()
+ * @generated
+ */
+ void unsetFreeText();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getFreeText <em>Free Text</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Free Text</em>' containment reference list is set.
+ * @see #unsetFreeText()
+ * @see #getFreeText()
+ * @generated
+ */
+ boolean isSetFreeText();
+
+ /**
+ * Returns the value of the '<em><b>Applicability</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability</em>' containment reference list.
+ * @see #isSetApplicability()
+ * @see #unsetApplicability()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getAdvice_Applicability()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Applicability> getApplicability();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getApplicability <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ void unsetApplicability();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getApplicability <em>Applicability</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Applicability</em>' containment reference list is set.
+ * @see #unsetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ boolean isSetApplicability();
+
+} // Advice
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Applicability.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Applicability.java
new file mode 100755
index 0000000..ecdc99a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Applicability.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Applicability</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getApplicability()
+ * @model
+ * @generated
+ */
+public interface Applicability extends EObject {
+ /**
+ * Returns the value of the '<em><b>Vehicle Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @see #isSetVehicleType()
+ * @see #unsetVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getApplicability_VehicleType()
+ * @model unsettable="true"
+ * @generated
+ */
+ VehicleType getVehicleType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vehicle Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @see #isSetVehicleType()
+ * @see #unsetVehicleType()
+ * @see #getVehicleType()
+ * @generated
+ */
+ void setVehicleType(VehicleType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVehicleType()
+ * @see #getVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @generated
+ */
+ void unsetVehicleType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Vehicle Type</em>' attribute is set.
+ * @see #unsetVehicleType()
+ * @see #getVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @generated
+ */
+ boolean isSetVehicleType();
+
+ /**
+ * Returns the value of the '<em><b>Vehicle Related Restrictions</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Related Restrictions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Related Restrictions</em>' containment reference list.
+ * @see #isSetVehicleRelatedRestrictions()
+ * @see #unsetVehicleRelatedRestrictions()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getApplicability_VehicleRelatedRestrictions()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<VehicleRelatedRestriction> getVehicleRelatedRestrictions();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVehicleRelatedRestrictions()
+ * @see #getVehicleRelatedRestrictions()
+ * @generated
+ */
+ void unsetVehicleRelatedRestrictions();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Vehicle Related Restrictions</em>' containment reference list is set.
+ * @see #unsetVehicleRelatedRestrictions()
+ * @see #getVehicleRelatedRestrictions()
+ * @generated
+ */
+ boolean isSetVehicleRelatedRestrictions();
+
+} // Applicability
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Cause.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Cause.java
new file mode 100755
index 0000000..82482e6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/Cause.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause#getMainCause <em>Main Cause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getCause()
+ * @model
+ * @generated
+ */
+public interface Cause extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Cause</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Cause</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Cause</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @see #isSetMainCause()
+ * @see #unsetMainCause()
+ * @see #setMainCause(CauseCode)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getCause_MainCause()
+ * @model unsettable="true"
+ * @generated
+ */
+ CauseCode getMainCause();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause#getMainCause <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Cause</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @see #isSetMainCause()
+ * @see #unsetMainCause()
+ * @see #getMainCause()
+ * @generated
+ */
+ void setMainCause(CauseCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause#getMainCause <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMainCause()
+ * @see #getMainCause()
+ * @see #setMainCause(CauseCode)
+ * @generated
+ */
+ void unsetMainCause();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause#getMainCause <em>Main Cause</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Main Cause</em>' attribute is set.
+ * @see #unsetMainCause()
+ * @see #getMainCause()
+ * @see #setMainCause(CauseCode)
+ * @generated
+ */
+ boolean isSetMainCause();
+
+} // Cause
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/DirectCause.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/DirectCause.java
new file mode 100755
index 0000000..7cd8f94
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/DirectCause.java
@@ -0,0 +1,398 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.genivi.common.LocalizedString;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Direct Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause()
+ * @model
+ * @generated
+ */
+public interface DirectCause extends Cause {
+ /**
+ * Returns the value of the '<em><b>Warning Level</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Warning Level</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Warning Level</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @see #isSetWarningLevel()
+ * @see #unsetWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_WarningLevel()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ WarningLevel getWarningLevel();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Warning Level</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @see #isSetWarningLevel()
+ * @see #unsetWarningLevel()
+ * @see #getWarningLevel()
+ * @generated
+ */
+ void setWarningLevel(WarningLevel value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetWarningLevel()
+ * @see #getWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @generated
+ */
+ void unsetWarningLevel();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Warning Level</em>' attribute is set.
+ * @see #unsetWarningLevel()
+ * @see #getWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @generated
+ */
+ boolean isSetWarningLevel();
+
+ /**
+ * Returns the value of the '<em><b>Unverified Information</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unverified Information</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unverified Information</em>' attribute.
+ * @see #isSetUnverifiedInformation()
+ * @see #unsetUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_UnverifiedInformation()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ boolean isUnverifiedInformation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unverified Information</em>' attribute.
+ * @see #isSetUnverifiedInformation()
+ * @see #unsetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @generated
+ */
+ void setUnverifiedInformation(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @generated
+ */
+ void unsetUnverifiedInformation();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Unverified Information</em>' attribute is set.
+ * @see #unsetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @generated
+ */
+ boolean isSetUnverifiedInformation();
+
+ /**
+ * Returns the value of the '<em><b>Sub Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Sub Cause</em>' attribute.
+ * @see #isSetSubCause()
+ * @see #unsetSubCause()
+ * @see #setSubCause(Object)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_SubCause()
+ * @model unsettable="true"
+ * @generated
+ */
+ Object getSubCause();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Cause</em>' attribute.
+ * @see #isSetSubCause()
+ * @see #unsetSubCause()
+ * @see #getSubCause()
+ * @generated
+ */
+ void setSubCause(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubCause()
+ * @see #getSubCause()
+ * @see #setSubCause(Object)
+ * @generated
+ */
+ void unsetSubCause();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Cause</em>' attribute is set.
+ * @see #unsetSubCause()
+ * @see #getSubCause()
+ * @see #setSubCause(Object)
+ * @generated
+ */
+ boolean isSetSubCause();
+
+ /**
+ * Returns the value of the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length Affected</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_LengthAffected()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getLengthAffected();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @generated
+ */
+ void setLengthAffected(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ void unsetLengthAffected();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length Affected</em>' attribute is set.
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ boolean isSetLengthAffected();
+
+ /**
+ * Returns the value of the '<em><b>Lane Restrictions</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lane Restrictions</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lane Restrictions</em>' containment reference.
+ * @see #isSetLaneRestrictions()
+ * @see #unsetLaneRestrictions()
+ * @see #setLaneRestrictions(LaneRestrictions)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_LaneRestrictions()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ LaneRestrictions getLaneRestrictions();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lane Restrictions</em>' containment reference.
+ * @see #isSetLaneRestrictions()
+ * @see #unsetLaneRestrictions()
+ * @see #getLaneRestrictions()
+ * @generated
+ */
+ void setLaneRestrictions(LaneRestrictions value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLaneRestrictions()
+ * @see #getLaneRestrictions()
+ * @see #setLaneRestrictions(LaneRestrictions)
+ * @generated
+ */
+ void unsetLaneRestrictions();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Lane Restrictions</em>' containment reference is set.
+ * @see #unsetLaneRestrictions()
+ * @see #getLaneRestrictions()
+ * @see #setLaneRestrictions(LaneRestrictions)
+ * @generated
+ */
+ boolean isSetLaneRestrictions();
+
+ /**
+ * Returns the value of the '<em><b>Free Text</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.common.LocalizedString}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Free Text</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Free Text</em>' containment reference list.
+ * @see #isSetFreeText()
+ * @see #unsetFreeText()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_FreeText()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<LocalizedString> getFreeText();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getFreeText <em>Free Text</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFreeText()
+ * @see #getFreeText()
+ * @generated
+ */
+ void unsetFreeText();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getFreeText <em>Free Text</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Free Text</em>' containment reference list is set.
+ * @see #unsetFreeText()
+ * @see #getFreeText()
+ * @generated
+ */
+ boolean isSetFreeText();
+
+ /**
+ * Returns the value of the '<em><b>Cause Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cause Offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cause Offset</em>' attribute.
+ * @see #isSetCauseOffset()
+ * @see #unsetCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getDirectCause_CauseOffset()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getCauseOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cause Offset</em>' attribute.
+ * @see #isSetCauseOffset()
+ * @see #unsetCauseOffset()
+ * @see #getCauseOffset()
+ * @generated
+ */
+ void setCauseOffset(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauseOffset()
+ * @see #getCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @generated
+ */
+ void unsetCauseOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Cause Offset</em>' attribute is set.
+ * @see #unsetCauseOffset()
+ * @see #getCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @generated
+ */
+ boolean isSetCauseOffset();
+
+} // DirectCause
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LaneRestrictions.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LaneRestrictions.java
new file mode 100755
index 0000000..856d61b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LaneRestrictions.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lane Restrictions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getLaneRestrictions()
+ * @model
+ * @generated
+ */
+public interface LaneRestrictions extends EObject {
+ /**
+ * Returns the value of the '<em><b>Lane Restriction Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lane Restriction Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lane Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @see #isSetLaneRestrictionType()
+ * @see #unsetLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getLaneRestrictions_LaneRestrictionType()
+ * @model unsettable="true"
+ * @generated
+ */
+ LaneRestrictionType getLaneRestrictionType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lane Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @see #isSetLaneRestrictionType()
+ * @see #unsetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @generated
+ */
+ void setLaneRestrictionType(LaneRestrictionType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @generated
+ */
+ void unsetLaneRestrictionType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Lane Restriction Type</em>' attribute is set.
+ * @see #unsetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @generated
+ */
+ boolean isSetLaneRestrictionType();
+
+ /**
+ * Returns the value of the '<em><b>Number Of Lanes</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Lanes</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Lanes</em>' attribute.
+ * @see #isSetNumberOfLanes()
+ * @see #unsetNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getLaneRestrictions_NumberOfLanes()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getNumberOfLanes();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Lanes</em>' attribute.
+ * @see #isSetNumberOfLanes()
+ * @see #unsetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @generated
+ */
+ void setNumberOfLanes(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @generated
+ */
+ void unsetNumberOfLanes();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Number Of Lanes</em>' attribute is set.
+ * @see #unsetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @generated
+ */
+ boolean isSetNumberOfLanes();
+
+} // LaneRestrictions
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LinkedCause.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LinkedCause.java
new file mode 100755
index 0000000..1c60e45
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/LinkedCause.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linked Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getLinkedCause()
+ * @model
+ * @generated
+ */
+public interface LinkedCause extends Cause {
+ /**
+ * Returns the value of the '<em><b>Cause Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There can be a LinkedCause for which the linked TrafficIncident isn't available (to the application) yet. Therefore this atttibute is optional.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Cause Traffic Incident Id</em>' attribute.
+ * @see #isSetCauseTrafficIncidentId()
+ * @see #unsetCauseTrafficIncidentId()
+ * @see #setCauseTrafficIncidentId(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getLinkedCause_CauseTrafficIncidentId()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getCauseTrafficIncidentId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cause Traffic Incident Id</em>' attribute.
+ * @see #isSetCauseTrafficIncidentId()
+ * @see #unsetCauseTrafficIncidentId()
+ * @see #getCauseTrafficIncidentId()
+ * @generated
+ */
+ void setCauseTrafficIncidentId(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauseTrafficIncidentId()
+ * @see #getCauseTrafficIncidentId()
+ * @see #setCauseTrafficIncidentId(String)
+ * @generated
+ */
+ void unsetCauseTrafficIncidentId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Cause Traffic Incident Id</em>' attribute is set.
+ * @see #unsetCauseTrafficIncidentId()
+ * @see #getCauseTrafficIncidentId()
+ * @see #setCauseTrafficIncidentId(String)
+ * @generated
+ */
+ boolean isSetCauseTrafficIncidentId();
+
+} // LinkedCause
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimit.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimit.java
new file mode 100755
index 0000000..d8714e7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimit.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Speed Limit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getTemporarySpeedLimitSections <em>Temporary Speed Limit Sections</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getApplicability <em>Applicability</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimit()
+ * @model
+ * @generated
+ */
+public interface TemporarySpeedLimit extends EObject {
+ /**
+ * Returns the value of the '<em><b>Temporary Speed Limit Sections</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Speed Limit Sections</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Speed Limit Sections</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimit_TemporarySpeedLimitSections()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<TemporarySpeedLimitSection> getTemporarySpeedLimitSections();
+
+ /**
+ * Returns the value of the '<em><b>Units MPH</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Units MPH</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Units MPH</em>' attribute.
+ * @see #setUnitsMPH(boolean)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimit_UnitsMPH()
+ * @model required="true"
+ * @generated
+ */
+ boolean isUnitsMPH();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Units MPH</em>' attribute.
+ * @see #isUnitsMPH()
+ * @generated
+ */
+ void setUnitsMPH(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Offset</em>' attribute.
+ * @see #isSetOffset()
+ * @see #unsetOffset()
+ * @see #setOffset(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimit_Offset()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Offset</em>' attribute.
+ * @see #isSetOffset()
+ * @see #unsetOffset()
+ * @see #getOffset()
+ * @generated
+ */
+ void setOffset(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOffset()
+ * @see #getOffset()
+ * @see #setOffset(Integer)
+ * @generated
+ */
+ void unsetOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Offset</em>' attribute is set.
+ * @see #unsetOffset()
+ * @see #getOffset()
+ * @see #setOffset(Integer)
+ * @generated
+ */
+ boolean isSetOffset();
+
+ /**
+ * Returns the value of the '<em><b>Applicability</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimit_Applicability()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Applicability> getApplicability();
+
+} // TemporarySpeedLimit
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimitSection.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimitSection.java
new file mode 100755
index 0000000..c106369
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TemporarySpeedLimitSection.java
@@ -0,0 +1,190 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Speed Limit Section</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimitSection()
+ * @model
+ * @generated
+ */
+public interface TemporarySpeedLimitSection extends EObject {
+ /**
+ * Returns the value of the '<em><b>Speed Limit Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Value</em>' attribute.
+ * @see #isSetSpeedLimitValue()
+ * @see #unsetSpeedLimitValue()
+ * @see #setSpeedLimitValue(short)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimitSection_SpeedLimitValue()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ short getSpeedLimitValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Value</em>' attribute.
+ * @see #isSetSpeedLimitValue()
+ * @see #unsetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @generated
+ */
+ void setSpeedLimitValue(short value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @see #setSpeedLimitValue(short)
+ * @generated
+ */
+ void unsetSpeedLimitValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Value</em>' attribute is set.
+ * @see #unsetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @see #setSpeedLimitValue(short)
+ * @generated
+ */
+ boolean isSetSpeedLimitValue();
+
+ /**
+ * Returns the value of the '<em><b>Speed Limit Value Wet</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Value Wet</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Value Wet</em>' attribute.
+ * @see #isSetSpeedLimitValueWet()
+ * @see #unsetSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(short)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimitSection_SpeedLimitValueWet()
+ * @model unsettable="true"
+ * @generated
+ */
+ short getSpeedLimitValueWet();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Value Wet</em>' attribute.
+ * @see #isSetSpeedLimitValueWet()
+ * @see #unsetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ */
+ void setSpeedLimitValueWet(short value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(short)
+ * @generated
+ */
+ void unsetSpeedLimitValueWet();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Value Wet</em>' attribute is set.
+ * @see #unsetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(short)
+ * @generated
+ */
+ boolean isSetSpeedLimitValueWet();
+
+ /**
+ * Returns the value of the '<em><b>Speed Limit Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Length</em>' attribute.
+ * @see #isSetSpeedLimitLength()
+ * @see #unsetSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTemporarySpeedLimitSection_SpeedLimitLength()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getSpeedLimitLength();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Length</em>' attribute.
+ * @see #isSetSpeedLimitLength()
+ * @see #unsetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @generated
+ */
+ void setSpeedLimitLength(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @generated
+ */
+ void unsetSpeedLimitLength();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Length</em>' attribute is set.
+ * @see #unsetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @generated
+ */
+ boolean isSetSpeedLimitLength();
+
+} // TemporarySpeedLimitSection
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TrafficIncident.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TrafficIncident.java
new file mode 100755
index 0000000..21085f3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/TrafficIncident.java
@@ -0,0 +1,886 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import java.util.Date;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.locref.LocationReference;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Traffic Incident</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * See http://vos.intra.local/display/GENIVI/GENIVI+Traffic+Information+-+Traffic+Incident+Definition for definitions of the meanings of the attributes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getDelay <em>Delay</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getCauses <em>Causes</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpirationTime <em>Expiration Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getUpdateTime <em>Update Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLocationReference <em>Location Reference</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident()
+ * @model
+ * @generated
+ */
+public interface TrafficIncident extends EObject {
+ /**
+ * Returns the value of the '<em><b>Effect Code</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Effect Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Effect Code</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @see #isSetEffectCode()
+ * @see #unsetEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_EffectCode()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ EffectCode getEffectCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Effect Code</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @see #isSetEffectCode()
+ * @see #unsetEffectCode()
+ * @see #getEffectCode()
+ * @generated
+ */
+ void setEffectCode(EffectCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetEffectCode()
+ * @see #getEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @generated
+ */
+ void unsetEffectCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Effect Code</em>' attribute is set.
+ * @see #unsetEffectCode()
+ * @see #getEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @generated
+ */
+ boolean isSetEffectCode();
+
+ /**
+ * Returns the value of the '<em><b>Start Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Start Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Start Time</em>' attribute.
+ * @see #isSetStartTime()
+ * @see #unsetStartTime()
+ * @see #setStartTime(Date)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_StartTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getStartTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Start Time</em>' attribute.
+ * @see #isSetStartTime()
+ * @see #unsetStartTime()
+ * @see #getStartTime()
+ * @generated
+ */
+ void setStartTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStartTime()
+ * @see #getStartTime()
+ * @see #setStartTime(Date)
+ * @generated
+ */
+ void unsetStartTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Start Time</em>' attribute is set.
+ * @see #unsetStartTime()
+ * @see #getStartTime()
+ * @see #setStartTime(Date)
+ * @generated
+ */
+ boolean isSetStartTime();
+
+ /**
+ * Returns the value of the '<em><b>Stop Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stop Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stop Time</em>' attribute.
+ * @see #isSetStopTime()
+ * @see #unsetStopTime()
+ * @see #setStopTime(Date)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_StopTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getStopTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stop Time</em>' attribute.
+ * @see #isSetStopTime()
+ * @see #unsetStopTime()
+ * @see #getStopTime()
+ * @generated
+ */
+ void setStopTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStopTime()
+ * @see #getStopTime()
+ * @see #setStopTime(Date)
+ * @generated
+ */
+ void unsetStopTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Stop Time</em>' attribute is set.
+ * @see #unsetStopTime()
+ * @see #getStopTime()
+ * @see #setStopTime(Date)
+ * @generated
+ */
+ boolean isSetStopTime();
+
+ /**
+ * Returns the value of the '<em><b>Tendency</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.Tendency}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tendency</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tendency</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @see #isSetTendency()
+ * @see #unsetTendency()
+ * @see #setTendency(Tendency)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_Tendency()
+ * @model unsettable="true"
+ * @generated
+ */
+ Tendency getTendency();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tendency</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @see #isSetTendency()
+ * @see #unsetTendency()
+ * @see #getTendency()
+ * @generated
+ */
+ void setTendency(Tendency value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTendency()
+ * @see #getTendency()
+ * @see #setTendency(Tendency)
+ * @generated
+ */
+ void unsetTendency();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Tendency</em>' attribute is set.
+ * @see #unsetTendency()
+ * @see #getTendency()
+ * @see #setTendency(Tendency)
+ * @generated
+ */
+ boolean isSetTendency();
+
+ /**
+ * Returns the value of the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length Affected</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_LengthAffected()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getLengthAffected();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @generated
+ */
+ void setLengthAffected(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ void unsetLengthAffected();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length Affected</em>' attribute is set.
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ boolean isSetLengthAffected();
+
+ /**
+ * Returns the value of the '<em><b>Average Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Average Speed Absolute</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Average Speed Absolute</em>' attribute.
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_AverageSpeedAbsolute()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getAverageSpeedAbsolute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Average Speed Absolute</em>' attribute.
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ */
+ void setAverageSpeedAbsolute(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @generated
+ */
+ void unsetAverageSpeedAbsolute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Average Speed Absolute</em>' attribute is set.
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @generated
+ */
+ boolean isSetAverageSpeedAbsolute();
+
+ /**
+ * Returns the value of the '<em><b>Delay</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Delay</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Delay</em>' attribute.
+ * @see #isSetDelay()
+ * @see #unsetDelay()
+ * @see #setDelay(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_Delay()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getDelay();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getDelay <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Delay</em>' attribute.
+ * @see #isSetDelay()
+ * @see #unsetDelay()
+ * @see #getDelay()
+ * @generated
+ */
+ void setDelay(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getDelay <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDelay()
+ * @see #getDelay()
+ * @see #setDelay(Integer)
+ * @generated
+ */
+ void unsetDelay();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getDelay <em>Delay</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Delay</em>' attribute is set.
+ * @see #unsetDelay()
+ * @see #getDelay()
+ * @see #setDelay(Integer)
+ * @generated
+ */
+ boolean isSetDelay();
+
+ /**
+ * Returns the value of the '<em><b>Segment Speed Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Segment Speed Limit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Segment Speed Limit</em>' attribute.
+ * @see #isSetSegmentSpeedLimit()
+ * @see #unsetSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_SegmentSpeedLimit()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getSegmentSpeedLimit();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Segment Speed Limit</em>' attribute.
+ * @see #isSetSegmentSpeedLimit()
+ * @see #unsetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ */
+ void setSegmentSpeedLimit(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @generated
+ */
+ void unsetSegmentSpeedLimit();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Segment Speed Limit</em>' attribute is set.
+ * @see #unsetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @generated
+ */
+ boolean isSetSegmentSpeedLimit();
+
+ /**
+ * Returns the value of the '<em><b>Causes</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Causes</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Causes</em>' containment reference list.
+ * @see #isSetCauses()
+ * @see #unsetCauses()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_Causes()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Cause> getCauses();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getCauses <em>Causes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauses()
+ * @see #getCauses()
+ * @generated
+ */
+ void unsetCauses();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getCauses <em>Causes</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Causes</em>' containment reference list is set.
+ * @see #unsetCauses()
+ * @see #getCauses()
+ * @generated
+ */
+ boolean isSetCauses();
+
+ /**
+ * Returns the value of the '<em><b>Advices</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advices</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Advices</em>' containment reference list.
+ * @see #isSetAdvices()
+ * @see #unsetAdvices()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_Advices()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Advice> getAdvices();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAdvices()
+ * @see #getAdvices()
+ * @generated
+ */
+ void unsetAdvices();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Advices</em>' containment reference list is set.
+ * @see #unsetAdvices()
+ * @see #getAdvices()
+ * @generated
+ */
+ boolean isSetAdvices();
+
+ /**
+ * Returns the value of the '<em><b>Applicability</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability</em>' containment reference list.
+ * @see #isSetApplicability()
+ * @see #unsetApplicability()
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_Applicability()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Applicability> getApplicability();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ void unsetApplicability();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Applicability</em>' containment reference list is set.
+ * @see #unsetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ boolean isSetApplicability();
+
+ /**
+ * Returns the value of the '<em><b>Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Traffic Incident Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Traffic Incident Id</em>' attribute.
+ * @see #isSetTrafficIncidentId()
+ * @see #unsetTrafficIncidentId()
+ * @see #setTrafficIncidentId(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_TrafficIncidentId()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getTrafficIncidentId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Traffic Incident Id</em>' attribute.
+ * @see #isSetTrafficIncidentId()
+ * @see #unsetTrafficIncidentId()
+ * @see #getTrafficIncidentId()
+ * @generated
+ */
+ void setTrafficIncidentId(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTrafficIncidentId()
+ * @see #getTrafficIncidentId()
+ * @see #setTrafficIncidentId(String)
+ * @generated
+ */
+ void unsetTrafficIncidentId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Traffic Incident Id</em>' attribute is set.
+ * @see #unsetTrafficIncidentId()
+ * @see #getTrafficIncidentId()
+ * @see #setTrafficIncidentId(String)
+ * @generated
+ */
+ boolean isSetTrafficIncidentId();
+
+ /**
+ * Returns the value of the '<em><b>Expected Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expected Speed Absolute</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expected Speed Absolute</em>' attribute.
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_ExpectedSpeedAbsolute()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getExpectedSpeedAbsolute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expected Speed Absolute</em>' attribute.
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ */
+ void setExpectedSpeedAbsolute(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @generated
+ */
+ void unsetExpectedSpeedAbsolute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expected Speed Absolute</em>' attribute is set.
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @generated
+ */
+ boolean isSetExpectedSpeedAbsolute();
+
+ /**
+ * Returns the value of the '<em><b>Expiration Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expiration Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expiration Time</em>' attribute.
+ * @see #isSetExpirationTime()
+ * @see #unsetExpirationTime()
+ * @see #setExpirationTime(Date)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_ExpirationTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getExpirationTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpirationTime <em>Expiration Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expiration Time</em>' attribute.
+ * @see #isSetExpirationTime()
+ * @see #unsetExpirationTime()
+ * @see #getExpirationTime()
+ * @generated
+ */
+ void setExpirationTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpirationTime <em>Expiration Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpirationTime()
+ * @see #getExpirationTime()
+ * @see #setExpirationTime(Date)
+ * @generated
+ */
+ void unsetExpirationTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpirationTime <em>Expiration Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expiration Time</em>' attribute is set.
+ * @see #unsetExpirationTime()
+ * @see #getExpirationTime()
+ * @see #setExpirationTime(Date)
+ * @generated
+ */
+ boolean isSetExpirationTime();
+
+ /**
+ * Returns the value of the '<em><b>Update Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Update Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Update Time</em>' attribute.
+ * @see #isSetUpdateTime()
+ * @see #unsetUpdateTime()
+ * @see #setUpdateTime(Date)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_UpdateTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getUpdateTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getUpdateTime <em>Update Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Update Time</em>' attribute.
+ * @see #isSetUpdateTime()
+ * @see #unsetUpdateTime()
+ * @see #getUpdateTime()
+ * @generated
+ */
+ void setUpdateTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getUpdateTime <em>Update Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUpdateTime()
+ * @see #getUpdateTime()
+ * @see #setUpdateTime(Date)
+ * @generated
+ */
+ void unsetUpdateTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getUpdateTime <em>Update Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Update Time</em>' attribute is set.
+ * @see #unsetUpdateTime()
+ * @see #getUpdateTime()
+ * @see #setUpdateTime(Date)
+ * @generated
+ */
+ boolean isSetUpdateTime();
+
+ /**
+ * Returns the value of the '<em><b>Location Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location Reference</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location Reference</em>' containment reference.
+ * @see #isSetLocationReference()
+ * @see #unsetLocationReference()
+ * @see #setLocationReference(LocationReference)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_LocationReference()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ LocationReference getLocationReference();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLocationReference <em>Location Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location Reference</em>' containment reference.
+ * @see #isSetLocationReference()
+ * @see #unsetLocationReference()
+ * @see #getLocationReference()
+ * @generated
+ */
+ void setLocationReference(LocationReference value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLocationReference <em>Location Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLocationReference()
+ * @see #getLocationReference()
+ * @see #setLocationReference(LocationReference)
+ * @generated
+ */
+ void unsetLocationReference();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLocationReference <em>Location Reference</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Location Reference</em>' containment reference is set.
+ * @see #unsetLocationReference()
+ * @see #getLocationReference()
+ * @see #setLocationReference(LocationReference)
+ * @generated
+ */
+ boolean isSetLocationReference();
+
+ /**
+ * Returns the value of the '<em><b>Temporary Speed Limit</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Speed Limit</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Speed Limit</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getTrafficIncident_TemporarySpeedLimit()
+ * @model containment="true"
+ * @generated
+ */
+ EList<TemporarySpeedLimit> getTemporarySpeedLimit();
+
+} // TrafficIncident
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/VehicleRelatedRestriction.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/VehicleRelatedRestriction.java
new file mode 100755
index 0000000..a0a5930
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/VehicleRelatedRestriction.java
@@ -0,0 +1,197 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.locref.LocationReference;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vehicle Related Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionLocationReference <em>Restriction Location Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getVehicleRelatedRestriction()
+ * @model
+ * @generated
+ */
+public interface VehicleRelatedRestriction extends EObject {
+ /**
+ * Returns the value of the '<em><b>Restriction Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @see #isSetRestrictionType()
+ * @see #unsetRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getVehicleRelatedRestriction_RestrictionType()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ RestrictionType getRestrictionType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @see #isSetRestrictionType()
+ * @see #unsetRestrictionType()
+ * @see #getRestrictionType()
+ * @generated
+ */
+ void setRestrictionType(RestrictionType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionType()
+ * @see #getRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @generated
+ */
+ void unsetRestrictionType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Type</em>' attribute is set.
+ * @see #unsetRestrictionType()
+ * @see #getRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @generated
+ */
+ boolean isSetRestrictionType();
+
+ /**
+ * Returns the value of the '<em><b>Restriction Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Value</em>' attribute.
+ * @see #isSetRestrictionValue()
+ * @see #unsetRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getVehicleRelatedRestriction_RestrictionValue()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getRestrictionValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Value</em>' attribute.
+ * @see #isSetRestrictionValue()
+ * @see #unsetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @generated
+ */
+ void setRestrictionValue(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @generated
+ */
+ void unsetRestrictionValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Value</em>' attribute is set.
+ * @see #unsetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @generated
+ */
+ boolean isSetRestrictionValue();
+
+ /**
+ * Returns the value of the '<em><b>Restriction Location Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Location Reference</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Location Reference</em>' containment reference.
+ * @see #isSetRestrictionLocationReference()
+ * @see #unsetRestrictionLocationReference()
+ * @see #setRestrictionLocationReference(LocationReference)
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#getVehicleRelatedRestriction_RestrictionLocationReference()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ LocationReference getRestrictionLocationReference();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionLocationReference <em>Restriction Location Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Location Reference</em>' containment reference.
+ * @see #isSetRestrictionLocationReference()
+ * @see #unsetRestrictionLocationReference()
+ * @see #getRestrictionLocationReference()
+ * @generated
+ */
+ void setRestrictionLocationReference(LocationReference value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionLocationReference <em>Restriction Location Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionLocationReference()
+ * @see #getRestrictionLocationReference()
+ * @see #setRestrictionLocationReference(LocationReference)
+ * @generated
+ */
+ void unsetRestrictionLocationReference();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionLocationReference <em>Restriction Location Reference</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Location Reference</em>' containment reference is set.
+ * @see #unsetRestrictionLocationReference()
+ * @see #getRestrictionLocationReference()
+ * @see #setRestrictionLocationReference(LocationReference)
+ * @generated
+ */
+ boolean isSetRestrictionLocationReference();
+
+} // VehicleRelatedRestriction
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentFactory.java
new file mode 100755
index 0000000..368d8f4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentFactory.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage
+ * @generated
+ */
+public interface XTrafficIncidentFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ XTrafficIncidentFactory eINSTANCE = org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Traffic Incident</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Traffic Incident</em>'.
+ * @generated
+ */
+ TrafficIncident createTrafficIncident();
+
+ /**
+ * Returns a new object of class '<em>Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cause</em>'.
+ * @generated
+ */
+ Cause createCause();
+
+ /**
+ * Returns a new object of class '<em>Linked Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Linked Cause</em>'.
+ * @generated
+ */
+ LinkedCause createLinkedCause();
+
+ /**
+ * Returns a new object of class '<em>Direct Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Direct Cause</em>'.
+ * @generated
+ */
+ DirectCause createDirectCause();
+
+ /**
+ * Returns a new object of class '<em>Lane Restrictions</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Lane Restrictions</em>'.
+ * @generated
+ */
+ LaneRestrictions createLaneRestrictions();
+
+ /**
+ * Returns a new object of class '<em>Advice</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Advice</em>'.
+ * @generated
+ */
+ Advice createAdvice();
+
+ /**
+ * Returns a new object of class '<em>Applicability</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Applicability</em>'.
+ * @generated
+ */
+ Applicability createApplicability();
+
+ /**
+ * Returns a new object of class '<em>Vehicle Related Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Vehicle Related Restriction</em>'.
+ * @generated
+ */
+ VehicleRelatedRestriction createVehicleRelatedRestriction();
+
+ /**
+ * Returns a new object of class '<em>Temporary Speed Limit Section</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Speed Limit Section</em>'.
+ * @generated
+ */
+ TemporarySpeedLimitSection createTemporarySpeedLimitSection();
+
+ /**
+ * Returns a new object of class '<em>Temporary Speed Limit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Speed Limit</em>'.
+ * @generated
+ */
+ TemporarySpeedLimit createTemporarySpeedLimit();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ XTrafficIncidentPackage getXTrafficIncidentPackage();
+
+} //XTrafficIncidentFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentPackage.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentPackage.java
new file mode 100755
index 0000000..41c774c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/XTrafficIncidentPackage.java
@@ -0,0 +1,1730 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface XTrafficIncidentPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "trafficincident";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.xtrafficinfo";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "TrafficIncident";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ XTrafficIncidentPackage eINSTANCE = org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl <em>Traffic Incident</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getTrafficIncident()
+ * @generated
+ */
+ int TRAFFIC_INCIDENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Effect Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__EFFECT_CODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Start Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__START_TIME = 1;
+
+ /**
+ * The feature id for the '<em><b>Stop Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__STOP_TIME = 2;
+
+ /**
+ * The feature id for the '<em><b>Tendency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TENDENCY = 3;
+
+ /**
+ * The feature id for the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__LENGTH_AFFECTED = 4;
+
+ /**
+ * The feature id for the '<em><b>Average Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE = 5;
+
+ /**
+ * The feature id for the '<em><b>Delay</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__DELAY = 6;
+
+ /**
+ * The feature id for the '<em><b>Segment Speed Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT = 7;
+
+ /**
+ * The feature id for the '<em><b>Causes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__CAUSES = 8;
+
+ /**
+ * The feature id for the '<em><b>Advices</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__ADVICES = 9;
+
+ /**
+ * The feature id for the '<em><b>Applicability</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__APPLICABILITY = 10;
+
+ /**
+ * The feature id for the '<em><b>Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID = 11;
+
+ /**
+ * The feature id for the '<em><b>Expected Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE = 12;
+
+ /**
+ * The feature id for the '<em><b>Expiration Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__EXPIRATION_TIME = 13;
+
+ /**
+ * The feature id for the '<em><b>Update Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__UPDATE_TIME = 14;
+
+ /**
+ * The feature id for the '<em><b>Location Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__LOCATION_REFERENCE = 15;
+
+ /**
+ * The feature id for the '<em><b>Temporary Speed Limit</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT = 16;
+
+ /**
+ * The number of structural features of the '<em>Traffic Incident</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT_FEATURE_COUNT = 17;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.CauseImpl <em>Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.CauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getCause()
+ * @generated
+ */
+ int CAUSE = 1;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAUSE__MAIN_CAUSE = 0;
+
+ /**
+ * The number of structural features of the '<em>Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LinkedCauseImpl <em>Linked Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LinkedCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getLinkedCause()
+ * @generated
+ */
+ int LINKED_CAUSE = 2;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__MAIN_CAUSE = CAUSE__MAIN_CAUSE;
+
+ /**
+ * The feature id for the '<em><b>Cause Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID = CAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Linked Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE_FEATURE_COUNT = CAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl <em>Direct Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getDirectCause()
+ * @generated
+ */
+ int DIRECT_CAUSE = 3;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__MAIN_CAUSE = CAUSE__MAIN_CAUSE;
+
+ /**
+ * The feature id for the '<em><b>Warning Level</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__WARNING_LEVEL = CAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Unverified Information</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__UNVERIFIED_INFORMATION = CAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Sub Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__SUB_CAUSE = CAUSE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__LENGTH_AFFECTED = CAUSE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Lane Restrictions</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__LANE_RESTRICTIONS = CAUSE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Free Text</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__FREE_TEXT = CAUSE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Cause Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__CAUSE_OFFSET = CAUSE_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Direct Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE_FEATURE_COUNT = CAUSE_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LaneRestrictionsImpl <em>Lane Restrictions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LaneRestrictionsImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getLaneRestrictions()
+ * @generated
+ */
+ int LANE_RESTRICTIONS = 4;
+
+ /**
+ * The feature id for the '<em><b>Lane Restriction Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Number Of Lanes</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LANE_RESTRICTIONS__NUMBER_OF_LANES = 1;
+
+ /**
+ * The number of structural features of the '<em>Lane Restrictions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LANE_RESTRICTIONS_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl <em>Advice</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getAdvice()
+ * @generated
+ */
+ int ADVICE = 5;
+
+ /**
+ * The feature id for the '<em><b>Main Advice</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__MAIN_ADVICE = 0;
+
+ /**
+ * The feature id for the '<em><b>Sub Advice</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__SUB_ADVICE = 1;
+
+ /**
+ * The feature id for the '<em><b>Free Text</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__FREE_TEXT = 2;
+
+ /**
+ * The feature id for the '<em><b>Applicability</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__APPLICABILITY = 3;
+
+ /**
+ * The number of structural features of the '<em>Advice</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.ApplicabilityImpl <em>Applicability</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.ApplicabilityImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getApplicability()
+ * @generated
+ */
+ int APPLICABILITY = 6;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int APPLICABILITY__VEHICLE_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Related Restrictions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Applicability</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int APPLICABILITY_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl <em>Vehicle Related Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getVehicleRelatedRestriction()
+ * @generated
+ */
+ int VEHICLE_RELATED_RESTRICTION = 7;
+
+ /**
+ * The feature id for the '<em><b>Restriction Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Restriction Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE = 1;
+
+ /**
+ * The feature id for the '<em><b>Restriction Location Reference</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE = 2;
+
+ /**
+ * The number of structural features of the '<em>Vehicle Related Restriction</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION_FEATURE_COUNT = 3;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl <em>Temporary Speed Limit Section</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getTemporarySpeedLimitSection()
+ * @generated
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION = 8;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Value Wet</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET = 1;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH = 2;
+
+ /**
+ * The number of structural features of the '<em>Temporary Speed Limit Section</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl <em>Temporary Speed Limit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getTemporarySpeedLimit()
+ * @generated
+ */
+ int TEMPORARY_SPEED_LIMIT = 9;
+
+ /**
+ * The feature id for the '<em><b>Temporary Speed Limit Sections</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Units MPH</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__UNITS_MPH = 1;
+
+ /**
+ * The feature id for the '<em><b>Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__OFFSET = 2;
+
+ /**
+ * The feature id for the '<em><b>Applicability</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__APPLICABILITY = 3;
+
+ /**
+ * The number of structural features of the '<em>Temporary Speed Limit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_FEATURE_COUNT = 4;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident <em>Traffic Incident</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Traffic Incident</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident
+ * @generated
+ */
+ EClass getTrafficIncident();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Effect Code</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getEffectCode()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_EffectCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Start Time</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStartTime()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_StartTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Stop Time</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getStopTime()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_StopTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tendency</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTendency()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_Tendency();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Length Affected</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLengthAffected()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_LengthAffected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Average Speed Absolute</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAverageSpeedAbsolute()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_AverageSpeedAbsolute();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getDelay <em>Delay</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Delay</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getDelay()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_Delay();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Segment Speed Limit</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getSegmentSpeedLimit()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_SegmentSpeedLimit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getCauses <em>Causes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Causes</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getCauses()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Causes();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Advices</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getAdvices()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Advices();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getApplicability()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Applicability();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Traffic Incident Id</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTrafficIncidentId()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_TrafficIncidentId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Expected Speed Absolute</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpectedSpeedAbsolute()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_ExpectedSpeedAbsolute();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpirationTime <em>Expiration Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Expiration Time</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getExpirationTime()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_ExpirationTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getUpdateTime <em>Update Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Update Time</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getUpdateTime()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_UpdateTime();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLocationReference <em>Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Location Reference</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getLocationReference()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_LocationReference();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Temporary Speed Limit</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident#getTemporarySpeedLimit()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_TemporarySpeedLimit();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause
+ * @generated
+ */
+ EClass getCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause#getMainCause <em>Main Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Main Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause#getMainCause()
+ * @see #getCause()
+ * @generated
+ */
+ EAttribute getCause_MainCause();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause <em>Linked Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linked Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause
+ * @generated
+ */
+ EClass getLinkedCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cause Traffic Incident Id</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause#getCauseTrafficIncidentId()
+ * @see #getLinkedCause()
+ * @generated
+ */
+ EAttribute getLinkedCause_CauseTrafficIncidentId();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause <em>Direct Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Direct Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause
+ * @generated
+ */
+ EClass getDirectCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Warning Level</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getWarningLevel()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_WarningLevel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unverified Information</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#isUnverifiedInformation()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_UnverifiedInformation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sub Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getSubCause()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_SubCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Length Affected</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLengthAffected()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_LengthAffected();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Lane Restrictions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getLaneRestrictions()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EReference getDirectCause_LaneRestrictions();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getFreeText <em>Free Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Free Text</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getFreeText()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EReference getDirectCause_FreeText();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cause Offset</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause#getCauseOffset()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_CauseOffset();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions <em>Lane Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lane Restrictions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions
+ * @generated
+ */
+ EClass getLaneRestrictions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lane Restriction Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getLaneRestrictionType()
+ * @see #getLaneRestrictions()
+ * @generated
+ */
+ EAttribute getLaneRestrictions_LaneRestrictionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Lanes</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions#getNumberOfLanes()
+ * @see #getLaneRestrictions()
+ * @generated
+ */
+ EAttribute getLaneRestrictions_NumberOfLanes();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Advice</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice
+ * @generated
+ */
+ EClass getAdvice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Main Advice</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getMainAdvice()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_MainAdvice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sub Advice</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getSubAdvice()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_SubAdvice();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getFreeText <em>Free Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Free Text</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getFreeText()
+ * @see #getAdvice()
+ * @generated
+ */
+ EReference getAdvice_FreeText();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getApplicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice#getApplicability()
+ * @see #getAdvice()
+ * @generated
+ */
+ EReference getAdvice_Applicability();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability
+ * @generated
+ */
+ EClass getApplicability();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vehicle Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleType()
+ * @see #getApplicability()
+ * @generated
+ */
+ EAttribute getApplicability_VehicleType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Vehicle Related Restrictions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability#getVehicleRelatedRestrictions()
+ * @see #getApplicability()
+ * @generated
+ */
+ EReference getApplicability_VehicleRelatedRestrictions();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction <em>Vehicle Related Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vehicle Related Restriction</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction
+ * @generated
+ */
+ EClass getVehicleRelatedRestriction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restriction Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionType()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRelatedRestriction_RestrictionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restriction Value</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionValue()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRelatedRestriction_RestrictionValue();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionLocationReference <em>Restriction Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Restriction Location Reference</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction#getRestrictionLocationReference()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EReference getVehicleRelatedRestriction_RestrictionLocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection <em>Temporary Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Speed Limit Section</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection
+ * @generated
+ */
+ EClass getTemporarySpeedLimitSection();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Value</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Value Wet</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitValueWet();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Length</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitLength();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Speed Limit</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit
+ * @generated
+ */
+ EClass getTemporarySpeedLimit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getTemporarySpeedLimitSections <em>Temporary Speed Limit Sections</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Temporary Speed Limit Sections</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getTemporarySpeedLimitSections()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EReference getTemporarySpeedLimit_TemporarySpeedLimitSections();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Units MPH</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#isUnitsMPH()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimit_UnitsMPH();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Offset</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getOffset()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimit_Offset();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getApplicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit#getApplicability()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EReference getTemporarySpeedLimit_Applicability();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ XTrafficIncidentFactory getXTrafficIncidentFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl <em>Traffic Incident</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getTrafficIncident()
+ * @generated
+ */
+ EClass TRAFFIC_INCIDENT = eINSTANCE.getTrafficIncident();
+
+ /**
+ * The meta object literal for the '<em><b>Effect Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__EFFECT_CODE = eINSTANCE.getTrafficIncident_EffectCode();
+
+ /**
+ * The meta object literal for the '<em><b>Start Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__START_TIME = eINSTANCE.getTrafficIncident_StartTime();
+
+ /**
+ * The meta object literal for the '<em><b>Stop Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__STOP_TIME = eINSTANCE.getTrafficIncident_StopTime();
+
+ /**
+ * The meta object literal for the '<em><b>Tendency</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__TENDENCY = eINSTANCE.getTrafficIncident_Tendency();
+
+ /**
+ * The meta object literal for the '<em><b>Length Affected</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__LENGTH_AFFECTED = eINSTANCE.getTrafficIncident_LengthAffected();
+
+ /**
+ * The meta object literal for the '<em><b>Average Speed Absolute</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE = eINSTANCE.getTrafficIncident_AverageSpeedAbsolute();
+
+ /**
+ * The meta object literal for the '<em><b>Delay</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__DELAY = eINSTANCE.getTrafficIncident_Delay();
+
+ /**
+ * The meta object literal for the '<em><b>Segment Speed Limit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT = eINSTANCE.getTrafficIncident_SegmentSpeedLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Causes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__CAUSES = eINSTANCE.getTrafficIncident_Causes();
+
+ /**
+ * The meta object literal for the '<em><b>Advices</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__ADVICES = eINSTANCE.getTrafficIncident_Advices();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__APPLICABILITY = eINSTANCE.getTrafficIncident_Applicability();
+
+ /**
+ * The meta object literal for the '<em><b>Traffic Incident Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID = eINSTANCE.getTrafficIncident_TrafficIncidentId();
+
+ /**
+ * The meta object literal for the '<em><b>Expected Speed Absolute</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE = eINSTANCE.getTrafficIncident_ExpectedSpeedAbsolute();
+
+ /**
+ * The meta object literal for the '<em><b>Expiration Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__EXPIRATION_TIME = eINSTANCE.getTrafficIncident_ExpirationTime();
+
+ /**
+ * The meta object literal for the '<em><b>Update Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__UPDATE_TIME = eINSTANCE.getTrafficIncident_UpdateTime();
+
+ /**
+ * The meta object literal for the '<em><b>Location Reference</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__LOCATION_REFERENCE = eINSTANCE.getTrafficIncident_LocationReference();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Speed Limit</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT = eINSTANCE.getTrafficIncident_TemporarySpeedLimit();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.CauseImpl <em>Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.CauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getCause()
+ * @generated
+ */
+ EClass CAUSE = eINSTANCE.getCause();
+
+ /**
+ * The meta object literal for the '<em><b>Main Cause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CAUSE__MAIN_CAUSE = eINSTANCE.getCause_MainCause();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LinkedCauseImpl <em>Linked Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LinkedCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getLinkedCause()
+ * @generated
+ */
+ EClass LINKED_CAUSE = eINSTANCE.getLinkedCause();
+
+ /**
+ * The meta object literal for the '<em><b>Cause Traffic Incident Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID = eINSTANCE.getLinkedCause_CauseTrafficIncidentId();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl <em>Direct Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getDirectCause()
+ * @generated
+ */
+ EClass DIRECT_CAUSE = eINSTANCE.getDirectCause();
+
+ /**
+ * The meta object literal for the '<em><b>Warning Level</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__WARNING_LEVEL = eINSTANCE.getDirectCause_WarningLevel();
+
+ /**
+ * The meta object literal for the '<em><b>Unverified Information</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__UNVERIFIED_INFORMATION = eINSTANCE.getDirectCause_UnverifiedInformation();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Cause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__SUB_CAUSE = eINSTANCE.getDirectCause_SubCause();
+
+ /**
+ * The meta object literal for the '<em><b>Length Affected</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__LENGTH_AFFECTED = eINSTANCE.getDirectCause_LengthAffected();
+
+ /**
+ * The meta object literal for the '<em><b>Lane Restrictions</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DIRECT_CAUSE__LANE_RESTRICTIONS = eINSTANCE.getDirectCause_LaneRestrictions();
+
+ /**
+ * The meta object literal for the '<em><b>Free Text</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DIRECT_CAUSE__FREE_TEXT = eINSTANCE.getDirectCause_FreeText();
+
+ /**
+ * The meta object literal for the '<em><b>Cause Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__CAUSE_OFFSET = eINSTANCE.getDirectCause_CauseOffset();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LaneRestrictionsImpl <em>Lane Restrictions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LaneRestrictionsImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getLaneRestrictions()
+ * @generated
+ */
+ EClass LANE_RESTRICTIONS = eINSTANCE.getLaneRestrictions();
+
+ /**
+ * The meta object literal for the '<em><b>Lane Restriction Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE = eINSTANCE.getLaneRestrictions_LaneRestrictionType();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Lanes</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LANE_RESTRICTIONS__NUMBER_OF_LANES = eINSTANCE.getLaneRestrictions_NumberOfLanes();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl <em>Advice</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getAdvice()
+ * @generated
+ */
+ EClass ADVICE = eINSTANCE.getAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Main Advice</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__MAIN_ADVICE = eINSTANCE.getAdvice_MainAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Advice</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__SUB_ADVICE = eINSTANCE.getAdvice_SubAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Free Text</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ADVICE__FREE_TEXT = eINSTANCE.getAdvice_FreeText();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ADVICE__APPLICABILITY = eINSTANCE.getAdvice_Applicability();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.ApplicabilityImpl <em>Applicability</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.ApplicabilityImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getApplicability()
+ * @generated
+ */
+ EClass APPLICABILITY = eINSTANCE.getApplicability();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute APPLICABILITY__VEHICLE_TYPE = eINSTANCE.getApplicability_VehicleType();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Related Restrictions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS = eINSTANCE.getApplicability_VehicleRelatedRestrictions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl <em>Vehicle Related Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getVehicleRelatedRestriction()
+ * @generated
+ */
+ EClass VEHICLE_RELATED_RESTRICTION = eINSTANCE.getVehicleRelatedRestriction();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE = eINSTANCE.getVehicleRelatedRestriction_RestrictionType();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE = eINSTANCE.getVehicleRelatedRestriction_RestrictionValue();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Location Reference</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE = eINSTANCE.getVehicleRelatedRestriction_RestrictionLocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl <em>Temporary Speed Limit Section</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EClass TEMPORARY_SPEED_LIMIT_SECTION = eINSTANCE.getTemporarySpeedLimitSection();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitValue();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Value Wet</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitValueWet();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitLength();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl <em>Temporary Speed Limit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.XTrafficIncidentPackageImpl#getTemporarySpeedLimit()
+ * @generated
+ */
+ EClass TEMPORARY_SPEED_LIMIT = eINSTANCE.getTemporarySpeedLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Speed Limit Sections</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS = eINSTANCE.getTemporarySpeedLimit_TemporarySpeedLimitSections();
+
+ /**
+ * The meta object literal for the '<em><b>Units MPH</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT__UNITS_MPH = eINSTANCE.getTemporarySpeedLimit_UnitsMPH();
+
+ /**
+ * The meta object literal for the '<em><b>Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT__OFFSET = eINSTANCE.getTemporarySpeedLimit_Offset();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPORARY_SPEED_LIMIT__APPLICABILITY = eINSTANCE.getTemporarySpeedLimit_Applicability();
+
+ }
+
+} //XTrafficIncidentPackage
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/AdviceImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/AdviceImpl.java
new file mode 100755
index 0000000..fc188b3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/AdviceImpl.java
@@ -0,0 +1,425 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.common.LocalizedString;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Advice</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl#getMainAdvice <em>Main Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl#getSubAdvice <em>Sub Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.AdviceImpl#getApplicability <em>Applicability</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AdviceImpl extends EObjectImpl implements Advice {
+ /**
+ * The default value of the '{@link #getMainAdvice() <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainAdvice()
+ * @generated
+ * @ordered
+ */
+ protected static final AdviceCode MAIN_ADVICE_EDEFAULT = AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE;
+
+ /**
+ * The cached value of the '{@link #getMainAdvice() <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainAdvice()
+ * @generated
+ * @ordered
+ */
+ protected AdviceCode mainAdvice = MAIN_ADVICE_EDEFAULT;
+
+ /**
+ * This is true if the Main Advice attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean mainAdviceESet;
+
+ /**
+ * The default value of the '{@link #getSubAdvice() <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubAdvice()
+ * @generated
+ * @ordered
+ */
+ protected static final Object SUB_ADVICE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubAdvice() <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubAdvice()
+ * @generated
+ * @ordered
+ */
+ protected Object subAdvice = SUB_ADVICE_EDEFAULT;
+
+ /**
+ * This is true if the Sub Advice attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subAdviceESet;
+
+ /**
+ * The cached value of the '{@link #getFreeText() <em>Free Text</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected EList<LocalizedString> freeText;
+
+ /**
+ * The cached value of the '{@link #getApplicability() <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicability()
+ * @generated
+ * @ordered
+ */
+ protected EList<Applicability> applicability;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdviceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.ADVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdviceCode getMainAdvice() {
+ return mainAdvice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainAdvice(AdviceCode newMainAdvice) {
+ AdviceCode oldMainAdvice = mainAdvice;
+ mainAdvice = newMainAdvice == null ? MAIN_ADVICE_EDEFAULT : newMainAdvice;
+ boolean oldMainAdviceESet = mainAdviceESet;
+ mainAdviceESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.ADVICE__MAIN_ADVICE, oldMainAdvice, mainAdvice, !oldMainAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMainAdvice() {
+ AdviceCode oldMainAdvice = mainAdvice;
+ boolean oldMainAdviceESet = mainAdviceESet;
+ mainAdvice = MAIN_ADVICE_EDEFAULT;
+ mainAdviceESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.ADVICE__MAIN_ADVICE, oldMainAdvice, MAIN_ADVICE_EDEFAULT, oldMainAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMainAdvice() {
+ return mainAdviceESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getSubAdvice() {
+ return subAdvice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubAdvice(Object newSubAdvice) {
+ Object oldSubAdvice = subAdvice;
+ subAdvice = newSubAdvice;
+ boolean oldSubAdviceESet = subAdviceESet;
+ subAdviceESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.ADVICE__SUB_ADVICE, oldSubAdvice, subAdvice, !oldSubAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubAdvice() {
+ Object oldSubAdvice = subAdvice;
+ boolean oldSubAdviceESet = subAdviceESet;
+ subAdvice = SUB_ADVICE_EDEFAULT;
+ subAdviceESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.ADVICE__SUB_ADVICE, oldSubAdvice, SUB_ADVICE_EDEFAULT, oldSubAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubAdvice() {
+ return subAdviceESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LocalizedString> getFreeText() {
+ if (freeText == null) {
+ freeText = new EObjectContainmentEList.Unsettable<LocalizedString>(LocalizedString.class, this, XTrafficIncidentPackage.ADVICE__FREE_TEXT);
+ }
+ return freeText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFreeText() {
+ if (freeText != null) ((InternalEList.Unsettable<?>)freeText).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFreeText() {
+ return freeText != null && ((InternalEList.Unsettable<?>)freeText).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Applicability> getApplicability() {
+ if (applicability == null) {
+ applicability = new EObjectContainmentEList.Unsettable<Applicability>(Applicability.class, this, XTrafficIncidentPackage.ADVICE__APPLICABILITY);
+ }
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetApplicability() {
+ if (applicability != null) ((InternalEList.Unsettable<?>)applicability).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetApplicability() {
+ return applicability != null && ((InternalEList.Unsettable<?>)applicability).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.ADVICE__FREE_TEXT:
+ return ((InternalEList<?>)getFreeText()).basicRemove(otherEnd, msgs);
+ case XTrafficIncidentPackage.ADVICE__APPLICABILITY:
+ return ((InternalEList<?>)getApplicability()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.ADVICE__MAIN_ADVICE:
+ return getMainAdvice();
+ case XTrafficIncidentPackage.ADVICE__SUB_ADVICE:
+ return getSubAdvice();
+ case XTrafficIncidentPackage.ADVICE__FREE_TEXT:
+ return getFreeText();
+ case XTrafficIncidentPackage.ADVICE__APPLICABILITY:
+ return getApplicability();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.ADVICE__MAIN_ADVICE:
+ setMainAdvice((AdviceCode)newValue);
+ return;
+ case XTrafficIncidentPackage.ADVICE__SUB_ADVICE:
+ setSubAdvice(newValue);
+ return;
+ case XTrafficIncidentPackage.ADVICE__FREE_TEXT:
+ getFreeText().clear();
+ getFreeText().addAll((Collection<? extends LocalizedString>)newValue);
+ return;
+ case XTrafficIncidentPackage.ADVICE__APPLICABILITY:
+ getApplicability().clear();
+ getApplicability().addAll((Collection<? extends Applicability>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.ADVICE__MAIN_ADVICE:
+ unsetMainAdvice();
+ return;
+ case XTrafficIncidentPackage.ADVICE__SUB_ADVICE:
+ unsetSubAdvice();
+ return;
+ case XTrafficIncidentPackage.ADVICE__FREE_TEXT:
+ unsetFreeText();
+ return;
+ case XTrafficIncidentPackage.ADVICE__APPLICABILITY:
+ unsetApplicability();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.ADVICE__MAIN_ADVICE:
+ return isSetMainAdvice();
+ case XTrafficIncidentPackage.ADVICE__SUB_ADVICE:
+ return isSetSubAdvice();
+ case XTrafficIncidentPackage.ADVICE__FREE_TEXT:
+ return isSetFreeText();
+ case XTrafficIncidentPackage.ADVICE__APPLICABILITY:
+ return isSetApplicability();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mainAdvice: ");
+ if (mainAdviceESet) result.append(mainAdvice); else result.append("<unset>");
+ result.append(", subAdvice: ");
+ if (subAdviceESet) result.append(subAdvice); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdviceImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/ApplicabilityImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/ApplicabilityImpl.java
new file mode 100755
index 0000000..178b1ff
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/ApplicabilityImpl.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Applicability</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.ApplicabilityImpl#getVehicleType <em>Vehicle Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.ApplicabilityImpl#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ApplicabilityImpl extends EObjectImpl implements Applicability {
+ /**
+ * The default value of the '{@link #getVehicleType() <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleType()
+ * @generated
+ * @ordered
+ */
+ protected static final VehicleType VEHICLE_TYPE_EDEFAULT = VehicleType.CAR;
+
+ /**
+ * The cached value of the '{@link #getVehicleType() <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleType()
+ * @generated
+ * @ordered
+ */
+ protected VehicleType vehicleType = VEHICLE_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Vehicle Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean vehicleTypeESet;
+
+ /**
+ * The cached value of the '{@link #getVehicleRelatedRestrictions() <em>Vehicle Related Restrictions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleRelatedRestrictions()
+ * @generated
+ * @ordered
+ */
+ protected EList<VehicleRelatedRestriction> vehicleRelatedRestrictions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ApplicabilityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.APPLICABILITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleType getVehicleType() {
+ return vehicleType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVehicleType(VehicleType newVehicleType) {
+ VehicleType oldVehicleType = vehicleType;
+ vehicleType = newVehicleType == null ? VEHICLE_TYPE_EDEFAULT : newVehicleType;
+ boolean oldVehicleTypeESet = vehicleTypeESet;
+ vehicleTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.APPLICABILITY__VEHICLE_TYPE, oldVehicleType, vehicleType, !oldVehicleTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVehicleType() {
+ VehicleType oldVehicleType = vehicleType;
+ boolean oldVehicleTypeESet = vehicleTypeESet;
+ vehicleType = VEHICLE_TYPE_EDEFAULT;
+ vehicleTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.APPLICABILITY__VEHICLE_TYPE, oldVehicleType, VEHICLE_TYPE_EDEFAULT, oldVehicleTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVehicleType() {
+ return vehicleTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VehicleRelatedRestriction> getVehicleRelatedRestrictions() {
+ if (vehicleRelatedRestrictions == null) {
+ vehicleRelatedRestrictions = new EObjectContainmentEList.Unsettable<VehicleRelatedRestriction>(VehicleRelatedRestriction.class, this, XTrafficIncidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS);
+ }
+ return vehicleRelatedRestrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVehicleRelatedRestrictions() {
+ if (vehicleRelatedRestrictions != null) ((InternalEList.Unsettable<?>)vehicleRelatedRestrictions).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVehicleRelatedRestrictions() {
+ return vehicleRelatedRestrictions != null && ((InternalEList.Unsettable<?>)vehicleRelatedRestrictions).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ return ((InternalEList<?>)getVehicleRelatedRestrictions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ return getVehicleType();
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ return getVehicleRelatedRestrictions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ setVehicleType((VehicleType)newValue);
+ return;
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ getVehicleRelatedRestrictions().clear();
+ getVehicleRelatedRestrictions().addAll((Collection<? extends VehicleRelatedRestriction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ unsetVehicleType();
+ return;
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ unsetVehicleRelatedRestrictions();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ return isSetVehicleType();
+ case XTrafficIncidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ return isSetVehicleRelatedRestrictions();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (vehicleType: ");
+ if (vehicleTypeESet) result.append(vehicleType); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //ApplicabilityImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/CauseImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/CauseImpl.java
new file mode 100755
index 0000000..3eec292
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/CauseImpl.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.CauseImpl#getMainCause <em>Main Cause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CauseImpl extends EObjectImpl implements Cause {
+ /**
+ * The default value of the '{@link #getMainCause() <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainCause()
+ * @generated
+ * @ordered
+ */
+ protected static final CauseCode MAIN_CAUSE_EDEFAULT = CauseCode.TRAFFIC_CONGESTION;
+
+ /**
+ * The cached value of the '{@link #getMainCause() <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainCause()
+ * @generated
+ * @ordered
+ */
+ protected CauseCode mainCause = MAIN_CAUSE_EDEFAULT;
+
+ /**
+ * This is true if the Main Cause attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean mainCauseESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CauseCode getMainCause() {
+ return mainCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainCause(CauseCode newMainCause) {
+ CauseCode oldMainCause = mainCause;
+ mainCause = newMainCause == null ? MAIN_CAUSE_EDEFAULT : newMainCause;
+ boolean oldMainCauseESet = mainCauseESet;
+ mainCauseESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.CAUSE__MAIN_CAUSE, oldMainCause, mainCause, !oldMainCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMainCause() {
+ CauseCode oldMainCause = mainCause;
+ boolean oldMainCauseESet = mainCauseESet;
+ mainCause = MAIN_CAUSE_EDEFAULT;
+ mainCauseESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.CAUSE__MAIN_CAUSE, oldMainCause, MAIN_CAUSE_EDEFAULT, oldMainCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMainCause() {
+ return mainCauseESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.CAUSE__MAIN_CAUSE:
+ return getMainCause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.CAUSE__MAIN_CAUSE:
+ setMainCause((CauseCode)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.CAUSE__MAIN_CAUSE:
+ unsetMainCause();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.CAUSE__MAIN_CAUSE:
+ return isSetMainCause();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mainCause: ");
+ if (mainCauseESet) result.append(mainCause); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //CauseImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/DirectCauseImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/DirectCauseImpl.java
new file mode 100755
index 0000000..b74af4f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/DirectCauseImpl.java
@@ -0,0 +1,761 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.common.LocalizedString;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Direct Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#getWarningLevel <em>Warning Level</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#isUnverifiedInformation <em>Unverified Information</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#getSubCause <em>Sub Cause</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#getLaneRestrictions <em>Lane Restrictions</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.DirectCauseImpl#getCauseOffset <em>Cause Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DirectCauseImpl extends CauseImpl implements DirectCause {
+ /**
+ * The default value of the '{@link #getWarningLevel() <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWarningLevel()
+ * @generated
+ * @ordered
+ */
+ protected static final WarningLevel WARNING_LEVEL_EDEFAULT = WarningLevel.INFORMATIVE;
+
+ /**
+ * The cached value of the '{@link #getWarningLevel() <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWarningLevel()
+ * @generated
+ * @ordered
+ */
+ protected WarningLevel warningLevel = WARNING_LEVEL_EDEFAULT;
+
+ /**
+ * This is true if the Warning Level attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean warningLevelESet;
+
+ /**
+ * The default value of the '{@link #isUnverifiedInformation() <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnverifiedInformation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UNVERIFIED_INFORMATION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUnverifiedInformation() <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnverifiedInformation()
+ * @generated
+ * @ordered
+ */
+ protected boolean unverifiedInformation = UNVERIFIED_INFORMATION_EDEFAULT;
+
+ /**
+ * This is true if the Unverified Information attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean unverifiedInformationESet;
+
+ /**
+ * The default value of the '{@link #getSubCause() <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubCause()
+ * @generated
+ * @ordered
+ */
+ protected static final Object SUB_CAUSE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubCause() <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubCause()
+ * @generated
+ * @ordered
+ */
+ protected Object subCause = SUB_CAUSE_EDEFAULT;
+
+ /**
+ * This is true if the Sub Cause attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subCauseESet;
+
+ /**
+ * The default value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LENGTH_AFFECTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected Integer lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+
+ /**
+ * This is true if the Length Affected attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean lengthAffectedESet;
+
+ /**
+ * The cached value of the '{@link #getLaneRestrictions() <em>Lane Restrictions</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictions()
+ * @generated
+ * @ordered
+ */
+ protected LaneRestrictions laneRestrictions;
+
+ /**
+ * This is true if the Lane Restrictions containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean laneRestrictionsESet;
+
+ /**
+ * The cached value of the '{@link #getFreeText() <em>Free Text</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected EList<LocalizedString> freeText;
+
+ /**
+ * The default value of the '{@link #getCauseOffset() <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer CAUSE_OFFSET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCauseOffset() <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseOffset()
+ * @generated
+ * @ordered
+ */
+ protected Integer causeOffset = CAUSE_OFFSET_EDEFAULT;
+
+ /**
+ * This is true if the Cause Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean causeOffsetESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DirectCauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.DIRECT_CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WarningLevel getWarningLevel() {
+ return warningLevel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWarningLevel(WarningLevel newWarningLevel) {
+ WarningLevel oldWarningLevel = warningLevel;
+ warningLevel = newWarningLevel == null ? WARNING_LEVEL_EDEFAULT : newWarningLevel;
+ boolean oldWarningLevelESet = warningLevelESet;
+ warningLevelESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__WARNING_LEVEL, oldWarningLevel, warningLevel, !oldWarningLevelESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetWarningLevel() {
+ WarningLevel oldWarningLevel = warningLevel;
+ boolean oldWarningLevelESet = warningLevelESet;
+ warningLevel = WARNING_LEVEL_EDEFAULT;
+ warningLevelESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__WARNING_LEVEL, oldWarningLevel, WARNING_LEVEL_EDEFAULT, oldWarningLevelESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetWarningLevel() {
+ return warningLevelESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnverifiedInformation() {
+ return unverifiedInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnverifiedInformation(boolean newUnverifiedInformation) {
+ boolean oldUnverifiedInformation = unverifiedInformation;
+ unverifiedInformation = newUnverifiedInformation;
+ boolean oldUnverifiedInformationESet = unverifiedInformationESet;
+ unverifiedInformationESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION, oldUnverifiedInformation, unverifiedInformation, !oldUnverifiedInformationESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetUnverifiedInformation() {
+ boolean oldUnverifiedInformation = unverifiedInformation;
+ boolean oldUnverifiedInformationESet = unverifiedInformationESet;
+ unverifiedInformation = UNVERIFIED_INFORMATION_EDEFAULT;
+ unverifiedInformationESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION, oldUnverifiedInformation, UNVERIFIED_INFORMATION_EDEFAULT, oldUnverifiedInformationESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetUnverifiedInformation() {
+ return unverifiedInformationESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getSubCause() {
+ return subCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubCause(Object newSubCause) {
+ Object oldSubCause = subCause;
+ subCause = newSubCause;
+ boolean oldSubCauseESet = subCauseESet;
+ subCauseESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__SUB_CAUSE, oldSubCause, subCause, !oldSubCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubCause() {
+ Object oldSubCause = subCause;
+ boolean oldSubCauseESet = subCauseESet;
+ subCause = SUB_CAUSE_EDEFAULT;
+ subCauseESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__SUB_CAUSE, oldSubCause, SUB_CAUSE_EDEFAULT, oldSubCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubCause() {
+ return subCauseESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLengthAffected() {
+ return lengthAffected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthAffected(Integer newLengthAffected) {
+ Integer oldLengthAffected = lengthAffected;
+ lengthAffected = newLengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffectedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED, oldLengthAffected, lengthAffected, !oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLengthAffected() {
+ Integer oldLengthAffected = lengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+ lengthAffectedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED, oldLengthAffected, LENGTH_AFFECTED_EDEFAULT, oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLengthAffected() {
+ return lengthAffectedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictions getLaneRestrictions() {
+ return laneRestrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLaneRestrictions(LaneRestrictions newLaneRestrictions, NotificationChain msgs) {
+ LaneRestrictions oldLaneRestrictions = laneRestrictions;
+ laneRestrictions = newLaneRestrictions;
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, oldLaneRestrictions, newLaneRestrictions, !oldLaneRestrictionsESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLaneRestrictions(LaneRestrictions newLaneRestrictions) {
+ if (newLaneRestrictions != laneRestrictions) {
+ NotificationChain msgs = null;
+ if (laneRestrictions != null)
+ msgs = ((InternalEObject)laneRestrictions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, msgs);
+ if (newLaneRestrictions != null)
+ msgs = ((InternalEObject)newLaneRestrictions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, msgs);
+ msgs = basicSetLaneRestrictions(newLaneRestrictions, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, newLaneRestrictions, newLaneRestrictions, !oldLaneRestrictionsESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetLaneRestrictions(NotificationChain msgs) {
+ LaneRestrictions oldLaneRestrictions = laneRestrictions;
+ laneRestrictions = null;
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, oldLaneRestrictions, null, oldLaneRestrictionsESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLaneRestrictions() {
+ if (laneRestrictions != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)laneRestrictions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, msgs);
+ msgs = basicUnsetLaneRestrictions(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, null, oldLaneRestrictionsESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLaneRestrictions() {
+ return laneRestrictionsESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LocalizedString> getFreeText() {
+ if (freeText == null) {
+ freeText = new EObjectContainmentEList.Unsettable<LocalizedString>(LocalizedString.class, this, XTrafficIncidentPackage.DIRECT_CAUSE__FREE_TEXT);
+ }
+ return freeText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFreeText() {
+ if (freeText != null) ((InternalEList.Unsettable<?>)freeText).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFreeText() {
+ return freeText != null && ((InternalEList.Unsettable<?>)freeText).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getCauseOffset() {
+ return causeOffset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCauseOffset(Integer newCauseOffset) {
+ Integer oldCauseOffset = causeOffset;
+ causeOffset = newCauseOffset;
+ boolean oldCauseOffsetESet = causeOffsetESet;
+ causeOffsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.DIRECT_CAUSE__CAUSE_OFFSET, oldCauseOffset, causeOffset, !oldCauseOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauseOffset() {
+ Integer oldCauseOffset = causeOffset;
+ boolean oldCauseOffsetESet = causeOffsetESet;
+ causeOffset = CAUSE_OFFSET_EDEFAULT;
+ causeOffsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.DIRECT_CAUSE__CAUSE_OFFSET, oldCauseOffset, CAUSE_OFFSET_EDEFAULT, oldCauseOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauseOffset() {
+ return causeOffsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ return basicUnsetLaneRestrictions(msgs);
+ case XTrafficIncidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ return ((InternalEList<?>)getFreeText()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ return getWarningLevel();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ return isUnverifiedInformation();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ return getSubCause();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ return getLengthAffected();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ return getLaneRestrictions();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ return getFreeText();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ return getCauseOffset();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ setWarningLevel((WarningLevel)newValue);
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ setUnverifiedInformation((Boolean)newValue);
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ setSubCause(newValue);
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ setLengthAffected((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ setLaneRestrictions((LaneRestrictions)newValue);
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ getFreeText().clear();
+ getFreeText().addAll((Collection<? extends LocalizedString>)newValue);
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ setCauseOffset((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ unsetWarningLevel();
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ unsetUnverifiedInformation();
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ unsetSubCause();
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ unsetLengthAffected();
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ unsetLaneRestrictions();
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ unsetFreeText();
+ return;
+ case XTrafficIncidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ unsetCauseOffset();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ return isSetWarningLevel();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ return isSetUnverifiedInformation();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ return isSetSubCause();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ return isSetLengthAffected();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ return isSetLaneRestrictions();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ return isSetFreeText();
+ case XTrafficIncidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ return isSetCauseOffset();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (warningLevel: ");
+ if (warningLevelESet) result.append(warningLevel); else result.append("<unset>");
+ result.append(", unverifiedInformation: ");
+ if (unverifiedInformationESet) result.append(unverifiedInformation); else result.append("<unset>");
+ result.append(", subCause: ");
+ if (subCauseESet) result.append(subCause); else result.append("<unset>");
+ result.append(", lengthAffected: ");
+ if (lengthAffectedESet) result.append(lengthAffected); else result.append("<unset>");
+ result.append(", causeOffset: ");
+ if (causeOffsetESet) result.append(causeOffset); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //DirectCauseImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LaneRestrictionsImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LaneRestrictionsImpl.java
new file mode 100755
index 0000000..67178a7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LaneRestrictionsImpl.java
@@ -0,0 +1,292 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lane Restrictions</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LaneRestrictionsImpl#getLaneRestrictionType <em>Lane Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LaneRestrictionsImpl#getNumberOfLanes <em>Number Of Lanes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LaneRestrictionsImpl extends EObjectImpl implements LaneRestrictions {
+ /**
+ * The default value of the '{@link #getLaneRestrictionType() <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected static final LaneRestrictionType LANE_RESTRICTION_TYPE_EDEFAULT = LaneRestrictionType.LANES_CLOSED;
+
+ /**
+ * The cached value of the '{@link #getLaneRestrictionType() <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected LaneRestrictionType laneRestrictionType = LANE_RESTRICTION_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Lane Restriction Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean laneRestrictionTypeESet;
+
+ /**
+ * The default value of the '{@link #getNumberOfLanes() <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfLanes()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer NUMBER_OF_LANES_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNumberOfLanes() <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfLanes()
+ * @generated
+ * @ordered
+ */
+ protected Integer numberOfLanes = NUMBER_OF_LANES_EDEFAULT;
+
+ /**
+ * This is true if the Number Of Lanes attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean numberOfLanesESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LaneRestrictionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.LANE_RESTRICTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictionType getLaneRestrictionType() {
+ return laneRestrictionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLaneRestrictionType(LaneRestrictionType newLaneRestrictionType) {
+ LaneRestrictionType oldLaneRestrictionType = laneRestrictionType;
+ laneRestrictionType = newLaneRestrictionType == null ? LANE_RESTRICTION_TYPE_EDEFAULT : newLaneRestrictionType;
+ boolean oldLaneRestrictionTypeESet = laneRestrictionTypeESet;
+ laneRestrictionTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE, oldLaneRestrictionType, laneRestrictionType, !oldLaneRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLaneRestrictionType() {
+ LaneRestrictionType oldLaneRestrictionType = laneRestrictionType;
+ boolean oldLaneRestrictionTypeESet = laneRestrictionTypeESet;
+ laneRestrictionType = LANE_RESTRICTION_TYPE_EDEFAULT;
+ laneRestrictionTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE, oldLaneRestrictionType, LANE_RESTRICTION_TYPE_EDEFAULT, oldLaneRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLaneRestrictionType() {
+ return laneRestrictionTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getNumberOfLanes() {
+ return numberOfLanes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfLanes(Integer newNumberOfLanes) {
+ Integer oldNumberOfLanes = numberOfLanes;
+ numberOfLanes = newNumberOfLanes;
+ boolean oldNumberOfLanesESet = numberOfLanesESet;
+ numberOfLanesESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES, oldNumberOfLanes, numberOfLanes, !oldNumberOfLanesESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetNumberOfLanes() {
+ Integer oldNumberOfLanes = numberOfLanes;
+ boolean oldNumberOfLanesESet = numberOfLanesESet;
+ numberOfLanes = NUMBER_OF_LANES_EDEFAULT;
+ numberOfLanesESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES, oldNumberOfLanes, NUMBER_OF_LANES_EDEFAULT, oldNumberOfLanesESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNumberOfLanes() {
+ return numberOfLanesESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ return getLaneRestrictionType();
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ return getNumberOfLanes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ setLaneRestrictionType((LaneRestrictionType)newValue);
+ return;
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ setNumberOfLanes((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ unsetLaneRestrictionType();
+ return;
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ unsetNumberOfLanes();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ return isSetLaneRestrictionType();
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ return isSetNumberOfLanes();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (laneRestrictionType: ");
+ if (laneRestrictionTypeESet) result.append(laneRestrictionType); else result.append("<unset>");
+ result.append(", numberOfLanes: ");
+ if (numberOfLanesESet) result.append(numberOfLanes); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LaneRestrictionsImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LinkedCauseImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LinkedCauseImpl.java
new file mode 100755
index 0000000..27c0c13
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/LinkedCauseImpl.java
@@ -0,0 +1,201 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linked Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.LinkedCauseImpl#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkedCauseImpl extends CauseImpl implements LinkedCause {
+ /**
+ * The default value of the '{@link #getCauseTrafficIncidentId() <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected static final String CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCauseTrafficIncidentId() <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected String causeTrafficIncidentId = CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT;
+
+ /**
+ * This is true if the Cause Traffic Incident Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean causeTrafficIncidentIdESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkedCauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.LINKED_CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCauseTrafficIncidentId() {
+ return causeTrafficIncidentId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCauseTrafficIncidentId(String newCauseTrafficIncidentId) {
+ String oldCauseTrafficIncidentId = causeTrafficIncidentId;
+ causeTrafficIncidentId = newCauseTrafficIncidentId;
+ boolean oldCauseTrafficIncidentIdESet = causeTrafficIncidentIdESet;
+ causeTrafficIncidentIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID, oldCauseTrafficIncidentId, causeTrafficIncidentId, !oldCauseTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauseTrafficIncidentId() {
+ String oldCauseTrafficIncidentId = causeTrafficIncidentId;
+ boolean oldCauseTrafficIncidentIdESet = causeTrafficIncidentIdESet;
+ causeTrafficIncidentId = CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT;
+ causeTrafficIncidentIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID, oldCauseTrafficIncidentId, CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT, oldCauseTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauseTrafficIncidentId() {
+ return causeTrafficIncidentIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ return getCauseTrafficIncidentId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ setCauseTrafficIncidentId((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ unsetCauseTrafficIncidentId();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ return isSetCauseTrafficIncidentId();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (causeTrafficIncidentId: ");
+ if (causeTrafficIncidentIdESet) result.append(causeTrafficIncidentId); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinkedCauseImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitImpl.java
new file mode 100755
index 0000000..730d2eb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitImpl.java
@@ -0,0 +1,352 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Speed Limit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl#getTemporarySpeedLimitSections <em>Temporary Speed Limit Sections</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl#isUnitsMPH <em>Units MPH</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl#getOffset <em>Offset</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitImpl#getApplicability <em>Applicability</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporarySpeedLimitImpl extends EObjectImpl implements TemporarySpeedLimit {
+ /**
+ * The cached value of the '{@link #getTemporarySpeedLimitSections() <em>Temporary Speed Limit Sections</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporarySpeedLimitSections()
+ * @generated
+ * @ordered
+ */
+ protected EList<TemporarySpeedLimitSection> temporarySpeedLimitSections;
+
+ /**
+ * The default value of the '{@link #isUnitsMPH() <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnitsMPH()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UNITS_MPH_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUnitsMPH() <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnitsMPH()
+ * @generated
+ * @ordered
+ */
+ protected boolean unitsMPH = UNITS_MPH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer OFFSET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected Integer offset = OFFSET_EDEFAULT;
+
+ /**
+ * This is true if the Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean offsetESet;
+
+ /**
+ * The cached value of the '{@link #getApplicability() <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicability()
+ * @generated
+ * @ordered
+ */
+ protected EList<Applicability> applicability;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemporarySpeedLimitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.TEMPORARY_SPEED_LIMIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TemporarySpeedLimitSection> getTemporarySpeedLimitSections() {
+ if (temporarySpeedLimitSections == null) {
+ temporarySpeedLimitSections = new EObjectContainmentEList<TemporarySpeedLimitSection>(TemporarySpeedLimitSection.class, this, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS);
+ }
+ return temporarySpeedLimitSections;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnitsMPH() {
+ return unitsMPH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnitsMPH(boolean newUnitsMPH) {
+ boolean oldUnitsMPH = unitsMPH;
+ unitsMPH = newUnitsMPH;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH, oldUnitsMPH, unitsMPH));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getOffset() {
+ return offset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOffset(Integer newOffset) {
+ Integer oldOffset = offset;
+ offset = newOffset;
+ boolean oldOffsetESet = offsetESet;
+ offsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET, oldOffset, offset, !oldOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOffset() {
+ Integer oldOffset = offset;
+ boolean oldOffsetESet = offsetESet;
+ offset = OFFSET_EDEFAULT;
+ offsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET, oldOffset, OFFSET_EDEFAULT, oldOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOffset() {
+ return offsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Applicability> getApplicability() {
+ if (applicability == null) {
+ applicability = new EObjectContainmentEList<Applicability>(Applicability.class, this, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY);
+ }
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ return ((InternalEList<?>)getTemporarySpeedLimitSections()).basicRemove(otherEnd, msgs);
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ return ((InternalEList<?>)getApplicability()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ return getTemporarySpeedLimitSections();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ return isUnitsMPH();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ return getOffset();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ return getApplicability();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ getTemporarySpeedLimitSections().clear();
+ getTemporarySpeedLimitSections().addAll((Collection<? extends TemporarySpeedLimitSection>)newValue);
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ setUnitsMPH((Boolean)newValue);
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ setOffset((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ getApplicability().clear();
+ getApplicability().addAll((Collection<? extends Applicability>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ getTemporarySpeedLimitSections().clear();
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ setUnitsMPH(UNITS_MPH_EDEFAULT);
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ unsetOffset();
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ getApplicability().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ return temporarySpeedLimitSections != null && !temporarySpeedLimitSections.isEmpty();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ return unitsMPH != UNITS_MPH_EDEFAULT;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ return isSetOffset();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ return applicability != null && !applicability.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (unitsMPH: ");
+ result.append(unitsMPH);
+ result.append(", offset: ");
+ if (offsetESet) result.append(offset); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TemporarySpeedLimitImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitSectionImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitSectionImpl.java
new file mode 100755
index 0000000..f47ba74
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TemporarySpeedLimitSectionImpl.java
@@ -0,0 +1,378 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Speed Limit Section</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitValue <em>Speed Limit Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitLength <em>Speed Limit Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporarySpeedLimitSectionImpl extends EObjectImpl implements TemporarySpeedLimitSection {
+ /**
+ * The default value of the '{@link #getSpeedLimitValue() <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValue()
+ * @generated
+ * @ordered
+ */
+ protected static final short SPEED_LIMIT_VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitValue() <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValue()
+ * @generated
+ * @ordered
+ */
+ protected short speedLimitValue = SPEED_LIMIT_VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitValueESet;
+
+ /**
+ * The default value of the '{@link #getSpeedLimitValueWet() <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ * @ordered
+ */
+ protected static final short SPEED_LIMIT_VALUE_WET_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitValueWet() <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ * @ordered
+ */
+ protected short speedLimitValueWet = SPEED_LIMIT_VALUE_WET_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Value Wet attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitValueWetESet;
+
+ /**
+ * The default value of the '{@link #getSpeedLimitLength() <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitLength()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer SPEED_LIMIT_LENGTH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitLength() <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitLength()
+ * @generated
+ * @ordered
+ */
+ protected Integer speedLimitLength = SPEED_LIMIT_LENGTH_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Length attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitLengthESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemporarySpeedLimitSectionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.TEMPORARY_SPEED_LIMIT_SECTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public short getSpeedLimitValue() {
+ return speedLimitValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitValue(short newSpeedLimitValue) {
+ short oldSpeedLimitValue = speedLimitValue;
+ speedLimitValue = newSpeedLimitValue;
+ boolean oldSpeedLimitValueESet = speedLimitValueESet;
+ speedLimitValueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE, oldSpeedLimitValue, speedLimitValue, !oldSpeedLimitValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitValue() {
+ short oldSpeedLimitValue = speedLimitValue;
+ boolean oldSpeedLimitValueESet = speedLimitValueESet;
+ speedLimitValue = SPEED_LIMIT_VALUE_EDEFAULT;
+ speedLimitValueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE, oldSpeedLimitValue, SPEED_LIMIT_VALUE_EDEFAULT, oldSpeedLimitValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitValue() {
+ return speedLimitValueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public short getSpeedLimitValueWet() {
+ return speedLimitValueWet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitValueWet(short newSpeedLimitValueWet) {
+ short oldSpeedLimitValueWet = speedLimitValueWet;
+ speedLimitValueWet = newSpeedLimitValueWet;
+ boolean oldSpeedLimitValueWetESet = speedLimitValueWetESet;
+ speedLimitValueWetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET, oldSpeedLimitValueWet, speedLimitValueWet, !oldSpeedLimitValueWetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitValueWet() {
+ short oldSpeedLimitValueWet = speedLimitValueWet;
+ boolean oldSpeedLimitValueWetESet = speedLimitValueWetESet;
+ speedLimitValueWet = SPEED_LIMIT_VALUE_WET_EDEFAULT;
+ speedLimitValueWetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET, oldSpeedLimitValueWet, SPEED_LIMIT_VALUE_WET_EDEFAULT, oldSpeedLimitValueWetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitValueWet() {
+ return speedLimitValueWetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getSpeedLimitLength() {
+ return speedLimitLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitLength(Integer newSpeedLimitLength) {
+ Integer oldSpeedLimitLength = speedLimitLength;
+ speedLimitLength = newSpeedLimitLength;
+ boolean oldSpeedLimitLengthESet = speedLimitLengthESet;
+ speedLimitLengthESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH, oldSpeedLimitLength, speedLimitLength, !oldSpeedLimitLengthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitLength() {
+ Integer oldSpeedLimitLength = speedLimitLength;
+ boolean oldSpeedLimitLengthESet = speedLimitLengthESet;
+ speedLimitLength = SPEED_LIMIT_LENGTH_EDEFAULT;
+ speedLimitLengthESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH, oldSpeedLimitLength, SPEED_LIMIT_LENGTH_EDEFAULT, oldSpeedLimitLengthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitLength() {
+ return speedLimitLengthESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ return getSpeedLimitValue();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ return getSpeedLimitValueWet();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ return getSpeedLimitLength();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ setSpeedLimitValue((Short)newValue);
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ setSpeedLimitValueWet((Short)newValue);
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ setSpeedLimitLength((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ unsetSpeedLimitValue();
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ unsetSpeedLimitValueWet();
+ return;
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ unsetSpeedLimitLength();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ return isSetSpeedLimitValue();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ return isSetSpeedLimitValueWet();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ return isSetSpeedLimitLength();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (speedLimitValue: ");
+ if (speedLimitValueESet) result.append(speedLimitValue); else result.append("<unset>");
+ result.append(", speedLimitValueWet: ");
+ if (speedLimitValueWetESet) result.append(speedLimitValueWet); else result.append("<unset>");
+ result.append(", speedLimitLength: ");
+ if (speedLimitLengthESet) result.append(speedLimitLength); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TemporarySpeedLimitSectionImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TrafficIncidentImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TrafficIncidentImpl.java
new file mode 100755
index 0000000..70acf9e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/TrafficIncidentImpl.java
@@ -0,0 +1,1527 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import java.util.Collection;
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.locref.LocationReference;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Traffic Incident</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getEffectCode <em>Effect Code</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getStartTime <em>Start Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getStopTime <em>Stop Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getTendency <em>Tendency</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getDelay <em>Delay</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getSegmentSpeedLimit <em>Segment Speed Limit</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getCauses <em>Causes</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getAdvices <em>Advices</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getApplicability <em>Applicability</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getTrafficIncidentId <em>Traffic Incident Id</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getExpirationTime <em>Expiration Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getUpdateTime <em>Update Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getLocationReference <em>Location Reference</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.TrafficIncidentImpl#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TrafficIncidentImpl extends EObjectImpl implements TrafficIncident {
+ /**
+ * The default value of the '{@link #getEffectCode() <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectCode()
+ * @generated
+ * @ordered
+ */
+ protected static final EffectCode EFFECT_CODE_EDEFAULT = EffectCode.TRAFFIC_FLOW_UNKNOWN;
+
+ /**
+ * The cached value of the '{@link #getEffectCode() <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectCode()
+ * @generated
+ * @ordered
+ */
+ protected EffectCode effectCode = EFFECT_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Effect Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean effectCodeESet;
+
+ /**
+ * The default value of the '{@link #getStartTime() <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStartTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date START_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStartTime() <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStartTime()
+ * @generated
+ * @ordered
+ */
+ protected Date startTime = START_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Start Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean startTimeESet;
+
+ /**
+ * The default value of the '{@link #getStopTime() <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStopTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date STOP_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStopTime() <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStopTime()
+ * @generated
+ * @ordered
+ */
+ protected Date stopTime = STOP_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Stop Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean stopTimeESet;
+
+ /**
+ * The default value of the '{@link #getTendency() <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendency()
+ * @generated
+ * @ordered
+ */
+ protected static final Tendency TENDENCY_EDEFAULT = Tendency.SLIGHTLY_INCREASING;
+
+ /**
+ * The cached value of the '{@link #getTendency() <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendency()
+ * @generated
+ * @ordered
+ */
+ protected Tendency tendency = TENDENCY_EDEFAULT;
+
+ /**
+ * This is true if the Tendency attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean tendencyESet;
+
+ /**
+ * The default value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LENGTH_AFFECTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected Integer lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+
+ /**
+ * This is true if the Length Affected attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean lengthAffectedESet;
+
+ /**
+ * The default value of the '{@link #getAverageSpeedAbsolute() <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer AVERAGE_SPEED_ABSOLUTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAverageSpeedAbsolute() <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected Integer averageSpeedAbsolute = AVERAGE_SPEED_ABSOLUTE_EDEFAULT;
+
+ /**
+ * This is true if the Average Speed Absolute attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean averageSpeedAbsoluteESet;
+
+ /**
+ * The default value of the '{@link #getDelay() <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelay()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer DELAY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDelay() <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelay()
+ * @generated
+ * @ordered
+ */
+ protected Integer delay = DELAY_EDEFAULT;
+
+ /**
+ * This is true if the Delay attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean delayESet;
+
+ /**
+ * The default value of the '{@link #getSegmentSpeedLimit() <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer SEGMENT_SPEED_LIMIT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSegmentSpeedLimit() <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected Integer segmentSpeedLimit = SEGMENT_SPEED_LIMIT_EDEFAULT;
+
+ /**
+ * This is true if the Segment Speed Limit attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean segmentSpeedLimitESet;
+
+ /**
+ * The cached value of the '{@link #getCauses() <em>Causes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauses()
+ * @generated
+ * @ordered
+ */
+ protected EList<Cause> causes;
+
+ /**
+ * The cached value of the '{@link #getAdvices() <em>Advices</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAdvices()
+ * @generated
+ * @ordered
+ */
+ protected EList<Advice> advices;
+
+ /**
+ * The cached value of the '{@link #getApplicability() <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicability()
+ * @generated
+ * @ordered
+ */
+ protected EList<Applicability> applicability;
+
+ /**
+ * The default value of the '{@link #getTrafficIncidentId() <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected static final String TRAFFIC_INCIDENT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTrafficIncidentId() <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected String trafficIncidentId = TRAFFIC_INCIDENT_ID_EDEFAULT;
+
+ /**
+ * This is true if the Traffic Incident Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean trafficIncidentIdESet;
+
+ /**
+ * The default value of the '{@link #getExpectedSpeedAbsolute() <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer EXPECTED_SPEED_ABSOLUTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExpectedSpeedAbsolute() <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected Integer expectedSpeedAbsolute = EXPECTED_SPEED_ABSOLUTE_EDEFAULT;
+
+ /**
+ * This is true if the Expected Speed Absolute attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expectedSpeedAbsoluteESet;
+
+ /**
+ * The default value of the '{@link #getExpirationTime() <em>Expiration Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpirationTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date EXPIRATION_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExpirationTime() <em>Expiration Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpirationTime()
+ * @generated
+ * @ordered
+ */
+ protected Date expirationTime = EXPIRATION_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Expiration Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expirationTimeESet;
+
+ /**
+ * The default value of the '{@link #getUpdateTime() <em>Update Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpdateTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date UPDATE_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUpdateTime() <em>Update Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpdateTime()
+ * @generated
+ * @ordered
+ */
+ protected Date updateTime = UPDATE_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Update Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean updateTimeESet;
+
+ /**
+ * The cached value of the '{@link #getLocationReference() <em>Location Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationReference()
+ * @generated
+ * @ordered
+ */
+ protected LocationReference locationReference;
+
+ /**
+ * This is true if the Location Reference containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean locationReferenceESet;
+
+ /**
+ * The cached value of the '{@link #getTemporarySpeedLimit() <em>Temporary Speed Limit</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected EList<TemporarySpeedLimit> temporarySpeedLimit;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TrafficIncidentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.TRAFFIC_INCIDENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EffectCode getEffectCode() {
+ return effectCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEffectCode(EffectCode newEffectCode) {
+ EffectCode oldEffectCode = effectCode;
+ effectCode = newEffectCode == null ? EFFECT_CODE_EDEFAULT : newEffectCode;
+ boolean oldEffectCodeESet = effectCodeESet;
+ effectCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE, oldEffectCode, effectCode, !oldEffectCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetEffectCode() {
+ EffectCode oldEffectCode = effectCode;
+ boolean oldEffectCodeESet = effectCodeESet;
+ effectCode = EFFECT_CODE_EDEFAULT;
+ effectCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE, oldEffectCode, EFFECT_CODE_EDEFAULT, oldEffectCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEffectCode() {
+ return effectCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStartTime(Date newStartTime) {
+ Date oldStartTime = startTime;
+ startTime = newStartTime;
+ boolean oldStartTimeESet = startTimeESet;
+ startTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__START_TIME, oldStartTime, startTime, !oldStartTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStartTime() {
+ Date oldStartTime = startTime;
+ boolean oldStartTimeESet = startTimeESet;
+ startTime = START_TIME_EDEFAULT;
+ startTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__START_TIME, oldStartTime, START_TIME_EDEFAULT, oldStartTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStartTime() {
+ return startTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStopTime() {
+ return stopTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStopTime(Date newStopTime) {
+ Date oldStopTime = stopTime;
+ stopTime = newStopTime;
+ boolean oldStopTimeESet = stopTimeESet;
+ stopTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__STOP_TIME, oldStopTime, stopTime, !oldStopTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStopTime() {
+ Date oldStopTime = stopTime;
+ boolean oldStopTimeESet = stopTimeESet;
+ stopTime = STOP_TIME_EDEFAULT;
+ stopTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__STOP_TIME, oldStopTime, STOP_TIME_EDEFAULT, oldStopTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStopTime() {
+ return stopTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tendency getTendency() {
+ return tendency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTendency(Tendency newTendency) {
+ Tendency oldTendency = tendency;
+ tendency = newTendency == null ? TENDENCY_EDEFAULT : newTendency;
+ boolean oldTendencyESet = tendencyESet;
+ tendencyESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__TENDENCY, oldTendency, tendency, !oldTendencyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTendency() {
+ Tendency oldTendency = tendency;
+ boolean oldTendencyESet = tendencyESet;
+ tendency = TENDENCY_EDEFAULT;
+ tendencyESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__TENDENCY, oldTendency, TENDENCY_EDEFAULT, oldTendencyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTendency() {
+ return tendencyESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLengthAffected() {
+ return lengthAffected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthAffected(Integer newLengthAffected) {
+ Integer oldLengthAffected = lengthAffected;
+ lengthAffected = newLengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffectedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED, oldLengthAffected, lengthAffected, !oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLengthAffected() {
+ Integer oldLengthAffected = lengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+ lengthAffectedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED, oldLengthAffected, LENGTH_AFFECTED_EDEFAULT, oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLengthAffected() {
+ return lengthAffectedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getAverageSpeedAbsolute() {
+ return averageSpeedAbsolute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAverageSpeedAbsolute(Integer newAverageSpeedAbsolute) {
+ Integer oldAverageSpeedAbsolute = averageSpeedAbsolute;
+ averageSpeedAbsolute = newAverageSpeedAbsolute;
+ boolean oldAverageSpeedAbsoluteESet = averageSpeedAbsoluteESet;
+ averageSpeedAbsoluteESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE, oldAverageSpeedAbsolute, averageSpeedAbsolute, !oldAverageSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAverageSpeedAbsolute() {
+ Integer oldAverageSpeedAbsolute = averageSpeedAbsolute;
+ boolean oldAverageSpeedAbsoluteESet = averageSpeedAbsoluteESet;
+ averageSpeedAbsolute = AVERAGE_SPEED_ABSOLUTE_EDEFAULT;
+ averageSpeedAbsoluteESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE, oldAverageSpeedAbsolute, AVERAGE_SPEED_ABSOLUTE_EDEFAULT, oldAverageSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAverageSpeedAbsolute() {
+ return averageSpeedAbsoluteESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getDelay() {
+ return delay;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDelay(Integer newDelay) {
+ Integer oldDelay = delay;
+ delay = newDelay;
+ boolean oldDelayESet = delayESet;
+ delayESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__DELAY, oldDelay, delay, !oldDelayESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDelay() {
+ Integer oldDelay = delay;
+ boolean oldDelayESet = delayESet;
+ delay = DELAY_EDEFAULT;
+ delayESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__DELAY, oldDelay, DELAY_EDEFAULT, oldDelayESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDelay() {
+ return delayESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getSegmentSpeedLimit() {
+ return segmentSpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSegmentSpeedLimit(Integer newSegmentSpeedLimit) {
+ Integer oldSegmentSpeedLimit = segmentSpeedLimit;
+ segmentSpeedLimit = newSegmentSpeedLimit;
+ boolean oldSegmentSpeedLimitESet = segmentSpeedLimitESet;
+ segmentSpeedLimitESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT, oldSegmentSpeedLimit, segmentSpeedLimit, !oldSegmentSpeedLimitESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSegmentSpeedLimit() {
+ Integer oldSegmentSpeedLimit = segmentSpeedLimit;
+ boolean oldSegmentSpeedLimitESet = segmentSpeedLimitESet;
+ segmentSpeedLimit = SEGMENT_SPEED_LIMIT_EDEFAULT;
+ segmentSpeedLimitESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT, oldSegmentSpeedLimit, SEGMENT_SPEED_LIMIT_EDEFAULT, oldSegmentSpeedLimitESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSegmentSpeedLimit() {
+ return segmentSpeedLimitESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Cause> getCauses() {
+ if (causes == null) {
+ causes = new EObjectContainmentEList.Unsettable<Cause>(Cause.class, this, XTrafficIncidentPackage.TRAFFIC_INCIDENT__CAUSES);
+ }
+ return causes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauses() {
+ if (causes != null) ((InternalEList.Unsettable<?>)causes).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauses() {
+ return causes != null && ((InternalEList.Unsettable<?>)causes).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Advice> getAdvices() {
+ if (advices == null) {
+ advices = new EObjectContainmentEList.Unsettable<Advice>(Advice.class, this, XTrafficIncidentPackage.TRAFFIC_INCIDENT__ADVICES);
+ }
+ return advices;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAdvices() {
+ if (advices != null) ((InternalEList.Unsettable<?>)advices).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAdvices() {
+ return advices != null && ((InternalEList.Unsettable<?>)advices).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Applicability> getApplicability() {
+ if (applicability == null) {
+ applicability = new EObjectContainmentEList.Unsettable<Applicability>(Applicability.class, this, XTrafficIncidentPackage.TRAFFIC_INCIDENT__APPLICABILITY);
+ }
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetApplicability() {
+ if (applicability != null) ((InternalEList.Unsettable<?>)applicability).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetApplicability() {
+ return applicability != null && ((InternalEList.Unsettable<?>)applicability).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTrafficIncidentId() {
+ return trafficIncidentId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTrafficIncidentId(String newTrafficIncidentId) {
+ String oldTrafficIncidentId = trafficIncidentId;
+ trafficIncidentId = newTrafficIncidentId;
+ boolean oldTrafficIncidentIdESet = trafficIncidentIdESet;
+ trafficIncidentIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID, oldTrafficIncidentId, trafficIncidentId, !oldTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTrafficIncidentId() {
+ String oldTrafficIncidentId = trafficIncidentId;
+ boolean oldTrafficIncidentIdESet = trafficIncidentIdESet;
+ trafficIncidentId = TRAFFIC_INCIDENT_ID_EDEFAULT;
+ trafficIncidentIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID, oldTrafficIncidentId, TRAFFIC_INCIDENT_ID_EDEFAULT, oldTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTrafficIncidentId() {
+ return trafficIncidentIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getExpectedSpeedAbsolute() {
+ return expectedSpeedAbsolute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpectedSpeedAbsolute(Integer newExpectedSpeedAbsolute) {
+ Integer oldExpectedSpeedAbsolute = expectedSpeedAbsolute;
+ expectedSpeedAbsolute = newExpectedSpeedAbsolute;
+ boolean oldExpectedSpeedAbsoluteESet = expectedSpeedAbsoluteESet;
+ expectedSpeedAbsoluteESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE, oldExpectedSpeedAbsolute, expectedSpeedAbsolute, !oldExpectedSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpectedSpeedAbsolute() {
+ Integer oldExpectedSpeedAbsolute = expectedSpeedAbsolute;
+ boolean oldExpectedSpeedAbsoluteESet = expectedSpeedAbsoluteESet;
+ expectedSpeedAbsolute = EXPECTED_SPEED_ABSOLUTE_EDEFAULT;
+ expectedSpeedAbsoluteESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE, oldExpectedSpeedAbsolute, EXPECTED_SPEED_ABSOLUTE_EDEFAULT, oldExpectedSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpectedSpeedAbsolute() {
+ return expectedSpeedAbsoluteESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getExpirationTime() {
+ return expirationTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpirationTime(Date newExpirationTime) {
+ Date oldExpirationTime = expirationTime;
+ expirationTime = newExpirationTime;
+ boolean oldExpirationTimeESet = expirationTimeESet;
+ expirationTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPIRATION_TIME, oldExpirationTime, expirationTime, !oldExpirationTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpirationTime() {
+ Date oldExpirationTime = expirationTime;
+ boolean oldExpirationTimeESet = expirationTimeESet;
+ expirationTime = EXPIRATION_TIME_EDEFAULT;
+ expirationTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPIRATION_TIME, oldExpirationTime, EXPIRATION_TIME_EDEFAULT, oldExpirationTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpirationTime() {
+ return expirationTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUpdateTime(Date newUpdateTime) {
+ Date oldUpdateTime = updateTime;
+ updateTime = newUpdateTime;
+ boolean oldUpdateTimeESet = updateTimeESet;
+ updateTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__UPDATE_TIME, oldUpdateTime, updateTime, !oldUpdateTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetUpdateTime() {
+ Date oldUpdateTime = updateTime;
+ boolean oldUpdateTimeESet = updateTimeESet;
+ updateTime = UPDATE_TIME_EDEFAULT;
+ updateTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__UPDATE_TIME, oldUpdateTime, UPDATE_TIME_EDEFAULT, oldUpdateTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetUpdateTime() {
+ return updateTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReference getLocationReference() {
+ return locationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLocationReference(LocationReference newLocationReference, NotificationChain msgs) {
+ LocationReference oldLocationReference = locationReference;
+ locationReference = newLocationReference;
+ boolean oldLocationReferenceESet = locationReferenceESet;
+ locationReferenceESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, oldLocationReference, newLocationReference, !oldLocationReferenceESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocationReference(LocationReference newLocationReference) {
+ if (newLocationReference != locationReference) {
+ NotificationChain msgs = null;
+ if (locationReference != null)
+ msgs = ((InternalEObject)locationReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, null, msgs);
+ if (newLocationReference != null)
+ msgs = ((InternalEObject)newLocationReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, null, msgs);
+ msgs = basicSetLocationReference(newLocationReference, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLocationReferenceESet = locationReferenceESet;
+ locationReferenceESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, newLocationReference, newLocationReference, !oldLocationReferenceESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetLocationReference(NotificationChain msgs) {
+ LocationReference oldLocationReference = locationReference;
+ locationReference = null;
+ boolean oldLocationReferenceESet = locationReferenceESet;
+ locationReferenceESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, oldLocationReference, null, oldLocationReferenceESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLocationReference() {
+ if (locationReference != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)locationReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, null, msgs);
+ msgs = basicUnsetLocationReference(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLocationReferenceESet = locationReferenceESet;
+ locationReferenceESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE, null, null, oldLocationReferenceESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLocationReference() {
+ return locationReferenceESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TemporarySpeedLimit> getTemporarySpeedLimit() {
+ if (temporarySpeedLimit == null) {
+ temporarySpeedLimit = new EObjectContainmentEList<TemporarySpeedLimit>(TemporarySpeedLimit.class, this, XTrafficIncidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT);
+ }
+ return temporarySpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ return ((InternalEList<?>)getCauses()).basicRemove(otherEnd, msgs);
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ return ((InternalEList<?>)getAdvices()).basicRemove(otherEnd, msgs);
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ return ((InternalEList<?>)getApplicability()).basicRemove(otherEnd, msgs);
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE:
+ return basicUnsetLocationReference(msgs);
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ return ((InternalEList<?>)getTemporarySpeedLimit()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ return getEffectCode();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ return getStartTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ return getStopTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ return getTendency();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ return getLengthAffected();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ return getAverageSpeedAbsolute();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__DELAY:
+ return getDelay();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ return getSegmentSpeedLimit();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ return getCauses();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ return getAdvices();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ return getApplicability();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ return getTrafficIncidentId();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ return getExpectedSpeedAbsolute();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPIRATION_TIME:
+ return getExpirationTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__UPDATE_TIME:
+ return getUpdateTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE:
+ return getLocationReference();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ return getTemporarySpeedLimit();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ setEffectCode((EffectCode)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ setStartTime((Date)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ setStopTime((Date)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ setTendency((Tendency)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ setLengthAffected((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ setAverageSpeedAbsolute((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__DELAY:
+ setDelay((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ setSegmentSpeedLimit((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ getCauses().clear();
+ getCauses().addAll((Collection<? extends Cause>)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ getAdvices().clear();
+ getAdvices().addAll((Collection<? extends Advice>)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ getApplicability().clear();
+ getApplicability().addAll((Collection<? extends Applicability>)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ setTrafficIncidentId((String)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ setExpectedSpeedAbsolute((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPIRATION_TIME:
+ setExpirationTime((Date)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__UPDATE_TIME:
+ setUpdateTime((Date)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE:
+ setLocationReference((LocationReference)newValue);
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ getTemporarySpeedLimit().clear();
+ getTemporarySpeedLimit().addAll((Collection<? extends TemporarySpeedLimit>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ unsetEffectCode();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ unsetStartTime();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ unsetStopTime();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ unsetTendency();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ unsetLengthAffected();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ unsetAverageSpeedAbsolute();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__DELAY:
+ unsetDelay();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ unsetSegmentSpeedLimit();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ unsetCauses();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ unsetAdvices();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ unsetApplicability();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ unsetTrafficIncidentId();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ unsetExpectedSpeedAbsolute();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPIRATION_TIME:
+ unsetExpirationTime();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__UPDATE_TIME:
+ unsetUpdateTime();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE:
+ unsetLocationReference();
+ return;
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ getTemporarySpeedLimit().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ return isSetEffectCode();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ return isSetStartTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ return isSetStopTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ return isSetTendency();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ return isSetLengthAffected();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ return isSetAverageSpeedAbsolute();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__DELAY:
+ return isSetDelay();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ return isSetSegmentSpeedLimit();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ return isSetCauses();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ return isSetAdvices();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ return isSetApplicability();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ return isSetTrafficIncidentId();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ return isSetExpectedSpeedAbsolute();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__EXPIRATION_TIME:
+ return isSetExpirationTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__UPDATE_TIME:
+ return isSetUpdateTime();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__LOCATION_REFERENCE:
+ return isSetLocationReference();
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ return temporarySpeedLimit != null && !temporarySpeedLimit.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (effectCode: ");
+ if (effectCodeESet) result.append(effectCode); else result.append("<unset>");
+ result.append(", startTime: ");
+ if (startTimeESet) result.append(startTime); else result.append("<unset>");
+ result.append(", stopTime: ");
+ if (stopTimeESet) result.append(stopTime); else result.append("<unset>");
+ result.append(", tendency: ");
+ if (tendencyESet) result.append(tendency); else result.append("<unset>");
+ result.append(", lengthAffected: ");
+ if (lengthAffectedESet) result.append(lengthAffected); else result.append("<unset>");
+ result.append(", averageSpeedAbsolute: ");
+ if (averageSpeedAbsoluteESet) result.append(averageSpeedAbsolute); else result.append("<unset>");
+ result.append(", delay: ");
+ if (delayESet) result.append(delay); else result.append("<unset>");
+ result.append(", segmentSpeedLimit: ");
+ if (segmentSpeedLimitESet) result.append(segmentSpeedLimit); else result.append("<unset>");
+ result.append(", trafficIncidentId: ");
+ if (trafficIncidentIdESet) result.append(trafficIncidentId); else result.append("<unset>");
+ result.append(", expectedSpeedAbsolute: ");
+ if (expectedSpeedAbsoluteESet) result.append(expectedSpeedAbsolute); else result.append("<unset>");
+ result.append(", expirationTime: ");
+ if (expirationTimeESet) result.append(expirationTime); else result.append("<unset>");
+ result.append(", updateTime: ");
+ if (updateTimeESet) result.append(updateTime); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TrafficIncidentImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/VehicleRelatedRestrictionImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/VehicleRelatedRestrictionImpl.java
new file mode 100755
index 0000000..d6500de
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/VehicleRelatedRestrictionImpl.java
@@ -0,0 +1,435 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.locref.LocationReference;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vehicle Related Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl#getRestrictionType <em>Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl#getRestrictionValue <em>Restriction Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl.VehicleRelatedRestrictionImpl#getRestrictionLocationReference <em>Restriction Location Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VehicleRelatedRestrictionImpl extends EObjectImpl implements VehicleRelatedRestriction {
+ /**
+ * The default value of the '{@link #getRestrictionType() <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected static final RestrictionType RESTRICTION_TYPE_EDEFAULT = RestrictionType.WIDTH_LESS_THAN;
+
+ /**
+ * The cached value of the '{@link #getRestrictionType() <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected RestrictionType restrictionType = RESTRICTION_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Restriction Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionTypeESet;
+
+ /**
+ * The default value of the '{@link #getRestrictionValue() <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer RESTRICTION_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRestrictionValue() <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionValue()
+ * @generated
+ * @ordered
+ */
+ protected Integer restrictionValue = RESTRICTION_VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Restriction Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionValueESet;
+
+ /**
+ * The cached value of the '{@link #getRestrictionLocationReference() <em>Restriction Location Reference</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionLocationReference()
+ * @generated
+ * @ordered
+ */
+ protected LocationReference restrictionLocationReference;
+
+ /**
+ * This is true if the Restriction Location Reference containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionLocationReferenceESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VehicleRelatedRestrictionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return XTrafficIncidentPackage.Literals.VEHICLE_RELATED_RESTRICTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RestrictionType getRestrictionType() {
+ return restrictionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionType(RestrictionType newRestrictionType) {
+ RestrictionType oldRestrictionType = restrictionType;
+ restrictionType = newRestrictionType == null ? RESTRICTION_TYPE_EDEFAULT : newRestrictionType;
+ boolean oldRestrictionTypeESet = restrictionTypeESet;
+ restrictionTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE, oldRestrictionType, restrictionType, !oldRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionType() {
+ RestrictionType oldRestrictionType = restrictionType;
+ boolean oldRestrictionTypeESet = restrictionTypeESet;
+ restrictionType = RESTRICTION_TYPE_EDEFAULT;
+ restrictionTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE, oldRestrictionType, RESTRICTION_TYPE_EDEFAULT, oldRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionType() {
+ return restrictionTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getRestrictionValue() {
+ return restrictionValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionValue(Integer newRestrictionValue) {
+ Integer oldRestrictionValue = restrictionValue;
+ restrictionValue = newRestrictionValue;
+ boolean oldRestrictionValueESet = restrictionValueESet;
+ restrictionValueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE, oldRestrictionValue, restrictionValue, !oldRestrictionValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionValue() {
+ Integer oldRestrictionValue = restrictionValue;
+ boolean oldRestrictionValueESet = restrictionValueESet;
+ restrictionValue = RESTRICTION_VALUE_EDEFAULT;
+ restrictionValueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE, oldRestrictionValue, RESTRICTION_VALUE_EDEFAULT, oldRestrictionValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionValue() {
+ return restrictionValueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReference getRestrictionLocationReference() {
+ return restrictionLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRestrictionLocationReference(LocationReference newRestrictionLocationReference, NotificationChain msgs) {
+ LocationReference oldRestrictionLocationReference = restrictionLocationReference;
+ restrictionLocationReference = newRestrictionLocationReference;
+ boolean oldRestrictionLocationReferenceESet = restrictionLocationReferenceESet;
+ restrictionLocationReferenceESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, oldRestrictionLocationReference, newRestrictionLocationReference, !oldRestrictionLocationReferenceESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionLocationReference(LocationReference newRestrictionLocationReference) {
+ if (newRestrictionLocationReference != restrictionLocationReference) {
+ NotificationChain msgs = null;
+ if (restrictionLocationReference != null)
+ msgs = ((InternalEObject)restrictionLocationReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, null, msgs);
+ if (newRestrictionLocationReference != null)
+ msgs = ((InternalEObject)newRestrictionLocationReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, null, msgs);
+ msgs = basicSetRestrictionLocationReference(newRestrictionLocationReference, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldRestrictionLocationReferenceESet = restrictionLocationReferenceESet;
+ restrictionLocationReferenceESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, newRestrictionLocationReference, newRestrictionLocationReference, !oldRestrictionLocationReferenceESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetRestrictionLocationReference(NotificationChain msgs) {
+ LocationReference oldRestrictionLocationReference = restrictionLocationReference;
+ restrictionLocationReference = null;
+ boolean oldRestrictionLocationReferenceESet = restrictionLocationReferenceESet;
+ restrictionLocationReferenceESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, oldRestrictionLocationReference, null, oldRestrictionLocationReferenceESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionLocationReference() {
+ if (restrictionLocationReference != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)restrictionLocationReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, null, msgs);
+ msgs = basicUnsetRestrictionLocationReference(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldRestrictionLocationReferenceESet = restrictionLocationReferenceESet;
+ restrictionLocationReferenceESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE, null, null, oldRestrictionLocationReferenceESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionLocationReference() {
+ return restrictionLocationReferenceESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE:
+ return basicUnsetRestrictionLocationReference(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ return getRestrictionType();
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ return getRestrictionValue();
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE:
+ return getRestrictionLocationReference();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ setRestrictionType((RestrictionType)newValue);
+ return;
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ setRestrictionValue((Integer)newValue);
+ return;
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE:
+ setRestrictionLocationReference((LocationReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ unsetRestrictionType();
+ return;
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ unsetRestrictionValue();
+ return;
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE:
+ unsetRestrictionLocationReference();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ return isSetRestrictionType();
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ return isSetRestrictionValue();
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE:
+ return isSetRestrictionLocationReference();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (restrictionType: ");
+ if (restrictionTypeESet) result.append(restrictionType); else result.append("<unset>");
+ result.append(", restrictionValue: ");
+ if (restrictionValueESet) result.append(restrictionValue); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //VehicleRelatedRestrictionImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentFactoryImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentFactoryImpl.java
new file mode 100755
index 0000000..de95e95
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentFactoryImpl.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class XTrafficIncidentFactoryImpl extends EFactoryImpl implements XTrafficIncidentFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static XTrafficIncidentFactory init() {
+ try {
+ XTrafficIncidentFactory theXTrafficIncidentFactory = (XTrafficIncidentFactory)EPackage.Registry.INSTANCE.getEFactory(XTrafficIncidentPackage.eNS_URI);
+ if (theXTrafficIncidentFactory != null) {
+ return theXTrafficIncidentFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new XTrafficIncidentFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XTrafficIncidentFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT: return createTrafficIncident();
+ case XTrafficIncidentPackage.CAUSE: return createCause();
+ case XTrafficIncidentPackage.LINKED_CAUSE: return createLinkedCause();
+ case XTrafficIncidentPackage.DIRECT_CAUSE: return createDirectCause();
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS: return createLaneRestrictions();
+ case XTrafficIncidentPackage.ADVICE: return createAdvice();
+ case XTrafficIncidentPackage.APPLICABILITY: return createApplicability();
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION: return createVehicleRelatedRestriction();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION: return createTemporarySpeedLimitSection();
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT: return createTemporarySpeedLimit();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncident createTrafficIncident() {
+ TrafficIncidentImpl trafficIncident = new TrafficIncidentImpl();
+ return trafficIncident;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cause createCause() {
+ CauseImpl cause = new CauseImpl();
+ return cause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkedCause createLinkedCause() {
+ LinkedCauseImpl linkedCause = new LinkedCauseImpl();
+ return linkedCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DirectCause createDirectCause() {
+ DirectCauseImpl directCause = new DirectCauseImpl();
+ return directCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictions createLaneRestrictions() {
+ LaneRestrictionsImpl laneRestrictions = new LaneRestrictionsImpl();
+ return laneRestrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Advice createAdvice() {
+ AdviceImpl advice = new AdviceImpl();
+ return advice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Applicability createApplicability() {
+ ApplicabilityImpl applicability = new ApplicabilityImpl();
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleRelatedRestriction createVehicleRelatedRestriction() {
+ VehicleRelatedRestrictionImpl vehicleRelatedRestriction = new VehicleRelatedRestrictionImpl();
+ return vehicleRelatedRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemporarySpeedLimitSection createTemporarySpeedLimitSection() {
+ TemporarySpeedLimitSectionImpl temporarySpeedLimitSection = new TemporarySpeedLimitSectionImpl();
+ return temporarySpeedLimitSection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemporarySpeedLimit createTemporarySpeedLimit() {
+ TemporarySpeedLimitImpl temporarySpeedLimit = new TemporarySpeedLimitImpl();
+ return temporarySpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XTrafficIncidentPackage getXTrafficIncidentPackage() {
+ return (XTrafficIncidentPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static XTrafficIncidentPackage getPackage() {
+ return XTrafficIncidentPackage.eINSTANCE;
+ }
+
+} //XTrafficIncidentFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentPackageImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentPackageImpl.java
new file mode 100755
index 0000000..9a3f712
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/impl/XTrafficIncidentPackageImpl.java
@@ -0,0 +1,882 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.common.CommonPackage;
+
+import org.genivi.locref.locrefPackage;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class XTrafficIncidentPackageImpl extends EPackageImpl implements XTrafficIncidentPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass trafficIncidentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass causeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkedCauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass directCauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass laneRestrictionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adviceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass applicabilityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vehicleRelatedRestrictionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass temporarySpeedLimitSectionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass temporarySpeedLimitEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private XTrafficIncidentPackageImpl() {
+ super(eNS_URI, XTrafficIncidentFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link XTrafficIncidentPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static XTrafficIncidentPackage init() {
+ if (isInited) return (XTrafficIncidentPackage)EPackage.Registry.INSTANCE.getEPackage(XTrafficIncidentPackage.eNS_URI);
+
+ // Obtain or create and register package
+ XTrafficIncidentPackageImpl theXTrafficIncidentPackage = (XTrafficIncidentPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof XTrafficIncidentPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new XTrafficIncidentPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ locrefPackage.eINSTANCE.eClass();
+ trafficincidenttablesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theXTrafficIncidentPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theXTrafficIncidentPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theXTrafficIncidentPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(XTrafficIncidentPackage.eNS_URI, theXTrafficIncidentPackage);
+ return theXTrafficIncidentPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrafficIncident() {
+ return trafficIncidentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_EffectCode() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_StartTime() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_StopTime() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_Tendency() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_LengthAffected() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_AverageSpeedAbsolute() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_Delay() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_SegmentSpeedLimit() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Causes() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Advices() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Applicability() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_TrafficIncidentId() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_ExpectedSpeedAbsolute() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_ExpirationTime() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_UpdateTime() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_LocationReference() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(15);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_TemporarySpeedLimit() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(16);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCause() {
+ return causeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCause_MainCause() {
+ return (EAttribute)causeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkedCause() {
+ return linkedCauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkedCause_CauseTrafficIncidentId() {
+ return (EAttribute)linkedCauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDirectCause() {
+ return directCauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_WarningLevel() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_UnverifiedInformation() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_SubCause() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_LengthAffected() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDirectCause_LaneRestrictions() {
+ return (EReference)directCauseEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDirectCause_FreeText() {
+ return (EReference)directCauseEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_CauseOffset() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLaneRestrictions() {
+ return laneRestrictionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaneRestrictions_LaneRestrictionType() {
+ return (EAttribute)laneRestrictionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaneRestrictions_NumberOfLanes() {
+ return (EAttribute)laneRestrictionsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAdvice() {
+ return adviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_MainAdvice() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_SubAdvice() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAdvice_FreeText() {
+ return (EReference)adviceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAdvice_Applicability() {
+ return (EReference)adviceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getApplicability() {
+ return applicabilityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getApplicability_VehicleType() {
+ return (EAttribute)applicabilityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getApplicability_VehicleRelatedRestrictions() {
+ return (EReference)applicabilityEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVehicleRelatedRestriction() {
+ return vehicleRelatedRestrictionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRelatedRestriction_RestrictionType() {
+ return (EAttribute)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRelatedRestriction_RestrictionValue() {
+ return (EAttribute)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVehicleRelatedRestriction_RestrictionLocationReference() {
+ return (EReference)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemporarySpeedLimitSection() {
+ return temporarySpeedLimitSectionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitValue() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitValueWet() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitLength() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemporarySpeedLimit() {
+ return temporarySpeedLimitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemporarySpeedLimit_TemporarySpeedLimitSections() {
+ return (EReference)temporarySpeedLimitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimit_UnitsMPH() {
+ return (EAttribute)temporarySpeedLimitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimit_Offset() {
+ return (EAttribute)temporarySpeedLimitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemporarySpeedLimit_Applicability() {
+ return (EReference)temporarySpeedLimitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XTrafficIncidentFactory getXTrafficIncidentFactory() {
+ return (XTrafficIncidentFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ trafficIncidentEClass = createEClass(TRAFFIC_INCIDENT);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__EFFECT_CODE);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__START_TIME);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__STOP_TIME);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__TENDENCY);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__LENGTH_AFFECTED);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__DELAY);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__CAUSES);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__ADVICES);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__APPLICABILITY);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__EXPIRATION_TIME);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__UPDATE_TIME);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__LOCATION_REFERENCE);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT);
+
+ causeEClass = createEClass(CAUSE);
+ createEAttribute(causeEClass, CAUSE__MAIN_CAUSE);
+
+ linkedCauseEClass = createEClass(LINKED_CAUSE);
+ createEAttribute(linkedCauseEClass, LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID);
+
+ directCauseEClass = createEClass(DIRECT_CAUSE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__WARNING_LEVEL);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__UNVERIFIED_INFORMATION);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__SUB_CAUSE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__LENGTH_AFFECTED);
+ createEReference(directCauseEClass, DIRECT_CAUSE__LANE_RESTRICTIONS);
+ createEReference(directCauseEClass, DIRECT_CAUSE__FREE_TEXT);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__CAUSE_OFFSET);
+
+ laneRestrictionsEClass = createEClass(LANE_RESTRICTIONS);
+ createEAttribute(laneRestrictionsEClass, LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE);
+ createEAttribute(laneRestrictionsEClass, LANE_RESTRICTIONS__NUMBER_OF_LANES);
+
+ adviceEClass = createEClass(ADVICE);
+ createEAttribute(adviceEClass, ADVICE__MAIN_ADVICE);
+ createEAttribute(adviceEClass, ADVICE__SUB_ADVICE);
+ createEReference(adviceEClass, ADVICE__FREE_TEXT);
+ createEReference(adviceEClass, ADVICE__APPLICABILITY);
+
+ applicabilityEClass = createEClass(APPLICABILITY);
+ createEAttribute(applicabilityEClass, APPLICABILITY__VEHICLE_TYPE);
+ createEReference(applicabilityEClass, APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS);
+
+ vehicleRelatedRestrictionEClass = createEClass(VEHICLE_RELATED_RESTRICTION);
+ createEAttribute(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE);
+ createEAttribute(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE);
+ createEReference(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION_REFERENCE);
+
+ temporarySpeedLimitSectionEClass = createEClass(TEMPORARY_SPEED_LIMIT_SECTION);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH);
+
+ temporarySpeedLimitEClass = createEClass(TEMPORARY_SPEED_LIMIT);
+ createEReference(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS);
+ createEAttribute(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__UNITS_MPH);
+ createEAttribute(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__OFFSET);
+ createEReference(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__APPLICABILITY);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ trafficincidenttablesPackage thetrafficincidenttablesPackage = (trafficincidenttablesPackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidenttablesPackage.eNS_URI);
+ locrefPackage thelocrefPackage = (locrefPackage)EPackage.Registry.INSTANCE.getEPackage(locrefPackage.eNS_URI);
+ CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ linkedCauseEClass.getESuperTypes().add(this.getCause());
+ directCauseEClass.getESuperTypes().add(this.getCause());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(trafficIncidentEClass, TrafficIncident.class, "TrafficIncident", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTrafficIncident_EffectCode(), thetrafficincidenttablesPackage.getEffectCode(), "effectCode", null, 1, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_StartTime(), ecorePackage.getEDate(), "startTime", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_StopTime(), ecorePackage.getEDate(), "stopTime", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_Tendency(), thetrafficincidenttablesPackage.getTendency(), "tendency", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_LengthAffected(), ecorePackage.getEIntegerObject(), "lengthAffected", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_AverageSpeedAbsolute(), ecorePackage.getEIntegerObject(), "averageSpeedAbsolute", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_Delay(), ecorePackage.getEIntegerObject(), "delay", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_SegmentSpeedLimit(), ecorePackage.getEIntegerObject(), "segmentSpeedLimit", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Causes(), this.getCause(), null, "causes", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Advices(), this.getAdvice(), null, "advices", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Applicability(), this.getApplicability(), null, "applicability", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_TrafficIncidentId(), ecorePackage.getEString(), "trafficIncidentId", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_ExpectedSpeedAbsolute(), ecorePackage.getEIntegerObject(), "expectedSpeedAbsolute", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_ExpirationTime(), ecorePackage.getEDate(), "expirationTime", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_UpdateTime(), ecorePackage.getEDate(), "updateTime", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_LocationReference(), thelocrefPackage.getLocationReference(), null, "locationReference", null, 1, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_TemporarySpeedLimit(), this.getTemporarySpeedLimit(), null, "temporarySpeedLimit", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(causeEClass, Cause.class, "Cause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCause_MainCause(), thetrafficincidenttablesPackage.getCauseCode(), "mainCause", null, 0, 1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkedCauseEClass, LinkedCause.class, "LinkedCause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinkedCause_CauseTrafficIncidentId(), ecorePackage.getEString(), "causeTrafficIncidentId", null, 0, 1, LinkedCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(directCauseEClass, DirectCause.class, "DirectCause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDirectCause_WarningLevel(), thetrafficincidenttablesPackage.getWarningLevel(), "warningLevel", null, 1, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_UnverifiedInformation(), ecorePackage.getEBoolean(), "unverifiedInformation", null, 1, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_SubCause(), ecorePackage.getEJavaObject(), "subCause", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_LengthAffected(), ecorePackage.getEIntegerObject(), "lengthAffected", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDirectCause_LaneRestrictions(), this.getLaneRestrictions(), null, "laneRestrictions", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDirectCause_FreeText(), theCommonPackage.getLocalizedString(), null, "freeText", null, 0, -1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_CauseOffset(), ecorePackage.getEIntegerObject(), "causeOffset", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(laneRestrictionsEClass, LaneRestrictions.class, "LaneRestrictions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLaneRestrictions_LaneRestrictionType(), thetrafficincidenttablesPackage.getLaneRestrictionType(), "laneRestrictionType", null, 0, 1, LaneRestrictions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLaneRestrictions_NumberOfLanes(), ecorePackage.getEIntegerObject(), "numberOfLanes", null, 0, 1, LaneRestrictions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(adviceEClass, Advice.class, "Advice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAdvice_MainAdvice(), thetrafficincidenttablesPackage.getAdviceCode(), "mainAdvice", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdvice_SubAdvice(), ecorePackage.getEJavaObject(), "subAdvice", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAdvice_FreeText(), theCommonPackage.getLocalizedString(), null, "freeText", null, 0, -1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAdvice_Applicability(), this.getApplicability(), null, "applicability", null, 0, -1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(applicabilityEClass, Applicability.class, "Applicability", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getApplicability_VehicleType(), thetrafficincidenttablesPackage.getVehicleType(), "vehicleType", null, 0, 1, Applicability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getApplicability_VehicleRelatedRestrictions(), this.getVehicleRelatedRestriction(), null, "vehicleRelatedRestrictions", null, 0, -1, Applicability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(vehicleRelatedRestrictionEClass, VehicleRelatedRestriction.class, "VehicleRelatedRestriction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVehicleRelatedRestriction_RestrictionType(), thetrafficincidenttablesPackage.getRestrictionType(), "restrictionType", null, 1, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVehicleRelatedRestriction_RestrictionValue(), ecorePackage.getEIntegerObject(), "restrictionValue", null, 0, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVehicleRelatedRestriction_RestrictionLocationReference(), thelocrefPackage.getLocationReference(), null, "restrictionLocationReference", null, 0, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(temporarySpeedLimitSectionEClass, TemporarySpeedLimitSection.class, "TemporarySpeedLimitSection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitValue(), ecorePackage.getEShort(), "speedLimitValue", null, 1, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitValueWet(), ecorePackage.getEShort(), "speedLimitValueWet", null, 0, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitLength(), ecorePackage.getEIntegerObject(), "speedLimitLength", null, 0, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(temporarySpeedLimitEClass, TemporarySpeedLimit.class, "TemporarySpeedLimit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTemporarySpeedLimit_TemporarySpeedLimitSections(), this.getTemporarySpeedLimitSection(), null, "temporarySpeedLimitSections", null, 1, -1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimit_UnitsMPH(), ecorePackage.getEBoolean(), "unitsMPH", null, 1, 1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimit_Offset(), ecorePackage.getEIntegerObject(), "offset", null, 0, 1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTemporarySpeedLimit_Applicability(), this.getApplicability(), null, "applicability", null, 0, -1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //XTrafficIncidentPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentAdapterFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentAdapterFactory.java
new file mode 100755
index 0000000..a0f4b15
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentAdapterFactory.java
@@ -0,0 +1,287 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage
+ * @generated
+ */
+public class XTrafficIncidentAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static XTrafficIncidentPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XTrafficIncidentAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = XTrafficIncidentPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected XTrafficIncidentSwitch<Adapter> modelSwitch =
+ new XTrafficIncidentSwitch<Adapter>() {
+ @Override
+ public Adapter caseTrafficIncident(TrafficIncident object) {
+ return createTrafficIncidentAdapter();
+ }
+ @Override
+ public Adapter caseCause(Cause object) {
+ return createCauseAdapter();
+ }
+ @Override
+ public Adapter caseLinkedCause(LinkedCause object) {
+ return createLinkedCauseAdapter();
+ }
+ @Override
+ public Adapter caseDirectCause(DirectCause object) {
+ return createDirectCauseAdapter();
+ }
+ @Override
+ public Adapter caseLaneRestrictions(LaneRestrictions object) {
+ return createLaneRestrictionsAdapter();
+ }
+ @Override
+ public Adapter caseAdvice(Advice object) {
+ return createAdviceAdapter();
+ }
+ @Override
+ public Adapter caseApplicability(Applicability object) {
+ return createApplicabilityAdapter();
+ }
+ @Override
+ public Adapter caseVehicleRelatedRestriction(VehicleRelatedRestriction object) {
+ return createVehicleRelatedRestrictionAdapter();
+ }
+ @Override
+ public Adapter caseTemporarySpeedLimitSection(TemporarySpeedLimitSection object) {
+ return createTemporarySpeedLimitSectionAdapter();
+ }
+ @Override
+ public Adapter caseTemporarySpeedLimit(TemporarySpeedLimit object) {
+ return createTemporarySpeedLimitAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident <em>Traffic Incident</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident
+ * @generated
+ */
+ public Adapter createTrafficIncidentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause
+ * @generated
+ */
+ public Adapter createCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause <em>Linked Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause
+ * @generated
+ */
+ public Adapter createLinkedCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause <em>Direct Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause
+ * @generated
+ */
+ public Adapter createDirectCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions <em>Lane Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions
+ * @generated
+ */
+ public Adapter createLaneRestrictionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice
+ * @generated
+ */
+ public Adapter createAdviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability
+ * @generated
+ */
+ public Adapter createApplicabilityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction <em>Vehicle Related Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction
+ * @generated
+ */
+ public Adapter createVehicleRelatedRestrictionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection <em>Temporary Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimitSection
+ * @generated
+ */
+ public Adapter createTemporarySpeedLimitSectionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TemporarySpeedLimit
+ * @generated
+ */
+ public Adapter createTemporarySpeedLimitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //XTrafficIncidentAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentSwitch.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentSwitch.java
new file mode 100755
index 0000000..1899ea2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincident/util/XTrafficIncidentSwitch.java
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage
+ * @generated
+ */
+public class XTrafficIncidentSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static XTrafficIncidentPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XTrafficIncidentSwitch() {
+ if (modelPackage == null) {
+ modelPackage = XTrafficIncidentPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case XTrafficIncidentPackage.TRAFFIC_INCIDENT: {
+ TrafficIncident trafficIncident = (TrafficIncident)theEObject;
+ T result = caseTrafficIncident(trafficIncident);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.CAUSE: {
+ Cause cause = (Cause)theEObject;
+ T result = caseCause(cause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.LINKED_CAUSE: {
+ LinkedCause linkedCause = (LinkedCause)theEObject;
+ T result = caseLinkedCause(linkedCause);
+ if (result == null) result = caseCause(linkedCause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.DIRECT_CAUSE: {
+ DirectCause directCause = (DirectCause)theEObject;
+ T result = caseDirectCause(directCause);
+ if (result == null) result = caseCause(directCause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.LANE_RESTRICTIONS: {
+ LaneRestrictions laneRestrictions = (LaneRestrictions)theEObject;
+ T result = caseLaneRestrictions(laneRestrictions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.ADVICE: {
+ Advice advice = (Advice)theEObject;
+ T result = caseAdvice(advice);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.APPLICABILITY: {
+ Applicability applicability = (Applicability)theEObject;
+ T result = caseApplicability(applicability);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.VEHICLE_RELATED_RESTRICTION: {
+ VehicleRelatedRestriction vehicleRelatedRestriction = (VehicleRelatedRestriction)theEObject;
+ T result = caseVehicleRelatedRestriction(vehicleRelatedRestriction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT_SECTION: {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = (TemporarySpeedLimitSection)theEObject;
+ T result = caseTemporarySpeedLimitSection(temporarySpeedLimitSection);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case XTrafficIncidentPackage.TEMPORARY_SPEED_LIMIT: {
+ TemporarySpeedLimit temporarySpeedLimit = (TemporarySpeedLimit)theEObject;
+ T result = caseTemporarySpeedLimit(temporarySpeedLimit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Traffic Incident</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Traffic Incident</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrafficIncident(TrafficIncident object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCause(Cause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linked Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linked Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkedCause(LinkedCause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Direct Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Direct Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDirectCause(DirectCause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lane Restrictions</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Lane Restrictions</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLaneRestrictions(LaneRestrictions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Advice</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Advice</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdvice(Advice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Applicability</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Applicability</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseApplicability(Applicability object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vehicle Related Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Vehicle Related Restriction</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVehicleRelatedRestriction(VehicleRelatedRestriction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Speed Limit Section</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Speed Limit Section</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemporarySpeedLimitSection(TemporarySpeedLimitSection object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Speed Limit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Speed Limit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemporarySpeedLimit(TemporarySpeedLimit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //XTrafficIncidentSwitch
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.classpath b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.classpath
new file mode 100755
index 0000000..17405e2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidenttables-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.project b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.project
new file mode 100755
index 0000000..a8a9e4c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/.project
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model</name>
+ <comment>This project contains the data model for Traffic Incidents in the TrafficIncidents interface. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidenttables-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..662a5bf
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.trafficinfo.trafficincident;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.trafficincidentsservice.trafficincidents.trafficincident,
+ org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl,
+ org.genivi.trafficincidentsservice.trafficincidents.trafficincident.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.basetypes-model;visibility:=reexport,
+ org.genivi.trafficinfo.trafficincidenttables;resolution:=optional;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/ReadMe.confluence
new file mode 100755
index 0000000..e45b904
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/ReadMe.confluence
@@ -0,0 +1,3 @@
+This project defines the TrafficIncident data model as used in the TrafficIncidents interface.
+
+TrafficIncident.ecorediag, in de model folder, provides a good overview of the structure of a TrafficIncident. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/build.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecore b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecore
new file mode 100755
index 0000000..301cb8b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecore
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="trafficincident" nsURI="http://org.genivi.trafficinfo" nsPrefix="TrafficIncident">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="TrafficIncident">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="See http://vos.intra.local/display/GENIVI/GENIVI+Traffic+Information+-+Traffic+Incident+Definition for definitions of the meanings of the attributes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="effectCode" lowerBound="1"
+ eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//EffectCode"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="effectText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stopTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tendency" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//Tendency"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tendencyText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthAffected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="averageSpeedAbsolute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="delay" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="segmentSpeedLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="causes" upperBound="-1"
+ eType="#//Cause" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="location" lowerBound="1"
+ eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//location/Location"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="advices" upperBound="-1"
+ eType="#//Advice" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applicability" upperBound="-1"
+ eType="#//Applicability" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="trafficIncidentId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="locationInfo" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//location/LocationInfo"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="causeTexts" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="applicabilityTexts" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="adviceTexts" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="categoryIds" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="locationBoundingBox" lowerBound="1"
+ eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/RectangularArea"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expectedSpeedAbsolute"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="temporarySpeedLimit" upperBound="-1"
+ eType="#//TemporarySpeedLimit" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mainCause" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//CauseCode"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkedCause" eSuperTypes="#//Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="causeTrafficIncidentId"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There can be a LinkedCause for which the linked TrafficIncident isn't available (to the application) yet. Therefore this atttibute is optional."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DirectCause" eSuperTypes="#//Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="warningLevel" lowerBound="1"
+ eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//WarningLevel"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unverifiedInformation"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subCause" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthAffected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="laneRestrictions" eType="#//LaneRestrictions"
+ unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="freeText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="causeOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LaneRestrictions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="laneRestrictionType" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//LaneRestrictionType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfLanes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Advice">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mainAdvice" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//AdviceCode"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subAdvice" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applicability" upperBound="-1"
+ eType="#//Applicability" unsettable="true" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="freeText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Applicability">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vehicleType" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//VehicleType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="vehicleRelatedRestrictions"
+ upperBound="-1" eType="#//VehicleRelatedRestriction" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VehicleRelatedRestriction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="restrictionType" lowerBound="1"
+ eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//RestrictionType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="restrictionValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="restrictionLocation" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//location/Location"
+ unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemporarySpeedLimit">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="temporarySpeedLimitSections"
+ lowerBound="1" upperBound="-1" eType="#//TemporarySpeedLimitSection" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unitsMPH" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="applicability" upperBound="-1"
+ eType="#//Applicability" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemporarySpeedLimitSection">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitValue" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitValueWet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecorediag b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecorediag
new file mode 100755
index 0000000..00845a3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.ecorediag
@@ -0,0 +1,568 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Mlnn8T8-EeCZw9yYN1vKNg" type="EcoreTools" name="TrafficIncident.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_NkCp8VoXEeC3H6JlN9FMhA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_NkVk4FoXEeC3H6JlN9FMhA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_NkyQ0FoXEeC3H6JlN9FMhA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_-OXG0Fb1EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/trafficIncidentId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-OXG0Vb1EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LRiJ4FoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/effectCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LRiJ4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-w-EIDPtEeKmrrjF28z5iw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/effectText"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-w-EITPtEeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_S5FKEFoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/startTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S5FKEVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ynal4FoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/stopTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ynal4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C9O78FoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/tendency"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C9O78VoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IZVskDPuEeKmrrjF28z5iw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/tendencyText"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IZVskTPuEeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JLaVcFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/lengthAffected"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JLaVcVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VD-e4FoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/averageSpeedAbsolute"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VD-e4VoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dvk9EFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/delay"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dvk9EVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iqHkcFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/segmentSpeedLimit"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iqHkcVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0GuOIJ-VEeO2bPxtRJW0gw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/expectedSpeedAbsolute"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0GuOIZ-VEeO2bPxtRJW0gw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_azSfYDPuEeKmrrjF28z5iw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/causeTexts"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_azSfYTPuEeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_f99NcDPuEeKmrrjF28z5iw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/applicabilityTexts"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f99NcTPuEeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lxv8gF5kEeKE1t6oAtQwcw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/adviceTexts"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lxv8gV5kEeKE1t6oAtQwcw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lao4kDPuEeKmrrjF28z5iw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TrafficIncident/categoryIds"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lao4kTPuEeKmrrjF28z5iw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NkyQ0VoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NkyQ0loXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NkyQ01oXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkyQ1FoXEeC3H6JlN9FMhA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NkyQ1VoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NkyQ1loXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NkyQ11oXEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NkCp8loXEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//TrafficIncident"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NkCp81oXEeC3H6JlN9FMhA" x="348" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tKvDgFoaEeC3H6JlN9FMhA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_tKvDg1oaEeC3H6JlN9FMhA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_tKvDhFoaEeC3H6JlN9FMhA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_1X1lYFqqEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//Cause/mainCause"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1X1lYVqqEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tKvDhVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKvDhloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKvDh1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tKvDiFoaEeC3H6JlN9FMhA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tKvDiVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKvDiloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKvDi1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tKvDgVoaEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//Cause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tKvDgloaEeC3H6JlN9FMhA" x="108" y="276"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7PGeQFqrEeCUVO0erQdu-A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_7PGeQ1qrEeCUVO0erQdu-A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_7PGeRFqrEeCUVO0erQdu-A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_S-FTsFiiEeGnKKOPQnHHAw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//LinkedCause/causeTrafficIncidentId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S-FTsViiEeGnKKOPQnHHAw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7PGeRVqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7PGeRlqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7PGeR1qrEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7PGeSFqrEeCUVO0erQdu-A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7PGeSVqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7PGeSlqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7PGeS1qrEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7PGeQVqrEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//LinkedCause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7PGeQlqrEeCUVO0erQdu-A" x="264" y="372"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFcFqsEeCUVO0erQdu-A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ZzAFc1qsEeCUVO0erQdu-A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFdFqsEeCUVO0erQdu-A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_G03yEFqtEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//DirectCause/warningLevel"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G03yEVqtEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RdQtEFqtEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//DirectCause/unverifiedInformation"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RdQtEVqtEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ymqOgFYyEeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//DirectCause/subCause"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ymqOgVYyEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Dl4hAFY5EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//DirectCause/lengthAffected"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Dl4hAVY5EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_feTD8M0jEeKfKdqTiSF_4g" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//DirectCause/freeText"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_feTD8c0jEeKfKdqTiSF_4g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EH3wwKK7EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//DirectCause/causeOffset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EH3wwaK7EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZzAFdVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZzAFdlqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZzAFd1qsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFeFqsEeCUVO0erQdu-A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZzAFeVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZzAFelqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZzAFe1qsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZzAFcVqsEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//DirectCause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZzAFclqsEeCUVO0erQdu-A" x="36" y="420"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SqQG4cpGEeCrteeIp7eRig" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_SqQG4spGEeCrteeIp7eRig" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_SqQG48pGEeCrteeIp7eRig" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_SqQG5MpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SqQG5cpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SqQG5spGEeCrteeIp7eRig"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SqQG58pGEeCrteeIp7eRig" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_SqQG6MpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SqQG6cpGEeCrteeIp7eRig"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SqQG6spGEeCrteeIp7eRig"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_SqQG68pGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.basetypes-model/model/Basetypes.ecore#//location/Location"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SqQG7MpGEeCrteeIp7eRig" x="720" y="504"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_onuXEVM7EeGPO9BWHBmh1Q" type="Note" description="Based on TISA version of TEC:&#xD;&#xA;TPEG2-TEC_3.1/001 2011-11-07" fillColor="8047085" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ooBSAFM7EeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ooBSAVM7EeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_onuXElM7EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_onuXE1M7EeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_onuXFFM7EeGPO9BWHBmh1Q" x="36" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ciUwcFY5EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ciUwc1Y5EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ciUwdFY5EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_lUjbEFY5EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//LaneRestrictions/laneRestrictionType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lUjbEVY5EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s73xwFY5EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//LaneRestrictions/numberOfLanes"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s73xwVY5EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ciUwdVY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ciUwdlY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ciUwd1Y5EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cid6YFY5EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_cid6YVY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cid6YlY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cid6Y1Y5EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ciUwcVY5EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//LaneRestrictions"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ciUwclY5EeGPO9BWHBmh1Q" x="24" y="600"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uzRGUFY7EeGPO9BWHBmh1Q" type="Note" description="As there are no requirements related to the DiversionRoute, this is left out of the model." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_uzRGVFY7EeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_uzRGVVY7EeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_uzRGUVY7EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_uzRGUlY7EeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uzRGU1Y7EeGPO9BWHBmh1Q" x="792" y="24" width="181" height="73"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QFQrcFY8EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_QFQrc1Y8EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_QFQrdFY8EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_oqgi4FY8EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//Advice/mainAdvice"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oqgi4VY8EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0EiWMFY8EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//Advice/subAdvice"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0EiWMVY8EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uF9Q4M0jEeKfKdqTiSF_4g" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//Advice/freeText"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uF9Q4c0jEeKfKdqTiSF_4g"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QFQrdVY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QFQrdlY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QFQrd1Y8EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QFQreFY8EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QFQreVY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QFQrelY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QFQre1Y8EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QFQrcVY8EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//Advice"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QFQrclY8EeGPO9BWHBmh1Q" x="408" y="444"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lB814FY-EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_lB8141Y-EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_lB815FY-EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_UlTAwFY_EeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//Applicability/vehicleType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UlTAwVY_EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lB815VY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lB815lY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lB8151Y-EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lB816FY-EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lB816VY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lB816lY-EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lB8161Y-EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_lB814VY-EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//Applicability"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lB814lY-EeGPO9BWHBmh1Q" x="516" y="564"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0HqbUFY_EeGPO9BWHBmh1Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_0HqbU1Y_EeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_0HqbVFY_EeGPO9BWHBmh1Q" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_pyVw0FZAEeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//VehicleRelatedRestriction/restrictionType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pyVw0VZAEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ww43UFZAEeGPO9BWHBmh1Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//VehicleRelatedRestriction/restrictionValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ww43UVZAEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0HqbVVY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0HqbVlY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0HqbV1Y_EeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0HqbWFY_EeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0HqbWVY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0HqbWlY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0HqbW1Y_EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0HqbUVY_EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//VehicleRelatedRestriction"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0HqbUlY_EeGPO9BWHBmh1Q" x="660" y="660"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p5TogFcREeGPO9BWHBmh1Q" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p5dZgFcREeGPO9BWHBmh1Q" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p5dZgVcREeGPO9BWHBmh1Q" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_p5Tog1cREeGPO9BWHBmh1Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_p5TohFcREeGPO9BWHBmh1Q" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_p5TohVcREeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p5TohlcREeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p5Toh1cREeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p5ToiFcREeGPO9BWHBmh1Q" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_p5ToiVcREeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p5ToilcREeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p5Toi1cREeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_p5TogVcREeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.basetypes-model/model/Basetypes.ecore#//common/RectangularArea"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5ToglcREeGPO9BWHBmh1Q" x="648" y="24" width="123" height="63"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HF22ADPvEeKmrrjF28z5iw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HGJw8DPvEeKmrrjF28z5iw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HGJw8TPvEeKmrrjF28z5iw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_HF22AzPvEeKmrrjF28z5iw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_HF22BDPvEeKmrrjF28z5iw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HF22BTPvEeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HF22BjPvEeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HF22BzPvEeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HF__8DPvEeKmrrjF28z5iw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HF__8TPvEeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HF__8jPvEeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HF__8zPvEeKmrrjF28z5iw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HF22ATPvEeKmrrjF28z5iw" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.basetypes-model/model/Basetypes.ecore#//location/LocationInfo"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HF22AjPvEeKmrrjF28z5iw" x="48" y="144"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9r1PgKK8EeOqyayr_JFKKw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_9r3EsKK8EeOqyayr_JFKKw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_9r3EsaK8EeOqyayr_JFKKw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_s3X-YKK9EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TemporarySpeedLimit/unitsMPH"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3X-YaK9EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ytSB0KK9EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TemporarySpeedLimit/offset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytSB0aK9EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9r3EsqK8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9r3Es6K8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9r3EtKK8EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9r3EtaK8EeOqyayr_JFKKw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9r3EtqK8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9r3Et6K8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9r3EuKK8EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_9r1PgaK8EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//TemporarySpeedLimit"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9r1PgqK8EeOqyayr_JFKKw" x="720" y="240"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__hl3QKK8EeOqyayr_JFKKw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="__hmeUKK8EeOqyayr_JFKKw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="__hmeUaK8EeOqyayr_JFKKw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_DCoVEKK9EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TemporarySpeedLimitSection/speedLimitValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DCpjMKK9EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EiT_IKK9EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TemporarySpeedLimitSection/speedLimitValueWet"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EiT_IaK9EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HEgPEKK9EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncident.ecore#//TemporarySpeedLimitSection/speedLimitLength"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HEgPEaK9EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__hmeUqK8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__hmeU6K8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__hmeVKK8EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__hmeVaK8EeOqyayr_JFKKw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__hmeVqK8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__hmeV6K8EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__hmeWKK8EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__hl3QaK8EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncident.ecore#//TemporarySpeedLimitSection"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__hl3QqK8EeOqyayr_JFKKw" x="768" y="384"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mlnn8j8-EeCZw9yYN1vKNg"/>
+ <element xmi:type="ecore:EPackage" href="TrafficIncident.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_CF82wFqrEeCUVO0erQdu-A" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <children xmi:type="notation:Node" xmi:id="_CGjTsFqrEeCUVO0erQdu-A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGjTsVqrEeCUVO0erQdu-A" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CGjTslqrEeCUVO0erQdu-A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGjTs1qrEeCUVO0erQdu-A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CF82wVqrEeCUVO0erQdu-A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CF82wlqrEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/causes"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CF82w1qrEeCUVO0erQdu-A" points="[-59, 3, 145, -8]$[-202, 35, 2, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CH5XgFqrEeCUVO0erQdu-A" id="(0.22988505747126436,0.453416149068323)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CH5XgVqrEeCUVO0erQdu-A" id="(0.7777777777777778,0.4897959183673469)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_RsFBoFqsEeCUVO0erQdu-A" type="3003" source="_7PGeQFqrEeCUVO0erQdu-A" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_RsFBoVqsEeCUVO0erQdu-A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RsFBolqsEeCUVO0erQdu-A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RsFBo1qsEeCUVO0erQdu-A" points="[-20, -20, 102, 85]$[-37, -102, 85, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_dAiYcFqsEeCUVO0erQdu-A" type="3003" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_dAiYcVqsEeCUVO0erQdu-A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dAiYclqsEeCUVO0erQdu-A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dAiYc1qsEeCUVO0erQdu-A" points="[5, -20, -27, 72]$[-12, -68, -44, 24]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_VymX4MpGEeCrteeIp7eRig" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_SqQG4cpGEeCrteeIp7eRig">
+ <children xmi:type="notation:Node" xmi:id="_VymX5MpGEeCrteeIp7eRig" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VymX5cpGEeCrteeIp7eRig" x="-53" y="-17"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VymX5spGEeCrteeIp7eRig" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VymX58pGEeCrteeIp7eRig" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_VymX4cpGEeCrteeIp7eRig" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VymX4spGEeCrteeIp7eRig" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/location"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VymX48pGEeCrteeIp7eRig" points="[-129, 11, 202, -22]$[-323, 5, 8, -28]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D3OusFZEEeGPO9BWHBmh1Q" id="(0.9348659003831418,0.9937888198757764)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_yWckEFY5EeGPO9BWHBmh1Q" type="3002" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_ciUwcFY5EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_yWckFFY5EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yWckFVY5EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yWckFlY5EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yWckF1Y5EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_yWckEVY5EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_yWckElY5EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//DirectCause/laneRestrictions"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yWckE1Y5EeGPO9BWHBmh1Q" points="[109, 6, -301, -14]$[276, 20, -134, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_T7evEFY8EeGPO9BWHBmh1Q" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_QFQrcFY8EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_T7evFFY8EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T7evFVY8EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T7evFlY8EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T7evF1Y8EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_T7evEVY8EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T7evElY8EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/advices"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T7evE1Y8EeGPO9BWHBmh1Q" points="[7, 80, -34, -125]$[-9, 202, -50, -3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_vrSMEFY-EeGPO9BWHBmh1Q" type="3002" source="_QFQrcFY8EeGPO9BWHBmh1Q" target="_lB814FY-EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_vrSMFFY-EeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vrSMFVY-EeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vrSMFlY-EeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vrSMF1Y-EeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_vrSMEVY-EeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vrSMElY-EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//Advice/applicability"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vrSME1Y-EeGPO9BWHBmh1Q" points="[10, 32, -14, -101]$[-26, 133, -50, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_92ajIFZAEeGPO9BWHBmh1Q" type="3002" source="_0HqbUFY_EeGPO9BWHBmh1Q" target="_SqQG4cpGEeCrteeIp7eRig">
+ <children xmi:type="notation:Node" xmi:id="_92ajJFZAEeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_92ajJVZAEeGPO9BWHBmh1Q" x="-28" y="18"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_92ajJlZAEeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_92ajJ1ZAEeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_92ajIVZAEeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_92ajIlZAEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//VehicleRelatedRestriction/restrictionLocation"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_92ajI1ZAEeGPO9BWHBmh1Q" points="[-25, -31, 349, 416]$[-324, -451, 50, -4]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_CwdwYFZDEeGPO9BWHBmh1Q" type="3002" source="_lB814FY-EeGPO9BWHBmh1Q" target="_0HqbUFY_EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_CwdwZFZDEeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CwdwZVZDEeGPO9BWHBmh1Q" x="-48" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CwdwZlZDEeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CwdwZ1ZDEeGPO9BWHBmh1Q" x="-3" y="-5"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CwdwYVZDEeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CwdwYlZDEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//Applicability/vehicleRelatedRestrictions"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CwdwY1ZDEeGPO9BWHBmh1Q" points="[-9, 24, 41, -92]$[-22, 85, 28, -31]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_XOD18FZDEeGPO9BWHBmh1Q" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_lB814FY-EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_XOD19FZDEeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XOD19VZDEeGPO9BWHBmh1Q" x="-159"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XOD19lZDEeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XOD191ZDEeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_XOD18VZDEeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XOD18lZDEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/applicability"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XOD181ZDEeGPO9BWHBmh1Q" points="[7, 47, -46, -280]$[55, 308, 2, -19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XOD1-FZDEeGPO9BWHBmh1Q" id="(0.7126436781609196,0.9565217391304348)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XOD1-VZDEeGPO9BWHBmh1Q" id="(0.8611111111111112,0.40816326530612246)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_sl5xoFcREeGPO9BWHBmh1Q" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_p5TogFcREeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_sl5xpFcREeGPO9BWHBmh1Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sl5xpVcREeGPO9BWHBmh1Q" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sl5xplcREeGPO9BWHBmh1Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sl5xp1cREeGPO9BWHBmh1Q" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_sl5xoVcREeGPO9BWHBmh1Q" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sl5xolcREeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/locationBoundingBox"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sl5xo1cREeGPO9BWHBmh1Q" points="[55, 34, -266, -171]$[324, 177, 3, -28]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sl5xqFcREeGPO9BWHBmh1Q" id="(0.9540229885057471,0.8021978021978022)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_MrnkoDPvEeKmrrjF28z5iw" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_HF22ADPvEeKmrrjF28z5iw">
+ <children xmi:type="notation:Node" xmi:id="_MrnkpDPvEeKmrrjF28z5iw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MrnkpTPvEeKmrrjF28z5iw" x="-59" y="-14"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MrnkpjPvEeKmrrjF28z5iw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MrnkpzPvEeKmrrjF28z5iw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_MrnkoTPvEeKmrrjF28z5iw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MrnkojPvEeKmrrjF28z5iw" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/locationInfo"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MrnkozPvEeKmrrjF28z5iw" points="[-55, -3, 242, 19]$[-239, -13, 58, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MrnkqDPvEeKmrrjF28z5iw" id="(0.21455938697318008,0.35019455252918286)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_nQRzAKK9EeOqyayr_JFKKw" type="3002" source="_9r1PgKK8EeOqyayr_JFKKw" target="__hl3QKK8EeOqyayr_JFKKw">
+ <children xmi:type="notation:Node" xmi:id="_nQRzBKK9EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nQRzBaK9EeOqyayr_JFKKw" x="-16" y="-22"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nQSaEKK9EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nQSaEaK9EeOqyayr_JFKKw" x="10" y="-28"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_nQRzAaK9EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nQRzAqK9EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TemporarySpeedLimit/temporarySpeedLimitSections"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nQRzA6K9EeOqyayr_JFKKw" points="[16, 21, -108, -120]$[10, 141, -114, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_9JDdIKK9EeOqyayr_JFKKw" type="3002" source="_9r1PgKK8EeOqyayr_JFKKw" target="_lB814FY-EeGPO9BWHBmh1Q">
+ <children xmi:type="notation:Node" xmi:id="_9JErQKK9EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9JErQaK9EeOqyayr_JFKKw" x="-216" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9JErQqK9EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9JErQ6K9EeOqyayr_JFKKw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_9JDdIaK9EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9JDdIqK9EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TemporarySpeedLimit/applicability"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9JDdI6K9EeOqyayr_JFKKw" points="[-9, 33, 98, -389]$[-105, 446, 2, 24]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9JIVoKK9EeOqyayr_JFKKw" id="(0.7944444444444444,0.5102040816326531)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_KRdd0KK-EeOqyayr_JFKKw" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_9r1PgKK8EeOqyayr_JFKKw">
+ <children xmi:type="notation:Node" xmi:id="_KRdd1KK-EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KRdd1aK-EeOqyayr_JFKKw" x="-14" y="-25"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KRdd1qK-EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KRdd16K-EeOqyayr_JFKKw" x="23" y="-18"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_KRdd0aK-EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KRdd0qK-EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TrafficIncident.ecore#//TrafficIncident/temporarySpeedLimit"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KRdd06K-EeOqyayr_JFKKw" points="[60, 38, -188, -104]$[243, 175, -5, 33]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KRghIKK-EeOqyayr_JFKKw" id="(0.7744360902255639,0.33217993079584773)"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.genmodel b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.genmodel
new file mode 100755
index 0000000..20e336a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/model/TrafficIncident.genmodel
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficincidentsservice.trafficincidents.trafficincident-model/src"
+ editDirectory="/org.genivi.trafficincidentsservice.trafficincidents.trafficincident-model.edit/src"
+ editorDirectory="/org.genivi.trafficincidentsservice.trafficincidents.trafficincident-model.editor/src"
+ modelPluginID="org.genivi.trafficinfo.trafficincident" modelName="TrafficIncident"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ usedGenPackages="../../org.genivi.basetypes-model/model/Basetypes.genmodel#//genivi ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel#//trafficincidenttables">
+ <foreignModel>TrafficIncident.ecore</foreignModel>
+ <genPackages prefix="trafficincident" basePackage="org.genivi.trafficincidentsservice.trafficincidents"
+ disposableProviderFactory="true" ecorePackage="TrafficIncident.ecore#/">
+ <genClasses ecoreClass="TrafficIncident.ecore#//TrafficIncident">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/effectCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/effectText"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/startTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/stopTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/tendency"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/tendencyText"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/lengthAffected"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/averageSpeedAbsolute"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/delay"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/segmentSpeedLimit"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//TrafficIncident/causes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//TrafficIncident/location"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//TrafficIncident/advices"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//TrafficIncident/applicability"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/trafficIncidentId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//TrafficIncident/locationInfo"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/causeTexts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/applicabilityTexts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/adviceTexts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//TrafficIncident/categoryIds"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//TrafficIncident/locationBoundingBox"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//Cause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//Cause/mainCause"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//LinkedCause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//LinkedCause/causeTrafficIncidentId"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//DirectCause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//DirectCause/warningLevel"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//DirectCause/unverifiedInformation"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//DirectCause/subCause"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//DirectCause/lengthAffected"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//DirectCause/laneRestrictions"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//DirectCause/freeText"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//LaneRestrictions">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//LaneRestrictions/laneRestrictionType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//LaneRestrictions/numberOfLanes"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//Advice">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//Advice/mainAdvice"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//Advice/subAdvice"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//Advice/applicability"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//Advice/freeText"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//Applicability">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//Applicability/vehicleType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//Applicability/vehicleRelatedRestrictions"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncident.ecore#//VehicleRelatedRestriction">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//VehicleRelatedRestriction/restrictionType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncident.ecore#//VehicleRelatedRestriction/restrictionValue"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncident.ecore#//VehicleRelatedRestriction/restrictionLocation"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.properties
new file mode 100755
index 0000000..d4e01b4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = TrafficIncident Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.xml
new file mode 100755
index 0000000..2a7709e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated TrafficIncident -->
+ <package
+ uri="http://org.genivi.trafficinfo"
+ class="org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage"
+ genModel="model/TrafficIncident.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/pom.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/pom.xml
new file mode 100755
index 0000000..ed4d264
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidents</groupId>
+ <artifactId>trafficincidents-trafficincident-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>Traffic Incident data model for the TrafficIncidents interface</name>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+ <description>This project contains the data model for Traffic Incidents in the TrafficIncidents interface.</description>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Advice.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Advice.java
new file mode 100755
index 0000000..1b8a751
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Advice.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Advice</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getApplicability <em>Applicability</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getFreeText <em>Free Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getAdvice()
+ * @model
+ * @generated
+ */
+public interface Advice extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Advice</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Advice</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Advice</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @see #isSetMainAdvice()
+ * @see #unsetMainAdvice()
+ * @see #setMainAdvice(AdviceCode)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getAdvice_MainAdvice()
+ * @model unsettable="true"
+ * @generated
+ */
+ AdviceCode getMainAdvice();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Advice</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @see #isSetMainAdvice()
+ * @see #unsetMainAdvice()
+ * @see #getMainAdvice()
+ * @generated
+ */
+ void setMainAdvice(AdviceCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMainAdvice()
+ * @see #getMainAdvice()
+ * @see #setMainAdvice(AdviceCode)
+ * @generated
+ */
+ void unsetMainAdvice();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Main Advice</em>' attribute is set.
+ * @see #unsetMainAdvice()
+ * @see #getMainAdvice()
+ * @see #setMainAdvice(AdviceCode)
+ * @generated
+ */
+ boolean isSetMainAdvice();
+
+ /**
+ * Returns the value of the '<em><b>Sub Advice</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The actual value of this atttribute depends on the adviceCode. So based on the adviceCode it has to be cast to the related enum.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Sub Advice</em>' attribute.
+ * @see #isSetSubAdvice()
+ * @see #unsetSubAdvice()
+ * @see #setSubAdvice(Object)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getAdvice_SubAdvice()
+ * @model unsettable="true"
+ * @generated
+ */
+ Object getSubAdvice();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Advice</em>' attribute.
+ * @see #isSetSubAdvice()
+ * @see #unsetSubAdvice()
+ * @see #getSubAdvice()
+ * @generated
+ */
+ void setSubAdvice(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubAdvice()
+ * @see #getSubAdvice()
+ * @see #setSubAdvice(Object)
+ * @generated
+ */
+ void unsetSubAdvice();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Advice</em>' attribute is set.
+ * @see #unsetSubAdvice()
+ * @see #getSubAdvice()
+ * @see #setSubAdvice(Object)
+ * @generated
+ */
+ boolean isSetSubAdvice();
+
+ /**
+ * Returns the value of the '<em><b>Applicability</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability</em>' containment reference list.
+ * @see #isSetApplicability()
+ * @see #unsetApplicability()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getAdvice_Applicability()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Applicability> getApplicability();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getApplicability <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ void unsetApplicability();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getApplicability <em>Applicability</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Applicability</em>' containment reference list is set.
+ * @see #unsetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ boolean isSetApplicability();
+
+ /**
+ * Returns the value of the '<em><b>Free Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Free Text</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Free Text</em>' attribute.
+ * @see #isSetFreeText()
+ * @see #unsetFreeText()
+ * @see #setFreeText(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getAdvice_FreeText()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getFreeText();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getFreeText <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Free Text</em>' attribute.
+ * @see #isSetFreeText()
+ * @see #unsetFreeText()
+ * @see #getFreeText()
+ * @generated
+ */
+ void setFreeText(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getFreeText <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFreeText()
+ * @see #getFreeText()
+ * @see #setFreeText(String)
+ * @generated
+ */
+ void unsetFreeText();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getFreeText <em>Free Text</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Free Text</em>' attribute is set.
+ * @see #unsetFreeText()
+ * @see #getFreeText()
+ * @see #setFreeText(String)
+ * @generated
+ */
+ boolean isSetFreeText();
+
+} // Advice
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Applicability.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Applicability.java
new file mode 100755
index 0000000..60cbb30
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Applicability.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Applicability</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getApplicability()
+ * @model
+ * @generated
+ */
+public interface Applicability extends EObject {
+ /**
+ * Returns the value of the '<em><b>Vehicle Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @see #isSetVehicleType()
+ * @see #unsetVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getApplicability_VehicleType()
+ * @model unsettable="true"
+ * @generated
+ */
+ VehicleType getVehicleType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vehicle Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @see #isSetVehicleType()
+ * @see #unsetVehicleType()
+ * @see #getVehicleType()
+ * @generated
+ */
+ void setVehicleType(VehicleType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVehicleType()
+ * @see #getVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @generated
+ */
+ void unsetVehicleType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Vehicle Type</em>' attribute is set.
+ * @see #unsetVehicleType()
+ * @see #getVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @generated
+ */
+ boolean isSetVehicleType();
+
+ /**
+ * Returns the value of the '<em><b>Vehicle Related Restrictions</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Related Restrictions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Related Restrictions</em>' containment reference list.
+ * @see #isSetVehicleRelatedRestrictions()
+ * @see #unsetVehicleRelatedRestrictions()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getApplicability_VehicleRelatedRestrictions()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<VehicleRelatedRestriction> getVehicleRelatedRestrictions();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVehicleRelatedRestrictions()
+ * @see #getVehicleRelatedRestrictions()
+ * @generated
+ */
+ void unsetVehicleRelatedRestrictions();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Vehicle Related Restrictions</em>' containment reference list is set.
+ * @see #unsetVehicleRelatedRestrictions()
+ * @see #getVehicleRelatedRestrictions()
+ * @generated
+ */
+ boolean isSetVehicleRelatedRestrictions();
+
+} // Applicability
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Cause.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Cause.java
new file mode 100755
index 0000000..e9f2401
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/Cause.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause#getMainCause <em>Main Cause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getCause()
+ * @model
+ * @generated
+ */
+public interface Cause extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Cause</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Cause</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Cause</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @see #isSetMainCause()
+ * @see #unsetMainCause()
+ * @see #setMainCause(CauseCode)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getCause_MainCause()
+ * @model unsettable="true"
+ * @generated
+ */
+ CauseCode getMainCause();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause#getMainCause <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Cause</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @see #isSetMainCause()
+ * @see #unsetMainCause()
+ * @see #getMainCause()
+ * @generated
+ */
+ void setMainCause(CauseCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause#getMainCause <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMainCause()
+ * @see #getMainCause()
+ * @see #setMainCause(CauseCode)
+ * @generated
+ */
+ void unsetMainCause();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause#getMainCause <em>Main Cause</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Main Cause</em>' attribute is set.
+ * @see #unsetMainCause()
+ * @see #getMainCause()
+ * @see #setMainCause(CauseCode)
+ * @generated
+ */
+ boolean isSetMainCause();
+
+} // Cause
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/DirectCause.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/DirectCause.java
new file mode 100755
index 0000000..f811f23
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/DirectCause.java
@@ -0,0 +1,408 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Direct Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause()
+ * @model
+ * @generated
+ */
+public interface DirectCause extends Cause {
+ /**
+ * Returns the value of the '<em><b>Warning Level</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Warning Level</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Warning Level</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @see #isSetWarningLevel()
+ * @see #unsetWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_WarningLevel()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ WarningLevel getWarningLevel();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Warning Level</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @see #isSetWarningLevel()
+ * @see #unsetWarningLevel()
+ * @see #getWarningLevel()
+ * @generated
+ */
+ void setWarningLevel(WarningLevel value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetWarningLevel()
+ * @see #getWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @generated
+ */
+ void unsetWarningLevel();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Warning Level</em>' attribute is set.
+ * @see #unsetWarningLevel()
+ * @see #getWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @generated
+ */
+ boolean isSetWarningLevel();
+
+ /**
+ * Returns the value of the '<em><b>Unverified Information</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unverified Information</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unverified Information</em>' attribute.
+ * @see #isSetUnverifiedInformation()
+ * @see #unsetUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_UnverifiedInformation()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ boolean isUnverifiedInformation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unverified Information</em>' attribute.
+ * @see #isSetUnverifiedInformation()
+ * @see #unsetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @generated
+ */
+ void setUnverifiedInformation(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @generated
+ */
+ void unsetUnverifiedInformation();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Unverified Information</em>' attribute is set.
+ * @see #unsetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @generated
+ */
+ boolean isSetUnverifiedInformation();
+
+ /**
+ * Returns the value of the '<em><b>Sub Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The actual value of this atttribute depends on the mainCause. So based on the mainCause it has to be cast to the related enum.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Sub Cause</em>' attribute.
+ * @see #isSetSubCause()
+ * @see #unsetSubCause()
+ * @see #setSubCause(Object)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_SubCause()
+ * @model unsettable="true"
+ * @generated
+ */
+ Object getSubCause();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Cause</em>' attribute.
+ * @see #isSetSubCause()
+ * @see #unsetSubCause()
+ * @see #getSubCause()
+ * @generated
+ */
+ void setSubCause(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubCause()
+ * @see #getSubCause()
+ * @see #setSubCause(Object)
+ * @generated
+ */
+ void unsetSubCause();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Cause</em>' attribute is set.
+ * @see #unsetSubCause()
+ * @see #getSubCause()
+ * @see #setSubCause(Object)
+ * @generated
+ */
+ boolean isSetSubCause();
+
+ /**
+ * Returns the value of the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length Affected</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_LengthAffected()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getLengthAffected();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @generated
+ */
+ void setLengthAffected(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ void unsetLengthAffected();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length Affected</em>' attribute is set.
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ boolean isSetLengthAffected();
+
+ /**
+ * Returns the value of the '<em><b>Lane Restrictions</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lane Restrictions</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lane Restrictions</em>' containment reference.
+ * @see #isSetLaneRestrictions()
+ * @see #unsetLaneRestrictions()
+ * @see #setLaneRestrictions(LaneRestrictions)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_LaneRestrictions()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ LaneRestrictions getLaneRestrictions();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lane Restrictions</em>' containment reference.
+ * @see #isSetLaneRestrictions()
+ * @see #unsetLaneRestrictions()
+ * @see #getLaneRestrictions()
+ * @generated
+ */
+ void setLaneRestrictions(LaneRestrictions value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLaneRestrictions()
+ * @see #getLaneRestrictions()
+ * @see #setLaneRestrictions(LaneRestrictions)
+ * @generated
+ */
+ void unsetLaneRestrictions();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Lane Restrictions</em>' containment reference is set.
+ * @see #unsetLaneRestrictions()
+ * @see #getLaneRestrictions()
+ * @see #setLaneRestrictions(LaneRestrictions)
+ * @generated
+ */
+ boolean isSetLaneRestrictions();
+
+ /**
+ * Returns the value of the '<em><b>Free Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Free Text</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Free Text</em>' attribute.
+ * @see #isSetFreeText()
+ * @see #unsetFreeText()
+ * @see #setFreeText(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_FreeText()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getFreeText();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getFreeText <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Free Text</em>' attribute.
+ * @see #isSetFreeText()
+ * @see #unsetFreeText()
+ * @see #getFreeText()
+ * @generated
+ */
+ void setFreeText(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getFreeText <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFreeText()
+ * @see #getFreeText()
+ * @see #setFreeText(String)
+ * @generated
+ */
+ void unsetFreeText();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getFreeText <em>Free Text</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Free Text</em>' attribute is set.
+ * @see #unsetFreeText()
+ * @see #getFreeText()
+ * @see #setFreeText(String)
+ * @generated
+ */
+ boolean isSetFreeText();
+
+ /**
+ * Returns the value of the '<em><b>Cause Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cause Offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cause Offset</em>' attribute.
+ * @see #isSetCauseOffset()
+ * @see #unsetCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getDirectCause_CauseOffset()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getCauseOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cause Offset</em>' attribute.
+ * @see #isSetCauseOffset()
+ * @see #unsetCauseOffset()
+ * @see #getCauseOffset()
+ * @generated
+ */
+ void setCauseOffset(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauseOffset()
+ * @see #getCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @generated
+ */
+ void unsetCauseOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Cause Offset</em>' attribute is set.
+ * @see #unsetCauseOffset()
+ * @see #getCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @generated
+ */
+ boolean isSetCauseOffset();
+
+} // DirectCause
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LaneRestrictions.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LaneRestrictions.java
new file mode 100755
index 0000000..b912851
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LaneRestrictions.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lane Restrictions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getLaneRestrictions()
+ * @model
+ * @generated
+ */
+public interface LaneRestrictions extends EObject {
+ /**
+ * Returns the value of the '<em><b>Lane Restriction Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lane Restriction Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lane Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @see #isSetLaneRestrictionType()
+ * @see #unsetLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getLaneRestrictions_LaneRestrictionType()
+ * @model unsettable="true"
+ * @generated
+ */
+ LaneRestrictionType getLaneRestrictionType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lane Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @see #isSetLaneRestrictionType()
+ * @see #unsetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @generated
+ */
+ void setLaneRestrictionType(LaneRestrictionType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @generated
+ */
+ void unsetLaneRestrictionType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Lane Restriction Type</em>' attribute is set.
+ * @see #unsetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @generated
+ */
+ boolean isSetLaneRestrictionType();
+
+ /**
+ * Returns the value of the '<em><b>Number Of Lanes</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Lanes</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Lanes</em>' attribute.
+ * @see #isSetNumberOfLanes()
+ * @see #unsetNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getLaneRestrictions_NumberOfLanes()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getNumberOfLanes();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Lanes</em>' attribute.
+ * @see #isSetNumberOfLanes()
+ * @see #unsetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @generated
+ */
+ void setNumberOfLanes(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @generated
+ */
+ void unsetNumberOfLanes();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Number Of Lanes</em>' attribute is set.
+ * @see #unsetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @generated
+ */
+ boolean isSetNumberOfLanes();
+
+} // LaneRestrictions
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LinkedCause.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LinkedCause.java
new file mode 100755
index 0000000..cb8efa0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/LinkedCause.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linked Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getLinkedCause()
+ * @model
+ * @generated
+ */
+public interface LinkedCause extends Cause {
+ /**
+ * Returns the value of the '<em><b>Cause Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There can be a LinkedCause for which the linked TrafficIncident isn't available (to the application) yet. Therefore this atttibute is optional.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Cause Traffic Incident Id</em>' attribute.
+ * @see #isSetCauseTrafficIncidentId()
+ * @see #unsetCauseTrafficIncidentId()
+ * @see #setCauseTrafficIncidentId(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getLinkedCause_CauseTrafficIncidentId()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getCauseTrafficIncidentId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cause Traffic Incident Id</em>' attribute.
+ * @see #isSetCauseTrafficIncidentId()
+ * @see #unsetCauseTrafficIncidentId()
+ * @see #getCauseTrafficIncidentId()
+ * @generated
+ */
+ void setCauseTrafficIncidentId(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauseTrafficIncidentId()
+ * @see #getCauseTrafficIncidentId()
+ * @see #setCauseTrafficIncidentId(Integer)
+ * @generated
+ */
+ void unsetCauseTrafficIncidentId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Cause Traffic Incident Id</em>' attribute is set.
+ * @see #unsetCauseTrafficIncidentId()
+ * @see #getCauseTrafficIncidentId()
+ * @see #setCauseTrafficIncidentId(Integer)
+ * @generated
+ */
+ boolean isSetCauseTrafficIncidentId();
+
+} // LinkedCause
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimit.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimit.java
new file mode 100755
index 0000000..57e0a8e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimit.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Speed Limit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getTemporarySpeedLimitSections <em>Temporary Speed Limit Sections</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getApplicability <em>Applicability</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimit()
+ * @model
+ * @generated
+ */
+public interface TemporarySpeedLimit extends EObject {
+ /**
+ * Returns the value of the '<em><b>Temporary Speed Limit Sections</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Speed Limit Sections</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Speed Limit Sections</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimit_TemporarySpeedLimitSections()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<TemporarySpeedLimitSection> getTemporarySpeedLimitSections();
+
+ /**
+ * Returns the value of the '<em><b>Units MPH</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Units MPH</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Units MPH</em>' attribute.
+ * @see #isSetUnitsMPH()
+ * @see #unsetUnitsMPH()
+ * @see #setUnitsMPH(boolean)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimit_UnitsMPH()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ boolean isUnitsMPH();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Units MPH</em>' attribute.
+ * @see #isSetUnitsMPH()
+ * @see #unsetUnitsMPH()
+ * @see #isUnitsMPH()
+ * @generated
+ */
+ void setUnitsMPH(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUnitsMPH()
+ * @see #isUnitsMPH()
+ * @see #setUnitsMPH(boolean)
+ * @generated
+ */
+ void unsetUnitsMPH();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Units MPH</em>' attribute is set.
+ * @see #unsetUnitsMPH()
+ * @see #isUnitsMPH()
+ * @see #setUnitsMPH(boolean)
+ * @generated
+ */
+ boolean isSetUnitsMPH();
+
+ /**
+ * Returns the value of the '<em><b>Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Offset</em>' attribute.
+ * @see #isSetOffset()
+ * @see #unsetOffset()
+ * @see #setOffset(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimit_Offset()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Offset</em>' attribute.
+ * @see #isSetOffset()
+ * @see #unsetOffset()
+ * @see #getOffset()
+ * @generated
+ */
+ void setOffset(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOffset()
+ * @see #getOffset()
+ * @see #setOffset(Integer)
+ * @generated
+ */
+ void unsetOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Offset</em>' attribute is set.
+ * @see #unsetOffset()
+ * @see #getOffset()
+ * @see #setOffset(Integer)
+ * @generated
+ */
+ boolean isSetOffset();
+
+ /**
+ * Returns the value of the '<em><b>Applicability</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimit_Applicability()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Applicability> getApplicability();
+
+} // TemporarySpeedLimit
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimitSection.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimitSection.java
new file mode 100755
index 0000000..655f32e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TemporarySpeedLimitSection.java
@@ -0,0 +1,190 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Speed Limit Section</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimitSection()
+ * @model
+ * @generated
+ */
+public interface TemporarySpeedLimitSection extends EObject {
+ /**
+ * Returns the value of the '<em><b>Speed Limit Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Value</em>' attribute.
+ * @see #isSetSpeedLimitValue()
+ * @see #unsetSpeedLimitValue()
+ * @see #setSpeedLimitValue(short)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimitSection_SpeedLimitValue()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ short getSpeedLimitValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Value</em>' attribute.
+ * @see #isSetSpeedLimitValue()
+ * @see #unsetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @generated
+ */
+ void setSpeedLimitValue(short value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @see #setSpeedLimitValue(short)
+ * @generated
+ */
+ void unsetSpeedLimitValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Value</em>' attribute is set.
+ * @see #unsetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @see #setSpeedLimitValue(short)
+ * @generated
+ */
+ boolean isSetSpeedLimitValue();
+
+ /**
+ * Returns the value of the '<em><b>Speed Limit Value Wet</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Value Wet</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Value Wet</em>' attribute.
+ * @see #isSetSpeedLimitValueWet()
+ * @see #unsetSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(short)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimitSection_SpeedLimitValueWet()
+ * @model unsettable="true"
+ * @generated
+ */
+ short getSpeedLimitValueWet();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Value Wet</em>' attribute.
+ * @see #isSetSpeedLimitValueWet()
+ * @see #unsetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ */
+ void setSpeedLimitValueWet(short value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(short)
+ * @generated
+ */
+ void unsetSpeedLimitValueWet();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Value Wet</em>' attribute is set.
+ * @see #unsetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(short)
+ * @generated
+ */
+ boolean isSetSpeedLimitValueWet();
+
+ /**
+ * Returns the value of the '<em><b>Speed Limit Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Length</em>' attribute.
+ * @see #isSetSpeedLimitLength()
+ * @see #unsetSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTemporarySpeedLimitSection_SpeedLimitLength()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getSpeedLimitLength();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Length</em>' attribute.
+ * @see #isSetSpeedLimitLength()
+ * @see #unsetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @generated
+ */
+ void setSpeedLimitLength(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @generated
+ */
+ void unsetSpeedLimitLength();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Length</em>' attribute is set.
+ * @see #unsetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @generated
+ */
+ boolean isSetSpeedLimitLength();
+
+} // TemporarySpeedLimitSection
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TrafficIncident.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TrafficIncident.java
new file mode 100755
index 0000000..f4970d7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/TrafficIncident.java
@@ -0,0 +1,1107 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import java.util.Date;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.RectangularArea;
+
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Traffic Incident</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * See http://vos.intra.local/display/GENIVI/GENIVI+Traffic+Information+-+Traffic+Incident+Definition for definitions of the meanings of the attributes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectText <em>Effect Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendencyText <em>Tendency Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getDelay <em>Delay</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauses <em>Causes</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocation <em>Location</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationInfo <em>Location Info</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauseTexts <em>Cause Texts</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicabilityTexts <em>Applicability Texts</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdviceTexts <em>Advice Texts</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCategoryIds <em>Category Ids</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationBoundingBox <em>Location Bounding Box</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident()
+ * @model
+ * @generated
+ */
+public interface TrafficIncident extends EObject {
+ /**
+ * Returns the value of the '<em><b>Effect Code</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Effect Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Effect Code</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @see #isSetEffectCode()
+ * @see #unsetEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_EffectCode()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ EffectCode getEffectCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Effect Code</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @see #isSetEffectCode()
+ * @see #unsetEffectCode()
+ * @see #getEffectCode()
+ * @generated
+ */
+ void setEffectCode(EffectCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetEffectCode()
+ * @see #getEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @generated
+ */
+ void unsetEffectCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Effect Code</em>' attribute is set.
+ * @see #unsetEffectCode()
+ * @see #getEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @generated
+ */
+ boolean isSetEffectCode();
+
+ /**
+ * Returns the value of the '<em><b>Effect Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Effect Text</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Effect Text</em>' attribute.
+ * @see #isSetEffectText()
+ * @see #unsetEffectText()
+ * @see #setEffectText(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_EffectText()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getEffectText();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectText <em>Effect Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Effect Text</em>' attribute.
+ * @see #isSetEffectText()
+ * @see #unsetEffectText()
+ * @see #getEffectText()
+ * @generated
+ */
+ void setEffectText(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectText <em>Effect Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetEffectText()
+ * @see #getEffectText()
+ * @see #setEffectText(String)
+ * @generated
+ */
+ void unsetEffectText();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectText <em>Effect Text</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Effect Text</em>' attribute is set.
+ * @see #unsetEffectText()
+ * @see #getEffectText()
+ * @see #setEffectText(String)
+ * @generated
+ */
+ boolean isSetEffectText();
+
+ /**
+ * Returns the value of the '<em><b>Start Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Start Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Start Time</em>' attribute.
+ * @see #isSetStartTime()
+ * @see #unsetStartTime()
+ * @see #setStartTime(Date)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_StartTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getStartTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Start Time</em>' attribute.
+ * @see #isSetStartTime()
+ * @see #unsetStartTime()
+ * @see #getStartTime()
+ * @generated
+ */
+ void setStartTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStartTime()
+ * @see #getStartTime()
+ * @see #setStartTime(Date)
+ * @generated
+ */
+ void unsetStartTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Start Time</em>' attribute is set.
+ * @see #unsetStartTime()
+ * @see #getStartTime()
+ * @see #setStartTime(Date)
+ * @generated
+ */
+ boolean isSetStartTime();
+
+ /**
+ * Returns the value of the '<em><b>Stop Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stop Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stop Time</em>' attribute.
+ * @see #isSetStopTime()
+ * @see #unsetStopTime()
+ * @see #setStopTime(Date)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_StopTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getStopTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stop Time</em>' attribute.
+ * @see #isSetStopTime()
+ * @see #unsetStopTime()
+ * @see #getStopTime()
+ * @generated
+ */
+ void setStopTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStopTime()
+ * @see #getStopTime()
+ * @see #setStopTime(Date)
+ * @generated
+ */
+ void unsetStopTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Stop Time</em>' attribute is set.
+ * @see #unsetStopTime()
+ * @see #getStopTime()
+ * @see #setStopTime(Date)
+ * @generated
+ */
+ boolean isSetStopTime();
+
+ /**
+ * Returns the value of the '<em><b>Tendency</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.Tendency}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tendency</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tendency</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @see #isSetTendency()
+ * @see #unsetTendency()
+ * @see #setTendency(Tendency)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_Tendency()
+ * @model unsettable="true"
+ * @generated
+ */
+ Tendency getTendency();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tendency</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @see #isSetTendency()
+ * @see #unsetTendency()
+ * @see #getTendency()
+ * @generated
+ */
+ void setTendency(Tendency value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTendency()
+ * @see #getTendency()
+ * @see #setTendency(Tendency)
+ * @generated
+ */
+ void unsetTendency();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Tendency</em>' attribute is set.
+ * @see #unsetTendency()
+ * @see #getTendency()
+ * @see #setTendency(Tendency)
+ * @generated
+ */
+ boolean isSetTendency();
+
+ /**
+ * Returns the value of the '<em><b>Tendency Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tendency Text</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tendency Text</em>' attribute.
+ * @see #isSetTendencyText()
+ * @see #unsetTendencyText()
+ * @see #setTendencyText(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_TendencyText()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getTendencyText();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendencyText <em>Tendency Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tendency Text</em>' attribute.
+ * @see #isSetTendencyText()
+ * @see #unsetTendencyText()
+ * @see #getTendencyText()
+ * @generated
+ */
+ void setTendencyText(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendencyText <em>Tendency Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTendencyText()
+ * @see #getTendencyText()
+ * @see #setTendencyText(String)
+ * @generated
+ */
+ void unsetTendencyText();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendencyText <em>Tendency Text</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Tendency Text</em>' attribute is set.
+ * @see #unsetTendencyText()
+ * @see #getTendencyText()
+ * @see #setTendencyText(String)
+ * @generated
+ */
+ boolean isSetTendencyText();
+
+ /**
+ * Returns the value of the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length Affected</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_LengthAffected()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getLengthAffected();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @generated
+ */
+ void setLengthAffected(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ void unsetLengthAffected();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length Affected</em>' attribute is set.
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ boolean isSetLengthAffected();
+
+ /**
+ * Returns the value of the '<em><b>Average Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Average Speed Absolute</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Average Speed Absolute</em>' attribute.
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_AverageSpeedAbsolute()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getAverageSpeedAbsolute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Average Speed Absolute</em>' attribute.
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ */
+ void setAverageSpeedAbsolute(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @generated
+ */
+ void unsetAverageSpeedAbsolute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Average Speed Absolute</em>' attribute is set.
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @generated
+ */
+ boolean isSetAverageSpeedAbsolute();
+
+ /**
+ * Returns the value of the '<em><b>Delay</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Delay</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Delay</em>' attribute.
+ * @see #isSetDelay()
+ * @see #unsetDelay()
+ * @see #setDelay(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_Delay()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getDelay();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getDelay <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Delay</em>' attribute.
+ * @see #isSetDelay()
+ * @see #unsetDelay()
+ * @see #getDelay()
+ * @generated
+ */
+ void setDelay(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getDelay <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDelay()
+ * @see #getDelay()
+ * @see #setDelay(Integer)
+ * @generated
+ */
+ void unsetDelay();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getDelay <em>Delay</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Delay</em>' attribute is set.
+ * @see #unsetDelay()
+ * @see #getDelay()
+ * @see #setDelay(Integer)
+ * @generated
+ */
+ boolean isSetDelay();
+
+ /**
+ * Returns the value of the '<em><b>Segment Speed Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Segment Speed Limit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Segment Speed Limit</em>' attribute.
+ * @see #isSetSegmentSpeedLimit()
+ * @see #unsetSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_SegmentSpeedLimit()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getSegmentSpeedLimit();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Segment Speed Limit</em>' attribute.
+ * @see #isSetSegmentSpeedLimit()
+ * @see #unsetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ */
+ void setSegmentSpeedLimit(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @generated
+ */
+ void unsetSegmentSpeedLimit();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Segment Speed Limit</em>' attribute is set.
+ * @see #unsetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @generated
+ */
+ boolean isSetSegmentSpeedLimit();
+
+ /**
+ * Returns the value of the '<em><b>Causes</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Causes</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Causes</em>' containment reference list.
+ * @see #isSetCauses()
+ * @see #unsetCauses()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_Causes()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Cause> getCauses();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauses <em>Causes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauses()
+ * @see #getCauses()
+ * @generated
+ */
+ void unsetCauses();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauses <em>Causes</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Causes</em>' containment reference list is set.
+ * @see #unsetCauses()
+ * @see #getCauses()
+ * @generated
+ */
+ boolean isSetCauses();
+
+ /**
+ * Returns the value of the '<em><b>Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location</em>' containment reference.
+ * @see #isSetLocation()
+ * @see #unsetLocation()
+ * @see #setLocation(Location)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_Location()
+ * @model containment="true" unsettable="true" required="true"
+ * @generated
+ */
+ Location getLocation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocation <em>Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location</em>' containment reference.
+ * @see #isSetLocation()
+ * @see #unsetLocation()
+ * @see #getLocation()
+ * @generated
+ */
+ void setLocation(Location value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocation <em>Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLocation()
+ * @see #getLocation()
+ * @see #setLocation(Location)
+ * @generated
+ */
+ void unsetLocation();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocation <em>Location</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Location</em>' containment reference is set.
+ * @see #unsetLocation()
+ * @see #getLocation()
+ * @see #setLocation(Location)
+ * @generated
+ */
+ boolean isSetLocation();
+
+ /**
+ * Returns the value of the '<em><b>Advices</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advices</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Advices</em>' containment reference list.
+ * @see #isSetAdvices()
+ * @see #unsetAdvices()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_Advices()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Advice> getAdvices();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAdvices()
+ * @see #getAdvices()
+ * @generated
+ */
+ void unsetAdvices();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Advices</em>' containment reference list is set.
+ * @see #unsetAdvices()
+ * @see #getAdvices()
+ * @generated
+ */
+ boolean isSetAdvices();
+
+ /**
+ * Returns the value of the '<em><b>Applicability</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability</em>' containment reference list.
+ * @see #isSetApplicability()
+ * @see #unsetApplicability()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_Applicability()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<Applicability> getApplicability();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ void unsetApplicability();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Applicability</em>' containment reference list is set.
+ * @see #unsetApplicability()
+ * @see #getApplicability()
+ * @generated
+ */
+ boolean isSetApplicability();
+
+ /**
+ * Returns the value of the '<em><b>Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Traffic Incident Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Traffic Incident Id</em>' attribute.
+ * @see #isSetTrafficIncidentId()
+ * @see #unsetTrafficIncidentId()
+ * @see #setTrafficIncidentId(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_TrafficIncidentId()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getTrafficIncidentId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Traffic Incident Id</em>' attribute.
+ * @see #isSetTrafficIncidentId()
+ * @see #unsetTrafficIncidentId()
+ * @see #getTrafficIncidentId()
+ * @generated
+ */
+ void setTrafficIncidentId(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTrafficIncidentId()
+ * @see #getTrafficIncidentId()
+ * @see #setTrafficIncidentId(Integer)
+ * @generated
+ */
+ void unsetTrafficIncidentId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Traffic Incident Id</em>' attribute is set.
+ * @see #unsetTrafficIncidentId()
+ * @see #getTrafficIncidentId()
+ * @see #setTrafficIncidentId(Integer)
+ * @generated
+ */
+ boolean isSetTrafficIncidentId();
+
+ /**
+ * Returns the value of the '<em><b>Location Info</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location Info</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location Info</em>' containment reference.
+ * @see #isSetLocationInfo()
+ * @see #unsetLocationInfo()
+ * @see #setLocationInfo(LocationInfo)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_LocationInfo()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ LocationInfo getLocationInfo();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationInfo <em>Location Info</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location Info</em>' containment reference.
+ * @see #isSetLocationInfo()
+ * @see #unsetLocationInfo()
+ * @see #getLocationInfo()
+ * @generated
+ */
+ void setLocationInfo(LocationInfo value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationInfo <em>Location Info</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLocationInfo()
+ * @see #getLocationInfo()
+ * @see #setLocationInfo(LocationInfo)
+ * @generated
+ */
+ void unsetLocationInfo();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationInfo <em>Location Info</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Location Info</em>' containment reference is set.
+ * @see #unsetLocationInfo()
+ * @see #getLocationInfo()
+ * @see #setLocationInfo(LocationInfo)
+ * @generated
+ */
+ boolean isSetLocationInfo();
+
+ /**
+ * Returns the value of the '<em><b>Cause Texts</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cause Texts</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cause Texts</em>' attribute list.
+ * @see #isSetCauseTexts()
+ * @see #unsetCauseTexts()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_CauseTexts()
+ * @model unsettable="true"
+ * @generated
+ */
+ EList<String> getCauseTexts();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauseTexts <em>Cause Texts</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauseTexts()
+ * @see #getCauseTexts()
+ * @generated
+ */
+ void unsetCauseTexts();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauseTexts <em>Cause Texts</em>}' attribute list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Cause Texts</em>' attribute list is set.
+ * @see #unsetCauseTexts()
+ * @see #getCauseTexts()
+ * @generated
+ */
+ boolean isSetCauseTexts();
+
+ /**
+ * Returns the value of the '<em><b>Applicability Texts</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Applicability Texts</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Applicability Texts</em>' attribute list.
+ * @see #isSetApplicabilityTexts()
+ * @see #unsetApplicabilityTexts()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_ApplicabilityTexts()
+ * @model unsettable="true"
+ * @generated
+ */
+ EList<String> getApplicabilityTexts();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicabilityTexts <em>Applicability Texts</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetApplicabilityTexts()
+ * @see #getApplicabilityTexts()
+ * @generated
+ */
+ void unsetApplicabilityTexts();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicabilityTexts <em>Applicability Texts</em>}' attribute list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Applicability Texts</em>' attribute list is set.
+ * @see #unsetApplicabilityTexts()
+ * @see #getApplicabilityTexts()
+ * @generated
+ */
+ boolean isSetApplicabilityTexts();
+
+ /**
+ * Returns the value of the '<em><b>Advice Texts</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice Texts</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Advice Texts</em>' attribute list.
+ * @see #isSetAdviceTexts()
+ * @see #unsetAdviceTexts()
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_AdviceTexts()
+ * @model unsettable="true"
+ * @generated
+ */
+ EList<String> getAdviceTexts();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdviceTexts <em>Advice Texts</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAdviceTexts()
+ * @see #getAdviceTexts()
+ * @generated
+ */
+ void unsetAdviceTexts();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdviceTexts <em>Advice Texts</em>}' attribute list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Advice Texts</em>' attribute list is set.
+ * @see #unsetAdviceTexts()
+ * @see #getAdviceTexts()
+ * @generated
+ */
+ boolean isSetAdviceTexts();
+
+ /**
+ * Returns the value of the '<em><b>Category Ids</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Category Ids</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Category Ids</em>' attribute list.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_CategoryIds()
+ * @model
+ * @generated
+ */
+ EList<Integer> getCategoryIds();
+
+ /**
+ * Returns the value of the '<em><b>Location Bounding Box</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location Bounding Box</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location Bounding Box</em>' containment reference.
+ * @see #setLocationBoundingBox(RectangularArea)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_LocationBoundingBox()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ RectangularArea getLocationBoundingBox();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationBoundingBox <em>Location Bounding Box</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location Bounding Box</em>' containment reference.
+ * @see #getLocationBoundingBox()
+ * @generated
+ */
+ void setLocationBoundingBox(RectangularArea value);
+
+ /**
+ * Returns the value of the '<em><b>Expected Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expected Speed Absolute</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expected Speed Absolute</em>' attribute.
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_ExpectedSpeedAbsolute()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getExpectedSpeedAbsolute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expected Speed Absolute</em>' attribute.
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ */
+ void setExpectedSpeedAbsolute(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @generated
+ */
+ void unsetExpectedSpeedAbsolute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expected Speed Absolute</em>' attribute is set.
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @generated
+ */
+ boolean isSetExpectedSpeedAbsolute();
+
+ /**
+ * Returns the value of the '<em><b>Temporary Speed Limit</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Speed Limit</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Speed Limit</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getTrafficIncident_TemporarySpeedLimit()
+ * @model containment="true"
+ * @generated
+ */
+ EList<TemporarySpeedLimit> getTemporarySpeedLimit();
+
+} // TrafficIncident
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/VehicleRelatedRestriction.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/VehicleRelatedRestriction.java
new file mode 100755
index 0000000..d22357b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/VehicleRelatedRestriction.java
@@ -0,0 +1,197 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.location.Location;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vehicle Related Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getVehicleRelatedRestriction()
+ * @model
+ * @generated
+ */
+public interface VehicleRelatedRestriction extends EObject {
+ /**
+ * Returns the value of the '<em><b>Restriction Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @see #isSetRestrictionType()
+ * @see #unsetRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getVehicleRelatedRestriction_RestrictionType()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ RestrictionType getRestrictionType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Type</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @see #isSetRestrictionType()
+ * @see #unsetRestrictionType()
+ * @see #getRestrictionType()
+ * @generated
+ */
+ void setRestrictionType(RestrictionType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionType()
+ * @see #getRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @generated
+ */
+ void unsetRestrictionType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Type</em>' attribute is set.
+ * @see #unsetRestrictionType()
+ * @see #getRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @generated
+ */
+ boolean isSetRestrictionType();
+
+ /**
+ * Returns the value of the '<em><b>Restriction Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Value</em>' attribute.
+ * @see #isSetRestrictionValue()
+ * @see #unsetRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getVehicleRelatedRestriction_RestrictionValue()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getRestrictionValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Value</em>' attribute.
+ * @see #isSetRestrictionValue()
+ * @see #unsetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @generated
+ */
+ void setRestrictionValue(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @generated
+ */
+ void unsetRestrictionValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Value</em>' attribute is set.
+ * @see #unsetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @generated
+ */
+ boolean isSetRestrictionValue();
+
+ /**
+ * Returns the value of the '<em><b>Restriction Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Location</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Location</em>' containment reference.
+ * @see #isSetRestrictionLocation()
+ * @see #unsetRestrictionLocation()
+ * @see #setRestrictionLocation(Location)
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#getVehicleRelatedRestriction_RestrictionLocation()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ Location getRestrictionLocation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Location</em>' containment reference.
+ * @see #isSetRestrictionLocation()
+ * @see #unsetRestrictionLocation()
+ * @see #getRestrictionLocation()
+ * @generated
+ */
+ void setRestrictionLocation(Location value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionLocation()
+ * @see #getRestrictionLocation()
+ * @see #setRestrictionLocation(Location)
+ * @generated
+ */
+ void unsetRestrictionLocation();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Location</em>' containment reference is set.
+ * @see #unsetRestrictionLocation()
+ * @see #getRestrictionLocation()
+ * @see #setRestrictionLocation(Location)
+ * @generated
+ */
+ boolean isSetRestrictionLocation();
+
+} // VehicleRelatedRestriction
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/AdviceImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/AdviceImpl.java
new file mode 100755
index 0000000..a9a6ea4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/AdviceImpl.java
@@ -0,0 +1,451 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Advice</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl#getMainAdvice <em>Main Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl#getSubAdvice <em>Sub Advice</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl#getApplicability <em>Applicability</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl#getFreeText <em>Free Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AdviceImpl extends EObjectImpl implements Advice {
+ /**
+ * The default value of the '{@link #getMainAdvice() <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainAdvice()
+ * @generated
+ * @ordered
+ */
+ protected static final AdviceCode MAIN_ADVICE_EDEFAULT = AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE;
+
+ /**
+ * The cached value of the '{@link #getMainAdvice() <em>Main Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainAdvice()
+ * @generated
+ * @ordered
+ */
+ protected AdviceCode mainAdvice = MAIN_ADVICE_EDEFAULT;
+
+ /**
+ * This is true if the Main Advice attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean mainAdviceESet;
+
+ /**
+ * The default value of the '{@link #getSubAdvice() <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubAdvice()
+ * @generated
+ * @ordered
+ */
+ protected static final Object SUB_ADVICE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubAdvice() <em>Sub Advice</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubAdvice()
+ * @generated
+ * @ordered
+ */
+ protected Object subAdvice = SUB_ADVICE_EDEFAULT;
+
+ /**
+ * This is true if the Sub Advice attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subAdviceESet;
+
+ /**
+ * The cached value of the '{@link #getApplicability() <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicability()
+ * @generated
+ * @ordered
+ */
+ protected EList<Applicability> applicability;
+
+ /**
+ * The default value of the '{@link #getFreeText() <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected static final String FREE_TEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFreeText() <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected String freeText = FREE_TEXT_EDEFAULT;
+
+ /**
+ * This is true if the Free Text attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean freeTextESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdviceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.ADVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdviceCode getMainAdvice() {
+ return mainAdvice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainAdvice(AdviceCode newMainAdvice) {
+ AdviceCode oldMainAdvice = mainAdvice;
+ mainAdvice = newMainAdvice == null ? MAIN_ADVICE_EDEFAULT : newMainAdvice;
+ boolean oldMainAdviceESet = mainAdviceESet;
+ mainAdviceESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.ADVICE__MAIN_ADVICE, oldMainAdvice, mainAdvice, !oldMainAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMainAdvice() {
+ AdviceCode oldMainAdvice = mainAdvice;
+ boolean oldMainAdviceESet = mainAdviceESet;
+ mainAdvice = MAIN_ADVICE_EDEFAULT;
+ mainAdviceESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.ADVICE__MAIN_ADVICE, oldMainAdvice, MAIN_ADVICE_EDEFAULT, oldMainAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMainAdvice() {
+ return mainAdviceESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getSubAdvice() {
+ return subAdvice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubAdvice(Object newSubAdvice) {
+ Object oldSubAdvice = subAdvice;
+ subAdvice = newSubAdvice;
+ boolean oldSubAdviceESet = subAdviceESet;
+ subAdviceESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.ADVICE__SUB_ADVICE, oldSubAdvice, subAdvice, !oldSubAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubAdvice() {
+ Object oldSubAdvice = subAdvice;
+ boolean oldSubAdviceESet = subAdviceESet;
+ subAdvice = SUB_ADVICE_EDEFAULT;
+ subAdviceESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.ADVICE__SUB_ADVICE, oldSubAdvice, SUB_ADVICE_EDEFAULT, oldSubAdviceESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubAdvice() {
+ return subAdviceESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Applicability> getApplicability() {
+ if (applicability == null) {
+ applicability = new EObjectContainmentEList.Unsettable<Applicability>(Applicability.class, this, trafficincidentPackage.ADVICE__APPLICABILITY);
+ }
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetApplicability() {
+ if (applicability != null) ((InternalEList.Unsettable<?>)applicability).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetApplicability() {
+ return applicability != null && ((InternalEList.Unsettable<?>)applicability).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFreeText() {
+ return freeText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFreeText(String newFreeText) {
+ String oldFreeText = freeText;
+ freeText = newFreeText;
+ boolean oldFreeTextESet = freeTextESet;
+ freeTextESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.ADVICE__FREE_TEXT, oldFreeText, freeText, !oldFreeTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFreeText() {
+ String oldFreeText = freeText;
+ boolean oldFreeTextESet = freeTextESet;
+ freeText = FREE_TEXT_EDEFAULT;
+ freeTextESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.ADVICE__FREE_TEXT, oldFreeText, FREE_TEXT_EDEFAULT, oldFreeTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFreeText() {
+ return freeTextESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentPackage.ADVICE__APPLICABILITY:
+ return ((InternalEList<?>)getApplicability()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.ADVICE__MAIN_ADVICE:
+ return getMainAdvice();
+ case trafficincidentPackage.ADVICE__SUB_ADVICE:
+ return getSubAdvice();
+ case trafficincidentPackage.ADVICE__APPLICABILITY:
+ return getApplicability();
+ case trafficincidentPackage.ADVICE__FREE_TEXT:
+ return getFreeText();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.ADVICE__MAIN_ADVICE:
+ setMainAdvice((AdviceCode)newValue);
+ return;
+ case trafficincidentPackage.ADVICE__SUB_ADVICE:
+ setSubAdvice(newValue);
+ return;
+ case trafficincidentPackage.ADVICE__APPLICABILITY:
+ getApplicability().clear();
+ getApplicability().addAll((Collection<? extends Applicability>)newValue);
+ return;
+ case trafficincidentPackage.ADVICE__FREE_TEXT:
+ setFreeText((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.ADVICE__MAIN_ADVICE:
+ unsetMainAdvice();
+ return;
+ case trafficincidentPackage.ADVICE__SUB_ADVICE:
+ unsetSubAdvice();
+ return;
+ case trafficincidentPackage.ADVICE__APPLICABILITY:
+ unsetApplicability();
+ return;
+ case trafficincidentPackage.ADVICE__FREE_TEXT:
+ unsetFreeText();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.ADVICE__MAIN_ADVICE:
+ return isSetMainAdvice();
+ case trafficincidentPackage.ADVICE__SUB_ADVICE:
+ return isSetSubAdvice();
+ case trafficincidentPackage.ADVICE__APPLICABILITY:
+ return isSetApplicability();
+ case trafficincidentPackage.ADVICE__FREE_TEXT:
+ return isSetFreeText();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mainAdvice: ");
+ if (mainAdviceESet) result.append(mainAdvice); else result.append("<unset>");
+ result.append(", subAdvice: ");
+ if (subAdviceESet) result.append(subAdvice); else result.append("<unset>");
+ result.append(", freeText: ");
+ if (freeTextESet) result.append(freeText); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdviceImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/ApplicabilityImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/ApplicabilityImpl.java
new file mode 100755
index 0000000..fb81cf7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/ApplicabilityImpl.java
@@ -0,0 +1,275 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Applicability</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.ApplicabilityImpl#getVehicleType <em>Vehicle Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.ApplicabilityImpl#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ApplicabilityImpl extends EObjectImpl implements Applicability {
+ /**
+ * The default value of the '{@link #getVehicleType() <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleType()
+ * @generated
+ * @ordered
+ */
+ protected static final VehicleType VEHICLE_TYPE_EDEFAULT = VehicleType.CAR;
+
+ /**
+ * The cached value of the '{@link #getVehicleType() <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleType()
+ * @generated
+ * @ordered
+ */
+ protected VehicleType vehicleType = VEHICLE_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Vehicle Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean vehicleTypeESet;
+
+ /**
+ * The cached value of the '{@link #getVehicleRelatedRestrictions() <em>Vehicle Related Restrictions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleRelatedRestrictions()
+ * @generated
+ * @ordered
+ */
+ protected EList<VehicleRelatedRestriction> vehicleRelatedRestrictions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ApplicabilityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.APPLICABILITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleType getVehicleType() {
+ return vehicleType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVehicleType(VehicleType newVehicleType) {
+ VehicleType oldVehicleType = vehicleType;
+ vehicleType = newVehicleType == null ? VEHICLE_TYPE_EDEFAULT : newVehicleType;
+ boolean oldVehicleTypeESet = vehicleTypeESet;
+ vehicleTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.APPLICABILITY__VEHICLE_TYPE, oldVehicleType, vehicleType, !oldVehicleTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVehicleType() {
+ VehicleType oldVehicleType = vehicleType;
+ boolean oldVehicleTypeESet = vehicleTypeESet;
+ vehicleType = VEHICLE_TYPE_EDEFAULT;
+ vehicleTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.APPLICABILITY__VEHICLE_TYPE, oldVehicleType, VEHICLE_TYPE_EDEFAULT, oldVehicleTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVehicleType() {
+ return vehicleTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VehicleRelatedRestriction> getVehicleRelatedRestrictions() {
+ if (vehicleRelatedRestrictions == null) {
+ vehicleRelatedRestrictions = new EObjectContainmentEList.Unsettable<VehicleRelatedRestriction>(VehicleRelatedRestriction.class, this, trafficincidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS);
+ }
+ return vehicleRelatedRestrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVehicleRelatedRestrictions() {
+ if (vehicleRelatedRestrictions != null) ((InternalEList.Unsettable<?>)vehicleRelatedRestrictions).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVehicleRelatedRestrictions() {
+ return vehicleRelatedRestrictions != null && ((InternalEList.Unsettable<?>)vehicleRelatedRestrictions).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ return ((InternalEList<?>)getVehicleRelatedRestrictions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ return getVehicleType();
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ return getVehicleRelatedRestrictions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ setVehicleType((VehicleType)newValue);
+ return;
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ getVehicleRelatedRestrictions().clear();
+ getVehicleRelatedRestrictions().addAll((Collection<? extends VehicleRelatedRestriction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ unsetVehicleType();
+ return;
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ unsetVehicleRelatedRestrictions();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_TYPE:
+ return isSetVehicleType();
+ case trafficincidentPackage.APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS:
+ return isSetVehicleRelatedRestrictions();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (vehicleType: ");
+ if (vehicleTypeESet) result.append(vehicleType); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //ApplicabilityImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/CauseImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/CauseImpl.java
new file mode 100755
index 0000000..fc0868c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/CauseImpl.java
@@ -0,0 +1,200 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.CauseImpl#getMainCause <em>Main Cause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CauseImpl extends EObjectImpl implements Cause {
+ /**
+ * The default value of the '{@link #getMainCause() <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainCause()
+ * @generated
+ * @ordered
+ */
+ protected static final CauseCode MAIN_CAUSE_EDEFAULT = CauseCode.TRAFFIC_CONGESTION;
+
+ /**
+ * The cached value of the '{@link #getMainCause() <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainCause()
+ * @generated
+ * @ordered
+ */
+ protected CauseCode mainCause = MAIN_CAUSE_EDEFAULT;
+
+ /**
+ * This is true if the Main Cause attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean mainCauseESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CauseCode getMainCause() {
+ return mainCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainCause(CauseCode newMainCause) {
+ CauseCode oldMainCause = mainCause;
+ mainCause = newMainCause == null ? MAIN_CAUSE_EDEFAULT : newMainCause;
+ boolean oldMainCauseESet = mainCauseESet;
+ mainCauseESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.CAUSE__MAIN_CAUSE, oldMainCause, mainCause, !oldMainCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMainCause() {
+ CauseCode oldMainCause = mainCause;
+ boolean oldMainCauseESet = mainCauseESet;
+ mainCause = MAIN_CAUSE_EDEFAULT;
+ mainCauseESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.CAUSE__MAIN_CAUSE, oldMainCause, MAIN_CAUSE_EDEFAULT, oldMainCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMainCause() {
+ return mainCauseESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.CAUSE__MAIN_CAUSE:
+ return getMainCause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.CAUSE__MAIN_CAUSE:
+ setMainCause((CauseCode)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.CAUSE__MAIN_CAUSE:
+ unsetMainCause();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.CAUSE__MAIN_CAUSE:
+ return isSetMainCause();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mainCause: ");
+ if (mainCauseESet) result.append(mainCause); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //CauseImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/DirectCauseImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/DirectCauseImpl.java
new file mode 100755
index 0000000..79144b9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/DirectCauseImpl.java
@@ -0,0 +1,781 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Direct Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#getWarningLevel <em>Warning Level</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#isUnverifiedInformation <em>Unverified Information</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#getSubCause <em>Sub Cause</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#getLaneRestrictions <em>Lane Restrictions</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl#getCauseOffset <em>Cause Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DirectCauseImpl extends CauseImpl implements DirectCause {
+ /**
+ * The default value of the '{@link #getWarningLevel() <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWarningLevel()
+ * @generated
+ * @ordered
+ */
+ protected static final WarningLevel WARNING_LEVEL_EDEFAULT = WarningLevel.INFORMATIVE;
+
+ /**
+ * The cached value of the '{@link #getWarningLevel() <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWarningLevel()
+ * @generated
+ * @ordered
+ */
+ protected WarningLevel warningLevel = WARNING_LEVEL_EDEFAULT;
+
+ /**
+ * This is true if the Warning Level attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean warningLevelESet;
+
+ /**
+ * The default value of the '{@link #isUnverifiedInformation() <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnverifiedInformation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UNVERIFIED_INFORMATION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUnverifiedInformation() <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnverifiedInformation()
+ * @generated
+ * @ordered
+ */
+ protected boolean unverifiedInformation = UNVERIFIED_INFORMATION_EDEFAULT;
+
+ /**
+ * This is true if the Unverified Information attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean unverifiedInformationESet;
+
+ /**
+ * The default value of the '{@link #getSubCause() <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubCause()
+ * @generated
+ * @ordered
+ */
+ protected static final Object SUB_CAUSE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubCause() <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubCause()
+ * @generated
+ * @ordered
+ */
+ protected Object subCause = SUB_CAUSE_EDEFAULT;
+
+ /**
+ * This is true if the Sub Cause attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subCauseESet;
+
+ /**
+ * The default value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LENGTH_AFFECTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected Integer lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+
+ /**
+ * This is true if the Length Affected attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean lengthAffectedESet;
+
+ /**
+ * The cached value of the '{@link #getLaneRestrictions() <em>Lane Restrictions</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictions()
+ * @generated
+ * @ordered
+ */
+ protected LaneRestrictions laneRestrictions;
+
+ /**
+ * This is true if the Lane Restrictions containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean laneRestrictionsESet;
+
+ /**
+ * The default value of the '{@link #getFreeText() <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected static final String FREE_TEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFreeText() <em>Free Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected String freeText = FREE_TEXT_EDEFAULT;
+
+ /**
+ * This is true if the Free Text attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean freeTextESet;
+
+ /**
+ * The default value of the '{@link #getCauseOffset() <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer CAUSE_OFFSET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCauseOffset() <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseOffset()
+ * @generated
+ * @ordered
+ */
+ protected Integer causeOffset = CAUSE_OFFSET_EDEFAULT;
+
+ /**
+ * This is true if the Cause Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean causeOffsetESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DirectCauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.DIRECT_CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WarningLevel getWarningLevel() {
+ return warningLevel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWarningLevel(WarningLevel newWarningLevel) {
+ WarningLevel oldWarningLevel = warningLevel;
+ warningLevel = newWarningLevel == null ? WARNING_LEVEL_EDEFAULT : newWarningLevel;
+ boolean oldWarningLevelESet = warningLevelESet;
+ warningLevelESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__WARNING_LEVEL, oldWarningLevel, warningLevel, !oldWarningLevelESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetWarningLevel() {
+ WarningLevel oldWarningLevel = warningLevel;
+ boolean oldWarningLevelESet = warningLevelESet;
+ warningLevel = WARNING_LEVEL_EDEFAULT;
+ warningLevelESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__WARNING_LEVEL, oldWarningLevel, WARNING_LEVEL_EDEFAULT, oldWarningLevelESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetWarningLevel() {
+ return warningLevelESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnverifiedInformation() {
+ return unverifiedInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnverifiedInformation(boolean newUnverifiedInformation) {
+ boolean oldUnverifiedInformation = unverifiedInformation;
+ unverifiedInformation = newUnverifiedInformation;
+ boolean oldUnverifiedInformationESet = unverifiedInformationESet;
+ unverifiedInformationESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION, oldUnverifiedInformation, unverifiedInformation, !oldUnverifiedInformationESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetUnverifiedInformation() {
+ boolean oldUnverifiedInformation = unverifiedInformation;
+ boolean oldUnverifiedInformationESet = unverifiedInformationESet;
+ unverifiedInformation = UNVERIFIED_INFORMATION_EDEFAULT;
+ unverifiedInformationESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION, oldUnverifiedInformation, UNVERIFIED_INFORMATION_EDEFAULT, oldUnverifiedInformationESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetUnverifiedInformation() {
+ return unverifiedInformationESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getSubCause() {
+ return subCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubCause(Object newSubCause) {
+ Object oldSubCause = subCause;
+ subCause = newSubCause;
+ boolean oldSubCauseESet = subCauseESet;
+ subCauseESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__SUB_CAUSE, oldSubCause, subCause, !oldSubCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubCause() {
+ Object oldSubCause = subCause;
+ boolean oldSubCauseESet = subCauseESet;
+ subCause = SUB_CAUSE_EDEFAULT;
+ subCauseESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__SUB_CAUSE, oldSubCause, SUB_CAUSE_EDEFAULT, oldSubCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubCause() {
+ return subCauseESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLengthAffected() {
+ return lengthAffected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthAffected(Integer newLengthAffected) {
+ Integer oldLengthAffected = lengthAffected;
+ lengthAffected = newLengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffectedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED, oldLengthAffected, lengthAffected, !oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLengthAffected() {
+ Integer oldLengthAffected = lengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+ lengthAffectedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED, oldLengthAffected, LENGTH_AFFECTED_EDEFAULT, oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLengthAffected() {
+ return lengthAffectedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictions getLaneRestrictions() {
+ return laneRestrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLaneRestrictions(LaneRestrictions newLaneRestrictions, NotificationChain msgs) {
+ LaneRestrictions oldLaneRestrictions = laneRestrictions;
+ laneRestrictions = newLaneRestrictions;
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, oldLaneRestrictions, newLaneRestrictions, !oldLaneRestrictionsESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLaneRestrictions(LaneRestrictions newLaneRestrictions) {
+ if (newLaneRestrictions != laneRestrictions) {
+ NotificationChain msgs = null;
+ if (laneRestrictions != null)
+ msgs = ((InternalEObject)laneRestrictions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, msgs);
+ if (newLaneRestrictions != null)
+ msgs = ((InternalEObject)newLaneRestrictions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, msgs);
+ msgs = basicSetLaneRestrictions(newLaneRestrictions, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, newLaneRestrictions, newLaneRestrictions, !oldLaneRestrictionsESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetLaneRestrictions(NotificationChain msgs) {
+ LaneRestrictions oldLaneRestrictions = laneRestrictions;
+ laneRestrictions = null;
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, oldLaneRestrictions, null, oldLaneRestrictionsESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLaneRestrictions() {
+ if (laneRestrictions != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)laneRestrictions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, msgs);
+ msgs = basicUnsetLaneRestrictions(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLaneRestrictionsESet = laneRestrictionsESet;
+ laneRestrictionsESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS, null, null, oldLaneRestrictionsESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLaneRestrictions() {
+ return laneRestrictionsESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFreeText() {
+ return freeText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFreeText(String newFreeText) {
+ String oldFreeText = freeText;
+ freeText = newFreeText;
+ boolean oldFreeTextESet = freeTextESet;
+ freeTextESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__FREE_TEXT, oldFreeText, freeText, !oldFreeTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFreeText() {
+ String oldFreeText = freeText;
+ boolean oldFreeTextESet = freeTextESet;
+ freeText = FREE_TEXT_EDEFAULT;
+ freeTextESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__FREE_TEXT, oldFreeText, FREE_TEXT_EDEFAULT, oldFreeTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFreeText() {
+ return freeTextESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getCauseOffset() {
+ return causeOffset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCauseOffset(Integer newCauseOffset) {
+ Integer oldCauseOffset = causeOffset;
+ causeOffset = newCauseOffset;
+ boolean oldCauseOffsetESet = causeOffsetESet;
+ causeOffsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.DIRECT_CAUSE__CAUSE_OFFSET, oldCauseOffset, causeOffset, !oldCauseOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauseOffset() {
+ Integer oldCauseOffset = causeOffset;
+ boolean oldCauseOffsetESet = causeOffsetESet;
+ causeOffset = CAUSE_OFFSET_EDEFAULT;
+ causeOffsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.DIRECT_CAUSE__CAUSE_OFFSET, oldCauseOffset, CAUSE_OFFSET_EDEFAULT, oldCauseOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauseOffset() {
+ return causeOffsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ return basicUnsetLaneRestrictions(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ return getWarningLevel();
+ case trafficincidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ return isUnverifiedInformation();
+ case trafficincidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ return getSubCause();
+ case trafficincidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ return getLengthAffected();
+ case trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ return getLaneRestrictions();
+ case trafficincidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ return getFreeText();
+ case trafficincidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ return getCauseOffset();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ setWarningLevel((WarningLevel)newValue);
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ setUnverifiedInformation((Boolean)newValue);
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ setSubCause(newValue);
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ setLengthAffected((Integer)newValue);
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ setLaneRestrictions((LaneRestrictions)newValue);
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ setFreeText((String)newValue);
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ setCauseOffset((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ unsetWarningLevel();
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ unsetUnverifiedInformation();
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ unsetSubCause();
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ unsetLengthAffected();
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ unsetLaneRestrictions();
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ unsetFreeText();
+ return;
+ case trafficincidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ unsetCauseOffset();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ return isSetWarningLevel();
+ case trafficincidentPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ return isSetUnverifiedInformation();
+ case trafficincidentPackage.DIRECT_CAUSE__SUB_CAUSE:
+ return isSetSubCause();
+ case trafficincidentPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ return isSetLengthAffected();
+ case trafficincidentPackage.DIRECT_CAUSE__LANE_RESTRICTIONS:
+ return isSetLaneRestrictions();
+ case trafficincidentPackage.DIRECT_CAUSE__FREE_TEXT:
+ return isSetFreeText();
+ case trafficincidentPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ return isSetCauseOffset();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (warningLevel: ");
+ if (warningLevelESet) result.append(warningLevel); else result.append("<unset>");
+ result.append(", unverifiedInformation: ");
+ if (unverifiedInformationESet) result.append(unverifiedInformation); else result.append("<unset>");
+ result.append(", subCause: ");
+ if (subCauseESet) result.append(subCause); else result.append("<unset>");
+ result.append(", lengthAffected: ");
+ if (lengthAffectedESet) result.append(lengthAffected); else result.append("<unset>");
+ result.append(", freeText: ");
+ if (freeTextESet) result.append(freeText); else result.append("<unset>");
+ result.append(", causeOffset: ");
+ if (causeOffsetESet) result.append(causeOffset); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //DirectCauseImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LaneRestrictionsImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LaneRestrictionsImpl.java
new file mode 100755
index 0000000..008201e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LaneRestrictionsImpl.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lane Restrictions</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LaneRestrictionsImpl#getLaneRestrictionType <em>Lane Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LaneRestrictionsImpl#getNumberOfLanes <em>Number Of Lanes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LaneRestrictionsImpl extends EObjectImpl implements LaneRestrictions {
+ /**
+ * The default value of the '{@link #getLaneRestrictionType() <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected static final LaneRestrictionType LANE_RESTRICTION_TYPE_EDEFAULT = LaneRestrictionType.LANES_CLOSED;
+
+ /**
+ * The cached value of the '{@link #getLaneRestrictionType() <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected LaneRestrictionType laneRestrictionType = LANE_RESTRICTION_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Lane Restriction Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean laneRestrictionTypeESet;
+
+ /**
+ * The default value of the '{@link #getNumberOfLanes() <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfLanes()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer NUMBER_OF_LANES_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNumberOfLanes() <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfLanes()
+ * @generated
+ * @ordered
+ */
+ protected Integer numberOfLanes = NUMBER_OF_LANES_EDEFAULT;
+
+ /**
+ * This is true if the Number Of Lanes attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean numberOfLanesESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LaneRestrictionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.LANE_RESTRICTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictionType getLaneRestrictionType() {
+ return laneRestrictionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLaneRestrictionType(LaneRestrictionType newLaneRestrictionType) {
+ LaneRestrictionType oldLaneRestrictionType = laneRestrictionType;
+ laneRestrictionType = newLaneRestrictionType == null ? LANE_RESTRICTION_TYPE_EDEFAULT : newLaneRestrictionType;
+ boolean oldLaneRestrictionTypeESet = laneRestrictionTypeESet;
+ laneRestrictionTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE, oldLaneRestrictionType, laneRestrictionType, !oldLaneRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLaneRestrictionType() {
+ LaneRestrictionType oldLaneRestrictionType = laneRestrictionType;
+ boolean oldLaneRestrictionTypeESet = laneRestrictionTypeESet;
+ laneRestrictionType = LANE_RESTRICTION_TYPE_EDEFAULT;
+ laneRestrictionTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE, oldLaneRestrictionType, LANE_RESTRICTION_TYPE_EDEFAULT, oldLaneRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLaneRestrictionType() {
+ return laneRestrictionTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getNumberOfLanes() {
+ return numberOfLanes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfLanes(Integer newNumberOfLanes) {
+ Integer oldNumberOfLanes = numberOfLanes;
+ numberOfLanes = newNumberOfLanes;
+ boolean oldNumberOfLanesESet = numberOfLanesESet;
+ numberOfLanesESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES, oldNumberOfLanes, numberOfLanes, !oldNumberOfLanesESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetNumberOfLanes() {
+ Integer oldNumberOfLanes = numberOfLanes;
+ boolean oldNumberOfLanesESet = numberOfLanesESet;
+ numberOfLanes = NUMBER_OF_LANES_EDEFAULT;
+ numberOfLanesESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES, oldNumberOfLanes, NUMBER_OF_LANES_EDEFAULT, oldNumberOfLanesESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNumberOfLanes() {
+ return numberOfLanesESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ return getLaneRestrictionType();
+ case trafficincidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ return getNumberOfLanes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ setLaneRestrictionType((LaneRestrictionType)newValue);
+ return;
+ case trafficincidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ setNumberOfLanes((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ unsetLaneRestrictionType();
+ return;
+ case trafficincidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ unsetNumberOfLanes();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE:
+ return isSetLaneRestrictionType();
+ case trafficincidentPackage.LANE_RESTRICTIONS__NUMBER_OF_LANES:
+ return isSetNumberOfLanes();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (laneRestrictionType: ");
+ if (laneRestrictionTypeESet) result.append(laneRestrictionType); else result.append("<unset>");
+ result.append(", numberOfLanes: ");
+ if (numberOfLanesESet) result.append(numberOfLanes); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LaneRestrictionsImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LinkedCauseImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LinkedCauseImpl.java
new file mode 100755
index 0000000..fa3bd5d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/LinkedCauseImpl.java
@@ -0,0 +1,198 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linked Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LinkedCauseImpl#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkedCauseImpl extends CauseImpl implements LinkedCause {
+ /**
+ * The default value of the '{@link #getCauseTrafficIncidentId() <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCauseTrafficIncidentId() <em>Cause Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected Integer causeTrafficIncidentId = CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT;
+
+ /**
+ * This is true if the Cause Traffic Incident Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean causeTrafficIncidentIdESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkedCauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.LINKED_CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getCauseTrafficIncidentId() {
+ return causeTrafficIncidentId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCauseTrafficIncidentId(Integer newCauseTrafficIncidentId) {
+ Integer oldCauseTrafficIncidentId = causeTrafficIncidentId;
+ causeTrafficIncidentId = newCauseTrafficIncidentId;
+ boolean oldCauseTrafficIncidentIdESet = causeTrafficIncidentIdESet;
+ causeTrafficIncidentIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID, oldCauseTrafficIncidentId, causeTrafficIncidentId, !oldCauseTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauseTrafficIncidentId() {
+ Integer oldCauseTrafficIncidentId = causeTrafficIncidentId;
+ boolean oldCauseTrafficIncidentIdESet = causeTrafficIncidentIdESet;
+ causeTrafficIncidentId = CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT;
+ causeTrafficIncidentIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID, oldCauseTrafficIncidentId, CAUSE_TRAFFIC_INCIDENT_ID_EDEFAULT, oldCauseTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauseTrafficIncidentId() {
+ return causeTrafficIncidentIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ return getCauseTrafficIncidentId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ setCauseTrafficIncidentId((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ unsetCauseTrafficIncidentId();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID:
+ return isSetCauseTrafficIncidentId();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (causeTrafficIncidentId: ");
+ if (causeTrafficIncidentIdESet) result.append(causeTrafficIncidentId); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinkedCauseImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitImpl.java
new file mode 100755
index 0000000..1bc26bc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitImpl.java
@@ -0,0 +1,386 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Speed Limit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl#getTemporarySpeedLimitSections <em>Temporary Speed Limit Sections</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl#isUnitsMPH <em>Units MPH</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl#getOffset <em>Offset</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl#getApplicability <em>Applicability</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporarySpeedLimitImpl extends EObjectImpl implements TemporarySpeedLimit {
+ /**
+ * The cached value of the '{@link #getTemporarySpeedLimitSections() <em>Temporary Speed Limit Sections</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporarySpeedLimitSections()
+ * @generated
+ * @ordered
+ */
+ protected EList<TemporarySpeedLimitSection> temporarySpeedLimitSections;
+
+ /**
+ * The default value of the '{@link #isUnitsMPH() <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnitsMPH()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UNITS_MPH_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUnitsMPH() <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnitsMPH()
+ * @generated
+ * @ordered
+ */
+ protected boolean unitsMPH = UNITS_MPH_EDEFAULT;
+
+ /**
+ * This is true if the Units MPH attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean unitsMPHESet;
+
+ /**
+ * The default value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer OFFSET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected Integer offset = OFFSET_EDEFAULT;
+
+ /**
+ * This is true if the Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean offsetESet;
+
+ /**
+ * The cached value of the '{@link #getApplicability() <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicability()
+ * @generated
+ * @ordered
+ */
+ protected EList<Applicability> applicability;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemporarySpeedLimitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.TEMPORARY_SPEED_LIMIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TemporarySpeedLimitSection> getTemporarySpeedLimitSections() {
+ if (temporarySpeedLimitSections == null) {
+ temporarySpeedLimitSections = new EObjectContainmentEList<TemporarySpeedLimitSection>(TemporarySpeedLimitSection.class, this, trafficincidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS);
+ }
+ return temporarySpeedLimitSections;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnitsMPH() {
+ return unitsMPH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnitsMPH(boolean newUnitsMPH) {
+ boolean oldUnitsMPH = unitsMPH;
+ unitsMPH = newUnitsMPH;
+ boolean oldUnitsMPHESet = unitsMPHESet;
+ unitsMPHESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH, oldUnitsMPH, unitsMPH, !oldUnitsMPHESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetUnitsMPH() {
+ boolean oldUnitsMPH = unitsMPH;
+ boolean oldUnitsMPHESet = unitsMPHESet;
+ unitsMPH = UNITS_MPH_EDEFAULT;
+ unitsMPHESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH, oldUnitsMPH, UNITS_MPH_EDEFAULT, oldUnitsMPHESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetUnitsMPH() {
+ return unitsMPHESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getOffset() {
+ return offset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOffset(Integer newOffset) {
+ Integer oldOffset = offset;
+ offset = newOffset;
+ boolean oldOffsetESet = offsetESet;
+ offsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET, oldOffset, offset, !oldOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOffset() {
+ Integer oldOffset = offset;
+ boolean oldOffsetESet = offsetESet;
+ offset = OFFSET_EDEFAULT;
+ offsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET, oldOffset, OFFSET_EDEFAULT, oldOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOffset() {
+ return offsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Applicability> getApplicability() {
+ if (applicability == null) {
+ applicability = new EObjectContainmentEList<Applicability>(Applicability.class, this, trafficincidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY);
+ }
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ return ((InternalEList<?>)getTemporarySpeedLimitSections()).basicRemove(otherEnd, msgs);
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ return ((InternalEList<?>)getApplicability()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ return getTemporarySpeedLimitSections();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ return isUnitsMPH();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ return getOffset();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ return getApplicability();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ getTemporarySpeedLimitSections().clear();
+ getTemporarySpeedLimitSections().addAll((Collection<? extends TemporarySpeedLimitSection>)newValue);
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ setUnitsMPH((Boolean)newValue);
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ setOffset((Integer)newValue);
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ getApplicability().clear();
+ getApplicability().addAll((Collection<? extends Applicability>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ getTemporarySpeedLimitSections().clear();
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ unsetUnitsMPH();
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ unsetOffset();
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ getApplicability().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS:
+ return temporarySpeedLimitSections != null && !temporarySpeedLimitSections.isEmpty();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ return isSetUnitsMPH();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ return isSetOffset();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT__APPLICABILITY:
+ return applicability != null && !applicability.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (unitsMPH: ");
+ if (unitsMPHESet) result.append(unitsMPH); else result.append("<unset>");
+ result.append(", offset: ");
+ if (offsetESet) result.append(offset); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TemporarySpeedLimitImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitSectionImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitSectionImpl.java
new file mode 100755
index 0000000..29b6107
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TemporarySpeedLimitSectionImpl.java
@@ -0,0 +1,378 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Speed Limit Section</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitValue <em>Speed Limit Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitLength <em>Speed Limit Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporarySpeedLimitSectionImpl extends EObjectImpl implements TemporarySpeedLimitSection {
+ /**
+ * The default value of the '{@link #getSpeedLimitValue() <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValue()
+ * @generated
+ * @ordered
+ */
+ protected static final short SPEED_LIMIT_VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitValue() <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValue()
+ * @generated
+ * @ordered
+ */
+ protected short speedLimitValue = SPEED_LIMIT_VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitValueESet;
+
+ /**
+ * The default value of the '{@link #getSpeedLimitValueWet() <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ * @ordered
+ */
+ protected static final short SPEED_LIMIT_VALUE_WET_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitValueWet() <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ * @ordered
+ */
+ protected short speedLimitValueWet = SPEED_LIMIT_VALUE_WET_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Value Wet attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitValueWetESet;
+
+ /**
+ * The default value of the '{@link #getSpeedLimitLength() <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitLength()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer SPEED_LIMIT_LENGTH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitLength() <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitLength()
+ * @generated
+ * @ordered
+ */
+ protected Integer speedLimitLength = SPEED_LIMIT_LENGTH_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Length attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitLengthESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemporarySpeedLimitSectionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.TEMPORARY_SPEED_LIMIT_SECTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public short getSpeedLimitValue() {
+ return speedLimitValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitValue(short newSpeedLimitValue) {
+ short oldSpeedLimitValue = speedLimitValue;
+ speedLimitValue = newSpeedLimitValue;
+ boolean oldSpeedLimitValueESet = speedLimitValueESet;
+ speedLimitValueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE, oldSpeedLimitValue, speedLimitValue, !oldSpeedLimitValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitValue() {
+ short oldSpeedLimitValue = speedLimitValue;
+ boolean oldSpeedLimitValueESet = speedLimitValueESet;
+ speedLimitValue = SPEED_LIMIT_VALUE_EDEFAULT;
+ speedLimitValueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE, oldSpeedLimitValue, SPEED_LIMIT_VALUE_EDEFAULT, oldSpeedLimitValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitValue() {
+ return speedLimitValueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public short getSpeedLimitValueWet() {
+ return speedLimitValueWet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitValueWet(short newSpeedLimitValueWet) {
+ short oldSpeedLimitValueWet = speedLimitValueWet;
+ speedLimitValueWet = newSpeedLimitValueWet;
+ boolean oldSpeedLimitValueWetESet = speedLimitValueWetESet;
+ speedLimitValueWetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET, oldSpeedLimitValueWet, speedLimitValueWet, !oldSpeedLimitValueWetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitValueWet() {
+ short oldSpeedLimitValueWet = speedLimitValueWet;
+ boolean oldSpeedLimitValueWetESet = speedLimitValueWetESet;
+ speedLimitValueWet = SPEED_LIMIT_VALUE_WET_EDEFAULT;
+ speedLimitValueWetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET, oldSpeedLimitValueWet, SPEED_LIMIT_VALUE_WET_EDEFAULT, oldSpeedLimitValueWetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitValueWet() {
+ return speedLimitValueWetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getSpeedLimitLength() {
+ return speedLimitLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitLength(Integer newSpeedLimitLength) {
+ Integer oldSpeedLimitLength = speedLimitLength;
+ speedLimitLength = newSpeedLimitLength;
+ boolean oldSpeedLimitLengthESet = speedLimitLengthESet;
+ speedLimitLengthESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH, oldSpeedLimitLength, speedLimitLength, !oldSpeedLimitLengthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitLength() {
+ Integer oldSpeedLimitLength = speedLimitLength;
+ boolean oldSpeedLimitLengthESet = speedLimitLengthESet;
+ speedLimitLength = SPEED_LIMIT_LENGTH_EDEFAULT;
+ speedLimitLengthESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH, oldSpeedLimitLength, SPEED_LIMIT_LENGTH_EDEFAULT, oldSpeedLimitLengthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitLength() {
+ return speedLimitLengthESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ return getSpeedLimitValue();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ return getSpeedLimitValueWet();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ return getSpeedLimitLength();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ setSpeedLimitValue((Short)newValue);
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ setSpeedLimitValueWet((Short)newValue);
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ setSpeedLimitLength((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ unsetSpeedLimitValue();
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ unsetSpeedLimitValueWet();
+ return;
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ unsetSpeedLimitLength();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ return isSetSpeedLimitValue();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ return isSetSpeedLimitValueWet();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ return isSetSpeedLimitLength();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (speedLimitValue: ");
+ if (speedLimitValueESet) result.append(speedLimitValue); else result.append("<unset>");
+ result.append(", speedLimitValueWet: ");
+ if (speedLimitValueWetESet) result.append(speedLimitValueWet); else result.append("<unset>");
+ result.append(", speedLimitLength: ");
+ if (speedLimitLengthESet) result.append(speedLimitLength); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TemporarySpeedLimitSectionImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TrafficIncidentImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TrafficIncidentImpl.java
new file mode 100755
index 0000000..575baa5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/TrafficIncidentImpl.java
@@ -0,0 +1,1914 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import java.util.Collection;
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.common.RectangularArea;
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Traffic Incident</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getEffectCode <em>Effect Code</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getEffectText <em>Effect Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getStartTime <em>Start Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getStopTime <em>Stop Time</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getTendency <em>Tendency</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getTendencyText <em>Tendency Text</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getDelay <em>Delay</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getSegmentSpeedLimit <em>Segment Speed Limit</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getCauses <em>Causes</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getLocation <em>Location</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getAdvices <em>Advices</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getApplicability <em>Applicability</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getTrafficIncidentId <em>Traffic Incident Id</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getLocationInfo <em>Location Info</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getCauseTexts <em>Cause Texts</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getApplicabilityTexts <em>Applicability Texts</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getAdviceTexts <em>Advice Texts</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getCategoryIds <em>Category Ids</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getLocationBoundingBox <em>Location Bounding Box</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TrafficIncidentImpl extends EObjectImpl implements TrafficIncident {
+ /**
+ * The default value of the '{@link #getEffectCode() <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectCode()
+ * @generated
+ * @ordered
+ */
+ protected static final EffectCode EFFECT_CODE_EDEFAULT = EffectCode.TRAFFIC_FLOW_UNKNOWN;
+
+ /**
+ * The cached value of the '{@link #getEffectCode() <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectCode()
+ * @generated
+ * @ordered
+ */
+ protected EffectCode effectCode = EFFECT_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Effect Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean effectCodeESet;
+
+ /**
+ * The default value of the '{@link #getEffectText() <em>Effect Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectText()
+ * @generated
+ * @ordered
+ */
+ protected static final String EFFECT_TEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEffectText() <em>Effect Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectText()
+ * @generated
+ * @ordered
+ */
+ protected String effectText = EFFECT_TEXT_EDEFAULT;
+
+ /**
+ * This is true if the Effect Text attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean effectTextESet;
+
+ /**
+ * The default value of the '{@link #getStartTime() <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStartTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date START_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStartTime() <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStartTime()
+ * @generated
+ * @ordered
+ */
+ protected Date startTime = START_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Start Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean startTimeESet;
+
+ /**
+ * The default value of the '{@link #getStopTime() <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStopTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date STOP_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStopTime() <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStopTime()
+ * @generated
+ * @ordered
+ */
+ protected Date stopTime = STOP_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Stop Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean stopTimeESet;
+
+ /**
+ * The default value of the '{@link #getTendency() <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendency()
+ * @generated
+ * @ordered
+ */
+ protected static final Tendency TENDENCY_EDEFAULT = Tendency.SLIGHTLY_INCREASING;
+
+ /**
+ * The cached value of the '{@link #getTendency() <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendency()
+ * @generated
+ * @ordered
+ */
+ protected Tendency tendency = TENDENCY_EDEFAULT;
+
+ /**
+ * This is true if the Tendency attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean tendencyESet;
+
+ /**
+ * The default value of the '{@link #getTendencyText() <em>Tendency Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendencyText()
+ * @generated
+ * @ordered
+ */
+ protected static final String TENDENCY_TEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTendencyText() <em>Tendency Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendencyText()
+ * @generated
+ * @ordered
+ */
+ protected String tendencyText = TENDENCY_TEXT_EDEFAULT;
+
+ /**
+ * This is true if the Tendency Text attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean tendencyTextESet;
+
+ /**
+ * The default value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LENGTH_AFFECTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected Integer lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+
+ /**
+ * This is true if the Length Affected attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean lengthAffectedESet;
+
+ /**
+ * The default value of the '{@link #getAverageSpeedAbsolute() <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer AVERAGE_SPEED_ABSOLUTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAverageSpeedAbsolute() <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected Integer averageSpeedAbsolute = AVERAGE_SPEED_ABSOLUTE_EDEFAULT;
+
+ /**
+ * This is true if the Average Speed Absolute attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean averageSpeedAbsoluteESet;
+
+ /**
+ * The default value of the '{@link #getDelay() <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelay()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer DELAY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDelay() <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelay()
+ * @generated
+ * @ordered
+ */
+ protected Integer delay = DELAY_EDEFAULT;
+
+ /**
+ * This is true if the Delay attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean delayESet;
+
+ /**
+ * The default value of the '{@link #getSegmentSpeedLimit() <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer SEGMENT_SPEED_LIMIT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSegmentSpeedLimit() <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected Integer segmentSpeedLimit = SEGMENT_SPEED_LIMIT_EDEFAULT;
+
+ /**
+ * This is true if the Segment Speed Limit attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean segmentSpeedLimitESet;
+
+ /**
+ * The cached value of the '{@link #getCauses() <em>Causes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauses()
+ * @generated
+ * @ordered
+ */
+ protected EList<Cause> causes;
+
+ /**
+ * The cached value of the '{@link #getLocation() <em>Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected Location location;
+
+ /**
+ * This is true if the Location containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean locationESet;
+
+ /**
+ * The cached value of the '{@link #getAdvices() <em>Advices</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAdvices()
+ * @generated
+ * @ordered
+ */
+ protected EList<Advice> advices;
+
+ /**
+ * The cached value of the '{@link #getApplicability() <em>Applicability</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicability()
+ * @generated
+ * @ordered
+ */
+ protected EList<Applicability> applicability;
+
+ /**
+ * The default value of the '{@link #getTrafficIncidentId() <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer TRAFFIC_INCIDENT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTrafficIncidentId() <em>Traffic Incident Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTrafficIncidentId()
+ * @generated
+ * @ordered
+ */
+ protected Integer trafficIncidentId = TRAFFIC_INCIDENT_ID_EDEFAULT;
+
+ /**
+ * This is true if the Traffic Incident Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean trafficIncidentIdESet;
+
+ /**
+ * The cached value of the '{@link #getLocationInfo() <em>Location Info</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationInfo()
+ * @generated
+ * @ordered
+ */
+ protected LocationInfo locationInfo;
+
+ /**
+ * This is true if the Location Info containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean locationInfoESet;
+
+ /**
+ * The cached value of the '{@link #getCauseTexts() <em>Cause Texts</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseTexts()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> causeTexts;
+
+ /**
+ * The cached value of the '{@link #getApplicabilityTexts() <em>Applicability Texts</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicabilityTexts()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> applicabilityTexts;
+
+ /**
+ * The cached value of the '{@link #getAdviceTexts() <em>Advice Texts</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAdviceTexts()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> adviceTexts;
+
+ /**
+ * The cached value of the '{@link #getCategoryIds() <em>Category Ids</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategoryIds()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> categoryIds;
+
+ /**
+ * The cached value of the '{@link #getLocationBoundingBox() <em>Location Bounding Box</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationBoundingBox()
+ * @generated
+ * @ordered
+ */
+ protected RectangularArea locationBoundingBox;
+
+ /**
+ * The default value of the '{@link #getExpectedSpeedAbsolute() <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer EXPECTED_SPEED_ABSOLUTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExpectedSpeedAbsolute() <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected Integer expectedSpeedAbsolute = EXPECTED_SPEED_ABSOLUTE_EDEFAULT;
+
+ /**
+ * This is true if the Expected Speed Absolute attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expectedSpeedAbsoluteESet;
+
+ /**
+ * The cached value of the '{@link #getTemporarySpeedLimit() <em>Temporary Speed Limit</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected EList<TemporarySpeedLimit> temporarySpeedLimit;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TrafficIncidentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.TRAFFIC_INCIDENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EffectCode getEffectCode() {
+ return effectCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEffectCode(EffectCode newEffectCode) {
+ EffectCode oldEffectCode = effectCode;
+ effectCode = newEffectCode == null ? EFFECT_CODE_EDEFAULT : newEffectCode;
+ boolean oldEffectCodeESet = effectCodeESet;
+ effectCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE, oldEffectCode, effectCode, !oldEffectCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetEffectCode() {
+ EffectCode oldEffectCode = effectCode;
+ boolean oldEffectCodeESet = effectCodeESet;
+ effectCode = EFFECT_CODE_EDEFAULT;
+ effectCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE, oldEffectCode, EFFECT_CODE_EDEFAULT, oldEffectCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEffectCode() {
+ return effectCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEffectText() {
+ return effectText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEffectText(String newEffectText) {
+ String oldEffectText = effectText;
+ effectText = newEffectText;
+ boolean oldEffectTextESet = effectTextESet;
+ effectTextESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_TEXT, oldEffectText, effectText, !oldEffectTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetEffectText() {
+ String oldEffectText = effectText;
+ boolean oldEffectTextESet = effectTextESet;
+ effectText = EFFECT_TEXT_EDEFAULT;
+ effectTextESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_TEXT, oldEffectText, EFFECT_TEXT_EDEFAULT, oldEffectTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEffectText() {
+ return effectTextESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStartTime(Date newStartTime) {
+ Date oldStartTime = startTime;
+ startTime = newStartTime;
+ boolean oldStartTimeESet = startTimeESet;
+ startTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__START_TIME, oldStartTime, startTime, !oldStartTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStartTime() {
+ Date oldStartTime = startTime;
+ boolean oldStartTimeESet = startTimeESet;
+ startTime = START_TIME_EDEFAULT;
+ startTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__START_TIME, oldStartTime, START_TIME_EDEFAULT, oldStartTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStartTime() {
+ return startTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStopTime() {
+ return stopTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStopTime(Date newStopTime) {
+ Date oldStopTime = stopTime;
+ stopTime = newStopTime;
+ boolean oldStopTimeESet = stopTimeESet;
+ stopTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__STOP_TIME, oldStopTime, stopTime, !oldStopTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStopTime() {
+ Date oldStopTime = stopTime;
+ boolean oldStopTimeESet = stopTimeESet;
+ stopTime = STOP_TIME_EDEFAULT;
+ stopTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__STOP_TIME, oldStopTime, STOP_TIME_EDEFAULT, oldStopTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStopTime() {
+ return stopTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tendency getTendency() {
+ return tendency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTendency(Tendency newTendency) {
+ Tendency oldTendency = tendency;
+ tendency = newTendency == null ? TENDENCY_EDEFAULT : newTendency;
+ boolean oldTendencyESet = tendencyESet;
+ tendencyESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY, oldTendency, tendency, !oldTendencyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTendency() {
+ Tendency oldTendency = tendency;
+ boolean oldTendencyESet = tendencyESet;
+ tendency = TENDENCY_EDEFAULT;
+ tendencyESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY, oldTendency, TENDENCY_EDEFAULT, oldTendencyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTendency() {
+ return tendencyESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTendencyText() {
+ return tendencyText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTendencyText(String newTendencyText) {
+ String oldTendencyText = tendencyText;
+ tendencyText = newTendencyText;
+ boolean oldTendencyTextESet = tendencyTextESet;
+ tendencyTextESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY_TEXT, oldTendencyText, tendencyText, !oldTendencyTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTendencyText() {
+ String oldTendencyText = tendencyText;
+ boolean oldTendencyTextESet = tendencyTextESet;
+ tendencyText = TENDENCY_TEXT_EDEFAULT;
+ tendencyTextESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY_TEXT, oldTendencyText, TENDENCY_TEXT_EDEFAULT, oldTendencyTextESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTendencyText() {
+ return tendencyTextESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLengthAffected() {
+ return lengthAffected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthAffected(Integer newLengthAffected) {
+ Integer oldLengthAffected = lengthAffected;
+ lengthAffected = newLengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffectedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED, oldLengthAffected, lengthAffected, !oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLengthAffected() {
+ Integer oldLengthAffected = lengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+ lengthAffectedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED, oldLengthAffected, LENGTH_AFFECTED_EDEFAULT, oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLengthAffected() {
+ return lengthAffectedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getAverageSpeedAbsolute() {
+ return averageSpeedAbsolute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAverageSpeedAbsolute(Integer newAverageSpeedAbsolute) {
+ Integer oldAverageSpeedAbsolute = averageSpeedAbsolute;
+ averageSpeedAbsolute = newAverageSpeedAbsolute;
+ boolean oldAverageSpeedAbsoluteESet = averageSpeedAbsoluteESet;
+ averageSpeedAbsoluteESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE, oldAverageSpeedAbsolute, averageSpeedAbsolute, !oldAverageSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAverageSpeedAbsolute() {
+ Integer oldAverageSpeedAbsolute = averageSpeedAbsolute;
+ boolean oldAverageSpeedAbsoluteESet = averageSpeedAbsoluteESet;
+ averageSpeedAbsolute = AVERAGE_SPEED_ABSOLUTE_EDEFAULT;
+ averageSpeedAbsoluteESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE, oldAverageSpeedAbsolute, AVERAGE_SPEED_ABSOLUTE_EDEFAULT, oldAverageSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAverageSpeedAbsolute() {
+ return averageSpeedAbsoluteESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getDelay() {
+ return delay;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDelay(Integer newDelay) {
+ Integer oldDelay = delay;
+ delay = newDelay;
+ boolean oldDelayESet = delayESet;
+ delayESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__DELAY, oldDelay, delay, !oldDelayESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDelay() {
+ Integer oldDelay = delay;
+ boolean oldDelayESet = delayESet;
+ delay = DELAY_EDEFAULT;
+ delayESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__DELAY, oldDelay, DELAY_EDEFAULT, oldDelayESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDelay() {
+ return delayESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getSegmentSpeedLimit() {
+ return segmentSpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSegmentSpeedLimit(Integer newSegmentSpeedLimit) {
+ Integer oldSegmentSpeedLimit = segmentSpeedLimit;
+ segmentSpeedLimit = newSegmentSpeedLimit;
+ boolean oldSegmentSpeedLimitESet = segmentSpeedLimitESet;
+ segmentSpeedLimitESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT, oldSegmentSpeedLimit, segmentSpeedLimit, !oldSegmentSpeedLimitESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSegmentSpeedLimit() {
+ Integer oldSegmentSpeedLimit = segmentSpeedLimit;
+ boolean oldSegmentSpeedLimitESet = segmentSpeedLimitESet;
+ segmentSpeedLimit = SEGMENT_SPEED_LIMIT_EDEFAULT;
+ segmentSpeedLimitESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT, oldSegmentSpeedLimit, SEGMENT_SPEED_LIMIT_EDEFAULT, oldSegmentSpeedLimitESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSegmentSpeedLimit() {
+ return segmentSpeedLimitESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Cause> getCauses() {
+ if (causes == null) {
+ causes = new EObjectContainmentEList.Unsettable<Cause>(Cause.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__CAUSES);
+ }
+ return causes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauses() {
+ if (causes != null) ((InternalEList.Unsettable<?>)causes).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauses() {
+ return causes != null && ((InternalEList.Unsettable<?>)causes).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Location getLocation() {
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLocation(Location newLocation, NotificationChain msgs) {
+ Location oldLocation = location;
+ location = newLocation;
+ boolean oldLocationESet = locationESet;
+ locationESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, oldLocation, newLocation, !oldLocationESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocation(Location newLocation) {
+ if (newLocation != location) {
+ NotificationChain msgs = null;
+ if (location != null)
+ msgs = ((InternalEObject)location).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, null, msgs);
+ if (newLocation != null)
+ msgs = ((InternalEObject)newLocation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, null, msgs);
+ msgs = basicSetLocation(newLocation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLocationESet = locationESet;
+ locationESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, newLocation, newLocation, !oldLocationESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetLocation(NotificationChain msgs) {
+ Location oldLocation = location;
+ location = null;
+ boolean oldLocationESet = locationESet;
+ locationESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, oldLocation, null, oldLocationESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLocation() {
+ if (location != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)location).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, null, msgs);
+ msgs = basicUnsetLocation(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLocationESet = locationESet;
+ locationESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION, null, null, oldLocationESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLocation() {
+ return locationESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Advice> getAdvices() {
+ if (advices == null) {
+ advices = new EObjectContainmentEList.Unsettable<Advice>(Advice.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__ADVICES);
+ }
+ return advices;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAdvices() {
+ if (advices != null) ((InternalEList.Unsettable<?>)advices).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAdvices() {
+ return advices != null && ((InternalEList.Unsettable<?>)advices).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Applicability> getApplicability() {
+ if (applicability == null) {
+ applicability = new EObjectContainmentEList.Unsettable<Applicability>(Applicability.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY);
+ }
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetApplicability() {
+ if (applicability != null) ((InternalEList.Unsettable<?>)applicability).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetApplicability() {
+ return applicability != null && ((InternalEList.Unsettable<?>)applicability).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getTrafficIncidentId() {
+ return trafficIncidentId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTrafficIncidentId(Integer newTrafficIncidentId) {
+ Integer oldTrafficIncidentId = trafficIncidentId;
+ trafficIncidentId = newTrafficIncidentId;
+ boolean oldTrafficIncidentIdESet = trafficIncidentIdESet;
+ trafficIncidentIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID, oldTrafficIncidentId, trafficIncidentId, !oldTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTrafficIncidentId() {
+ Integer oldTrafficIncidentId = trafficIncidentId;
+ boolean oldTrafficIncidentIdESet = trafficIncidentIdESet;
+ trafficIncidentId = TRAFFIC_INCIDENT_ID_EDEFAULT;
+ trafficIncidentIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID, oldTrafficIncidentId, TRAFFIC_INCIDENT_ID_EDEFAULT, oldTrafficIncidentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTrafficIncidentId() {
+ return trafficIncidentIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationInfo getLocationInfo() {
+ return locationInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLocationInfo(LocationInfo newLocationInfo, NotificationChain msgs) {
+ LocationInfo oldLocationInfo = locationInfo;
+ locationInfo = newLocationInfo;
+ boolean oldLocationInfoESet = locationInfoESet;
+ locationInfoESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, oldLocationInfo, newLocationInfo, !oldLocationInfoESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocationInfo(LocationInfo newLocationInfo) {
+ if (newLocationInfo != locationInfo) {
+ NotificationChain msgs = null;
+ if (locationInfo != null)
+ msgs = ((InternalEObject)locationInfo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, null, msgs);
+ if (newLocationInfo != null)
+ msgs = ((InternalEObject)newLocationInfo).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, null, msgs);
+ msgs = basicSetLocationInfo(newLocationInfo, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLocationInfoESet = locationInfoESet;
+ locationInfoESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, newLocationInfo, newLocationInfo, !oldLocationInfoESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetLocationInfo(NotificationChain msgs) {
+ LocationInfo oldLocationInfo = locationInfo;
+ locationInfo = null;
+ boolean oldLocationInfoESet = locationInfoESet;
+ locationInfoESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, oldLocationInfo, null, oldLocationInfoESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLocationInfo() {
+ if (locationInfo != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)locationInfo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, null, msgs);
+ msgs = basicUnsetLocationInfo(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldLocationInfoESet = locationInfoESet;
+ locationInfoESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO, null, null, oldLocationInfoESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLocationInfo() {
+ return locationInfoESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getCauseTexts() {
+ if (causeTexts == null) {
+ causeTexts = new EDataTypeUniqueEList.Unsettable<String>(String.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__CAUSE_TEXTS);
+ }
+ return causeTexts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauseTexts() {
+ if (causeTexts != null) ((InternalEList.Unsettable<?>)causeTexts).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauseTexts() {
+ return causeTexts != null && ((InternalEList.Unsettable<?>)causeTexts).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getApplicabilityTexts() {
+ if (applicabilityTexts == null) {
+ applicabilityTexts = new EDataTypeUniqueEList.Unsettable<String>(String.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY_TEXTS);
+ }
+ return applicabilityTexts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetApplicabilityTexts() {
+ if (applicabilityTexts != null) ((InternalEList.Unsettable<?>)applicabilityTexts).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetApplicabilityTexts() {
+ return applicabilityTexts != null && ((InternalEList.Unsettable<?>)applicabilityTexts).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getAdviceTexts() {
+ if (adviceTexts == null) {
+ adviceTexts = new EDataTypeUniqueEList.Unsettable<String>(String.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__ADVICE_TEXTS);
+ }
+ return adviceTexts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAdviceTexts() {
+ if (adviceTexts != null) ((InternalEList.Unsettable<?>)adviceTexts).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAdviceTexts() {
+ return adviceTexts != null && ((InternalEList.Unsettable<?>)adviceTexts).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Integer> getCategoryIds() {
+ if (categoryIds == null) {
+ categoryIds = new EDataTypeUniqueEList<Integer>(Integer.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__CATEGORY_IDS);
+ }
+ return categoryIds;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RectangularArea getLocationBoundingBox() {
+ return locationBoundingBox;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLocationBoundingBox(RectangularArea newLocationBoundingBox, NotificationChain msgs) {
+ RectangularArea oldLocationBoundingBox = locationBoundingBox;
+ locationBoundingBox = newLocationBoundingBox;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX, oldLocationBoundingBox, newLocationBoundingBox);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocationBoundingBox(RectangularArea newLocationBoundingBox) {
+ if (newLocationBoundingBox != locationBoundingBox) {
+ NotificationChain msgs = null;
+ if (locationBoundingBox != null)
+ msgs = ((InternalEObject)locationBoundingBox).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX, null, msgs);
+ if (newLocationBoundingBox != null)
+ msgs = ((InternalEObject)newLocationBoundingBox).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX, null, msgs);
+ msgs = basicSetLocationBoundingBox(newLocationBoundingBox, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX, newLocationBoundingBox, newLocationBoundingBox));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getExpectedSpeedAbsolute() {
+ return expectedSpeedAbsolute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpectedSpeedAbsolute(Integer newExpectedSpeedAbsolute) {
+ Integer oldExpectedSpeedAbsolute = expectedSpeedAbsolute;
+ expectedSpeedAbsolute = newExpectedSpeedAbsolute;
+ boolean oldExpectedSpeedAbsoluteESet = expectedSpeedAbsoluteESet;
+ expectedSpeedAbsoluteESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE, oldExpectedSpeedAbsolute, expectedSpeedAbsolute, !oldExpectedSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpectedSpeedAbsolute() {
+ Integer oldExpectedSpeedAbsolute = expectedSpeedAbsolute;
+ boolean oldExpectedSpeedAbsoluteESet = expectedSpeedAbsoluteESet;
+ expectedSpeedAbsolute = EXPECTED_SPEED_ABSOLUTE_EDEFAULT;
+ expectedSpeedAbsoluteESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE, oldExpectedSpeedAbsolute, EXPECTED_SPEED_ABSOLUTE_EDEFAULT, oldExpectedSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpectedSpeedAbsolute() {
+ return expectedSpeedAbsoluteESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TemporarySpeedLimit> getTemporarySpeedLimit() {
+ if (temporarySpeedLimit == null) {
+ temporarySpeedLimit = new EObjectContainmentEList<TemporarySpeedLimit>(TemporarySpeedLimit.class, this, trafficincidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT);
+ }
+ return temporarySpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ return ((InternalEList<?>)getCauses()).basicRemove(otherEnd, msgs);
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION:
+ return basicUnsetLocation(msgs);
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ return ((InternalEList<?>)getAdvices()).basicRemove(otherEnd, msgs);
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ return ((InternalEList<?>)getApplicability()).basicRemove(otherEnd, msgs);
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO:
+ return basicUnsetLocationInfo(msgs);
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX:
+ return basicSetLocationBoundingBox(null, msgs);
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ return ((InternalEList<?>)getTemporarySpeedLimit()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ return getEffectCode();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_TEXT:
+ return getEffectText();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ return getStartTime();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ return getStopTime();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ return getTendency();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY_TEXT:
+ return getTendencyText();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ return getLengthAffected();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ return getAverageSpeedAbsolute();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__DELAY:
+ return getDelay();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ return getSegmentSpeedLimit();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ return getCauses();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION:
+ return getLocation();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ return getAdvices();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ return getApplicability();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ return getTrafficIncidentId();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO:
+ return getLocationInfo();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSE_TEXTS:
+ return getCauseTexts();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY_TEXTS:
+ return getApplicabilityTexts();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICE_TEXTS:
+ return getAdviceTexts();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CATEGORY_IDS:
+ return getCategoryIds();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX:
+ return getLocationBoundingBox();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ return getExpectedSpeedAbsolute();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ return getTemporarySpeedLimit();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ setEffectCode((EffectCode)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_TEXT:
+ setEffectText((String)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ setStartTime((Date)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ setStopTime((Date)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ setTendency((Tendency)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY_TEXT:
+ setTendencyText((String)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ setLengthAffected((Integer)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ setAverageSpeedAbsolute((Integer)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__DELAY:
+ setDelay((Integer)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ setSegmentSpeedLimit((Integer)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ getCauses().clear();
+ getCauses().addAll((Collection<? extends Cause>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION:
+ setLocation((Location)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ getAdvices().clear();
+ getAdvices().addAll((Collection<? extends Advice>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ getApplicability().clear();
+ getApplicability().addAll((Collection<? extends Applicability>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ setTrafficIncidentId((Integer)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO:
+ setLocationInfo((LocationInfo)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSE_TEXTS:
+ getCauseTexts().clear();
+ getCauseTexts().addAll((Collection<? extends String>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY_TEXTS:
+ getApplicabilityTexts().clear();
+ getApplicabilityTexts().addAll((Collection<? extends String>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICE_TEXTS:
+ getAdviceTexts().clear();
+ getAdviceTexts().addAll((Collection<? extends String>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CATEGORY_IDS:
+ getCategoryIds().clear();
+ getCategoryIds().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX:
+ setLocationBoundingBox((RectangularArea)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ setExpectedSpeedAbsolute((Integer)newValue);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ getTemporarySpeedLimit().clear();
+ getTemporarySpeedLimit().addAll((Collection<? extends TemporarySpeedLimit>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ unsetEffectCode();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_TEXT:
+ unsetEffectText();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ unsetStartTime();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ unsetStopTime();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ unsetTendency();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY_TEXT:
+ unsetTendencyText();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ unsetLengthAffected();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ unsetAverageSpeedAbsolute();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__DELAY:
+ unsetDelay();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ unsetSegmentSpeedLimit();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ unsetCauses();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION:
+ unsetLocation();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ unsetAdvices();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ unsetApplicability();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ unsetTrafficIncidentId();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO:
+ unsetLocationInfo();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSE_TEXTS:
+ unsetCauseTexts();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY_TEXTS:
+ unsetApplicabilityTexts();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICE_TEXTS:
+ unsetAdviceTexts();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CATEGORY_IDS:
+ getCategoryIds().clear();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX:
+ setLocationBoundingBox((RectangularArea)null);
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ unsetExpectedSpeedAbsolute();
+ return;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ getTemporarySpeedLimit().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_CODE:
+ return isSetEffectCode();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EFFECT_TEXT:
+ return isSetEffectText();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__START_TIME:
+ return isSetStartTime();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__STOP_TIME:
+ return isSetStopTime();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY:
+ return isSetTendency();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TENDENCY_TEXT:
+ return isSetTendencyText();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LENGTH_AFFECTED:
+ return isSetLengthAffected();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE:
+ return isSetAverageSpeedAbsolute();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__DELAY:
+ return isSetDelay();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT:
+ return isSetSegmentSpeedLimit();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSES:
+ return isSetCauses();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION:
+ return isSetLocation();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICES:
+ return isSetAdvices();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY:
+ return isSetApplicability();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID:
+ return isSetTrafficIncidentId();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_INFO:
+ return isSetLocationInfo();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CAUSE_TEXTS:
+ return isSetCauseTexts();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__APPLICABILITY_TEXTS:
+ return isSetApplicabilityTexts();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__ADVICE_TEXTS:
+ return isSetAdviceTexts();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__CATEGORY_IDS:
+ return categoryIds != null && !categoryIds.isEmpty();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX:
+ return locationBoundingBox != null;
+ case trafficincidentPackage.TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE:
+ return isSetExpectedSpeedAbsolute();
+ case trafficincidentPackage.TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT:
+ return temporarySpeedLimit != null && !temporarySpeedLimit.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (effectCode: ");
+ if (effectCodeESet) result.append(effectCode); else result.append("<unset>");
+ result.append(", effectText: ");
+ if (effectTextESet) result.append(effectText); else result.append("<unset>");
+ result.append(", startTime: ");
+ if (startTimeESet) result.append(startTime); else result.append("<unset>");
+ result.append(", stopTime: ");
+ if (stopTimeESet) result.append(stopTime); else result.append("<unset>");
+ result.append(", tendency: ");
+ if (tendencyESet) result.append(tendency); else result.append("<unset>");
+ result.append(", tendencyText: ");
+ if (tendencyTextESet) result.append(tendencyText); else result.append("<unset>");
+ result.append(", lengthAffected: ");
+ if (lengthAffectedESet) result.append(lengthAffected); else result.append("<unset>");
+ result.append(", averageSpeedAbsolute: ");
+ if (averageSpeedAbsoluteESet) result.append(averageSpeedAbsolute); else result.append("<unset>");
+ result.append(", delay: ");
+ if (delayESet) result.append(delay); else result.append("<unset>");
+ result.append(", segmentSpeedLimit: ");
+ if (segmentSpeedLimitESet) result.append(segmentSpeedLimit); else result.append("<unset>");
+ result.append(", trafficIncidentId: ");
+ if (trafficIncidentIdESet) result.append(trafficIncidentId); else result.append("<unset>");
+ result.append(", causeTexts: ");
+ result.append(causeTexts);
+ result.append(", applicabilityTexts: ");
+ result.append(applicabilityTexts);
+ result.append(", adviceTexts: ");
+ result.append(adviceTexts);
+ result.append(", categoryIds: ");
+ result.append(categoryIds);
+ result.append(", expectedSpeedAbsolute: ");
+ if (expectedSpeedAbsoluteESet) result.append(expectedSpeedAbsolute); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TrafficIncidentImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/VehicleRelatedRestrictionImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/VehicleRelatedRestrictionImpl.java
new file mode 100755
index 0000000..cc03f7f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/VehicleRelatedRestrictionImpl.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.location.Location;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vehicle Related Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl#getRestrictionType <em>Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl#getRestrictionValue <em>Restriction Value</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl#getRestrictionLocation <em>Restriction Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VehicleRelatedRestrictionImpl extends EObjectImpl implements VehicleRelatedRestriction {
+ /**
+ * The default value of the '{@link #getRestrictionType() <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected static final RestrictionType RESTRICTION_TYPE_EDEFAULT = RestrictionType.WIDTH_LESS_THAN;
+
+ /**
+ * The cached value of the '{@link #getRestrictionType() <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected RestrictionType restrictionType = RESTRICTION_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Restriction Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionTypeESet;
+
+ /**
+ * The default value of the '{@link #getRestrictionValue() <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer RESTRICTION_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRestrictionValue() <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionValue()
+ * @generated
+ * @ordered
+ */
+ protected Integer restrictionValue = RESTRICTION_VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Restriction Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionValueESet;
+
+ /**
+ * The cached value of the '{@link #getRestrictionLocation() <em>Restriction Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionLocation()
+ * @generated
+ * @ordered
+ */
+ protected Location restrictionLocation;
+
+ /**
+ * This is true if the Restriction Location containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionLocationESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VehicleRelatedRestrictionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentPackage.Literals.VEHICLE_RELATED_RESTRICTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RestrictionType getRestrictionType() {
+ return restrictionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionType(RestrictionType newRestrictionType) {
+ RestrictionType oldRestrictionType = restrictionType;
+ restrictionType = newRestrictionType == null ? RESTRICTION_TYPE_EDEFAULT : newRestrictionType;
+ boolean oldRestrictionTypeESet = restrictionTypeESet;
+ restrictionTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE, oldRestrictionType, restrictionType, !oldRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionType() {
+ RestrictionType oldRestrictionType = restrictionType;
+ boolean oldRestrictionTypeESet = restrictionTypeESet;
+ restrictionType = RESTRICTION_TYPE_EDEFAULT;
+ restrictionTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE, oldRestrictionType, RESTRICTION_TYPE_EDEFAULT, oldRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionType() {
+ return restrictionTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getRestrictionValue() {
+ return restrictionValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionValue(Integer newRestrictionValue) {
+ Integer oldRestrictionValue = restrictionValue;
+ restrictionValue = newRestrictionValue;
+ boolean oldRestrictionValueESet = restrictionValueESet;
+ restrictionValueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE, oldRestrictionValue, restrictionValue, !oldRestrictionValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionValue() {
+ Integer oldRestrictionValue = restrictionValue;
+ boolean oldRestrictionValueESet = restrictionValueESet;
+ restrictionValue = RESTRICTION_VALUE_EDEFAULT;
+ restrictionValueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE, oldRestrictionValue, RESTRICTION_VALUE_EDEFAULT, oldRestrictionValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionValue() {
+ return restrictionValueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Location getRestrictionLocation() {
+ return restrictionLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRestrictionLocation(Location newRestrictionLocation, NotificationChain msgs) {
+ Location oldRestrictionLocation = restrictionLocation;
+ restrictionLocation = newRestrictionLocation;
+ boolean oldRestrictionLocationESet = restrictionLocationESet;
+ restrictionLocationESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, oldRestrictionLocation, newRestrictionLocation, !oldRestrictionLocationESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionLocation(Location newRestrictionLocation) {
+ if (newRestrictionLocation != restrictionLocation) {
+ NotificationChain msgs = null;
+ if (restrictionLocation != null)
+ msgs = ((InternalEObject)restrictionLocation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, null, msgs);
+ if (newRestrictionLocation != null)
+ msgs = ((InternalEObject)newRestrictionLocation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, null, msgs);
+ msgs = basicSetRestrictionLocation(newRestrictionLocation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldRestrictionLocationESet = restrictionLocationESet;
+ restrictionLocationESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, newRestrictionLocation, newRestrictionLocation, !oldRestrictionLocationESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetRestrictionLocation(NotificationChain msgs) {
+ Location oldRestrictionLocation = restrictionLocation;
+ restrictionLocation = null;
+ boolean oldRestrictionLocationESet = restrictionLocationESet;
+ restrictionLocationESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, oldRestrictionLocation, null, oldRestrictionLocationESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionLocation() {
+ if (restrictionLocation != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)restrictionLocation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, null, msgs);
+ msgs = basicUnsetRestrictionLocation(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldRestrictionLocationESet = restrictionLocationESet;
+ restrictionLocationESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, null, null, oldRestrictionLocationESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionLocation() {
+ return restrictionLocationESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ return basicUnsetRestrictionLocation(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ return getRestrictionType();
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ return getRestrictionValue();
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ return getRestrictionLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ setRestrictionType((RestrictionType)newValue);
+ return;
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ setRestrictionValue((Integer)newValue);
+ return;
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ setRestrictionLocation((Location)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ unsetRestrictionType();
+ return;
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ unsetRestrictionValue();
+ return;
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ unsetRestrictionLocation();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ return isSetRestrictionType();
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ return isSetRestrictionValue();
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ return isSetRestrictionLocation();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (restrictionType: ");
+ if (restrictionTypeESet) result.append(restrictionType); else result.append("<unset>");
+ result.append(", restrictionValue: ");
+ if (restrictionValueESet) result.append(restrictionValue); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //VehicleRelatedRestrictionImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentFactoryImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentFactoryImpl.java
new file mode 100755
index 0000000..8a5a424
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentFactoryImpl.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class trafficincidentFactoryImpl extends EFactoryImpl implements trafficincidentFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static trafficincidentFactory init() {
+ try {
+ trafficincidentFactory thetrafficincidentFactory = (trafficincidentFactory)EPackage.Registry.INSTANCE.getEFactory(trafficincidentPackage.eNS_URI);
+ if (thetrafficincidentFactory != null) {
+ return thetrafficincidentFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new trafficincidentFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT: return createTrafficIncident();
+ case trafficincidentPackage.CAUSE: return createCause();
+ case trafficincidentPackage.LINKED_CAUSE: return createLinkedCause();
+ case trafficincidentPackage.DIRECT_CAUSE: return createDirectCause();
+ case trafficincidentPackage.LANE_RESTRICTIONS: return createLaneRestrictions();
+ case trafficincidentPackage.ADVICE: return createAdvice();
+ case trafficincidentPackage.APPLICABILITY: return createApplicability();
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION: return createVehicleRelatedRestriction();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT: return createTemporarySpeedLimit();
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION: return createTemporarySpeedLimitSection();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncident createTrafficIncident() {
+ TrafficIncidentImpl trafficIncident = new TrafficIncidentImpl();
+ return trafficIncident;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cause createCause() {
+ CauseImpl cause = new CauseImpl();
+ return cause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkedCause createLinkedCause() {
+ LinkedCauseImpl linkedCause = new LinkedCauseImpl();
+ return linkedCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DirectCause createDirectCause() {
+ DirectCauseImpl directCause = new DirectCauseImpl();
+ return directCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictions createLaneRestrictions() {
+ LaneRestrictionsImpl laneRestrictions = new LaneRestrictionsImpl();
+ return laneRestrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Advice createAdvice() {
+ AdviceImpl advice = new AdviceImpl();
+ return advice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Applicability createApplicability() {
+ ApplicabilityImpl applicability = new ApplicabilityImpl();
+ return applicability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleRelatedRestriction createVehicleRelatedRestriction() {
+ VehicleRelatedRestrictionImpl vehicleRelatedRestriction = new VehicleRelatedRestrictionImpl();
+ return vehicleRelatedRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemporarySpeedLimit createTemporarySpeedLimit() {
+ TemporarySpeedLimitImpl temporarySpeedLimit = new TemporarySpeedLimitImpl();
+ return temporarySpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemporarySpeedLimitSection createTemporarySpeedLimitSection() {
+ TemporarySpeedLimitSectionImpl temporarySpeedLimitSection = new TemporarySpeedLimitSectionImpl();
+ return temporarySpeedLimitSection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentPackage gettrafficincidentPackage() {
+ return (trafficincidentPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static trafficincidentPackage getPackage() {
+ return trafficincidentPackage.eINSTANCE;
+ }
+
+} //trafficincidentFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentPackageImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentPackageImpl.java
new file mode 100755
index 0000000..5b7ce77
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/impl/trafficincidentPackageImpl.java
@@ -0,0 +1,947 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.common.CommonPackage;
+
+import org.genivi.location.LocationPackage;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class trafficincidentPackageImpl extends EPackageImpl implements trafficincidentPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass trafficIncidentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass causeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkedCauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass directCauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass laneRestrictionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adviceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass applicabilityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vehicleRelatedRestrictionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass temporarySpeedLimitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass temporarySpeedLimitSectionEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private trafficincidentPackageImpl() {
+ super(eNS_URI, trafficincidentFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link trafficincidentPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static trafficincidentPackage init() {
+ if (isInited) return (trafficincidentPackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidentPackage.eNS_URI);
+
+ // Obtain or create and register package
+ trafficincidentPackageImpl thetrafficincidentPackage = (trafficincidentPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof trafficincidentPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new trafficincidentPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ trafficincidenttablesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ thetrafficincidentPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thetrafficincidentPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thetrafficincidentPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(trafficincidentPackage.eNS_URI, thetrafficincidentPackage);
+ return thetrafficincidentPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrafficIncident() {
+ return trafficIncidentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_EffectCode() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_EffectText() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_StartTime() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_StopTime() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_Tendency() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_TendencyText() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_LengthAffected() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_AverageSpeedAbsolute() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_Delay() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_SegmentSpeedLimit() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Causes() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Location() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Advices() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_Applicability() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_TrafficIncidentId() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_LocationInfo() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(15);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_CauseTexts() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(16);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_ApplicabilityTexts() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(17);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_AdviceTexts() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(18);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_CategoryIds() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(19);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_LocationBoundingBox() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(20);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTrafficIncident_ExpectedSpeedAbsolute() {
+ return (EAttribute)trafficIncidentEClass.getEStructuralFeatures().get(21);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrafficIncident_TemporarySpeedLimit() {
+ return (EReference)trafficIncidentEClass.getEStructuralFeatures().get(22);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCause() {
+ return causeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCause_MainCause() {
+ return (EAttribute)causeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkedCause() {
+ return linkedCauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkedCause_CauseTrafficIncidentId() {
+ return (EAttribute)linkedCauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDirectCause() {
+ return directCauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_WarningLevel() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_UnverifiedInformation() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_SubCause() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_LengthAffected() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDirectCause_LaneRestrictions() {
+ return (EReference)directCauseEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_FreeText() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_CauseOffset() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLaneRestrictions() {
+ return laneRestrictionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaneRestrictions_LaneRestrictionType() {
+ return (EAttribute)laneRestrictionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaneRestrictions_NumberOfLanes() {
+ return (EAttribute)laneRestrictionsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAdvice() {
+ return adviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_MainAdvice() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_SubAdvice() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAdvice_Applicability() {
+ return (EReference)adviceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_FreeText() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getApplicability() {
+ return applicabilityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getApplicability_VehicleType() {
+ return (EAttribute)applicabilityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getApplicability_VehicleRelatedRestrictions() {
+ return (EReference)applicabilityEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVehicleRelatedRestriction() {
+ return vehicleRelatedRestrictionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRelatedRestriction_RestrictionType() {
+ return (EAttribute)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRelatedRestriction_RestrictionValue() {
+ return (EAttribute)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVehicleRelatedRestriction_RestrictionLocation() {
+ return (EReference)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemporarySpeedLimit() {
+ return temporarySpeedLimitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemporarySpeedLimit_TemporarySpeedLimitSections() {
+ return (EReference)temporarySpeedLimitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimit_UnitsMPH() {
+ return (EAttribute)temporarySpeedLimitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimit_Offset() {
+ return (EAttribute)temporarySpeedLimitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemporarySpeedLimit_Applicability() {
+ return (EReference)temporarySpeedLimitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemporarySpeedLimitSection() {
+ return temporarySpeedLimitSectionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitValue() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitValueWet() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitLength() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentFactory gettrafficincidentFactory() {
+ return (trafficincidentFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ trafficIncidentEClass = createEClass(TRAFFIC_INCIDENT);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__EFFECT_CODE);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__EFFECT_TEXT);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__START_TIME);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__STOP_TIME);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__TENDENCY);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__TENDENCY_TEXT);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__LENGTH_AFFECTED);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__DELAY);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__CAUSES);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__LOCATION);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__ADVICES);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__APPLICABILITY);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__LOCATION_INFO);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__CAUSE_TEXTS);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__APPLICABILITY_TEXTS);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__ADVICE_TEXTS);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__CATEGORY_IDS);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX);
+ createEAttribute(trafficIncidentEClass, TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE);
+ createEReference(trafficIncidentEClass, TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT);
+
+ causeEClass = createEClass(CAUSE);
+ createEAttribute(causeEClass, CAUSE__MAIN_CAUSE);
+
+ linkedCauseEClass = createEClass(LINKED_CAUSE);
+ createEAttribute(linkedCauseEClass, LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID);
+
+ directCauseEClass = createEClass(DIRECT_CAUSE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__WARNING_LEVEL);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__UNVERIFIED_INFORMATION);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__SUB_CAUSE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__LENGTH_AFFECTED);
+ createEReference(directCauseEClass, DIRECT_CAUSE__LANE_RESTRICTIONS);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__FREE_TEXT);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__CAUSE_OFFSET);
+
+ laneRestrictionsEClass = createEClass(LANE_RESTRICTIONS);
+ createEAttribute(laneRestrictionsEClass, LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE);
+ createEAttribute(laneRestrictionsEClass, LANE_RESTRICTIONS__NUMBER_OF_LANES);
+
+ adviceEClass = createEClass(ADVICE);
+ createEAttribute(adviceEClass, ADVICE__MAIN_ADVICE);
+ createEAttribute(adviceEClass, ADVICE__SUB_ADVICE);
+ createEReference(adviceEClass, ADVICE__APPLICABILITY);
+ createEAttribute(adviceEClass, ADVICE__FREE_TEXT);
+
+ applicabilityEClass = createEClass(APPLICABILITY);
+ createEAttribute(applicabilityEClass, APPLICABILITY__VEHICLE_TYPE);
+ createEReference(applicabilityEClass, APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS);
+
+ vehicleRelatedRestrictionEClass = createEClass(VEHICLE_RELATED_RESTRICTION);
+ createEAttribute(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE);
+ createEAttribute(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE);
+ createEReference(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION);
+
+ temporarySpeedLimitEClass = createEClass(TEMPORARY_SPEED_LIMIT);
+ createEReference(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS);
+ createEAttribute(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__UNITS_MPH);
+ createEAttribute(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__OFFSET);
+ createEReference(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__APPLICABILITY);
+
+ temporarySpeedLimitSectionEClass = createEClass(TEMPORARY_SPEED_LIMIT_SECTION);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ trafficincidenttablesPackage thetrafficincidenttablesPackage = (trafficincidenttablesPackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidenttablesPackage.eNS_URI);
+ LocationPackage theLocationPackage = (LocationPackage)EPackage.Registry.INSTANCE.getEPackage(LocationPackage.eNS_URI);
+ CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ linkedCauseEClass.getESuperTypes().add(this.getCause());
+ directCauseEClass.getESuperTypes().add(this.getCause());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(trafficIncidentEClass, TrafficIncident.class, "TrafficIncident", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTrafficIncident_EffectCode(), thetrafficincidenttablesPackage.getEffectCode(), "effectCode", null, 1, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_EffectText(), ecorePackage.getEString(), "effectText", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_StartTime(), ecorePackage.getEDate(), "startTime", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_StopTime(), ecorePackage.getEDate(), "stopTime", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_Tendency(), thetrafficincidenttablesPackage.getTendency(), "tendency", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_TendencyText(), ecorePackage.getEString(), "tendencyText", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_LengthAffected(), ecorePackage.getEIntegerObject(), "lengthAffected", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_AverageSpeedAbsolute(), ecorePackage.getEIntegerObject(), "averageSpeedAbsolute", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_Delay(), ecorePackage.getEIntegerObject(), "delay", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_SegmentSpeedLimit(), ecorePackage.getEIntegerObject(), "segmentSpeedLimit", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Causes(), this.getCause(), null, "causes", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Location(), theLocationPackage.getLocation(), null, "location", null, 1, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Advices(), this.getAdvice(), null, "advices", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_Applicability(), this.getApplicability(), null, "applicability", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_TrafficIncidentId(), ecorePackage.getEIntegerObject(), "trafficIncidentId", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_LocationInfo(), theLocationPackage.getLocationInfo(), null, "locationInfo", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_CauseTexts(), ecorePackage.getEString(), "causeTexts", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_ApplicabilityTexts(), ecorePackage.getEString(), "applicabilityTexts", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_AdviceTexts(), ecorePackage.getEString(), "adviceTexts", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_CategoryIds(), ecorePackage.getEIntegerObject(), "categoryIds", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_LocationBoundingBox(), theCommonPackage.getRectangularArea(), null, "locationBoundingBox", null, 1, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTrafficIncident_ExpectedSpeedAbsolute(), ecorePackage.getEIntegerObject(), "expectedSpeedAbsolute", null, 0, 1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTrafficIncident_TemporarySpeedLimit(), this.getTemporarySpeedLimit(), null, "temporarySpeedLimit", null, 0, -1, TrafficIncident.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(causeEClass, Cause.class, "Cause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCause_MainCause(), thetrafficincidenttablesPackage.getCauseCode(), "mainCause", null, 0, 1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkedCauseEClass, LinkedCause.class, "LinkedCause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinkedCause_CauseTrafficIncidentId(), ecorePackage.getEIntegerObject(), "causeTrafficIncidentId", null, 0, 1, LinkedCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(directCauseEClass, DirectCause.class, "DirectCause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDirectCause_WarningLevel(), thetrafficincidenttablesPackage.getWarningLevel(), "warningLevel", null, 1, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_UnverifiedInformation(), ecorePackage.getEBoolean(), "unverifiedInformation", null, 1, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_SubCause(), ecorePackage.getEJavaObject(), "subCause", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_LengthAffected(), ecorePackage.getEIntegerObject(), "lengthAffected", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDirectCause_LaneRestrictions(), this.getLaneRestrictions(), null, "laneRestrictions", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_FreeText(), ecorePackage.getEString(), "freeText", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_CauseOffset(), ecorePackage.getEIntegerObject(), "causeOffset", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(laneRestrictionsEClass, LaneRestrictions.class, "LaneRestrictions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLaneRestrictions_LaneRestrictionType(), thetrafficincidenttablesPackage.getLaneRestrictionType(), "laneRestrictionType", null, 0, 1, LaneRestrictions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLaneRestrictions_NumberOfLanes(), ecorePackage.getEIntegerObject(), "numberOfLanes", null, 0, 1, LaneRestrictions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(adviceEClass, Advice.class, "Advice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAdvice_MainAdvice(), thetrafficincidenttablesPackage.getAdviceCode(), "mainAdvice", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdvice_SubAdvice(), ecorePackage.getEJavaObject(), "subAdvice", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAdvice_Applicability(), this.getApplicability(), null, "applicability", null, 0, -1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdvice_FreeText(), ecorePackage.getEString(), "freeText", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(applicabilityEClass, Applicability.class, "Applicability", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getApplicability_VehicleType(), thetrafficincidenttablesPackage.getVehicleType(), "vehicleType", null, 0, 1, Applicability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getApplicability_VehicleRelatedRestrictions(), this.getVehicleRelatedRestriction(), null, "vehicleRelatedRestrictions", null, 0, -1, Applicability.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(vehicleRelatedRestrictionEClass, VehicleRelatedRestriction.class, "VehicleRelatedRestriction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVehicleRelatedRestriction_RestrictionType(), thetrafficincidenttablesPackage.getRestrictionType(), "restrictionType", null, 1, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVehicleRelatedRestriction_RestrictionValue(), ecorePackage.getEIntegerObject(), "restrictionValue", null, 0, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVehicleRelatedRestriction_RestrictionLocation(), theLocationPackage.getLocation(), null, "restrictionLocation", null, 0, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(temporarySpeedLimitEClass, TemporarySpeedLimit.class, "TemporarySpeedLimit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTemporarySpeedLimit_TemporarySpeedLimitSections(), this.getTemporarySpeedLimitSection(), null, "temporarySpeedLimitSections", null, 1, -1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimit_UnitsMPH(), ecorePackage.getEBoolean(), "unitsMPH", null, 1, 1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimit_Offset(), ecorePackage.getEIntegerObject(), "offset", null, 0, 1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTemporarySpeedLimit_Applicability(), this.getApplicability(), null, "applicability", null, 0, -1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(temporarySpeedLimitSectionEClass, TemporarySpeedLimitSection.class, "TemporarySpeedLimitSection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitValue(), ecorePackage.getEShort(), "speedLimitValue", null, 1, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitValueWet(), ecorePackage.getEShort(), "speedLimitValueWet", null, 0, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitLength(), ecorePackage.getEIntegerObject(), "speedLimitLength", null, 0, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //trafficincidentPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentFactory.java
new file mode 100755
index 0000000..7c60bd3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentFactory.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage
+ * @generated
+ */
+public interface trafficincidentFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ trafficincidentFactory eINSTANCE = org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Traffic Incident</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Traffic Incident</em>'.
+ * @generated
+ */
+ TrafficIncident createTrafficIncident();
+
+ /**
+ * Returns a new object of class '<em>Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cause</em>'.
+ * @generated
+ */
+ Cause createCause();
+
+ /**
+ * Returns a new object of class '<em>Linked Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Linked Cause</em>'.
+ * @generated
+ */
+ LinkedCause createLinkedCause();
+
+ /**
+ * Returns a new object of class '<em>Direct Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Direct Cause</em>'.
+ * @generated
+ */
+ DirectCause createDirectCause();
+
+ /**
+ * Returns a new object of class '<em>Lane Restrictions</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Lane Restrictions</em>'.
+ * @generated
+ */
+ LaneRestrictions createLaneRestrictions();
+
+ /**
+ * Returns a new object of class '<em>Advice</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Advice</em>'.
+ * @generated
+ */
+ Advice createAdvice();
+
+ /**
+ * Returns a new object of class '<em>Applicability</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Applicability</em>'.
+ * @generated
+ */
+ Applicability createApplicability();
+
+ /**
+ * Returns a new object of class '<em>Vehicle Related Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Vehicle Related Restriction</em>'.
+ * @generated
+ */
+ VehicleRelatedRestriction createVehicleRelatedRestriction();
+
+ /**
+ * Returns a new object of class '<em>Temporary Speed Limit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Speed Limit</em>'.
+ * @generated
+ */
+ TemporarySpeedLimit createTemporarySpeedLimit();
+
+ /**
+ * Returns a new object of class '<em>Temporary Speed Limit Section</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Speed Limit Section</em>'.
+ * @generated
+ */
+ TemporarySpeedLimitSection createTemporarySpeedLimitSection();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ trafficincidentPackage gettrafficincidentPackage();
+
+} //trafficincidentFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentPackage.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentPackage.java
new file mode 100755
index 0000000..ffc6025
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/trafficincidentPackage.java
@@ -0,0 +1,1898 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface trafficincidentPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "trafficincident";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.trafficinfo";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "TrafficIncident";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ trafficincidentPackage eINSTANCE = org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl <em>Traffic Incident</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getTrafficIncident()
+ * @generated
+ */
+ int TRAFFIC_INCIDENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Effect Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__EFFECT_CODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Effect Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__EFFECT_TEXT = 1;
+
+ /**
+ * The feature id for the '<em><b>Start Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__START_TIME = 2;
+
+ /**
+ * The feature id for the '<em><b>Stop Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__STOP_TIME = 3;
+
+ /**
+ * The feature id for the '<em><b>Tendency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TENDENCY = 4;
+
+ /**
+ * The feature id for the '<em><b>Tendency Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TENDENCY_TEXT = 5;
+
+ /**
+ * The feature id for the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__LENGTH_AFFECTED = 6;
+
+ /**
+ * The feature id for the '<em><b>Average Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE = 7;
+
+ /**
+ * The feature id for the '<em><b>Delay</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__DELAY = 8;
+
+ /**
+ * The feature id for the '<em><b>Segment Speed Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT = 9;
+
+ /**
+ * The feature id for the '<em><b>Causes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__CAUSES = 10;
+
+ /**
+ * The feature id for the '<em><b>Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__LOCATION = 11;
+
+ /**
+ * The feature id for the '<em><b>Advices</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__ADVICES = 12;
+
+ /**
+ * The feature id for the '<em><b>Applicability</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__APPLICABILITY = 13;
+
+ /**
+ * The feature id for the '<em><b>Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID = 14;
+
+ /**
+ * The feature id for the '<em><b>Location Info</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__LOCATION_INFO = 15;
+
+ /**
+ * The feature id for the '<em><b>Cause Texts</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__CAUSE_TEXTS = 16;
+
+ /**
+ * The feature id for the '<em><b>Applicability Texts</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__APPLICABILITY_TEXTS = 17;
+
+ /**
+ * The feature id for the '<em><b>Advice Texts</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__ADVICE_TEXTS = 18;
+
+ /**
+ * The feature id for the '<em><b>Category Ids</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__CATEGORY_IDS = 19;
+
+ /**
+ * The feature id for the '<em><b>Location Bounding Box</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX = 20;
+
+ /**
+ * The feature id for the '<em><b>Expected Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE = 21;
+
+ /**
+ * The feature id for the '<em><b>Temporary Speed Limit</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT = 22;
+
+ /**
+ * The number of structural features of the '<em>Traffic Incident</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT_FEATURE_COUNT = 23;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.CauseImpl <em>Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.CauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getCause()
+ * @generated
+ */
+ int CAUSE = 1;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAUSE__MAIN_CAUSE = 0;
+
+ /**
+ * The number of structural features of the '<em>Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LinkedCauseImpl <em>Linked Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LinkedCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getLinkedCause()
+ * @generated
+ */
+ int LINKED_CAUSE = 2;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__MAIN_CAUSE = CAUSE__MAIN_CAUSE;
+
+ /**
+ * The feature id for the '<em><b>Cause Traffic Incident Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID = CAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Linked Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE_FEATURE_COUNT = CAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl <em>Direct Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getDirectCause()
+ * @generated
+ */
+ int DIRECT_CAUSE = 3;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__MAIN_CAUSE = CAUSE__MAIN_CAUSE;
+
+ /**
+ * The feature id for the '<em><b>Warning Level</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__WARNING_LEVEL = CAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Unverified Information</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__UNVERIFIED_INFORMATION = CAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Sub Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__SUB_CAUSE = CAUSE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__LENGTH_AFFECTED = CAUSE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Lane Restrictions</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__LANE_RESTRICTIONS = CAUSE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Free Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__FREE_TEXT = CAUSE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Cause Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__CAUSE_OFFSET = CAUSE_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Direct Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE_FEATURE_COUNT = CAUSE_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LaneRestrictionsImpl <em>Lane Restrictions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LaneRestrictionsImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getLaneRestrictions()
+ * @generated
+ */
+ int LANE_RESTRICTIONS = 4;
+
+ /**
+ * The feature id for the '<em><b>Lane Restriction Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Number Of Lanes</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LANE_RESTRICTIONS__NUMBER_OF_LANES = 1;
+
+ /**
+ * The number of structural features of the '<em>Lane Restrictions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LANE_RESTRICTIONS_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl <em>Advice</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getAdvice()
+ * @generated
+ */
+ int ADVICE = 5;
+
+ /**
+ * The feature id for the '<em><b>Main Advice</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__MAIN_ADVICE = 0;
+
+ /**
+ * The feature id for the '<em><b>Sub Advice</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__SUB_ADVICE = 1;
+
+ /**
+ * The feature id for the '<em><b>Applicability</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__APPLICABILITY = 2;
+
+ /**
+ * The feature id for the '<em><b>Free Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__FREE_TEXT = 3;
+
+ /**
+ * The number of structural features of the '<em>Advice</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.ApplicabilityImpl <em>Applicability</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.ApplicabilityImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getApplicability()
+ * @generated
+ */
+ int APPLICABILITY = 6;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int APPLICABILITY__VEHICLE_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Related Restrictions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Applicability</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int APPLICABILITY_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl <em>Vehicle Related Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getVehicleRelatedRestriction()
+ * @generated
+ */
+ int VEHICLE_RELATED_RESTRICTION = 7;
+
+ /**
+ * The feature id for the '<em><b>Restriction Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Restriction Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE = 1;
+
+ /**
+ * The feature id for the '<em><b>Restriction Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION = 2;
+
+ /**
+ * The number of structural features of the '<em>Vehicle Related Restriction</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION_FEATURE_COUNT = 3;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl <em>Temporary Speed Limit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getTemporarySpeedLimit()
+ * @generated
+ */
+ int TEMPORARY_SPEED_LIMIT = 8;
+
+ /**
+ * The feature id for the '<em><b>Temporary Speed Limit Sections</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Units MPH</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__UNITS_MPH = 1;
+
+ /**
+ * The feature id for the '<em><b>Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__OFFSET = 2;
+
+ /**
+ * The feature id for the '<em><b>Applicability</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__APPLICABILITY = 3;
+
+ /**
+ * The number of structural features of the '<em>Temporary Speed Limit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl <em>Temporary Speed Limit Section</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getTemporarySpeedLimitSection()
+ * @generated
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION = 9;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Value Wet</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET = 1;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH = 2;
+
+ /**
+ * The number of structural features of the '<em>Temporary Speed Limit Section</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION_FEATURE_COUNT = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident <em>Traffic Incident</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Traffic Incident</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident
+ * @generated
+ */
+ EClass getTrafficIncident();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectCode <em>Effect Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Effect Code</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectCode()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_EffectCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectText <em>Effect Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Effect Text</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getEffectText()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_EffectText();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStartTime <em>Start Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Start Time</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStartTime()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_StartTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStopTime <em>Stop Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Stop Time</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getStopTime()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_StopTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendency <em>Tendency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tendency</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendency()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_Tendency();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendencyText <em>Tendency Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tendency Text</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTendencyText()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_TendencyText();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLengthAffected <em>Length Affected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Length Affected</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLengthAffected()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_LengthAffected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Average Speed Absolute</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAverageSpeedAbsolute()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_AverageSpeedAbsolute();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getDelay <em>Delay</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Delay</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getDelay()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_Delay();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getSegmentSpeedLimit <em>Segment Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Segment Speed Limit</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getSegmentSpeedLimit()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_SegmentSpeedLimit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauses <em>Causes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Causes</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauses()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Causes();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocation <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Location</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocation()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Location();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdvices <em>Advices</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Advices</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdvices()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Advices();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicability()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_Applicability();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTrafficIncidentId <em>Traffic Incident Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Traffic Incident Id</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTrafficIncidentId()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_TrafficIncidentId();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationInfo <em>Location Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Location Info</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationInfo()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_LocationInfo();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauseTexts <em>Cause Texts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Cause Texts</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCauseTexts()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_CauseTexts();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicabilityTexts <em>Applicability Texts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Applicability Texts</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getApplicabilityTexts()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_ApplicabilityTexts();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdviceTexts <em>Advice Texts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Advice Texts</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getAdviceTexts()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_AdviceTexts();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCategoryIds <em>Category Ids</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Category Ids</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getCategoryIds()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_CategoryIds();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationBoundingBox <em>Location Bounding Box</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Location Bounding Box</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getLocationBoundingBox()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_LocationBoundingBox();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Expected Speed Absolute</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getExpectedSpeedAbsolute()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EAttribute getTrafficIncident_ExpectedSpeedAbsolute();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Temporary Speed Limit</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident#getTemporarySpeedLimit()
+ * @see #getTrafficIncident()
+ * @generated
+ */
+ EReference getTrafficIncident_TemporarySpeedLimit();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause
+ * @generated
+ */
+ EClass getCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause#getMainCause <em>Main Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Main Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause#getMainCause()
+ * @see #getCause()
+ * @generated
+ */
+ EAttribute getCause_MainCause();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause <em>Linked Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linked Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause
+ * @generated
+ */
+ EClass getLinkedCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause#getCauseTrafficIncidentId <em>Cause Traffic Incident Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cause Traffic Incident Id</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause#getCauseTrafficIncidentId()
+ * @see #getLinkedCause()
+ * @generated
+ */
+ EAttribute getLinkedCause_CauseTrafficIncidentId();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause <em>Direct Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Direct Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause
+ * @generated
+ */
+ EClass getDirectCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getWarningLevel <em>Warning Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Warning Level</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getWarningLevel()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_WarningLevel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unverified Information</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#isUnverifiedInformation()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_UnverifiedInformation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getSubCause <em>Sub Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sub Cause</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getSubCause()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_SubCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLengthAffected <em>Length Affected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Length Affected</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLengthAffected()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_LengthAffected();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLaneRestrictions <em>Lane Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Lane Restrictions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getLaneRestrictions()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EReference getDirectCause_LaneRestrictions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getFreeText <em>Free Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Free Text</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getFreeText()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_FreeText();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getCauseOffset <em>Cause Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cause Offset</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause#getCauseOffset()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_CauseOffset();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions <em>Lane Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lane Restrictions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions
+ * @generated
+ */
+ EClass getLaneRestrictions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getLaneRestrictionType <em>Lane Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lane Restriction Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getLaneRestrictionType()
+ * @see #getLaneRestrictions()
+ * @generated
+ */
+ EAttribute getLaneRestrictions_LaneRestrictionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getNumberOfLanes <em>Number Of Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Lanes</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions#getNumberOfLanes()
+ * @see #getLaneRestrictions()
+ * @generated
+ */
+ EAttribute getLaneRestrictions_NumberOfLanes();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Advice</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice
+ * @generated
+ */
+ EClass getAdvice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getMainAdvice <em>Main Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Main Advice</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getMainAdvice()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_MainAdvice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getSubAdvice <em>Sub Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sub Advice</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getSubAdvice()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_SubAdvice();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getApplicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getApplicability()
+ * @see #getAdvice()
+ * @generated
+ */
+ EReference getAdvice_Applicability();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getFreeText <em>Free Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Free Text</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice#getFreeText()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_FreeText();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability
+ * @generated
+ */
+ EClass getApplicability();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleType <em>Vehicle Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vehicle Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleType()
+ * @see #getApplicability()
+ * @generated
+ */
+ EAttribute getApplicability_VehicleType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleRelatedRestrictions <em>Vehicle Related Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Vehicle Related Restrictions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability#getVehicleRelatedRestrictions()
+ * @see #getApplicability()
+ * @generated
+ */
+ EReference getApplicability_VehicleRelatedRestrictions();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction <em>Vehicle Related Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vehicle Related Restriction</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction
+ * @generated
+ */
+ EClass getVehicleRelatedRestriction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restriction Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionType()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRelatedRestriction_RestrictionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restriction Value</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionValue()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRelatedRestriction_RestrictionValue();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Restriction Location</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction#getRestrictionLocation()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EReference getVehicleRelatedRestriction_RestrictionLocation();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Speed Limit</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit
+ * @generated
+ */
+ EClass getTemporarySpeedLimit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getTemporarySpeedLimitSections <em>Temporary Speed Limit Sections</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Temporary Speed Limit Sections</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getTemporarySpeedLimitSections()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EReference getTemporarySpeedLimit_TemporarySpeedLimitSections();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Units MPH</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#isUnitsMPH()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimit_UnitsMPH();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getOffset <em>Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Offset</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getOffset()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimit_Offset();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getApplicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Applicability</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit#getApplicability()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EReference getTemporarySpeedLimit_Applicability();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection <em>Temporary Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Speed Limit Section</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection
+ * @generated
+ */
+ EClass getTemporarySpeedLimitSection();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Value</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValue()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Value Wet</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitValueWet()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitValueWet();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Length</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection#getSpeedLimitLength()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitLength();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ trafficincidentFactory gettrafficincidentFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl <em>Traffic Incident</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TrafficIncidentImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getTrafficIncident()
+ * @generated
+ */
+ EClass TRAFFIC_INCIDENT = eINSTANCE.getTrafficIncident();
+
+ /**
+ * The meta object literal for the '<em><b>Effect Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__EFFECT_CODE = eINSTANCE.getTrafficIncident_EffectCode();
+
+ /**
+ * The meta object literal for the '<em><b>Effect Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__EFFECT_TEXT = eINSTANCE.getTrafficIncident_EffectText();
+
+ /**
+ * The meta object literal for the '<em><b>Start Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__START_TIME = eINSTANCE.getTrafficIncident_StartTime();
+
+ /**
+ * The meta object literal for the '<em><b>Stop Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__STOP_TIME = eINSTANCE.getTrafficIncident_StopTime();
+
+ /**
+ * The meta object literal for the '<em><b>Tendency</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__TENDENCY = eINSTANCE.getTrafficIncident_Tendency();
+
+ /**
+ * The meta object literal for the '<em><b>Tendency Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__TENDENCY_TEXT = eINSTANCE.getTrafficIncident_TendencyText();
+
+ /**
+ * The meta object literal for the '<em><b>Length Affected</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__LENGTH_AFFECTED = eINSTANCE.getTrafficIncident_LengthAffected();
+
+ /**
+ * The meta object literal for the '<em><b>Average Speed Absolute</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__AVERAGE_SPEED_ABSOLUTE = eINSTANCE.getTrafficIncident_AverageSpeedAbsolute();
+
+ /**
+ * The meta object literal for the '<em><b>Delay</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__DELAY = eINSTANCE.getTrafficIncident_Delay();
+
+ /**
+ * The meta object literal for the '<em><b>Segment Speed Limit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__SEGMENT_SPEED_LIMIT = eINSTANCE.getTrafficIncident_SegmentSpeedLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Causes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__CAUSES = eINSTANCE.getTrafficIncident_Causes();
+
+ /**
+ * The meta object literal for the '<em><b>Location</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__LOCATION = eINSTANCE.getTrafficIncident_Location();
+
+ /**
+ * The meta object literal for the '<em><b>Advices</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__ADVICES = eINSTANCE.getTrafficIncident_Advices();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__APPLICABILITY = eINSTANCE.getTrafficIncident_Applicability();
+
+ /**
+ * The meta object literal for the '<em><b>Traffic Incident Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__TRAFFIC_INCIDENT_ID = eINSTANCE.getTrafficIncident_TrafficIncidentId();
+
+ /**
+ * The meta object literal for the '<em><b>Location Info</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__LOCATION_INFO = eINSTANCE.getTrafficIncident_LocationInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Cause Texts</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__CAUSE_TEXTS = eINSTANCE.getTrafficIncident_CauseTexts();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability Texts</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__APPLICABILITY_TEXTS = eINSTANCE.getTrafficIncident_ApplicabilityTexts();
+
+ /**
+ * The meta object literal for the '<em><b>Advice Texts</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__ADVICE_TEXTS = eINSTANCE.getTrafficIncident_AdviceTexts();
+
+ /**
+ * The meta object literal for the '<em><b>Category Ids</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__CATEGORY_IDS = eINSTANCE.getTrafficIncident_CategoryIds();
+
+ /**
+ * The meta object literal for the '<em><b>Location Bounding Box</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__LOCATION_BOUNDING_BOX = eINSTANCE.getTrafficIncident_LocationBoundingBox();
+
+ /**
+ * The meta object literal for the '<em><b>Expected Speed Absolute</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRAFFIC_INCIDENT__EXPECTED_SPEED_ABSOLUTE = eINSTANCE.getTrafficIncident_ExpectedSpeedAbsolute();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Speed Limit</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRAFFIC_INCIDENT__TEMPORARY_SPEED_LIMIT = eINSTANCE.getTrafficIncident_TemporarySpeedLimit();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.CauseImpl <em>Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.CauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getCause()
+ * @generated
+ */
+ EClass CAUSE = eINSTANCE.getCause();
+
+ /**
+ * The meta object literal for the '<em><b>Main Cause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CAUSE__MAIN_CAUSE = eINSTANCE.getCause_MainCause();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LinkedCauseImpl <em>Linked Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LinkedCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getLinkedCause()
+ * @generated
+ */
+ EClass LINKED_CAUSE = eINSTANCE.getLinkedCause();
+
+ /**
+ * The meta object literal for the '<em><b>Cause Traffic Incident Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINKED_CAUSE__CAUSE_TRAFFIC_INCIDENT_ID = eINSTANCE.getLinkedCause_CauseTrafficIncidentId();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl <em>Direct Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.DirectCauseImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getDirectCause()
+ * @generated
+ */
+ EClass DIRECT_CAUSE = eINSTANCE.getDirectCause();
+
+ /**
+ * The meta object literal for the '<em><b>Warning Level</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__WARNING_LEVEL = eINSTANCE.getDirectCause_WarningLevel();
+
+ /**
+ * The meta object literal for the '<em><b>Unverified Information</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__UNVERIFIED_INFORMATION = eINSTANCE.getDirectCause_UnverifiedInformation();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Cause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__SUB_CAUSE = eINSTANCE.getDirectCause_SubCause();
+
+ /**
+ * The meta object literal for the '<em><b>Length Affected</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__LENGTH_AFFECTED = eINSTANCE.getDirectCause_LengthAffected();
+
+ /**
+ * The meta object literal for the '<em><b>Lane Restrictions</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DIRECT_CAUSE__LANE_RESTRICTIONS = eINSTANCE.getDirectCause_LaneRestrictions();
+
+ /**
+ * The meta object literal for the '<em><b>Free Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__FREE_TEXT = eINSTANCE.getDirectCause_FreeText();
+
+ /**
+ * The meta object literal for the '<em><b>Cause Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__CAUSE_OFFSET = eINSTANCE.getDirectCause_CauseOffset();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LaneRestrictionsImpl <em>Lane Restrictions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.LaneRestrictionsImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getLaneRestrictions()
+ * @generated
+ */
+ EClass LANE_RESTRICTIONS = eINSTANCE.getLaneRestrictions();
+
+ /**
+ * The meta object literal for the '<em><b>Lane Restriction Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LANE_RESTRICTIONS__LANE_RESTRICTION_TYPE = eINSTANCE.getLaneRestrictions_LaneRestrictionType();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Lanes</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LANE_RESTRICTIONS__NUMBER_OF_LANES = eINSTANCE.getLaneRestrictions_NumberOfLanes();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl <em>Advice</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.AdviceImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getAdvice()
+ * @generated
+ */
+ EClass ADVICE = eINSTANCE.getAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Main Advice</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__MAIN_ADVICE = eINSTANCE.getAdvice_MainAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Advice</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__SUB_ADVICE = eINSTANCE.getAdvice_SubAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ADVICE__APPLICABILITY = eINSTANCE.getAdvice_Applicability();
+
+ /**
+ * The meta object literal for the '<em><b>Free Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__FREE_TEXT = eINSTANCE.getAdvice_FreeText();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.ApplicabilityImpl <em>Applicability</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.ApplicabilityImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getApplicability()
+ * @generated
+ */
+ EClass APPLICABILITY = eINSTANCE.getApplicability();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute APPLICABILITY__VEHICLE_TYPE = eINSTANCE.getApplicability_VehicleType();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Related Restrictions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference APPLICABILITY__VEHICLE_RELATED_RESTRICTIONS = eINSTANCE.getApplicability_VehicleRelatedRestrictions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl <em>Vehicle Related Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.VehicleRelatedRestrictionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getVehicleRelatedRestriction()
+ * @generated
+ */
+ EClass VEHICLE_RELATED_RESTRICTION = eINSTANCE.getVehicleRelatedRestriction();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE = eINSTANCE.getVehicleRelatedRestriction_RestrictionType();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE = eINSTANCE.getVehicleRelatedRestriction_RestrictionValue();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Location</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION = eINSTANCE.getVehicleRelatedRestriction_RestrictionLocation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl <em>Temporary Speed Limit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getTemporarySpeedLimit()
+ * @generated
+ */
+ EClass TEMPORARY_SPEED_LIMIT = eINSTANCE.getTemporarySpeedLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Speed Limit Sections</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPORARY_SPEED_LIMIT__TEMPORARY_SPEED_LIMIT_SECTIONS = eINSTANCE.getTemporarySpeedLimit_TemporarySpeedLimitSections();
+
+ /**
+ * The meta object literal for the '<em><b>Units MPH</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT__UNITS_MPH = eINSTANCE.getTemporarySpeedLimit_UnitsMPH();
+
+ /**
+ * The meta object literal for the '<em><b>Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT__OFFSET = eINSTANCE.getTemporarySpeedLimit_Offset();
+
+ /**
+ * The meta object literal for the '<em><b>Applicability</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPORARY_SPEED_LIMIT__APPLICABILITY = eINSTANCE.getTemporarySpeedLimit_Applicability();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl <em>Temporary Speed Limit Section</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.TemporarySpeedLimitSectionImpl
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.impl.trafficincidentPackageImpl#getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EClass TEMPORARY_SPEED_LIMIT_SECTION = eINSTANCE.getTemporarySpeedLimitSection();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitValue();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Value Wet</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitValueWet();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitLength();
+
+ }
+
+} //trafficincidentPackage
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentAdapterFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentAdapterFactory.java
new file mode 100755
index 0000000..4ee0cd3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentAdapterFactory.java
@@ -0,0 +1,287 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage
+ * @generated
+ */
+public class trafficincidentAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static trafficincidentPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = trafficincidentPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected trafficincidentSwitch<Adapter> modelSwitch =
+ new trafficincidentSwitch<Adapter>() {
+ @Override
+ public Adapter caseTrafficIncident(TrafficIncident object) {
+ return createTrafficIncidentAdapter();
+ }
+ @Override
+ public Adapter caseCause(Cause object) {
+ return createCauseAdapter();
+ }
+ @Override
+ public Adapter caseLinkedCause(LinkedCause object) {
+ return createLinkedCauseAdapter();
+ }
+ @Override
+ public Adapter caseDirectCause(DirectCause object) {
+ return createDirectCauseAdapter();
+ }
+ @Override
+ public Adapter caseLaneRestrictions(LaneRestrictions object) {
+ return createLaneRestrictionsAdapter();
+ }
+ @Override
+ public Adapter caseAdvice(Advice object) {
+ return createAdviceAdapter();
+ }
+ @Override
+ public Adapter caseApplicability(Applicability object) {
+ return createApplicabilityAdapter();
+ }
+ @Override
+ public Adapter caseVehicleRelatedRestriction(VehicleRelatedRestriction object) {
+ return createVehicleRelatedRestrictionAdapter();
+ }
+ @Override
+ public Adapter caseTemporarySpeedLimit(TemporarySpeedLimit object) {
+ return createTemporarySpeedLimitAdapter();
+ }
+ @Override
+ public Adapter caseTemporarySpeedLimitSection(TemporarySpeedLimitSection object) {
+ return createTemporarySpeedLimitSectionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident <em>Traffic Incident</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident
+ * @generated
+ */
+ public Adapter createTrafficIncidentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause
+ * @generated
+ */
+ public Adapter createCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause <em>Linked Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause
+ * @generated
+ */
+ public Adapter createLinkedCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause <em>Direct Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause
+ * @generated
+ */
+ public Adapter createDirectCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions <em>Lane Restrictions</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions
+ * @generated
+ */
+ public Adapter createLaneRestrictionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice
+ * @generated
+ */
+ public Adapter createAdviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability <em>Applicability</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability
+ * @generated
+ */
+ public Adapter createApplicabilityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction <em>Vehicle Related Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction
+ * @generated
+ */
+ public Adapter createVehicleRelatedRestrictionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimit
+ * @generated
+ */
+ public Adapter createTemporarySpeedLimitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection <em>Temporary Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TemporarySpeedLimitSection
+ * @generated
+ */
+ public Adapter createTemporarySpeedLimitSectionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //trafficincidentAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentSwitch.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentSwitch.java
new file mode 100755
index 0000000..8d12409
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model/src/org/genivi/trafficincidentsservice/trafficincidents/trafficincident/util/trafficincidentSwitch.java
@@ -0,0 +1,306 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidents.trafficincident.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage
+ * @generated
+ */
+public class trafficincidentSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static trafficincidentPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentSwitch() {
+ if (modelPackage == null) {
+ modelPackage = trafficincidentPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case trafficincidentPackage.TRAFFIC_INCIDENT: {
+ TrafficIncident trafficIncident = (TrafficIncident)theEObject;
+ T result = caseTrafficIncident(trafficIncident);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.CAUSE: {
+ Cause cause = (Cause)theEObject;
+ T result = caseCause(cause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.LINKED_CAUSE: {
+ LinkedCause linkedCause = (LinkedCause)theEObject;
+ T result = caseLinkedCause(linkedCause);
+ if (result == null) result = caseCause(linkedCause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.DIRECT_CAUSE: {
+ DirectCause directCause = (DirectCause)theEObject;
+ T result = caseDirectCause(directCause);
+ if (result == null) result = caseCause(directCause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.LANE_RESTRICTIONS: {
+ LaneRestrictions laneRestrictions = (LaneRestrictions)theEObject;
+ T result = caseLaneRestrictions(laneRestrictions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.ADVICE: {
+ Advice advice = (Advice)theEObject;
+ T result = caseAdvice(advice);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.APPLICABILITY: {
+ Applicability applicability = (Applicability)theEObject;
+ T result = caseApplicability(applicability);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.VEHICLE_RELATED_RESTRICTION: {
+ VehicleRelatedRestriction vehicleRelatedRestriction = (VehicleRelatedRestriction)theEObject;
+ T result = caseVehicleRelatedRestriction(vehicleRelatedRestriction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT: {
+ TemporarySpeedLimit temporarySpeedLimit = (TemporarySpeedLimit)theEObject;
+ T result = caseTemporarySpeedLimit(temporarySpeedLimit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentPackage.TEMPORARY_SPEED_LIMIT_SECTION: {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = (TemporarySpeedLimitSection)theEObject;
+ T result = caseTemporarySpeedLimitSection(temporarySpeedLimitSection);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Traffic Incident</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Traffic Incident</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrafficIncident(TrafficIncident object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCause(Cause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linked Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linked Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkedCause(LinkedCause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Direct Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Direct Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDirectCause(DirectCause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lane Restrictions</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Lane Restrictions</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLaneRestrictions(LaneRestrictions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Advice</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Advice</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdvice(Advice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Applicability</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Applicability</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseApplicability(Applicability object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vehicle Related Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Vehicle Related Restriction</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVehicleRelatedRestriction(VehicleRelatedRestriction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Speed Limit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Speed Limit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemporarySpeedLimit(TemporarySpeedLimit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Speed Limit Section</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Speed Limit Section</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemporarySpeedLimitSection(TemporarySpeedLimitSection object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //trafficincidentSwitch
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.classpath b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.classpath
new file mode 100755
index 0000000..be9eba3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.classpath
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.booleanexpr-model"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.demo"/>
+ <classpathentry kind="src" path="/org.genivi.iconset-model"/>
+ <classpathentry kind="src" path="/org.genivi.locref-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidenttables-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.project b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.project
new file mode 100755
index 0000000..6924aaa
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/.project
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsservice.trafficincidentsservice-model</name>
+ <comment>This project contains the model which defines the API&apos;s of the Traffic Incidents Service. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ <project>org.genivi.booleanexpr-model</project>
+ <project>org.genivi.trafficinfo.demo</project>
+ <project>org.genivi.iconset-model</project>
+ <project>org.genivi.locref-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidenttables-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..7b9cd89
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.trafficinfo.trafficincidents-model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.trafficincidentsservice,
+ org.genivi.trafficincidentsservice.impl,
+ org.genivi.trafficincidentsservice.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.basetypes-model;visibility:=reexport,
+ org.genivi.iconset-model;visibility:=reexport,
+ org.genivi.locref-model;visibility:=reexport,
+ org.genivi.trafficinfo.trafficincident;visibility:=reexport,
+ org.genivi.trafficinfo.xtrafficincident;resolution:=optional;visibility:=reexport,
+ org.genivi.trafficinfo.trafficincidenttables;resolution:=optional;visibility:=reexport
+Bundle-ActivationPolicy: lazy
+Import-Package: org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident,
+ org.genivi.trafficincidentsservice.trafficincidents.trafficincident,
+ org.genivi.trafficincidentsservice.trafficincidenttables
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/ReadMe.confluence
new file mode 100755
index 0000000..3179668
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/ReadMe.confluence
@@ -0,0 +1,3 @@
+This project defines the main interfaces of the TrafficIncidentsService. The data models for traffic incidents are in sub packages in other projects.
+
+TrafficIncidentsService.ecorediag, in de model folder, provides a good overview of the structure of the interfaces. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/build.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecore b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecore
new file mode 100755
index 0000000..1d3c591
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecore
@@ -0,0 +1,683 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="trafficincidentsservice" nsURI="http://org.genivi.trafficinfo.trafficincidentsservice"
+ nsPrefix="trafficincidentsservice">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="TrafficIncidents">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is the main interface via which a client obtains Traffic Information."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.tomtom.com/emfidl/2012/GenModel">
+ <details key="versionMajor" value="0"/>
+ <details key="versionMinor" value="1"/>
+ </eAnnotations>
+ <eOperations name="getVersion">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get the API version of this interface implemented by the service."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="addUpdateListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Add a listener which is notified in case of any update in the traffic information.&#xD;&#xA;In case of an update the updates() method of the listener is called."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="warningLevels" upperBound="-1" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//WarningLevel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only incidents with one of the specified warning levels will be returned.&#xD;&#xA;In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="updateListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="addAreasUpdateListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Add a listener which is notified in case of an update in the traffic information in one or more specific area's.&#xD;&#xA;In case of an update the updatesInAreas() method of the listener is called."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="warningLevels" upperBound="-1" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//WarningLevel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only incidents with one of the specified warning levels will be returned.&#xD;&#xA;In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="areas" upperBound="-1" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/RectangularArea">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The area's to be observed for changes."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="updateListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="getLanguage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get the current language."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="setLanguage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set the language."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="languageCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The language to be used."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="countryCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The country specific variant for the language to be used."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="setTimeFormat">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="timeFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="setDateFormat">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="dateFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="setLengthUnit">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="lengthUnit" eType="#//LengthUnit"/>
+ </eOperations>
+ <eOperations name="setWeightUnit">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="weightUnit" eType="#//WeightUnit"/>
+ </eOperations>
+ <eOperations name="getApplicability">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="setApplicability">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="filterExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="reserveIconSetIds">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="numberOfIds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="freeIconSetIds">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="iconSetIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getIconSets">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="addIconSetDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="iconSets" upperBound="-1" eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconSet"/>
+ </eOperations>
+ <eOperations name="removeIconSetDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="iconSetIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getIconDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="iconInfos" upperBound="-1" eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconInfo"/>
+ </eOperations>
+ <eOperations name="addIconDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="iconDefinitions" upperBound="-1" eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconDefinition"/>
+ </eOperations>
+ <eOperations name="removeIconDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="iconInfos" upperBound="-1" eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconInfo"/>
+ </eOperations>
+ <eOperations name="reserveCategoryIds">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="numberOfIds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="freeCategoryIds">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getCategoryDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="addCategoryDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="categoryDefinitions" upperBound="-1" eType="#//CategoryDefinition"/>
+ </eOperations>
+ <eOperations name="removeCategoryDefinitions">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getTrafficIncidentIds">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get all the Ids of the current traffic incidents."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="warningLevels" upperBound="-1" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//WarningLevel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only incidents with one of the specified warning levels will be returned.&#xD;&#xA;In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getTrafficIncidentIdsInAreas">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get the Ids of the traffic incidents in a number of areas."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="warningLevels" upperBound="-1" eType="ecore:EEnum ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore#//WarningLevel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only incidents with one of the specified warning levels will be returned.&#xD;&#xA;In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="areas" upperBound="-1" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/RectangularArea">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The areas for which the traffic incident Ids are requested."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTrafficIncidents">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get a number of Traffic Incidents."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="trafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Ids of the requested Traffic Incidents."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="includeTextFields" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text fields in the returned Traffic Incident will only be filled in if this parameter is set to true."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTrafficIncidentsFields">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get a number of Traffic Incidents, where only specific fields are filled in.."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="trafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Ids of the requested Traffic Incidents."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="trafficIncidentFields" upperBound="-1" eType="#//TrafficIncidentField">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The fields (attributes) to be filled in in the Traffic Incident."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTexts">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get the texts for a number of Traffic Incidents."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="trafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Ids of the Traffic Incidents for which the texts are requested."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="textDetailLevel" eType="#//TextDetailLevel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The amount of detail to be provided in the texts."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="addTrafficIncidentsStatusListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Add a listener which is notified in case of any change in Traffic Incidents status.&#xD;&#xA;In case of a status change, the TrafficIncidentsStatus() method of the listener is called."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="trafficIncidentsStatusListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="addFeedInformationListener">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="feedInformationListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="removeUpdateListener">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="updateListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="removeAreasUpdateListener">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="updateListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="removeTrafficIncidentsStatusListener">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="trafficIncidentsStatusListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ <eOperations name="removeFeedInformationListener">
+ <eParameters name="listener" eType="#//TrafficIncidentsListener"/>
+ <eParameters name="feedInformationListener" eType="#//TrafficIncidentsListener"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TrafficIncidentsListener">
+ <eOperations name="getVersionReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getVersion()."/>
+ </eAnnotations>
+ <eParameters name="version" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/Version">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The API version of this interface implemented by the service."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="updates">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a client has registered itself as a listener for any updates in the traffic incidents,&#xD;&#xA;this method is called if there are changes."/>
+ </eAnnotations>
+ <eParameters name="unchangedTrafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="changedTrafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="newTrafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="deletedTrafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="updatesInAreas">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a client has registered itself as a listener for updates in the traffic incidents in one or more area's&#xD;&#xA;(via addAreaUpdateListener() or addAreasUpdateListener()),&#xD;&#xA;this method is called if there are changes."/>
+ </eAnnotations>
+ <eParameters name="areas" upperBound="-1" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/RectangularArea">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The area's in which changes have taken place."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="trafficIncidentsStatus">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a client has registered itself as a listener for changes in the Traffic Incidents status,&#xD;&#xA;this method is called upon changes in the Traffic Incidents status.&#xD;&#xA;The provided status information is the combined status of the available feeds in the system.&#xD;&#xA;Details of how the information is combined is given per parameter."/>
+ </eAnnotations>
+ <eParameters name="trafficIncidentFeedStatus" eType="#//TrafficIncidentFeedStatus">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The combined status of the Traffic Incident Feeds.&#xD;&#xA;If all Feeds are UNAVAILABLE, the status is UNAVAILABLE.&#xD;&#xA;Else, if any of the Feeds is CONNECTED, the status is CONNECTED.&#xD;&#xA;Else, the status is DISCONNECTED (so there are Feeds available, but none of them is connected)."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="trafficIncidentsStatus" eType="#//TrafficIncidentsStatus">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The combined status of the Traffic Incidents.&#xD;&#xA;If the status for all the Feeds is AVAILABLE, , the combined status is AVAILABLE.&#xD;&#xA;Else, if the status for one of the Feeds is PARTLY_AVAILABLE, the combined status is PARTLY_AVAILABLE.&#xD;&#xA;Else, the combined status is UNAVAILABLE (so there are no Traffic Incidents at all).&#xD;&#xA;&#xD;&#xA; &#xD;&#xA;Meaning of the enum values at this level:&#xD;&#xA;UNAVAILABLE: The are no incidents in the system, and currently they can also not be received.&#xD;&#xA;PARTLY_AVAILABLE: There are or may be incidents in the system, but the set of incidents is probably not up to date.&#xD;&#xA;This means that big changes are possible. Examples: Upon start-up, some incidents have already been received,&#xD;&#xA;but there are more incidents to receive. If the user is looking at the map display, new incidents may suddenly appear.&#xD;&#xA;When a connection is lost, the information stays valid for some time, but the information may no longer be fully up to date,&#xD;&#xA;and at some point in time a lot of incidents may suddenly disappear because they are no longer valid.&#xD;&#xA;AVAILABLE: The reception and handling of the incidents is stable, and as up to date as possible with respect to the used protocol(s).&#xD;&#xA;It is however still possible that there are currently no Traffic Incidents."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="feedInformation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a client has registered itself as a listener for changes in the Feed Information,&#xD;&#xA;this method is called upon changes in the Feed Information."/>
+ </eAnnotations>
+ <eParameters name="feedsInformation" upperBound="-1" eType="#//FeedInformation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The information per Traffic Incident Feed."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getLanguageReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getLanguage()."/>
+ </eAnnotations>
+ <eParameters name="languageCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The language."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="countryCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The country specific variant for the language."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getApplicabilityReply">
+ <eParameters name="filterExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="reserveIconSetIdsReply">
+ <eParameters name="iconSetIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="reserveCategoryIdsReply">
+ <eParameters name="categoryIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getTrafficIncidentIdsReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getTrafficIncidentIds()."/>
+ </eAnnotations>
+ <eParameters name="trafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Ids of the requested traffic incidents."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTrafficIncidentIdsInAreasReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getTrafficIncidentIdsInAreas()."/>
+ </eAnnotations>
+ <eParameters name="trafficIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Ids of the requested traffic incidents."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTrafficIncidentsReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getTrafficIncidents()."/>
+ </eAnnotations>
+ <eParameters name="trafficIncidents" upperBound="-1" eType="ecore:EClass ../../org.genivi.trafficincidentsservice.trafficincidents.trafficincident-model/model/TrafficIncident.ecore#//TrafficIncident">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The requested Traffic Incidents. This list may be shorter than the request list&#xD;&#xA;as nothing is returned for Ids that don't exist (anymore)."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTrafficIncidentsFieldsReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getTrafficIncidentsFields()."/>
+ </eAnnotations>
+ <eParameters name="trafficIncidents" upperBound="-1" eType="ecore:EClass ../../org.genivi.trafficincidentsservice.trafficincidents.trafficincident-model/model/TrafficIncident.ecore#//TrafficIncident">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The requested Traffic Incidents, with only the requested fields filled in.&#xD;&#xA;This list may be shorter than the request list as nothing is returned for&#xD;&#xA;Ids that don't exist (anymore)."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getTextsReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getTexts()."/>
+ </eAnnotations>
+ <eParameters name="texts" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Text information per requested traffic incident.&#xD;&#xA;The texts will be in the same order as the trafficIncidentIds in the request."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="addTrafficIncidentsStatusListenerReply"/>
+ <eOperations name="addFeedInformationListenerReply"/>
+ <eOperations name="addUpdateListenerReply"/>
+ <eOperations name="removeUpdateListenerReply"/>
+ <eOperations name="addAreasUpdateListenerReply"/>
+ <eOperations name="removeAreasUpdateListenerReply"/>
+ <eOperations name="setLanguageReply"/>
+ <eOperations name="setTimeFormatReply"/>
+ <eOperations name="setDateFormatReply"/>
+ <eOperations name="setLengthUnitReply"/>
+ <eOperations name="setWeightUnitReply"/>
+ <eOperations name="setApplicabilityReply"/>
+ <eOperations name="freeCategoryIdsReply"/>
+ <eOperations name="getCategoryDefinitionsReply">
+ <eParameters name="categoryDefinitions" upperBound="-1" eType="#//CategoryDefinition"/>
+ </eOperations>
+ <eOperations name="addCategoryDefinitionsReply"/>
+ <eOperations name="removeCategoryDefinitionsReply"/>
+ <eOperations name="freeIconSetIdsReply"/>
+ <eOperations name="getIconDefinitionsReply">
+ <eParameters name="iconDefinitions" upperBound="-1" eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconDefinition"/>
+ </eOperations>
+ <eOperations name="addIconDefinitionsReply"/>
+ <eOperations name="removeIconDefinitionsReply"/>
+ <eOperations name="getIconSetsReply">
+ <eParameters name="iconSets" upperBound="-1" eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconSet"/>
+ </eOperations>
+ <eOperations name="addIconSetDefinitionsReply"/>
+ <eOperations name="removeIconSetDefinitionsReply"/>
+ <eOperations name="removeFeedInformationListenerReply"/>
+ <eOperations name="removeTrafficIncidentsStatusListenerReply"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrafficIncidentField">
+ <eLiterals name="TRAFFIC_INCIDENT_ID" value="1"/>
+ <eLiterals name="EFFECT_CODE" value="2"/>
+ <eLiterals name="EFFECT_TEXT" value="3"/>
+ <eLiterals name="START_TIME" value="4"/>
+ <eLiterals name="STOP_TIME" value="5"/>
+ <eLiterals name="TENDENCY" value="6"/>
+ <eLiterals name="TENDENCY_TEXT" value="7"/>
+ <eLiterals name="LENGTH_AFFECTED" value="8"/>
+ <eLiterals name="AVERAGE_SPEED_ABSOLUTE" value="9"/>
+ <eLiterals name="DELAY" value="10"/>
+ <eLiterals name="SEGMENT_SPEED_LIMIT" value="11"/>
+ <eLiterals name="CAUSES" value="13"/>
+ <eLiterals name="CAUSE_TEXTS" value="14"/>
+ <eLiterals name="APPLICABILITY_TEXTS" value="16"/>
+ <eLiterals name="LOCATION" value="17"/>
+ <eLiterals name="LOCATION_INFO" value="18"/>
+ <eLiterals name="LOCATION_BOUNDING_BOX" value="19"/>
+ <eLiterals name="APPLICABILITY" value="15"/>
+ <eLiterals name="ADVICES" value="20"/>
+ <eLiterals name="ADVICE_TEXTS" value="21"/>
+ <eLiterals name="EXPECTED_SPEED_ABSOLUTE" value="12"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TextDetailLevel">
+ <eLiterals name="FULL" value="1"/>
+ <eLiterals name="SUMMARY" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TrafficIncidentFeed">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This interface can be used by Traffic Incident Feeds to feed Traffic Incidents into the Traffic Incidents Service."/>
+ </eAnnotations>
+ <eOperations name="getVersion">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get the API version of this interface implemented by the service."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentFeedListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getLanguage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Get the current language. In case of a client/server based Feed, this language can be sent to the server in order to receive any textual information in the right language."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentFeedListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="addLanguageListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Add this client as a listener for changes in the current language. In case of changes, getLanguageReply() is called on the listener."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentFeedListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class on which the callback function is called."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="changeListener" eType="#//TrafficIncidentFeedListener"/>
+ </eOperations>
+ <eOperations name="clear">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Clear the internal store of the Traffic Incidents Service. This may be needed if the source of the Traffic Incidents is changed, or if the server indicates that a reset is needed."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="updateIncidents">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Update the Traffic Incidents in the internal store of the Traffic Incidents Service. These updates can consist of incidents to be removed (cancelledIncidentIds), and/or new or updated incidents (updatedIncidents). The 'cancels' are handled before the 'updates'."/>
+ </eAnnotations>
+ <eParameters name="feedId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="cancelledIncidentIds" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The unique Ids of the incidents to be deleted."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="updatedIncidents" upperBound="-1" eType="ecore:EClass ../../org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident-model/model/XTrafficIncident.ecore#//TrafficIncident">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The new or updated incidents."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="updateStatus">
+ <eParameters name="feedId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="feedStatus" eType="#//TrafficIncidentFeedStatus"/>
+ <eParameters name="incidentsStatus" eType="#//TrafficIncidentsStatus"/>
+ </eOperations>
+ <eOperations name="registerFeed">
+ <eParameters name="listener" eType="#//TrafficIncidentFeedListener"/>
+ <eParameters name="dataProviderName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="protocolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="communicationChannelName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="removeLanguageListener">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Remove this client as a listener for changes in the current language."/>
+ </eAnnotations>
+ <eParameters name="listener" eType="#//TrafficIncidentFeedListener"/>
+ <eParameters name="changeListener" eType="#//TrafficIncidentFeedListener"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TrafficIncidentFeedListener">
+ <eOperations name="getVersionReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getVersion()."/>
+ </eAnnotations>
+ <eParameters name="version" eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/Version">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The API version of this interface implemented by the service."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getLanguageReply">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This method is called as a response to getLanguage() or addLanguegeListener() when the language is changed."/>
+ </eAnnotations>
+ <eParameters name="languageCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The currently used language."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="countryCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The currently used, country specific variant of the language."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="registerFeedReply">
+ <eParameters name="feedId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="addLanguageListenerReply"/>
+ <eOperations name="removeLanguageListenerReply"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrafficIncidentFeedStatus">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This type provides information on the status of a Traffic Incident Feed, or of a combination of Traffic Incident Feeds. "/>
+ </eAnnotations>
+ <eLiterals name="UNAVAILABLE" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There is no Traffic Incident Feed available. A feed is not available if a connection is not possible.&#xD;&#xA;Examples of this are: there is no location table available for the current country (in case of TMC),&#xD;&#xA;or the user has no valid subscription."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="CONNECTED" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One or more Traffic Incident Feeds are available and connected (a communication channel is operational)."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="DISCONNECTED" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One or more Traffic Incident Feeds are available but none of them is currently connected&#xD;&#xA;(the communication channels are not operational).&#xD;&#xA;For example, an RDS/TMC receiver is available but there is no signal,&#xD;&#xA;or a TPEG over HTTP/IP feed is available but the connection to the server failed."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrafficIncidentsStatus">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This type provides information on the status of the Traffic Incidents. "/>
+ </eAnnotations>
+ <eLiterals name="UNAVAILABLE" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There is no Traffic Incident data available."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="PARTLY_AVAILABLE" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There is incomplete Traffic Incident data available. This happens e.g. if the Feed status has changed from DISCONNECTED to CONNECTED&#xD;&#xA;and the system knows that not all information has been received, or if the Feed status goes temporarily from CONNECTED to DISCONNECTED."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="AVAILABLE" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There is Traffic Incident data available."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeedInformation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This data type provides information about a Traffic Incident Feed."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataProviderName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The name of the data provider."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The name of the protocol via which the Traffic Incidents are received.&#xD;&#xA;There are no predefined values."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="communicationChannelName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The name of the communication channel.&#xD;&#xA;There are no predefined values."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="feedStatus" lowerBound="1"
+ eType="#//TrafficIncidentFeedStatus" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The status of the Feed."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="trafficIncidentsStatus"
+ lowerBound="1" eType="#//TrafficIncidentsStatus" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The status of the Traffic Incidents delivered by this Feed."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CategoryDefinition">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="localizedNames" upperBound="-1"
+ eType="ecore:EClass ../../org.genivi.basetypes-model/model/Basetypes.ecore#//common/LocalizedString"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="categoryId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="icons" upperBound="-1"
+ eType="ecore:EClass ../../org.genivi.iconset-model/model/IconSet.ecore#//IconInfo"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SpeedUnit">
+ <eLiterals name="KILOMETERS_PER_HOUR" value="1"/>
+ <eLiterals name="MILES_PER_HOUR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LengthUnit">
+ <eLiterals name="KILOMETERS" value="1"/>
+ <eLiterals name="MILES" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="WeightUnit">
+ <eLiterals name="KILOGRAM" value="1"/>
+ <eLiterals name="POUND" value="2"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecorediag b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecorediag
new file mode 100755
index 0000000..31c1087
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.ecorediag
@@ -0,0 +1,696 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Dx65oY6nEeGD2upJ5SBM5Q" type="EcoreTools" name="TrafficIncidentsService.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_HEoAgI6nEeGD2upJ5SBM5Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_HExxgI6nEeGD2upJ5SBM5Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_HExxgY6nEeGD2upJ5SBM5Q" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HExxgo6nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HExxg46nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HExxhI6nEeGD2upJ5SBM5Q"/>
+ <layoutConstraint xmi:type="notation:Ratio" xmi:id="_I1bPwI6nEeGD2upJ5SBM5Q" value="0.3"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HExxhY6nEeGD2upJ5SBM5Q" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_IIcCYI6xEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getVersion"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IIcCYY6xEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qePwII8NEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getLanguage"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qePwIY8NEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__K920I8NEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/setLanguage"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__K920Y8NEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_R7qZcB0bEeKnjbQ-hZZ19g" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/setTimeFormat"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R7qZcR0bEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aGE2IB0bEeKnjbQ-hZZ19g" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/setDateFormat"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aGE2IR0bEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_f4FRAB0bEeKnjbQ-hZZ19g" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/setLengthUnit"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f4FRAR0bEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EXhmUB3cEeKnjbQ-hZZ19g" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/setWeightUnit"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EXhmUR3cEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lESlgBecEeK70NvnY3NN2A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getApplicability"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lESlgRecEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YVjpEBecEeK70NvnY3NN2A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/setApplicability"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YVjpERecEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ttp78A37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/reserveIconSetIds"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ttp78Q37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_l0HLAA37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/freeIconSetIds"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l0HLAQ37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__IcWAA37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getIconSets"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__IcWAQ37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oi998A37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addIconSetDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oi998Q37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wltFUA37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconSetDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wltFUQ37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DPo04A38EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getIconDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DPo04Q38EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dwLw0A37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addIconDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dwLw0Q37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uCUikA37EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uCUikQ37EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TCgQsA38EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/reserveCategoryIds"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TCgQsQ38EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TBUvgA39EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/freeCategoryIds"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TBUvgQ39EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-lKY8BIQEeK70NvnY3NN2A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getCategoryDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-lKY8RIQEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_icaRQAM4EeKPy-s2XR1yyQ" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addCategoryDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_icaRQQM4EeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VywVUA39EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeCategoryDefinitions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VywVUQ39EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4YDpII7MEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIds"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4YDpIY7MEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xCALII7YEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIdsInAreas"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xCALIY7YEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DHUOEI8CEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidents"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DHUOEY8CEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-8tfwI8KEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentsFields"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-8tfwY8KEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nr-HsI8LEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/getTexts"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nr-HsY8LEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_69QmYOUnEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addTrafficIncidentsStatusListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_69QmYeUnEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9v2bwIyJEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeTrafficIncidentsStatusListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9v2bwYyJEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qbvxgOVLEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addFeedInformationListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qbvxgeVLEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DgVzsIyKEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeFeedInformationListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DgVzsYyKEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gVIAgI8MEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addUpdateListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gVIAgY8MEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2uoUsBOIEeK70NvnY3NN2A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeUpdateListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2uoUsROIEeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Yz2K8I8NEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Yz2K8Y8NEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_47spMBOIEeK70NvnY3NN2A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidents/removeAreasUpdateListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_47spMROIEeK70NvnY3NN2A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HExxho6nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HExxh46nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HExxiI6nEeGD2upJ5SBM5Q"/>
+ <layoutConstraint xmi:type="notation:Ratio" xmi:id="_I1bPwY6nEeGD2upJ5SBM5Q" value="0.3"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HEoAgY6nEeGD2upJ5SBM5Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncidentsService.ecore#//TrafficIncidents"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HEoAgo6nEeGD2upJ5SBM5Q" x="24" y="48"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_J6bI8I6nEeGD2upJ5SBM5Q" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_J6bI846nEeGD2upJ5SBM5Q" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_J6bI9I6nEeGD2upJ5SBM5Q" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_J6bI9Y6nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J6bI9o6nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J6bI946nEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_J6bI-I6nEeGD2upJ5SBM5Q" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_hL9KMI6xEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getVersionReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hL9KMY6xEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wq6twI8NEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getLanguageReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wq6twY8NEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rmB1EIvYEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setLanguageReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rmB1EYvYEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1GZYEIvYEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setTimeFormatReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1GZYEYvYEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9FBbgIvYEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setDateFormatReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9FBbgYvYEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EDb_IIvZEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setLengthUnitReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EDb_IYvZEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LgF98IvZEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setWeightUnitReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LgF98YvZEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VCWpcC82EeKgHK0pLzUFog" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getApplicabilityReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VCWpcS82EeKgHK0pLzUFog"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Xggb0IvZEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setApplicabilityReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xggb0YvZEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3CoTMA4AEeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/reserveIconSetIdsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3CoTMQ4AEeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kQuwkIvaEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/freeIconSetIdsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kQuwkYvaEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_l-qJ8A4CEeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getIconSetsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l-qJ8Q4CEeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_UaZ7oIvbEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addIconSetDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UaZ7oYvbEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_diqgoIvbEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeIconSetDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_diqgoYvbEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LCr2QA4DEeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getIconDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LCr2QQ4DEeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__zErQIvaEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addIconDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__zErQYvaEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MokXAIvbEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeIconDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MokXAYvbEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_92bNIA3-EeKQkNvsZzz0Dw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/reserveCategoryIdsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_92bNIQ3-EeKQkNvsZzz0Dw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uUS8sIvZEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/freeCategoryIdsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uUS8sYvZEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KK0NcBIREeK70NvnY3NN2A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getCategoryDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KK0NcRIREeK70NvnY3NN2A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8Ewb4IvZEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addCategoryDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8Ewb4YvZEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GToDoIvaEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeCategoryDefinitionsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GToDoYvaEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_K6MHkI7NEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentIdsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K6MHkY7NEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cdXM8I7ZEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentIdsInAreasReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cdXM8Y7ZEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jdrRYI8CEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jdrRYY8CEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WKgcEI8LEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentsFieldsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WKgcEY8LEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MQWDkI8MEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTextsReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MQWDkY8MEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_t86UQIvVEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addTrafficIncidentsStatusListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t86UQYvVEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RKQmAIyKEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeTrafficIncidentsStatusListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RKQmAYyKEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_P9UekIvWEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addFeedInformationListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_P9UekYvWEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KE_McIyKEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeFeedInformationListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KE_McYyKEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tVzmEIvXEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addUpdateListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tVzmEYvXEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ymFM4IvXEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeUpdateListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ymFM4YvXEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FHOM0IvYEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addAreasUpdateListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FHOM0YvYEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bScR0IvYEeKO9ueHrPKIyg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeAreasUpdateListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bScR0YvYEeKO9ueHrPKIyg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OCH-cOUoEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/trafficIncidentsStatus"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OCH-ceUoEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vc9BkOVLEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/feedInformation"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vc9BkeVLEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_o9XBoI8MEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updates"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o9XBoY8MEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GTWrQI8NEeGD2upJ5SBM5Q" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updatesInAreas"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GTWrQY8NEeGD2upJ5SBM5Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_J6bI-Y6nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J6bI-o6nEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J6bI-46nEeGD2upJ5SBM5Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_J6bI8Y6nEeGD2upJ5SBM5Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncidentsService.ecore#//TrafficIncidentsListener"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J6bI8o6nEeGD2upJ5SBM5Q" x="696" y="48"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YxiwkI7bEeGD2upJ5SBM5Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_Yxiwk47bEeGD2upJ5SBM5Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_YxiwlI7bEeGD2upJ5SBM5Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_dfl0EI7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/TRAFFIC_INCIDENT_ID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dfl0EY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oMJdYI7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/EFFECT_CODE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oMJdYY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qbMu4I7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/EFFECT_TEXT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qbMu4Y7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tN3q0I7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/START_TIME"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tN3q0Y7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wbgEcI7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/STOP_TIME"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wbgEcY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yQB9II7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/TENDENCY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yQB9IY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0hwvMI7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/TENDENCY_TEXT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0hwvMY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4j2roI7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/LENGTH_AFFECTED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4j2roY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6-YNUI7bEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/AVERAGE_SPEED_ABSOLUTE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6-YNUY7bEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_A30s8I7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/DELAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A30s8Y7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_D7U6MI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/SEGMENT_SPEED_LIMIT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D7U6MY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eKEz0J-ZEeO2bPxtRJW0gw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/EXPECTED_SPEED_ABSOLUTE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eKEz0Z-ZEeO2bPxtRJW0gw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GyKkcI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/CAUSES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GyKkcY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JX3bYI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/CAUSE_TEXTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JX3bYY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MP5YcI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/APPLICABILITY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MP5YcY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ovx7QI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/APPLICABILITY_TEXTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ovx7QY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RVxtII7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/LOCATION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RVxtIY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TotZEI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/LOCATION_INFO"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TotZEY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WQWJsI7cEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/LOCATION_BOUNDING_BOX"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WQWJsY7cEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_O2TtwDSjEeKmrrjF28z5iw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/ADVICES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O2TtwTSjEeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SaipgDSjEeKmrrjF28z5iw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentField/ADVICE_TEXTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SaipgTSjEeKmrrjF28z5iw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YxiwlY7bEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Yxiwlo7bEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Yxiwl47bEeGD2upJ5SBM5Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_YxiwkY7bEeGD2upJ5SBM5Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//TrafficIncidentField"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yxiwko7bEeGD2upJ5SBM5Q" x="12" y="684"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8WJ3wI8LEeGD2upJ5SBM5Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_8WTBsI8LEeGD2upJ5SBM5Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_8WTBsY8LEeGD2upJ5SBM5Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_AkdEMI8MEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TextDetailLevel/FULL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AkdEMY8MEeGD2upJ5SBM5Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DUb4gI8MEeGD2upJ5SBM5Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TextDetailLevel/SUMMARY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DUb4gY8MEeGD2upJ5SBM5Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8WTBso8LEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8WTBs48LEeGD2upJ5SBM5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8WTBtI8LEeGD2upJ5SBM5Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_8WJ3wY8LEeGD2upJ5SBM5Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//TextDetailLevel"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8WJ3wo8LEeGD2upJ5SBM5Q" x="252" y="768"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hIei0L6dEeG2bpJ885_B6A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_hIoT0L6dEeG2bpJ885_B6A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_hIoT0b6dEeG2bpJ885_B6A" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hIoT0r6dEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hIoT076dEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hIoT1L6dEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hIoT1b6dEeG2bpJ885_B6A" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_QkzcscYSEeGWeNdmieJCCA" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/getVersion"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QkzcssYSEeGWeNdmieJCCA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k7mtAL7bEeG2bpJ885_B6A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/getLanguage"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k7mtAb7bEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MNwv8OVLEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/registerFeed"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MNwv8eVLEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_y3-9wL7aEeG2bpJ885_B6A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/addLanguageListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y3-9wb7aEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VTQIwNNkEeKmBL92HXjgQw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/removeLanguageListener"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VTQIwdNkEeKmBL92HXjgQw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uZyvcMYSEeGWeNdmieJCCA" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/clear"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uZyvccYSEeGWeNdmieJCCA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_pcXroL6dEeG2bpJ885_B6A" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateIncidents"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pcXrob6dEeG2bpJ885_B6A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1MId0OU-EeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateStatus"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1MId0eU-EeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hIoT1r6dEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hIoT176dEeG2bpJ885_B6A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hIoT2L6dEeG2bpJ885_B6A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hIei0b6dEeG2bpJ885_B6A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncidentsService.ecore#//TrafficIncidentFeed"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hIei0r6dEeG2bpJ885_B6A" y="1068"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_in5VEMYaEeGWeNdmieJCCA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ioCfAMYaEeGWeNdmieJCCA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ioCfAcYaEeGWeNdmieJCCA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ioCfAsYaEeGWeNdmieJCCA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ioCfA8YaEeGWeNdmieJCCA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ioCfBMYaEeGWeNdmieJCCA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ioCfBcYaEeGWeNdmieJCCA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_Qe3UZOUtEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getVersionReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qe3UZeUtEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Qe3UZuUtEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getLanguageReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qe3UZ-UtEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eTykYOVPEeGfTpjeEoUARg" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/registerFeedReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eTykYeVPEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4D9nQNNnEeKmBL92HXjgQw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/addLanguageListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4D9nQdNnEeKmBL92HXjgQw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6_u00NNnEeKmBL92HXjgQw" type="2002">
+ <element xmi:type="ecore:EOperation" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/removeLanguageListenerReply"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6_u00dNnEeKmBL92HXjgQw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ioCfBsYaEeGWeNdmieJCCA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ioCfB8YaEeGWeNdmieJCCA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ioCfCMYaEeGWeNdmieJCCA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_in5VEcYaEeGWeNdmieJCCA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_in5VEsYaEeGWeNdmieJCCA" x="600" y="1068"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eaCk4eUkEeGfTpjeEoUARg" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_eaCk5OUkEeGfTpjeEoUARg" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_eaLu0OUkEeGfTpjeEoUARg" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_hYONQOUkEeGfTpjeEoUARg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus/UNAVAILABLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hYONQeUkEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jT2McOUkEeGfTpjeEoUARg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus/CONNECTED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jT2MceUkEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kusZ0OUkEeGfTpjeEoUARg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus/DISCONNECTED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kusZ0eUkEeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eaLu0eUkEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eaLu0uUkEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eaLu0-UkEeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_eaCk4uUkEeGfTpjeEoUARg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eaCk4-UkEeGfTpjeEoUARg" x="420" y="768"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-4TnAOUkEeGfTpjeEoUARg" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_-4TnA-UkEeGfTpjeEoUARg" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_-4TnBOUkEeGfTpjeEoUARg" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_JFZGEOUlEeGfTpjeEoUARg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentsStatus/UNAVAILABLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JFZGEeUlEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Lkm6gOUlEeGfTpjeEoUARg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentsStatus/PARTLY_AVAILABLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lkm6geUlEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ObDjMOUlEeGfTpjeEoUARg" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//TrafficIncidentsStatus/AVAILABLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ObDjMeUlEeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-4TnBeUkEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-4TnBuUkEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-4TnB-UkEeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_-4TnAeUkEeGfTpjeEoUARg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//TrafficIncidentsStatus"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-4TnAuUkEeGfTpjeEoUARg" x="600" y="768"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wHdpEOVJEeGfTpjeEoUARg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_wHwkAOVJEeGfTpjeEoUARg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_wHwkAeVJEeGfTpjeEoUARg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_zN-HAOVJEeGfTpjeEoUARg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//FeedInformation/dataProviderName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zN-HAeVJEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4NlboOVJEeGfTpjeEoUARg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//FeedInformation/protocolName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4NlboeVJEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9DCusOVJEeGfTpjeEoUARg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//FeedInformation/communicationChannelName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9DCuseVJEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KVdnAOVKEeGfTpjeEoUARg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//FeedInformation/feedStatus"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KVdnAeVKEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MAm6MOVKEeGfTpjeEoUARg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//FeedInformation/trafficIncidentsStatus"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MAm6MeVKEeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_wHwkAuVJEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wHwkA-VJEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wHwkBOVJEeGfTpjeEoUARg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wHwkBeVJEeGfTpjeEoUARg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_wHwkBuVJEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wHwkB-VJEeGfTpjeEoUARg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wHwkCOVJEeGfTpjeEoUARg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_wHdpEeVJEeGfTpjeEoUARg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncidentsService.ecore#//FeedInformation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wHdpEuVJEeGfTpjeEoUARg" x="252" y="912"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6uuX4AMzEeKPy-s2XR1yyQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_6uuX4wMzEeKPy-s2XR1yyQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_6uuX5AMzEeKPy-s2XR1yyQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_AgPqkAM0EeKPy-s2XR1yyQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//CategoryDefinition/categoryId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AgPqkQM0EeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mdis8FjCEeKlENJKsZWCJg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TrafficIncidentsService.ecore#//CategoryDefinition/expression"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mdis8VjCEeKlENJKsZWCJg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6uuX5QMzEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6uuX5gMzEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6uuX5wMzEeKPy-s2XR1yyQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6uuX6AMzEeKPy-s2XR1yyQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6uuX6QMzEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6uuX6gMzEeKPy-s2XR1yyQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6uuX6wMzEeKPy-s2XR1yyQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6uuX4QMzEeKPy-s2XR1yyQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TrafficIncidentsService.ecore#//CategoryDefinition"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6uuX4gMzEeKPy-s2XR1yyQ" x="804" y="792"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CKQ9QB0bEeKnjbQ-hZZ19g" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_CKaHMB0bEeKnjbQ-hZZ19g" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_CKaHMR0bEeKnjbQ-hZZ19g" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_DkdDUB0bEeKnjbQ-hZZ19g" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//SpeedUnit/KILOMETERS_PER_HOUR"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DkdDUR0bEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FJOBsB0bEeKnjbQ-hZZ19g" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//SpeedUnit/MILES_PER_HOUR"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FJOBsR0bEeKnjbQ-hZZ19g"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_CKaHMh0bEeKnjbQ-hZZ19g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CKaHMx0bEeKnjbQ-hZZ19g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CKaHNB0bEeKnjbQ-hZZ19g"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_CKQ9QR0bEeKnjbQ-hZZ19g" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//SpeedUnit"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CKQ9Qh0bEeKnjbQ-hZZ19g" x="996" y="744"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ji9kEB3bEeKnjbQ-hZZ19g" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_ji9kEx3bEeKnjbQ-hZZ19g" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_ji9kFB3bEeKnjbQ-hZZ19g" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_nnctMB3bEeKnjbQ-hZZ19g" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//LengthUnit/KILOMETERS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nnctMR3bEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tWkMIB3bEeKnjbQ-hZZ19g" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//LengthUnit/MILES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tWkMIR3bEeKnjbQ-hZZ19g"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ji9kFR3bEeKnjbQ-hZZ19g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ji9kFh3bEeKnjbQ-hZZ19g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ji9kFx3bEeKnjbQ-hZZ19g"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ji9kER3bEeKnjbQ-hZZ19g" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//LengthUnit"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ji9kEh3bEeKnjbQ-hZZ19g" x="252" y="672"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lfdtAB3bEeKnjbQ-hZZ19g" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_lfdtAx3bEeKnjbQ-hZZ19g" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_lfdtBB3bEeKnjbQ-hZZ19g" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_21eWkB3bEeKnjbQ-hZZ19g" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//WeightUnit/KILOGRAM"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_21eWkR3bEeKnjbQ-hZZ19g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5MpCQB3bEeKnjbQ-hZZ19g" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentsService.ecore#//WeightUnit/POUND"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5MpCQR3bEeKnjbQ-hZZ19g"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lfdtBR3bEeKnjbQ-hZZ19g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lfdtBh3bEeKnjbQ-hZZ19g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lfdtBx3bEeKnjbQ-hZZ19g"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_lfdtAR3bEeKnjbQ-hZZ19g" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentsService.ecore#//WeightUnit"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lfdtAh3bEeKnjbQ-hZZ19g" x="420" y="672"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Dx65oo6nEeGD2upJ5SBM5Q"/>
+ <element xmi:type="ecore:EPackage" href="TrafficIncidentsService.ecore#/"/>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.genmodel b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.genmodel
new file mode 100755
index 0000000..120bdc9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/model/TrafficIncidentsService.genmodel
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficincidentsservice-model/src" modelPluginID="org.genivi.trafficinfo.trafficincidents-model"
+ modelName="TrafficIncidentsService" importerID="org.eclipse.emf.importer.ecore"
+ arrayAccessors="true" complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../org.genivi.basetypes-model/model/Basetypes.genmodel#//genivi ../../org.genivi.iconset-model/model/IconSet.genmodel#//iconset ../../org.genivi.locref-model/model/LocationReference.genmodel#//locref ../../org.genivi.trafficincidentsservice.trafficincidents.trafficincident-model/model/TrafficIncident.genmodel#//trafficincident ../../org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel#//trafficincidenttables ../../org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident-model/model/XTrafficIncident.genmodel#//trafficincident">
+ <foreignModel>TrafficIncidentsService.ecore</foreignModel>
+ <genPackages prefix="trafficincidentsservice" basePackage="org.genivi" disposableProviderFactory="true"
+ ecorePackage="TrafficIncidentsService.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//TrafficIncidentField">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/TRAFFIC_INCIDENT_ID"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/EFFECT_CODE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/EFFECT_TEXT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/START_TIME"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/STOP_TIME"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/TENDENCY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/TENDENCY_TEXT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/LENGTH_AFFECTED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/AVERAGE_SPEED_ABSOLUTE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/DELAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/SEGMENT_SPEED_LIMIT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/CAUSES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/CAUSE_TEXTS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/APPLICABILITY_TEXTS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/LOCATION"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/LOCATION_INFO"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/LOCATION_BOUNDING_BOX"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/APPLICABILITY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/ADVICES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentField/ADVICE_TEXTS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//TextDetailLevel">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TextDetailLevel/FULL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TextDetailLevel/SUMMARY"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus/UNAVAILABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus/CONNECTED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentFeedStatus/DISCONNECTED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//TrafficIncidentsStatus">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentsStatus/UNAVAILABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentsStatus/PARTLY_AVAILABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//TrafficIncidentsStatus/AVAILABLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//SpeedUnit">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//SpeedUnit/KILOMETERS_PER_HOUR"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//SpeedUnit/MILES_PER_HOUR"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//LengthUnit">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//LengthUnit/KILOMETERS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//LengthUnit/MILES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentsService.ecore#//WeightUnit">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//WeightUnit/KILOGRAM"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentsService.ecore#//WeightUnit/POUND"/>
+ </genEnums>
+ <genClasses ecoreClass="TrafficIncidentsService.ecore#//TrafficIncidents">
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getVersion">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getVersion/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addUpdateListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addUpdateListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addUpdateListener/warningLevels"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addUpdateListener/categoryIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addUpdateListener/updateListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener/warningLevels"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener/categoryIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener/areas"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addAreasUpdateListener/updateListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getLanguage">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getLanguage/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/setLanguage">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setLanguage/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setLanguage/languageCode"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setLanguage/countryCode"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/setTimeFormat">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setTimeFormat/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setTimeFormat/timeFormat"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/setDateFormat">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setDateFormat/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setDateFormat/dateFormat"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/setLengthUnit">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setLengthUnit/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setLengthUnit/lengthUnit"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/setWeightUnit">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setWeightUnit/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setWeightUnit/weightUnit"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getApplicability">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getApplicability/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/setApplicability">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setApplicability/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/setApplicability/filterExpression"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/reserveIconSetIds">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/reserveIconSetIds/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/reserveIconSetIds/numberOfIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/freeIconSetIds">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/freeIconSetIds/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/freeIconSetIds/iconSetIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getIconSets">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getIconSets/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addIconSetDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addIconSetDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addIconSetDefinitions/iconSets"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconSetDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconSetDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconSetDefinitions/iconSetIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getIconDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getIconDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getIconDefinitions/iconInfos"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addIconDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addIconDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addIconDefinitions/iconDefinitions"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeIconDefinitions/iconInfos"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/reserveCategoryIds">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/reserveCategoryIds/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/reserveCategoryIds/numberOfIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/freeCategoryIds">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/freeCategoryIds/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/freeCategoryIds/categoryIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getCategoryDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getCategoryDefinitions/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addCategoryDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addCategoryDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addCategoryDefinitions/categoryDefinitions"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeCategoryDefinitions">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeCategoryDefinitions/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeCategoryDefinitions/categoryIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIds">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIds/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIds/warningLevels"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIds/categoryIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIdsInAreas">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIdsInAreas/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIdsInAreas/warningLevels"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIdsInAreas/categoryIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentIdsInAreas/areas"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidents">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidents/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidents/trafficIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidents/includeTextFields"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentsFields">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentsFields/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentsFields/trafficIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTrafficIncidentsFields/trafficIncidentFields"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/getTexts">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTexts/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTexts/trafficIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/getTexts/textDetailLevel"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addTrafficIncidentsStatusListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addTrafficIncidentsStatusListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addTrafficIncidentsStatusListener/trafficIncidentsStatusListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/addFeedInformationListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addFeedInformationListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/addFeedInformationListener/feedInformationListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeUpdateListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeUpdateListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeUpdateListener/updateListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeAreasUpdateListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeAreasUpdateListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeAreasUpdateListener/updateListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeTrafficIncidentsStatusListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeTrafficIncidentsStatusListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeTrafficIncidentsStatusListener/trafficIncidentsStatusListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidents/removeFeedInformationListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeFeedInformationListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidents/removeFeedInformationListener/feedInformationListener"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncidentsService.ecore#//TrafficIncidentsListener">
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getVersionReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getVersionReply/version"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updates">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updates/unchangedTrafficIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updates/changedTrafficIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updates/newTrafficIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updates/deletedTrafficIncidentIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updatesInAreas">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/updatesInAreas/areas"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/trafficIncidentsStatus">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/trafficIncidentsStatus/trafficIncidentFeedStatus"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/trafficIncidentsStatus/trafficIncidentsStatus"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/feedInformation">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/feedInformation/feedsInformation"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getLanguageReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getLanguageReply/languageCode"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getLanguageReply/countryCode"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getApplicabilityReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getApplicabilityReply/filterExpression"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/reserveIconSetIdsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/reserveIconSetIdsReply/iconSetIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/reserveCategoryIdsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/reserveCategoryIdsReply/categoryIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentIdsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentIdsReply/trafficIncidentIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentIdsInAreasReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentIdsInAreasReply/trafficIncidentIds"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentsReply/trafficIncidents"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentsFieldsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTrafficIncidentsFieldsReply/trafficIncidents"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTextsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getTextsReply/texts"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addTrafficIncidentsStatusListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addFeedInformationListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addUpdateListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeUpdateListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addAreasUpdateListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeAreasUpdateListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setLanguageReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setTimeFormatReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setDateFormatReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setLengthUnitReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setWeightUnitReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/setApplicabilityReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/freeCategoryIdsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getCategoryDefinitionsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getCategoryDefinitionsReply/categoryDefinitions"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addCategoryDefinitionsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeCategoryDefinitionsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/freeIconSetIdsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getIconDefinitionsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getIconDefinitionsReply/iconDefinitions"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addIconDefinitionsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeIconDefinitionsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getIconSetsReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentsListener/getIconSetsReply/iconSets"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/addIconSetDefinitionsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeIconSetDefinitionsReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeFeedInformationListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentsListener/removeTrafficIncidentsStatusListenerReply"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncidentsService.ecore#//TrafficIncidentFeed">
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/getVersion">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/getVersion/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/getLanguage">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/getLanguage/listener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/addLanguageListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/addLanguageListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/addLanguageListener/changeListener"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/clear"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateIncidents">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateIncidents/feedId"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateIncidents/cancelledIncidentIds"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateIncidents/updatedIncidents"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateStatus">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateStatus/feedId"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateStatus/feedStatus"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/updateStatus/incidentsStatus"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/registerFeed">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/registerFeed/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/registerFeed/dataProviderName"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/registerFeed/protocolName"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/registerFeed/communicationChannelName"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeed/removeLanguageListener">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/removeLanguageListener/listener"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeed/removeLanguageListener/changeListener"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener">
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getVersionReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getVersionReply/version"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getLanguageReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getLanguageReply/languageCode"/>
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/getLanguageReply/countryCode"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/registerFeedReply">
+ <genParameters ecoreParameter="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/registerFeedReply/feedId"/>
+ </genOperations>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/addLanguageListenerReply"/>
+ <genOperations ecoreOperation="TrafficIncidentsService.ecore#//TrafficIncidentFeedListener/removeLanguageListenerReply"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncidentsService.ecore#//FeedInformation">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//FeedInformation/dataProviderName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//FeedInformation/protocolName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//FeedInformation/communicationChannelName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//FeedInformation/feedStatus"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//FeedInformation/trafficIncidentsStatus"/>
+ </genClasses>
+ <genClasses ecoreClass="TrafficIncidentsService.ecore#//CategoryDefinition">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TrafficIncidentsService.ecore#//CategoryDefinition/localizedNames"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//CategoryDefinition/categoryId"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TrafficIncidentsService.ecore#//CategoryDefinition/icons"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TrafficIncidentsService.ecore#//CategoryDefinition/expression"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.properties
new file mode 100755
index 0000000..cc1093f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = TrafficIncidents Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.xml
new file mode 100755
index 0000000..cd5e9a4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated TrafficIncidentsService -->
+ <package
+ uri="http://org.genivi.trafficinfo.trafficincidentsservice"
+ class="org.genivi.trafficincidentsservice.trafficincidentsservicePackage"
+ genModel="model/TrafficIncidentsService.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/pom.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/pom.xml
new file mode 100755
index 0000000..811d880
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/pom.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Service API model</name>
+ <description>This project contains the model which defines the API's of the Traffic Incidents Service.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>booleanexpr-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>iconset-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidents</groupId>
+ <artifactId>trafficincidents-trafficincident-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidentfeed</groupId>
+ <artifactId>trafficincidentfeed-trafficincident-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/CategoryDefinition.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/CategoryDefinition.java
new file mode 100755
index 0000000..e2e4a75
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/CategoryDefinition.java
@@ -0,0 +1,218 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.LocalizedString;
+import org.genivi.iconset.IconInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Category Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.CategoryDefinition#getLocalizedNamesList <em>Localized Names</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.CategoryDefinition#getCategoryId <em>Category Id</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.CategoryDefinition#getIconsList <em>Icons</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.CategoryDefinition#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getCategoryDefinition()
+ * @model
+ * @generated
+ */
+public interface CategoryDefinition extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ LocalizedString[] getLocalizedNames();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ LocalizedString getLocalizedNames(int index);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ int getLocalizedNamesLength();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ void setLocalizedNames(LocalizedString[] newLocalizedNames);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ void setLocalizedNames(int index, LocalizedString element);
+
+ /**
+ * Returns the value of the '<em><b>Localized Names</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.common.LocalizedString}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Localized Names</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Localized Names</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getCategoryDefinition_LocalizedNames()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LocalizedString> getLocalizedNamesList();
+
+ /**
+ * Returns the value of the '<em><b>Category Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Category Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Category Id</em>' attribute.
+ * @see #setCategoryId(int)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getCategoryDefinition_CategoryId()
+ * @model required="true"
+ * @generated
+ */
+ int getCategoryId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getCategoryId <em>Category Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Category Id</em>' attribute.
+ * @see #getCategoryId()
+ * @generated
+ */
+ void setCategoryId(int value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ IconInfo[] getIcons();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ IconInfo getIcons(int index);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ int getIconsLength();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ void setIcons(IconInfo[] newIcons);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ void setIcons(int index, IconInfo element);
+
+ /**
+ * Returns the value of the '<em><b>Icons</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.iconset.IconInfo}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icons</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icons</em>' containment reference list.
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getCategoryDefinition_Icons()
+ * @model containment="true"
+ * @generated
+ */
+ EList<IconInfo> getIconsList();
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' attribute.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #setExpression(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getCategoryDefinition_Expression()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getExpression();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getExpression <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' attribute.
+ * @see #isSetExpression()
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getExpression <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpression()
+ * @see #getExpression()
+ * @see #setExpression(String)
+ * @generated
+ */
+ void unsetExpression();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getExpression <em>Expression</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expression</em>' attribute is set.
+ * @see #unsetExpression()
+ * @see #getExpression()
+ * @see #setExpression(String)
+ * @generated
+ */
+ boolean isSetExpression();
+
+} // CategoryDefinition
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/FeedInformation.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/FeedInformation.java
new file mode 100755
index 0000000..6c40466
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/FeedInformation.java
@@ -0,0 +1,321 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Feed Information</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This data type provides information about a Traffic Incident Feed.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.FeedInformation#getDataProviderName <em>Data Provider Name</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.FeedInformation#getProtocolName <em>Protocol Name</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.FeedInformation#getCommunicationChannelName <em>Communication Channel Name</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.FeedInformation#getFeedStatus <em>Feed Status</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.FeedInformation#getTrafficIncidentsStatus <em>Traffic Incidents Status</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getFeedInformation()
+ * @model
+ * @generated
+ */
+public interface FeedInformation extends EObject {
+ /**
+ * Returns the value of the '<em><b>Data Provider Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Provider Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The name of the data provider.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Data Provider Name</em>' attribute.
+ * @see #isSetDataProviderName()
+ * @see #unsetDataProviderName()
+ * @see #setDataProviderName(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getFeedInformation_DataProviderName()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getDataProviderName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getDataProviderName <em>Data Provider Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Provider Name</em>' attribute.
+ * @see #isSetDataProviderName()
+ * @see #unsetDataProviderName()
+ * @see #getDataProviderName()
+ * @generated
+ */
+ void setDataProviderName(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getDataProviderName <em>Data Provider Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDataProviderName()
+ * @see #getDataProviderName()
+ * @see #setDataProviderName(String)
+ * @generated
+ */
+ void unsetDataProviderName();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getDataProviderName <em>Data Provider Name</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Data Provider Name</em>' attribute is set.
+ * @see #unsetDataProviderName()
+ * @see #getDataProviderName()
+ * @see #setDataProviderName(String)
+ * @generated
+ */
+ boolean isSetDataProviderName();
+
+ /**
+ * Returns the value of the '<em><b>Protocol Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Protocol Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The name of the protocol via which the Traffic Incidents are received.
+ * There are no predefined values.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Protocol Name</em>' attribute.
+ * @see #isSetProtocolName()
+ * @see #unsetProtocolName()
+ * @see #setProtocolName(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getFeedInformation_ProtocolName()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getProtocolName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getProtocolName <em>Protocol Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Protocol Name</em>' attribute.
+ * @see #isSetProtocolName()
+ * @see #unsetProtocolName()
+ * @see #getProtocolName()
+ * @generated
+ */
+ void setProtocolName(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getProtocolName <em>Protocol Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetProtocolName()
+ * @see #getProtocolName()
+ * @see #setProtocolName(String)
+ * @generated
+ */
+ void unsetProtocolName();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getProtocolName <em>Protocol Name</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Protocol Name</em>' attribute is set.
+ * @see #unsetProtocolName()
+ * @see #getProtocolName()
+ * @see #setProtocolName(String)
+ * @generated
+ */
+ boolean isSetProtocolName();
+
+ /**
+ * Returns the value of the '<em><b>Communication Channel Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Communication Channel Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The name of the communication channel.
+ * There are no predefined values.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Communication Channel Name</em>' attribute.
+ * @see #isSetCommunicationChannelName()
+ * @see #unsetCommunicationChannelName()
+ * @see #setCommunicationChannelName(String)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getFeedInformation_CommunicationChannelName()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getCommunicationChannelName();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getCommunicationChannelName <em>Communication Channel Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Communication Channel Name</em>' attribute.
+ * @see #isSetCommunicationChannelName()
+ * @see #unsetCommunicationChannelName()
+ * @see #getCommunicationChannelName()
+ * @generated
+ */
+ void setCommunicationChannelName(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getCommunicationChannelName <em>Communication Channel Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCommunicationChannelName()
+ * @see #getCommunicationChannelName()
+ * @see #setCommunicationChannelName(String)
+ * @generated
+ */
+ void unsetCommunicationChannelName();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getCommunicationChannelName <em>Communication Channel Name</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Communication Channel Name</em>' attribute is set.
+ * @see #unsetCommunicationChannelName()
+ * @see #getCommunicationChannelName()
+ * @see #setCommunicationChannelName(String)
+ * @generated
+ */
+ boolean isSetCommunicationChannelName();
+
+ /**
+ * Returns the value of the '<em><b>Feed Status</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feed Status</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The status of the Feed.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Feed Status</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus
+ * @see #isSetFeedStatus()
+ * @see #unsetFeedStatus()
+ * @see #setFeedStatus(TrafficIncidentFeedStatus)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getFeedInformation_FeedStatus()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ TrafficIncidentFeedStatus getFeedStatus();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getFeedStatus <em>Feed Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Feed Status</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus
+ * @see #isSetFeedStatus()
+ * @see #unsetFeedStatus()
+ * @see #getFeedStatus()
+ * @generated
+ */
+ void setFeedStatus(TrafficIncidentFeedStatus value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getFeedStatus <em>Feed Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFeedStatus()
+ * @see #getFeedStatus()
+ * @see #setFeedStatus(TrafficIncidentFeedStatus)
+ * @generated
+ */
+ void unsetFeedStatus();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getFeedStatus <em>Feed Status</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Feed Status</em>' attribute is set.
+ * @see #unsetFeedStatus()
+ * @see #getFeedStatus()
+ * @see #setFeedStatus(TrafficIncidentFeedStatus)
+ * @generated
+ */
+ boolean isSetFeedStatus();
+
+ /**
+ * Returns the value of the '<em><b>Traffic Incidents Status</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficincidentsservice.TrafficIncidentsStatus}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The status of the Traffic Incidents delivered by this Feed.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Traffic Incidents Status</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsStatus
+ * @see #isSetTrafficIncidentsStatus()
+ * @see #unsetTrafficIncidentsStatus()
+ * @see #setTrafficIncidentsStatus(TrafficIncidentsStatus)
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getFeedInformation_TrafficIncidentsStatus()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ TrafficIncidentsStatus getTrafficIncidentsStatus();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getTrafficIncidentsStatus <em>Traffic Incidents Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Traffic Incidents Status</em>' attribute.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsStatus
+ * @see #isSetTrafficIncidentsStatus()
+ * @see #unsetTrafficIncidentsStatus()
+ * @see #getTrafficIncidentsStatus()
+ * @generated
+ */
+ void setTrafficIncidentsStatus(TrafficIncidentsStatus value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getTrafficIncidentsStatus <em>Traffic Incidents Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTrafficIncidentsStatus()
+ * @see #getTrafficIncidentsStatus()
+ * @see #setTrafficIncidentsStatus(TrafficIncidentsStatus)
+ * @generated
+ */
+ void unsetTrafficIncidentsStatus();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficincidentsservice.FeedInformation#getTrafficIncidentsStatus <em>Traffic Incidents Status</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Traffic Incidents Status</em>' attribute is set.
+ * @see #unsetTrafficIncidentsStatus()
+ * @see #getTrafficIncidentsStatus()
+ * @see #setTrafficIncidentsStatus(TrafficIncidentsStatus)
+ * @generated
+ */
+ boolean isSetTrafficIncidentsStatus();
+
+} // FeedInformation
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/LengthUnit.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/LengthUnit.java
new file mode 100755
index 0000000..d2d0eb4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/LengthUnit.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Length Unit</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getLengthUnit()
+ * @model
+ * @generated
+ */
+public enum LengthUnit implements Enumerator {
+ /**
+ * The '<em><b>KILOMETERS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #KILOMETERS_VALUE
+ * @generated
+ * @ordered
+ */
+ KILOMETERS(1, "KILOMETERS", "KILOMETERS"),
+
+ /**
+ * The '<em><b>MILES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MILES_VALUE
+ * @generated
+ * @ordered
+ */
+ MILES(2, "MILES", "MILES");
+
+ /**
+ * The '<em><b>KILOMETERS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>KILOMETERS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #KILOMETERS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int KILOMETERS_VALUE = 1;
+
+ /**
+ * The '<em><b>MILES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MILES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MILES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MILES_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Length Unit</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LengthUnit[] VALUES_ARRAY =
+ new LengthUnit[] {
+ KILOMETERS,
+ MILES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Length Unit</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<LengthUnit> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Length Unit</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LengthUnit get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LengthUnit result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Length Unit</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LengthUnit getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LengthUnit result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Length Unit</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LengthUnit get(int value) {
+ switch (value) {
+ case KILOMETERS_VALUE: return KILOMETERS;
+ case MILES_VALUE: return MILES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LengthUnit(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //LengthUnit
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/SpeedUnit.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/SpeedUnit.java
new file mode 100755
index 0000000..f06f62a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/SpeedUnit.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Speed Unit</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getSpeedUnit()
+ * @model
+ * @generated
+ */
+public enum SpeedUnit implements Enumerator {
+ /**
+ * The '<em><b>KILOMETERS PER HOUR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #KILOMETERS_PER_HOUR_VALUE
+ * @generated
+ * @ordered
+ */
+ KILOMETERS_PER_HOUR(1, "KILOMETERS_PER_HOUR", "KILOMETERS_PER_HOUR"),
+
+ /**
+ * The '<em><b>MILES PER HOUR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MILES_PER_HOUR_VALUE
+ * @generated
+ * @ordered
+ */
+ MILES_PER_HOUR(2, "MILES_PER_HOUR", "MILES_PER_HOUR");
+
+ /**
+ * The '<em><b>KILOMETERS PER HOUR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>KILOMETERS PER HOUR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #KILOMETERS_PER_HOUR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int KILOMETERS_PER_HOUR_VALUE = 1;
+
+ /**
+ * The '<em><b>MILES PER HOUR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MILES PER HOUR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MILES_PER_HOUR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MILES_PER_HOUR_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Speed Unit</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SpeedUnit[] VALUES_ARRAY =
+ new SpeedUnit[] {
+ KILOMETERS_PER_HOUR,
+ MILES_PER_HOUR,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Speed Unit</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SpeedUnit> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Speed Unit</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SpeedUnit get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SpeedUnit result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Speed Unit</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SpeedUnit getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SpeedUnit result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Speed Unit</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SpeedUnit get(int value) {
+ switch (value) {
+ case KILOMETERS_PER_HOUR_VALUE: return KILOMETERS_PER_HOUR;
+ case MILES_PER_HOUR_VALUE: return MILES_PER_HOUR;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SpeedUnit(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //SpeedUnit
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TextDetailLevel.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TextDetailLevel.java
new file mode 100755
index 0000000..5ab64c4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TextDetailLevel.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Text Detail Level</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTextDetailLevel()
+ * @model
+ * @generated
+ */
+public enum TextDetailLevel implements Enumerator {
+ /**
+ * The '<em><b>FULL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FULL_VALUE
+ * @generated
+ * @ordered
+ */
+ FULL(1, "FULL", "FULL"),
+
+ /**
+ * The '<em><b>SUMMARY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUMMARY_VALUE
+ * @generated
+ * @ordered
+ */
+ SUMMARY(2, "SUMMARY", "SUMMARY");
+
+ /**
+ * The '<em><b>FULL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FULL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FULL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FULL_VALUE = 1;
+
+ /**
+ * The '<em><b>SUMMARY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUMMARY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUMMARY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SUMMARY_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Text Detail Level</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TextDetailLevel[] VALUES_ARRAY =
+ new TextDetailLevel[] {
+ FULL,
+ SUMMARY,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Text Detail Level</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TextDetailLevel> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Text Detail Level</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TextDetailLevel get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TextDetailLevel result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Text Detail Level</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TextDetailLevel getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TextDetailLevel result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Text Detail Level</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TextDetailLevel get(int value) {
+ switch (value) {
+ case FULL_VALUE: return FULL;
+ case SUMMARY_VALUE: return SUMMARY;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TextDetailLevel(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TextDetailLevel
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeed.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeed.java
new file mode 100755
index 0000000..1efe056
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeed.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Traffic Incidents Updates</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This interface can be used by Traffic Incident Feeds to feed Traffic Incidents into the Traffic Incidents Service.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentFeed()
+ * @model
+ * @generated
+ */
+public interface TrafficIncidentFeed extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get the API version of this interface implemented by the service.
+ * @param listener The class on which the callback function is called.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getVersion(TrafficIncidentFeedListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get the current language. In case of a client/server based Feed, this language can be sent to the server in order to receive any textual information in the right language.
+ * @param listener The class on which the callback function is called.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getLanguage(TrafficIncidentFeedListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Add this client as a listener for changes in the current language. In case of changes, getLanguageReply() is called on the listener.
+ * @param listener The class on which the callback function is called.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void addLanguageListener(TrafficIncidentFeedListener listener, TrafficIncidentFeedListener changeListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Clear the internal store of the Traffic Incidents Service. This may be needed if the source of the Traffic Incidents is changed, or if the server indicates that a reset is needed.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void clear();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Update the Traffic Incidents in the internal store of the Traffic Incidents Service. These updates can consist of incidents to be removed (cancelledIncidentIds), and/or new or updated incidents (updatedIncidents). The 'cancels' are handled before the 'updates'.
+ * @param cancelledIncidentIds The unique Ids of the incidents to be deleted.
+ * @param updatedIncidents The new or updated incidents.
+ * <!-- end-model-doc -->
+ * @model cancelledIncidentIdsMany="true" updatedIncidentsMany="true"
+ * @generated
+ */
+ void updateIncidents(int feedId, EList<String> cancelledIncidentIds, EList<TrafficIncident> updatedIncidents);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updateStatus(int feedId, TrafficIncidentFeedStatus feedStatus, TrafficIncidentsStatus incidentsStatus);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void registerFeed(TrafficIncidentFeedListener listener, String dataProviderName, String protocolName, String communicationChannelName);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Remove this client as a listener for changes in the current language.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void removeLanguageListener(TrafficIncidentFeedListener listener, TrafficIncidentFeedListener changeListener);
+
+} // TrafficIncidentFeed
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedListener.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedListener.java
new file mode 100755
index 0000000..4e27d07
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedListener.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.Version;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Traffic Incidents Updates Listener</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentFeedListener()
+ * @model
+ * @generated
+ */
+public interface TrafficIncidentFeedListener extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getVersion().
+ * @param version The API version of this interface implemented by the service.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getVersionReply(Version version);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getLanguage() or addLanguegeListener() when the language is changed.
+ * @param languageCode The currently used language.
+ * @param countryCode The currently used, country specific variant of the language.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getLanguageReply(String languageCode, String countryCode);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void registerFeedReply(int feedId);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addLanguageListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeLanguageListenerReply();
+
+} // TrafficIncidentFeedListener
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedStatus.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedStatus.java
new file mode 100755
index 0000000..ef9ac89
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentFeedStatus.java
@@ -0,0 +1,245 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Traffic Incident Feed Status</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This type provides information on the status of a Traffic Incident Feed, or of a combination of Traffic Incident Feeds.
+ * <!-- end-model-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentFeedStatus()
+ * @model
+ * @generated
+ */
+public enum TrafficIncidentFeedStatus implements Enumerator {
+ /**
+ * The '<em><b>UNAVAILABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNAVAILABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ UNAVAILABLE(1, "UNAVAILABLE", "UNAVAILABLE"),
+
+ /**
+ * The '<em><b>CONNECTED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONNECTED_VALUE
+ * @generated
+ * @ordered
+ */
+ CONNECTED(2, "CONNECTED", "CONNECTED"),
+
+ /**
+ * The '<em><b>DISCONNECTED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DISCONNECTED_VALUE
+ * @generated
+ * @ordered
+ */
+ DISCONNECTED(3, "DISCONNECTED", "DISCONNECTED");
+
+ /**
+ * The '<em><b>UNAVAILABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There is no Traffic Incident Feed available. A feed is not available if a connection is not possible.
+ * Examples of this are: there is no location table available for the current country (in case of TMC),
+ * or the user has no valid subscription.
+ * <!-- end-model-doc -->
+ * @see #UNAVAILABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNAVAILABLE_VALUE = 1;
+
+ /**
+ * The '<em><b>CONNECTED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * One or more Traffic Incident Feeds are available and connected (a communication channel is operational).
+ * <!-- end-model-doc -->
+ * @see #CONNECTED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTED_VALUE = 2;
+
+ /**
+ * The '<em><b>DISCONNECTED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * One or more Traffic Incident Feeds are available but none of them is currently connected
+ * (the communication channels are not operational).
+ * For example, an RDS/TMC receiver is available but there is no signal,
+ * or a TPEG over HTTP/IP feed is available but the connection to the server failed.
+ * <!-- end-model-doc -->
+ * @see #DISCONNECTED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DISCONNECTED_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Traffic Incident Feed Status</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TrafficIncidentFeedStatus[] VALUES_ARRAY =
+ new TrafficIncidentFeedStatus[] {
+ UNAVAILABLE,
+ CONNECTED,
+ DISCONNECTED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Traffic Incident Feed Status</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TrafficIncidentFeedStatus> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Traffic Incident Feed Status</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentFeedStatus get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficIncidentFeedStatus result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Incident Feed Status</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentFeedStatus getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficIncidentFeedStatus result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Incident Feed Status</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentFeedStatus get(int value) {
+ switch (value) {
+ case UNAVAILABLE_VALUE: return UNAVAILABLE;
+ case CONNECTED_VALUE: return CONNECTED;
+ case DISCONNECTED_VALUE: return DISCONNECTED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TrafficIncidentFeedStatus(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TrafficIncidentFeedStatus
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentField.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentField.java
new file mode 100755
index 0000000..468da09
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentField.java
@@ -0,0 +1,718 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Traffic Incident Field</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentField()
+ * @model
+ * @generated
+ */
+public enum TrafficIncidentField implements Enumerator {
+ /**
+ * The '<em><b>TRAFFIC INCIDENT ID</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_INCIDENT_ID_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_INCIDENT_ID(1, "TRAFFIC_INCIDENT_ID", "TRAFFIC_INCIDENT_ID"),
+
+ /**
+ * The '<em><b>EFFECT CODE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EFFECT_CODE_VALUE
+ * @generated
+ * @ordered
+ */
+ EFFECT_CODE(2, "EFFECT_CODE", "EFFECT_CODE"),
+
+ /**
+ * The '<em><b>EFFECT TEXT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EFFECT_TEXT_VALUE
+ * @generated
+ * @ordered
+ */
+ EFFECT_TEXT(3, "EFFECT_TEXT", "EFFECT_TEXT"),
+
+ /**
+ * The '<em><b>START TIME</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #START_TIME_VALUE
+ * @generated
+ * @ordered
+ */
+ START_TIME(4, "START_TIME", "START_TIME"),
+
+ /**
+ * The '<em><b>STOP TIME</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STOP_TIME_VALUE
+ * @generated
+ * @ordered
+ */
+ STOP_TIME(5, "STOP_TIME", "STOP_TIME"),
+
+ /**
+ * The '<em><b>TENDENCY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TENDENCY_VALUE
+ * @generated
+ * @ordered
+ */
+ TENDENCY(6, "TENDENCY", "TENDENCY"),
+
+ /**
+ * The '<em><b>TENDENCY TEXT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TENDENCY_TEXT_VALUE
+ * @generated
+ * @ordered
+ */
+ TENDENCY_TEXT(7, "TENDENCY_TEXT", "TENDENCY_TEXT"),
+
+ /**
+ * The '<em><b>LENGTH AFFECTED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LENGTH_AFFECTED_VALUE
+ * @generated
+ * @ordered
+ */
+ LENGTH_AFFECTED(8, "LENGTH_AFFECTED", "LENGTH_AFFECTED"),
+
+ /**
+ * The '<em><b>AVERAGE SPEED ABSOLUTE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AVERAGE_SPEED_ABSOLUTE_VALUE
+ * @generated
+ * @ordered
+ */
+ AVERAGE_SPEED_ABSOLUTE(9, "AVERAGE_SPEED_ABSOLUTE", "AVERAGE_SPEED_ABSOLUTE"),
+
+ /**
+ * The '<em><b>DELAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DELAY_VALUE
+ * @generated
+ * @ordered
+ */
+ DELAY(10, "DELAY", "DELAY"),
+
+ /**
+ * The '<em><b>SEGMENT SPEED LIMIT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SEGMENT_SPEED_LIMIT_VALUE
+ * @generated
+ * @ordered
+ */
+ SEGMENT_SPEED_LIMIT(11, "SEGMENT_SPEED_LIMIT", "SEGMENT_SPEED_LIMIT"),
+
+ /**
+ * The '<em><b>CAUSES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CAUSES_VALUE
+ * @generated
+ * @ordered
+ */
+ CAUSES(13, "CAUSES", "CAUSES"),
+
+ /**
+ * The '<em><b>CAUSE TEXTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CAUSE_TEXTS_VALUE
+ * @generated
+ * @ordered
+ */
+ CAUSE_TEXTS(14, "CAUSE_TEXTS", "CAUSE_TEXTS"),
+
+ /**
+ * The '<em><b>APPLICABILITY TEXTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #APPLICABILITY_TEXTS_VALUE
+ * @generated
+ * @ordered
+ */
+ APPLICABILITY_TEXTS(16, "APPLICABILITY_TEXTS", "APPLICABILITY_TEXTS"),
+
+ /**
+ * The '<em><b>LOCATION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOCATION_VALUE
+ * @generated
+ * @ordered
+ */
+ LOCATION(17, "LOCATION", "LOCATION"),
+
+ /**
+ * The '<em><b>LOCATION INFO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOCATION_INFO_VALUE
+ * @generated
+ * @ordered
+ */
+ LOCATION_INFO(18, "LOCATION_INFO", "LOCATION_INFO"),
+
+ /**
+ * The '<em><b>LOCATION BOUNDING BOX</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOCATION_BOUNDING_BOX_VALUE
+ * @generated
+ * @ordered
+ */
+ LOCATION_BOUNDING_BOX(19, "LOCATION_BOUNDING_BOX", "LOCATION_BOUNDING_BOX"), /**
+ * The '<em><b>APPLICABILITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #APPLICABILITY_VALUE
+ * @generated
+ * @ordered
+ */
+ APPLICABILITY(15, "APPLICABILITY", "APPLICABILITY"), /**
+ * The '<em><b>ADVICES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ADVICES_VALUE
+ * @generated
+ * @ordered
+ */
+ ADVICES(20, "ADVICES", "ADVICES"), /**
+ * The '<em><b>ADVICE TEXTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ADVICE_TEXTS_VALUE
+ * @generated
+ * @ordered
+ */
+ ADVICE_TEXTS(21, "ADVICE_TEXTS", "ADVICE_TEXTS"), /**
+ * The '<em><b>EXPECTED SPEED ABSOLUTE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXPECTED_SPEED_ABSOLUTE_VALUE
+ * @generated
+ * @ordered
+ */
+ EXPECTED_SPEED_ABSOLUTE(12, "EXPECTED_SPEED_ABSOLUTE", "EXPECTED_SPEED_ABSOLUTE");
+
+ /**
+ * The '<em><b>TRAFFIC INCIDENT ID</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC INCIDENT ID</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_INCIDENT_ID
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_INCIDENT_ID_VALUE = 1;
+
+ /**
+ * The '<em><b>EFFECT CODE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EFFECT CODE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EFFECT_CODE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EFFECT_CODE_VALUE = 2;
+
+ /**
+ * The '<em><b>EFFECT TEXT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EFFECT TEXT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EFFECT_TEXT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EFFECT_TEXT_VALUE = 3;
+
+ /**
+ * The '<em><b>START TIME</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>START TIME</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #START_TIME
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int START_TIME_VALUE = 4;
+
+ /**
+ * The '<em><b>STOP TIME</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STOP TIME</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STOP_TIME
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STOP_TIME_VALUE = 5;
+
+ /**
+ * The '<em><b>TENDENCY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TENDENCY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TENDENCY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TENDENCY_VALUE = 6;
+
+ /**
+ * The '<em><b>TENDENCY TEXT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TENDENCY TEXT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TENDENCY_TEXT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TENDENCY_TEXT_VALUE = 7;
+
+ /**
+ * The '<em><b>LENGTH AFFECTED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LENGTH AFFECTED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LENGTH_AFFECTED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LENGTH_AFFECTED_VALUE = 8;
+
+ /**
+ * The '<em><b>AVERAGE SPEED ABSOLUTE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AVERAGE SPEED ABSOLUTE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AVERAGE_SPEED_ABSOLUTE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AVERAGE_SPEED_ABSOLUTE_VALUE = 9;
+
+ /**
+ * The '<em><b>DELAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DELAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DELAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DELAY_VALUE = 10;
+
+ /**
+ * The '<em><b>SEGMENT SPEED LIMIT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SEGMENT SPEED LIMIT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SEGMENT_SPEED_LIMIT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SEGMENT_SPEED_LIMIT_VALUE = 11;
+
+ /**
+ * The '<em><b>CAUSES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CAUSES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CAUSES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CAUSES_VALUE = 13;
+
+ /**
+ * The '<em><b>CAUSE TEXTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CAUSE TEXTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CAUSE_TEXTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CAUSE_TEXTS_VALUE = 14;
+
+ /**
+ * The '<em><b>APPLICABILITY TEXTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>APPLICABILITY TEXTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #APPLICABILITY_TEXTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int APPLICABILITY_TEXTS_VALUE = 16;
+
+ /**
+ * The '<em><b>LOCATION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOCATION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOCATION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOCATION_VALUE = 17;
+
+ /**
+ * The '<em><b>LOCATION INFO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOCATION INFO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOCATION_INFO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOCATION_INFO_VALUE = 18;
+
+ /**
+ * The '<em><b>LOCATION BOUNDING BOX</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOCATION BOUNDING BOX</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOCATION_BOUNDING_BOX
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOCATION_BOUNDING_BOX_VALUE = 19;
+
+ /**
+ * The '<em><b>APPLICABILITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>APPLICABILITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #APPLICABILITY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int APPLICABILITY_VALUE = 15;
+
+ /**
+ * The '<em><b>ADVICES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ADVICES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ADVICES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ADVICES_VALUE = 20;
+
+ /**
+ * The '<em><b>ADVICE TEXTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ADVICE TEXTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ADVICE_TEXTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ADVICE_TEXTS_VALUE = 21;
+
+ /**
+ * The '<em><b>EXPECTED SPEED ABSOLUTE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EXPECTED SPEED ABSOLUTE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXPECTED_SPEED_ABSOLUTE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EXPECTED_SPEED_ABSOLUTE_VALUE = 12;
+
+ /**
+ * An array of all the '<em><b>Traffic Incident Field</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TrafficIncidentField[] VALUES_ARRAY =
+ new TrafficIncidentField[] {
+ TRAFFIC_INCIDENT_ID,
+ EFFECT_CODE,
+ EFFECT_TEXT,
+ START_TIME,
+ STOP_TIME,
+ TENDENCY,
+ TENDENCY_TEXT,
+ LENGTH_AFFECTED,
+ AVERAGE_SPEED_ABSOLUTE,
+ DELAY,
+ SEGMENT_SPEED_LIMIT,
+ CAUSES,
+ CAUSE_TEXTS,
+ APPLICABILITY_TEXTS,
+ LOCATION,
+ LOCATION_INFO,
+ LOCATION_BOUNDING_BOX,
+ APPLICABILITY,
+ ADVICES,
+ ADVICE_TEXTS,
+ EXPECTED_SPEED_ABSOLUTE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Traffic Incident Field</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TrafficIncidentField> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Traffic Incident Field</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentField get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficIncidentField result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Incident Field</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentField getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficIncidentField result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Incident Field</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentField get(int value) {
+ switch (value) {
+ case TRAFFIC_INCIDENT_ID_VALUE: return TRAFFIC_INCIDENT_ID;
+ case EFFECT_CODE_VALUE: return EFFECT_CODE;
+ case EFFECT_TEXT_VALUE: return EFFECT_TEXT;
+ case START_TIME_VALUE: return START_TIME;
+ case STOP_TIME_VALUE: return STOP_TIME;
+ case TENDENCY_VALUE: return TENDENCY;
+ case TENDENCY_TEXT_VALUE: return TENDENCY_TEXT;
+ case LENGTH_AFFECTED_VALUE: return LENGTH_AFFECTED;
+ case AVERAGE_SPEED_ABSOLUTE_VALUE: return AVERAGE_SPEED_ABSOLUTE;
+ case DELAY_VALUE: return DELAY;
+ case SEGMENT_SPEED_LIMIT_VALUE: return SEGMENT_SPEED_LIMIT;
+ case CAUSES_VALUE: return CAUSES;
+ case CAUSE_TEXTS_VALUE: return CAUSE_TEXTS;
+ case APPLICABILITY_TEXTS_VALUE: return APPLICABILITY_TEXTS;
+ case LOCATION_VALUE: return LOCATION;
+ case LOCATION_INFO_VALUE: return LOCATION_INFO;
+ case LOCATION_BOUNDING_BOX_VALUE: return LOCATION_BOUNDING_BOX;
+ case APPLICABILITY_VALUE: return APPLICABILITY;
+ case ADVICES_VALUE: return ADVICES;
+ case ADVICE_TEXTS_VALUE: return ADVICE_TEXTS;
+ case EXPECTED_SPEED_ABSOLUTE_VALUE: return EXPECTED_SPEED_ABSOLUTE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TrafficIncidentField(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TrafficIncidentField
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidents.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidents.java
new file mode 100755
index 0000000..a7279fb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidents.java
@@ -0,0 +1,383 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.RectangularArea;
+
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Traffic Incidents</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This is the main interface via which a client obtains Traffic Information.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidents()
+ * @model annotation="http://www.tomtom.com/emfidl/2012/GenModel versionMajor='0' versionMinor='1'"
+ * @generated
+ */
+public interface TrafficIncidents extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get the API version of this interface implemented by the service.
+ * @param listener The class on which the callback function is called.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getVersion(TrafficIncidentsListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get all the Ids of the current traffic incidents.
+ * @param listener The class on which the callback function is called.
+ * @param warningLevels
+ * Only incidents with one of the specified warning levels will be returned.
+ * In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.
+ * <!-- end-model-doc -->
+ * @model warningLevelsMany="true" categoryIdsMany="true"
+ * @generated
+ */
+ void getTrafficIncidentIds(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get the Ids of the traffic incidents in a number of areas.
+ * @param listener The class on which the callback function is called.
+ * @param warningLevels
+ * Only incidents with one of the specified warning levels will be returned.
+ * In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.
+ * @param areas The areas for which the traffic incident Ids are requested.
+ * <!-- end-model-doc -->
+ * @model warningLevelsMany="true" categoryIdsMany="true" areasMany="true"
+ * @generated
+ */
+ void getTrafficIncidentIdsInAreas(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get a number of Traffic Incidents.
+ * @param listener The class on which the callback function is called.
+ * @param trafficIncidentIds The Ids of the requested Traffic Incidents.
+ * @param includeTextFields The text fields in the returned Traffic Incident will only be filled in if this parameter is set to true.
+ * <!-- end-model-doc -->
+ * @model trafficIncidentIdsMany="true"
+ * @generated
+ */
+ void getTrafficIncidents(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, boolean includeTextFields);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get a number of Traffic Incidents, where only specific fields are filled in..
+ * @param listener The class on which the callback function is called.
+ * @param trafficIncidentIds The Ids of the requested Traffic Incidents.
+ * @param trafficIncidentFields The fields (attributes) to be filled in in the Traffic Incident.
+ * <!-- end-model-doc -->
+ * @model trafficIncidentIdsMany="true" trafficIncidentFieldsMany="true"
+ * @generated
+ */
+ void getTrafficIncidentsFields(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, EList<TrafficIncidentField> trafficIncidentFields);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get the texts for a number of Traffic Incidents.
+ * @param listener The class on which the callback function is called.
+ * @param trafficIncidentIds The Ids of the Traffic Incidents for which the texts are requested.
+ * @param textDetailLevel The amount of detail to be provided in the texts.
+ * <!-- end-model-doc -->
+ * @model trafficIncidentIdsMany="true"
+ * @generated
+ */
+ void getTexts(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, TextDetailLevel textDetailLevel);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Add a listener which is notified in case of any change in Traffic Incidents status.
+ * In case of a status change, the TrafficIncidentsStatus() method of the listener is called.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void addTrafficIncidentsStatusListener(TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updateListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeAreasUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updateListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeTrafficIncidentsStatusListener(TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Add a listener which is notified in case of any update in the traffic information.
+ * In case of an update the updates() method of the listener is called.
+ * @param listener The class on which the callback function is called.
+ * @param warningLevels
+ * Only incidents with one of the specified warning levels will be returned.
+ * In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.
+ * <!-- end-model-doc -->
+ * @model warningLevelsMany="true" categoryIdsMany="true"
+ * @generated
+ */
+ void addUpdateListener(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, TrafficIncidentsListener updateListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Add a listener which is notified in case of an update in the traffic information in one or more specific area's.
+ * In case of an update the updatesInAreas() method of the listener is called.
+ * @param listener The class on which the callback function is called.
+ * @param warningLevels
+ * Only incidents with one of the specified warning levels will be returned.
+ * In case of an empty list, traffic incidents with any warning level (and no specified warning level) are returned.
+ * @param areas The area's to be observed for changes.
+ * <!-- end-model-doc -->
+ * @model warningLevelsMany="true" categoryIdsMany="true" areasMany="true"
+ * @generated
+ */
+ void addAreasUpdateListener(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas, TrafficIncidentsListener updateListener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Get the current language.
+ * @param listener The class on which the callback function is called.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getLanguage(TrafficIncidentsListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Set the language.
+ * @param languageCode The language to be used.
+ * @param countryCode The country specific variant for the language to be used.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void setLanguage(TrafficIncidentsListener listener, String languageCode, String countryCode);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setTimeFormat(TrafficIncidentsListener listener, String timeFormat);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setDateFormat(TrafficIncidentsListener listener, String dateFormat);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setLengthUnit(TrafficIncidentsListener listener, LengthUnit lengthUnit);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setWeightUnit(TrafficIncidentsListener listener, WeightUnit weightUnit);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void reserveIconSetIds(TrafficIncidentsListener listener, int numberOfIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconSetIdsMany="true"
+ * @generated
+ */
+ void freeIconSetIds(TrafficIncidentsListener listener, EList<Integer> iconSetIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void getIconSets(TrafficIncidentsListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconSetsMany="true"
+ * @generated
+ */
+ void addIconSetDefinitions(TrafficIncidentsListener listener, EList<IconSet> iconSets);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconSetIdsMany="true"
+ * @generated
+ */
+ void removeIconSetDefinitions(TrafficIncidentsListener listener, EList<Integer> iconSetIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconInfosMany="true"
+ * @generated
+ */
+ void getIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconDefinitionsMany="true"
+ * @generated
+ */
+ void addIconDefinitions(TrafficIncidentsListener listener, EList<IconDefinition> iconDefinitions);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconInfosMany="true"
+ * @generated
+ */
+ void removeIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void reserveCategoryIds(TrafficIncidentsListener listener, int numberOfIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model categoryIdsMany="true"
+ * @generated
+ */
+ void freeCategoryIds(TrafficIncidentsListener listener, EList<Integer> categoryIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void getCategoryDefinitions(TrafficIncidentsListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model categoryDefinitionsMany="true"
+ * @generated
+ */
+ void addCategoryDefinitions(TrafficIncidentsListener listener, EList<CategoryDefinition> categoryDefinitions);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model categoryIdsMany="true"
+ * @generated
+ */
+ void removeCategoryDefinitions(TrafficIncidentsListener listener, EList<Integer> categoryIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void getApplicability(TrafficIncidentsListener listener);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setApplicability(TrafficIncidentsListener listener, String filterExpression);
+
+} // TrafficIncidents
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsListener.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsListener.java
new file mode 100755
index 0000000..7a14629
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsListener.java
@@ -0,0 +1,422 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Traffic Incidents Listener</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentsListener()
+ * @model
+ * @generated
+ */
+public interface TrafficIncidentsListener extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getVersion().
+ * @param version The API version of this interface implemented by the service.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getVersionReply(Version version);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getTrafficIncidentIds().
+ * @param trafficIncidentIds The Ids of the requested traffic incidents.
+ * <!-- end-model-doc -->
+ * @model trafficIncidentIdsMany="true"
+ * @generated
+ */
+ void getTrafficIncidentIdsReply(EList<Integer> trafficIncidentIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getTrafficIncidentIdsInAreas().
+ * @param trafficIncidentIds The Ids of the requested traffic incidents.
+ * <!-- end-model-doc -->
+ * @model trafficIncidentIdsMany="true"
+ * @generated
+ */
+ void getTrafficIncidentIdsInAreasReply(EList<Integer> trafficIncidentIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getTrafficIncidents().
+ * @param trafficIncidents
+ * The requested Traffic Incidents. This list may be shorter than the request list
+ * as nothing is returned for Ids that don't exist (anymore).
+ * <!-- end-model-doc -->
+ * @model trafficIncidentsMany="true"
+ * @generated
+ */
+ void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getTrafficIncidentsFields().
+ * @param trafficIncidents
+ * The requested Traffic Incidents, with only the requested fields filled in.
+ * This list may be shorter than the request list as nothing is returned for
+ * Ids that don't exist (anymore).
+ * <!-- end-model-doc -->
+ * @model trafficIncidentsMany="true"
+ * @generated
+ */
+ void getTrafficIncidentsFieldsReply(EList<TrafficIncident> trafficIncidents);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getTexts().
+ * @param texts
+ * Text information per requested traffic incident.
+ * The texts will be in the same order as the trafficIncidentIds in the request.
+ * <!-- end-model-doc -->
+ * @model textsMany="true"
+ * @generated
+ */
+ void getTextsReply(EList<String> texts);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addTrafficIncidentsStatusListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addFeedInformationListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addUpdateListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeUpdateListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addAreasUpdateListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeAreasUpdateListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setLanguageReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setTimeFormatReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setDateFormatReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setLengthUnitReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setWeightUnitReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setApplicabilityReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void freeCategoryIdsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * If a client has registered itself as a listener for any updates in the traffic incidents,
+ * this method is called if there are changes.
+ * <!-- end-model-doc -->
+ * @model unchangedTrafficIncidentIdsMany="true" changedTrafficIncidentIdsMany="true" newTrafficIncidentIdsMany="true" deletedTrafficIncidentIdsMany="true"
+ * @generated
+ */
+ void updates(EList<Integer> unchangedTrafficIncidentIds, EList<Integer> changedTrafficIncidentIds, EList<Integer> newTrafficIncidentIds, EList<Integer> deletedTrafficIncidentIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * If a client has registered itself as a listener for updates in the traffic incidents in one or more area's
+ * (via addAreaUpdateListener() or addAreasUpdateListener()),
+ * this method is called if there are changes.
+ * @param areas The area's in which changes have taken place.
+ * <!-- end-model-doc -->
+ * @model areasMany="true"
+ * @generated
+ */
+ void updatesInAreas(EList<RectangularArea> areas);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This method is called as a response to getLanguage().
+ * @param languageCode The language.
+ * @param countryCode The country specific variant for the language.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void getLanguageReply(String languageCode, String countryCode);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * If a client has registered itself as a listener for changes in the Traffic Incidents status,
+ * this method is called upon changes in the Traffic Incidents status.
+ * The provided status information is the combined status of the available feeds in the system.
+ * Details of how the information is combined is given per parameter.
+ * @param trafficIncidentFeedStatus
+ * The combined status of the Traffic Incident Feeds.
+ * If all Feeds are UNAVAILABLE, the status is UNAVAILABLE.
+ * Else, if any of the Feeds is CONNECTED, the status is CONNECTED.
+ * Else, the status is DISCONNECTED (so there are Feeds available, but none of them is connected).
+ * @param trafficIncidentsStatus
+ * The combined status of the Traffic Incidents.
+ * If the status for all the Feeds is AVAILABLE, , the combined status is AVAILABLE.
+ * Else, if the status for one of the Feeds is PARTLY_AVAILABLE, the combined status is PARTLY_AVAILABLE.
+ * Else, the combined status is UNAVAILABLE (so there are no Traffic Incidents at all).
+ *
+ *
+ * Meaning of the enum values at this level:
+ * UNAVAILABLE: The are no incidents in the system, and currently they can also not be received.
+ * PARTLY_AVAILABLE: There are or may be incidents in the system, but the set of incidents is probably not up to date.
+ * This means that big changes are possible. Examples: Upon start-up, some incidents have already been received,
+ * but there are more incidents to receive. If the user is looking at the map display, new incidents may suddenly appear.
+ * When a connection is lost, the information stays valid for some time, but the information may no longer be fully up to date,
+ * and at some point in time a lot of incidents may suddenly disappear because they are no longer valid.
+ * AVAILABLE: The reception and handling of the incidents is stable, and as up to date as possible with respect to the used protocol(s).
+ * It is however still possible that there are currently no Traffic Incidents.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ void trafficIncidentsStatus(TrafficIncidentFeedStatus trafficIncidentFeedStatus, TrafficIncidentsStatus trafficIncidentsStatus);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * If a client has registered itself as a listener for changes in the Feed Information,
+ * this method is called upon changes in the Feed Information.
+ * @param feedsInformation The information per Traffic Incident Feed.
+ * <!-- end-model-doc -->
+ * @model feedsInformationMany="true"
+ * @generated
+ */
+ void feedInformation(EList<FeedInformation> feedsInformation);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model categoryIdsMany="true"
+ * @generated
+ */
+ void reserveCategoryIdsReply(EList<Integer> categoryIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconSetIdsMany="true"
+ * @generated
+ */
+ void reserveIconSetIdsReply(EList<Integer> iconSetIds);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconSetsMany="true"
+ * @generated
+ */
+ void getIconSetsReply(EList<IconSet> iconSets);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addIconSetDefinitionsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeIconSetDefinitionsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeFeedInformationListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeTrafficIncidentsStatusListenerReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model iconDefinitionsMany="true"
+ * @generated
+ */
+ void getIconDefinitionsReply(EList<IconDefinition> iconDefinitions);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addIconDefinitionsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeIconDefinitionsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model categoryDefinitionsMany="true"
+ * @generated
+ */
+ void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void addCategoryDefinitionsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void removeCategoryDefinitionsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void freeIconSetIdsReply();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void getApplicabilityReply(String filterExpression);
+
+} // TrafficIncidentsListener
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsStatus.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsStatus.java
new file mode 100755
index 0000000..2194c43
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/TrafficIncidentsStatus.java
@@ -0,0 +1,241 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Traffic Incidents Status</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This type provides information on the status of the Traffic Incidents.
+ * <!-- end-model-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getTrafficIncidentsStatus()
+ * @model
+ * @generated
+ */
+public enum TrafficIncidentsStatus implements Enumerator {
+ /**
+ * The '<em><b>UNAVAILABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNAVAILABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ UNAVAILABLE(1, "UNAVAILABLE", "UNAVAILABLE"),
+
+ /**
+ * The '<em><b>PARTLY AVAILABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARTLY_AVAILABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ PARTLY_AVAILABLE(2, "PARTLY_AVAILABLE", "PARTLY_AVAILABLE"),
+
+ /**
+ * The '<em><b>AVAILABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AVAILABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ AVAILABLE(3, "AVAILABLE", "AVAILABLE");
+
+ /**
+ * The '<em><b>UNAVAILABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There is no Traffic Incident data available.
+ * <!-- end-model-doc -->
+ * @see #UNAVAILABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNAVAILABLE_VALUE = 1;
+
+ /**
+ * The '<em><b>PARTLY AVAILABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There is incomplete Traffic Incident data available. This happens e.g. if the Feed status has changed from DISCONNECTED to CONNECTED
+ * and the system knows that not all information has been received, or if the Feed status goes temporarily from CONNECTED to DISCONNECTED.
+ * <!-- end-model-doc -->
+ * @see #PARTLY_AVAILABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARTLY_AVAILABLE_VALUE = 2;
+
+ /**
+ * The '<em><b>AVAILABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There is Traffic Incident data available.
+ * <!-- end-model-doc -->
+ * @see #AVAILABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AVAILABLE_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Traffic Incidents Status</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TrafficIncidentsStatus[] VALUES_ARRAY =
+ new TrafficIncidentsStatus[] {
+ UNAVAILABLE,
+ PARTLY_AVAILABLE,
+ AVAILABLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Traffic Incidents Status</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TrafficIncidentsStatus> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Traffic Incidents Status</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentsStatus get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficIncidentsStatus result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Incidents Status</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentsStatus getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficIncidentsStatus result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Incidents Status</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficIncidentsStatus get(int value) {
+ switch (value) {
+ case UNAVAILABLE_VALUE: return UNAVAILABLE;
+ case PARTLY_AVAILABLE_VALUE: return PARTLY_AVAILABLE;
+ case AVAILABLE_VALUE: return AVAILABLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TrafficIncidentsStatus(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TrafficIncidentsStatus
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/WeightUnit.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/WeightUnit.java
new file mode 100755
index 0000000..b374d3c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/WeightUnit.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Weight Unit</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#getWeightUnit()
+ * @model
+ * @generated
+ */
+public enum WeightUnit implements Enumerator {
+ /**
+ * The '<em><b>KILOGRAM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #KILOGRAM_VALUE
+ * @generated
+ * @ordered
+ */
+ KILOGRAM(1, "KILOGRAM", "KILOGRAM"),
+
+ /**
+ * The '<em><b>POUND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #POUND_VALUE
+ * @generated
+ * @ordered
+ */
+ POUND(2, "POUND", "POUND");
+
+ /**
+ * The '<em><b>KILOGRAM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>KILOGRAM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #KILOGRAM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int KILOGRAM_VALUE = 1;
+
+ /**
+ * The '<em><b>POUND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>POUND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #POUND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int POUND_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Weight Unit</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final WeightUnit[] VALUES_ARRAY =
+ new WeightUnit[] {
+ KILOGRAM,
+ POUND,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Weight Unit</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<WeightUnit> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Weight Unit</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WeightUnit get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WeightUnit result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Weight Unit</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WeightUnit getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WeightUnit result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Weight Unit</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WeightUnit get(int value) {
+ switch (value) {
+ case KILOGRAM_VALUE: return KILOGRAM;
+ case POUND_VALUE: return POUND;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private WeightUnit(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //WeightUnit
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/CategoryDefinitionImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/CategoryDefinitionImpl.java
new file mode 100755
index 0000000..d559b9c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/CategoryDefinitionImpl.java
@@ -0,0 +1,464 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.common.LocalizedString;
+import org.genivi.iconset.IconInfo;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Category Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl#getLocalizedNamesList <em>Localized Names</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl#getCategoryId <em>Category Id</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl#getIconsList <em>Icons</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CategoryDefinitionImpl extends EObjectImpl implements CategoryDefinition {
+ /**
+ * The cached value of the '{@link #getLocalizedNamesList() <em>Localized Names</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalizedNamesList()
+ * @generated
+ * @ordered
+ */
+ protected EList<LocalizedString> localizedNames;
+
+ /**
+ * The empty value for the '{@link #getLocalizedNames() <em>Localized Names</em>}' array accessor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalizedNames()
+ * @generated
+ * @ordered
+ */
+ protected static final LocalizedString[] LOCALIZED_NAMES_EEMPTY_ARRAY = new LocalizedString [0];
+
+ /**
+ * The default value of the '{@link #getCategoryId() <em>Category Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategoryId()
+ * @generated
+ * @ordered
+ */
+ protected static final int CATEGORY_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getCategoryId() <em>Category Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategoryId()
+ * @generated
+ * @ordered
+ */
+ protected int categoryId = CATEGORY_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getIconsList() <em>Icons</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconsList()
+ * @generated
+ * @ordered
+ */
+ protected EList<IconInfo> icons;
+
+ /**
+ * The empty value for the '{@link #getIcons() <em>Icons</em>}' array accessor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIcons()
+ * @generated
+ * @ordered
+ */
+ protected static final IconInfo[] ICONS_EEMPTY_ARRAY = new IconInfo [0];
+
+ /**
+ * The default value of the '{@link #getExpression() <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected String expression = EXPRESSION_EDEFAULT;
+
+ /**
+ * This is true if the Expression attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expressionESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CategoryDefinitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentsservicePackage.Literals.CATEGORY_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocalizedString[] getLocalizedNames() {
+ if (localizedNames == null || localizedNames.isEmpty()) return LOCALIZED_NAMES_EEMPTY_ARRAY;
+ BasicEList<LocalizedString> list = (BasicEList<LocalizedString>)localizedNames;
+ list.shrink();
+ return (LocalizedString[])list.data();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocalizedString getLocalizedNames(int index) {
+ return getLocalizedNamesList().get(index);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getLocalizedNamesLength() {
+ return localizedNames == null ? 0 : localizedNames.size();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocalizedNames(LocalizedString[] newLocalizedNames) {
+ ((BasicEList<LocalizedString>)getLocalizedNamesList()).setData(newLocalizedNames.length, newLocalizedNames);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocalizedNames(int index, LocalizedString element) {
+ getLocalizedNamesList().set(index, element);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LocalizedString> getLocalizedNamesList() {
+ if (localizedNames == null) {
+ localizedNames = new EObjectContainmentEList<LocalizedString>(LocalizedString.class, this, trafficincidentsservicePackage.CATEGORY_DEFINITION__LOCALIZED_NAMES);
+ }
+ return localizedNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getCategoryId() {
+ return categoryId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCategoryId(int newCategoryId) {
+ int oldCategoryId = categoryId;
+ categoryId = newCategoryId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.CATEGORY_DEFINITION__CATEGORY_ID, oldCategoryId, categoryId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconInfo[] getIcons() {
+ if (icons == null || icons.isEmpty()) return ICONS_EEMPTY_ARRAY;
+ BasicEList<IconInfo> list = (BasicEList<IconInfo>)icons;
+ list.shrink();
+ return (IconInfo[])list.data();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IconInfo getIcons(int index) {
+ return getIconsList().get(index);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIconsLength() {
+ return icons == null ? 0 : icons.size();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIcons(IconInfo[] newIcons) {
+ ((BasicEList<IconInfo>)getIconsList()).setData(newIcons.length, newIcons);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIcons(int index, IconInfo element) {
+ getIconsList().set(index, element);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<IconInfo> getIconsList() {
+ if (icons == null) {
+ icons = new EObjectContainmentEList<IconInfo>(IconInfo.class, this, trafficincidentsservicePackage.CATEGORY_DEFINITION__ICONS);
+ }
+ return icons;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExpression() {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(String newExpression) {
+ String oldExpression = expression;
+ expression = newExpression;
+ boolean oldExpressionESet = expressionESet;
+ expressionESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.CATEGORY_DEFINITION__EXPRESSION, oldExpression, expression, !oldExpressionESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpression() {
+ String oldExpression = expression;
+ boolean oldExpressionESet = expressionESet;
+ expression = EXPRESSION_EDEFAULT;
+ expressionESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentsservicePackage.CATEGORY_DEFINITION__EXPRESSION, oldExpression, EXPRESSION_EDEFAULT, oldExpressionESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpression() {
+ return expressionESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__LOCALIZED_NAMES:
+ return ((InternalEList<?>)getLocalizedNamesList()).basicRemove(otherEnd, msgs);
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__ICONS:
+ return ((InternalEList<?>)getIconsList()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__LOCALIZED_NAMES:
+ return getLocalizedNamesList();
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__CATEGORY_ID:
+ return getCategoryId();
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__ICONS:
+ return getIconsList();
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__LOCALIZED_NAMES:
+ getLocalizedNamesList().clear();
+ getLocalizedNamesList().addAll((Collection<? extends LocalizedString>)newValue);
+ return;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__CATEGORY_ID:
+ setCategoryId((Integer)newValue);
+ return;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__ICONS:
+ getIconsList().clear();
+ getIconsList().addAll((Collection<? extends IconInfo>)newValue);
+ return;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__EXPRESSION:
+ setExpression((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__LOCALIZED_NAMES:
+ getLocalizedNamesList().clear();
+ return;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__CATEGORY_ID:
+ setCategoryId(CATEGORY_ID_EDEFAULT);
+ return;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__ICONS:
+ getIconsList().clear();
+ return;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__EXPRESSION:
+ unsetExpression();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__LOCALIZED_NAMES:
+ return localizedNames != null && !localizedNames.isEmpty();
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__CATEGORY_ID:
+ return categoryId != CATEGORY_ID_EDEFAULT;
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__ICONS:
+ return icons != null && !icons.isEmpty();
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION__EXPRESSION:
+ return isSetExpression();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (categoryId: ");
+ result.append(categoryId);
+ result.append(", expression: ");
+ if (expressionESet) result.append(expression); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //CategoryDefinitionImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/FeedInformationImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/FeedInformationImpl.java
new file mode 100755
index 0000000..3f0a236
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/FeedInformationImpl.java
@@ -0,0 +1,556 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Feed Information</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl#getDataProviderName <em>Data Provider Name</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl#getProtocolName <em>Protocol Name</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl#getCommunicationChannelName <em>Communication Channel Name</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl#getFeedStatus <em>Feed Status</em>}</li>
+ * <li>{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl#getTrafficIncidentsStatus <em>Traffic Incidents Status</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FeedInformationImpl extends EObjectImpl implements FeedInformation {
+ /**
+ * The default value of the '{@link #getDataProviderName() <em>Data Provider Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataProviderName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DATA_PROVIDER_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDataProviderName() <em>Data Provider Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataProviderName()
+ * @generated
+ * @ordered
+ */
+ protected String dataProviderName = DATA_PROVIDER_NAME_EDEFAULT;
+
+ /**
+ * This is true if the Data Provider Name attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dataProviderNameESet;
+
+ /**
+ * The default value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProtocolName()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROTOCOL_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProtocolName() <em>Protocol Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProtocolName()
+ * @generated
+ * @ordered
+ */
+ protected String protocolName = PROTOCOL_NAME_EDEFAULT;
+
+ /**
+ * This is true if the Protocol Name attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean protocolNameESet;
+
+ /**
+ * The default value of the '{@link #getCommunicationChannelName() <em>Communication Channel Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCommunicationChannelName()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMMUNICATION_CHANNEL_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCommunicationChannelName() <em>Communication Channel Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCommunicationChannelName()
+ * @generated
+ * @ordered
+ */
+ protected String communicationChannelName = COMMUNICATION_CHANNEL_NAME_EDEFAULT;
+
+ /**
+ * This is true if the Communication Channel Name attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean communicationChannelNameESet;
+
+ /**
+ * The default value of the '{@link #getFeedStatus() <em>Feed Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeedStatus()
+ * @generated
+ * @ordered
+ */
+ protected static final TrafficIncidentFeedStatus FEED_STATUS_EDEFAULT = TrafficIncidentFeedStatus.UNAVAILABLE;
+
+ /**
+ * The cached value of the '{@link #getFeedStatus() <em>Feed Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeedStatus()
+ * @generated
+ * @ordered
+ */
+ protected TrafficIncidentFeedStatus feedStatus = FEED_STATUS_EDEFAULT;
+
+ /**
+ * This is true if the Feed Status attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean feedStatusESet;
+
+ /**
+ * The default value of the '{@link #getTrafficIncidentsStatus() <em>Traffic Incidents Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTrafficIncidentsStatus()
+ * @generated
+ * @ordered
+ */
+ protected static final TrafficIncidentsStatus TRAFFIC_INCIDENTS_STATUS_EDEFAULT = TrafficIncidentsStatus.UNAVAILABLE;
+
+ /**
+ * The cached value of the '{@link #getTrafficIncidentsStatus() <em>Traffic Incidents Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTrafficIncidentsStatus()
+ * @generated
+ * @ordered
+ */
+ protected TrafficIncidentsStatus trafficIncidentsStatus = TRAFFIC_INCIDENTS_STATUS_EDEFAULT;
+
+ /**
+ * This is true if the Traffic Incidents Status attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean trafficIncidentsStatusESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FeedInformationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentsservicePackage.Literals.FEED_INFORMATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDataProviderName() {
+ return dataProviderName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataProviderName(String newDataProviderName) {
+ String oldDataProviderName = dataProviderName;
+ dataProviderName = newDataProviderName;
+ boolean oldDataProviderNameESet = dataProviderNameESet;
+ dataProviderNameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.FEED_INFORMATION__DATA_PROVIDER_NAME, oldDataProviderName, dataProviderName, !oldDataProviderNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDataProviderName() {
+ String oldDataProviderName = dataProviderName;
+ boolean oldDataProviderNameESet = dataProviderNameESet;
+ dataProviderName = DATA_PROVIDER_NAME_EDEFAULT;
+ dataProviderNameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentsservicePackage.FEED_INFORMATION__DATA_PROVIDER_NAME, oldDataProviderName, DATA_PROVIDER_NAME_EDEFAULT, oldDataProviderNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDataProviderName() {
+ return dataProviderNameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProtocolName() {
+ return protocolName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProtocolName(String newProtocolName) {
+ String oldProtocolName = protocolName;
+ protocolName = newProtocolName;
+ boolean oldProtocolNameESet = protocolNameESet;
+ protocolNameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.FEED_INFORMATION__PROTOCOL_NAME, oldProtocolName, protocolName, !oldProtocolNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetProtocolName() {
+ String oldProtocolName = protocolName;
+ boolean oldProtocolNameESet = protocolNameESet;
+ protocolName = PROTOCOL_NAME_EDEFAULT;
+ protocolNameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentsservicePackage.FEED_INFORMATION__PROTOCOL_NAME, oldProtocolName, PROTOCOL_NAME_EDEFAULT, oldProtocolNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetProtocolName() {
+ return protocolNameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCommunicationChannelName() {
+ return communicationChannelName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCommunicationChannelName(String newCommunicationChannelName) {
+ String oldCommunicationChannelName = communicationChannelName;
+ communicationChannelName = newCommunicationChannelName;
+ boolean oldCommunicationChannelNameESet = communicationChannelNameESet;
+ communicationChannelNameESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME, oldCommunicationChannelName, communicationChannelName, !oldCommunicationChannelNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCommunicationChannelName() {
+ String oldCommunicationChannelName = communicationChannelName;
+ boolean oldCommunicationChannelNameESet = communicationChannelNameESet;
+ communicationChannelName = COMMUNICATION_CHANNEL_NAME_EDEFAULT;
+ communicationChannelNameESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentsservicePackage.FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME, oldCommunicationChannelName, COMMUNICATION_CHANNEL_NAME_EDEFAULT, oldCommunicationChannelNameESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCommunicationChannelName() {
+ return communicationChannelNameESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentFeedStatus getFeedStatus() {
+ return feedStatus;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeedStatus(TrafficIncidentFeedStatus newFeedStatus) {
+ TrafficIncidentFeedStatus oldFeedStatus = feedStatus;
+ feedStatus = newFeedStatus == null ? FEED_STATUS_EDEFAULT : newFeedStatus;
+ boolean oldFeedStatusESet = feedStatusESet;
+ feedStatusESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.FEED_INFORMATION__FEED_STATUS, oldFeedStatus, feedStatus, !oldFeedStatusESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFeedStatus() {
+ TrafficIncidentFeedStatus oldFeedStatus = feedStatus;
+ boolean oldFeedStatusESet = feedStatusESet;
+ feedStatus = FEED_STATUS_EDEFAULT;
+ feedStatusESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentsservicePackage.FEED_INFORMATION__FEED_STATUS, oldFeedStatus, FEED_STATUS_EDEFAULT, oldFeedStatusESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeedStatus() {
+ return feedStatusESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentsStatus getTrafficIncidentsStatus() {
+ return trafficIncidentsStatus;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTrafficIncidentsStatus(TrafficIncidentsStatus newTrafficIncidentsStatus) {
+ TrafficIncidentsStatus oldTrafficIncidentsStatus = trafficIncidentsStatus;
+ trafficIncidentsStatus = newTrafficIncidentsStatus == null ? TRAFFIC_INCIDENTS_STATUS_EDEFAULT : newTrafficIncidentsStatus;
+ boolean oldTrafficIncidentsStatusESet = trafficIncidentsStatusESet;
+ trafficIncidentsStatusESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, trafficincidentsservicePackage.FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS, oldTrafficIncidentsStatus, trafficIncidentsStatus, !oldTrafficIncidentsStatusESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTrafficIncidentsStatus() {
+ TrafficIncidentsStatus oldTrafficIncidentsStatus = trafficIncidentsStatus;
+ boolean oldTrafficIncidentsStatusESet = trafficIncidentsStatusESet;
+ trafficIncidentsStatus = TRAFFIC_INCIDENTS_STATUS_EDEFAULT;
+ trafficIncidentsStatusESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, trafficincidentsservicePackage.FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS, oldTrafficIncidentsStatus, TRAFFIC_INCIDENTS_STATUS_EDEFAULT, oldTrafficIncidentsStatusESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTrafficIncidentsStatus() {
+ return trafficIncidentsStatusESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.FEED_INFORMATION__DATA_PROVIDER_NAME:
+ return getDataProviderName();
+ case trafficincidentsservicePackage.FEED_INFORMATION__PROTOCOL_NAME:
+ return getProtocolName();
+ case trafficincidentsservicePackage.FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME:
+ return getCommunicationChannelName();
+ case trafficincidentsservicePackage.FEED_INFORMATION__FEED_STATUS:
+ return getFeedStatus();
+ case trafficincidentsservicePackage.FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS:
+ return getTrafficIncidentsStatus();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.FEED_INFORMATION__DATA_PROVIDER_NAME:
+ setDataProviderName((String)newValue);
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__PROTOCOL_NAME:
+ setProtocolName((String)newValue);
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME:
+ setCommunicationChannelName((String)newValue);
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__FEED_STATUS:
+ setFeedStatus((TrafficIncidentFeedStatus)newValue);
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS:
+ setTrafficIncidentsStatus((TrafficIncidentsStatus)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.FEED_INFORMATION__DATA_PROVIDER_NAME:
+ unsetDataProviderName();
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__PROTOCOL_NAME:
+ unsetProtocolName();
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME:
+ unsetCommunicationChannelName();
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__FEED_STATUS:
+ unsetFeedStatus();
+ return;
+ case trafficincidentsservicePackage.FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS:
+ unsetTrafficIncidentsStatus();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case trafficincidentsservicePackage.FEED_INFORMATION__DATA_PROVIDER_NAME:
+ return isSetDataProviderName();
+ case trafficincidentsservicePackage.FEED_INFORMATION__PROTOCOL_NAME:
+ return isSetProtocolName();
+ case trafficincidentsservicePackage.FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME:
+ return isSetCommunicationChannelName();
+ case trafficincidentsservicePackage.FEED_INFORMATION__FEED_STATUS:
+ return isSetFeedStatus();
+ case trafficincidentsservicePackage.FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS:
+ return isSetTrafficIncidentsStatus();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (dataProviderName: ");
+ if (dataProviderNameESet) result.append(dataProviderName); else result.append("<unset>");
+ result.append(", protocolName: ");
+ if (protocolNameESet) result.append(protocolName); else result.append("<unset>");
+ result.append(", communicationChannelName: ");
+ if (communicationChannelNameESet) result.append(communicationChannelName); else result.append("<unset>");
+ result.append(", feedStatus: ");
+ if (feedStatusESet) result.append(feedStatus); else result.append("<unset>");
+ result.append(", trafficIncidentsStatus: ");
+ if (trafficIncidentsStatusESet) result.append(trafficIncidentsStatus); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //FeedInformationImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedImpl.java
new file mode 100755
index 0000000..6c76144
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedImpl.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Traffic Incident Feed</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TrafficIncidentFeedImpl extends EObjectImpl implements TrafficIncidentFeed {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TrafficIncidentFeedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentsservicePackage.Literals.TRAFFIC_INCIDENT_FEED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getVersion(TrafficIncidentFeedListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getLanguage(TrafficIncidentFeedListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addLanguageListener(TrafficIncidentFeedListener listener, TrafficIncidentFeedListener changeListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void clear() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updateIncidents(int feedId, EList<String> cancelledIncidentIds, EList<TrafficIncident> updatedIncidents) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updateStatus(int feedId, TrafficIncidentFeedStatus feedStatus, TrafficIncidentsStatus incidentsStatus) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void registerFeed(TrafficIncidentFeedListener listener, String dataProviderName, String protocolName, String communicationChannelName) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeLanguageListener(TrafficIncidentFeedListener listener, TrafficIncidentFeedListener changeListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //TrafficIncidentFeedImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedListenerImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedListenerImpl.java
new file mode 100755
index 0000000..4f489f0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentFeedListenerImpl.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.Version;
+
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Traffic Incident Feed Listener</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TrafficIncidentFeedListenerImpl extends EObjectImpl implements TrafficIncidentFeedListener {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TrafficIncidentFeedListenerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentsservicePackage.Literals.TRAFFIC_INCIDENT_FEED_LISTENER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getVersionReply(Version version) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void registerFeedReply(int feedId) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addLanguageListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeLanguageListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //TrafficIncidentFeedListenerImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsImpl.java
new file mode 100755
index 0000000..cca9229
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsImpl.java
@@ -0,0 +1,441 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.common.RectangularArea;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Traffic Incidents</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TrafficIncidentsImpl extends EObjectImpl implements TrafficIncidents {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TrafficIncidentsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentsservicePackage.Literals.TRAFFIC_INCIDENTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getVersion(TrafficIncidentsListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentIds(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentIdsInAreas(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidents(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, boolean includeTextFields) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentsFields(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, EList<TrafficIncidentField> trafficIncidentFields) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTexts(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, TextDetailLevel textDetailLevel) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addTrafficIncidentsStatusListener(TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updateListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeAreasUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updateListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeTrafficIncidentsStatusListener(TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addUpdateListener(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, TrafficIncidentsListener updateListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addAreasUpdateListener(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas, TrafficIncidentsListener updateListener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getLanguage(TrafficIncidentsListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguage(TrafficIncidentsListener listener, String languageCode, String countryCode) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTimeFormat(TrafficIncidentsListener listener, String timeFormat) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDateFormat(TrafficIncidentsListener listener, String dateFormat) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthUnit(TrafficIncidentsListener listener, LengthUnit lengthUnit) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWeightUnit(TrafficIncidentsListener listener, WeightUnit weightUnit) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void reserveIconSetIds(TrafficIncidentsListener listener, int numberOfIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void freeIconSetIds(TrafficIncidentsListener listener, EList<Integer> iconSetIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getIconSets(TrafficIncidentsListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addIconSetDefinitions(TrafficIncidentsListener listener, EList<IconSet> iconSets) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeIconSetDefinitions(TrafficIncidentsListener listener, EList<Integer> iconSetIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addIconDefinitions(TrafficIncidentsListener listener, EList<IconDefinition> iconDefinitions) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void reserveCategoryIds(TrafficIncidentsListener listener, int numberOfIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void freeCategoryIds(TrafficIncidentsListener listener, EList<Integer> categoryIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getCategoryDefinitions(TrafficIncidentsListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addCategoryDefinitions(TrafficIncidentsListener listener, EList<CategoryDefinition> categoryDefinitions) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeCategoryDefinitions(TrafficIncidentsListener listener, EList<Integer> categoryIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getApplicability(TrafficIncidentsListener listener) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicability(TrafficIncidentsListener listener, String filterExpression) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //TrafficIncidentsImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsListenerImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsListenerImpl.java
new file mode 100755
index 0000000..94f0fb2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/TrafficIncidentsListenerImpl.java
@@ -0,0 +1,488 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Traffic Incidents Listener</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TrafficIncidentsListenerImpl extends EObjectImpl implements TrafficIncidentsListener {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TrafficIncidentsListenerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return trafficincidentsservicePackage.Literals.TRAFFIC_INCIDENTS_LISTENER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getVersionReply(Version version) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentIdsReply(EList<Integer> trafficIncidentIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentIdsInAreasReply(EList<Integer> trafficIncidentIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTrafficIncidentsFieldsReply(EList<TrafficIncident> trafficIncidents) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getTextsReply(EList<String> texts) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addTrafficIncidentsStatusListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addFeedInformationListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addUpdateListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeUpdateListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addAreasUpdateListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeAreasUpdateListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguageReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTimeFormatReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDateFormatReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthUnitReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWeightUnitReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicabilityReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void freeCategoryIdsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updates(EList<Integer> unchangedTrafficIncidentIds, EList<Integer> changedTrafficIncidentIds, EList<Integer> newTrafficIncidentIds, EList<Integer> deletedTrafficIncidentIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updatesInAreas(EList<RectangularArea> areas) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void trafficIncidentsStatus(TrafficIncidentFeedStatus trafficIncidentFeedStatus, TrafficIncidentsStatus trafficIncidentsStatus) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void feedInformation(EList<FeedInformation> feedsInformation) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void reserveCategoryIdsReply(EList<Integer> categoryIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void reserveIconSetIdsReply(EList<Integer> iconSetIds) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getIconSetsReply(EList<IconSet> iconSets) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addIconSetDefinitionsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeIconSetDefinitionsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeFeedInformationListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeTrafficIncidentsStatusListenerReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getIconDefinitionsReply(EList<IconDefinition> iconDefinitions) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addIconDefinitionsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeIconDefinitionsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addCategoryDefinitionsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeCategoryDefinitionsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void freeIconSetIdsReply() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void getApplicabilityReply(String filterExpression) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //TrafficIncidentsListenerImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsserviceFactoryImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsserviceFactoryImpl.java
new file mode 100755
index 0000000..46d5a9b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsserviceFactoryImpl.java
@@ -0,0 +1,362 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.genivi.trafficincidentsservice.*;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.SpeedUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class trafficincidentsserviceFactoryImpl extends EFactoryImpl implements trafficincidentsserviceFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static trafficincidentsserviceFactory init() {
+ try {
+ trafficincidentsserviceFactory thetrafficincidentsserviceFactory = (trafficincidentsserviceFactory)EPackage.Registry.INSTANCE.getEFactory(trafficincidentsservicePackage.eNS_URI);
+ if (thetrafficincidentsserviceFactory != null) {
+ return thetrafficincidentsserviceFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new trafficincidentsserviceFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentsserviceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENTS: return createTrafficIncidents();
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENTS_LISTENER: return createTrafficIncidentsListener();
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FEED: return createTrafficIncidentFeed();
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FEED_LISTENER: return createTrafficIncidentFeedListener();
+ case trafficincidentsservicePackage.FEED_INFORMATION: return createFeedInformation();
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION: return createCategoryDefinition();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FIELD:
+ return createTrafficIncidentFieldFromString(eDataType, initialValue);
+ case trafficincidentsservicePackage.TEXT_DETAIL_LEVEL:
+ return createTextDetailLevelFromString(eDataType, initialValue);
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FEED_STATUS:
+ return createTrafficIncidentFeedStatusFromString(eDataType, initialValue);
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENTS_STATUS:
+ return createTrafficIncidentsStatusFromString(eDataType, initialValue);
+ case trafficincidentsservicePackage.SPEED_UNIT:
+ return createSpeedUnitFromString(eDataType, initialValue);
+ case trafficincidentsservicePackage.LENGTH_UNIT:
+ return createLengthUnitFromString(eDataType, initialValue);
+ case trafficincidentsservicePackage.WEIGHT_UNIT:
+ return createWeightUnitFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FIELD:
+ return convertTrafficIncidentFieldToString(eDataType, instanceValue);
+ case trafficincidentsservicePackage.TEXT_DETAIL_LEVEL:
+ return convertTextDetailLevelToString(eDataType, instanceValue);
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FEED_STATUS:
+ return convertTrafficIncidentFeedStatusToString(eDataType, instanceValue);
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENTS_STATUS:
+ return convertTrafficIncidentsStatusToString(eDataType, instanceValue);
+ case trafficincidentsservicePackage.SPEED_UNIT:
+ return convertSpeedUnitToString(eDataType, instanceValue);
+ case trafficincidentsservicePackage.LENGTH_UNIT:
+ return convertLengthUnitToString(eDataType, instanceValue);
+ case trafficincidentsservicePackage.WEIGHT_UNIT:
+ return convertWeightUnitToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidents createTrafficIncidents() {
+ TrafficIncidentsImpl trafficIncidents = new TrafficIncidentsImpl();
+ return trafficIncidents;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentsListener createTrafficIncidentsListener() {
+ TrafficIncidentsListenerImpl trafficIncidentsListener = new TrafficIncidentsListenerImpl();
+ return trafficIncidentsListener;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentFeed createTrafficIncidentFeed() {
+ TrafficIncidentFeedImpl trafficIncidentFeed = new TrafficIncidentFeedImpl();
+ return trafficIncidentFeed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentFeedListener createTrafficIncidentFeedListener() {
+ TrafficIncidentFeedListenerImpl trafficIncidentFeedListener = new TrafficIncidentFeedListenerImpl();
+ return trafficIncidentFeedListener;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeedInformation createFeedInformation() {
+ FeedInformationImpl feedInformation = new FeedInformationImpl();
+ return feedInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CategoryDefinition createCategoryDefinition() {
+ CategoryDefinitionImpl categoryDefinition = new CategoryDefinitionImpl();
+ return categoryDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentField createTrafficIncidentFieldFromString(EDataType eDataType, String initialValue) {
+ TrafficIncidentField result = TrafficIncidentField.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTrafficIncidentFieldToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextDetailLevel createTextDetailLevelFromString(EDataType eDataType, String initialValue) {
+ TextDetailLevel result = TextDetailLevel.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTextDetailLevelToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentFeedStatus createTrafficIncidentFeedStatusFromString(EDataType eDataType, String initialValue) {
+ TrafficIncidentFeedStatus result = TrafficIncidentFeedStatus.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTrafficIncidentFeedStatusToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficIncidentsStatus createTrafficIncidentsStatusFromString(EDataType eDataType, String initialValue) {
+ TrafficIncidentsStatus result = TrafficIncidentsStatus.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTrafficIncidentsStatusToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SpeedUnit createSpeedUnitFromString(EDataType eDataType, String initialValue) {
+ SpeedUnit result = SpeedUnit.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSpeedUnitToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LengthUnit createLengthUnitFromString(EDataType eDataType, String initialValue) {
+ LengthUnit result = LengthUnit.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLengthUnitToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WeightUnit createWeightUnitFromString(EDataType eDataType, String initialValue) {
+ WeightUnit result = WeightUnit.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertWeightUnitToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentsservicePackage gettrafficincidentsservicePackage() {
+ return (trafficincidentsservicePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static trafficincidentsservicePackage getPackage() {
+ return trafficincidentsservicePackage.eINSTANCE;
+ }
+
+} //trafficincidentsserviceFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsservicePackageImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsservicePackageImpl.java
new file mode 100755
index 0000000..fd65632
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/impl/trafficincidentsservicePackageImpl.java
@@ -0,0 +1,903 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.genivi.common.CommonPackage;
+import org.genivi.iconset.IconsetPackage;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.SpeedUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class trafficincidentsservicePackageImpl extends EPackageImpl implements trafficincidentsservicePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass trafficIncidentsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass trafficIncidentsListenerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass trafficIncidentFeedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass trafficIncidentFeedListenerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass feedInformationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass categoryDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum trafficIncidentFieldEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum textDetailLevelEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum trafficIncidentFeedStatusEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum trafficIncidentsStatusEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum speedUnitEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum lengthUnitEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum weightUnitEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private trafficincidentsservicePackageImpl() {
+ super(eNS_URI, trafficincidentsserviceFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link trafficincidentsservicePackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static trafficincidentsservicePackage init() {
+ if (isInited) return (trafficincidentsservicePackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidentsservicePackage.eNS_URI);
+
+ // Obtain or create and register package
+ trafficincidentsservicePackageImpl thetrafficincidentsservicePackage = (trafficincidentsservicePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof trafficincidentsservicePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new trafficincidentsservicePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ IconsetPackage.eINSTANCE.eClass();
+ trafficincidentPackage.eINSTANCE.eClass();
+ XTrafficIncidentPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ thetrafficincidentsservicePackage.createPackageContents();
+
+ // Initialize created meta-data
+ thetrafficincidentsservicePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thetrafficincidentsservicePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(trafficincidentsservicePackage.eNS_URI, thetrafficincidentsservicePackage);
+ return thetrafficincidentsservicePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrafficIncidents() {
+ return trafficIncidentsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrafficIncidentsListener() {
+ return trafficIncidentsListenerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrafficIncidentFeed() {
+ return trafficIncidentFeedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrafficIncidentFeedListener() {
+ return trafficIncidentFeedListenerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFeedInformation() {
+ return feedInformationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFeedInformation_DataProviderName() {
+ return (EAttribute)feedInformationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFeedInformation_ProtocolName() {
+ return (EAttribute)feedInformationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFeedInformation_CommunicationChannelName() {
+ return (EAttribute)feedInformationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFeedInformation_FeedStatus() {
+ return (EAttribute)feedInformationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFeedInformation_TrafficIncidentsStatus() {
+ return (EAttribute)feedInformationEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCategoryDefinition() {
+ return categoryDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCategoryDefinition_LocalizedNames() {
+ return (EReference)categoryDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCategoryDefinition_CategoryId() {
+ return (EAttribute)categoryDefinitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCategoryDefinition_Icons() {
+ return (EReference)categoryDefinitionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCategoryDefinition_Expression() {
+ return (EAttribute)categoryDefinitionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTrafficIncidentField() {
+ return trafficIncidentFieldEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTextDetailLevel() {
+ return textDetailLevelEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTrafficIncidentFeedStatus() {
+ return trafficIncidentFeedStatusEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTrafficIncidentsStatus() {
+ return trafficIncidentsStatusEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSpeedUnit() {
+ return speedUnitEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLengthUnit() {
+ return lengthUnitEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getWeightUnit() {
+ return weightUnitEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentsserviceFactory gettrafficincidentsserviceFactory() {
+ return (trafficincidentsserviceFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ trafficIncidentsEClass = createEClass(TRAFFIC_INCIDENTS);
+
+ trafficIncidentsListenerEClass = createEClass(TRAFFIC_INCIDENTS_LISTENER);
+
+ trafficIncidentFeedEClass = createEClass(TRAFFIC_INCIDENT_FEED);
+
+ trafficIncidentFeedListenerEClass = createEClass(TRAFFIC_INCIDENT_FEED_LISTENER);
+
+ feedInformationEClass = createEClass(FEED_INFORMATION);
+ createEAttribute(feedInformationEClass, FEED_INFORMATION__DATA_PROVIDER_NAME);
+ createEAttribute(feedInformationEClass, FEED_INFORMATION__PROTOCOL_NAME);
+ createEAttribute(feedInformationEClass, FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME);
+ createEAttribute(feedInformationEClass, FEED_INFORMATION__FEED_STATUS);
+ createEAttribute(feedInformationEClass, FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS);
+
+ categoryDefinitionEClass = createEClass(CATEGORY_DEFINITION);
+ createEReference(categoryDefinitionEClass, CATEGORY_DEFINITION__LOCALIZED_NAMES);
+ createEAttribute(categoryDefinitionEClass, CATEGORY_DEFINITION__CATEGORY_ID);
+ createEReference(categoryDefinitionEClass, CATEGORY_DEFINITION__ICONS);
+ createEAttribute(categoryDefinitionEClass, CATEGORY_DEFINITION__EXPRESSION);
+
+ // Create enums
+ trafficIncidentFieldEEnum = createEEnum(TRAFFIC_INCIDENT_FIELD);
+ textDetailLevelEEnum = createEEnum(TEXT_DETAIL_LEVEL);
+ trafficIncidentFeedStatusEEnum = createEEnum(TRAFFIC_INCIDENT_FEED_STATUS);
+ trafficIncidentsStatusEEnum = createEEnum(TRAFFIC_INCIDENTS_STATUS);
+ speedUnitEEnum = createEEnum(SPEED_UNIT);
+ lengthUnitEEnum = createEEnum(LENGTH_UNIT);
+ weightUnitEEnum = createEEnum(WEIGHT_UNIT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ trafficincidenttablesPackage thetrafficincidenttablesPackage = (trafficincidenttablesPackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidenttablesPackage.eNS_URI);
+ CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI);
+ IconsetPackage theIconsetPackage = (IconsetPackage)EPackage.Registry.INSTANCE.getEPackage(IconsetPackage.eNS_URI);
+ trafficincidentPackage thetrafficincidentPackage = (trafficincidentPackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidentPackage.eNS_URI);
+ XTrafficIncidentPackage theXTrafficIncidentPackage = (XTrafficIncidentPackage)EPackage.Registry.INSTANCE.getEPackage(XTrafficIncidentPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(trafficIncidentsEClass, TrafficIncidents.class, "TrafficIncidents", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ EOperation op = addEOperation(trafficIncidentsEClass, null, "getVersion", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addUpdateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, thetrafficincidenttablesPackage.getWarningLevel(), "warningLevels", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "updateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addAreasUpdateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, thetrafficincidenttablesPackage.getWarningLevel(), "warningLevels", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theCommonPackage.getRectangularArea(), "areas", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "updateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getLanguage", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "setLanguage", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "languageCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "countryCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "setTimeFormat", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "timeFormat", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "setDateFormat", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "dateFormat", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "setLengthUnit", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getLengthUnit(), "lengthUnit", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "setWeightUnit", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getWeightUnit(), "weightUnit", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getApplicability", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "setApplicability", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "filterExpression", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "reserveIconSetIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "numberOfIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "freeIconSetIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "iconSetIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getIconSets", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addIconSetDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theIconsetPackage.getIconSet(), "iconSets", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeIconSetDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "iconSetIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getIconDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theIconsetPackage.getIconInfo(), "iconInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addIconDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theIconsetPackage.getIconDefinition(), "iconDefinitions", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeIconDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theIconsetPackage.getIconInfo(), "iconInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "reserveCategoryIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "numberOfIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "freeCategoryIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getCategoryDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addCategoryDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getCategoryDefinition(), "categoryDefinitions", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeCategoryDefinitions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getTrafficIncidentIds", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, thetrafficincidenttablesPackage.getWarningLevel(), "warningLevels", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getTrafficIncidentIdsInAreas", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, thetrafficincidenttablesPackage.getWarningLevel(), "warningLevels", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theCommonPackage.getRectangularArea(), "areas", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getTrafficIncidents", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "trafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEBoolean(), "includeTextFields", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getTrafficIncidentsFields", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "trafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentField(), "trafficIncidentFields", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "getTexts", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "trafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTextDetailLevel(), "textDetailLevel", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addTrafficIncidentsStatusListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "trafficIncidentsStatusListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "addFeedInformationListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "feedInformationListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeUpdateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "updateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeAreasUpdateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "updateListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeTrafficIncidentsStatusListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "trafficIncidentsStatusListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsEClass, null, "removeFeedInformationListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsListener(), "feedInformationListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(trafficIncidentsListenerEClass, TrafficIncidentsListener.class, "TrafficIncidentsListener", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getVersionReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theCommonPackage.getVersion(), "version", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "updates", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "unchangedTrafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "changedTrafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "newTrafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "deletedTrafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "updatesInAreas", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theCommonPackage.getRectangularArea(), "areas", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "trafficIncidentsStatus", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedStatus(), "trafficIncidentFeedStatus", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsStatus(), "trafficIncidentsStatus", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "feedInformation", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getFeedInformation(), "feedsInformation", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getLanguageReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "languageCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "countryCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getApplicabilityReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "filterExpression", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "reserveIconSetIdsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "iconSetIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "reserveCategoryIdsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "categoryIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getTrafficIncidentIdsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "trafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getTrafficIncidentIdsInAreasReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "trafficIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getTrafficIncidentsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, thetrafficincidentPackage.getTrafficIncident(), "trafficIncidents", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getTrafficIncidentsFieldsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, thetrafficincidentPackage.getTrafficIncident(), "trafficIncidents", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getTextsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "texts", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addTrafficIncidentsStatusListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addFeedInformationListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addUpdateListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeUpdateListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addAreasUpdateListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeAreasUpdateListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "setLanguageReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "setTimeFormatReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "setDateFormatReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "setLengthUnitReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "setWeightUnitReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "setApplicabilityReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "freeCategoryIdsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getCategoryDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getCategoryDefinition(), "categoryDefinitions", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addCategoryDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeCategoryDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "freeIconSetIdsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getIconDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theIconsetPackage.getIconDefinition(), "iconDefinitions", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addIconDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeIconDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentsListenerEClass, null, "getIconSetsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theIconsetPackage.getIconSet(), "iconSets", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "addIconSetDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeIconSetDefinitionsReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeFeedInformationListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentsListenerEClass, null, "removeTrafficIncidentsStatusListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(trafficIncidentFeedEClass, TrafficIncidentFeed.class, "TrafficIncidentFeed", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "getVersion", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "getLanguage", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "addLanguageListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "changeListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentFeedEClass, null, "clear", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "updateIncidents", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "feedId", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "cancelledIncidentIds", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theXTrafficIncidentPackage.getTrafficIncident(), "updatedIncidents", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "updateStatus", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "feedId", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedStatus(), "feedStatus", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentsStatus(), "incidentsStatus", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "registerFeed", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "dataProviderName", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "protocolName", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "communicationChannelName", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedEClass, null, "removeLanguageListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "listener", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrafficIncidentFeedListener(), "changeListener", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(trafficIncidentFeedListenerEClass, TrafficIncidentFeedListener.class, "TrafficIncidentFeedListener", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(trafficIncidentFeedListenerEClass, null, "getVersionReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theCommonPackage.getVersion(), "version", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedListenerEClass, null, "getLanguageReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "languageCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "countryCode", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(trafficIncidentFeedListenerEClass, null, "registerFeedReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "feedId", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentFeedListenerEClass, null, "addLanguageListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(trafficIncidentFeedListenerEClass, null, "removeLanguageListenerReply", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(feedInformationEClass, FeedInformation.class, "FeedInformation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFeedInformation_DataProviderName(), ecorePackage.getEString(), "dataProviderName", null, 0, 1, FeedInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFeedInformation_ProtocolName(), ecorePackage.getEString(), "protocolName", null, 0, 1, FeedInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFeedInformation_CommunicationChannelName(), ecorePackage.getEString(), "communicationChannelName", null, 0, 1, FeedInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFeedInformation_FeedStatus(), this.getTrafficIncidentFeedStatus(), "feedStatus", null, 1, 1, FeedInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFeedInformation_TrafficIncidentsStatus(), this.getTrafficIncidentsStatus(), "trafficIncidentsStatus", null, 1, 1, FeedInformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(categoryDefinitionEClass, CategoryDefinition.class, "CategoryDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCategoryDefinition_LocalizedNames(), theCommonPackage.getLocalizedString(), null, "localizedNames", null, 0, -1, CategoryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCategoryDefinition_CategoryId(), ecorePackage.getEInt(), "categoryId", null, 1, 1, CategoryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCategoryDefinition_Icons(), theIconsetPackage.getIconInfo(), null, "icons", null, 0, -1, CategoryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCategoryDefinition_Expression(), ecorePackage.getEString(), "expression", null, 1, 1, CategoryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(trafficIncidentFieldEEnum, TrafficIncidentField.class, "TrafficIncidentField");
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.TRAFFIC_INCIDENT_ID);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.EFFECT_CODE);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.EFFECT_TEXT);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.START_TIME);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.STOP_TIME);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.TENDENCY);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.TENDENCY_TEXT);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.LENGTH_AFFECTED);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.AVERAGE_SPEED_ABSOLUTE);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.DELAY);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.SEGMENT_SPEED_LIMIT);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.CAUSES);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.CAUSE_TEXTS);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.APPLICABILITY_TEXTS);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.LOCATION);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.LOCATION_INFO);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.LOCATION_BOUNDING_BOX);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.APPLICABILITY);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.ADVICES);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.ADVICE_TEXTS);
+ addEEnumLiteral(trafficIncidentFieldEEnum, TrafficIncidentField.EXPECTED_SPEED_ABSOLUTE);
+
+ initEEnum(textDetailLevelEEnum, TextDetailLevel.class, "TextDetailLevel");
+ addEEnumLiteral(textDetailLevelEEnum, TextDetailLevel.FULL);
+ addEEnumLiteral(textDetailLevelEEnum, TextDetailLevel.SUMMARY);
+
+ initEEnum(trafficIncidentFeedStatusEEnum, TrafficIncidentFeedStatus.class, "TrafficIncidentFeedStatus");
+ addEEnumLiteral(trafficIncidentFeedStatusEEnum, TrafficIncidentFeedStatus.UNAVAILABLE);
+ addEEnumLiteral(trafficIncidentFeedStatusEEnum, TrafficIncidentFeedStatus.CONNECTED);
+ addEEnumLiteral(trafficIncidentFeedStatusEEnum, TrafficIncidentFeedStatus.DISCONNECTED);
+
+ initEEnum(trafficIncidentsStatusEEnum, TrafficIncidentsStatus.class, "TrafficIncidentsStatus");
+ addEEnumLiteral(trafficIncidentsStatusEEnum, TrafficIncidentsStatus.UNAVAILABLE);
+ addEEnumLiteral(trafficIncidentsStatusEEnum, TrafficIncidentsStatus.PARTLY_AVAILABLE);
+ addEEnumLiteral(trafficIncidentsStatusEEnum, TrafficIncidentsStatus.AVAILABLE);
+
+ initEEnum(speedUnitEEnum, SpeedUnit.class, "SpeedUnit");
+ addEEnumLiteral(speedUnitEEnum, SpeedUnit.KILOMETERS_PER_HOUR);
+ addEEnumLiteral(speedUnitEEnum, SpeedUnit.MILES_PER_HOUR);
+
+ initEEnum(lengthUnitEEnum, LengthUnit.class, "LengthUnit");
+ addEEnumLiteral(lengthUnitEEnum, LengthUnit.KILOMETERS);
+ addEEnumLiteral(lengthUnitEEnum, LengthUnit.MILES);
+
+ initEEnum(weightUnitEEnum, WeightUnit.class, "WeightUnit");
+ addEEnumLiteral(weightUnitEEnum, WeightUnit.KILOGRAM);
+ addEEnumLiteral(weightUnitEEnum, WeightUnit.POUND);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ // http://www.tomtom.com/emfidl/2012/GenModel
+ createGenModel_2Annotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.tomtom.com/emfidl/2012/GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModel_2Annotations() {
+ String source = "http://www.tomtom.com/emfidl/2012/GenModel";
+ addAnnotation
+ (trafficIncidentsEClass,
+ source,
+ new String[] {
+ "versionMajor", "0",
+ "versionMinor", "1"
+ });
+ }
+
+} //trafficincidentsservicePackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsserviceFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsserviceFactory.java
new file mode 100755
index 0000000..9a31760
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsserviceFactory.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage
+ * @generated
+ */
+public interface trafficincidentsserviceFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ trafficincidentsserviceFactory eINSTANCE = org.genivi.trafficincidentsservice.impl.trafficincidentsserviceFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Traffic Incidents</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Traffic Incidents</em>'.
+ * @generated
+ */
+ TrafficIncidents createTrafficIncidents();
+
+ /**
+ * Returns a new object of class '<em>Traffic Incidents Listener</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Traffic Incidents Listener</em>'.
+ * @generated
+ */
+ TrafficIncidentsListener createTrafficIncidentsListener();
+
+ /**
+ * Returns a new object of class '<em>Traffic Incident Feed</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Traffic Incident Feed</em>'.
+ * @generated
+ */
+ TrafficIncidentFeed createTrafficIncidentFeed();
+
+ /**
+ * Returns a new object of class '<em>Traffic Incident Feed Listener</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Traffic Incident Feed Listener</em>'.
+ * @generated
+ */
+ TrafficIncidentFeedListener createTrafficIncidentFeedListener();
+
+ /**
+ * Returns a new object of class '<em>Feed Information</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Feed Information</em>'.
+ * @generated
+ */
+ FeedInformation createFeedInformation();
+
+ /**
+ * Returns a new object of class '<em>Category Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Category Definition</em>'.
+ * @generated
+ */
+ CategoryDefinition createCategoryDefinition();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ trafficincidentsservicePackage gettrafficincidentsservicePackage();
+
+} //trafficincidentsserviceFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsservicePackage.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsservicePackage.java
new file mode 100755
index 0000000..32c8aae
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/trafficincidentsservicePackage.java
@@ -0,0 +1,788 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsserviceFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface trafficincidentsservicePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "trafficincidentsservice";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.trafficinfo.trafficincidentsservice";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "trafficincidentsservice";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ trafficincidentsservicePackage eINSTANCE = org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentsImpl <em>Traffic Incidents</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentsImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidents()
+ * @generated
+ */
+ int TRAFFIC_INCIDENTS = 0;
+
+ /**
+ * The number of structural features of the '<em>Traffic Incidents</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENTS_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentsListenerImpl <em>Traffic Incidents Listener</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentsListenerImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentsListener()
+ * @generated
+ */
+ int TRAFFIC_INCIDENTS_LISTENER = 1;
+
+ /**
+ * The number of structural features of the '<em>Traffic Incidents Listener</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENTS_LISTENER_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedImpl <em>Traffic Incident Feed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentFeed()
+ * @generated
+ */
+ int TRAFFIC_INCIDENT_FEED = 2;
+
+ /**
+ * The number of structural features of the '<em>Traffic Incident Feed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT_FEED_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedListenerImpl <em>Traffic Incident Feed Listener</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedListenerImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentFeedListener()
+ * @generated
+ */
+ int TRAFFIC_INCIDENT_FEED_LISTENER = 3;
+
+ /**
+ * The number of structural features of the '<em>Traffic Incident Feed Listener</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRAFFIC_INCIDENT_FEED_LISTENER_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl <em>Feed Information</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.FeedInformationImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getFeedInformation()
+ * @generated
+ */
+ int FEED_INFORMATION = 4;
+
+ /**
+ * The feature id for the '<em><b>Data Provider Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEED_INFORMATION__DATA_PROVIDER_NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Protocol Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEED_INFORMATION__PROTOCOL_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Communication Channel Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME = 2;
+
+ /**
+ * The feature id for the '<em><b>Feed Status</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEED_INFORMATION__FEED_STATUS = 3;
+
+ /**
+ * The feature id for the '<em><b>Traffic Incidents Status</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS = 4;
+
+ /**
+ * The number of structural features of the '<em>Feed Information</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEED_INFORMATION_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl <em>Category Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getCategoryDefinition()
+ * @generated
+ */
+ int CATEGORY_DEFINITION = 5;
+
+ /**
+ * The feature id for the '<em><b>Localized Names</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_DEFINITION__LOCALIZED_NAMES = 0;
+
+ /**
+ * The feature id for the '<em><b>Category Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_DEFINITION__CATEGORY_ID = 1;
+
+ /**
+ * The feature id for the '<em><b>Icons</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_DEFINITION__ICONS = 2;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_DEFINITION__EXPRESSION = 3;
+
+ /**
+ * The number of structural features of the '<em>Category Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_DEFINITION_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.TrafficIncidentField <em>Traffic Incident Field</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentField
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentField()
+ * @generated
+ */
+ int TRAFFIC_INCIDENT_FIELD = 6;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.TextDetailLevel <em>Text Detail Level</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TextDetailLevel
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTextDetailLevel()
+ * @generated
+ */
+ int TEXT_DETAIL_LEVEL = 7;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus <em>Traffic Incident Feed Status</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentFeedStatus()
+ * @generated
+ */
+ int TRAFFIC_INCIDENT_FEED_STATUS = 8;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.TrafficIncidentsStatus <em>Traffic Incidents Status</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsStatus
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentsStatus()
+ * @generated
+ */
+ int TRAFFIC_INCIDENTS_STATUS = 9;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.SpeedUnit <em>Speed Unit</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.SpeedUnit
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getSpeedUnit()
+ * @generated
+ */
+ int SPEED_UNIT = 10;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.LengthUnit <em>Length Unit</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.LengthUnit
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getLengthUnit()
+ * @generated
+ */
+ int LENGTH_UNIT = 11;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.WeightUnit <em>Weight Unit</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.WeightUnit
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getWeightUnit()
+ * @generated
+ */
+ int WEIGHT_UNIT = 12;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.TrafficIncidents <em>Traffic Incidents</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Traffic Incidents</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidents
+ * @generated
+ */
+ EClass getTrafficIncidents();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.TrafficIncidentsListener <em>Traffic Incidents Listener</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Traffic Incidents Listener</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsListener
+ * @generated
+ */
+ EClass getTrafficIncidentsListener();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeed <em>Traffic Incident Feed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Traffic Incident Feed</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeed
+ * @generated
+ */
+ EClass getTrafficIncidentFeed();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeedListener <em>Traffic Incident Feed Listener</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Traffic Incident Feed Listener</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedListener
+ * @generated
+ */
+ EClass getTrafficIncidentFeedListener();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.FeedInformation <em>Feed Information</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Feed Information</em>'.
+ * @see org.genivi.trafficincidentsservice.FeedInformation
+ * @generated
+ */
+ EClass getFeedInformation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.FeedInformation#getDataProviderName <em>Data Provider Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data Provider Name</em>'.
+ * @see org.genivi.trafficincidentsservice.FeedInformation#getDataProviderName()
+ * @see #getFeedInformation()
+ * @generated
+ */
+ EAttribute getFeedInformation_DataProviderName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.FeedInformation#getProtocolName <em>Protocol Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Protocol Name</em>'.
+ * @see org.genivi.trafficincidentsservice.FeedInformation#getProtocolName()
+ * @see #getFeedInformation()
+ * @generated
+ */
+ EAttribute getFeedInformation_ProtocolName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.FeedInformation#getCommunicationChannelName <em>Communication Channel Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Communication Channel Name</em>'.
+ * @see org.genivi.trafficincidentsservice.FeedInformation#getCommunicationChannelName()
+ * @see #getFeedInformation()
+ * @generated
+ */
+ EAttribute getFeedInformation_CommunicationChannelName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.FeedInformation#getFeedStatus <em>Feed Status</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Feed Status</em>'.
+ * @see org.genivi.trafficincidentsservice.FeedInformation#getFeedStatus()
+ * @see #getFeedInformation()
+ * @generated
+ */
+ EAttribute getFeedInformation_FeedStatus();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.FeedInformation#getTrafficIncidentsStatus <em>Traffic Incidents Status</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Traffic Incidents Status</em>'.
+ * @see org.genivi.trafficincidentsservice.FeedInformation#getTrafficIncidentsStatus()
+ * @see #getFeedInformation()
+ * @generated
+ */
+ EAttribute getFeedInformation_TrafficIncidentsStatus();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficincidentsservice.CategoryDefinition <em>Category Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Category Definition</em>'.
+ * @see org.genivi.trafficincidentsservice.CategoryDefinition
+ * @generated
+ */
+ EClass getCategoryDefinition();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getLocalizedNamesList <em>Localized Names</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Localized Names</em>'.
+ * @see org.genivi.trafficincidentsservice.CategoryDefinition#getLocalizedNamesList()
+ * @see #getCategoryDefinition()
+ * @generated
+ */
+ EReference getCategoryDefinition_LocalizedNames();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getCategoryId <em>Category Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Category Id</em>'.
+ * @see org.genivi.trafficincidentsservice.CategoryDefinition#getCategoryId()
+ * @see #getCategoryDefinition()
+ * @generated
+ */
+ EAttribute getCategoryDefinition_CategoryId();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getIconsList <em>Icons</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Icons</em>'.
+ * @see org.genivi.trafficincidentsservice.CategoryDefinition#getIconsList()
+ * @see #getCategoryDefinition()
+ * @generated
+ */
+ EReference getCategoryDefinition_Icons();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficincidentsservice.CategoryDefinition#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Expression</em>'.
+ * @see org.genivi.trafficincidentsservice.CategoryDefinition#getExpression()
+ * @see #getCategoryDefinition()
+ * @generated
+ */
+ EAttribute getCategoryDefinition_Expression();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.TrafficIncidentField <em>Traffic Incident Field</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Traffic Incident Field</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentField
+ * @generated
+ */
+ EEnum getTrafficIncidentField();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.TextDetailLevel <em>Text Detail Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Text Detail Level</em>'.
+ * @see org.genivi.trafficincidentsservice.TextDetailLevel
+ * @generated
+ */
+ EEnum getTextDetailLevel();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus <em>Traffic Incident Feed Status</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Traffic Incident Feed Status</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus
+ * @generated
+ */
+ EEnum getTrafficIncidentFeedStatus();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.TrafficIncidentsStatus <em>Traffic Incidents Status</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Traffic Incidents Status</em>'.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsStatus
+ * @generated
+ */
+ EEnum getTrafficIncidentsStatus();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.SpeedUnit <em>Speed Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Speed Unit</em>'.
+ * @see org.genivi.trafficincidentsservice.SpeedUnit
+ * @generated
+ */
+ EEnum getSpeedUnit();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.LengthUnit <em>Length Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Length Unit</em>'.
+ * @see org.genivi.trafficincidentsservice.LengthUnit
+ * @generated
+ */
+ EEnum getLengthUnit();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.WeightUnit <em>Weight Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Weight Unit</em>'.
+ * @see org.genivi.trafficincidentsservice.WeightUnit
+ * @generated
+ */
+ EEnum getWeightUnit();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ trafficincidentsserviceFactory gettrafficincidentsserviceFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentsImpl <em>Traffic Incidents</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentsImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidents()
+ * @generated
+ */
+ EClass TRAFFIC_INCIDENTS = eINSTANCE.getTrafficIncidents();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentsListenerImpl <em>Traffic Incidents Listener</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentsListenerImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentsListener()
+ * @generated
+ */
+ EClass TRAFFIC_INCIDENTS_LISTENER = eINSTANCE.getTrafficIncidentsListener();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedImpl <em>Traffic Incident Feed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentFeed()
+ * @generated
+ */
+ EClass TRAFFIC_INCIDENT_FEED = eINSTANCE.getTrafficIncidentFeed();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedListenerImpl <em>Traffic Incident Feed Listener</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.TrafficIncidentFeedListenerImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentFeedListener()
+ * @generated
+ */
+ EClass TRAFFIC_INCIDENT_FEED_LISTENER = eINSTANCE.getTrafficIncidentFeedListener();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.impl.FeedInformationImpl <em>Feed Information</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.FeedInformationImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getFeedInformation()
+ * @generated
+ */
+ EClass FEED_INFORMATION = eINSTANCE.getFeedInformation();
+
+ /**
+ * The meta object literal for the '<em><b>Data Provider Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEED_INFORMATION__DATA_PROVIDER_NAME = eINSTANCE.getFeedInformation_DataProviderName();
+
+ /**
+ * The meta object literal for the '<em><b>Protocol Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEED_INFORMATION__PROTOCOL_NAME = eINSTANCE.getFeedInformation_ProtocolName();
+
+ /**
+ * The meta object literal for the '<em><b>Communication Channel Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEED_INFORMATION__COMMUNICATION_CHANNEL_NAME = eINSTANCE.getFeedInformation_CommunicationChannelName();
+
+ /**
+ * The meta object literal for the '<em><b>Feed Status</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEED_INFORMATION__FEED_STATUS = eINSTANCE.getFeedInformation_FeedStatus();
+
+ /**
+ * The meta object literal for the '<em><b>Traffic Incidents Status</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEED_INFORMATION__TRAFFIC_INCIDENTS_STATUS = eINSTANCE.getFeedInformation_TrafficIncidentsStatus();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl <em>Category Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.impl.CategoryDefinitionImpl
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getCategoryDefinition()
+ * @generated
+ */
+ EClass CATEGORY_DEFINITION = eINSTANCE.getCategoryDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>Localized Names</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CATEGORY_DEFINITION__LOCALIZED_NAMES = eINSTANCE.getCategoryDefinition_LocalizedNames();
+
+ /**
+ * The meta object literal for the '<em><b>Category Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CATEGORY_DEFINITION__CATEGORY_ID = eINSTANCE.getCategoryDefinition_CategoryId();
+
+ /**
+ * The meta object literal for the '<em><b>Icons</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CATEGORY_DEFINITION__ICONS = eINSTANCE.getCategoryDefinition_Icons();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CATEGORY_DEFINITION__EXPRESSION = eINSTANCE.getCategoryDefinition_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.TrafficIncidentField <em>Traffic Incident Field</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentField
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentField()
+ * @generated
+ */
+ EEnum TRAFFIC_INCIDENT_FIELD = eINSTANCE.getTrafficIncidentField();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.TextDetailLevel <em>Text Detail Level</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TextDetailLevel
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTextDetailLevel()
+ * @generated
+ */
+ EEnum TEXT_DETAIL_LEVEL = eINSTANCE.getTextDetailLevel();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus <em>Traffic Incident Feed Status</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentFeedStatus()
+ * @generated
+ */
+ EEnum TRAFFIC_INCIDENT_FEED_STATUS = eINSTANCE.getTrafficIncidentFeedStatus();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.TrafficIncidentsStatus <em>Traffic Incidents Status</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsStatus
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getTrafficIncidentsStatus()
+ * @generated
+ */
+ EEnum TRAFFIC_INCIDENTS_STATUS = eINSTANCE.getTrafficIncidentsStatus();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.SpeedUnit <em>Speed Unit</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.SpeedUnit
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getSpeedUnit()
+ * @generated
+ */
+ EEnum SPEED_UNIT = eINSTANCE.getSpeedUnit();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.LengthUnit <em>Length Unit</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.LengthUnit
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getLengthUnit()
+ * @generated
+ */
+ EEnum LENGTH_UNIT = eINSTANCE.getLengthUnit();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.WeightUnit <em>Weight Unit</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.WeightUnit
+ * @see org.genivi.trafficincidentsservice.impl.trafficincidentsservicePackageImpl#getWeightUnit()
+ * @generated
+ */
+ EEnum WEIGHT_UNIT = eINSTANCE.getWeightUnit();
+
+ }
+
+} //trafficincidentsservicePackage
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceAdapterFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceAdapterFactory.java
new file mode 100755
index 0000000..5aede9d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceAdapterFactory.java
@@ -0,0 +1,219 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficincidentsservice.*;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage
+ * @generated
+ */
+public class trafficincidentsserviceAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static trafficincidentsservicePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentsserviceAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = trafficincidentsservicePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected trafficincidentsserviceSwitch<Adapter> modelSwitch =
+ new trafficincidentsserviceSwitch<Adapter>() {
+ @Override
+ public Adapter caseTrafficIncidents(TrafficIncidents object) {
+ return createTrafficIncidentsAdapter();
+ }
+ @Override
+ public Adapter caseTrafficIncidentsListener(TrafficIncidentsListener object) {
+ return createTrafficIncidentsListenerAdapter();
+ }
+ @Override
+ public Adapter caseTrafficIncidentFeed(TrafficIncidentFeed object) {
+ return createTrafficIncidentFeedAdapter();
+ }
+ @Override
+ public Adapter caseTrafficIncidentFeedListener(TrafficIncidentFeedListener object) {
+ return createTrafficIncidentFeedListenerAdapter();
+ }
+ @Override
+ public Adapter caseFeedInformation(FeedInformation object) {
+ return createFeedInformationAdapter();
+ }
+ @Override
+ public Adapter caseCategoryDefinition(CategoryDefinition object) {
+ return createCategoryDefinitionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.TrafficIncidents <em>Traffic Incidents</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidents
+ * @generated
+ */
+ public Adapter createTrafficIncidentsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.TrafficIncidentsListener <em>Traffic Incidents Listener</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentsListener
+ * @generated
+ */
+ public Adapter createTrafficIncidentsListenerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeed <em>Traffic Incident Feed</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeed
+ * @generated
+ */
+ public Adapter createTrafficIncidentFeedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.TrafficIncidentFeedListener <em>Traffic Incident Feed Listener</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.TrafficIncidentFeedListener
+ * @generated
+ */
+ public Adapter createTrafficIncidentFeedListenerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.CategoryDefinition <em>Category Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.CategoryDefinition
+ * @generated
+ */
+ public Adapter createCategoryDefinitionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficincidentsservice.FeedInformation <em>Feed Information</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficincidentsservice.FeedInformation
+ * @generated
+ */
+ public Adapter createFeedInformationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //trafficincidentsserviceAdapterFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceSwitch.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceSwitch.java
new file mode 100755
index 0000000..151d363
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidentsservice-model/src/org/genivi/trafficincidentsservice/util/trafficincidentsserviceSwitch.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.genivi.trafficincidentsservice.*;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentsservicePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidentsservicePackage
+ * @generated
+ */
+public class trafficincidentsserviceSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static trafficincidentsservicePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidentsserviceSwitch() {
+ if (modelPackage == null) {
+ modelPackage = trafficincidentsservicePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENTS: {
+ TrafficIncidents trafficIncidents = (TrafficIncidents)theEObject;
+ T result = caseTrafficIncidents(trafficIncidents);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENTS_LISTENER: {
+ TrafficIncidentsListener trafficIncidentsListener = (TrafficIncidentsListener)theEObject;
+ T result = caseTrafficIncidentsListener(trafficIncidentsListener);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FEED: {
+ TrafficIncidentFeed trafficIncidentFeed = (TrafficIncidentFeed)theEObject;
+ T result = caseTrafficIncidentFeed(trafficIncidentFeed);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentsservicePackage.TRAFFIC_INCIDENT_FEED_LISTENER: {
+ TrafficIncidentFeedListener trafficIncidentFeedListener = (TrafficIncidentFeedListener)theEObject;
+ T result = caseTrafficIncidentFeedListener(trafficIncidentFeedListener);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentsservicePackage.FEED_INFORMATION: {
+ FeedInformation feedInformation = (FeedInformation)theEObject;
+ T result = caseFeedInformation(feedInformation);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case trafficincidentsservicePackage.CATEGORY_DEFINITION: {
+ CategoryDefinition categoryDefinition = (CategoryDefinition)theEObject;
+ T result = caseCategoryDefinition(categoryDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Traffic Incidents</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Traffic Incidents</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrafficIncidents(TrafficIncidents object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Traffic Incidents Listener</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Traffic Incidents Listener</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrafficIncidentsListener(TrafficIncidentsListener object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Traffic Incident Feed</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Traffic Incident Feed</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrafficIncidentFeed(TrafficIncidentFeed object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Traffic Incident Feed Listener</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Traffic Incident Feed Listener</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTrafficIncidentFeedListener(TrafficIncidentFeedListener object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Feed Information</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Feed Information</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeedInformation(FeedInformation object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Category Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Category Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCategoryDefinition(CategoryDefinition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //trafficincidentsserviceSwitch
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.classpath b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.classpath
new file mode 100755
index 0000000..1af8d0d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.project b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.project
new file mode 100755
index 0000000..832ce98
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsservice.trafficincidenttables-model</name>
+ <comment>This project contains the data model for GENIVI Traffic Incidents. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/META-INF/MANIFEST.MF b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..c37d016
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.trafficinfo.trafficincidenttables;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.basetypes-model
+Export-Package: org.genivi.trafficincidentsservice.trafficincidenttables,
+ org.genivi.trafficincidentsservice.trafficincidenttables.impl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/ReadMe.confluence
new file mode 100755
index 0000000..cfae46e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/ReadMe.confluence
@@ -0,0 +1,3 @@
+This project defines the tables that are used in the Traffic Incident definitions of both the TrafficIncidents interface and the TrafficIncidentFeed interface.
+
+TrafficIncidentTables.ecorediag, in de model folder, provides a good overview of the tables. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/build.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore
new file mode 100755
index 0000000..50653df
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecore
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="trafficincidenttables" nsURI="http://org.genivi.trafficinfo.trafficincidenttables"
+ nsPrefix="TrafficIncidentTables">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EEnum" name="EffectCode">
+ <eLiterals name="TRAFFIC_FLOW_UNKNOWN" value="1"/>
+ <eLiterals name="FREE_TRAFFIC_FLOW" value="2"/>
+ <eLiterals name="HEAVY_TRAFFIC" value="3" literal="HEAVY_TRAFFIC"/>
+ <eLiterals name="SLOW_TRAFFIC" value="4"/>
+ <eLiterals name="QUEUING_TRAFFIC" value="5"/>
+ <eLiterals name="STATIONARY_TRAFFIC" value="6"/>
+ <eLiterals name="NO_TRAFFIC_FLOW" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Tendency">
+ <eLiterals name="SLIGHTLY_INCREASING" value="1"/>
+ <eLiterals name="INCREASING" value="2"/>
+ <eLiterals name="STRONGLY_INCREASING" value="3"/>
+ <eLiterals name="SLIGHTLY_DECREASING" value="4"/>
+ <eLiterals name="DECREASING" value="5"/>
+ <eLiterals name="STRONGLY_DECREASING" value="6"/>
+ <eLiterals name="CONSTANT" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CauseCode">
+ <eLiterals name="TRAFFIC_CONGESTION" value="1"/>
+ <eLiterals name="ACCIDENT" value="2"/>
+ <eLiterals name="ROADWORKS" value="3"/>
+ <eLiterals name="NARROW_LANES" value="4"/>
+ <eLiterals name="IMPASSIBILITY" value="5"/>
+ <eLiterals name="SLIPPERY_ROAD" value="6"/>
+ <eLiterals name="AQUAPLANING" value="7"/>
+ <eLiterals name="FIRE" value="8"/>
+ <eLiterals name="HAZARDOUS_DRIVING_CONDITIONS" value="9"/>
+ <eLiterals name="OBJECTS_ON_THE_ROAD" value="10"/>
+ <eLiterals name="ANIMALS_ON_ROADWAY" value="11"/>
+ <eLiterals name="PEOPLE_ON_ROADWAY" value="12"/>
+ <eLiterals name="BROKEN_DOWN_VEHICLES" value="13"/>
+ <eLiterals name="VEHICLE_ON_WRONG_CARRIAGEWAY" value="14"/>
+ <eLiterals name="RESCUE_AND_RECOVERY_WORK_IN_PROGRESS" value="15"/>
+ <eLiterals name="REGULATORY_MEASURE" value="16"/>
+ <eLiterals name="EXTREME_WEATHER_CONDITIONS" value="17"/>
+ <eLiterals name="VISIBILITY_REDUCED" value="18"/>
+ <eLiterals name="PRECIPITATION" value="19"/>
+ <eLiterals name="RECKLESS_PERSONS" value="20"/>
+ <eLiterals name="OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED" value="21"/>
+ <eLiterals name="TRAFFIC_REGULATIONS_CHANGED" value="22"/>
+ <eLiterals name="MAJOR_EVENT" value="23"/>
+ <eLiterals name="SERVICE_NOT_OPERATING" value="24"/>
+ <eLiterals name="SERVICE_NOT_USEABLE" value="25"/>
+ <eLiterals name="SLOW_MOVING_VEHICLES" value="26"/>
+ <eLiterals name="DANGEROUS_END_OF_QUEUE" value="27"/>
+ <eLiterals name="RISK_OF_FIRE" value="28"/>
+ <eLiterals name="TIME_DELAY" value="29"/>
+ <eLiterals name="POLICE_CHECKPOINT" value="30"/>
+ <eLiterals name="MALFUNCTIONING_ROADSIDE_EQUIPMENT" value="31"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="WarningLevel">
+ <eLiterals name="INFORMATIVE" value="1"/>
+ <eLiterals name="DANGER_LEVEL_1" value="2"/>
+ <eLiterals name="DANGER_LEVEL_2" value="3"/>
+ <eLiterals name="DANGER_LEVEL_3" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrafficCongestion">
+ <eLiterals name="INCREASED_VOLUME_OF_TRAFFIC" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Accident">
+ <eLiterals name="MULTI_VEHICLE_ACCIDENT" value="1"/>
+ <eLiterals name="HEAVY_ACCIDENT" value="2"/>
+ <eLiterals name="ACCIDENT_INVOLVING_LORRY" value="3"/>
+ <eLiterals name="ACCIDENT_INVOLVING_BUS" value="4"/>
+ <eLiterals name="ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS" value="5"/>
+ <eLiterals name="ACCIDENT_ON_OPPOSITE_LANE" value="6"/>
+ <eLiterals name="UNSECURED_ACCIDENT" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RoadWorks">
+ <eLiterals name="MAJOR_ROADWORKS" value="1"/>
+ <eLiterals name="ROAD_MARKING_WORK" value="2"/>
+ <eLiterals name="SLOW_MOVING_ROAD_MAINTENANCE" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="NarrowLanes">
+ <eLiterals name="CONTRAFLOW" value="1"/>
+ <eLiterals name="HARD_SHOULDER_CLOSED" value="2"/>
+ <eLiterals name="SLIP_LANE_CLOSED" value="3"/>
+ <eLiterals name="CRAWLER_LANE_CLOSED" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Impassibility">
+ <eLiterals name="FLOODING" value="1"/>
+ <eLiterals name="DANGER_OF_AVALANCHES" value="2"/>
+ <eLiterals name="BLASTING_OF_AVALANCHES" value="3"/>
+ <eLiterals name="LANDSLIPS" value="4"/>
+ <eLiterals name="CHEMICAL_SPILLAGE" value="5"/>
+ <eLiterals name="WINTER_CLOSURE" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SlipperyRoad">
+ <eLiterals name="HEAVY_FROST_ON_ROAD" value="1"/>
+ <eLiterals name="FUEL_ON_ROAD" value="2"/>
+ <eLiterals name="MUD_ON_ROAD" value="3"/>
+ <eLiterals name="SNOW_ON_ROAD" value="4"/>
+ <eLiterals name="ICE_ON_ROAD" value="5"/>
+ <eLiterals name="BLACK_ICE_ON_ROAD" value="6"/>
+ <eLiterals name="OIL_ON_ROAD" value="7"/>
+ <eLiterals name="LOOSE_CHIPPINGS" value="8"/>
+ <eLiterals name="INSTANT_BLACK_ICE" value="9"/>
+ <eLiterals name="ROADS_SALTED" value="10"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Fire">
+ <eLiterals name="MAJOR_FIRE" value="1"/>
+ <eLiterals name="FOREST_FIRE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="HazardousDrivingConditions">
+ <eLiterals name="ROCKFALLS" value="1"/>
+ <eLiterals name="EARTHQUAKE_DAMAGE" value="2"/>
+ <eLiterals name="SEWER_COLLAPSE" value="3"/>
+ <eLiterals name="SUBSIDENCE" value="4"/>
+ <eLiterals name="SNOW_DRIFTS" value="5"/>
+ <eLiterals name="STORM_DAMAGE" value="6"/>
+ <eLiterals name="BURST_PIPE" value="7"/>
+ <eLiterals name="VOLCANO_ERUPTION" value="8"/>
+ <eLiterals name="FALLING_ICE" value="9"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ObjectsOnTheRoad">
+ <eLiterals name="SHED_LOAD" value="1"/>
+ <eLiterals name="PARTS_OF_VEHICLES" value="2"/>
+ <eLiterals name="PARTS_OF_TYRES" value="3"/>
+ <eLiterals name="BIG_OBJECTS" value="4"/>
+ <eLiterals name="FALLEN_TREES" value="5"/>
+ <eLiterals name="HUB_CAPS" value="6"/>
+ <eLiterals name="WAITING_VEHICLES" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AnimalsOnRoadway">
+ <eLiterals name="WILD_ANIMALS" value="1"/>
+ <eLiterals name="HERD_OF_ANIMALS" value="2"/>
+ <eLiterals name="SMALL_ANIMALS" value="3"/>
+ <eLiterals name="LARGE_ANIMALS" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="PeopleOnRoadway">
+ <eLiterals name="CHILDREN_ON_ROADWAY" value="1"/>
+ <eLiterals name="CYCLISTS_ON_ROADWAY" value="2"/>
+ <eLiterals name="MOTOR_CYCLIST_ON_ROADWAY" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="BrokenDownVehicles">
+ <eLiterals name="BROKEN_DOWN_VEHICLE_BURNING" value="1"/>
+ <eLiterals name="BROKEN_DOWN_UNLIT_VEHICLE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RescueAndRecoveryWorkInProgress">
+ <eLiterals name="EMERGENCY_VEHICLES" value="1"/>
+ <eLiterals name="RESCUE_HELICOPTER_LANDING" value="2"/>
+ <eLiterals name="POLICE_ACTIVITY_ONGOING" value="3"/>
+ <eLiterals name="MEDICAL_EMERGENCY_ONGOING" value="4"/>
+ <eLiterals name="CHILD_ABDUCTION_IN_PROGRESS" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RegulatoryMeasure">
+ <eLiterals name="SECURITY_ALERT" value="1"/>
+ <eLiterals name="CONTAGIOUS_DISEASE" value="2"/>
+ <eLiterals name="ENVIRONMENTAL" value="3"/>
+ <eLiterals name="SMOG_ALERT" value="4"/>
+ <eLiterals name="BATCH_SERVICE_IN_PROGRESS" value="5"/>
+ <eLiterals name="ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LaneRestrictionType">
+ <eLiterals name="LANES_CLOSED" value="1"/>
+ <eLiterals name="LANES_OPEN" value="2"/>
+ <eLiterals name="RIGHT_LANES_CLOSED" value="3"/>
+ <eLiterals name="LEFT_LANES_CLOSED" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AdviceCode">
+ <eLiterals name="DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE" value="1"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED" value="2"/>
+ <eLiterals name="DRIVING_NOT_ALLOWED" value="3"/>
+ <eLiterals name="USE_HARD_SHOULDER_AS_LANE" value="4"/>
+ <eLiterals name="WAIT_FOR_POLICE_PATROL" value="5"/>
+ <eLiterals name="WAIT_FOR_IMPROVED_WEATHER" value="6"/>
+ <eLiterals name="GIVING_PATH_VEHICLES_COMING_FROM_BEHIND" value="7"/>
+ <eLiterals name="FOLLOW_DIVERSION" value="8"/>
+ <eLiterals name="NO_DIVERSION_TO_RECOMMEND" value="9"/>
+ <eLiterals name="DO_NOT_DIVERT" value="10"/>
+ <eLiterals name="FOLLOW_POLICE_INSTRUCTIONS" value="11"/>
+ <eLiterals name="AVOID_THE_AREA" value="12"/>
+ <eLiterals name="DRIVE_CAREFULLY" value="13"/>
+ <eLiterals name="DO_NOT_LEAVE_YOUR_VEHICLE" value="14"/>
+ <eLiterals name="SWITCH_ON_RADIO" value="15"/>
+ <eLiterals name="USE_TOLL_LANES" value="16"/>
+ <eLiterals name="WAIT_FOR_CONVOI" value="17"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VehicleType">
+ <eLiterals name="CAR" value="1"/>
+ <eLiterals name="LORRY" value="2"/>
+ <eLiterals name="BUS" value="3"/>
+ <eLiterals name="TAXI" value="4"/>
+ <eLiterals name="TRAIN" value="5"/>
+ <eLiterals name="MOTOR_CYCLE" value="6"/>
+ <eLiterals name="VEHICLE_WITH_TRAILER" value="7"/>
+ <eLiterals name="MOTOR_VEHICLES" value="8"/>
+ <eLiterals name="TRANSPORT_OF_DANGEROUS_GOODS" value="9"/>
+ <eLiterals name="TRANSPORT_OF_ABNORMAL_LOAD" value="10"/>
+ <eLiterals name="HEAVY_VEHICLE" value="11"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RestrictionType">
+ <eLiterals name="WIDTH_LESS_THAN" value="1"/>
+ <eLiterals name="WIDTH_GREATER_THAN" value="2"/>
+ <eLiterals name="HEIGTH_LESS_THAN" value="3"/>
+ <eLiterals name="HEIGTH_GREATER_THAN" value="4"/>
+ <eLiterals name="WEIGHT_LESS_THAN" value="5"/>
+ <eLiterals name="WEIGHT_GREATER_THAN" value="6"/>
+ <eLiterals name="WITHOUT_WINTER_TYRE" value="7"/>
+ <eLiterals name="WITHOUT_SNOW_CHAIN" value="8"/>
+ <eLiterals name="WITH_TRAILER" value="9"/>
+ <eLiterals name="WITH_CARAVAN" value="10"/>
+ <eLiterals name="PERSONS_IN_VEHICLE_LESS_THAN" value="11"/>
+ <eLiterals name="PERSONS_IN_VEHICLE_MORE_THAN" value="12"/>
+ <eLiterals name="EVEN_NUMBER_PLATE" value="13"/>
+ <eLiterals name="ODD_NUMBER_PLATE" value="14"/>
+ <eLiterals name="LENGTH_LESS_THAN" value="15"/>
+ <eLiterals name="LENGTH_GREATER_THAN" value="16"/>
+ <eLiterals name="AXLE_LOAD_LESS_THAN" value="17"/>
+ <eLiterals name="AXLE_LOAD_GREATER_THAN" value="18"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3" value="19"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4" value="20"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4" value="21"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5" value="22"/>
+ <eLiterals name="WITH_PETROL_ENGINE" value="23"/>
+ <eLiterals name="WITH_DIESEL_ENGINE" value="24"/>
+ <eLiterals name="WITH_LPG_ENGINE" value="25"/>
+ <eLiterals name="THROUGH_TRAFFIC" value="26"/>
+ <eLiterals name="RESIDENTS_TRAFFIC" value="27"/>
+ <eLiterals name="WITH_DESTINATION_IN_GIVEN_AREA" value="28"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ExtremeWeatherConditions">
+ <eLiterals name="STRONG_WINDS" value="1"/>
+ <eLiterals name="DAMAGING_HAIL" value="2"/>
+ <eLiterals name="HURRICANE" value="3"/>
+ <eLiterals name="THUNDERSTORM" value="4"/>
+ <eLiterals name="TORNADO" value="5"/>
+ <eLiterals name="BLIZARD" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VisibilityReduced">
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_FOG" value="1"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_SMOKE" value="2"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL" value="3"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN" value="4"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL" value="5"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE" value="6"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_SANDSTORMS" value="7"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Precipitation">
+ <eLiterals name="HEAVY_RAIN" value="1"/>
+ <eLiterals name="HEAVY_SNOWFALL" value="2"/>
+ <eLiterals name="SOFT_HAIL" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RecklessPersons">
+ <eLiterals name="RECKLESS_DRIVER" value="1"/>
+ <eLiterals name="GUNFIRE_ON_ROAD" value="2"/>
+ <eLiterals name="STONE_THROWING_PERSONS" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MajorEvent">
+ <eLiterals name="SPORTS_EVENT" value="1"/>
+ <eLiterals name="DEMONSTRATION" value="2"/>
+ <eLiterals name="DEMONSTRATION_WITH_VEHICLES" value="3"/>
+ <eLiterals name="CONCERT" value="4"/>
+ <eLiterals name="FAIR" value="5"/>
+ <eLiterals name="MILITARY_TRAINING" value="6"/>
+ <eLiterals name="EMERGENCY_TRAINING" value="7"/>
+ <eLiterals name="FESTIVITY" value="8"/>
+ <eLiterals name="PROCESSION" value="9"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ServiceNotOperating">
+ <eLiterals name="FERRY_SERVICE_NOT_OPERATING" value="1"/>
+ <eLiterals name="PLANE_SERVICE_NOT_OPERATING" value="2"/>
+ <eLiterals name="TRAIN_SERVICE_NOT_OPERATING" value="3"/>
+ <eLiterals name="BUS_SERVICE_NOT_OPERATING" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ServiceNotUsable">
+ <eLiterals name="FUEL_STATION_CLOSED" value="1"/>
+ <eLiterals name="SERVICE_AREA_CLOSED" value="2"/>
+ <eLiterals name="SERVICE_AREA_BUSY" value="3"/>
+ <eLiterals name="PARKING_FULL" value="4"/>
+ <eLiterals name="CAR_PARK_CLOSED" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SlowMovingVehicles">
+ <eLiterals name="SLOW_MOVING_MAINTENANCE_VEHICLE" value="1"/>
+ <eLiterals name="VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT" value="2"/>
+ <eLiterals name="ABNORMAL_LOAD" value="3"/>
+ <eLiterals name="ABNORMAL_WIDE_LOAD" value="4"/>
+ <eLiterals name="CONVOY" value="5"/>
+ <eLiterals name="SNOWPLOUGH" value="6"/>
+ <eLiterals name="DEICING" value="7"/>
+ <eLiterals name="SALTING_VEHICLES" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DangerousEndOfQueue">
+ <eLiterals name="SUDDEN_END_OF_QUEUE" value="1"/>
+ <eLiterals name="QUEUE_OVER_HILL" value="2"/>
+ <eLiterals name="QUEUE_AROUND_BEND" value="3"/>
+ <eLiterals name="QUEUE_IN_TUNNEL" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RiskOfFire">
+ <eLiterals name="LEAKAGE_OF_FUEL" value="1"/>
+ <eLiterals name="LEAKAGE_OF_GAS" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TimeDelay">
+ <eLiterals name="TIME_DELAY_AT_FRONTIER" value="1"/>
+ <eLiterals name="TIME_DELAY_AT_FERRY_PORT" value="2"/>
+ <eLiterals name="TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="PoliceCheckpoint">
+ <eLiterals name="PERMANENT_POLICE_CHECKPOINT" value="1"/>
+ <eLiterals name="TEMPORARY_POLICE_CHECKPOINT" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MalfunctioningRoadsideEquipment">
+ <eLiterals name="ROAD_RAIL_CROSSING_FAILURE" value="1"/>
+ <eLiterals name="TUNNEL_VENTILATION_NOT_WORKING" value="2"/>
+ <eLiterals name="TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY" value="3"/>
+ <eLiterals name="EMERGENCY_TELEPHONES_NOT_WORKING" value="4"/>
+ <eLiterals name="AUTOMATIC_PAYMENT_LANES_NOT_WORKING" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="OvertakingNotAllowed">
+ <eLiterals name="DO_NOT_USE_OVERTAKING_LANES" value="1"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE" value="2"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE" value="3"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DrivingNotAllowed">
+ <eLiterals name="DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE"
+ value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GivingPathVehiclesFromBehind">
+ <eLiterals name="GIVING_PATH_FOR_RESCUE_VEHICLE" value="1"/>
+ <eLiterals name="GIVING_PATH_FOR_SERVICE_VEHICLES" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FollowDiversion">
+ <eLiterals name="FOLLOW_DIVERSION_SIGNS" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DriveCarefully">
+ <eLiterals name="DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD" value="1"/>
+ <eLiterals name="DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD" value="2"/>
+ <eLiterals name="DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DoNotLeaveYourVehicle">
+ <eLiterals name="DO_NOT_LEAVE_YOUR_VEHICLE" value="1"/>
+ <eLiterals name="DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="UseTollLanes">
+ <eLiterals name="USE_MANUAL_PAYMENT_TOLL_LANES" value="1"/>
+ <eLiterals name="USE_AUTOMATIC_PAYMENT_TOLL_LANES" value="2"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecorediag b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecorediag
new file mode 100755
index 0000000..2b348d7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.ecorediag
@@ -0,0 +1,1726 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Mlnn8T8-EeCZw9yYN1vKNg" type="EcoreTools" name="TrafficIncidentTables.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_TAWhoFoXEeC3H6JlN9FMhA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_TAWho1oXEeC3H6JlN9FMhA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_TAWhpFoXEeC3H6JlN9FMhA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Vl61sFoXEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/TRAFFIC_FLOW_UNKNOWN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vl61sVoXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_c5zTAFoXEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/FREE_TRAFFIC_FLOW"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c5zTAVoXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_G6fGkFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/HEAVY_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G6fGkVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MUXVUFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/SLOW_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MUXVUVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QvTPkFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/QUEUING_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QvTPkVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-7A5IFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/STATIONARY_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-7A5IVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_D3Z6oFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//EffectCode/NO_TRAFFIC_FLOW"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D3Z6oVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_TAWhpVoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TAWhploXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TAWhp1oXEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_TAWhoVoXEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//EffectCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TAWholoXEeC3H6JlN9FMhA" x="24" y="48"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ehxrgFoZEeC3H6JlN9FMhA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_ehxrg1oZEeC3H6JlN9FMhA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_ehxrhFoZEeC3H6JlN9FMhA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_iR8xgFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/SLIGHTLY_INCREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iR8xgVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mw7eQFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/INCREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mw7eQVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sMRsoFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/STRONGLY_INCREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sMRsoVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wbAW4FoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/SLIGHTLY_DECREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wbAW4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1vqHYFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/DECREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1vqHYVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ac-IFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/STRONGLY_DECREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ac-IVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__hCh4FoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Tendency/CONSTANT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__hCh4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ehxrhVoZEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ehxrhloZEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ehxrh1oZEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ehxrgVoZEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//Tendency"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ehxrgloZEeC3H6JlN9FMhA" x="492" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4XKfsFoaEeC3H6JlN9FMhA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_4XKfs1oaEeC3H6JlN9FMhA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_4XKftFoaEeC3H6JlN9FMhA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_9erMEFoaEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/TRAFFIC_CONGESTION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9erMEVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AwHusFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/ACCIDENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AwHusVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Cn-BIFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/ROADWORKS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cn-BIVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EtY1gFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/NARROW_LANES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EtY1gVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_H6XH0FobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/IMPASSIBILITY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H6XH0VobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Laj4IFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/SLIPPERY_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj4IVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_203rcVqnEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/AQUAPLANING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_203rclqnEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8iU9gFqnEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8iU9gVqnEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-y3cwFqnEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/HAZARDOUS_DRIVING_CONDITIONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-y3cwVqnEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EZcDsFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/OBJECTS_ON_THE_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EZcDsVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IoNxQFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/ANIMALS_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IoNxQVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L516EFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/PEOPLE_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L516EVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PSDMAFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/BROKEN_DOWN_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSDMAVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VkQJ4FqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/VEHICLE_ON_WRONG_CARRIAGEWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkQJ4VqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bBrb4FqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/RESCUE_AND_RECOVERY_WORK_IN_PROGRESS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bBrb4VqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GU9fwFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/REGULATORY_MEASURE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GU9fwVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NNIRcFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/EXTREME_WEATHER_CONDITIONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NNIRcVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TbKhAFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/VISIBILITY_REDUCED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TbKhAVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZPpoIFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/PRECIPITATION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZPpoIVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fWg4sFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/RECKLESS_PERSONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fWg4sVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nwjFwFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nwjFwVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xdzOMFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/TRAFFIC_REGULATIONS_CHANGED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xdzOMVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3oenwFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/MAJOR_EVENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3oenwVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7O1DYFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/SERVICE_NOT_OPERATING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7O1DYVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__1RqEFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/SERVICE_NOT_USEABLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__1RqEVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_F7BgUFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/SLOW_MOVING_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F7BgUVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L7ZuYFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/DANGEROUS_END_OF_QUEUE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L7ZuYVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ts24gFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/RISK_OF_FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ts24gVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Z_6K8FqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/TIME_DELAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z_6K8VqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gR5tcFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/POLICE_CHECKPOINT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gR5tcVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_q5RUwFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//CauseCode/MALFUNCTIONING_ROADSIDE_EQUIPMENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q5RUwVqqEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4XKftVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4XKftloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4XKft1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4XKfsVoaEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//CauseCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4XKfsloaEeC3H6JlN9FMhA" x="24" y="312"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qWg7EFqsEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_qWg7E1qsEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_qWg7FFqsEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_t9vgcFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//WarningLevel/INFORMATIVE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t9vgcVqsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yiXiMFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//WarningLevel/DANGER_LEVEL_1"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yiXiMVqsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ChcgFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//WarningLevel/DANGER_LEVEL_2"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ChcgVqsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9D5AMFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//WarningLevel/DANGER_LEVEL_3"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9D5AMVqsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_qWg7FVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qWg7FlqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qWg7F1qsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_qWg7EVqsEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//WarningLevel"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWg7ElqsEeCUVO0erQdu-A" x="744" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6n3XwFquEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_6n3Xw1quEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_6n3XxFquEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_92l9kFquEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//TrafficCongestion/INCREASED_VOLUME_OF_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_92l9kVquEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6n3XxVquEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6n3XxlquEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6n3Xx1quEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6n3XwVquEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//TrafficCongestion"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6n3XwlquEeCUVO0erQdu-A" x="372" y="312"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8ujiAFqvEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_8ujiA1qvEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_8ujiBFqvEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Ap9AkFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RoadWorks/MAJOR_ROADWORKS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ap9AkVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HPoUEFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RoadWorks/ROAD_MARKING_WORK"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HPoUEVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OVRhEFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RoadWorks/SLOW_MOVING_ROAD_MAINTENANCE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OVRhEVqwEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8ujiBVqvEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8ujiBlqvEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8ujiB1qvEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_8ujiAVqvEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//RoadWorks"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8ujiAlqvEeCUVO0erQdu-A" x="372" y="552"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZH2S0FqwEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_ZH2S01qwEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_ZH2S1FqwEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_bkJ9MFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//NarrowLanes/CONTRAFLOW"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bkJ9MVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iVwM0FqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//NarrowLanes/HARD_SHOULDER_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVwM0VqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4TOJsFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//NarrowLanes/SLIP_LANE_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4TOJsVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9_a3gFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//NarrowLanes/CRAWLER_LANE_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9_a3gVqwEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZH2S1VqwEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZH2S1lqwEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZH2S11qwEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZH2S0VqwEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//NarrowLanes"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZH2S0lqwEeCUVO0erQdu-A" x="372" y="660"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HCQxAFqxEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_HCQxA1qxEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_HCQxBFqxEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_RnUrMFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Impassibility/FLOODING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RnUrMVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WREdgFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Impassibility/DANGER_OF_AVALANCHES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WREdgVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eVF-UFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Impassibility/BLASTING_OF_AVALANCHES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eVF-UVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jwZJYFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Impassibility/LANDSLIPS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jwZJYVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oleB8FqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Impassibility/CHEMICAL_SPILLAGE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oleB8VqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TBJ5MFZaEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Impassibility/WINTER_CLOSURE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TBJ5MVZaEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HCQxBVqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HCQxBlqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HCQxB1qxEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HCQxAVqxEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//Impassibility"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HCQxAlqxEeCUVO0erQdu-A" x="372" y="804"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0iueIFqxEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_0iueI1qxEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_0iueJFqxEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_39f74FqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/HEAVY_FROST_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_39f74VqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9rmuMFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/FUEL_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9rmuMVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ECeJoFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/MUD_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ECeJoVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JSobsFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/SNOW_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JSobsVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RNsNwFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/ICE_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RNsNwVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XPR8wFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/BLACK_ICE_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XPR8wVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_d9Ji8FqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/OIL_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d9Ji8VqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iY6joFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/LOOSE_CHIPPINGS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iY6joVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p_cQIFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/INSTANT_BLACK_ICE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p_cQIVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iT9U4FZaEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlipperyRoad/ROADS_SALTED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iT9U4VZaEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0iueJVqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0iueJlqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0iueJ1qxEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0iueIVqxEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//SlipperyRoad"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0iueIlqxEeCUVO0erQdu-A" x="372" y="996"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_z6-sMFqyEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_z8K_AFqyEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_z8K_AVqyEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_4YYEkFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Fire/MAJOR_FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4YYEkVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_o0b_UFZaEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Fire/FOREST_FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_o0b_UVZaEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_z8K_AlqyEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z8K_A1qyEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z8K_BFqyEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_z6-sMVqyEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//Fire"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z6-sMlqyEeCUVO0erQdu-A" x="756" y="300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CHM6UFqzEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_CHWrUFqzEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_CHWrUVqzEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_HyMHMFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/ROCKFALLS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HyMHMVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ns4kAFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/EARTHQUAKE_DAMAGE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ns4kAVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TlLNEFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/SEWER_COLLAPSE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TlLNEVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aOKTQFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/SUBSIDENCE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOKTQVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fOv4QFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/SNOW_DRIFTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fOv4QVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kS6VsFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/STORM_DAMAGE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kS6VsVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ozwqsFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/BURST_PIPE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozwqsVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_03TUQFZaEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/VOLCANO_ERUPTION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_03TUQVZaEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4K-EcFZaEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions/FALLING_ICE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4K-EcVZaEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_CHWrUlqzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CHWrU1qzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CHWrVFqzEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_CHM6UVqzEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//HazardousDrivingConditions"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CHM6UlqzEeCUVO0erQdu-A" x="756" y="420"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0IGFsFqzEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_0IGFs1qzEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_0IGFtFqzEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_7TcSEFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/SHED_LOAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7TcSEVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__j4zkFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/PARTS_OF_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__j4zkVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EpwhMFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/PARTS_OF_TYRES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EpwhMVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_J1KPEFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/BIG_OBJECTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J1KPEVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PDhxYFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/FALLEN_TREES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PDhxYVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VvQCgFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/HUB_CAPS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VvQCgVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ne-0oFZbEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/WAITING_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ne-0oVZbEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0IGFtVqzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0IGFtlqzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0IGFt1qzEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0IGFsVqzEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//ObjectsOnTheRoad"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0IGFslqzEeCUVO0erQdu-A" x="696" y="684"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lLfHAFq0EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_lMrZ0Fq0EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_lMrZ0Vq0EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_oDDKAFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AnimalsOnRoadway/WILD_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oDDKAVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s7rs4Fq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AnimalsOnRoadway/HERD_OF_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s7rs4Vq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w-y9AFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AnimalsOnRoadway/SMALL_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w-y9AVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1S2zMFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AnimalsOnRoadway/LARGE_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1S2zMVq0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lMrZ0lq0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lMrZ01q0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lMrZ1Fq0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_lLfHAVq0EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//AnimalsOnRoadway"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lLfHAlq0EeCUVO0erQdu-A" x="732" y="876"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7KKk0Fq0EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_7KKk01q0EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_7KKk1Fq0EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="__ATv8Fq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//PeopleOnRoadway/CHILDREN_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__ATv8Vq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E5PSMFq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//PeopleOnRoadway/CYCLISTS_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E5PSMVq1EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LkKSEFq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//PeopleOnRoadway/MOTOR_CYCLIST_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LkKSEVq1EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7KKk1Vq0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KKk1lq0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KKk11q0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7KKk0Vq0EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//PeopleOnRoadway"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KKk0lq0EeCUVO0erQdu-A" x="696" y="1008"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W8uFwFq1EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_W8uFw1q1EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_W8uFxFq1EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Z8-xwFq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//BrokenDownVehicles/BROKEN_DOWN_VEHICLE_BURNING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z8-xwVq1EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iAcR4Fq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//BrokenDownVehicles/BROKEN_DOWN_UNLIT_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iAcR4Vq1EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_W8uFxVq1EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W8uFxlq1EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W8uFx1q1EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_W8uFwVq1EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//BrokenDownVehicles"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W8uFwlq1EeCUVO0erQdu-A" x="684" y="1116"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BJt3AFq2EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_BJt3A1q2EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_BJt3BFq2EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_FGhDwFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/EMERGENCY_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGhDwVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KrnrEFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/RESCUE_HELICOPTER_LANDING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KrnrEVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SPgH4FZcEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/POLICE_ACTIVITY_ONGOING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SPgH4VZcEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XWnLoFZcEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/MEDICAL_EMERGENCY_ONGOING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XWnLoVZcEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dSwZ8FZcEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/CHILD_ABDUCTION_IN_PROGRESS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dSwZ8VZcEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BJt3BVq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BJt3Blq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BJt3B1q2EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BJt3AVq2EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BJt3Alq2EeCUVO0erQdu-A" x="1068" y="300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T0XYQFq2EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_T0XYQ1q2EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_T0XYRFq2EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_W4U4gFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RegulatoryMeasure/SECURITY_ALERT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W4U4gVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dGCX8Fq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RegulatoryMeasure/CONTAGIOUS_DISEASE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dGCX8Vq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jhbHAFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RegulatoryMeasure/ENVIRONMENTAL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jhbHAVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qlbVQFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RegulatoryMeasure/SMOG_ALERT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qlbVQVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qPtYkFZcEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RegulatoryMeasure/BATCH_SERVICE_IN_PROGRESS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qPtYkVZcEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FhlP0J8EEeO2bPxtRJW0gw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RegulatoryMeasure/ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FhlP0Z8EEeO2bPxtRJW0gw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_T0XYRVq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T0XYRlq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T0XYR1q2EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_T0XYQVq2EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//RegulatoryMeasure"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T0XYQlq2EeCUVO0erQdu-A" x="1020" y="468"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_onuXEVM7EeGPO9BWHBmh1Q" type="Note" description="Based on TISA version of TEC:&#xD;&#xA;TPEG2-TEC_3.1/001 2011-11-07" fillColor="8047085" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ooBSAFM7EeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ooBSAVM7EeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_onuXElM7EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_onuXE1M7EeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_onuXFFM7EeGPO9BWHBmh1Q" x="252" y="60"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_h3F1sFY5EeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_h3F1s1Y5EeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_h3F1tFY5EeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_BBYvsFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//LaneRestrictionType/LANES_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BBYvsVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IFBxkFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//LaneRestrictionType/LANES_OPEN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IFBxkVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LR2S4FZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//LaneRestrictionType/RIGHT_LANES_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LR2S4VZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PjLlMFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//LaneRestrictionType/LEFT_LANES_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PjLlMVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_h3F1tVY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_h3F1tlY5EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_h3F1t1Y5EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_h3F1sVY5EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//LaneRestrictionType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h3F1slY5EeGPO9BWHBmh1Q" x="1380" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k6_kMFY8EeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_k6_kM1Y8EeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_k6_kNFY8EeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_okVVgFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_okVVgVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w5AhcFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/OVERTAKING_NOT_ALLOWED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w5AhcVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0uMqUFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/DRIVING_NOT_ALLOWED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0uMqUVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_34e1AFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/USE_HARD_SHOULDER_AS_LANE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_34e1AVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7V1FoFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/WAIT_FOR_POLICE_PATROL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7V1FoVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__GZ0QFZUEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/WAIT_FOR_IMPROVED_WEATHER"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__GZ0QVZUEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DQJQ0FZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/GIVING_PATH_VEHICLES_COMING_FROM_BEHIND"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQJQ0VZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KnvwgFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/FOLLOW_DIVERSION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KnvwgVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PBILkFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/NO_DIVERSION_TO_RECOMMEND"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PBILkVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T9NrEFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/DO_NOT_DIVERT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T9NrEVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W8VHkFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/FOLLOW_POLICE_INSTRUCTIONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W8VHkVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Z-a_kFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/AVOID_THE_AREA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z-a_kVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_c3k-AFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/DRIVE_CAREFULLY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c3k-AVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_giyEcFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/DO_NOT_LEAVE_YOUR_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_giyEcVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kSTqMFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/SWITCH_ON_RADIO"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kSTqMVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nkMRsFZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/USE_TOLL_LANES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nkMRsVZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rwAx4FZVEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//AdviceCode/WAIT_FOR_CONVOI"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rwAx4VZVEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_k6_kNVY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k6_kNlY8EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k6_kN1Y8EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_k6_kMVY8EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//AdviceCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k6_kMlY8EeGPO9BWHBmh1Q" x="24" y="1260"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RdxPIFY_EeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_RdxPI1Y_EeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_RdxPJFY_EeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_5XbicFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/CAR"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5XbicVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6V_ccFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/LORRY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6V_ccVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7cmfMFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/BUS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7cmfMVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8czX8FZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/TAXI"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8czX8VZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9n4D8FZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/TRAIN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9n4D8VZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-qwdQFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/MOTOR_CYCLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-qwdQVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="___9VoFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/VEHICLE_WITH_TRAILER"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="___9VoVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CMSDQFZZEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/MOTOR_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CMSDQVZZEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Dlpp8FZZEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/TRANSPORT_OF_DANGEROUS_GOODS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Dlpp8VZZEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ge9ZYFZZEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/TRANSPORT_OF_ABNORMAL_LOAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ge9ZYVZZEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JVlBMFZZEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VehicleType/HEAVY_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JVlBMVZZEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RdxPJVY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RdxPJlY_EeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RdxPJ1Y_EeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RdxPIVY_EeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//VehicleType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RdxPIlY_EeGPO9BWHBmh1Q" x="972" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_neSqkFZAEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_neSqk1ZAEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_neSqlFZAEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_LtD9UFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WIDTH_LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LtD9UVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OWuHMFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WIDTH_GREATER_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OWuHMVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ViQg0FZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/HEIGTH_LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ViQg0VZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_d1cfAFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/HEIGTH_GREATER_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d1cfAVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p1xdUFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WEIGHT_LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p1xdUVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uOaRgFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WEIGHT_GREATER_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uOaRgVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x_RUAFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITHOUT_WINTER_TYRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x_RUAVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1P0ewFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITHOUT_SNOW_CHAIN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1P0ewVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_41gzEFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITH_TRAILER"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_41gzEVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_72aYQFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITH_CARAVAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_72aYQVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-diykFZWEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/PERSONS_IN_VEHICLE_LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-diykVZWEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CzDaQFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/PERSONS_IN_VEHICLE_MORE_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CzDaQVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JXtaEFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/EVEN_NUMBER_PLATE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JXtaEVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MX3YYFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/ODD_NUMBER_PLATE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MX3YYVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PRBW0FZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/LENGTH_LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PRBW0VZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SEXoMFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/LENGTH_GREATER_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SEXoMVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WqZ_MFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/AXLE_LOAD_LESS_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WqZ_MVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aoPGsFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/AXLE_LOAD_GREATER_THAN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoPGsVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_d_n5QFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d_n5QVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_q1upAFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q1upAVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_t4t44FZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t4t44VZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xqeTQFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xqeTQVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_z44EgFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITH_PETROL_ENGINE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z44EgVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-jQjkFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITH_DIESEL_ENGINE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-jQjkVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3Gl9sFZXEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITH_LPG_ENGINE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Gl9sVZXEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DIGnwFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/THROUGH_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DIGnwVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_G-MIgFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/RESIDENTS_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G-MIgVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JyRZsFZYEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RestrictionType/WITH_DESTINATION_IN_GIVEN_AREA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JyRZsVZYEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_neSqlVZAEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_neSqllZAEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_neSql1ZAEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_neSqkVZAEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//RestrictionType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_neSqklZAEeGPO9BWHBmh1Q" x="1704" y="1032"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mlqe0FZTEeGPO9BWHBmh1Q" type="Note" description="Sub Causes" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_mlqe1FZTEeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_mlqe1VZTEeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_mlqe0VZTEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_mlqe0lZTEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mlqe01ZTEeGPO9BWHBmh1Q" x="936" y="636"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1bmpQFZcEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_1bmpQ1ZcEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_1bmpRFZcEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_CpPIMFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/STRONG_WINDS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CpPIMVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EKW8sFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/DAMAGING_HAIL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EKW8sVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GebREFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/HURRICANE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GebREVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IC0cAFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/THUNDERSTORM"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IC0cAVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JeuZUFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/TORNADO"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JeuZUVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LG_-sFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/BLIZARD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LG_-sVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1bmpRVZcEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1bmpRlZcEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1bmpR1ZcEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_1bmpQVZcEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//ExtremeWeatherConditions"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1bmpQlZcEeGPO9BWHBmh1Q" x="1116" y="684"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gYLdUFZdEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_gYLdU1ZdEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_gYLdVFZdEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_mauOkFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_FOG"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mauOkVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p5uFAFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SMOKE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p5uFAVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vRD9IFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vRD9IVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yc_GkFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yc_GkVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2waqoFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2waqoVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_42BsQFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_42BsQVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7_uBEFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SANDSTORMS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7_uBEVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9_-BkFZdEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9_-BkVZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gYLdVVZdEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gYLdVlZdEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gYLdV1ZdEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_gYLdUVZdEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//VisibilityReduced"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gYLdUlZdEeGPO9BWHBmh1Q" x="984" y="876"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KUaOsFZeEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_KUaOs1ZeEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_KUaOtFZeEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_NYJFcFZeEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Precipitation/HEAVY_RAIN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NYJFcVZeEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OpeKcFZeEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Precipitation/HEAVY_SNOWFALL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OpeKcVZeEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QMYHoFZeEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//Precipitation/SOFT_HAIL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QMYHoVZeEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KUaOtVZeEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KUaOtlZeEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KUaOt1ZeEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_KUaOsVZeEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//Precipitation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KUaOslZeEeGPO9BWHBmh1Q" x="1032" y="1080"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RW6LoFZfEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_RW6Lo1ZfEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_RW6LpFZfEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Ynp1YFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RecklessPersons/RECKLESS_DRIVER"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ynp1YVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bmxR4FZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RecklessPersons/GUNFIRE_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bmxR4VZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eGAUcFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RecklessPersons/STONE_THROWING_PERSONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eGAUcVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RW6LpVZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RW6LplZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RW6Lp1ZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RW6LoVZfEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//RecklessPersons"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RW6LolZfEeGPO9BWHBmh1Q" x="1356" y="312"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jyqVQFZfEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_jyqVQ1ZfEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_jyqVRFZfEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_l7GocFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/SPORTS_EVENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l7GocVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_pVLioFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/DEMONSTRATION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pVLioVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qkue8FZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/DEMONSTRATION_WITH_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qkue8VZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tvTkkFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/CONCERT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tvTkkVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vDnsIFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/FAIR"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vDnsIVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wMwecFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/MILITARY_TRAINING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wMwecVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ybm7oFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/EMERGENCY_TRAINING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ybm7oVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0LxRsFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/FESTIVITY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0LxRsVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1q9MgFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MajorEvent/PROCESSION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1q9MgVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jyqVRVZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jyqVRlZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jyqVR1ZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_jyqVQVZfEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//MajorEvent"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jyqVQlZfEeGPO9BWHBmh1Q" x="1380" y="432"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6nVm8FZfEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_6nVm81ZfEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_6nVm9FZfEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_-4-bQFZfEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotOperating/FERRY_SERVICE_NOT_OPERATING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-4-bQVZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CIUsIFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotOperating/PLANE_SERVICE_NOT_OPERATING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CIUsIVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ElerEFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotOperating/TRAIN_SERVICE_NOT_OPERATING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ElerEVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GTj9gFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotOperating/BUS_SERVICE_NOT_OPERATING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GTj9gVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6nVm9VZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6nVm9lZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6nVm91ZfEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6nVm8VZfEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//ServiceNotOperating"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6nVm8lZfEeGPO9BWHBmh1Q" x="1356" y="672"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NhLawFZgEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_NhLaw1ZgEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_NhLaxFZgEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_SO9_kFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotUsable/FUEL_STATION_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SO9_kVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T9Mb8FZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotUsable/SERVICE_AREA_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T9Mb8VZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WclPgFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotUsable/SERVICE_AREA_BUSY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WclPgVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZNBW0FZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotUsable/PARKING_FULL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZNBW0VZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_annskFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//ServiceNotUsable/CAR_PARK_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_annskVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NhLaxVZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NhLaxlZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NhLax1ZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NhLawVZgEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//ServiceNotUsable"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NhLawlZgEeGPO9BWHBmh1Q" x="1368" y="816"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_f4WmYFZgEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_f4WmY1ZgEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_f4WmZFZgEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_kFnRAFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/SLOW_MOVING_MAINTENANCE_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kFnRAVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_noyc0FZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_noyc0VZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rzW_0FZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/ABNORMAL_LOAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rzW_0VZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_t7MPAFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/ABNORMAL_WIDE_LOAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t7MPAVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wCaaMFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/CONVOY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wCaaMVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xe9QsFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/SNOWPLOUGH"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xe9QsVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zgg4wFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/DEICING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zgg4wVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1Hp1sFZgEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//SlowMovingVehicles/SALTING_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1Hp1sVZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_f4WmZVZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f4WmZlZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f4WmZ1ZgEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_f4WmYVZgEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//SlowMovingVehicles"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f4WmYlZgEeGPO9BWHBmh1Q" x="1368" y="960"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JeWCAFZhEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_JeWCA1ZhEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_JeWCBFZhEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Sb82MFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DangerousEndOfQueue/SUDDEN_END_OF_QUEUE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Sb82MVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U7cXcFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DangerousEndOfQueue/QUEUE_OVER_HILL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U7cXcVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WxghMFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DangerousEndOfQueue/QUEUE_AROUND_BEND"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WxghMVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Z23voFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DangerousEndOfQueue/QUEUE_IN_TUNNEL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z23voVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JeWCBVZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JeWCBlZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JeWCB1ZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JeWCAVZhEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//DangerousEndOfQueue"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JeWCAlZhEeGPO9BWHBmh1Q" x="1632" y="300"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hpy5YFZhEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_hp8qYFZhEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_hp8qYVZhEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_jayV4FZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RiskOfFire/LEAKAGE_OF_FUEL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jayV4VZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lzR3QFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//RiskOfFire/LEAKAGE_OF_GAS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lzR3QVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hp8qYlZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hp8qY1ZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hp8qZFZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hpy5YVZhEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//RiskOfFire"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hpy5YlZhEeGPO9BWHBmh1Q" x="1668" y="420"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tcXvkFZhEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_tcXvk1ZhEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_tcXvlFZhEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_xOAOIFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//TimeDelay/TIME_DELAY_AT_FRONTIER"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xOAOIVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1dNZgFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//TimeDelay/TIME_DELAY_AT_FERRY_PORT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1dNZgVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5MMzwFZhEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//TimeDelay/TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5MMzwVZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tcXvlVZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tcXvllZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tcXvl1ZhEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tcXvkVZhEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//TimeDelay"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tcXvklZhEeGPO9BWHBmh1Q" x="1632" y="516"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BPbqYFZiEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_BPbqY1ZiEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_BPbqZFZiEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_FDVZ0FZiEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//PoliceCheckpoint/PERMANENT_POLICE_CHECKPOINT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FDVZ0VZiEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IBnI0FZiEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//PoliceCheckpoint/TEMPORARY_POLICE_CHECKPOINT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBnI0VZiEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BPbqZVZiEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BPbqZlZiEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BPbqZ1ZiEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BPbqYVZiEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//PoliceCheckpoint"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BPbqYlZiEeGPO9BWHBmh1Q" x="1716" y="660"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3XokwFbjEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_3Xokw1bjEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_3XokxFbjEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_8kg5UFbjEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/ROAD_RAIL_CROSSING_FAILURE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8kg5UVbjEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_APt_wFbkEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/TUNNEL_VENTILATION_NOT_WORKING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_APt_wVbkEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DOA84FbkEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DOA84VbkEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IxqLoFbkEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/EMERGENCY_TELEPHONES_NOT_WORKING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IxqLoVbkEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LlRiwFbkEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/AUTOMATIC_PAYMENT_LANES_NOT_WORKING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LlRiwVbkEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_3XokxVbjEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3XokxlbjEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3Xokx1bjEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3XokwVbjEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3XokwlbjEeGPO9BWHBmh1Q" x="1692" y="804"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IRSNAFblEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_IRb-AFblEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_IRb-AVblEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_NZOXMFblEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//OvertakingNotAllowed/DO_NOT_USE_OVERTAKING_LANES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NZOXMVblEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Phu70FblEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Phu70VblEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TzMJ8FblEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TzMJ8VblEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_X8T7cFblEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X8T7cVblEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_IRb-AlblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IRb-A1blEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IRb-BFblEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_IRSNAVblEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//OvertakingNotAllowed"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IRSNAlblEeGPO9BWHBmh1Q" x="396" y="1260"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ejRBUFblEeGPO9BWHBmh1Q" type="Note" description="Sub Advices" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ejRBVFblEeGPO9BWHBmh1Q" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ejRBVVblEeGPO9BWHBmh1Q" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_ejRBUVblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_ejRBUlblEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ejRBU1blEeGPO9BWHBmh1Q" x="960" y="1392"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tgsC4FblEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_tgsC41blEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_tgsC5FblEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_v16N0FblEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DrivingNotAllowed/DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v16N0VblEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tgsC5VblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tgsC5lblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tgsC51blEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tgsC4VblEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//DrivingNotAllowed"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tgsC4lblEeGPO9BWHBmh1Q" x="396" y="1404"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5z1PgFblEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_5z1Pg1blEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_5z1PhFblEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_9etl0FblEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//GivingPathVehiclesFromBehind/GIVING_PATH_FOR_RESCUE_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9etl0VblEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CanfIFbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//GivingPathVehiclesFromBehind/GIVING_PATH_FOR_SERVICE_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CanfIVbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5z1PhVblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5z1PhlblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5z1Ph1blEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5z1PgVblEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//GivingPathVehiclesFromBehind"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5z1PglblEeGPO9BWHBmh1Q" x="396" y="1500"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JDtTAFbmEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_JD2c8FbmEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_JD2c8VbmEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_KW9qoFbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//FollowDiversion/FOLLOW_DIVERSION_SIGNS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KW9qoVbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JD2c8lbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JD2c81bmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JD2c9FbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JDtTAVbmEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//FollowDiversion"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JDtTAlbmEeGPO9BWHBmh1Q" x="888" y="1284"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bRU6AFbmEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_bRU6A1bmEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_bRU6BFbmEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_emeQ4FbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DriveCarefully/DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_emeQ4VbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_l6VgEFbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DriveCarefully/DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l6VgEVbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rM6M8FbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DriveCarefully/DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rM6M8VbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bRU6BVbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bRU6BlbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bRU6B1bmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_bRU6AVbmEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//DriveCarefully"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bRU6AlbmEeGPO9BWHBmh1Q" x="804" y="1488"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zYyCMFbmEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_zYyCM1bmEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_zYyCNFbmEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_3k5dUFbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DoNotLeaveYourVehicle/DO_NOT_LEAVE_YOUR_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3k5dUVbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7NtXEFbmEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//DoNotLeaveYourVehicle/DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7NtXEVbmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zYyCNVbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zYyCNlbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zYyCN1bmEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zYyCMVbmEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//DoNotLeaveYourVehicle"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zYyCMlbmEeGPO9BWHBmh1Q" x="1306" y="1297"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AHQf8FbnEeGPO9BWHBmh1Q" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_AHQf81bnEeGPO9BWHBmh1Q" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_AHQf9FbnEeGPO9BWHBmh1Q" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_DbhGAFbnEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//UseTollLanes/USE_MANUAL_PAYMENT_TOLL_LANES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DbhGAVbnEeGPO9BWHBmh1Q"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HK4TsFbnEeGPO9BWHBmh1Q" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="TrafficIncidentTables.ecore#//UseTollLanes/USE_AUTOMATIC_PAYMENT_TOLL_LANES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HK4TsVbnEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_AHQf9VbnEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AHQf9lbnEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AHQf91bnEeGPO9BWHBmh1Q"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_AHQf8VbnEeGPO9BWHBmh1Q" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//UseTollLanes"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AHQf8lbnEeGPO9BWHBmh1Q" x="1332" y="1431"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ro3OwM6PEeKeXo0UVa3l6w" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_RpA_wM6PEeKeXo0UVa3l6w" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_RpA_wc6PEeKeXo0UVa3l6w" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RpA_ws6PEeKeXo0UVa3l6w"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RpA_w86PEeKeXo0UVa3l6w"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RpA_xM6PEeKeXo0UVa3l6w"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Ro3Owc6PEeKeXo0UVa3l6w" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="TrafficIncidentTables.ecore#//Accident"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ro3Ows6PEeKeXo0UVa3l6w" x="372" y="384"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mlnn8j8-EeCZw9yYN1vKNg"/>
+ <element xmi:type="ecore:EPackage" href="TrafficIncidentTables.ecore#/"/>
+ <edges xmi:type="notation:Connector" xmi:id="_pdoKcFZTEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_0iueIFqxEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_pdoKcVZTEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_pdoKclZTEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pdoKc1ZTEeGPO9BWHBmh1Q" points="[24, 27, -43, -46]$[68, -4, 1, -77]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pdoKdFZTEeGPO9BWHBmh1Q" id="(0.055248618784530384,0.430939226519337)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lj2NwFZZEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_6n3XwFquEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_lj2NwVZZEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_lj2NwlZZEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lj2Nw1ZZEeGPO9BWHBmh1Q" points="[-24, -28, 200, 237]$[-222, -268, 2, -3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lj2NxFZZEeGPO9BWHBmh1Q" id="(0.8620689655172413,0.07547169811320754)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t4hZsFZZEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_8ujiAFqvEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_t4hZsVZZEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_t4hZslZZEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t4hZs1ZZEeGPO9BWHBmh1Q" points="[-50, 2, 247, -11]$[-172, -12, 125, -25]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w_Yc8FZZEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_ZH2S0FqwEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_w_Yc8VZZEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_w_Yc8lZZEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w_Yc81ZZEeGPO9BWHBmh1Q" points="[-50, 21, 222, -95]$[-270, 80, 2, -36]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w_Yc9FZZEeGPO9BWHBmh1Q" id="(0.8172043010752689,0.36633663366336633)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XI81AFZaEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_HCQxAFqxEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_XI81AVZaEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_XI81AlZaEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XI81A1ZaEeGPO9BWHBmh1Q" points="[-28, 27, 241, -230]$[-267, 224, 2, -33]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XI81BFZaEeGPO9BWHBmh1Q" id="(0.7948717948717948,0.2556390977443609)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nh6ngFZaEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_z6-sMFqyEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_nh6ngVZaEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_nh6nglZaEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nh6ng1ZaEeGPO9BWHBmh1Q" points="[-6, 27, -10, -78]$[-50, 80, -54, -25]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wAIJ8FZaEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_CHM6UFqzEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_wAIJ8VZaEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_wAIJ8lZaEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wAIJ81ZaEeGPO9BWHBmh1Q" points="[1, 12, -28, -207]$[31, 161, 2, -58]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wAIJ9FZaEeGPO9BWHBmh1Q" id="(0.89,0.7678571428571429)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wAIJ9VZaEeGPO9BWHBmh1Q" id="(0.8044692737430168,0.3959731543624161)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DKDoMFZbEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_0IGFsFqzEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_DKDoMVZbEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_DKDoMlZbEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DKDoM1ZbEeGPO9BWHBmh1Q" points="[36, -29, -221, 171]$[258, -173, 1, 27]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DKDoNFZbEeGPO9BWHBmh1Q" id="(0.20512820512820512,0.7969924812030075)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TK4ngFZbEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_lLfHAFq0EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_TK4ngVZbEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_TK4nglZbEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TK4ng1ZbEeGPO9BWHBmh1Q" points="[49, -10, -260, 53]$[380, -64, 71, -1]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WvPfEFZbEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_7KKk0Fq0EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_WvPfEVZbEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_WvPfElZbEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WvPfE1ZbEeGPO9BWHBmh1Q" points="[49, 12, -263, -73]$[221, 44, -91, -41]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aoJqUFZbEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_W8uFwFq1EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_aoJqUVZbEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_aoJqUlZbEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aoJqU1ZbEeGPO9BWHBmh1Q" points="[29, 27, -206, -188]$[236, 231, 1, 16]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoJqVFZbEeGPO9BWHBmh1Q" id="(0.14468085106382977,0.7681159420289855)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kJb94FZcEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_BJt3AFq2EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_kJb94VZcEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_kJb94lZcEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kJb941ZcEeGPO9BWHBmh1Q" points="[19, 27, -204, -287]$[224, 260, 1, -54]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kJlu4FZcEeGPO9BWHBmh1Q" id="(0.09606986899563319,0.4700854700854701)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uW7FkFZcEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_T0XYQFq2EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_uW7FkVZcEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_uW7FklZcEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uW7Fk1ZcEeGPO9BWHBmh1Q" points="[46, -19, -439, 183]$[486, -177, 1, 25]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uW7FlFZcEeGPO9BWHBmh1Q" id="(0.25925925925925924,0.7863247863247863)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_TcRAgFZdEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_1bmpQFZcEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_TcRAgVZdEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_TcRAglZdEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TcRAg1ZdEeGPO9BWHBmh1Q" points="[22, -2, -492, 68]$[473, -4, -41, 66]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TcRAhFZdEeGPO9BWHBmh1Q" id="(0.77,0.48214285714285715)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EPLV0FZeEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_gYLdUFZdEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_EPLV0VZeEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_EPLV0lZeEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EPLV01ZeEeGPO9BWHBmh1Q" points="[49, 8, -469, -80]$[519, 56, 1, -32]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EPLV1FZeEeGPO9BWHBmh1Q" id="(0.11781609195402298,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ToGAkFZeEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_KUaOsFZeEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_ToGAkVZeEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_ToGAklZeEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ToGAk1ZeEeGPO9BWHBmh1Q" points="[49, 25, -507, -268]$[557, 289, 1, -4]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ToGAlFZeEeGPO9BWHBmh1Q" id="(0.16312056737588654,0.058823529411764705)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Va_FEFZfEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_RW6LoFZfEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_Va_FEVZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_Va_FElZfEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Va_FE1ZfEeGPO9BWHBmh1Q" points="[18, -15, -195, 150]$[204, -154, -9, 11]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4w634FZfEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_jyqVQFZfEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_4w634VZfEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_4w634lZfEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4w6341ZfEeGPO9BWHBmh1Q" points="[49, -14, -341, 98]$[391, -53, 1, 59]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4w635FZfEeGPO9BWHBmh1Q" id="(0.13983050847457626,0.6740331491712708)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LZU9cFZgEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_6nVm8FZfEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_LZU9cVZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_LZU9clZgEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LZU9c1ZgEeGPO9BWHBmh1Q" points="[49, 7, -424, -50]$[358, 65, -115, 8]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_d99WQFZgEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_NhLawFZgEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_d99WQVZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_d99WQlZgEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d99WQ1ZgEeGPO9BWHBmh1Q" points="[49, 23, -418, -186]$[473, 267, 6, 58]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6Hz84FZgEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_f4WmYFZgEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_6Hz84VZgEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_6Hz84lZgEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6Hz841ZgEeGPO9BWHBmh1Q" points="[34, 27, -375, -294]$[410, 296, 1, -25]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6Hz85FZgEeGPO9BWHBmh1Q" id="(0.09333333333333334,0.15757575757575756)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OzGgMFZhEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_JeWCAFZhEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_OzGgMVZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_OzGgMlZhEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OzGgM1ZhEeGPO9BWHBmh1Q" points="[46, -19, -655, 271]$[696, -268, -5, 22]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_rzbb0FZhEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_hpy5YFZhEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_rzbb0VZhEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_rzbb0lZhEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rzbb01ZhEeGPO9BWHBmh1Q" points="[24, -4, -342, 52]$[367, -73, 1, -17]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Uo3DIFbkEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_tcXvkFZhEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_Uo3DIVbkEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_Uo3DIlbkEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Uo3DI1bkEeGPO9BWHBmh1Q" points="[24, -4, -325, 48]$[350, -33, 1, 19]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uo3DJFbkEeGPO9BWHBmh1Q" id="(0.17704918032786884,0.5411764705882353)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VbtcYFbkEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_BPbqYFZiEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_VbtcYVbkEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_VbtcYlbkEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VbtcY1bkEeGPO9BWHBmh1Q" points="[24, 1, -398, -13]$[365, 17, -57, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WA4mAFbkEeGPO9BWHBmh1Q" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_3XokwFbjEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_WA4mAVbkEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_WA4mAlbkEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WA4mA1bkEeGPO9BWHBmh1Q" points="[24, 5, -416, -93]$[353, 95, -87, -3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_rRuQ8FblEeGPO9BWHBmh1Q" type="NoteAttachment" source="_ejRBUFblEeGPO9BWHBmh1Q" target="_IRSNAFblEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_rRuQ8VblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_rRuQ8lblEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rRuQ81blEeGPO9BWHBmh1Q" points="[-24, -10, 193, 76]$[-215, -36, 2, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rRuQ9FblEeGPO9BWHBmh1Q" id="(0.24,0.48214285714285715)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rRuQ9VblEeGPO9BWHBmh1Q" id="(0.8663239074550129,0.49504950495049505)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5LnY8FblEeGPO9BWHBmh1Q" type="NoteAttachment" source="_ejRBUFblEeGPO9BWHBmh1Q" target="_tgsC4FblEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_5LnY8VblEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_5LnY8lblEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5LnY81blEeGPO9BWHBmh1Q" points="[-50, 6, 125, -17]$[-173, 8, 2, -15]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5LnY9FblEeGPO9BWHBmh1Q" id="(0.8544303797468354,0.3018867924528302)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QHAWoFbmEeGPO9BWHBmh1Q" type="NoteAttachment" source="_5z1PgFblEeGPO9BWHBmh1Q" target="_ejRBUFblEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_QHAWoVbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_QHAWolbmEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QHAWo1bmEeGPO9BWHBmh1Q" points="[41, -14, -295, 106]$[321, -110, -15, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QHAWpFbmEeGPO9BWHBmh1Q" id="(0.8423076923076923,0.5072463768115942)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QHAWpVbmEeGPO9BWHBmh1Q" id="(0.25,0.8035714285714286)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QunwQFbmEeGPO9BWHBmh1Q" type="NoteAttachment" source="_JDtTAFbmEeGPO9BWHBmh1Q" target="_ejRBUFblEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_QunwQVbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_QunwQlbmEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QunwQ1bmEeGPO9BWHBmh1Q" points="[37, -20, -379, 200]$[411, -210, -5, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QunwRFbmEeGPO9BWHBmh1Q" id="(0.8092783505154639,0.49056603773584906)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QunwRVbmEeGPO9BWHBmh1Q" id="(0.43,0.8035714285714286)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xyc9kFbmEeGPO9BWHBmh1Q" type="NoteAttachment" source="_ejRBUFblEeGPO9BWHBmh1Q" target="_bRU6AFbmEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_xyc9kVbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_xyc9klbmEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xyc9k1bmEeGPO9BWHBmh1Q" points="[14, 27, -56, -104]$[72, 151, 2, 20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xyc9lFbmEeGPO9BWHBmh1Q" id="(0.6450116009280742,0.7647058823529411)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-tvIQFbmEeGPO9BWHBmh1Q" type="NoteAttachment" source="_ejRBUFblEeGPO9BWHBmh1Q" target="_zYyCMFbmEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_-tvIQVbmEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_-tvIQlbmEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-tvIQ1bmEeGPO9BWHBmh1Q" points="[49, -11, -328, 72]$[378, -56, 1, 27]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-tvIRFbmEeGPO9BWHBmh1Q" id="(0.24848484848484848,0.6086956521739131)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MDPw0FbnEeGPO9BWHBmh1Q" type="NoteAttachment" source="_ejRBUFblEeGPO9BWHBmh1Q" target="_AHQf8FbnEeGPO9BWHBmh1Q" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_MDPw0VbnEeGPO9BWHBmh1Q"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_MDPw0lbnEeGPO9BWHBmh1Q"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MDPw01bnEeGPO9BWHBmh1Q" points="[49, 7, -321, -49]$[371, 78, 1, 22]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MDPw1FbnEeGPO9BWHBmh1Q" id="(0.17883211678832117,0.6811594202898551)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mHQlkM6PEeKeXo0UVa3l6w" type="NoteAttachment" source="_mlqe0FZTEeGPO9BWHBmh1Q" target="_Ro3OwM6PEeKeXo0UVa3l6w" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_mHQlkc6PEeKeXo0UVa3l6w"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_mHQlks6PEeKeXo0UVa3l6w"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mHQlk86PEeKeXo0UVa3l6w" points="[-19, -11, 409, 197]$[-272, -164, 156, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mHQllM6PEeKeXo0UVa3l6w" id="(0.19,0.5178571428571429)"/>
+ </edges>
+</notation:Diagram>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel
new file mode 100755
index 0000000..907b234
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/model/TrafficIncidentTables.genmodel
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
+ copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficincidentsservice.trafficincidenttables-model/src"
+ editDirectory="/org.genivi.trafficincidentsservice.trafficincidenttables-model.edit/src"
+ editorDirectory="/org.genivi.trafficincidentsservice.trafficincidenttables-model.editor/src"
+ modelPluginID="org.genivi.trafficinfo.trafficincidenttables" modelName="TrafficIncidentTables"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ usedGenPackages="../../org.genivi.basetypes-model/model/Basetypes.genmodel#//genivi">
+ <foreignModel>TrafficIncidentTables.ecore</foreignModel>
+ <genPackages prefix="trafficincidenttables" basePackage="org.genivi.trafficincidentsservice"
+ disposableProviderFactory="true" ecorePackage="TrafficIncidentTables.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//EffectCode">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/TRAFFIC_FLOW_UNKNOWN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/FREE_TRAFFIC_FLOW"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/HEAVY_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/SLOW_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/QUEUING_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/STATIONARY_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//EffectCode/NO_TRAFFIC_FLOW"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//Tendency">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/SLIGHTLY_INCREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/INCREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/STRONGLY_INCREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/SLIGHTLY_DECREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/DECREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/STRONGLY_DECREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Tendency/CONSTANT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//CauseCode">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/TRAFFIC_CONGESTION"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/ROADWORKS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/NARROW_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/IMPASSIBILITY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/SLIPPERY_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/AQUAPLANING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/FIRE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/HAZARDOUS_DRIVING_CONDITIONS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/OBJECTS_ON_THE_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/ANIMALS_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/PEOPLE_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/BROKEN_DOWN_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/VEHICLE_ON_WRONG_CARRIAGEWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/RESCUE_AND_RECOVERY_WORK_IN_PROGRESS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/REGULATORY_MEASURE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/EXTREME_WEATHER_CONDITIONS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/VISIBILITY_REDUCED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/PRECIPITATION"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/RECKLESS_PERSONS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/TRAFFIC_REGULATIONS_CHANGED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/MAJOR_EVENT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/SERVICE_NOT_USEABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/SLOW_MOVING_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/DANGEROUS_END_OF_QUEUE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/RISK_OF_FIRE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/TIME_DELAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/POLICE_CHECKPOINT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//CauseCode/MALFUNCTIONING_ROADSIDE_EQUIPMENT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//WarningLevel">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//WarningLevel/INFORMATIVE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//WarningLevel/DANGER_LEVEL_1"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//WarningLevel/DANGER_LEVEL_2"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//WarningLevel/DANGER_LEVEL_3"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//TrafficCongestion">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//TrafficCongestion/INCREASED_VOLUME_OF_TRAFFIC"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//Accident">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/MULTI_VEHICLE_ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/HEAVY_ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/ACCIDENT_INVOLVING_LORRY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/ACCIDENT_INVOLVING_BUS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/ACCIDENT_ON_OPPOSITE_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Accident/UNSECURED_ACCIDENT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//RoadWorks">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RoadWorks/MAJOR_ROADWORKS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RoadWorks/ROAD_MARKING_WORK"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RoadWorks/SLOW_MOVING_ROAD_MAINTENANCE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//NarrowLanes">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//NarrowLanes/CONTRAFLOW"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//NarrowLanes/HARD_SHOULDER_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//NarrowLanes/SLIP_LANE_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//NarrowLanes/CRAWLER_LANE_CLOSED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//Impassibility">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Impassibility/FLOODING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Impassibility/DANGER_OF_AVALANCHES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Impassibility/BLASTING_OF_AVALANCHES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Impassibility/LANDSLIPS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Impassibility/CHEMICAL_SPILLAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Impassibility/WINTER_CLOSURE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//SlipperyRoad">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/HEAVY_FROST_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/FUEL_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/MUD_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/SNOW_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/ICE_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/BLACK_ICE_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/OIL_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/LOOSE_CHIPPINGS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/INSTANT_BLACK_ICE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlipperyRoad/ROADS_SALTED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//Fire">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Fire/MAJOR_FIRE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Fire/FOREST_FIRE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//HazardousDrivingConditions">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/ROCKFALLS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/EARTHQUAKE_DAMAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/SEWER_COLLAPSE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/SUBSIDENCE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/SNOW_DRIFTS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/STORM_DAMAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/BURST_PIPE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/VOLCANO_ERUPTION"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//HazardousDrivingConditions/FALLING_ICE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//ObjectsOnTheRoad">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/SHED_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/PARTS_OF_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/PARTS_OF_TYRES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/BIG_OBJECTS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/FALLEN_TREES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/HUB_CAPS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ObjectsOnTheRoad/WAITING_VEHICLES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//AnimalsOnRoadway">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AnimalsOnRoadway/WILD_ANIMALS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AnimalsOnRoadway/HERD_OF_ANIMALS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AnimalsOnRoadway/SMALL_ANIMALS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AnimalsOnRoadway/LARGE_ANIMALS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//PeopleOnRoadway">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//PeopleOnRoadway/CHILDREN_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//PeopleOnRoadway/CYCLISTS_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//PeopleOnRoadway/MOTOR_CYCLIST_ON_ROADWAY"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//BrokenDownVehicles">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//BrokenDownVehicles/BROKEN_DOWN_VEHICLE_BURNING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//BrokenDownVehicles/BROKEN_DOWN_UNLIT_VEHICLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/EMERGENCY_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/RESCUE_HELICOPTER_LANDING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/POLICE_ACTIVITY_ONGOING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/MEDICAL_EMERGENCY_ONGOING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RescueAndRecoveryWorkInProgress/CHILD_ABDUCTION_IN_PROGRESS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//RegulatoryMeasure">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RegulatoryMeasure/SECURITY_ALERT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RegulatoryMeasure/CONTAGIOUS_DISEASE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RegulatoryMeasure/ENVIRONMENTAL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RegulatoryMeasure/SMOG_ALERT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RegulatoryMeasure/BATCH_SERVICE_IN_PROGRESS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//LaneRestrictionType">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//LaneRestrictionType/LANES_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//LaneRestrictionType/LANES_OPEN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//LaneRestrictionType/RIGHT_LANES_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//LaneRestrictionType/LEFT_LANES_CLOSED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//AdviceCode">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/OVERTAKING_NOT_ALLOWED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/DRIVING_NOT_ALLOWED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/USE_HARD_SHOULDER_AS_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/WAIT_FOR_POLICE_PATROL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/WAIT_FOR_IMPROVED_WEATHER"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/GIVING_PATH_VEHICLES_COMING_FROM_BEHIND"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/FOLLOW_DIVERSION"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/NO_DIVERSION_TO_RECOMMEND"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/DO_NOT_DIVERT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/FOLLOW_POLICE_INSTRUCTIONS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/AVOID_THE_AREA"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/DRIVE_CAREFULLY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/DO_NOT_LEAVE_YOUR_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/SWITCH_ON_RADIO"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/USE_TOLL_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//AdviceCode/WAIT_FOR_CONVOI"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//VehicleType">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/CAR"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/LORRY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/BUS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/TAXI"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/TRAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/MOTOR_CYCLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/VEHICLE_WITH_TRAILER"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/MOTOR_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/TRANSPORT_OF_DANGEROUS_GOODS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/TRANSPORT_OF_ABNORMAL_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VehicleType/HEAVY_VEHICLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//RestrictionType">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WIDTH_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WIDTH_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/HEIGTH_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/HEIGTH_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WEIGHT_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WEIGHT_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITHOUT_WINTER_TYRE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITHOUT_SNOW_CHAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITH_TRAILER"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITH_CARAVAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/PERSONS_IN_VEHICLE_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/PERSONS_IN_VEHICLE_MORE_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/EVEN_NUMBER_PLATE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/ODD_NUMBER_PLATE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/LENGTH_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/LENGTH_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/AXLE_LOAD_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/AXLE_LOAD_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITH_PETROL_ENGINE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITH_DIESEL_ENGINE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITH_LPG_ENGINE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/THROUGH_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/RESIDENTS_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RestrictionType/WITH_DESTINATION_IN_GIVEN_AREA"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//ExtremeWeatherConditions">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/STRONG_WINDS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/DAMAGING_HAIL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/HURRICANE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/THUNDERSTORM"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/TORNADO"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ExtremeWeatherConditions/BLIZARD"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//VisibilityReduced">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_FOG"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SMOKE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SANDSTORMS"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//Precipitation">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Precipitation/HEAVY_RAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Precipitation/HEAVY_SNOWFALL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//Precipitation/SOFT_HAIL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//RecklessPersons">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RecklessPersons/RECKLESS_DRIVER"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RecklessPersons/GUNFIRE_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RecklessPersons/STONE_THROWING_PERSONS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//MajorEvent">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/SPORTS_EVENT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/DEMONSTRATION"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/DEMONSTRATION_WITH_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/CONCERT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/FAIR"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/MILITARY_TRAINING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/EMERGENCY_TRAINING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/FESTIVITY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MajorEvent/PROCESSION"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//ServiceNotOperating">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotOperating/FERRY_SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotOperating/PLANE_SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotOperating/TRAIN_SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotOperating/BUS_SERVICE_NOT_OPERATING"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//ServiceNotUsable">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotUsable/FUEL_STATION_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotUsable/SERVICE_AREA_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotUsable/SERVICE_AREA_BUSY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotUsable/PARKING_FULL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//ServiceNotUsable/CAR_PARK_CLOSED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//SlowMovingVehicles">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/SLOW_MOVING_MAINTENANCE_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/ABNORMAL_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/ABNORMAL_WIDE_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/CONVOY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/SNOWPLOUGH"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/DEICING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//SlowMovingVehicles/SALTING_VEHICLES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//DangerousEndOfQueue">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DangerousEndOfQueue/SUDDEN_END_OF_QUEUE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DangerousEndOfQueue/QUEUE_OVER_HILL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DangerousEndOfQueue/QUEUE_AROUND_BEND"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DangerousEndOfQueue/QUEUE_IN_TUNNEL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//RiskOfFire">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RiskOfFire/LEAKAGE_OF_FUEL"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//RiskOfFire/LEAKAGE_OF_GAS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//TimeDelay">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//TimeDelay/TIME_DELAY_AT_FRONTIER"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//TimeDelay/TIME_DELAY_AT_FERRY_PORT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//TimeDelay/TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//PoliceCheckpoint">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//PoliceCheckpoint/PERMANENT_POLICE_CHECKPOINT"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//PoliceCheckpoint/TEMPORARY_POLICE_CHECKPOINT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/ROAD_RAIL_CROSSING_FAILURE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/TUNNEL_VENTILATION_NOT_WORKING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/EMERGENCY_TELEPHONES_NOT_WORKING"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//MalfunctioningRoadsideEquipment/AUTOMATIC_PAYMENT_LANES_NOT_WORKING"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//OvertakingNotAllowed">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//OvertakingNotAllowed/DO_NOT_USE_OVERTAKING_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//DrivingNotAllowed">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DrivingNotAllowed/DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//GivingPathVehiclesFromBehind">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//GivingPathVehiclesFromBehind/GIVING_PATH_FOR_RESCUE_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//GivingPathVehiclesFromBehind/GIVING_PATH_FOR_SERVICE_VEHICLES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//FollowDiversion">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//FollowDiversion/FOLLOW_DIVERSION_SIGNS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//DriveCarefully">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DriveCarefully/DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DriveCarefully/DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DriveCarefully/DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//DoNotLeaveYourVehicle">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DoNotLeaveYourVehicle/DO_NOT_LEAVE_YOUR_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//DoNotLeaveYourVehicle/DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="TrafficIncidentTables.ecore#//UseTollLanes">
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//UseTollLanes/USE_MANUAL_PAYMENT_TOLL_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="TrafficIncidentTables.ecore#//UseTollLanes/USE_AUTOMATIC_PAYMENT_TOLL_LANES"/>
+ </genEnums>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.properties b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.properties
new file mode 100755
index 0000000..d4e01b4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = TrafficIncident Model
+providerName = www.example.org
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.xml
new file mode 100755
index 0000000..40c5db4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated TrafficIncidentTables -->
+ <package
+ uri="http://org.genivi.trafficinfo.trafficincidenttables"
+ class="org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage"
+ genModel="model/TrafficIncidentTables.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/pom.xml b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/pom.xml
new file mode 100755
index 0000000..c081964
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incident Tables data model</name>
+ <description>This project contains the data model for GENIVI Traffic Incidents.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Accident.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Accident.java
new file mode 100755
index 0000000..944e2e8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Accident.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Accident</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getAccident()
+ * @model
+ * @generated
+ */
+public enum Accident implements Enumerator {
+ /**
+ * The '<em><b>MULTI VEHICLE ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MULTI_VEHICLE_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ MULTI_VEHICLE_ACCIDENT(1, "MULTI_VEHICLE_ACCIDENT", "MULTI_VEHICLE_ACCIDENT"),
+
+ /**
+ * The '<em><b>HEAVY ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_ACCIDENT(2, "HEAVY_ACCIDENT", "HEAVY_ACCIDENT"),
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING LORRY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_LORRY_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_INVOLVING_LORRY(3, "ACCIDENT_INVOLVING_LORRY", "ACCIDENT_INVOLVING_LORRY"),
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING BUS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_BUS_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_INVOLVING_BUS(4, "ACCIDENT_INVOLVING_BUS", "ACCIDENT_INVOLVING_BUS"),
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING HAZARDOUS MATERIALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS(5, "ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS", "ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS"),
+
+ /**
+ * The '<em><b>ACCIDENT ON OPPOSITE LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_ON_OPPOSITE_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_ON_OPPOSITE_LANE(6, "ACCIDENT_ON_OPPOSITE_LANE", "ACCIDENT_ON_OPPOSITE_LANE"),
+
+ /**
+ * The '<em><b>UNSECURED ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSECURED_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSECURED_ACCIDENT(7, "UNSECURED_ACCIDENT", "UNSECURED_ACCIDENT");
+
+ /**
+ * The '<em><b>MULTI VEHICLE ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MULTI VEHICLE ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MULTI_VEHICLE_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MULTI_VEHICLE_ACCIDENT_VALUE = 1;
+
+ /**
+ * The '<em><b>HEAVY ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_ACCIDENT_VALUE = 2;
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING LORRY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT INVOLVING LORRY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_LORRY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_INVOLVING_LORRY_VALUE = 3;
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING BUS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT INVOLVING BUS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_BUS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_INVOLVING_BUS_VALUE = 4;
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING HAZARDOUS MATERIALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT INVOLVING HAZARDOUS MATERIALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS_VALUE = 5;
+
+ /**
+ * The '<em><b>ACCIDENT ON OPPOSITE LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT ON OPPOSITE LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_ON_OPPOSITE_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_ON_OPPOSITE_LANE_VALUE = 6;
+
+ /**
+ * The '<em><b>UNSECURED ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSECURED ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSECURED_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNSECURED_ACCIDENT_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Accident</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Accident[] VALUES_ARRAY =
+ new Accident[] {
+ MULTI_VEHICLE_ACCIDENT,
+ HEAVY_ACCIDENT,
+ ACCIDENT_INVOLVING_LORRY,
+ ACCIDENT_INVOLVING_BUS,
+ ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS,
+ ACCIDENT_ON_OPPOSITE_LANE,
+ UNSECURED_ACCIDENT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Accident</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Accident> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Accident</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Accident get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Accident result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Accident</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Accident getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Accident result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Accident</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Accident get(int value) {
+ switch (value) {
+ case MULTI_VEHICLE_ACCIDENT_VALUE: return MULTI_VEHICLE_ACCIDENT;
+ case HEAVY_ACCIDENT_VALUE: return HEAVY_ACCIDENT;
+ case ACCIDENT_INVOLVING_LORRY_VALUE: return ACCIDENT_INVOLVING_LORRY;
+ case ACCIDENT_INVOLVING_BUS_VALUE: return ACCIDENT_INVOLVING_BUS;
+ case ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS_VALUE: return ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS;
+ case ACCIDENT_ON_OPPOSITE_LANE_VALUE: return ACCIDENT_ON_OPPOSITE_LANE;
+ case UNSECURED_ACCIDENT_VALUE: return UNSECURED_ACCIDENT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Accident(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Accident
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AdviceCode.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AdviceCode.java
new file mode 100755
index 0000000..42249e3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AdviceCode.java
@@ -0,0 +1,618 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Advice Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getAdviceCode()
+ * @model
+ * @generated
+ */
+public enum AdviceCode implements Enumerator {
+ /**
+ * The '<em><b>DRIVE TO NEXT AVAILABLE PARKING PLACE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE(1, "DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE", "DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED(2, "OVERTAKING_NOT_ALLOWED", "OVERTAKING_NOT_ALLOWED"),
+
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVING_NOT_ALLOWED(3, "DRIVING_NOT_ALLOWED", "DRIVING_NOT_ALLOWED"),
+
+ /**
+ * The '<em><b>USE HARD SHOULDER AS LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_HARD_SHOULDER_AS_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_HARD_SHOULDER_AS_LANE(4, "USE_HARD_SHOULDER_AS_LANE", "USE_HARD_SHOULDER_AS_LANE"),
+
+ /**
+ * The '<em><b>WAIT FOR POLICE PATROL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_POLICE_PATROL_VALUE
+ * @generated
+ * @ordered
+ */
+ WAIT_FOR_POLICE_PATROL(5, "WAIT_FOR_POLICE_PATROL", "WAIT_FOR_POLICE_PATROL"),
+
+ /**
+ * The '<em><b>WAIT FOR IMPROVED WEATHER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_IMPROVED_WEATHER_VALUE
+ * @generated
+ * @ordered
+ */
+ WAIT_FOR_IMPROVED_WEATHER(6, "WAIT_FOR_IMPROVED_WEATHER", "WAIT_FOR_IMPROVED_WEATHER"),
+
+ /**
+ * The '<em><b>GIVING PATH VEHICLES COMING FROM BEHIND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_VEHICLES_COMING_FROM_BEHIND_VALUE
+ * @generated
+ * @ordered
+ */
+ GIVING_PATH_VEHICLES_COMING_FROM_BEHIND(7, "GIVING_PATH_VEHICLES_COMING_FROM_BEHIND", "GIVING_PATH_VEHICLES_COMING_FROM_BEHIND"),
+
+ /**
+ * The '<em><b>FOLLOW DIVERSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION_VALUE
+ * @generated
+ * @ordered
+ */
+ FOLLOW_DIVERSION(8, "FOLLOW_DIVERSION", "FOLLOW_DIVERSION"),
+
+ /**
+ * The '<em><b>NO DIVERSION TO RECOMMEND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_DIVERSION_TO_RECOMMEND_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_DIVERSION_TO_RECOMMEND(9, "NO_DIVERSION_TO_RECOMMEND", "NO_DIVERSION_TO_RECOMMEND"),
+
+ /**
+ * The '<em><b>DO NOT DIVERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_DIVERT_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_DIVERT(10, "DO_NOT_DIVERT", "DO_NOT_DIVERT"),
+
+ /**
+ * The '<em><b>FOLLOW POLICE INSTRUCTIONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_POLICE_INSTRUCTIONS_VALUE
+ * @generated
+ * @ordered
+ */
+ FOLLOW_POLICE_INSTRUCTIONS(11, "FOLLOW_POLICE_INSTRUCTIONS", "FOLLOW_POLICE_INSTRUCTIONS"),
+
+ /**
+ * The '<em><b>AVOID THE AREA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AVOID_THE_AREA_VALUE
+ * @generated
+ * @ordered
+ */
+ AVOID_THE_AREA(12, "AVOID_THE_AREA", "AVOID_THE_AREA"),
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY(13, "DRIVE_CAREFULLY", "DRIVE_CAREFULLY"),
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_LEAVE_YOUR_VEHICLE(14, "DO_NOT_LEAVE_YOUR_VEHICLE", "DO_NOT_LEAVE_YOUR_VEHICLE"),
+
+ /**
+ * The '<em><b>SWITCH ON RADIO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SWITCH_ON_RADIO_VALUE
+ * @generated
+ * @ordered
+ */
+ SWITCH_ON_RADIO(15, "SWITCH_ON_RADIO", "SWITCH_ON_RADIO"),
+
+ /**
+ * The '<em><b>USE TOLL LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_TOLL_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_TOLL_LANES(16, "USE_TOLL_LANES", "USE_TOLL_LANES"),
+
+ /**
+ * The '<em><b>WAIT FOR CONVOI</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_CONVOI_VALUE
+ * @generated
+ * @ordered
+ */
+ WAIT_FOR_CONVOI(17, "WAIT_FOR_CONVOI", "WAIT_FOR_CONVOI");
+
+ /**
+ * The '<em><b>DRIVE TO NEXT AVAILABLE PARKING PLACE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE TO NEXT AVAILABLE PARKING PLACE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE_VALUE = 1;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_VALUE = 2;
+
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVING NOT ALLOWED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVING_NOT_ALLOWED_VALUE = 3;
+
+ /**
+ * The '<em><b>USE HARD SHOULDER AS LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE HARD SHOULDER AS LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_HARD_SHOULDER_AS_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_HARD_SHOULDER_AS_LANE_VALUE = 4;
+
+ /**
+ * The '<em><b>WAIT FOR POLICE PATROL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAIT FOR POLICE PATROL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_POLICE_PATROL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAIT_FOR_POLICE_PATROL_VALUE = 5;
+
+ /**
+ * The '<em><b>WAIT FOR IMPROVED WEATHER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAIT FOR IMPROVED WEATHER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_IMPROVED_WEATHER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAIT_FOR_IMPROVED_WEATHER_VALUE = 6;
+
+ /**
+ * The '<em><b>GIVING PATH VEHICLES COMING FROM BEHIND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GIVING PATH VEHICLES COMING FROM BEHIND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_VEHICLES_COMING_FROM_BEHIND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GIVING_PATH_VEHICLES_COMING_FROM_BEHIND_VALUE = 7;
+
+ /**
+ * The '<em><b>FOLLOW DIVERSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOLLOW DIVERSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOLLOW_DIVERSION_VALUE = 8;
+
+ /**
+ * The '<em><b>NO DIVERSION TO RECOMMEND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO DIVERSION TO RECOMMEND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_DIVERSION_TO_RECOMMEND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_DIVERSION_TO_RECOMMEND_VALUE = 9;
+
+ /**
+ * The '<em><b>DO NOT DIVERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT DIVERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_DIVERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_DIVERT_VALUE = 10;
+
+ /**
+ * The '<em><b>FOLLOW POLICE INSTRUCTIONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOLLOW POLICE INSTRUCTIONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_POLICE_INSTRUCTIONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOLLOW_POLICE_INSTRUCTIONS_VALUE = 11;
+
+ /**
+ * The '<em><b>AVOID THE AREA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AVOID THE AREA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AVOID_THE_AREA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AVOID_THE_AREA_VALUE = 12;
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_VALUE = 13;
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_LEAVE_YOUR_VEHICLE_VALUE = 14;
+
+ /**
+ * The '<em><b>SWITCH ON RADIO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SWITCH ON RADIO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SWITCH_ON_RADIO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SWITCH_ON_RADIO_VALUE = 15;
+
+ /**
+ * The '<em><b>USE TOLL LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE TOLL LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_TOLL_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_TOLL_LANES_VALUE = 16;
+
+ /**
+ * The '<em><b>WAIT FOR CONVOI</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAIT FOR CONVOI</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_CONVOI
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAIT_FOR_CONVOI_VALUE = 17;
+
+ /**
+ * An array of all the '<em><b>Advice Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AdviceCode[] VALUES_ARRAY =
+ new AdviceCode[] {
+ DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE,
+ OVERTAKING_NOT_ALLOWED,
+ DRIVING_NOT_ALLOWED,
+ USE_HARD_SHOULDER_AS_LANE,
+ WAIT_FOR_POLICE_PATROL,
+ WAIT_FOR_IMPROVED_WEATHER,
+ GIVING_PATH_VEHICLES_COMING_FROM_BEHIND,
+ FOLLOW_DIVERSION,
+ NO_DIVERSION_TO_RECOMMEND,
+ DO_NOT_DIVERT,
+ FOLLOW_POLICE_INSTRUCTIONS,
+ AVOID_THE_AREA,
+ DRIVE_CAREFULLY,
+ DO_NOT_LEAVE_YOUR_VEHICLE,
+ SWITCH_ON_RADIO,
+ USE_TOLL_LANES,
+ WAIT_FOR_CONVOI,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Advice Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AdviceCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Advice Code</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AdviceCode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AdviceCode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Advice Code</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AdviceCode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AdviceCode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Advice Code</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AdviceCode get(int value) {
+ switch (value) {
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE_VALUE: return DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE;
+ case OVERTAKING_NOT_ALLOWED_VALUE: return OVERTAKING_NOT_ALLOWED;
+ case DRIVING_NOT_ALLOWED_VALUE: return DRIVING_NOT_ALLOWED;
+ case USE_HARD_SHOULDER_AS_LANE_VALUE: return USE_HARD_SHOULDER_AS_LANE;
+ case WAIT_FOR_POLICE_PATROL_VALUE: return WAIT_FOR_POLICE_PATROL;
+ case WAIT_FOR_IMPROVED_WEATHER_VALUE: return WAIT_FOR_IMPROVED_WEATHER;
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND_VALUE: return GIVING_PATH_VEHICLES_COMING_FROM_BEHIND;
+ case FOLLOW_DIVERSION_VALUE: return FOLLOW_DIVERSION;
+ case NO_DIVERSION_TO_RECOMMEND_VALUE: return NO_DIVERSION_TO_RECOMMEND;
+ case DO_NOT_DIVERT_VALUE: return DO_NOT_DIVERT;
+ case FOLLOW_POLICE_INSTRUCTIONS_VALUE: return FOLLOW_POLICE_INSTRUCTIONS;
+ case AVOID_THE_AREA_VALUE: return AVOID_THE_AREA;
+ case DRIVE_CAREFULLY_VALUE: return DRIVE_CAREFULLY;
+ case DO_NOT_LEAVE_YOUR_VEHICLE_VALUE: return DO_NOT_LEAVE_YOUR_VEHICLE;
+ case SWITCH_ON_RADIO_VALUE: return SWITCH_ON_RADIO;
+ case USE_TOLL_LANES_VALUE: return USE_TOLL_LANES;
+ case WAIT_FOR_CONVOI_VALUE: return WAIT_FOR_CONVOI;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AdviceCode(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //AdviceCode
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AnimalsOnRoadway.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AnimalsOnRoadway.java
new file mode 100755
index 0000000..162f6d2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/AnimalsOnRoadway.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Animals On Roadway</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getAnimalsOnRoadway()
+ * @model
+ * @generated
+ */
+public enum AnimalsOnRoadway implements Enumerator {
+ /**
+ * The '<em><b>WILD ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WILD_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ WILD_ANIMALS(1, "WILD_ANIMALS", "WILD_ANIMALS"),
+
+ /**
+ * The '<em><b>HERD OF ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HERD_OF_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ HERD_OF_ANIMALS(2, "HERD_OF_ANIMALS", "HERD_OF_ANIMALS"),
+
+ /**
+ * The '<em><b>SMALL ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SMALL_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ SMALL_ANIMALS(3, "SMALL_ANIMALS", "SMALL_ANIMALS"),
+
+ /**
+ * The '<em><b>LARGE ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LARGE_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ LARGE_ANIMALS(4, "LARGE_ANIMALS", "LARGE_ANIMALS");
+
+ /**
+ * The '<em><b>WILD ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WILD ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WILD_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WILD_ANIMALS_VALUE = 1;
+
+ /**
+ * The '<em><b>HERD OF ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HERD OF ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HERD_OF_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HERD_OF_ANIMALS_VALUE = 2;
+
+ /**
+ * The '<em><b>SMALL ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SMALL ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SMALL_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SMALL_ANIMALS_VALUE = 3;
+
+ /**
+ * The '<em><b>LARGE ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LARGE ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LARGE_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LARGE_ANIMALS_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Animals On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AnimalsOnRoadway[] VALUES_ARRAY =
+ new AnimalsOnRoadway[] {
+ WILD_ANIMALS,
+ HERD_OF_ANIMALS,
+ SMALL_ANIMALS,
+ LARGE_ANIMALS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Animals On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AnimalsOnRoadway> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Animals On Roadway</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimalsOnRoadway get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AnimalsOnRoadway result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Animals On Roadway</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimalsOnRoadway getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AnimalsOnRoadway result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Animals On Roadway</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimalsOnRoadway get(int value) {
+ switch (value) {
+ case WILD_ANIMALS_VALUE: return WILD_ANIMALS;
+ case HERD_OF_ANIMALS_VALUE: return HERD_OF_ANIMALS;
+ case SMALL_ANIMALS_VALUE: return SMALL_ANIMALS;
+ case LARGE_ANIMALS_VALUE: return LARGE_ANIMALS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AnimalsOnRoadway(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //AnimalsOnRoadway
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/BrokenDownVehicles.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/BrokenDownVehicles.java
new file mode 100755
index 0000000..d4e7279
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/BrokenDownVehicles.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Broken Down Vehicles</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getBrokenDownVehicles()
+ * @model
+ * @generated
+ */
+public enum BrokenDownVehicles implements Enumerator {
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLE BURNING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLE_BURNING_VALUE
+ * @generated
+ * @ordered
+ */
+ BROKEN_DOWN_VEHICLE_BURNING(1, "BROKEN_DOWN_VEHICLE_BURNING", "BROKEN_DOWN_VEHICLE_BURNING"),
+
+ /**
+ * The '<em><b>BROKEN DOWN UNLIT VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_UNLIT_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ BROKEN_DOWN_UNLIT_VEHICLE(2, "BROKEN_DOWN_UNLIT_VEHICLE", "BROKEN_DOWN_UNLIT_VEHICLE");
+
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLE BURNING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BROKEN DOWN VEHICLE BURNING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLE_BURNING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BROKEN_DOWN_VEHICLE_BURNING_VALUE = 1;
+
+ /**
+ * The '<em><b>BROKEN DOWN UNLIT VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BROKEN DOWN UNLIT VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_UNLIT_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BROKEN_DOWN_UNLIT_VEHICLE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Broken Down Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BrokenDownVehicles[] VALUES_ARRAY =
+ new BrokenDownVehicles[] {
+ BROKEN_DOWN_VEHICLE_BURNING,
+ BROKEN_DOWN_UNLIT_VEHICLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Broken Down Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<BrokenDownVehicles> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Broken Down Vehicles</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BrokenDownVehicles get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BrokenDownVehicles result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Broken Down Vehicles</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BrokenDownVehicles getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BrokenDownVehicles result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Broken Down Vehicles</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BrokenDownVehicles get(int value) {
+ switch (value) {
+ case BROKEN_DOWN_VEHICLE_BURNING_VALUE: return BROKEN_DOWN_VEHICLE_BURNING;
+ case BROKEN_DOWN_UNLIT_VEHICLE_VALUE: return BROKEN_DOWN_UNLIT_VEHICLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private BrokenDownVehicles(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //BrokenDownVehicles
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/CauseCode.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/CauseCode.java
new file mode 100755
index 0000000..4e31daa
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/CauseCode.java
@@ -0,0 +1,996 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cause Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getCauseCode()
+ * @model
+ * @generated
+ */
+public enum CauseCode implements Enumerator {
+ /**
+ * The '<em><b>TRAFFIC CONGESTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONGESTION_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_CONGESTION(1, "TRAFFIC_CONGESTION", "TRAFFIC_CONGESTION"),
+
+ /**
+ * The '<em><b>ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT(2, "ACCIDENT", "ACCIDENT"),
+
+ /**
+ * The '<em><b>ROADWORKS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROADWORKS_VALUE
+ * @generated
+ * @ordered
+ */
+ ROADWORKS(3, "ROADWORKS", "ROADWORKS"),
+
+ /**
+ * The '<em><b>NARROW LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NARROW_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ NARROW_LANES(4, "NARROW_LANES", "NARROW_LANES"),
+
+ /**
+ * The '<em><b>IMPASSIBILITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMPASSIBILITY_VALUE
+ * @generated
+ * @ordered
+ */
+ IMPASSIBILITY(5, "IMPASSIBILITY", "IMPASSIBILITY"),
+
+ /**
+ * The '<em><b>SLIPPERY ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIPPERY_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIPPERY_ROAD(6, "SLIPPERY_ROAD", "SLIPPERY_ROAD"),
+
+ /**
+ * The '<em><b>AQUAPLANING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AQUAPLANING_VALUE
+ * @generated
+ * @ordered
+ */
+ AQUAPLANING(7, "AQUAPLANING", "AQUAPLANING"),
+
+ /**
+ * The '<em><b>FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ FIRE(8, "FIRE", "FIRE"),
+
+ /**
+ * The '<em><b>HAZARDOUS DRIVING CONDITIONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HAZARDOUS_DRIVING_CONDITIONS_VALUE
+ * @generated
+ * @ordered
+ */
+ HAZARDOUS_DRIVING_CONDITIONS(9, "HAZARDOUS_DRIVING_CONDITIONS", "HAZARDOUS_DRIVING_CONDITIONS"),
+
+ /**
+ * The '<em><b>OBJECTS ON THE ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OBJECTS_ON_THE_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ OBJECTS_ON_THE_ROAD(10, "OBJECTS_ON_THE_ROAD", "OBJECTS_ON_THE_ROAD"),
+
+ /**
+ * The '<em><b>ANIMALS ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ANIMALS_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ ANIMALS_ON_ROADWAY(11, "ANIMALS_ON_ROADWAY", "ANIMALS_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>PEOPLE ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PEOPLE_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ PEOPLE_ON_ROADWAY(12, "PEOPLE_ON_ROADWAY", "PEOPLE_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ BROKEN_DOWN_VEHICLES(13, "BROKEN_DOWN_VEHICLES", "BROKEN_DOWN_VEHICLES"),
+
+ /**
+ * The '<em><b>VEHICLE ON WRONG CARRIAGEWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_ON_WRONG_CARRIAGEWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_ON_WRONG_CARRIAGEWAY(14, "VEHICLE_ON_WRONG_CARRIAGEWAY", "VEHICLE_ON_WRONG_CARRIAGEWAY"),
+
+ /**
+ * The '<em><b>RESCUE AND RECOVERY WORK IN PROGRESS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESCUE_AND_RECOVERY_WORK_IN_PROGRESS_VALUE
+ * @generated
+ * @ordered
+ */
+ RESCUE_AND_RECOVERY_WORK_IN_PROGRESS(15, "RESCUE_AND_RECOVERY_WORK_IN_PROGRESS", "RESCUE_AND_RECOVERY_WORK_IN_PROGRESS"),
+
+ /**
+ * The '<em><b>REGULATORY MEASURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REGULATORY_MEASURE_VALUE
+ * @generated
+ * @ordered
+ */
+ REGULATORY_MEASURE(16, "REGULATORY_MEASURE", "REGULATORY_MEASURE"),
+
+ /**
+ * The '<em><b>EXTREME WEATHER CONDITIONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXTREME_WEATHER_CONDITIONS_VALUE
+ * @generated
+ * @ordered
+ */
+ EXTREME_WEATHER_CONDITIONS(17, "EXTREME_WEATHER_CONDITIONS", "EXTREME_WEATHER_CONDITIONS"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED(18, "VISIBILITY_REDUCED", "VISIBILITY_REDUCED"),
+
+ /**
+ * The '<em><b>PRECIPITATION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PRECIPITATION_VALUE
+ * @generated
+ * @ordered
+ */
+ PRECIPITATION(19, "PRECIPITATION", "PRECIPITATION"),
+
+ /**
+ * The '<em><b>RECKLESS PERSONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_PERSONS_VALUE
+ * @generated
+ * @ordered
+ */
+ RECKLESS_PERSONS(20, "RECKLESS_PERSONS", "RECKLESS_PERSONS"),
+
+ /**
+ * The '<em><b>OVER HEIGHT WARNING SYSTEM TRIGGERED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED_VALUE
+ * @generated
+ * @ordered
+ */
+ OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED(21, "OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED", "OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED"),
+
+ /**
+ * The '<em><b>TRAFFIC REGULATIONS CHANGED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_REGULATIONS_CHANGED_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_REGULATIONS_CHANGED(22, "TRAFFIC_REGULATIONS_CHANGED", "TRAFFIC_REGULATIONS_CHANGED"),
+
+ /**
+ * The '<em><b>MAJOR EVENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAJOR_EVENT_VALUE
+ * @generated
+ * @ordered
+ */
+ MAJOR_EVENT(23, "MAJOR_EVENT", "MAJOR_EVENT"),
+
+ /**
+ * The '<em><b>SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_NOT_OPERATING(24, "SERVICE_NOT_OPERATING", "SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>SERVICE NOT USEABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_USEABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_NOT_USEABLE(25, "SERVICE_NOT_USEABLE", "SERVICE_NOT_USEABLE"),
+
+ /**
+ * The '<em><b>SLOW MOVING VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_MOVING_VEHICLES(26, "SLOW_MOVING_VEHICLES", "SLOW_MOVING_VEHICLES"),
+
+ /**
+ * The '<em><b>DANGEROUS END OF QUEUE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGEROUS_END_OF_QUEUE_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGEROUS_END_OF_QUEUE(27, "DANGEROUS_END_OF_QUEUE", "DANGEROUS_END_OF_QUEUE"),
+
+ /**
+ * The '<em><b>RISK OF FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RISK_OF_FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ RISK_OF_FIRE(28, "RISK_OF_FIRE", "RISK_OF_FIRE"),
+
+ /**
+ * The '<em><b>TIME DELAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY(29, "TIME_DELAY", "TIME_DELAY"),
+
+ /**
+ * The '<em><b>POLICE CHECKPOINT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #POLICE_CHECKPOINT_VALUE
+ * @generated
+ * @ordered
+ */
+ POLICE_CHECKPOINT(30, "POLICE_CHECKPOINT", "POLICE_CHECKPOINT"),
+
+ /**
+ * The '<em><b>MALFUNCTIONING ROADSIDE EQUIPMENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MALFUNCTIONING_ROADSIDE_EQUIPMENT_VALUE
+ * @generated
+ * @ordered
+ */
+ MALFUNCTIONING_ROADSIDE_EQUIPMENT(31, "MALFUNCTIONING_ROADSIDE_EQUIPMENT", "MALFUNCTIONING_ROADSIDE_EQUIPMENT");
+
+ /**
+ * The '<em><b>TRAFFIC CONGESTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC CONGESTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONGESTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_CONGESTION_VALUE = 1;
+
+ /**
+ * The '<em><b>ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_VALUE = 2;
+
+ /**
+ * The '<em><b>ROADWORKS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROADWORKS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROADWORKS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROADWORKS_VALUE = 3;
+
+ /**
+ * The '<em><b>NARROW LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NARROW LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NARROW_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NARROW_LANES_VALUE = 4;
+
+ /**
+ * The '<em><b>IMPASSIBILITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IMPASSIBILITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IMPASSIBILITY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IMPASSIBILITY_VALUE = 5;
+
+ /**
+ * The '<em><b>SLIPPERY ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIPPERY ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIPPERY_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIPPERY_ROAD_VALUE = 6;
+
+ /**
+ * The '<em><b>AQUAPLANING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AQUAPLANING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AQUAPLANING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AQUAPLANING_VALUE = 7;
+
+ /**
+ * The '<em><b>FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FIRE_VALUE = 8;
+
+ /**
+ * The '<em><b>HAZARDOUS DRIVING CONDITIONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HAZARDOUS DRIVING CONDITIONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HAZARDOUS_DRIVING_CONDITIONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HAZARDOUS_DRIVING_CONDITIONS_VALUE = 9;
+
+ /**
+ * The '<em><b>OBJECTS ON THE ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OBJECTS ON THE ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OBJECTS_ON_THE_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OBJECTS_ON_THE_ROAD_VALUE = 10;
+
+ /**
+ * The '<em><b>ANIMALS ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ANIMALS ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ANIMALS_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ANIMALS_ON_ROADWAY_VALUE = 11;
+
+ /**
+ * The '<em><b>PEOPLE ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PEOPLE ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PEOPLE_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PEOPLE_ON_ROADWAY_VALUE = 12;
+
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BROKEN DOWN VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BROKEN_DOWN_VEHICLES_VALUE = 13;
+
+ /**
+ * The '<em><b>VEHICLE ON WRONG CARRIAGEWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE ON WRONG CARRIAGEWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_ON_WRONG_CARRIAGEWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_ON_WRONG_CARRIAGEWAY_VALUE = 14;
+
+ /**
+ * The '<em><b>RESCUE AND RECOVERY WORK IN PROGRESS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESCUE AND RECOVERY WORK IN PROGRESS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESCUE_AND_RECOVERY_WORK_IN_PROGRESS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESCUE_AND_RECOVERY_WORK_IN_PROGRESS_VALUE = 15;
+
+ /**
+ * The '<em><b>REGULATORY MEASURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REGULATORY MEASURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REGULATORY_MEASURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REGULATORY_MEASURE_VALUE = 16;
+
+ /**
+ * The '<em><b>EXTREME WEATHER CONDITIONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EXTREME WEATHER CONDITIONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXTREME_WEATHER_CONDITIONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EXTREME_WEATHER_CONDITIONS_VALUE = 17;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_VALUE = 18;
+
+ /**
+ * The '<em><b>PRECIPITATION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PRECIPITATION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PRECIPITATION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PRECIPITATION_VALUE = 19;
+
+ /**
+ * The '<em><b>RECKLESS PERSONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RECKLESS PERSONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_PERSONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RECKLESS_PERSONS_VALUE = 20;
+
+ /**
+ * The '<em><b>OVER HEIGHT WARNING SYSTEM TRIGGERED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVER HEIGHT WARNING SYSTEM TRIGGERED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED_VALUE = 21;
+
+ /**
+ * The '<em><b>TRAFFIC REGULATIONS CHANGED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC REGULATIONS CHANGED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_REGULATIONS_CHANGED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_REGULATIONS_CHANGED_VALUE = 22;
+
+ /**
+ * The '<em><b>MAJOR EVENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAJOR EVENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAJOR_EVENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MAJOR_EVENT_VALUE = 23;
+
+ /**
+ * The '<em><b>SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_NOT_OPERATING_VALUE = 24;
+
+ /**
+ * The '<em><b>SERVICE NOT USEABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE NOT USEABLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_USEABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_NOT_USEABLE_VALUE = 25;
+
+ /**
+ * The '<em><b>SLOW MOVING VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW MOVING VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_MOVING_VEHICLES_VALUE = 26;
+
+ /**
+ * The '<em><b>DANGEROUS END OF QUEUE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGEROUS END OF QUEUE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGEROUS_END_OF_QUEUE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGEROUS_END_OF_QUEUE_VALUE = 27;
+
+ /**
+ * The '<em><b>RISK OF FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RISK OF FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RISK_OF_FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RISK_OF_FIRE_VALUE = 28;
+
+ /**
+ * The '<em><b>TIME DELAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_VALUE = 29;
+
+ /**
+ * The '<em><b>POLICE CHECKPOINT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>POLICE CHECKPOINT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #POLICE_CHECKPOINT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int POLICE_CHECKPOINT_VALUE = 30;
+
+ /**
+ * The '<em><b>MALFUNCTIONING ROADSIDE EQUIPMENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MALFUNCTIONING ROADSIDE EQUIPMENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MALFUNCTIONING_ROADSIDE_EQUIPMENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MALFUNCTIONING_ROADSIDE_EQUIPMENT_VALUE = 31;
+
+ /**
+ * An array of all the '<em><b>Cause Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CauseCode[] VALUES_ARRAY =
+ new CauseCode[] {
+ TRAFFIC_CONGESTION,
+ ACCIDENT,
+ ROADWORKS,
+ NARROW_LANES,
+ IMPASSIBILITY,
+ SLIPPERY_ROAD,
+ AQUAPLANING,
+ FIRE,
+ HAZARDOUS_DRIVING_CONDITIONS,
+ OBJECTS_ON_THE_ROAD,
+ ANIMALS_ON_ROADWAY,
+ PEOPLE_ON_ROADWAY,
+ BROKEN_DOWN_VEHICLES,
+ VEHICLE_ON_WRONG_CARRIAGEWAY,
+ RESCUE_AND_RECOVERY_WORK_IN_PROGRESS,
+ REGULATORY_MEASURE,
+ EXTREME_WEATHER_CONDITIONS,
+ VISIBILITY_REDUCED,
+ PRECIPITATION,
+ RECKLESS_PERSONS,
+ OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED,
+ TRAFFIC_REGULATIONS_CHANGED,
+ MAJOR_EVENT,
+ SERVICE_NOT_OPERATING,
+ SERVICE_NOT_USEABLE,
+ SLOW_MOVING_VEHICLES,
+ DANGEROUS_END_OF_QUEUE,
+ RISK_OF_FIRE,
+ TIME_DELAY,
+ POLICE_CHECKPOINT,
+ MALFUNCTIONING_ROADSIDE_EQUIPMENT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Cause Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<CauseCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Cause Code</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CauseCode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CauseCode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cause Code</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CauseCode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CauseCode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cause Code</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CauseCode get(int value) {
+ switch (value) {
+ case TRAFFIC_CONGESTION_VALUE: return TRAFFIC_CONGESTION;
+ case ACCIDENT_VALUE: return ACCIDENT;
+ case ROADWORKS_VALUE: return ROADWORKS;
+ case NARROW_LANES_VALUE: return NARROW_LANES;
+ case IMPASSIBILITY_VALUE: return IMPASSIBILITY;
+ case SLIPPERY_ROAD_VALUE: return SLIPPERY_ROAD;
+ case AQUAPLANING_VALUE: return AQUAPLANING;
+ case FIRE_VALUE: return FIRE;
+ case HAZARDOUS_DRIVING_CONDITIONS_VALUE: return HAZARDOUS_DRIVING_CONDITIONS;
+ case OBJECTS_ON_THE_ROAD_VALUE: return OBJECTS_ON_THE_ROAD;
+ case ANIMALS_ON_ROADWAY_VALUE: return ANIMALS_ON_ROADWAY;
+ case PEOPLE_ON_ROADWAY_VALUE: return PEOPLE_ON_ROADWAY;
+ case BROKEN_DOWN_VEHICLES_VALUE: return BROKEN_DOWN_VEHICLES;
+ case VEHICLE_ON_WRONG_CARRIAGEWAY_VALUE: return VEHICLE_ON_WRONG_CARRIAGEWAY;
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS_VALUE: return RESCUE_AND_RECOVERY_WORK_IN_PROGRESS;
+ case REGULATORY_MEASURE_VALUE: return REGULATORY_MEASURE;
+ case EXTREME_WEATHER_CONDITIONS_VALUE: return EXTREME_WEATHER_CONDITIONS;
+ case VISIBILITY_REDUCED_VALUE: return VISIBILITY_REDUCED;
+ case PRECIPITATION_VALUE: return PRECIPITATION;
+ case RECKLESS_PERSONS_VALUE: return RECKLESS_PERSONS;
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED_VALUE: return OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED;
+ case TRAFFIC_REGULATIONS_CHANGED_VALUE: return TRAFFIC_REGULATIONS_CHANGED;
+ case MAJOR_EVENT_VALUE: return MAJOR_EVENT;
+ case SERVICE_NOT_OPERATING_VALUE: return SERVICE_NOT_OPERATING;
+ case SERVICE_NOT_USEABLE_VALUE: return SERVICE_NOT_USEABLE;
+ case SLOW_MOVING_VEHICLES_VALUE: return SLOW_MOVING_VEHICLES;
+ case DANGEROUS_END_OF_QUEUE_VALUE: return DANGEROUS_END_OF_QUEUE;
+ case RISK_OF_FIRE_VALUE: return RISK_OF_FIRE;
+ case TIME_DELAY_VALUE: return TIME_DELAY;
+ case POLICE_CHECKPOINT_VALUE: return POLICE_CHECKPOINT;
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT_VALUE: return MALFUNCTIONING_ROADSIDE_EQUIPMENT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private CauseCode(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //CauseCode
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DangerousEndOfQueue.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DangerousEndOfQueue.java
new file mode 100755
index 0000000..f125b6a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DangerousEndOfQueue.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Dangerous End Of Queue</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getDangerousEndOfQueue()
+ * @model
+ * @generated
+ */
+public enum DangerousEndOfQueue implements Enumerator {
+ /**
+ * The '<em><b>SUDDEN END OF QUEUE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUDDEN_END_OF_QUEUE_VALUE
+ * @generated
+ * @ordered
+ */
+ SUDDEN_END_OF_QUEUE(1, "SUDDEN_END_OF_QUEUE", "SUDDEN_END_OF_QUEUE"),
+
+ /**
+ * The '<em><b>QUEUE OVER HILL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUE_OVER_HILL_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUE_OVER_HILL(2, "QUEUE_OVER_HILL", "QUEUE_OVER_HILL"),
+
+ /**
+ * The '<em><b>QUEUE AROUND BEND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUE_AROUND_BEND_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUE_AROUND_BEND(3, "QUEUE_AROUND_BEND", "QUEUE_AROUND_BEND"),
+
+ /**
+ * The '<em><b>QUEUE IN TUNNEL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUE_IN_TUNNEL_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUE_IN_TUNNEL(4, "QUEUE_IN_TUNNEL", "QUEUE_IN_TUNNEL");
+
+ /**
+ * The '<em><b>SUDDEN END OF QUEUE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUDDEN END OF QUEUE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUDDEN_END_OF_QUEUE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SUDDEN_END_OF_QUEUE_VALUE = 1;
+
+ /**
+ * The '<em><b>QUEUE OVER HILL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUE OVER HILL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUE_OVER_HILL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUE_OVER_HILL_VALUE = 2;
+
+ /**
+ * The '<em><b>QUEUE AROUND BEND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUE AROUND BEND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUE_AROUND_BEND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUE_AROUND_BEND_VALUE = 3;
+
+ /**
+ * The '<em><b>QUEUE IN TUNNEL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUE IN TUNNEL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUE_IN_TUNNEL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUE_IN_TUNNEL_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Dangerous End Of Queue</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DangerousEndOfQueue[] VALUES_ARRAY =
+ new DangerousEndOfQueue[] {
+ SUDDEN_END_OF_QUEUE,
+ QUEUE_OVER_HILL,
+ QUEUE_AROUND_BEND,
+ QUEUE_IN_TUNNEL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Dangerous End Of Queue</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DangerousEndOfQueue> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Dangerous End Of Queue</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DangerousEndOfQueue get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DangerousEndOfQueue result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dangerous End Of Queue</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DangerousEndOfQueue getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DangerousEndOfQueue result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dangerous End Of Queue</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DangerousEndOfQueue get(int value) {
+ switch (value) {
+ case SUDDEN_END_OF_QUEUE_VALUE: return SUDDEN_END_OF_QUEUE;
+ case QUEUE_OVER_HILL_VALUE: return QUEUE_OVER_HILL;
+ case QUEUE_AROUND_BEND_VALUE: return QUEUE_AROUND_BEND;
+ case QUEUE_IN_TUNNEL_VALUE: return QUEUE_IN_TUNNEL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DangerousEndOfQueue(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DangerousEndOfQueue
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DoNotLeaveYourVehicle.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DoNotLeaveYourVehicle.java
new file mode 100755
index 0000000..1f48bb4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DoNotLeaveYourVehicle.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Do Not Leave Your Vehicle</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getDoNotLeaveYourVehicle()
+ * @model
+ * @generated
+ */
+public enum DoNotLeaveYourVehicle implements Enumerator {
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_LEAVE_YOUR_VEHICLE(1, "DO_NOT_LEAVE_YOUR_VEHICLE", "DO_NOT_LEAVE_YOUR_VEHICLE"),
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE CLOSE WINDOWS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS(2, "DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS", "DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS");
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_LEAVE_YOUR_VEHICLE_VALUE = 1;
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE CLOSE WINDOWS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT LEAVE YOUR VEHICLE CLOSE WINDOWS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Do Not Leave Your Vehicle</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DoNotLeaveYourVehicle[] VALUES_ARRAY =
+ new DoNotLeaveYourVehicle[] {
+ DO_NOT_LEAVE_YOUR_VEHICLE,
+ DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Do Not Leave Your Vehicle</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DoNotLeaveYourVehicle> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Do Not Leave Your Vehicle</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DoNotLeaveYourVehicle get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DoNotLeaveYourVehicle result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Do Not Leave Your Vehicle</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DoNotLeaveYourVehicle getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DoNotLeaveYourVehicle result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Do Not Leave Your Vehicle</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DoNotLeaveYourVehicle get(int value) {
+ switch (value) {
+ case DO_NOT_LEAVE_YOUR_VEHICLE_VALUE: return DO_NOT_LEAVE_YOUR_VEHICLE;
+ case DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS_VALUE: return DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DoNotLeaveYourVehicle(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DoNotLeaveYourVehicle
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DriveCarefully.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DriveCarefully.java
new file mode 100755
index 0000000..04cea96
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DriveCarefully.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Drive Carefully</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getDriveCarefully()
+ * @model
+ * @generated
+ */
+public enum DriveCarefully implements Enumerator {
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON ENTRY SLIP ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD(1, "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD", "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD"),
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON EXIT SLIP ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD(2, "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD", "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD"),
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY ICE BUILDUP ON CABLE STRUCTURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE(3, "DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE", "DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE");
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON ENTRY SLIP ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON ENTRY SLIP ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD_VALUE = 1;
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON EXIT SLIP ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON EXIT SLIP ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD_VALUE = 2;
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY ICE BUILDUP ON CABLE STRUCTURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY ICE BUILDUP ON CABLE STRUCTURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Drive Carefully</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DriveCarefully[] VALUES_ARRAY =
+ new DriveCarefully[] {
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD,
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD,
+ DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Drive Carefully</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DriveCarefully> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Drive Carefully</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DriveCarefully get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DriveCarefully result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Drive Carefully</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DriveCarefully getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DriveCarefully result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Drive Carefully</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DriveCarefully get(int value) {
+ switch (value) {
+ case DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD_VALUE: return DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD;
+ case DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD_VALUE: return DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD;
+ case DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE_VALUE: return DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DriveCarefully(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DriveCarefully
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DrivingNotAllowed.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DrivingNotAllowed.java
new file mode 100755
index 0000000..0e562e4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/DrivingNotAllowed.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Driving Not Allowed</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getDrivingNotAllowed()
+ * @model
+ * @generated
+ */
+public enum DrivingNotAllowed implements Enumerator {
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED TAKE NEXT POSSIBLE PLACE TO STOP VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE(1, "DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE", "DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE");
+
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED TAKE NEXT POSSIBLE PLACE TO STOP VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVING NOT ALLOWED TAKE NEXT POSSIBLE PLACE TO STOP VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Driving Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DrivingNotAllowed[] VALUES_ARRAY =
+ new DrivingNotAllowed[] {
+ DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Driving Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DrivingNotAllowed> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Driving Not Allowed</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DrivingNotAllowed get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DrivingNotAllowed result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Driving Not Allowed</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DrivingNotAllowed getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DrivingNotAllowed result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Driving Not Allowed</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DrivingNotAllowed get(int value) {
+ switch (value) {
+ case DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE_VALUE: return DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DrivingNotAllowed(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DrivingNotAllowed
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/EffectCode.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/EffectCode.java
new file mode 100755
index 0000000..9a14d56
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/EffectCode.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Effect Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getEffectCode()
+ * @model
+ * @generated
+ */
+public enum EffectCode implements Enumerator {
+ /**
+ * The '<em><b>TRAFFIC FLOW UNKNOWN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_FLOW_UNKNOWN_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_FLOW_UNKNOWN(1, "TRAFFIC_FLOW_UNKNOWN", "TRAFFIC_FLOW_UNKNOWN"),
+
+ /**
+ * The '<em><b>FREE TRAFFIC FLOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FREE_TRAFFIC_FLOW_VALUE
+ * @generated
+ * @ordered
+ */
+ FREE_TRAFFIC_FLOW(2, "FREE_TRAFFIC_FLOW", "FREE_TRAFFIC_FLOW"),
+
+ /**
+ * The '<em><b>HEAVY TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_TRAFFIC(3, "HEAVY_TRAFFIC", "HEAVY_TRAFFIC"),
+
+ /**
+ * The '<em><b>SLOW TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_TRAFFIC(4, "SLOW_TRAFFIC", "SLOW_TRAFFIC"),
+
+ /**
+ * The '<em><b>QUEUING TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUING_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUING_TRAFFIC(5, "QUEUING_TRAFFIC", "QUEUING_TRAFFIC"),
+
+ /**
+ * The '<em><b>STATIONARY TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STATIONARY_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ STATIONARY_TRAFFIC(6, "STATIONARY_TRAFFIC", "STATIONARY_TRAFFIC"),
+
+ /**
+ * The '<em><b>NO TRAFFIC FLOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_TRAFFIC_FLOW_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_TRAFFIC_FLOW(7, "NO_TRAFFIC_FLOW", "NO_TRAFFIC_FLOW");
+
+ /**
+ * The '<em><b>TRAFFIC FLOW UNKNOWN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC FLOW UNKNOWN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_FLOW_UNKNOWN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_FLOW_UNKNOWN_VALUE = 1;
+
+ /**
+ * The '<em><b>FREE TRAFFIC FLOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FREE TRAFFIC FLOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FREE_TRAFFIC_FLOW
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FREE_TRAFFIC_FLOW_VALUE = 2;
+
+ /**
+ * The '<em><b>HEAVY TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_TRAFFIC_VALUE = 3;
+
+ /**
+ * The '<em><b>SLOW TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_TRAFFIC_VALUE = 4;
+
+ /**
+ * The '<em><b>QUEUING TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUING TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUING_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUING_TRAFFIC_VALUE = 5;
+
+ /**
+ * The '<em><b>STATIONARY TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STATIONARY TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STATIONARY_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STATIONARY_TRAFFIC_VALUE = 6;
+
+ /**
+ * The '<em><b>NO TRAFFIC FLOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO TRAFFIC FLOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_TRAFFIC_FLOW
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_TRAFFIC_FLOW_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Effect Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EffectCode[] VALUES_ARRAY =
+ new EffectCode[] {
+ TRAFFIC_FLOW_UNKNOWN,
+ FREE_TRAFFIC_FLOW,
+ HEAVY_TRAFFIC,
+ SLOW_TRAFFIC,
+ QUEUING_TRAFFIC,
+ STATIONARY_TRAFFIC,
+ NO_TRAFFIC_FLOW,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Effect Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<EffectCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Effect Code</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EffectCode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EffectCode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Effect Code</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EffectCode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EffectCode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Effect Code</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EffectCode get(int value) {
+ switch (value) {
+ case TRAFFIC_FLOW_UNKNOWN_VALUE: return TRAFFIC_FLOW_UNKNOWN;
+ case FREE_TRAFFIC_FLOW_VALUE: return FREE_TRAFFIC_FLOW;
+ case HEAVY_TRAFFIC_VALUE: return HEAVY_TRAFFIC;
+ case SLOW_TRAFFIC_VALUE: return SLOW_TRAFFIC;
+ case QUEUING_TRAFFIC_VALUE: return QUEUING_TRAFFIC;
+ case STATIONARY_TRAFFIC_VALUE: return STATIONARY_TRAFFIC;
+ case NO_TRAFFIC_FLOW_VALUE: return NO_TRAFFIC_FLOW;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EffectCode(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //EffectCode
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ExtremeWeatherConditions.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ExtremeWeatherConditions.java
new file mode 100755
index 0000000..e6dc700
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ExtremeWeatherConditions.java
@@ -0,0 +1,321 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Extreme Weather Conditions</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getExtremeWeatherConditions()
+ * @model
+ * @generated
+ */
+public enum ExtremeWeatherConditions implements Enumerator {
+ /**
+ * The '<em><b>STRONG WINDS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRONG_WINDS_VALUE
+ * @generated
+ * @ordered
+ */
+ STRONG_WINDS(1, "STRONG_WINDS", "STRONG_WINDS"),
+
+ /**
+ * The '<em><b>DAMAGING HAIL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DAMAGING_HAIL_VALUE
+ * @generated
+ * @ordered
+ */
+ DAMAGING_HAIL(2, "DAMAGING_HAIL", "DAMAGING_HAIL"),
+
+ /**
+ * The '<em><b>HURRICANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HURRICANE_VALUE
+ * @generated
+ * @ordered
+ */
+ HURRICANE(3, "HURRICANE", "HURRICANE"),
+
+ /**
+ * The '<em><b>THUNDERSTORM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #THUNDERSTORM_VALUE
+ * @generated
+ * @ordered
+ */
+ THUNDERSTORM(4, "THUNDERSTORM", "THUNDERSTORM"),
+
+ /**
+ * The '<em><b>TORNADO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TORNADO_VALUE
+ * @generated
+ * @ordered
+ */
+ TORNADO(5, "TORNADO", "TORNADO"),
+
+ /**
+ * The '<em><b>BLIZARD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLIZARD_VALUE
+ * @generated
+ * @ordered
+ */
+ BLIZARD(6, "BLIZARD", "BLIZARD");
+
+ /**
+ * The '<em><b>STRONG WINDS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRONG WINDS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRONG_WINDS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRONG_WINDS_VALUE = 1;
+
+ /**
+ * The '<em><b>DAMAGING HAIL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DAMAGING HAIL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DAMAGING_HAIL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DAMAGING_HAIL_VALUE = 2;
+
+ /**
+ * The '<em><b>HURRICANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HURRICANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HURRICANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HURRICANE_VALUE = 3;
+
+ /**
+ * The '<em><b>THUNDERSTORM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>THUNDERSTORM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #THUNDERSTORM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int THUNDERSTORM_VALUE = 4;
+
+ /**
+ * The '<em><b>TORNADO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TORNADO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TORNADO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TORNADO_VALUE = 5;
+
+ /**
+ * The '<em><b>BLIZARD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLIZARD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLIZARD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLIZARD_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Extreme Weather Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ExtremeWeatherConditions[] VALUES_ARRAY =
+ new ExtremeWeatherConditions[] {
+ STRONG_WINDS,
+ DAMAGING_HAIL,
+ HURRICANE,
+ THUNDERSTORM,
+ TORNADO,
+ BLIZARD,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Extreme Weather Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ExtremeWeatherConditions> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Extreme Weather Conditions</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExtremeWeatherConditions get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExtremeWeatherConditions result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Extreme Weather Conditions</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExtremeWeatherConditions getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExtremeWeatherConditions result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Extreme Weather Conditions</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExtremeWeatherConditions get(int value) {
+ switch (value) {
+ case STRONG_WINDS_VALUE: return STRONG_WINDS;
+ case DAMAGING_HAIL_VALUE: return DAMAGING_HAIL;
+ case HURRICANE_VALUE: return HURRICANE;
+ case THUNDERSTORM_VALUE: return THUNDERSTORM;
+ case TORNADO_VALUE: return TORNADO;
+ case BLIZARD_VALUE: return BLIZARD;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ExtremeWeatherConditions(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ExtremeWeatherConditions
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Fire.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Fire.java
new file mode 100755
index 0000000..fecfc50
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Fire.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Fire</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getFire()
+ * @model
+ * @generated
+ */
+public enum Fire implements Enumerator {
+ /**
+ * The '<em><b>MAJOR FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAJOR_FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ MAJOR_FIRE(1, "MAJOR_FIRE", "MAJOR_FIRE"),
+
+ /**
+ * The '<em><b>FOREST FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOREST_FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ FOREST_FIRE(2, "FOREST_FIRE", "FOREST_FIRE");
+
+ /**
+ * The '<em><b>MAJOR FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAJOR FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAJOR_FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MAJOR_FIRE_VALUE = 1;
+
+ /**
+ * The '<em><b>FOREST FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOREST FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOREST_FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOREST_FIRE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Fire[] VALUES_ARRAY =
+ new Fire[] {
+ MAJOR_FIRE,
+ FOREST_FIRE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Fire> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Fire</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Fire get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Fire result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Fire</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Fire getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Fire result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Fire</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Fire get(int value) {
+ switch (value) {
+ case MAJOR_FIRE_VALUE: return MAJOR_FIRE;
+ case FOREST_FIRE_VALUE: return FOREST_FIRE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Fire(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Fire
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/FollowDiversion.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/FollowDiversion.java
new file mode 100755
index 0000000..8804eae
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/FollowDiversion.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Follow Diversion</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getFollowDiversion()
+ * @model
+ * @generated
+ */
+public enum FollowDiversion implements Enumerator {
+ /**
+ * The '<em><b>FOLLOW DIVERSION SIGNS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION_SIGNS_VALUE
+ * @generated
+ * @ordered
+ */
+ FOLLOW_DIVERSION_SIGNS(1, "FOLLOW_DIVERSION_SIGNS", "FOLLOW_DIVERSION_SIGNS");
+
+ /**
+ * The '<em><b>FOLLOW DIVERSION SIGNS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOLLOW DIVERSION SIGNS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION_SIGNS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOLLOW_DIVERSION_SIGNS_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Follow Diversion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final FollowDiversion[] VALUES_ARRAY =
+ new FollowDiversion[] {
+ FOLLOW_DIVERSION_SIGNS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Follow Diversion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<FollowDiversion> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Follow Diversion</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FollowDiversion get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FollowDiversion result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Follow Diversion</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FollowDiversion getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FollowDiversion result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Follow Diversion</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FollowDiversion get(int value) {
+ switch (value) {
+ case FOLLOW_DIVERSION_SIGNS_VALUE: return FOLLOW_DIVERSION_SIGNS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private FollowDiversion(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //FollowDiversion
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/GivingPathVehiclesFromBehind.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/GivingPathVehiclesFromBehind.java
new file mode 100755
index 0000000..b4690ed
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/GivingPathVehiclesFromBehind.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Giving Path Vehicles From Behind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getGivingPathVehiclesFromBehind()
+ * @model
+ * @generated
+ */
+public enum GivingPathVehiclesFromBehind implements Enumerator {
+ /**
+ * The '<em><b>GIVING PATH FOR RESCUE VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_RESCUE_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ GIVING_PATH_FOR_RESCUE_VEHICLE(1, "GIVING_PATH_FOR_RESCUE_VEHICLE", "GIVING_PATH_FOR_RESCUE_VEHICLE"),
+
+ /**
+ * The '<em><b>GIVING PATH FOR SERVICE VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_SERVICE_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ GIVING_PATH_FOR_SERVICE_VEHICLES(2, "GIVING_PATH_FOR_SERVICE_VEHICLES", "GIVING_PATH_FOR_SERVICE_VEHICLES");
+
+ /**
+ * The '<em><b>GIVING PATH FOR RESCUE VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GIVING PATH FOR RESCUE VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_RESCUE_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GIVING_PATH_FOR_RESCUE_VEHICLE_VALUE = 1;
+
+ /**
+ * The '<em><b>GIVING PATH FOR SERVICE VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GIVING PATH FOR SERVICE VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_SERVICE_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GIVING_PATH_FOR_SERVICE_VEHICLES_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Giving Path Vehicles From Behind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final GivingPathVehiclesFromBehind[] VALUES_ARRAY =
+ new GivingPathVehiclesFromBehind[] {
+ GIVING_PATH_FOR_RESCUE_VEHICLE,
+ GIVING_PATH_FOR_SERVICE_VEHICLES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Giving Path Vehicles From Behind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<GivingPathVehiclesFromBehind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Giving Path Vehicles From Behind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GivingPathVehiclesFromBehind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GivingPathVehiclesFromBehind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Giving Path Vehicles From Behind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GivingPathVehiclesFromBehind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GivingPathVehiclesFromBehind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Giving Path Vehicles From Behind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GivingPathVehiclesFromBehind get(int value) {
+ switch (value) {
+ case GIVING_PATH_FOR_RESCUE_VEHICLE_VALUE: return GIVING_PATH_FOR_RESCUE_VEHICLE;
+ case GIVING_PATH_FOR_SERVICE_VEHICLES_VALUE: return GIVING_PATH_FOR_SERVICE_VEHICLES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private GivingPathVehiclesFromBehind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //GivingPathVehiclesFromBehind
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/HazardousDrivingConditions.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/HazardousDrivingConditions.java
new file mode 100755
index 0000000..44998a5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/HazardousDrivingConditions.java
@@ -0,0 +1,402 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Hazardous Driving Conditions</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getHazardousDrivingConditions()
+ * @model
+ * @generated
+ */
+public enum HazardousDrivingConditions implements Enumerator {
+ /**
+ * The '<em><b>ROCKFALLS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROCKFALLS_VALUE
+ * @generated
+ * @ordered
+ */
+ ROCKFALLS(1, "ROCKFALLS", "ROCKFALLS"),
+
+ /**
+ * The '<em><b>EARTHQUAKE DAMAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EARTHQUAKE_DAMAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ EARTHQUAKE_DAMAGE(2, "EARTHQUAKE_DAMAGE", "EARTHQUAKE_DAMAGE"),
+
+ /**
+ * The '<em><b>SEWER COLLAPSE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SEWER_COLLAPSE_VALUE
+ * @generated
+ * @ordered
+ */
+ SEWER_COLLAPSE(3, "SEWER_COLLAPSE", "SEWER_COLLAPSE"),
+
+ /**
+ * The '<em><b>SUBSIDENCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUBSIDENCE_VALUE
+ * @generated
+ * @ordered
+ */
+ SUBSIDENCE(4, "SUBSIDENCE", "SUBSIDENCE"),
+
+ /**
+ * The '<em><b>SNOW DRIFTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SNOW_DRIFTS_VALUE
+ * @generated
+ * @ordered
+ */
+ SNOW_DRIFTS(5, "SNOW_DRIFTS", "SNOW_DRIFTS"),
+
+ /**
+ * The '<em><b>STORM DAMAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STORM_DAMAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ STORM_DAMAGE(6, "STORM_DAMAGE", "STORM_DAMAGE"),
+
+ /**
+ * The '<em><b>BURST PIPE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BURST_PIPE_VALUE
+ * @generated
+ * @ordered
+ */
+ BURST_PIPE(7, "BURST_PIPE", "BURST_PIPE"),
+
+ /**
+ * The '<em><b>VOLCANO ERUPTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VOLCANO_ERUPTION_VALUE
+ * @generated
+ * @ordered
+ */
+ VOLCANO_ERUPTION(8, "VOLCANO_ERUPTION", "VOLCANO_ERUPTION"),
+
+ /**
+ * The '<em><b>FALLING ICE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FALLING_ICE_VALUE
+ * @generated
+ * @ordered
+ */
+ FALLING_ICE(9, "FALLING_ICE", "FALLING_ICE");
+
+ /**
+ * The '<em><b>ROCKFALLS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROCKFALLS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROCKFALLS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROCKFALLS_VALUE = 1;
+
+ /**
+ * The '<em><b>EARTHQUAKE DAMAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EARTHQUAKE DAMAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EARTHQUAKE_DAMAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EARTHQUAKE_DAMAGE_VALUE = 2;
+
+ /**
+ * The '<em><b>SEWER COLLAPSE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SEWER COLLAPSE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SEWER_COLLAPSE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SEWER_COLLAPSE_VALUE = 3;
+
+ /**
+ * The '<em><b>SUBSIDENCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUBSIDENCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUBSIDENCE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SUBSIDENCE_VALUE = 4;
+
+ /**
+ * The '<em><b>SNOW DRIFTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SNOW DRIFTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SNOW_DRIFTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SNOW_DRIFTS_VALUE = 5;
+
+ /**
+ * The '<em><b>STORM DAMAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STORM DAMAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STORM_DAMAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STORM_DAMAGE_VALUE = 6;
+
+ /**
+ * The '<em><b>BURST PIPE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BURST PIPE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BURST_PIPE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BURST_PIPE_VALUE = 7;
+
+ /**
+ * The '<em><b>VOLCANO ERUPTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VOLCANO ERUPTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VOLCANO_ERUPTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VOLCANO_ERUPTION_VALUE = 8;
+
+ /**
+ * The '<em><b>FALLING ICE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FALLING ICE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FALLING_ICE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FALLING_ICE_VALUE = 9;
+
+ /**
+ * An array of all the '<em><b>Hazardous Driving Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final HazardousDrivingConditions[] VALUES_ARRAY =
+ new HazardousDrivingConditions[] {
+ ROCKFALLS,
+ EARTHQUAKE_DAMAGE,
+ SEWER_COLLAPSE,
+ SUBSIDENCE,
+ SNOW_DRIFTS,
+ STORM_DAMAGE,
+ BURST_PIPE,
+ VOLCANO_ERUPTION,
+ FALLING_ICE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Hazardous Driving Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<HazardousDrivingConditions> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Hazardous Driving Conditions</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HazardousDrivingConditions get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HazardousDrivingConditions result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Hazardous Driving Conditions</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HazardousDrivingConditions getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HazardousDrivingConditions result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Hazardous Driving Conditions</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HazardousDrivingConditions get(int value) {
+ switch (value) {
+ case ROCKFALLS_VALUE: return ROCKFALLS;
+ case EARTHQUAKE_DAMAGE_VALUE: return EARTHQUAKE_DAMAGE;
+ case SEWER_COLLAPSE_VALUE: return SEWER_COLLAPSE;
+ case SUBSIDENCE_VALUE: return SUBSIDENCE;
+ case SNOW_DRIFTS_VALUE: return SNOW_DRIFTS;
+ case STORM_DAMAGE_VALUE: return STORM_DAMAGE;
+ case BURST_PIPE_VALUE: return BURST_PIPE;
+ case VOLCANO_ERUPTION_VALUE: return VOLCANO_ERUPTION;
+ case FALLING_ICE_VALUE: return FALLING_ICE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private HazardousDrivingConditions(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //HazardousDrivingConditions
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Impassibility.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Impassibility.java
new file mode 100755
index 0000000..4c5c158
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Impassibility.java
@@ -0,0 +1,321 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Impassibility</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getImpassibility()
+ * @model
+ * @generated
+ */
+public enum Impassibility implements Enumerator {
+ /**
+ * The '<em><b>FLOODING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOODING_VALUE
+ * @generated
+ * @ordered
+ */
+ FLOODING(1, "FLOODING", "FLOODING"),
+
+ /**
+ * The '<em><b>DANGER OF AVALANCHES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_OF_AVALANCHES_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_OF_AVALANCHES(2, "DANGER_OF_AVALANCHES", "DANGER_OF_AVALANCHES"),
+
+ /**
+ * The '<em><b>BLASTING OF AVALANCHES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLASTING_OF_AVALANCHES_VALUE
+ * @generated
+ * @ordered
+ */
+ BLASTING_OF_AVALANCHES(3, "BLASTING_OF_AVALANCHES", "BLASTING_OF_AVALANCHES"),
+
+ /**
+ * The '<em><b>LANDSLIPS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LANDSLIPS_VALUE
+ * @generated
+ * @ordered
+ */
+ LANDSLIPS(4, "LANDSLIPS", "LANDSLIPS"),
+
+ /**
+ * The '<em><b>CHEMICAL SPILLAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHEMICAL_SPILLAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ CHEMICAL_SPILLAGE(5, "CHEMICAL_SPILLAGE", "CHEMICAL_SPILLAGE"),
+
+ /**
+ * The '<em><b>WINTER CLOSURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WINTER_CLOSURE_VALUE
+ * @generated
+ * @ordered
+ */
+ WINTER_CLOSURE(6, "WINTER_CLOSURE", "WINTER_CLOSURE");
+
+ /**
+ * The '<em><b>FLOODING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FLOODING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FLOODING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FLOODING_VALUE = 1;
+
+ /**
+ * The '<em><b>DANGER OF AVALANCHES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER OF AVALANCHES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_OF_AVALANCHES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_OF_AVALANCHES_VALUE = 2;
+
+ /**
+ * The '<em><b>BLASTING OF AVALANCHES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLASTING OF AVALANCHES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLASTING_OF_AVALANCHES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLASTING_OF_AVALANCHES_VALUE = 3;
+
+ /**
+ * The '<em><b>LANDSLIPS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LANDSLIPS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LANDSLIPS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LANDSLIPS_VALUE = 4;
+
+ /**
+ * The '<em><b>CHEMICAL SPILLAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHEMICAL SPILLAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHEMICAL_SPILLAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHEMICAL_SPILLAGE_VALUE = 5;
+
+ /**
+ * The '<em><b>WINTER CLOSURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WINTER CLOSURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WINTER_CLOSURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WINTER_CLOSURE_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Impassibility</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Impassibility[] VALUES_ARRAY =
+ new Impassibility[] {
+ FLOODING,
+ DANGER_OF_AVALANCHES,
+ BLASTING_OF_AVALANCHES,
+ LANDSLIPS,
+ CHEMICAL_SPILLAGE,
+ WINTER_CLOSURE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Impassibility</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Impassibility> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Impassibility</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Impassibility get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Impassibility result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Impassibility</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Impassibility getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Impassibility result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Impassibility</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Impassibility get(int value) {
+ switch (value) {
+ case FLOODING_VALUE: return FLOODING;
+ case DANGER_OF_AVALANCHES_VALUE: return DANGER_OF_AVALANCHES;
+ case BLASTING_OF_AVALANCHES_VALUE: return BLASTING_OF_AVALANCHES;
+ case LANDSLIPS_VALUE: return LANDSLIPS;
+ case CHEMICAL_SPILLAGE_VALUE: return CHEMICAL_SPILLAGE;
+ case WINTER_CLOSURE_VALUE: return WINTER_CLOSURE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Impassibility(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Impassibility
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/LaneRestrictionType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/LaneRestrictionType.java
new file mode 100755
index 0000000..bbde559
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/LaneRestrictionType.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Lane Restriction Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getLaneRestrictionType()
+ * @model
+ * @generated
+ */
+public enum LaneRestrictionType implements Enumerator {
+ /**
+ * The '<em><b>LANES CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LANES_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ LANES_CLOSED(1, "LANES_CLOSED", "LANES_CLOSED"),
+
+ /**
+ * The '<em><b>LANES OPEN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LANES_OPEN_VALUE
+ * @generated
+ * @ordered
+ */
+ LANES_OPEN(2, "LANES_OPEN", "LANES_OPEN"),
+
+ /**
+ * The '<em><b>RIGHT LANES CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RIGHT_LANES_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ RIGHT_LANES_CLOSED(3, "RIGHT_LANES_CLOSED", "RIGHT_LANES_CLOSED"),
+
+ /**
+ * The '<em><b>LEFT LANES CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEFT_LANES_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ LEFT_LANES_CLOSED(4, "LEFT_LANES_CLOSED", "LEFT_LANES_CLOSED");
+
+ /**
+ * The '<em><b>LANES CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LANES CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LANES_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LANES_CLOSED_VALUE = 1;
+
+ /**
+ * The '<em><b>LANES OPEN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LANES OPEN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LANES_OPEN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LANES_OPEN_VALUE = 2;
+
+ /**
+ * The '<em><b>RIGHT LANES CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RIGHT LANES CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RIGHT_LANES_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RIGHT_LANES_CLOSED_VALUE = 3;
+
+ /**
+ * The '<em><b>LEFT LANES CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEFT LANES CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEFT_LANES_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEFT_LANES_CLOSED_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Lane Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LaneRestrictionType[] VALUES_ARRAY =
+ new LaneRestrictionType[] {
+ LANES_CLOSED,
+ LANES_OPEN,
+ RIGHT_LANES_CLOSED,
+ LEFT_LANES_CLOSED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Lane Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<LaneRestrictionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Lane Restriction Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LaneRestrictionType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LaneRestrictionType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Lane Restriction Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LaneRestrictionType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LaneRestrictionType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Lane Restriction Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LaneRestrictionType get(int value) {
+ switch (value) {
+ case LANES_CLOSED_VALUE: return LANES_CLOSED;
+ case LANES_OPEN_VALUE: return LANES_OPEN;
+ case RIGHT_LANES_CLOSED_VALUE: return RIGHT_LANES_CLOSED;
+ case LEFT_LANES_CLOSED_VALUE: return LEFT_LANES_CLOSED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LaneRestrictionType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //LaneRestrictionType
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MajorEvent.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MajorEvent.java
new file mode 100755
index 0000000..241dd01
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MajorEvent.java
@@ -0,0 +1,402 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Major Event</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getMajorEvent()
+ * @model
+ * @generated
+ */
+public enum MajorEvent implements Enumerator {
+ /**
+ * The '<em><b>SPORTS EVENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SPORTS_EVENT_VALUE
+ * @generated
+ * @ordered
+ */
+ SPORTS_EVENT(1, "SPORTS_EVENT", "SPORTS_EVENT"),
+
+ /**
+ * The '<em><b>DEMONSTRATION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION_VALUE
+ * @generated
+ * @ordered
+ */
+ DEMONSTRATION(2, "DEMONSTRATION", "DEMONSTRATION"),
+
+ /**
+ * The '<em><b>DEMONSTRATION WITH VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION_WITH_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ DEMONSTRATION_WITH_VEHICLES(3, "DEMONSTRATION_WITH_VEHICLES", "DEMONSTRATION_WITH_VEHICLES"),
+
+ /**
+ * The '<em><b>CONCERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONCERT_VALUE
+ * @generated
+ * @ordered
+ */
+ CONCERT(4, "CONCERT", "CONCERT"),
+
+ /**
+ * The '<em><b>FAIR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FAIR_VALUE
+ * @generated
+ * @ordered
+ */
+ FAIR(5, "FAIR", "FAIR"),
+
+ /**
+ * The '<em><b>MILITARY TRAINING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MILITARY_TRAINING_VALUE
+ * @generated
+ * @ordered
+ */
+ MILITARY_TRAINING(6, "MILITARY_TRAINING", "MILITARY_TRAINING"),
+
+ /**
+ * The '<em><b>EMERGENCY TRAINING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TRAINING_VALUE
+ * @generated
+ * @ordered
+ */
+ EMERGENCY_TRAINING(7, "EMERGENCY_TRAINING", "EMERGENCY_TRAINING"),
+
+ /**
+ * The '<em><b>FESTIVITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FESTIVITY_VALUE
+ * @generated
+ * @ordered
+ */
+ FESTIVITY(8, "FESTIVITY", "FESTIVITY"),
+
+ /**
+ * The '<em><b>PROCESSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROCESSION_VALUE
+ * @generated
+ * @ordered
+ */
+ PROCESSION(9, "PROCESSION", "PROCESSION");
+
+ /**
+ * The '<em><b>SPORTS EVENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SPORTS EVENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SPORTS_EVENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SPORTS_EVENT_VALUE = 1;
+
+ /**
+ * The '<em><b>DEMONSTRATION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEMONSTRATION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEMONSTRATION_VALUE = 2;
+
+ /**
+ * The '<em><b>DEMONSTRATION WITH VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEMONSTRATION WITH VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION_WITH_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEMONSTRATION_WITH_VEHICLES_VALUE = 3;
+
+ /**
+ * The '<em><b>CONCERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONCERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONCERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONCERT_VALUE = 4;
+
+ /**
+ * The '<em><b>FAIR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FAIR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FAIR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FAIR_VALUE = 5;
+
+ /**
+ * The '<em><b>MILITARY TRAINING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MILITARY TRAINING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MILITARY_TRAINING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MILITARY_TRAINING_VALUE = 6;
+
+ /**
+ * The '<em><b>EMERGENCY TRAINING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EMERGENCY TRAINING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TRAINING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EMERGENCY_TRAINING_VALUE = 7;
+
+ /**
+ * The '<em><b>FESTIVITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FESTIVITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FESTIVITY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FESTIVITY_VALUE = 8;
+
+ /**
+ * The '<em><b>PROCESSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PROCESSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROCESSION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PROCESSION_VALUE = 9;
+
+ /**
+ * An array of all the '<em><b>Major Event</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MajorEvent[] VALUES_ARRAY =
+ new MajorEvent[] {
+ SPORTS_EVENT,
+ DEMONSTRATION,
+ DEMONSTRATION_WITH_VEHICLES,
+ CONCERT,
+ FAIR,
+ MILITARY_TRAINING,
+ EMERGENCY_TRAINING,
+ FESTIVITY,
+ PROCESSION,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Major Event</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<MajorEvent> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Major Event</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MajorEvent get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MajorEvent result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Major Event</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MajorEvent getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MajorEvent result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Major Event</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MajorEvent get(int value) {
+ switch (value) {
+ case SPORTS_EVENT_VALUE: return SPORTS_EVENT;
+ case DEMONSTRATION_VALUE: return DEMONSTRATION;
+ case DEMONSTRATION_WITH_VEHICLES_VALUE: return DEMONSTRATION_WITH_VEHICLES;
+ case CONCERT_VALUE: return CONCERT;
+ case FAIR_VALUE: return FAIR;
+ case MILITARY_TRAINING_VALUE: return MILITARY_TRAINING;
+ case EMERGENCY_TRAINING_VALUE: return EMERGENCY_TRAINING;
+ case FESTIVITY_VALUE: return FESTIVITY;
+ case PROCESSION_VALUE: return PROCESSION;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MajorEvent(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //MajorEvent
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MalfunctioningRoadsideEquipment.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MalfunctioningRoadsideEquipment.java
new file mode 100755
index 0000000..5b03579
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/MalfunctioningRoadsideEquipment.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Malfunctioning Roadside Equipment</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getMalfunctioningRoadsideEquipment()
+ * @model
+ * @generated
+ */
+public enum MalfunctioningRoadsideEquipment implements Enumerator {
+ /**
+ * The '<em><b>ROAD RAIL CROSSING FAILURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROAD_RAIL_CROSSING_FAILURE_VALUE
+ * @generated
+ * @ordered
+ */
+ ROAD_RAIL_CROSSING_FAILURE(1, "ROAD_RAIL_CROSSING_FAILURE", "ROAD_RAIL_CROSSING_FAILURE"),
+
+ /**
+ * The '<em><b>TUNNEL VENTILATION NOT WORKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TUNNEL_VENTILATION_NOT_WORKING_VALUE
+ * @generated
+ * @ordered
+ */
+ TUNNEL_VENTILATION_NOT_WORKING(2, "TUNNEL_VENTILATION_NOT_WORKING", "TUNNEL_VENTILATION_NOT_WORKING"),
+
+ /**
+ * The '<em><b>TRAFFIC CONTROL SIGNALS WORKING INCORRECTLY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY(3, "TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY", "TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY"),
+
+ /**
+ * The '<em><b>EMERGENCY TELEPHONES NOT WORKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TELEPHONES_NOT_WORKING_VALUE
+ * @generated
+ * @ordered
+ */
+ EMERGENCY_TELEPHONES_NOT_WORKING(4, "EMERGENCY_TELEPHONES_NOT_WORKING", "EMERGENCY_TELEPHONES_NOT_WORKING"),
+
+ /**
+ * The '<em><b>AUTOMATIC PAYMENT LANES NOT WORKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AUTOMATIC_PAYMENT_LANES_NOT_WORKING_VALUE
+ * @generated
+ * @ordered
+ */
+ AUTOMATIC_PAYMENT_LANES_NOT_WORKING(5, "AUTOMATIC_PAYMENT_LANES_NOT_WORKING", "AUTOMATIC_PAYMENT_LANES_NOT_WORKING");
+
+ /**
+ * The '<em><b>ROAD RAIL CROSSING FAILURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROAD RAIL CROSSING FAILURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROAD_RAIL_CROSSING_FAILURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROAD_RAIL_CROSSING_FAILURE_VALUE = 1;
+
+ /**
+ * The '<em><b>TUNNEL VENTILATION NOT WORKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TUNNEL VENTILATION NOT WORKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TUNNEL_VENTILATION_NOT_WORKING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TUNNEL_VENTILATION_NOT_WORKING_VALUE = 2;
+
+ /**
+ * The '<em><b>TRAFFIC CONTROL SIGNALS WORKING INCORRECTLY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC CONTROL SIGNALS WORKING INCORRECTLY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY_VALUE = 3;
+
+ /**
+ * The '<em><b>EMERGENCY TELEPHONES NOT WORKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EMERGENCY TELEPHONES NOT WORKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TELEPHONES_NOT_WORKING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EMERGENCY_TELEPHONES_NOT_WORKING_VALUE = 4;
+
+ /**
+ * The '<em><b>AUTOMATIC PAYMENT LANES NOT WORKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AUTOMATIC PAYMENT LANES NOT WORKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AUTOMATIC_PAYMENT_LANES_NOT_WORKING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AUTOMATIC_PAYMENT_LANES_NOT_WORKING_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Malfunctioning Roadside Equipment</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MalfunctioningRoadsideEquipment[] VALUES_ARRAY =
+ new MalfunctioningRoadsideEquipment[] {
+ ROAD_RAIL_CROSSING_FAILURE,
+ TUNNEL_VENTILATION_NOT_WORKING,
+ TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY,
+ EMERGENCY_TELEPHONES_NOT_WORKING,
+ AUTOMATIC_PAYMENT_LANES_NOT_WORKING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Malfunctioning Roadside Equipment</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<MalfunctioningRoadsideEquipment> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Malfunctioning Roadside Equipment</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MalfunctioningRoadsideEquipment get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MalfunctioningRoadsideEquipment result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Malfunctioning Roadside Equipment</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MalfunctioningRoadsideEquipment getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MalfunctioningRoadsideEquipment result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Malfunctioning Roadside Equipment</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MalfunctioningRoadsideEquipment get(int value) {
+ switch (value) {
+ case ROAD_RAIL_CROSSING_FAILURE_VALUE: return ROAD_RAIL_CROSSING_FAILURE;
+ case TUNNEL_VENTILATION_NOT_WORKING_VALUE: return TUNNEL_VENTILATION_NOT_WORKING;
+ case TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY_VALUE: return TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY;
+ case EMERGENCY_TELEPHONES_NOT_WORKING_VALUE: return EMERGENCY_TELEPHONES_NOT_WORKING;
+ case AUTOMATIC_PAYMENT_LANES_NOT_WORKING_VALUE: return AUTOMATIC_PAYMENT_LANES_NOT_WORKING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MalfunctioningRoadsideEquipment(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //MalfunctioningRoadsideEquipment
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/NarrowLanes.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/NarrowLanes.java
new file mode 100755
index 0000000..026626a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/NarrowLanes.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Narrow Lanes</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getNarrowLanes()
+ * @model
+ * @generated
+ */
+public enum NarrowLanes implements Enumerator {
+ /**
+ * The '<em><b>CONTRAFLOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONTRAFLOW_VALUE
+ * @generated
+ * @ordered
+ */
+ CONTRAFLOW(1, "CONTRAFLOW", "CONTRAFLOW"),
+
+ /**
+ * The '<em><b>HARD SHOULDER CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HARD_SHOULDER_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ HARD_SHOULDER_CLOSED(2, "HARD_SHOULDER_CLOSED", "HARD_SHOULDER_CLOSED"),
+
+ /**
+ * The '<em><b>SLIP LANE CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIP_LANE_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIP_LANE_CLOSED(3, "SLIP_LANE_CLOSED", "SLIP_LANE_CLOSED"),
+
+ /**
+ * The '<em><b>CRAWLER LANE CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CRAWLER_LANE_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ CRAWLER_LANE_CLOSED(4, "CRAWLER_LANE_CLOSED", "CRAWLER_LANE_CLOSED");
+
+ /**
+ * The '<em><b>CONTRAFLOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONTRAFLOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONTRAFLOW
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONTRAFLOW_VALUE = 1;
+
+ /**
+ * The '<em><b>HARD SHOULDER CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HARD SHOULDER CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HARD_SHOULDER_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HARD_SHOULDER_CLOSED_VALUE = 2;
+
+ /**
+ * The '<em><b>SLIP LANE CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIP LANE CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIP_LANE_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIP_LANE_CLOSED_VALUE = 3;
+
+ /**
+ * The '<em><b>CRAWLER LANE CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CRAWLER LANE CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CRAWLER_LANE_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CRAWLER_LANE_CLOSED_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Narrow Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final NarrowLanes[] VALUES_ARRAY =
+ new NarrowLanes[] {
+ CONTRAFLOW,
+ HARD_SHOULDER_CLOSED,
+ SLIP_LANE_CLOSED,
+ CRAWLER_LANE_CLOSED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Narrow Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<NarrowLanes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Narrow Lanes</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NarrowLanes get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ NarrowLanes result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Narrow Lanes</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NarrowLanes getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ NarrowLanes result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Narrow Lanes</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NarrowLanes get(int value) {
+ switch (value) {
+ case CONTRAFLOW_VALUE: return CONTRAFLOW;
+ case HARD_SHOULDER_CLOSED_VALUE: return HARD_SHOULDER_CLOSED;
+ case SLIP_LANE_CLOSED_VALUE: return SLIP_LANE_CLOSED;
+ case CRAWLER_LANE_CLOSED_VALUE: return CRAWLER_LANE_CLOSED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private NarrowLanes(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //NarrowLanes
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ObjectsOnTheRoad.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ObjectsOnTheRoad.java
new file mode 100755
index 0000000..4a3784b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ObjectsOnTheRoad.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Objects On The Road</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getObjectsOnTheRoad()
+ * @model
+ * @generated
+ */
+public enum ObjectsOnTheRoad implements Enumerator {
+ /**
+ * The '<em><b>SHED LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SHED_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ SHED_LOAD(1, "SHED_LOAD", "SHED_LOAD"),
+
+ /**
+ * The '<em><b>PARTS OF VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ PARTS_OF_VEHICLES(2, "PARTS_OF_VEHICLES", "PARTS_OF_VEHICLES"),
+
+ /**
+ * The '<em><b>PARTS OF TYRES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_TYRES_VALUE
+ * @generated
+ * @ordered
+ */
+ PARTS_OF_TYRES(3, "PARTS_OF_TYRES", "PARTS_OF_TYRES"),
+
+ /**
+ * The '<em><b>BIG OBJECTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BIG_OBJECTS_VALUE
+ * @generated
+ * @ordered
+ */
+ BIG_OBJECTS(4, "BIG_OBJECTS", "BIG_OBJECTS"),
+
+ /**
+ * The '<em><b>FALLEN TREES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FALLEN_TREES_VALUE
+ * @generated
+ * @ordered
+ */
+ FALLEN_TREES(5, "FALLEN_TREES", "FALLEN_TREES"),
+
+ /**
+ * The '<em><b>HUB CAPS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HUB_CAPS_VALUE
+ * @generated
+ * @ordered
+ */
+ HUB_CAPS(6, "HUB_CAPS", "HUB_CAPS"),
+
+ /**
+ * The '<em><b>WAITING VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAITING_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ WAITING_VEHICLES(7, "WAITING_VEHICLES", "WAITING_VEHICLES");
+
+ /**
+ * The '<em><b>SHED LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SHED LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SHED_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SHED_LOAD_VALUE = 1;
+
+ /**
+ * The '<em><b>PARTS OF VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARTS OF VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARTS_OF_VEHICLES_VALUE = 2;
+
+ /**
+ * The '<em><b>PARTS OF TYRES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARTS OF TYRES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_TYRES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARTS_OF_TYRES_VALUE = 3;
+
+ /**
+ * The '<em><b>BIG OBJECTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BIG OBJECTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BIG_OBJECTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BIG_OBJECTS_VALUE = 4;
+
+ /**
+ * The '<em><b>FALLEN TREES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FALLEN TREES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FALLEN_TREES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FALLEN_TREES_VALUE = 5;
+
+ /**
+ * The '<em><b>HUB CAPS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HUB CAPS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HUB_CAPS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HUB_CAPS_VALUE = 6;
+
+ /**
+ * The '<em><b>WAITING VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAITING VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAITING_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAITING_VEHICLES_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Objects On The Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ObjectsOnTheRoad[] VALUES_ARRAY =
+ new ObjectsOnTheRoad[] {
+ SHED_LOAD,
+ PARTS_OF_VEHICLES,
+ PARTS_OF_TYRES,
+ BIG_OBJECTS,
+ FALLEN_TREES,
+ HUB_CAPS,
+ WAITING_VEHICLES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Objects On The Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ObjectsOnTheRoad> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Objects On The Road</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ObjectsOnTheRoad get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ObjectsOnTheRoad result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Objects On The Road</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ObjectsOnTheRoad getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ObjectsOnTheRoad result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Objects On The Road</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ObjectsOnTheRoad get(int value) {
+ switch (value) {
+ case SHED_LOAD_VALUE: return SHED_LOAD;
+ case PARTS_OF_VEHICLES_VALUE: return PARTS_OF_VEHICLES;
+ case PARTS_OF_TYRES_VALUE: return PARTS_OF_TYRES;
+ case BIG_OBJECTS_VALUE: return BIG_OBJECTS;
+ case FALLEN_TREES_VALUE: return FALLEN_TREES;
+ case HUB_CAPS_VALUE: return HUB_CAPS;
+ case WAITING_VEHICLES_VALUE: return WAITING_VEHICLES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ObjectsOnTheRoad(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ObjectsOnTheRoad
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/OvertakingNotAllowed.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/OvertakingNotAllowed.java
new file mode 100755
index 0000000..8abe5d2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/OvertakingNotAllowed.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Overtaking Not Allowed</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getOvertakingNotAllowed()
+ * @model
+ * @generated
+ */
+public enum OvertakingNotAllowed implements Enumerator {
+ /**
+ * The '<em><b>DO NOT USE OVERTAKING LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_USE_OVERTAKING_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_USE_OVERTAKING_LANES(1, "DO_NOT_USE_OVERTAKING_LANES", "DO_NOT_USE_OVERTAKING_LANES"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON CRAWLER LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE(2, "OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE", "OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON LEFT MOST LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE(3, "OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE", "OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON RIGHT MOST LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE(4, "OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE", "OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE");
+
+ /**
+ * The '<em><b>DO NOT USE OVERTAKING LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT USE OVERTAKING LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_USE_OVERTAKING_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_USE_OVERTAKING_LANES_VALUE = 1;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON CRAWLER LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED DRIVE ON CRAWLER LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE_VALUE = 2;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON LEFT MOST LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED DRIVE ON LEFT MOST LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE_VALUE = 3;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON RIGHT MOST LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED DRIVE ON RIGHT MOST LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Overtaking Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final OvertakingNotAllowed[] VALUES_ARRAY =
+ new OvertakingNotAllowed[] {
+ DO_NOT_USE_OVERTAKING_LANES,
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE,
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE,
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Overtaking Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<OvertakingNotAllowed> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Overtaking Not Allowed</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OvertakingNotAllowed get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OvertakingNotAllowed result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Overtaking Not Allowed</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OvertakingNotAllowed getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OvertakingNotAllowed result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Overtaking Not Allowed</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OvertakingNotAllowed get(int value) {
+ switch (value) {
+ case DO_NOT_USE_OVERTAKING_LANES_VALUE: return DO_NOT_USE_OVERTAKING_LANES;
+ case OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE_VALUE: return OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE;
+ case OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE_VALUE: return OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE;
+ case OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE_VALUE: return OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private OvertakingNotAllowed(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //OvertakingNotAllowed
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PeopleOnRoadway.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PeopleOnRoadway.java
new file mode 100755
index 0000000..6017976
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PeopleOnRoadway.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>People On Roadway</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getPeopleOnRoadway()
+ * @model
+ * @generated
+ */
+public enum PeopleOnRoadway implements Enumerator {
+ /**
+ * The '<em><b>CHILDREN ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHILDREN_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ CHILDREN_ON_ROADWAY(1, "CHILDREN_ON_ROADWAY", "CHILDREN_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>CYCLISTS ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CYCLISTS_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ CYCLISTS_ON_ROADWAY(2, "CYCLISTS_ON_ROADWAY", "CYCLISTS_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>MOTOR CYCLIST ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLIST_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTOR_CYCLIST_ON_ROADWAY(3, "MOTOR_CYCLIST_ON_ROADWAY", "MOTOR_CYCLIST_ON_ROADWAY");
+
+ /**
+ * The '<em><b>CHILDREN ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHILDREN ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHILDREN_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHILDREN_ON_ROADWAY_VALUE = 1;
+
+ /**
+ * The '<em><b>CYCLISTS ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CYCLISTS ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CYCLISTS_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CYCLISTS_ON_ROADWAY_VALUE = 2;
+
+ /**
+ * The '<em><b>MOTOR CYCLIST ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTOR CYCLIST ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLIST_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTOR_CYCLIST_ON_ROADWAY_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>People On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PeopleOnRoadway[] VALUES_ARRAY =
+ new PeopleOnRoadway[] {
+ CHILDREN_ON_ROADWAY,
+ CYCLISTS_ON_ROADWAY,
+ MOTOR_CYCLIST_ON_ROADWAY,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>People On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PeopleOnRoadway> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>People On Roadway</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PeopleOnRoadway get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PeopleOnRoadway result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>People On Roadway</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PeopleOnRoadway getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PeopleOnRoadway result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>People On Roadway</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PeopleOnRoadway get(int value) {
+ switch (value) {
+ case CHILDREN_ON_ROADWAY_VALUE: return CHILDREN_ON_ROADWAY;
+ case CYCLISTS_ON_ROADWAY_VALUE: return CYCLISTS_ON_ROADWAY;
+ case MOTOR_CYCLIST_ON_ROADWAY_VALUE: return MOTOR_CYCLIST_ON_ROADWAY;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PeopleOnRoadway(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //PeopleOnRoadway
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PoliceCheckpoint.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PoliceCheckpoint.java
new file mode 100755
index 0000000..3ccdcc1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/PoliceCheckpoint.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Police Checkpoint</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getPoliceCheckpoint()
+ * @model
+ * @generated
+ */
+public enum PoliceCheckpoint implements Enumerator {
+ /**
+ * The '<em><b>PERMANENT POLICE CHECKPOINT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERMANENT_POLICE_CHECKPOINT_VALUE
+ * @generated
+ * @ordered
+ */
+ PERMANENT_POLICE_CHECKPOINT(1, "PERMANENT_POLICE_CHECKPOINT", "PERMANENT_POLICE_CHECKPOINT"),
+
+ /**
+ * The '<em><b>TEMPORARY POLICE CHECKPOINT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TEMPORARY_POLICE_CHECKPOINT_VALUE
+ * @generated
+ * @ordered
+ */
+ TEMPORARY_POLICE_CHECKPOINT(2, "TEMPORARY_POLICE_CHECKPOINT", "TEMPORARY_POLICE_CHECKPOINT");
+
+ /**
+ * The '<em><b>PERMANENT POLICE CHECKPOINT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERMANENT POLICE CHECKPOINT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERMANENT_POLICE_CHECKPOINT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERMANENT_POLICE_CHECKPOINT_VALUE = 1;
+
+ /**
+ * The '<em><b>TEMPORARY POLICE CHECKPOINT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TEMPORARY POLICE CHECKPOINT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TEMPORARY_POLICE_CHECKPOINT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TEMPORARY_POLICE_CHECKPOINT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Police Checkpoint</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PoliceCheckpoint[] VALUES_ARRAY =
+ new PoliceCheckpoint[] {
+ PERMANENT_POLICE_CHECKPOINT,
+ TEMPORARY_POLICE_CHECKPOINT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Police Checkpoint</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PoliceCheckpoint> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Police Checkpoint</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PoliceCheckpoint get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PoliceCheckpoint result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Police Checkpoint</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PoliceCheckpoint getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PoliceCheckpoint result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Police Checkpoint</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PoliceCheckpoint get(int value) {
+ switch (value) {
+ case PERMANENT_POLICE_CHECKPOINT_VALUE: return PERMANENT_POLICE_CHECKPOINT;
+ case TEMPORARY_POLICE_CHECKPOINT_VALUE: return TEMPORARY_POLICE_CHECKPOINT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PoliceCheckpoint(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //PoliceCheckpoint
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Precipitation.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Precipitation.java
new file mode 100755
index 0000000..c6c0d16
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Precipitation.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Precipitation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getPrecipitation()
+ * @model
+ * @generated
+ */
+public enum Precipitation implements Enumerator {
+ /**
+ * The '<em><b>HEAVY RAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_RAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_RAIN(1, "HEAVY_RAIN", "HEAVY_RAIN"),
+
+ /**
+ * The '<em><b>HEAVY SNOWFALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_SNOWFALL_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_SNOWFALL(2, "HEAVY_SNOWFALL", "HEAVY_SNOWFALL"),
+
+ /**
+ * The '<em><b>SOFT HAIL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SOFT_HAIL_VALUE
+ * @generated
+ * @ordered
+ */
+ SOFT_HAIL(3, "SOFT_HAIL", "SOFT_HAIL");
+
+ /**
+ * The '<em><b>HEAVY RAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY RAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_RAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_RAIN_VALUE = 1;
+
+ /**
+ * The '<em><b>HEAVY SNOWFALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY SNOWFALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_SNOWFALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_SNOWFALL_VALUE = 2;
+
+ /**
+ * The '<em><b>SOFT HAIL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SOFT HAIL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SOFT_HAIL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SOFT_HAIL_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Precipitation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Precipitation[] VALUES_ARRAY =
+ new Precipitation[] {
+ HEAVY_RAIN,
+ HEAVY_SNOWFALL,
+ SOFT_HAIL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Precipitation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Precipitation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Precipitation</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Precipitation get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Precipitation result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Precipitation</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Precipitation getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Precipitation result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Precipitation</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Precipitation get(int value) {
+ switch (value) {
+ case HEAVY_RAIN_VALUE: return HEAVY_RAIN;
+ case HEAVY_SNOWFALL_VALUE: return HEAVY_SNOWFALL;
+ case SOFT_HAIL_VALUE: return SOFT_HAIL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Precipitation(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Precipitation
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RecklessPersons.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RecklessPersons.java
new file mode 100755
index 0000000..629c222
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RecklessPersons.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Reckless Persons</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getRecklessPersons()
+ * @model
+ * @generated
+ */
+public enum RecklessPersons implements Enumerator {
+ /**
+ * The '<em><b>RECKLESS DRIVER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_DRIVER_VALUE
+ * @generated
+ * @ordered
+ */
+ RECKLESS_DRIVER(1, "RECKLESS_DRIVER", "RECKLESS_DRIVER"),
+
+ /**
+ * The '<em><b>GUNFIRE ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GUNFIRE_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ GUNFIRE_ON_ROAD(2, "GUNFIRE_ON_ROAD", "GUNFIRE_ON_ROAD"),
+
+ /**
+ * The '<em><b>STONE THROWING PERSONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STONE_THROWING_PERSONS_VALUE
+ * @generated
+ * @ordered
+ */
+ STONE_THROWING_PERSONS(3, "STONE_THROWING_PERSONS", "STONE_THROWING_PERSONS");
+
+ /**
+ * The '<em><b>RECKLESS DRIVER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RECKLESS DRIVER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_DRIVER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RECKLESS_DRIVER_VALUE = 1;
+
+ /**
+ * The '<em><b>GUNFIRE ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GUNFIRE ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GUNFIRE_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GUNFIRE_ON_ROAD_VALUE = 2;
+
+ /**
+ * The '<em><b>STONE THROWING PERSONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STONE THROWING PERSONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STONE_THROWING_PERSONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STONE_THROWING_PERSONS_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Reckless Persons</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RecklessPersons[] VALUES_ARRAY =
+ new RecklessPersons[] {
+ RECKLESS_DRIVER,
+ GUNFIRE_ON_ROAD,
+ STONE_THROWING_PERSONS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Reckless Persons</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RecklessPersons> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Reckless Persons</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RecklessPersons get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RecklessPersons result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Reckless Persons</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RecklessPersons getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RecklessPersons result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Reckless Persons</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RecklessPersons get(int value) {
+ switch (value) {
+ case RECKLESS_DRIVER_VALUE: return RECKLESS_DRIVER;
+ case GUNFIRE_ON_ROAD_VALUE: return GUNFIRE_ON_ROAD;
+ case STONE_THROWING_PERSONS_VALUE: return STONE_THROWING_PERSONS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RecklessPersons(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RecklessPersons
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RegulatoryMeasure.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RegulatoryMeasure.java
new file mode 100755
index 0000000..14edcf1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RegulatoryMeasure.java
@@ -0,0 +1,319 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Regulatory Measure</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getRegulatoryMeasure()
+ * @model
+ * @generated
+ */
+public enum RegulatoryMeasure implements Enumerator {
+ /**
+ * The '<em><b>SECURITY ALERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SECURITY_ALERT_VALUE
+ * @generated
+ * @ordered
+ */
+ SECURITY_ALERT(1, "SECURITY_ALERT", "SECURITY_ALERT"),
+
+ /**
+ * The '<em><b>CONTAGIOUS DISEASE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONTAGIOUS_DISEASE_VALUE
+ * @generated
+ * @ordered
+ */
+ CONTAGIOUS_DISEASE(2, "CONTAGIOUS_DISEASE", "CONTAGIOUS_DISEASE"),
+
+ /**
+ * The '<em><b>ENVIRONMENTAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ENVIRONMENTAL_VALUE
+ * @generated
+ * @ordered
+ */
+ ENVIRONMENTAL(3, "ENVIRONMENTAL", "ENVIRONMENTAL"),
+
+ /**
+ * The '<em><b>SMOG ALERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SMOG_ALERT_VALUE
+ * @generated
+ * @ordered
+ */
+ SMOG_ALERT(4, "SMOG_ALERT", "SMOG_ALERT"),
+
+ /**
+ * The '<em><b>BATCH SERVICE IN PROGRESS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BATCH_SERVICE_IN_PROGRESS_VALUE
+ * @generated
+ * @ordered
+ */
+ BATCH_SERVICE_IN_PROGRESS(5, "BATCH_SERVICE_IN_PROGRESS", "BATCH_SERVICE_IN_PROGRESS"), /**
+ * The '<em><b>ROAD CLOSED BY THE REGULATORY AUTHORITIES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES_VALUE
+ * @generated
+ * @ordered
+ */
+ ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES(6, "ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES", "ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES");
+
+ /**
+ * The '<em><b>SECURITY ALERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SECURITY ALERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SECURITY_ALERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SECURITY_ALERT_VALUE = 1;
+
+ /**
+ * The '<em><b>CONTAGIOUS DISEASE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONTAGIOUS DISEASE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONTAGIOUS_DISEASE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONTAGIOUS_DISEASE_VALUE = 2;
+
+ /**
+ * The '<em><b>ENVIRONMENTAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ENVIRONMENTAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ENVIRONMENTAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ENVIRONMENTAL_VALUE = 3;
+
+ /**
+ * The '<em><b>SMOG ALERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SMOG ALERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SMOG_ALERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SMOG_ALERT_VALUE = 4;
+
+ /**
+ * The '<em><b>BATCH SERVICE IN PROGRESS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BATCH SERVICE IN PROGRESS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BATCH_SERVICE_IN_PROGRESS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BATCH_SERVICE_IN_PROGRESS_VALUE = 5;
+
+ /**
+ * The '<em><b>ROAD CLOSED BY THE REGULATORY AUTHORITIES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROAD CLOSED BY THE REGULATORY AUTHORITIES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Regulatory Measure</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RegulatoryMeasure[] VALUES_ARRAY =
+ new RegulatoryMeasure[] {
+ SECURITY_ALERT,
+ CONTAGIOUS_DISEASE,
+ ENVIRONMENTAL,
+ SMOG_ALERT,
+ BATCH_SERVICE_IN_PROGRESS,
+ ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Regulatory Measure</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RegulatoryMeasure> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Regulatory Measure</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RegulatoryMeasure get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RegulatoryMeasure result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Regulatory Measure</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RegulatoryMeasure getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RegulatoryMeasure result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Regulatory Measure</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RegulatoryMeasure get(int value) {
+ switch (value) {
+ case SECURITY_ALERT_VALUE: return SECURITY_ALERT;
+ case CONTAGIOUS_DISEASE_VALUE: return CONTAGIOUS_DISEASE;
+ case ENVIRONMENTAL_VALUE: return ENVIRONMENTAL;
+ case SMOG_ALERT_VALUE: return SMOG_ALERT;
+ case BATCH_SERVICE_IN_PROGRESS_VALUE: return BATCH_SERVICE_IN_PROGRESS;
+ case ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES_VALUE: return ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RegulatoryMeasure(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RegulatoryMeasure
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RescueAndRecoveryWorkInProgress.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RescueAndRecoveryWorkInProgress.java
new file mode 100755
index 0000000..9e34961
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RescueAndRecoveryWorkInProgress.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Rescue And Recovery Work In Progress</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getRescueAndRecoveryWorkInProgress()
+ * @model
+ * @generated
+ */
+public enum RescueAndRecoveryWorkInProgress implements Enumerator {
+ /**
+ * The '<em><b>EMERGENCY VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ EMERGENCY_VEHICLES(1, "EMERGENCY_VEHICLES", "EMERGENCY_VEHICLES"),
+
+ /**
+ * The '<em><b>RESCUE HELICOPTER LANDING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESCUE_HELICOPTER_LANDING_VALUE
+ * @generated
+ * @ordered
+ */
+ RESCUE_HELICOPTER_LANDING(2, "RESCUE_HELICOPTER_LANDING", "RESCUE_HELICOPTER_LANDING"),
+
+ /**
+ * The '<em><b>POLICE ACTIVITY ONGOING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #POLICE_ACTIVITY_ONGOING_VALUE
+ * @generated
+ * @ordered
+ */
+ POLICE_ACTIVITY_ONGOING(3, "POLICE_ACTIVITY_ONGOING", "POLICE_ACTIVITY_ONGOING"),
+
+ /**
+ * The '<em><b>MEDICAL EMERGENCY ONGOING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MEDICAL_EMERGENCY_ONGOING_VALUE
+ * @generated
+ * @ordered
+ */
+ MEDICAL_EMERGENCY_ONGOING(4, "MEDICAL_EMERGENCY_ONGOING", "MEDICAL_EMERGENCY_ONGOING"),
+
+ /**
+ * The '<em><b>CHILD ABDUCTION IN PROGRESS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHILD_ABDUCTION_IN_PROGRESS_VALUE
+ * @generated
+ * @ordered
+ */
+ CHILD_ABDUCTION_IN_PROGRESS(5, "CHILD_ABDUCTION_IN_PROGRESS", "CHILD_ABDUCTION_IN_PROGRESS");
+
+ /**
+ * The '<em><b>EMERGENCY VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EMERGENCY VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EMERGENCY_VEHICLES_VALUE = 1;
+
+ /**
+ * The '<em><b>RESCUE HELICOPTER LANDING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESCUE HELICOPTER LANDING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESCUE_HELICOPTER_LANDING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESCUE_HELICOPTER_LANDING_VALUE = 2;
+
+ /**
+ * The '<em><b>POLICE ACTIVITY ONGOING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>POLICE ACTIVITY ONGOING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #POLICE_ACTIVITY_ONGOING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int POLICE_ACTIVITY_ONGOING_VALUE = 3;
+
+ /**
+ * The '<em><b>MEDICAL EMERGENCY ONGOING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MEDICAL EMERGENCY ONGOING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MEDICAL_EMERGENCY_ONGOING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MEDICAL_EMERGENCY_ONGOING_VALUE = 4;
+
+ /**
+ * The '<em><b>CHILD ABDUCTION IN PROGRESS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHILD ABDUCTION IN PROGRESS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHILD_ABDUCTION_IN_PROGRESS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHILD_ABDUCTION_IN_PROGRESS_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Rescue And Recovery Work In Progress</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RescueAndRecoveryWorkInProgress[] VALUES_ARRAY =
+ new RescueAndRecoveryWorkInProgress[] {
+ EMERGENCY_VEHICLES,
+ RESCUE_HELICOPTER_LANDING,
+ POLICE_ACTIVITY_ONGOING,
+ MEDICAL_EMERGENCY_ONGOING,
+ CHILD_ABDUCTION_IN_PROGRESS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Rescue And Recovery Work In Progress</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RescueAndRecoveryWorkInProgress> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Rescue And Recovery Work In Progress</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RescueAndRecoveryWorkInProgress get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RescueAndRecoveryWorkInProgress result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Rescue And Recovery Work In Progress</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RescueAndRecoveryWorkInProgress getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RescueAndRecoveryWorkInProgress result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Rescue And Recovery Work In Progress</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RescueAndRecoveryWorkInProgress get(int value) {
+ switch (value) {
+ case EMERGENCY_VEHICLES_VALUE: return EMERGENCY_VEHICLES;
+ case RESCUE_HELICOPTER_LANDING_VALUE: return RESCUE_HELICOPTER_LANDING;
+ case POLICE_ACTIVITY_ONGOING_VALUE: return POLICE_ACTIVITY_ONGOING;
+ case MEDICAL_EMERGENCY_ONGOING_VALUE: return MEDICAL_EMERGENCY_ONGOING;
+ case CHILD_ABDUCTION_IN_PROGRESS_VALUE: return CHILD_ABDUCTION_IN_PROGRESS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RescueAndRecoveryWorkInProgress(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RescueAndRecoveryWorkInProgress
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RestrictionType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RestrictionType.java
new file mode 100755
index 0000000..609e296
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RestrictionType.java
@@ -0,0 +1,905 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Restriction Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getRestrictionType()
+ * @model
+ * @generated
+ */
+public enum RestrictionType implements Enumerator {
+ /**
+ * The '<em><b>WIDTH LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WIDTH_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WIDTH_LESS_THAN(1, "WIDTH_LESS_THAN", "WIDTH_LESS_THAN"),
+
+ /**
+ * The '<em><b>WIDTH GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WIDTH_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WIDTH_GREATER_THAN(2, "WIDTH_GREATER_THAN", "WIDTH_GREATER_THAN"),
+
+ /**
+ * The '<em><b>HEIGTH LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ HEIGTH_LESS_THAN(3, "HEIGTH_LESS_THAN", "HEIGTH_LESS_THAN"),
+
+ /**
+ * The '<em><b>HEIGTH GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ HEIGTH_GREATER_THAN(4, "HEIGTH_GREATER_THAN", "HEIGTH_GREATER_THAN"),
+
+ /**
+ * The '<em><b>WEIGHT LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WEIGHT_LESS_THAN(5, "WEIGHT_LESS_THAN", "WEIGHT_LESS_THAN"),
+
+ /**
+ * The '<em><b>WEIGHT GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WEIGHT_GREATER_THAN(6, "WEIGHT_GREATER_THAN", "WEIGHT_GREATER_THAN"),
+
+ /**
+ * The '<em><b>WITHOUT WINTER TYRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_WINTER_TYRE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITHOUT_WINTER_TYRE(7, "WITHOUT_WINTER_TYRE", "WITHOUT_WINTER_TYRE"),
+
+ /**
+ * The '<em><b>WITHOUT SNOW CHAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_SNOW_CHAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ WITHOUT_SNOW_CHAIN(8, "WITHOUT_SNOW_CHAIN", "WITHOUT_SNOW_CHAIN"),
+
+ /**
+ * The '<em><b>WITH TRAILER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_TRAILER_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_TRAILER(9, "WITH_TRAILER", "WITH_TRAILER"),
+
+ /**
+ * The '<em><b>WITH CARAVAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_CARAVAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_CARAVAN(10, "WITH_CARAVAN", "WITH_CARAVAN"),
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ PERSONS_IN_VEHICLE_LESS_THAN(11, "PERSONS_IN_VEHICLE_LESS_THAN", "PERSONS_IN_VEHICLE_LESS_THAN"),
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE MORE THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_MORE_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ PERSONS_IN_VEHICLE_MORE_THAN(12, "PERSONS_IN_VEHICLE_MORE_THAN", "PERSONS_IN_VEHICLE_MORE_THAN"),
+
+ /**
+ * The '<em><b>EVEN NUMBER PLATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EVEN_NUMBER_PLATE_VALUE
+ * @generated
+ * @ordered
+ */
+ EVEN_NUMBER_PLATE(13, "EVEN_NUMBER_PLATE", "EVEN_NUMBER_PLATE"),
+
+ /**
+ * The '<em><b>ODD NUMBER PLATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ODD_NUMBER_PLATE_VALUE
+ * @generated
+ * @ordered
+ */
+ ODD_NUMBER_PLATE(14, "ODD_NUMBER_PLATE", "ODD_NUMBER_PLATE"),
+
+ /**
+ * The '<em><b>LENGTH LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LENGTH_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ LENGTH_LESS_THAN(15, "LENGTH_LESS_THAN", "LENGTH_LESS_THAN"),
+
+ /**
+ * The '<em><b>LENGTH GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LENGTH_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ LENGTH_GREATER_THAN(16, "LENGTH_GREATER_THAN", "LENGTH_GREATER_THAN"),
+
+ /**
+ * The '<em><b>AXLE LOAD LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ AXLE_LOAD_LESS_THAN(17, "AXLE_LOAD_LESS_THAN", "AXLE_LOAD_LESS_THAN"),
+
+ /**
+ * The '<em><b>AXLE LOAD GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ AXLE_LOAD_GREATER_THAN(18, "AXLE_LOAD_GREATER_THAN", "AXLE_LOAD_GREATER_THAN"),
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO3</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3(19, "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3", "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3"), /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO3D4</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4(20, "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4", "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4"), /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO4</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4(21, "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4", "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4"), /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO5</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5(22, "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5", "VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5"), /**
+ * The '<em><b>WITH PETROL ENGINE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_PETROL_ENGINE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_PETROL_ENGINE(23, "WITH_PETROL_ENGINE", "WITH_PETROL_ENGINE"),
+
+ /**
+ * The '<em><b>WITH DIESEL ENGINE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_DIESEL_ENGINE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_DIESEL_ENGINE(24, "WITH_DIESEL_ENGINE", "WITH_DIESEL_ENGINE"), /**
+ * The '<em><b>WITH LPG ENGINE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_LPG_ENGINE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_LPG_ENGINE(25, "WITH_LPG_ENGINE", "WITH_LPG_ENGINE"),
+
+ /**
+ * The '<em><b>THROUGH TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #THROUGH_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ THROUGH_TRAFFIC(26, "THROUGH_TRAFFIC", "THROUGH_TRAFFIC"),
+
+ /**
+ * The '<em><b>RESIDENTS TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESIDENTS_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ RESIDENTS_TRAFFIC(27, "RESIDENTS_TRAFFIC", "RESIDENTS_TRAFFIC"),
+
+ /**
+ * The '<em><b>WITH DESTINATION IN GIVEN AREA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_DESTINATION_IN_GIVEN_AREA_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_DESTINATION_IN_GIVEN_AREA(28, "WITH_DESTINATION_IN_GIVEN_AREA", "WITH_DESTINATION_IN_GIVEN_AREA");
+
+ /**
+ * The '<em><b>WIDTH LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WIDTH LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WIDTH_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WIDTH_LESS_THAN_VALUE = 1;
+
+ /**
+ * The '<em><b>WIDTH GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WIDTH GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WIDTH_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WIDTH_GREATER_THAN_VALUE = 2;
+
+ /**
+ * The '<em><b>HEIGTH LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEIGTH LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEIGTH_LESS_THAN_VALUE = 3;
+
+ /**
+ * The '<em><b>HEIGTH GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEIGTH GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEIGTH_GREATER_THAN_VALUE = 4;
+
+ /**
+ * The '<em><b>WEIGHT LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WEIGHT LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WEIGHT_LESS_THAN_VALUE = 5;
+
+ /**
+ * The '<em><b>WEIGHT GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WEIGHT GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WEIGHT_GREATER_THAN_VALUE = 6;
+
+ /**
+ * The '<em><b>WITHOUT WINTER TYRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITHOUT WINTER TYRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_WINTER_TYRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITHOUT_WINTER_TYRE_VALUE = 7;
+
+ /**
+ * The '<em><b>WITHOUT SNOW CHAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITHOUT SNOW CHAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_SNOW_CHAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITHOUT_SNOW_CHAIN_VALUE = 8;
+
+ /**
+ * The '<em><b>WITH TRAILER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH TRAILER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_TRAILER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_TRAILER_VALUE = 9;
+
+ /**
+ * The '<em><b>WITH CARAVAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH CARAVAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_CARAVAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_CARAVAN_VALUE = 10;
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERSONS IN VEHICLE LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERSONS_IN_VEHICLE_LESS_THAN_VALUE = 11;
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE MORE THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERSONS IN VEHICLE MORE THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_MORE_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERSONS_IN_VEHICLE_MORE_THAN_VALUE = 12;
+
+ /**
+ * The '<em><b>EVEN NUMBER PLATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EVEN NUMBER PLATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EVEN_NUMBER_PLATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EVEN_NUMBER_PLATE_VALUE = 13;
+
+ /**
+ * The '<em><b>ODD NUMBER PLATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ODD NUMBER PLATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ODD_NUMBER_PLATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ODD_NUMBER_PLATE_VALUE = 14;
+
+ /**
+ * The '<em><b>LENGTH LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LENGTH LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LENGTH_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LENGTH_LESS_THAN_VALUE = 15;
+
+ /**
+ * The '<em><b>LENGTH GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LENGTH GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LENGTH_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LENGTH_GREATER_THAN_VALUE = 16;
+
+ /**
+ * The '<em><b>AXLE LOAD LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AXLE LOAD LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AXLE_LOAD_LESS_THAN_VALUE = 17;
+
+ /**
+ * The '<em><b>AXLE LOAD GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AXLE LOAD GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AXLE_LOAD_GREATER_THAN_VALUE = 18;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO3</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO3</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3_VALUE = 19;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO3D4</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO3D4</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4_VALUE = 20;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO4</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO4</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4_VALUE = 21;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO5</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMISSION STANDARD EURO5</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5_VALUE = 22;
+
+ /**
+ * The '<em><b>WITH PETROL ENGINE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH PETROL ENGINE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_PETROL_ENGINE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_PETROL_ENGINE_VALUE = 23;
+
+ /**
+ * The '<em><b>WITH DIESEL ENGINE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH DIESEL ENGINE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_DIESEL_ENGINE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_DIESEL_ENGINE_VALUE = 24;
+
+ /**
+ * The '<em><b>WITH LPG ENGINE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH LPG ENGINE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_LPG_ENGINE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_LPG_ENGINE_VALUE = 25;
+
+ /**
+ * The '<em><b>THROUGH TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>THROUGH TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #THROUGH_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int THROUGH_TRAFFIC_VALUE = 26;
+
+ /**
+ * The '<em><b>RESIDENTS TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESIDENTS TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESIDENTS_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESIDENTS_TRAFFIC_VALUE = 27;
+
+ /**
+ * The '<em><b>WITH DESTINATION IN GIVEN AREA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH DESTINATION IN GIVEN AREA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_DESTINATION_IN_GIVEN_AREA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_DESTINATION_IN_GIVEN_AREA_VALUE = 28;
+
+ /**
+ * An array of all the '<em><b>Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RestrictionType[] VALUES_ARRAY =
+ new RestrictionType[] {
+ WIDTH_LESS_THAN,
+ WIDTH_GREATER_THAN,
+ HEIGTH_LESS_THAN,
+ HEIGTH_GREATER_THAN,
+ WEIGHT_LESS_THAN,
+ WEIGHT_GREATER_THAN,
+ WITHOUT_WINTER_TYRE,
+ WITHOUT_SNOW_CHAIN,
+ WITH_TRAILER,
+ WITH_CARAVAN,
+ PERSONS_IN_VEHICLE_LESS_THAN,
+ PERSONS_IN_VEHICLE_MORE_THAN,
+ EVEN_NUMBER_PLATE,
+ ODD_NUMBER_PLATE,
+ LENGTH_LESS_THAN,
+ LENGTH_GREATER_THAN,
+ AXLE_LOAD_LESS_THAN,
+ AXLE_LOAD_GREATER_THAN,
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3,
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4,
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4,
+ VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5,
+ WITH_PETROL_ENGINE,
+ WITH_DIESEL_ENGINE,
+ WITH_LPG_ENGINE,
+ THROUGH_TRAFFIC,
+ RESIDENTS_TRAFFIC,
+ WITH_DESTINATION_IN_GIVEN_AREA,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RestrictionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Restriction Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RestrictionType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RestrictionType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Restriction Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RestrictionType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RestrictionType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Restriction Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RestrictionType get(int value) {
+ switch (value) {
+ case WIDTH_LESS_THAN_VALUE: return WIDTH_LESS_THAN;
+ case WIDTH_GREATER_THAN_VALUE: return WIDTH_GREATER_THAN;
+ case HEIGTH_LESS_THAN_VALUE: return HEIGTH_LESS_THAN;
+ case HEIGTH_GREATER_THAN_VALUE: return HEIGTH_GREATER_THAN;
+ case WEIGHT_LESS_THAN_VALUE: return WEIGHT_LESS_THAN;
+ case WEIGHT_GREATER_THAN_VALUE: return WEIGHT_GREATER_THAN;
+ case WITHOUT_WINTER_TYRE_VALUE: return WITHOUT_WINTER_TYRE;
+ case WITHOUT_SNOW_CHAIN_VALUE: return WITHOUT_SNOW_CHAIN;
+ case WITH_TRAILER_VALUE: return WITH_TRAILER;
+ case WITH_CARAVAN_VALUE: return WITH_CARAVAN;
+ case PERSONS_IN_VEHICLE_LESS_THAN_VALUE: return PERSONS_IN_VEHICLE_LESS_THAN;
+ case PERSONS_IN_VEHICLE_MORE_THAN_VALUE: return PERSONS_IN_VEHICLE_MORE_THAN;
+ case EVEN_NUMBER_PLATE_VALUE: return EVEN_NUMBER_PLATE;
+ case ODD_NUMBER_PLATE_VALUE: return ODD_NUMBER_PLATE;
+ case LENGTH_LESS_THAN_VALUE: return LENGTH_LESS_THAN;
+ case LENGTH_GREATER_THAN_VALUE: return LENGTH_GREATER_THAN;
+ case AXLE_LOAD_LESS_THAN_VALUE: return AXLE_LOAD_LESS_THAN;
+ case AXLE_LOAD_GREATER_THAN_VALUE: return AXLE_LOAD_GREATER_THAN;
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3_VALUE: return VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3;
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4_VALUE: return VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4;
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4_VALUE: return VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4;
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5_VALUE: return VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5;
+ case WITH_PETROL_ENGINE_VALUE: return WITH_PETROL_ENGINE;
+ case WITH_DIESEL_ENGINE_VALUE: return WITH_DIESEL_ENGINE;
+ case WITH_LPG_ENGINE_VALUE: return WITH_LPG_ENGINE;
+ case THROUGH_TRAFFIC_VALUE: return THROUGH_TRAFFIC;
+ case RESIDENTS_TRAFFIC_VALUE: return RESIDENTS_TRAFFIC;
+ case WITH_DESTINATION_IN_GIVEN_AREA_VALUE: return WITH_DESTINATION_IN_GIVEN_AREA;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RestrictionType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RestrictionType
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RiskOfFire.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RiskOfFire.java
new file mode 100755
index 0000000..6fcdf32
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RiskOfFire.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Risk Of Fire</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getRiskOfFire()
+ * @model
+ * @generated
+ */
+public enum RiskOfFire implements Enumerator {
+ /**
+ * The '<em><b>LEAKAGE OF FUEL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_FUEL_VALUE
+ * @generated
+ * @ordered
+ */
+ LEAKAGE_OF_FUEL(1, "LEAKAGE_OF_FUEL", "LEAKAGE_OF_FUEL"),
+
+ /**
+ * The '<em><b>LEAKAGE OF GAS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_GAS_VALUE
+ * @generated
+ * @ordered
+ */
+ LEAKAGE_OF_GAS(2, "LEAKAGE_OF_GAS", "LEAKAGE_OF_GAS");
+
+ /**
+ * The '<em><b>LEAKAGE OF FUEL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEAKAGE OF FUEL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_FUEL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEAKAGE_OF_FUEL_VALUE = 1;
+
+ /**
+ * The '<em><b>LEAKAGE OF GAS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEAKAGE OF GAS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_GAS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEAKAGE_OF_GAS_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Risk Of Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RiskOfFire[] VALUES_ARRAY =
+ new RiskOfFire[] {
+ LEAKAGE_OF_FUEL,
+ LEAKAGE_OF_GAS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Risk Of Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RiskOfFire> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Risk Of Fire</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RiskOfFire get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RiskOfFire result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Risk Of Fire</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RiskOfFire getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RiskOfFire result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Risk Of Fire</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RiskOfFire get(int value) {
+ switch (value) {
+ case LEAKAGE_OF_FUEL_VALUE: return LEAKAGE_OF_FUEL;
+ case LEAKAGE_OF_GAS_VALUE: return LEAKAGE_OF_GAS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RiskOfFire(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RiskOfFire
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RoadWorks.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RoadWorks.java
new file mode 100755
index 0000000..376ee89
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/RoadWorks.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Road Works</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getRoadWorks()
+ * @model
+ * @generated
+ */
+public enum RoadWorks implements Enumerator {
+ /**
+ * The '<em><b>MAJOR ROADWORKS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAJOR_ROADWORKS_VALUE
+ * @generated
+ * @ordered
+ */
+ MAJOR_ROADWORKS(1, "MAJOR_ROADWORKS", "MAJOR_ROADWORKS"),
+
+ /**
+ * The '<em><b>ROAD MARKING WORK</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROAD_MARKING_WORK_VALUE
+ * @generated
+ * @ordered
+ */
+ ROAD_MARKING_WORK(2, "ROAD_MARKING_WORK", "ROAD_MARKING_WORK"),
+
+ /**
+ * The '<em><b>SLOW MOVING ROAD MAINTENANCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_ROAD_MAINTENANCE_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_MOVING_ROAD_MAINTENANCE(3, "SLOW_MOVING_ROAD_MAINTENANCE", "SLOW_MOVING_ROAD_MAINTENANCE");
+
+ /**
+ * The '<em><b>MAJOR ROADWORKS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAJOR ROADWORKS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAJOR_ROADWORKS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MAJOR_ROADWORKS_VALUE = 1;
+
+ /**
+ * The '<em><b>ROAD MARKING WORK</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROAD MARKING WORK</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROAD_MARKING_WORK
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROAD_MARKING_WORK_VALUE = 2;
+
+ /**
+ * The '<em><b>SLOW MOVING ROAD MAINTENANCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW MOVING ROAD MAINTENANCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_ROAD_MAINTENANCE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_MOVING_ROAD_MAINTENANCE_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Road Works</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RoadWorks[] VALUES_ARRAY =
+ new RoadWorks[] {
+ MAJOR_ROADWORKS,
+ ROAD_MARKING_WORK,
+ SLOW_MOVING_ROAD_MAINTENANCE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Road Works</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RoadWorks> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Road Works</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RoadWorks get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RoadWorks result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Road Works</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RoadWorks getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RoadWorks result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Road Works</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RoadWorks get(int value) {
+ switch (value) {
+ case MAJOR_ROADWORKS_VALUE: return MAJOR_ROADWORKS;
+ case ROAD_MARKING_WORK_VALUE: return ROAD_MARKING_WORK;
+ case SLOW_MOVING_ROAD_MAINTENANCE_VALUE: return SLOW_MOVING_ROAD_MAINTENANCE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RoadWorks(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RoadWorks
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotOperating.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotOperating.java
new file mode 100755
index 0000000..4326eeb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotOperating.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Service Not Operating</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getServiceNotOperating()
+ * @model
+ * @generated
+ */
+public enum ServiceNotOperating implements Enumerator {
+ /**
+ * The '<em><b>FERRY SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FERRY_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ FERRY_SERVICE_NOT_OPERATING(1, "FERRY_SERVICE_NOT_OPERATING", "FERRY_SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>PLANE SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PLANE_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ PLANE_SERVICE_NOT_OPERATING(2, "PLANE_SERVICE_NOT_OPERATING", "PLANE_SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>TRAIN SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAIN_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAIN_SERVICE_NOT_OPERATING(3, "TRAIN_SERVICE_NOT_OPERATING", "TRAIN_SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>BUS SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BUS_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ BUS_SERVICE_NOT_OPERATING(4, "BUS_SERVICE_NOT_OPERATING", "BUS_SERVICE_NOT_OPERATING");
+
+ /**
+ * The '<em><b>FERRY SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FERRY SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FERRY_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FERRY_SERVICE_NOT_OPERATING_VALUE = 1;
+
+ /**
+ * The '<em><b>PLANE SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PLANE SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PLANE_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PLANE_SERVICE_NOT_OPERATING_VALUE = 2;
+
+ /**
+ * The '<em><b>TRAIN SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAIN SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAIN_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAIN_SERVICE_NOT_OPERATING_VALUE = 3;
+
+ /**
+ * The '<em><b>BUS SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BUS SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BUS_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BUS_SERVICE_NOT_OPERATING_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Service Not Operating</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ServiceNotOperating[] VALUES_ARRAY =
+ new ServiceNotOperating[] {
+ FERRY_SERVICE_NOT_OPERATING,
+ PLANE_SERVICE_NOT_OPERATING,
+ TRAIN_SERVICE_NOT_OPERATING,
+ BUS_SERVICE_NOT_OPERATING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Service Not Operating</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ServiceNotOperating> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Service Not Operating</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotOperating get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotOperating result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Operating</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotOperating getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotOperating result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Operating</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotOperating get(int value) {
+ switch (value) {
+ case FERRY_SERVICE_NOT_OPERATING_VALUE: return FERRY_SERVICE_NOT_OPERATING;
+ case PLANE_SERVICE_NOT_OPERATING_VALUE: return PLANE_SERVICE_NOT_OPERATING;
+ case TRAIN_SERVICE_NOT_OPERATING_VALUE: return TRAIN_SERVICE_NOT_OPERATING;
+ case BUS_SERVICE_NOT_OPERATING_VALUE: return BUS_SERVICE_NOT_OPERATING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ServiceNotOperating(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ServiceNotOperating
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotUsable.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotUsable.java
new file mode 100755
index 0000000..3abe295
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/ServiceNotUsable.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Service Not Usable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getServiceNotUsable()
+ * @model
+ * @generated
+ */
+public enum ServiceNotUsable implements Enumerator {
+ /**
+ * The '<em><b>FUEL STATION CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FUEL_STATION_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ FUEL_STATION_CLOSED(1, "FUEL_STATION_CLOSED", "FUEL_STATION_CLOSED"),
+
+ /**
+ * The '<em><b>SERVICE AREA CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_AREA_CLOSED(2, "SERVICE_AREA_CLOSED", "SERVICE_AREA_CLOSED"),
+
+ /**
+ * The '<em><b>SERVICE AREA BUSY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_BUSY_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_AREA_BUSY(3, "SERVICE_AREA_BUSY", "SERVICE_AREA_BUSY"),
+
+ /**
+ * The '<em><b>PARKING FULL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARKING_FULL_VALUE
+ * @generated
+ * @ordered
+ */
+ PARKING_FULL(4, "PARKING_FULL", "PARKING_FULL"),
+
+ /**
+ * The '<em><b>CAR PARK CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CAR_PARK_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ CAR_PARK_CLOSED(5, "CAR_PARK_CLOSED", "CAR_PARK_CLOSED");
+
+ /**
+ * The '<em><b>FUEL STATION CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FUEL STATION CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FUEL_STATION_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FUEL_STATION_CLOSED_VALUE = 1;
+
+ /**
+ * The '<em><b>SERVICE AREA CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE AREA CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_AREA_CLOSED_VALUE = 2;
+
+ /**
+ * The '<em><b>SERVICE AREA BUSY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE AREA BUSY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_BUSY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_AREA_BUSY_VALUE = 3;
+
+ /**
+ * The '<em><b>PARKING FULL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARKING FULL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARKING_FULL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARKING_FULL_VALUE = 4;
+
+ /**
+ * The '<em><b>CAR PARK CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CAR PARK CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CAR_PARK_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CAR_PARK_CLOSED_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Service Not Usable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ServiceNotUsable[] VALUES_ARRAY =
+ new ServiceNotUsable[] {
+ FUEL_STATION_CLOSED,
+ SERVICE_AREA_CLOSED,
+ SERVICE_AREA_BUSY,
+ PARKING_FULL,
+ CAR_PARK_CLOSED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Service Not Usable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ServiceNotUsable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Service Not Usable</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotUsable get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotUsable result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Usable</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotUsable getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotUsable result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Usable</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotUsable get(int value) {
+ switch (value) {
+ case FUEL_STATION_CLOSED_VALUE: return FUEL_STATION_CLOSED;
+ case SERVICE_AREA_CLOSED_VALUE: return SERVICE_AREA_CLOSED;
+ case SERVICE_AREA_BUSY_VALUE: return SERVICE_AREA_BUSY;
+ case PARKING_FULL_VALUE: return PARKING_FULL;
+ case CAR_PARK_CLOSED_VALUE: return CAR_PARK_CLOSED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ServiceNotUsable(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ServiceNotUsable
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlipperyRoad.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlipperyRoad.java
new file mode 100755
index 0000000..e7a219f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlipperyRoad.java
@@ -0,0 +1,429 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Slippery Road</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getSlipperyRoad()
+ * @model
+ * @generated
+ */
+public enum SlipperyRoad implements Enumerator {
+ /**
+ * The '<em><b>HEAVY FROST ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_FROST_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_FROST_ON_ROAD(1, "HEAVY_FROST_ON_ROAD", "HEAVY_FROST_ON_ROAD"),
+
+ /**
+ * The '<em><b>FUEL ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FUEL_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ FUEL_ON_ROAD(2, "FUEL_ON_ROAD", "FUEL_ON_ROAD"),
+
+ /**
+ * The '<em><b>MUD ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MUD_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ MUD_ON_ROAD(3, "MUD_ON_ROAD", "MUD_ON_ROAD"),
+
+ /**
+ * The '<em><b>SNOW ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SNOW_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ SNOW_ON_ROAD(4, "SNOW_ON_ROAD", "SNOW_ON_ROAD"),
+
+ /**
+ * The '<em><b>ICE ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ICE_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ ICE_ON_ROAD(5, "ICE_ON_ROAD", "ICE_ON_ROAD"),
+
+ /**
+ * The '<em><b>BLACK ICE ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLACK_ICE_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ BLACK_ICE_ON_ROAD(6, "BLACK_ICE_ON_ROAD", "BLACK_ICE_ON_ROAD"),
+
+ /**
+ * The '<em><b>OIL ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OIL_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ OIL_ON_ROAD(7, "OIL_ON_ROAD", "OIL_ON_ROAD"),
+
+ /**
+ * The '<em><b>LOOSE CHIPPINGS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOOSE_CHIPPINGS_VALUE
+ * @generated
+ * @ordered
+ */
+ LOOSE_CHIPPINGS(8, "LOOSE_CHIPPINGS", "LOOSE_CHIPPINGS"),
+
+ /**
+ * The '<em><b>INSTANT BLACK ICE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INSTANT_BLACK_ICE_VALUE
+ * @generated
+ * @ordered
+ */
+ INSTANT_BLACK_ICE(9, "INSTANT_BLACK_ICE", "INSTANT_BLACK_ICE"),
+
+ /**
+ * The '<em><b>ROADS SALTED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROADS_SALTED_VALUE
+ * @generated
+ * @ordered
+ */
+ ROADS_SALTED(10, "ROADS_SALTED", "ROADS_SALTED");
+
+ /**
+ * The '<em><b>HEAVY FROST ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY FROST ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_FROST_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_FROST_ON_ROAD_VALUE = 1;
+
+ /**
+ * The '<em><b>FUEL ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FUEL ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FUEL_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FUEL_ON_ROAD_VALUE = 2;
+
+ /**
+ * The '<em><b>MUD ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MUD ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MUD_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MUD_ON_ROAD_VALUE = 3;
+
+ /**
+ * The '<em><b>SNOW ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SNOW ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SNOW_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SNOW_ON_ROAD_VALUE = 4;
+
+ /**
+ * The '<em><b>ICE ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ICE ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ICE_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ICE_ON_ROAD_VALUE = 5;
+
+ /**
+ * The '<em><b>BLACK ICE ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLACK ICE ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLACK_ICE_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLACK_ICE_ON_ROAD_VALUE = 6;
+
+ /**
+ * The '<em><b>OIL ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OIL ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OIL_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OIL_ON_ROAD_VALUE = 7;
+
+ /**
+ * The '<em><b>LOOSE CHIPPINGS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOOSE CHIPPINGS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOOSE_CHIPPINGS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOOSE_CHIPPINGS_VALUE = 8;
+
+ /**
+ * The '<em><b>INSTANT BLACK ICE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INSTANT BLACK ICE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INSTANT_BLACK_ICE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INSTANT_BLACK_ICE_VALUE = 9;
+
+ /**
+ * The '<em><b>ROADS SALTED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROADS SALTED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROADS_SALTED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROADS_SALTED_VALUE = 10;
+
+ /**
+ * An array of all the '<em><b>Slippery Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SlipperyRoad[] VALUES_ARRAY =
+ new SlipperyRoad[] {
+ HEAVY_FROST_ON_ROAD,
+ FUEL_ON_ROAD,
+ MUD_ON_ROAD,
+ SNOW_ON_ROAD,
+ ICE_ON_ROAD,
+ BLACK_ICE_ON_ROAD,
+ OIL_ON_ROAD,
+ LOOSE_CHIPPINGS,
+ INSTANT_BLACK_ICE,
+ ROADS_SALTED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Slippery Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SlipperyRoad> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Slippery Road</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlipperyRoad get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlipperyRoad result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slippery Road</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlipperyRoad getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlipperyRoad result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slippery Road</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlipperyRoad get(int value) {
+ switch (value) {
+ case HEAVY_FROST_ON_ROAD_VALUE: return HEAVY_FROST_ON_ROAD;
+ case FUEL_ON_ROAD_VALUE: return FUEL_ON_ROAD;
+ case MUD_ON_ROAD_VALUE: return MUD_ON_ROAD;
+ case SNOW_ON_ROAD_VALUE: return SNOW_ON_ROAD;
+ case ICE_ON_ROAD_VALUE: return ICE_ON_ROAD;
+ case BLACK_ICE_ON_ROAD_VALUE: return BLACK_ICE_ON_ROAD;
+ case OIL_ON_ROAD_VALUE: return OIL_ON_ROAD;
+ case LOOSE_CHIPPINGS_VALUE: return LOOSE_CHIPPINGS;
+ case INSTANT_BLACK_ICE_VALUE: return INSTANT_BLACK_ICE;
+ case ROADS_SALTED_VALUE: return ROADS_SALTED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SlipperyRoad(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //SlipperyRoad
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlowMovingVehicles.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlowMovingVehicles.java
new file mode 100755
index 0000000..d11095a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/SlowMovingVehicles.java
@@ -0,0 +1,375 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Slow Moving Vehicles</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getSlowMovingVehicles()
+ * @model
+ * @generated
+ */
+public enum SlowMovingVehicles implements Enumerator {
+ /**
+ * The '<em><b>SLOW MOVING MAINTENANCE VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_MAINTENANCE_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_MOVING_MAINTENANCE_VEHICLE(1, "SLOW_MOVING_MAINTENANCE_VEHICLE", "SLOW_MOVING_MAINTENANCE_VEHICLE"),
+
+ /**
+ * The '<em><b>VEHICLES SLOWING TO LOOK AT ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT(2, "VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT", "VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT"),
+
+ /**
+ * The '<em><b>ABNORMAL LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ ABNORMAL_LOAD(3, "ABNORMAL_LOAD", "ABNORMAL_LOAD"),
+
+ /**
+ * The '<em><b>ABNORMAL WIDE LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_WIDE_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ ABNORMAL_WIDE_LOAD(4, "ABNORMAL_WIDE_LOAD", "ABNORMAL_WIDE_LOAD"),
+
+ /**
+ * The '<em><b>CONVOY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONVOY_VALUE
+ * @generated
+ * @ordered
+ */
+ CONVOY(5, "CONVOY", "CONVOY"),
+
+ /**
+ * The '<em><b>SNOWPLOUGH</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SNOWPLOUGH_VALUE
+ * @generated
+ * @ordered
+ */
+ SNOWPLOUGH(6, "SNOWPLOUGH", "SNOWPLOUGH"),
+
+ /**
+ * The '<em><b>DEICING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEICING_VALUE
+ * @generated
+ * @ordered
+ */
+ DEICING(7, "DEICING", "DEICING"),
+
+ /**
+ * The '<em><b>SALTING VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SALTING_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ SALTING_VEHICLES(8, "SALTING_VEHICLES", "SALTING_VEHICLES");
+
+ /**
+ * The '<em><b>SLOW MOVING MAINTENANCE VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW MOVING MAINTENANCE VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_MAINTENANCE_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_MOVING_MAINTENANCE_VEHICLE_VALUE = 1;
+
+ /**
+ * The '<em><b>VEHICLES SLOWING TO LOOK AT ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLES SLOWING TO LOOK AT ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT_VALUE = 2;
+
+ /**
+ * The '<em><b>ABNORMAL LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ABNORMAL LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ABNORMAL_LOAD_VALUE = 3;
+
+ /**
+ * The '<em><b>ABNORMAL WIDE LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ABNORMAL WIDE LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_WIDE_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ABNORMAL_WIDE_LOAD_VALUE = 4;
+
+ /**
+ * The '<em><b>CONVOY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONVOY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONVOY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONVOY_VALUE = 5;
+
+ /**
+ * The '<em><b>SNOWPLOUGH</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SNOWPLOUGH</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SNOWPLOUGH
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SNOWPLOUGH_VALUE = 6;
+
+ /**
+ * The '<em><b>DEICING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEICING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEICING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEICING_VALUE = 7;
+
+ /**
+ * The '<em><b>SALTING VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SALTING VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SALTING_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SALTING_VEHICLES_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>Slow Moving Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SlowMovingVehicles[] VALUES_ARRAY =
+ new SlowMovingVehicles[] {
+ SLOW_MOVING_MAINTENANCE_VEHICLE,
+ VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT,
+ ABNORMAL_LOAD,
+ ABNORMAL_WIDE_LOAD,
+ CONVOY,
+ SNOWPLOUGH,
+ DEICING,
+ SALTING_VEHICLES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Slow Moving Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SlowMovingVehicles> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Slow Moving Vehicles</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlowMovingVehicles get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlowMovingVehicles result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slow Moving Vehicles</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlowMovingVehicles getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlowMovingVehicles result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slow Moving Vehicles</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlowMovingVehicles get(int value) {
+ switch (value) {
+ case SLOW_MOVING_MAINTENANCE_VEHICLE_VALUE: return SLOW_MOVING_MAINTENANCE_VEHICLE;
+ case VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT_VALUE: return VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT;
+ case ABNORMAL_LOAD_VALUE: return ABNORMAL_LOAD;
+ case ABNORMAL_WIDE_LOAD_VALUE: return ABNORMAL_WIDE_LOAD;
+ case CONVOY_VALUE: return CONVOY;
+ case SNOWPLOUGH_VALUE: return SNOWPLOUGH;
+ case DEICING_VALUE: return DEICING;
+ case SALTING_VEHICLES_VALUE: return SALTING_VEHICLES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SlowMovingVehicles(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //SlowMovingVehicles
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Tendency.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Tendency.java
new file mode 100755
index 0000000..6f68790
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/Tendency.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Tendency</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getTendency()
+ * @model
+ * @generated
+ */
+public enum Tendency implements Enumerator {
+ /**
+ * The '<em><b>SLIGHTLY INCREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_INCREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIGHTLY_INCREASING(1, "SLIGHTLY_INCREASING", "SLIGHTLY_INCREASING"),
+
+ /**
+ * The '<em><b>INCREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ INCREASING(2, "INCREASING", "INCREASING"),
+
+ /**
+ * The '<em><b>STRONGLY INCREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_INCREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ STRONGLY_INCREASING(3, "STRONGLY_INCREASING", "STRONGLY_INCREASING"),
+
+ /**
+ * The '<em><b>SLIGHTLY DECREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_DECREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIGHTLY_DECREASING(4, "SLIGHTLY_DECREASING", "SLIGHTLY_DECREASING"),
+
+ /**
+ * The '<em><b>DECREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DECREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ DECREASING(5, "DECREASING", "DECREASING"),
+
+ /**
+ * The '<em><b>STRONGLY DECREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_DECREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ STRONGLY_DECREASING(6, "STRONGLY_DECREASING", "STRONGLY_DECREASING"),
+
+ /**
+ * The '<em><b>CONSTANT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONSTANT_VALUE
+ * @generated
+ * @ordered
+ */
+ CONSTANT(7, "CONSTANT", "CONSTANT");
+
+ /**
+ * The '<em><b>SLIGHTLY INCREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIGHTLY INCREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_INCREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIGHTLY_INCREASING_VALUE = 1;
+
+ /**
+ * The '<em><b>INCREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INCREASING_VALUE = 2;
+
+ /**
+ * The '<em><b>STRONGLY INCREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRONGLY INCREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_INCREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRONGLY_INCREASING_VALUE = 3;
+
+ /**
+ * The '<em><b>SLIGHTLY DECREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIGHTLY DECREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_DECREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIGHTLY_DECREASING_VALUE = 4;
+
+ /**
+ * The '<em><b>DECREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DECREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DECREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DECREASING_VALUE = 5;
+
+ /**
+ * The '<em><b>STRONGLY DECREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRONGLY DECREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_DECREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRONGLY_DECREASING_VALUE = 6;
+
+ /**
+ * The '<em><b>CONSTANT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONSTANT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONSTANT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONSTANT_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Tendency</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Tendency[] VALUES_ARRAY =
+ new Tendency[] {
+ SLIGHTLY_INCREASING,
+ INCREASING,
+ STRONGLY_INCREASING,
+ SLIGHTLY_DECREASING,
+ DECREASING,
+ STRONGLY_DECREASING,
+ CONSTANT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Tendency</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Tendency> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Tendency</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Tendency get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Tendency result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Tendency</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Tendency getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Tendency result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Tendency</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Tendency get(int value) {
+ switch (value) {
+ case SLIGHTLY_INCREASING_VALUE: return SLIGHTLY_INCREASING;
+ case INCREASING_VALUE: return INCREASING;
+ case STRONGLY_INCREASING_VALUE: return STRONGLY_INCREASING;
+ case SLIGHTLY_DECREASING_VALUE: return SLIGHTLY_DECREASING;
+ case DECREASING_VALUE: return DECREASING;
+ case STRONGLY_DECREASING_VALUE: return STRONGLY_DECREASING;
+ case CONSTANT_VALUE: return CONSTANT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Tendency(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Tendency
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TimeDelay.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TimeDelay.java
new file mode 100755
index 0000000..f9db8cf
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TimeDelay.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Time Delay</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getTimeDelay()
+ * @model
+ * @generated
+ */
+public enum TimeDelay implements Enumerator {
+ /**
+ * The '<em><b>TIME DELAY AT FRONTIER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FRONTIER_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY_AT_FRONTIER(1, "TIME_DELAY_AT_FRONTIER", "TIME_DELAY_AT_FRONTIER"),
+
+ /**
+ * The '<em><b>TIME DELAY AT FERRY PORT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FERRY_PORT_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY_AT_FERRY_PORT(2, "TIME_DELAY_AT_FERRY_PORT", "TIME_DELAY_AT_FERRY_PORT"),
+
+ /**
+ * The '<em><b>TIME DELAY AT VEHICLE ON RAIL TERMINAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL(3, "TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL", "TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL");
+
+ /**
+ * The '<em><b>TIME DELAY AT FRONTIER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY AT FRONTIER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FRONTIER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_AT_FRONTIER_VALUE = 1;
+
+ /**
+ * The '<em><b>TIME DELAY AT FERRY PORT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY AT FERRY PORT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FERRY_PORT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_AT_FERRY_PORT_VALUE = 2;
+
+ /**
+ * The '<em><b>TIME DELAY AT VEHICLE ON RAIL TERMINAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY AT VEHICLE ON RAIL TERMINAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Time Delay</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TimeDelay[] VALUES_ARRAY =
+ new TimeDelay[] {
+ TIME_DELAY_AT_FRONTIER,
+ TIME_DELAY_AT_FERRY_PORT,
+ TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Time Delay</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TimeDelay> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Time Delay</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TimeDelay get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TimeDelay result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Time Delay</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TimeDelay getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TimeDelay result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Time Delay</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TimeDelay get(int value) {
+ switch (value) {
+ case TIME_DELAY_AT_FRONTIER_VALUE: return TIME_DELAY_AT_FRONTIER;
+ case TIME_DELAY_AT_FERRY_PORT_VALUE: return TIME_DELAY_AT_FERRY_PORT;
+ case TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL_VALUE: return TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TimeDelay(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TimeDelay
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TrafficCongestion.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TrafficCongestion.java
new file mode 100755
index 0000000..4ea2ad8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/TrafficCongestion.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Traffic Congestion</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getTrafficCongestion()
+ * @model
+ * @generated
+ */
+public enum TrafficCongestion implements Enumerator {
+ /**
+ * The '<em><b>INCREASED VOLUME OF TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCREASED_VOLUME_OF_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ INCREASED_VOLUME_OF_TRAFFIC(1, "INCREASED_VOLUME_OF_TRAFFIC", "INCREASED_VOLUME_OF_TRAFFIC");
+
+ /**
+ * The '<em><b>INCREASED VOLUME OF TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCREASED VOLUME OF TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCREASED_VOLUME_OF_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INCREASED_VOLUME_OF_TRAFFIC_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Traffic Congestion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TrafficCongestion[] VALUES_ARRAY =
+ new TrafficCongestion[] {
+ INCREASED_VOLUME_OF_TRAFFIC,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Traffic Congestion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TrafficCongestion> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Traffic Congestion</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficCongestion get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficCongestion result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Congestion</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficCongestion getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficCongestion result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Congestion</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficCongestion get(int value) {
+ switch (value) {
+ case INCREASED_VOLUME_OF_TRAFFIC_VALUE: return INCREASED_VOLUME_OF_TRAFFIC;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TrafficCongestion(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TrafficCongestion
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/UseTollLanes.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/UseTollLanes.java
new file mode 100755
index 0000000..d459811
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/UseTollLanes.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Use Toll Lanes</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getUseTollLanes()
+ * @model
+ * @generated
+ */
+public enum UseTollLanes implements Enumerator {
+ /**
+ * The '<em><b>USE MANUAL PAYMENT TOLL LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_MANUAL_PAYMENT_TOLL_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_MANUAL_PAYMENT_TOLL_LANES(1, "USE_MANUAL_PAYMENT_TOLL_LANES", "USE_MANUAL_PAYMENT_TOLL_LANES"),
+
+ /**
+ * The '<em><b>USE AUTOMATIC PAYMENT TOLL LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_AUTOMATIC_PAYMENT_TOLL_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_AUTOMATIC_PAYMENT_TOLL_LANES(2, "USE_AUTOMATIC_PAYMENT_TOLL_LANES", "USE_AUTOMATIC_PAYMENT_TOLL_LANES");
+
+ /**
+ * The '<em><b>USE MANUAL PAYMENT TOLL LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE MANUAL PAYMENT TOLL LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_MANUAL_PAYMENT_TOLL_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_MANUAL_PAYMENT_TOLL_LANES_VALUE = 1;
+
+ /**
+ * The '<em><b>USE AUTOMATIC PAYMENT TOLL LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE AUTOMATIC PAYMENT TOLL LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_AUTOMATIC_PAYMENT_TOLL_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_AUTOMATIC_PAYMENT_TOLL_LANES_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Use Toll Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final UseTollLanes[] VALUES_ARRAY =
+ new UseTollLanes[] {
+ USE_MANUAL_PAYMENT_TOLL_LANES,
+ USE_AUTOMATIC_PAYMENT_TOLL_LANES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Use Toll Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<UseTollLanes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Use Toll Lanes</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UseTollLanes get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UseTollLanes result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Use Toll Lanes</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UseTollLanes getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UseTollLanes result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Use Toll Lanes</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UseTollLanes get(int value) {
+ switch (value) {
+ case USE_MANUAL_PAYMENT_TOLL_LANES_VALUE: return USE_MANUAL_PAYMENT_TOLL_LANES;
+ case USE_AUTOMATIC_PAYMENT_TOLL_LANES_VALUE: return USE_AUTOMATIC_PAYMENT_TOLL_LANES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private UseTollLanes(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //UseTollLanes
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VehicleType.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VehicleType.java
new file mode 100755
index 0000000..b73249c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VehicleType.java
@@ -0,0 +1,456 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Vehicle Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getVehicleType()
+ * @model
+ * @generated
+ */
+public enum VehicleType implements Enumerator {
+ /**
+ * The '<em><b>CAR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CAR_VALUE
+ * @generated
+ * @ordered
+ */
+ CAR(1, "CAR", "CAR"),
+
+ /**
+ * The '<em><b>LORRY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LORRY_VALUE
+ * @generated
+ * @ordered
+ */
+ LORRY(2, "LORRY", "LORRY"),
+
+ /**
+ * The '<em><b>BUS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BUS_VALUE
+ * @generated
+ * @ordered
+ */
+ BUS(3, "BUS", "BUS"),
+
+ /**
+ * The '<em><b>TAXI</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TAXI_VALUE
+ * @generated
+ * @ordered
+ */
+ TAXI(4, "TAXI", "TAXI"),
+
+ /**
+ * The '<em><b>TRAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAIN(5, "TRAIN", "TRAIN"),
+
+ /**
+ * The '<em><b>MOTOR CYCLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLE_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTOR_CYCLE(6, "MOTOR_CYCLE", "MOTOR_CYCLE"),
+
+ /**
+ * The '<em><b>VEHICLE WITH TRAILER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_WITH_TRAILER_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_WITH_TRAILER(7, "VEHICLE_WITH_TRAILER", "VEHICLE_WITH_TRAILER"),
+
+ /**
+ * The '<em><b>MOTOR VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTOR_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTOR_VEHICLES(8, "MOTOR_VEHICLES", "MOTOR_VEHICLES"),
+
+ /**
+ * The '<em><b>TRANSPORT OF DANGEROUS GOODS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_DANGEROUS_GOODS_VALUE
+ * @generated
+ * @ordered
+ */
+ TRANSPORT_OF_DANGEROUS_GOODS(9, "TRANSPORT_OF_DANGEROUS_GOODS", "TRANSPORT_OF_DANGEROUS_GOODS"),
+
+ /**
+ * The '<em><b>TRANSPORT OF ABNORMAL LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_ABNORMAL_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ TRANSPORT_OF_ABNORMAL_LOAD(10, "TRANSPORT_OF_ABNORMAL_LOAD", "TRANSPORT_OF_ABNORMAL_LOAD"),
+
+ /**
+ * The '<em><b>HEAVY VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_VEHICLE(11, "HEAVY_VEHICLE", "HEAVY_VEHICLE");
+
+ /**
+ * The '<em><b>CAR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CAR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CAR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CAR_VALUE = 1;
+
+ /**
+ * The '<em><b>LORRY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LORRY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LORRY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LORRY_VALUE = 2;
+
+ /**
+ * The '<em><b>BUS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BUS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BUS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BUS_VALUE = 3;
+
+ /**
+ * The '<em><b>TAXI</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TAXI</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TAXI
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TAXI_VALUE = 4;
+
+ /**
+ * The '<em><b>TRAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAIN_VALUE = 5;
+
+ /**
+ * The '<em><b>MOTOR CYCLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTOR CYCLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTOR_CYCLE_VALUE = 6;
+
+ /**
+ * The '<em><b>VEHICLE WITH TRAILER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE WITH TRAILER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_WITH_TRAILER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_WITH_TRAILER_VALUE = 7;
+
+ /**
+ * The '<em><b>MOTOR VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTOR VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTOR_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTOR_VEHICLES_VALUE = 8;
+
+ /**
+ * The '<em><b>TRANSPORT OF DANGEROUS GOODS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRANSPORT OF DANGEROUS GOODS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_DANGEROUS_GOODS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRANSPORT_OF_DANGEROUS_GOODS_VALUE = 9;
+
+ /**
+ * The '<em><b>TRANSPORT OF ABNORMAL LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRANSPORT OF ABNORMAL LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_ABNORMAL_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRANSPORT_OF_ABNORMAL_LOAD_VALUE = 10;
+
+ /**
+ * The '<em><b>HEAVY VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_VEHICLE_VALUE = 11;
+
+ /**
+ * An array of all the '<em><b>Vehicle Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final VehicleType[] VALUES_ARRAY =
+ new VehicleType[] {
+ CAR,
+ LORRY,
+ BUS,
+ TAXI,
+ TRAIN,
+ MOTOR_CYCLE,
+ VEHICLE_WITH_TRAILER,
+ MOTOR_VEHICLES,
+ TRANSPORT_OF_DANGEROUS_GOODS,
+ TRANSPORT_OF_ABNORMAL_LOAD,
+ HEAVY_VEHICLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Vehicle Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<VehicleType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Vehicle Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VehicleType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VehicleType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Vehicle Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VehicleType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VehicleType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Vehicle Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VehicleType get(int value) {
+ switch (value) {
+ case CAR_VALUE: return CAR;
+ case LORRY_VALUE: return LORRY;
+ case BUS_VALUE: return BUS;
+ case TAXI_VALUE: return TAXI;
+ case TRAIN_VALUE: return TRAIN;
+ case MOTOR_CYCLE_VALUE: return MOTOR_CYCLE;
+ case VEHICLE_WITH_TRAILER_VALUE: return VEHICLE_WITH_TRAILER;
+ case MOTOR_VEHICLES_VALUE: return MOTOR_VEHICLES;
+ case TRANSPORT_OF_DANGEROUS_GOODS_VALUE: return TRANSPORT_OF_DANGEROUS_GOODS;
+ case TRANSPORT_OF_ABNORMAL_LOAD_VALUE: return TRANSPORT_OF_ABNORMAL_LOAD;
+ case HEAVY_VEHICLE_VALUE: return HEAVY_VEHICLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private VehicleType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //VehicleType
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VisibilityReduced.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VisibilityReduced.java
new file mode 100755
index 0000000..d2b87bc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/VisibilityReduced.java
@@ -0,0 +1,375 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Visibility Reduced</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getVisibilityReduced()
+ * @model
+ * @generated
+ */
+public enum VisibilityReduced implements Enumerator {
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO FOG</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_FOG_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_FOG(1, "VISIBILITY_REDUCED_DUE_TO_FOG", "VISIBILITY_REDUCED_DUE_TO_FOG"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SMOKE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SMOKE_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_SMOKE(2, "VISIBILITY_REDUCED_DUE_TO_SMOKE", "VISIBILITY_REDUCED_DUE_TO_SMOKE"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY SNOWFALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL(3, "VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL", "VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY RAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN(4, "VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN", "VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY HAIL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL(5, "VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL", "VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO LOW SUN GLARE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE(6, "VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE", "VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SANDSTORMS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SANDSTORMS_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_SANDSTORMS(7, "VISIBILITY_REDUCED_DUE_TO_SANDSTORMS", "VISIBILITY_REDUCED_DUE_TO_SANDSTORMS"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SWARMS OF INSECTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS(8, "VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS", "VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS");
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO FOG</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO FOG</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_FOG
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_FOG_VALUE = 1;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SMOKE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO SMOKE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SMOKE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_SMOKE_VALUE = 2;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY SNOWFALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO HEAVY SNOWFALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL_VALUE = 3;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY RAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO HEAVY RAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN_VALUE = 4;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY HAIL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO HEAVY HAIL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL_VALUE = 5;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO LOW SUN GLARE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO LOW SUN GLARE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE_VALUE = 6;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SANDSTORMS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO SANDSTORMS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SANDSTORMS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_SANDSTORMS_VALUE = 7;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SWARMS OF INSECTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO SWARMS OF INSECTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>Visibility Reduced</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final VisibilityReduced[] VALUES_ARRAY =
+ new VisibilityReduced[] {
+ VISIBILITY_REDUCED_DUE_TO_FOG,
+ VISIBILITY_REDUCED_DUE_TO_SMOKE,
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL,
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN,
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL,
+ VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE,
+ VISIBILITY_REDUCED_DUE_TO_SANDSTORMS,
+ VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Visibility Reduced</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<VisibilityReduced> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Visibility Reduced</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VisibilityReduced get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityReduced result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Reduced</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VisibilityReduced getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityReduced result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Reduced</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VisibilityReduced get(int value) {
+ switch (value) {
+ case VISIBILITY_REDUCED_DUE_TO_FOG_VALUE: return VISIBILITY_REDUCED_DUE_TO_FOG;
+ case VISIBILITY_REDUCED_DUE_TO_SMOKE_VALUE: return VISIBILITY_REDUCED_DUE_TO_SMOKE;
+ case VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL_VALUE: return VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL;
+ case VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN_VALUE: return VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN;
+ case VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL_VALUE: return VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL;
+ case VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE_VALUE: return VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE;
+ case VISIBILITY_REDUCED_DUE_TO_SANDSTORMS_VALUE: return VISIBILITY_REDUCED_DUE_TO_SANDSTORMS;
+ case VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS_VALUE: return VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private VisibilityReduced(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //VisibilityReduced
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/WarningLevel.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/WarningLevel.java
new file mode 100755
index 0000000..fbbcf4c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/WarningLevel.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Warning Level</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#getWarningLevel()
+ * @model
+ * @generated
+ */
+public enum WarningLevel implements Enumerator {
+ /**
+ * The '<em><b>INFORMATIVE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INFORMATIVE_VALUE
+ * @generated
+ * @ordered
+ */
+ INFORMATIVE(1, "INFORMATIVE", "INFORMATIVE"),
+
+ /**
+ * The '<em><b>DANGER LEVEL 1</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_1_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_LEVEL_1(2, "DANGER_LEVEL_1", "DANGER_LEVEL_1"),
+
+ /**
+ * The '<em><b>DANGER LEVEL 2</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_2_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_LEVEL_2(3, "DANGER_LEVEL_2", "DANGER_LEVEL_2"),
+
+ /**
+ * The '<em><b>DANGER LEVEL 3</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_3_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_LEVEL_3(4, "DANGER_LEVEL_3", "DANGER_LEVEL_3");
+
+ /**
+ * The '<em><b>INFORMATIVE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INFORMATIVE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INFORMATIVE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INFORMATIVE_VALUE = 1;
+
+ /**
+ * The '<em><b>DANGER LEVEL 1</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER LEVEL 1</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_1
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_LEVEL_1_VALUE = 2;
+
+ /**
+ * The '<em><b>DANGER LEVEL 2</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER LEVEL 2</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_2
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_LEVEL_2_VALUE = 3;
+
+ /**
+ * The '<em><b>DANGER LEVEL 3</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER LEVEL 3</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_3
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_LEVEL_3_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Warning Level</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final WarningLevel[] VALUES_ARRAY =
+ new WarningLevel[] {
+ INFORMATIVE,
+ DANGER_LEVEL_1,
+ DANGER_LEVEL_2,
+ DANGER_LEVEL_3,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Warning Level</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<WarningLevel> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Warning Level</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WarningLevel get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WarningLevel result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Warning Level</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WarningLevel getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WarningLevel result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Warning Level</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WarningLevel get(int value) {
+ switch (value) {
+ case INFORMATIVE_VALUE: return INFORMATIVE;
+ case DANGER_LEVEL_1_VALUE: return DANGER_LEVEL_1;
+ case DANGER_LEVEL_2_VALUE: return DANGER_LEVEL_2;
+ case DANGER_LEVEL_3_VALUE: return DANGER_LEVEL_3;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private WarningLevel(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //WarningLevel
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesFactoryImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesFactoryImpl.java
new file mode 100755
index 0000000..5e8b912
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesFactoryImpl.java
@@ -0,0 +1,1124 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class trafficincidenttablesFactoryImpl extends EFactoryImpl implements trafficincidenttablesFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static trafficincidenttablesFactory init() {
+ try {
+ trafficincidenttablesFactory thetrafficincidenttablesFactory = (trafficincidenttablesFactory)EPackage.Registry.INSTANCE.getEFactory(trafficincidenttablesPackage.eNS_URI);
+ if (thetrafficincidenttablesFactory != null) {
+ return thetrafficincidenttablesFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new trafficincidenttablesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidenttablesFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case trafficincidenttablesPackage.EFFECT_CODE:
+ return createEffectCodeFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.TENDENCY:
+ return createTendencyFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.CAUSE_CODE:
+ return createCauseCodeFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.WARNING_LEVEL:
+ return createWarningLevelFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.TRAFFIC_CONGESTION:
+ return createTrafficCongestionFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.ACCIDENT:
+ return createAccidentFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.ROAD_WORKS:
+ return createRoadWorksFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.NARROW_LANES:
+ return createNarrowLanesFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.IMPASSIBILITY:
+ return createImpassibilityFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.SLIPPERY_ROAD:
+ return createSlipperyRoadFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.FIRE:
+ return createFireFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.HAZARDOUS_DRIVING_CONDITIONS:
+ return createHazardousDrivingConditionsFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.OBJECTS_ON_THE_ROAD:
+ return createObjectsOnTheRoadFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.ANIMALS_ON_ROADWAY:
+ return createAnimalsOnRoadwayFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.PEOPLE_ON_ROADWAY:
+ return createPeopleOnRoadwayFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.BROKEN_DOWN_VEHICLES:
+ return createBrokenDownVehiclesFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ return createRescueAndRecoveryWorkInProgressFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.REGULATORY_MEASURE:
+ return createRegulatoryMeasureFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.LANE_RESTRICTION_TYPE:
+ return createLaneRestrictionTypeFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.ADVICE_CODE:
+ return createAdviceCodeFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.VEHICLE_TYPE:
+ return createVehicleTypeFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.RESTRICTION_TYPE:
+ return createRestrictionTypeFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.EXTREME_WEATHER_CONDITIONS:
+ return createExtremeWeatherConditionsFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.VISIBILITY_REDUCED:
+ return createVisibilityReducedFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.PRECIPITATION:
+ return createPrecipitationFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.RECKLESS_PERSONS:
+ return createRecklessPersonsFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.MAJOR_EVENT:
+ return createMajorEventFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.SERVICE_NOT_OPERATING:
+ return createServiceNotOperatingFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.SERVICE_NOT_USABLE:
+ return createServiceNotUsableFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.SLOW_MOVING_VEHICLES:
+ return createSlowMovingVehiclesFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.DANGEROUS_END_OF_QUEUE:
+ return createDangerousEndOfQueueFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.RISK_OF_FIRE:
+ return createRiskOfFireFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.TIME_DELAY:
+ return createTimeDelayFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.POLICE_CHECKPOINT:
+ return createPoliceCheckpointFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ return createMalfunctioningRoadsideEquipmentFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.OVERTAKING_NOT_ALLOWED:
+ return createOvertakingNotAllowedFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.DRIVING_NOT_ALLOWED:
+ return createDrivingNotAllowedFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.GIVING_PATH_VEHICLES_FROM_BEHIND:
+ return createGivingPathVehiclesFromBehindFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.FOLLOW_DIVERSION:
+ return createFollowDiversionFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.DRIVE_CAREFULLY:
+ return createDriveCarefullyFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.DO_NOT_LEAVE_YOUR_VEHICLE:
+ return createDoNotLeaveYourVehicleFromString(eDataType, initialValue);
+ case trafficincidenttablesPackage.USE_TOLL_LANES:
+ return createUseTollLanesFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case trafficincidenttablesPackage.EFFECT_CODE:
+ return convertEffectCodeToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.TENDENCY:
+ return convertTendencyToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.CAUSE_CODE:
+ return convertCauseCodeToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.WARNING_LEVEL:
+ return convertWarningLevelToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.TRAFFIC_CONGESTION:
+ return convertTrafficCongestionToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.ACCIDENT:
+ return convertAccidentToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.ROAD_WORKS:
+ return convertRoadWorksToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.NARROW_LANES:
+ return convertNarrowLanesToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.IMPASSIBILITY:
+ return convertImpassibilityToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.SLIPPERY_ROAD:
+ return convertSlipperyRoadToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.FIRE:
+ return convertFireToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.HAZARDOUS_DRIVING_CONDITIONS:
+ return convertHazardousDrivingConditionsToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.OBJECTS_ON_THE_ROAD:
+ return convertObjectsOnTheRoadToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.ANIMALS_ON_ROADWAY:
+ return convertAnimalsOnRoadwayToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.PEOPLE_ON_ROADWAY:
+ return convertPeopleOnRoadwayToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.BROKEN_DOWN_VEHICLES:
+ return convertBrokenDownVehiclesToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ return convertRescueAndRecoveryWorkInProgressToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.REGULATORY_MEASURE:
+ return convertRegulatoryMeasureToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.LANE_RESTRICTION_TYPE:
+ return convertLaneRestrictionTypeToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.ADVICE_CODE:
+ return convertAdviceCodeToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.VEHICLE_TYPE:
+ return convertVehicleTypeToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.RESTRICTION_TYPE:
+ return convertRestrictionTypeToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.EXTREME_WEATHER_CONDITIONS:
+ return convertExtremeWeatherConditionsToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.VISIBILITY_REDUCED:
+ return convertVisibilityReducedToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.PRECIPITATION:
+ return convertPrecipitationToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.RECKLESS_PERSONS:
+ return convertRecklessPersonsToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.MAJOR_EVENT:
+ return convertMajorEventToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.SERVICE_NOT_OPERATING:
+ return convertServiceNotOperatingToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.SERVICE_NOT_USABLE:
+ return convertServiceNotUsableToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.SLOW_MOVING_VEHICLES:
+ return convertSlowMovingVehiclesToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.DANGEROUS_END_OF_QUEUE:
+ return convertDangerousEndOfQueueToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.RISK_OF_FIRE:
+ return convertRiskOfFireToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.TIME_DELAY:
+ return convertTimeDelayToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.POLICE_CHECKPOINT:
+ return convertPoliceCheckpointToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ return convertMalfunctioningRoadsideEquipmentToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.OVERTAKING_NOT_ALLOWED:
+ return convertOvertakingNotAllowedToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.DRIVING_NOT_ALLOWED:
+ return convertDrivingNotAllowedToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.GIVING_PATH_VEHICLES_FROM_BEHIND:
+ return convertGivingPathVehiclesFromBehindToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.FOLLOW_DIVERSION:
+ return convertFollowDiversionToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.DRIVE_CAREFULLY:
+ return convertDriveCarefullyToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.DO_NOT_LEAVE_YOUR_VEHICLE:
+ return convertDoNotLeaveYourVehicleToString(eDataType, instanceValue);
+ case trafficincidenttablesPackage.USE_TOLL_LANES:
+ return convertUseTollLanesToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EffectCode createEffectCodeFromString(EDataType eDataType, String initialValue) {
+ EffectCode result = EffectCode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertEffectCodeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tendency createTendencyFromString(EDataType eDataType, String initialValue) {
+ Tendency result = Tendency.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTendencyToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CauseCode createCauseCodeFromString(EDataType eDataType, String initialValue) {
+ CauseCode result = CauseCode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCauseCodeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WarningLevel createWarningLevelFromString(EDataType eDataType, String initialValue) {
+ WarningLevel result = WarningLevel.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertWarningLevelToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficCongestion createTrafficCongestionFromString(EDataType eDataType, String initialValue) {
+ TrafficCongestion result = TrafficCongestion.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTrafficCongestionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Accident createAccidentFromString(EDataType eDataType, String initialValue) {
+ Accident result = Accident.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAccidentToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RoadWorks createRoadWorksFromString(EDataType eDataType, String initialValue) {
+ RoadWorks result = RoadWorks.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRoadWorksToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NarrowLanes createNarrowLanesFromString(EDataType eDataType, String initialValue) {
+ NarrowLanes result = NarrowLanes.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertNarrowLanesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Impassibility createImpassibilityFromString(EDataType eDataType, String initialValue) {
+ Impassibility result = Impassibility.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertImpassibilityToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SlipperyRoad createSlipperyRoadFromString(EDataType eDataType, String initialValue) {
+ SlipperyRoad result = SlipperyRoad.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSlipperyRoadToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Fire createFireFromString(EDataType eDataType, String initialValue) {
+ Fire result = Fire.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFireToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HazardousDrivingConditions createHazardousDrivingConditionsFromString(EDataType eDataType, String initialValue) {
+ HazardousDrivingConditions result = HazardousDrivingConditions.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertHazardousDrivingConditionsToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectsOnTheRoad createObjectsOnTheRoadFromString(EDataType eDataType, String initialValue) {
+ ObjectsOnTheRoad result = ObjectsOnTheRoad.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertObjectsOnTheRoadToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimalsOnRoadway createAnimalsOnRoadwayFromString(EDataType eDataType, String initialValue) {
+ AnimalsOnRoadway result = AnimalsOnRoadway.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAnimalsOnRoadwayToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PeopleOnRoadway createPeopleOnRoadwayFromString(EDataType eDataType, String initialValue) {
+ PeopleOnRoadway result = PeopleOnRoadway.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPeopleOnRoadwayToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BrokenDownVehicles createBrokenDownVehiclesFromString(EDataType eDataType, String initialValue) {
+ BrokenDownVehicles result = BrokenDownVehicles.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBrokenDownVehiclesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RescueAndRecoveryWorkInProgress createRescueAndRecoveryWorkInProgressFromString(EDataType eDataType, String initialValue) {
+ RescueAndRecoveryWorkInProgress result = RescueAndRecoveryWorkInProgress.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRescueAndRecoveryWorkInProgressToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RegulatoryMeasure createRegulatoryMeasureFromString(EDataType eDataType, String initialValue) {
+ RegulatoryMeasure result = RegulatoryMeasure.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRegulatoryMeasureToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictionType createLaneRestrictionTypeFromString(EDataType eDataType, String initialValue) {
+ LaneRestrictionType result = LaneRestrictionType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLaneRestrictionTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdviceCode createAdviceCodeFromString(EDataType eDataType, String initialValue) {
+ AdviceCode result = AdviceCode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAdviceCodeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleType createVehicleTypeFromString(EDataType eDataType, String initialValue) {
+ VehicleType result = VehicleType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertVehicleTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RestrictionType createRestrictionTypeFromString(EDataType eDataType, String initialValue) {
+ RestrictionType result = RestrictionType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRestrictionTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtremeWeatherConditions createExtremeWeatherConditionsFromString(EDataType eDataType, String initialValue) {
+ ExtremeWeatherConditions result = ExtremeWeatherConditions.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertExtremeWeatherConditionsToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityReduced createVisibilityReducedFromString(EDataType eDataType, String initialValue) {
+ VisibilityReduced result = VisibilityReduced.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertVisibilityReducedToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Precipitation createPrecipitationFromString(EDataType eDataType, String initialValue) {
+ Precipitation result = Precipitation.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPrecipitationToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RecklessPersons createRecklessPersonsFromString(EDataType eDataType, String initialValue) {
+ RecklessPersons result = RecklessPersons.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRecklessPersonsToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MajorEvent createMajorEventFromString(EDataType eDataType, String initialValue) {
+ MajorEvent result = MajorEvent.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMajorEventToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceNotOperating createServiceNotOperatingFromString(EDataType eDataType, String initialValue) {
+ ServiceNotOperating result = ServiceNotOperating.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertServiceNotOperatingToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceNotUsable createServiceNotUsableFromString(EDataType eDataType, String initialValue) {
+ ServiceNotUsable result = ServiceNotUsable.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertServiceNotUsableToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SlowMovingVehicles createSlowMovingVehiclesFromString(EDataType eDataType, String initialValue) {
+ SlowMovingVehicles result = SlowMovingVehicles.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSlowMovingVehiclesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DangerousEndOfQueue createDangerousEndOfQueueFromString(EDataType eDataType, String initialValue) {
+ DangerousEndOfQueue result = DangerousEndOfQueue.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDangerousEndOfQueueToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RiskOfFire createRiskOfFireFromString(EDataType eDataType, String initialValue) {
+ RiskOfFire result = RiskOfFire.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRiskOfFireToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeDelay createTimeDelayFromString(EDataType eDataType, String initialValue) {
+ TimeDelay result = TimeDelay.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTimeDelayToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PoliceCheckpoint createPoliceCheckpointFromString(EDataType eDataType, String initialValue) {
+ PoliceCheckpoint result = PoliceCheckpoint.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPoliceCheckpointToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MalfunctioningRoadsideEquipment createMalfunctioningRoadsideEquipmentFromString(EDataType eDataType, String initialValue) {
+ MalfunctioningRoadsideEquipment result = MalfunctioningRoadsideEquipment.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMalfunctioningRoadsideEquipmentToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OvertakingNotAllowed createOvertakingNotAllowedFromString(EDataType eDataType, String initialValue) {
+ OvertakingNotAllowed result = OvertakingNotAllowed.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertOvertakingNotAllowedToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DrivingNotAllowed createDrivingNotAllowedFromString(EDataType eDataType, String initialValue) {
+ DrivingNotAllowed result = DrivingNotAllowed.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDrivingNotAllowedToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GivingPathVehiclesFromBehind createGivingPathVehiclesFromBehindFromString(EDataType eDataType, String initialValue) {
+ GivingPathVehiclesFromBehind result = GivingPathVehiclesFromBehind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertGivingPathVehiclesFromBehindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FollowDiversion createFollowDiversionFromString(EDataType eDataType, String initialValue) {
+ FollowDiversion result = FollowDiversion.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFollowDiversionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DriveCarefully createDriveCarefullyFromString(EDataType eDataType, String initialValue) {
+ DriveCarefully result = DriveCarefully.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDriveCarefullyToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DoNotLeaveYourVehicle createDoNotLeaveYourVehicleFromString(EDataType eDataType, String initialValue) {
+ DoNotLeaveYourVehicle result = DoNotLeaveYourVehicle.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDoNotLeaveYourVehicleToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseTollLanes createUseTollLanesFromString(EDataType eDataType, String initialValue) {
+ UseTollLanes result = UseTollLanes.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertUseTollLanesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidenttablesPackage gettrafficincidenttablesPackage() {
+ return (trafficincidenttablesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static trafficincidenttablesPackage getPackage() {
+ return trafficincidenttablesPackage.eINSTANCE;
+ }
+
+} //trafficincidenttablesFactoryImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesPackageImpl.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesPackageImpl.java
new file mode 100755
index 0000000..26dd493
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/impl/trafficincidenttablesPackageImpl.java
@@ -0,0 +1,1267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables.impl;
+
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.common.CommonPackage;
+
+import org.genivi.location.LocationPackage;
+
+import org.genivi.trafficincidentsservice.trafficincidenttables.Accident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Fire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind;
+import org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility;
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment;
+import org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+import org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesFactory;
+import org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class trafficincidenttablesPackageImpl extends EPackageImpl implements trafficincidenttablesPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum effectCodeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum tendencyEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum causeCodeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum warningLevelEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum trafficCongestionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum accidentEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum roadWorksEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum narrowLanesEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum impassibilityEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum slipperyRoadEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum fireEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum hazardousDrivingConditionsEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum objectsOnTheRoadEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum animalsOnRoadwayEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum peopleOnRoadwayEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum brokenDownVehiclesEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum rescueAndRecoveryWorkInProgressEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum regulatoryMeasureEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum laneRestrictionTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum adviceCodeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum vehicleTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum restrictionTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum extremeWeatherConditionsEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum visibilityReducedEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum precipitationEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum recklessPersonsEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum majorEventEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum serviceNotOperatingEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum serviceNotUsableEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum slowMovingVehiclesEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dangerousEndOfQueueEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum riskOfFireEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum timeDelayEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum policeCheckpointEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum malfunctioningRoadsideEquipmentEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum overtakingNotAllowedEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum drivingNotAllowedEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum givingPathVehiclesFromBehindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum followDiversionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum driveCarefullyEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum doNotLeaveYourVehicleEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum useTollLanesEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private trafficincidenttablesPackageImpl() {
+ super(eNS_URI, trafficincidenttablesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link trafficincidenttablesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static trafficincidenttablesPackage init() {
+ if (isInited) return (trafficincidenttablesPackage)EPackage.Registry.INSTANCE.getEPackage(trafficincidenttablesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ trafficincidenttablesPackageImpl thetrafficincidenttablesPackage = (trafficincidenttablesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof trafficincidenttablesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new trafficincidenttablesPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ LocationPackage.eINSTANCE.eClass();
+ CommonPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ thetrafficincidenttablesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thetrafficincidenttablesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thetrafficincidenttablesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(trafficincidenttablesPackage.eNS_URI, thetrafficincidenttablesPackage);
+ return thetrafficincidenttablesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getEffectCode() {
+ return effectCodeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTendency() {
+ return tendencyEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCauseCode() {
+ return causeCodeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getWarningLevel() {
+ return warningLevelEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTrafficCongestion() {
+ return trafficCongestionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAccident() {
+ return accidentEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRoadWorks() {
+ return roadWorksEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getNarrowLanes() {
+ return narrowLanesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getImpassibility() {
+ return impassibilityEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSlipperyRoad() {
+ return slipperyRoadEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFire() {
+ return fireEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getHazardousDrivingConditions() {
+ return hazardousDrivingConditionsEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getObjectsOnTheRoad() {
+ return objectsOnTheRoadEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAnimalsOnRoadway() {
+ return animalsOnRoadwayEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPeopleOnRoadway() {
+ return peopleOnRoadwayEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBrokenDownVehicles() {
+ return brokenDownVehiclesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRescueAndRecoveryWorkInProgress() {
+ return rescueAndRecoveryWorkInProgressEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRegulatoryMeasure() {
+ return regulatoryMeasureEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLaneRestrictionType() {
+ return laneRestrictionTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAdviceCode() {
+ return adviceCodeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getVehicleType() {
+ return vehicleTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRestrictionType() {
+ return restrictionTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getExtremeWeatherConditions() {
+ return extremeWeatherConditionsEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getVisibilityReduced() {
+ return visibilityReducedEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPrecipitation() {
+ return precipitationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRecklessPersons() {
+ return recklessPersonsEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMajorEvent() {
+ return majorEventEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getServiceNotOperating() {
+ return serviceNotOperatingEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getServiceNotUsable() {
+ return serviceNotUsableEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSlowMovingVehicles() {
+ return slowMovingVehiclesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDangerousEndOfQueue() {
+ return dangerousEndOfQueueEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRiskOfFire() {
+ return riskOfFireEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTimeDelay() {
+ return timeDelayEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPoliceCheckpoint() {
+ return policeCheckpointEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMalfunctioningRoadsideEquipment() {
+ return malfunctioningRoadsideEquipmentEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getOvertakingNotAllowed() {
+ return overtakingNotAllowedEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDrivingNotAllowed() {
+ return drivingNotAllowedEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getGivingPathVehiclesFromBehind() {
+ return givingPathVehiclesFromBehindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFollowDiversion() {
+ return followDiversionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDriveCarefully() {
+ return driveCarefullyEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDoNotLeaveYourVehicle() {
+ return doNotLeaveYourVehicleEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getUseTollLanes() {
+ return useTollLanesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public trafficincidenttablesFactory gettrafficincidenttablesFactory() {
+ return (trafficincidenttablesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create enums
+ effectCodeEEnum = createEEnum(EFFECT_CODE);
+ tendencyEEnum = createEEnum(TENDENCY);
+ causeCodeEEnum = createEEnum(CAUSE_CODE);
+ warningLevelEEnum = createEEnum(WARNING_LEVEL);
+ trafficCongestionEEnum = createEEnum(TRAFFIC_CONGESTION);
+ accidentEEnum = createEEnum(ACCIDENT);
+ roadWorksEEnum = createEEnum(ROAD_WORKS);
+ narrowLanesEEnum = createEEnum(NARROW_LANES);
+ impassibilityEEnum = createEEnum(IMPASSIBILITY);
+ slipperyRoadEEnum = createEEnum(SLIPPERY_ROAD);
+ fireEEnum = createEEnum(FIRE);
+ hazardousDrivingConditionsEEnum = createEEnum(HAZARDOUS_DRIVING_CONDITIONS);
+ objectsOnTheRoadEEnum = createEEnum(OBJECTS_ON_THE_ROAD);
+ animalsOnRoadwayEEnum = createEEnum(ANIMALS_ON_ROADWAY);
+ peopleOnRoadwayEEnum = createEEnum(PEOPLE_ON_ROADWAY);
+ brokenDownVehiclesEEnum = createEEnum(BROKEN_DOWN_VEHICLES);
+ rescueAndRecoveryWorkInProgressEEnum = createEEnum(RESCUE_AND_RECOVERY_WORK_IN_PROGRESS);
+ regulatoryMeasureEEnum = createEEnum(REGULATORY_MEASURE);
+ laneRestrictionTypeEEnum = createEEnum(LANE_RESTRICTION_TYPE);
+ adviceCodeEEnum = createEEnum(ADVICE_CODE);
+ vehicleTypeEEnum = createEEnum(VEHICLE_TYPE);
+ restrictionTypeEEnum = createEEnum(RESTRICTION_TYPE);
+ extremeWeatherConditionsEEnum = createEEnum(EXTREME_WEATHER_CONDITIONS);
+ visibilityReducedEEnum = createEEnum(VISIBILITY_REDUCED);
+ precipitationEEnum = createEEnum(PRECIPITATION);
+ recklessPersonsEEnum = createEEnum(RECKLESS_PERSONS);
+ majorEventEEnum = createEEnum(MAJOR_EVENT);
+ serviceNotOperatingEEnum = createEEnum(SERVICE_NOT_OPERATING);
+ serviceNotUsableEEnum = createEEnum(SERVICE_NOT_USABLE);
+ slowMovingVehiclesEEnum = createEEnum(SLOW_MOVING_VEHICLES);
+ dangerousEndOfQueueEEnum = createEEnum(DANGEROUS_END_OF_QUEUE);
+ riskOfFireEEnum = createEEnum(RISK_OF_FIRE);
+ timeDelayEEnum = createEEnum(TIME_DELAY);
+ policeCheckpointEEnum = createEEnum(POLICE_CHECKPOINT);
+ malfunctioningRoadsideEquipmentEEnum = createEEnum(MALFUNCTIONING_ROADSIDE_EQUIPMENT);
+ overtakingNotAllowedEEnum = createEEnum(OVERTAKING_NOT_ALLOWED);
+ drivingNotAllowedEEnum = createEEnum(DRIVING_NOT_ALLOWED);
+ givingPathVehiclesFromBehindEEnum = createEEnum(GIVING_PATH_VEHICLES_FROM_BEHIND);
+ followDiversionEEnum = createEEnum(FOLLOW_DIVERSION);
+ driveCarefullyEEnum = createEEnum(DRIVE_CAREFULLY);
+ doNotLeaveYourVehicleEEnum = createEEnum(DO_NOT_LEAVE_YOUR_VEHICLE);
+ useTollLanesEEnum = createEEnum(USE_TOLL_LANES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Initialize enums and add enum literals
+ initEEnum(effectCodeEEnum, EffectCode.class, "EffectCode");
+ addEEnumLiteral(effectCodeEEnum, EffectCode.TRAFFIC_FLOW_UNKNOWN);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.FREE_TRAFFIC_FLOW);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.HEAVY_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.SLOW_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.QUEUING_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.STATIONARY_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.NO_TRAFFIC_FLOW);
+
+ initEEnum(tendencyEEnum, Tendency.class, "Tendency");
+ addEEnumLiteral(tendencyEEnum, Tendency.SLIGHTLY_INCREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.INCREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.STRONGLY_INCREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.SLIGHTLY_DECREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.DECREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.STRONGLY_DECREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.CONSTANT);
+
+ initEEnum(causeCodeEEnum, CauseCode.class, "CauseCode");
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TRAFFIC_CONGESTION);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.ACCIDENT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.ROADWORKS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.NARROW_LANES);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.IMPASSIBILITY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SLIPPERY_ROAD);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.AQUAPLANING);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.FIRE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.HAZARDOUS_DRIVING_CONDITIONS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.OBJECTS_ON_THE_ROAD);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.ANIMALS_ON_ROADWAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.PEOPLE_ON_ROADWAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.BROKEN_DOWN_VEHICLES);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.VEHICLE_ON_WRONG_CARRIAGEWAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.REGULATORY_MEASURE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.EXTREME_WEATHER_CONDITIONS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.VISIBILITY_REDUCED);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.PRECIPITATION);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.RECKLESS_PERSONS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TRAFFIC_REGULATIONS_CHANGED);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.MAJOR_EVENT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SERVICE_NOT_OPERATING);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SERVICE_NOT_USEABLE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SLOW_MOVING_VEHICLES);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.DANGEROUS_END_OF_QUEUE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.RISK_OF_FIRE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TIME_DELAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.POLICE_CHECKPOINT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.MALFUNCTIONING_ROADSIDE_EQUIPMENT);
+
+ initEEnum(warningLevelEEnum, WarningLevel.class, "WarningLevel");
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.INFORMATIVE);
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.DANGER_LEVEL_1);
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.DANGER_LEVEL_2);
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.DANGER_LEVEL_3);
+
+ initEEnum(trafficCongestionEEnum, TrafficCongestion.class, "TrafficCongestion");
+ addEEnumLiteral(trafficCongestionEEnum, TrafficCongestion.INCREASED_VOLUME_OF_TRAFFIC);
+
+ initEEnum(accidentEEnum, Accident.class, "Accident");
+ addEEnumLiteral(accidentEEnum, Accident.MULTI_VEHICLE_ACCIDENT);
+ addEEnumLiteral(accidentEEnum, Accident.HEAVY_ACCIDENT);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_INVOLVING_LORRY);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_INVOLVING_BUS);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_ON_OPPOSITE_LANE);
+ addEEnumLiteral(accidentEEnum, Accident.UNSECURED_ACCIDENT);
+
+ initEEnum(roadWorksEEnum, RoadWorks.class, "RoadWorks");
+ addEEnumLiteral(roadWorksEEnum, RoadWorks.MAJOR_ROADWORKS);
+ addEEnumLiteral(roadWorksEEnum, RoadWorks.ROAD_MARKING_WORK);
+ addEEnumLiteral(roadWorksEEnum, RoadWorks.SLOW_MOVING_ROAD_MAINTENANCE);
+
+ initEEnum(narrowLanesEEnum, NarrowLanes.class, "NarrowLanes");
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.CONTRAFLOW);
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.HARD_SHOULDER_CLOSED);
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.SLIP_LANE_CLOSED);
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.CRAWLER_LANE_CLOSED);
+
+ initEEnum(impassibilityEEnum, Impassibility.class, "Impassibility");
+ addEEnumLiteral(impassibilityEEnum, Impassibility.FLOODING);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.DANGER_OF_AVALANCHES);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.BLASTING_OF_AVALANCHES);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.LANDSLIPS);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.CHEMICAL_SPILLAGE);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.WINTER_CLOSURE);
+
+ initEEnum(slipperyRoadEEnum, SlipperyRoad.class, "SlipperyRoad");
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.HEAVY_FROST_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.FUEL_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.MUD_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.SNOW_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.ICE_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.BLACK_ICE_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.OIL_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.LOOSE_CHIPPINGS);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.INSTANT_BLACK_ICE);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.ROADS_SALTED);
+
+ initEEnum(fireEEnum, Fire.class, "Fire");
+ addEEnumLiteral(fireEEnum, Fire.MAJOR_FIRE);
+ addEEnumLiteral(fireEEnum, Fire.FOREST_FIRE);
+
+ initEEnum(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.class, "HazardousDrivingConditions");
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.ROCKFALLS);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.EARTHQUAKE_DAMAGE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.SEWER_COLLAPSE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.SUBSIDENCE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.SNOW_DRIFTS);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.STORM_DAMAGE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.BURST_PIPE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.VOLCANO_ERUPTION);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.FALLING_ICE);
+
+ initEEnum(objectsOnTheRoadEEnum, ObjectsOnTheRoad.class, "ObjectsOnTheRoad");
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.SHED_LOAD);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.PARTS_OF_VEHICLES);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.PARTS_OF_TYRES);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.BIG_OBJECTS);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.FALLEN_TREES);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.HUB_CAPS);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.WAITING_VEHICLES);
+
+ initEEnum(animalsOnRoadwayEEnum, AnimalsOnRoadway.class, "AnimalsOnRoadway");
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.WILD_ANIMALS);
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.HERD_OF_ANIMALS);
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.SMALL_ANIMALS);
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.LARGE_ANIMALS);
+
+ initEEnum(peopleOnRoadwayEEnum, PeopleOnRoadway.class, "PeopleOnRoadway");
+ addEEnumLiteral(peopleOnRoadwayEEnum, PeopleOnRoadway.CHILDREN_ON_ROADWAY);
+ addEEnumLiteral(peopleOnRoadwayEEnum, PeopleOnRoadway.CYCLISTS_ON_ROADWAY);
+ addEEnumLiteral(peopleOnRoadwayEEnum, PeopleOnRoadway.MOTOR_CYCLIST_ON_ROADWAY);
+
+ initEEnum(brokenDownVehiclesEEnum, BrokenDownVehicles.class, "BrokenDownVehicles");
+ addEEnumLiteral(brokenDownVehiclesEEnum, BrokenDownVehicles.BROKEN_DOWN_VEHICLE_BURNING);
+ addEEnumLiteral(brokenDownVehiclesEEnum, BrokenDownVehicles.BROKEN_DOWN_UNLIT_VEHICLE);
+
+ initEEnum(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.class, "RescueAndRecoveryWorkInProgress");
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.EMERGENCY_VEHICLES);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.RESCUE_HELICOPTER_LANDING);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.POLICE_ACTIVITY_ONGOING);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.MEDICAL_EMERGENCY_ONGOING);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.CHILD_ABDUCTION_IN_PROGRESS);
+
+ initEEnum(regulatoryMeasureEEnum, RegulatoryMeasure.class, "RegulatoryMeasure");
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.SECURITY_ALERT);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.CONTAGIOUS_DISEASE);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.ENVIRONMENTAL);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.SMOG_ALERT);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.BATCH_SERVICE_IN_PROGRESS);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES);
+
+ initEEnum(laneRestrictionTypeEEnum, LaneRestrictionType.class, "LaneRestrictionType");
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.LANES_CLOSED);
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.LANES_OPEN);
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.RIGHT_LANES_CLOSED);
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.LEFT_LANES_CLOSED);
+
+ initEEnum(adviceCodeEEnum, AdviceCode.class, "AdviceCode");
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.OVERTAKING_NOT_ALLOWED);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DRIVING_NOT_ALLOWED);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.USE_HARD_SHOULDER_AS_LANE);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.WAIT_FOR_POLICE_PATROL);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.WAIT_FOR_IMPROVED_WEATHER);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.GIVING_PATH_VEHICLES_COMING_FROM_BEHIND);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.FOLLOW_DIVERSION);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.NO_DIVERSION_TO_RECOMMEND);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DO_NOT_DIVERT);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.FOLLOW_POLICE_INSTRUCTIONS);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.AVOID_THE_AREA);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DRIVE_CAREFULLY);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DO_NOT_LEAVE_YOUR_VEHICLE);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.SWITCH_ON_RADIO);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.USE_TOLL_LANES);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.WAIT_FOR_CONVOI);
+
+ initEEnum(vehicleTypeEEnum, VehicleType.class, "VehicleType");
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.CAR);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.LORRY);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.BUS);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TAXI);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TRAIN);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.MOTOR_CYCLE);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.VEHICLE_WITH_TRAILER);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.MOTOR_VEHICLES);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TRANSPORT_OF_DANGEROUS_GOODS);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TRANSPORT_OF_ABNORMAL_LOAD);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.HEAVY_VEHICLE);
+
+ initEEnum(restrictionTypeEEnum, RestrictionType.class, "RestrictionType");
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WIDTH_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WIDTH_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.HEIGTH_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.HEIGTH_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WEIGHT_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WEIGHT_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITHOUT_WINTER_TYRE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITHOUT_SNOW_CHAIN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_TRAILER);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_CARAVAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.PERSONS_IN_VEHICLE_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.PERSONS_IN_VEHICLE_MORE_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.EVEN_NUMBER_PLATE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.ODD_NUMBER_PLATE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.LENGTH_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.LENGTH_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.AXLE_LOAD_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.AXLE_LOAD_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_PETROL_ENGINE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_DIESEL_ENGINE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_LPG_ENGINE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.THROUGH_TRAFFIC);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.RESIDENTS_TRAFFIC);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_DESTINATION_IN_GIVEN_AREA);
+
+ initEEnum(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.class, "ExtremeWeatherConditions");
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.STRONG_WINDS);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.DAMAGING_HAIL);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.HURRICANE);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.THUNDERSTORM);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.TORNADO);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.BLIZARD);
+
+ initEEnum(visibilityReducedEEnum, VisibilityReduced.class, "VisibilityReduced");
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_FOG);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SMOKE);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SANDSTORMS);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS);
+
+ initEEnum(precipitationEEnum, Precipitation.class, "Precipitation");
+ addEEnumLiteral(precipitationEEnum, Precipitation.HEAVY_RAIN);
+ addEEnumLiteral(precipitationEEnum, Precipitation.HEAVY_SNOWFALL);
+ addEEnumLiteral(precipitationEEnum, Precipitation.SOFT_HAIL);
+
+ initEEnum(recklessPersonsEEnum, RecklessPersons.class, "RecklessPersons");
+ addEEnumLiteral(recklessPersonsEEnum, RecklessPersons.RECKLESS_DRIVER);
+ addEEnumLiteral(recklessPersonsEEnum, RecklessPersons.GUNFIRE_ON_ROAD);
+ addEEnumLiteral(recklessPersonsEEnum, RecklessPersons.STONE_THROWING_PERSONS);
+
+ initEEnum(majorEventEEnum, MajorEvent.class, "MajorEvent");
+ addEEnumLiteral(majorEventEEnum, MajorEvent.SPORTS_EVENT);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.DEMONSTRATION);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.DEMONSTRATION_WITH_VEHICLES);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.CONCERT);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.FAIR);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.MILITARY_TRAINING);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.EMERGENCY_TRAINING);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.FESTIVITY);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.PROCESSION);
+
+ initEEnum(serviceNotOperatingEEnum, ServiceNotOperating.class, "ServiceNotOperating");
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.FERRY_SERVICE_NOT_OPERATING);
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.PLANE_SERVICE_NOT_OPERATING);
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.TRAIN_SERVICE_NOT_OPERATING);
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.BUS_SERVICE_NOT_OPERATING);
+
+ initEEnum(serviceNotUsableEEnum, ServiceNotUsable.class, "ServiceNotUsable");
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.FUEL_STATION_CLOSED);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.SERVICE_AREA_CLOSED);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.SERVICE_AREA_BUSY);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.PARKING_FULL);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.CAR_PARK_CLOSED);
+
+ initEEnum(slowMovingVehiclesEEnum, SlowMovingVehicles.class, "SlowMovingVehicles");
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.SLOW_MOVING_MAINTENANCE_VEHICLE);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.ABNORMAL_LOAD);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.ABNORMAL_WIDE_LOAD);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.CONVOY);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.SNOWPLOUGH);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.DEICING);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.SALTING_VEHICLES);
+
+ initEEnum(dangerousEndOfQueueEEnum, DangerousEndOfQueue.class, "DangerousEndOfQueue");
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.SUDDEN_END_OF_QUEUE);
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.QUEUE_OVER_HILL);
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.QUEUE_AROUND_BEND);
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.QUEUE_IN_TUNNEL);
+
+ initEEnum(riskOfFireEEnum, RiskOfFire.class, "RiskOfFire");
+ addEEnumLiteral(riskOfFireEEnum, RiskOfFire.LEAKAGE_OF_FUEL);
+ addEEnumLiteral(riskOfFireEEnum, RiskOfFire.LEAKAGE_OF_GAS);
+
+ initEEnum(timeDelayEEnum, TimeDelay.class, "TimeDelay");
+ addEEnumLiteral(timeDelayEEnum, TimeDelay.TIME_DELAY_AT_FRONTIER);
+ addEEnumLiteral(timeDelayEEnum, TimeDelay.TIME_DELAY_AT_FERRY_PORT);
+ addEEnumLiteral(timeDelayEEnum, TimeDelay.TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL);
+
+ initEEnum(policeCheckpointEEnum, PoliceCheckpoint.class, "PoliceCheckpoint");
+ addEEnumLiteral(policeCheckpointEEnum, PoliceCheckpoint.PERMANENT_POLICE_CHECKPOINT);
+ addEEnumLiteral(policeCheckpointEEnum, PoliceCheckpoint.TEMPORARY_POLICE_CHECKPOINT);
+
+ initEEnum(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.class, "MalfunctioningRoadsideEquipment");
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.ROAD_RAIL_CROSSING_FAILURE);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.TUNNEL_VENTILATION_NOT_WORKING);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.EMERGENCY_TELEPHONES_NOT_WORKING);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.AUTOMATIC_PAYMENT_LANES_NOT_WORKING);
+
+ initEEnum(overtakingNotAllowedEEnum, OvertakingNotAllowed.class, "OvertakingNotAllowed");
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.DO_NOT_USE_OVERTAKING_LANES);
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE);
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE);
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE);
+
+ initEEnum(drivingNotAllowedEEnum, DrivingNotAllowed.class, "DrivingNotAllowed");
+ addEEnumLiteral(drivingNotAllowedEEnum, DrivingNotAllowed.DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE);
+
+ initEEnum(givingPathVehiclesFromBehindEEnum, GivingPathVehiclesFromBehind.class, "GivingPathVehiclesFromBehind");
+ addEEnumLiteral(givingPathVehiclesFromBehindEEnum, GivingPathVehiclesFromBehind.GIVING_PATH_FOR_RESCUE_VEHICLE);
+ addEEnumLiteral(givingPathVehiclesFromBehindEEnum, GivingPathVehiclesFromBehind.GIVING_PATH_FOR_SERVICE_VEHICLES);
+
+ initEEnum(followDiversionEEnum, FollowDiversion.class, "FollowDiversion");
+ addEEnumLiteral(followDiversionEEnum, FollowDiversion.FOLLOW_DIVERSION_SIGNS);
+
+ initEEnum(driveCarefullyEEnum, DriveCarefully.class, "DriveCarefully");
+ addEEnumLiteral(driveCarefullyEEnum, DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD);
+ addEEnumLiteral(driveCarefullyEEnum, DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD);
+ addEEnumLiteral(driveCarefullyEEnum, DriveCarefully.DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE);
+
+ initEEnum(doNotLeaveYourVehicleEEnum, DoNotLeaveYourVehicle.class, "DoNotLeaveYourVehicle");
+ addEEnumLiteral(doNotLeaveYourVehicleEEnum, DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE);
+ addEEnumLiteral(doNotLeaveYourVehicleEEnum, DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS);
+
+ initEEnum(useTollLanesEEnum, UseTollLanes.class, "UseTollLanes");
+ addEEnumLiteral(useTollLanesEEnum, UseTollLanes.USE_MANUAL_PAYMENT_TOLL_LANES);
+ addEEnumLiteral(useTollLanesEEnum, UseTollLanes.USE_AUTOMATIC_PAYMENT_TOLL_LANES);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //trafficincidenttablesPackageImpl
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesFactory.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesFactory.java
new file mode 100755
index 0000000..c6df5d9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesFactory.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesPackage
+ * @generated
+ */
+public interface trafficincidenttablesFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ trafficincidenttablesFactory eINSTANCE = org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesFactoryImpl.init();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ trafficincidenttablesPackage gettrafficincidenttablesPackage();
+
+} //trafficincidenttablesFactory
diff --git a/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesPackage.java b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesPackage.java
new file mode 100755
index 0000000..781865a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficincidentsservice.trafficincidenttables-model/src/org/genivi/trafficincidentsservice/trafficincidenttables/trafficincidenttablesPackage.java
@@ -0,0 +1,1347 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.trafficincidenttables;
+
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.trafficincidenttablesFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface trafficincidenttablesPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "trafficincidenttables";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.trafficinfo.trafficincidenttables";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "TrafficIncidentTables";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ trafficincidenttablesPackage eINSTANCE = org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode <em>Effect Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getEffectCode()
+ * @generated
+ */
+ int EFFECT_CODE = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Tendency <em>Tendency</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getTendency()
+ * @generated
+ */
+ int TENDENCY = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode <em>Cause Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getCauseCode()
+ * @generated
+ */
+ int CAUSE_CODE = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel <em>Warning Level</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getWarningLevel()
+ * @generated
+ */
+ int WARNING_LEVEL = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion <em>Traffic Congestion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getTrafficCongestion()
+ * @generated
+ */
+ int TRAFFIC_CONGESTION = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Accident <em>Accident</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Accident
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getAccident()
+ * @generated
+ */
+ int ACCIDENT = 5;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks <em>Road Works</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRoadWorks()
+ * @generated
+ */
+ int ROAD_WORKS = 6;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes <em>Narrow Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getNarrowLanes()
+ * @generated
+ */
+ int NARROW_LANES = 7;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility <em>Impassibility</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getImpassibility()
+ * @generated
+ */
+ int IMPASSIBILITY = 8;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad <em>Slippery Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getSlipperyRoad()
+ * @generated
+ */
+ int SLIPPERY_ROAD = 9;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Fire <em>Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Fire
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getFire()
+ * @generated
+ */
+ int FIRE = 10;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions <em>Hazardous Driving Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getHazardousDrivingConditions()
+ * @generated
+ */
+ int HAZARDOUS_DRIVING_CONDITIONS = 11;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad <em>Objects On The Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getObjectsOnTheRoad()
+ * @generated
+ */
+ int OBJECTS_ON_THE_ROAD = 12;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway <em>Animals On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getAnimalsOnRoadway()
+ * @generated
+ */
+ int ANIMALS_ON_ROADWAY = 13;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway <em>People On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getPeopleOnRoadway()
+ * @generated
+ */
+ int PEOPLE_ON_ROADWAY = 14;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles <em>Broken Down Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getBrokenDownVehicles()
+ * @generated
+ */
+ int BROKEN_DOWN_VEHICLES = 15;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress <em>Rescue And Recovery Work In Progress</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRescueAndRecoveryWorkInProgress()
+ * @generated
+ */
+ int RESCUE_AND_RECOVERY_WORK_IN_PROGRESS = 16;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure <em>Regulatory Measure</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRegulatoryMeasure()
+ * @generated
+ */
+ int REGULATORY_MEASURE = 17;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType <em>Lane Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getLaneRestrictionType()
+ * @generated
+ */
+ int LANE_RESTRICTION_TYPE = 18;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode <em>Advice Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getAdviceCode()
+ * @generated
+ */
+ int ADVICE_CODE = 19;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType <em>Vehicle Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getVehicleType()
+ * @generated
+ */
+ int VEHICLE_TYPE = 20;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType <em>Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRestrictionType()
+ * @generated
+ */
+ int RESTRICTION_TYPE = 21;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions <em>Extreme Weather Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getExtremeWeatherConditions()
+ * @generated
+ */
+ int EXTREME_WEATHER_CONDITIONS = 22;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced <em>Visibility Reduced</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getVisibilityReduced()
+ * @generated
+ */
+ int VISIBILITY_REDUCED = 23;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation <em>Precipitation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getPrecipitation()
+ * @generated
+ */
+ int PRECIPITATION = 24;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons <em>Reckless Persons</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRecklessPersons()
+ * @generated
+ */
+ int RECKLESS_PERSONS = 25;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent <em>Major Event</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getMajorEvent()
+ * @generated
+ */
+ int MAJOR_EVENT = 26;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating <em>Service Not Operating</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getServiceNotOperating()
+ * @generated
+ */
+ int SERVICE_NOT_OPERATING = 27;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable <em>Service Not Usable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getServiceNotUsable()
+ * @generated
+ */
+ int SERVICE_NOT_USABLE = 28;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles <em>Slow Moving Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getSlowMovingVehicles()
+ * @generated
+ */
+ int SLOW_MOVING_VEHICLES = 29;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue <em>Dangerous End Of Queue</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDangerousEndOfQueue()
+ * @generated
+ */
+ int DANGEROUS_END_OF_QUEUE = 30;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire <em>Risk Of Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRiskOfFire()
+ * @generated
+ */
+ int RISK_OF_FIRE = 31;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay <em>Time Delay</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getTimeDelay()
+ * @generated
+ */
+ int TIME_DELAY = 32;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint <em>Police Checkpoint</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getPoliceCheckpoint()
+ * @generated
+ */
+ int POLICE_CHECKPOINT = 33;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment <em>Malfunctioning Roadside Equipment</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getMalfunctioningRoadsideEquipment()
+ * @generated
+ */
+ int MALFUNCTIONING_ROADSIDE_EQUIPMENT = 34;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed <em>Overtaking Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getOvertakingNotAllowed()
+ * @generated
+ */
+ int OVERTAKING_NOT_ALLOWED = 35;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed <em>Driving Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDrivingNotAllowed()
+ * @generated
+ */
+ int DRIVING_NOT_ALLOWED = 36;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind <em>Giving Path Vehicles From Behind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getGivingPathVehiclesFromBehind()
+ * @generated
+ */
+ int GIVING_PATH_VEHICLES_FROM_BEHIND = 37;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion <em>Follow Diversion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getFollowDiversion()
+ * @generated
+ */
+ int FOLLOW_DIVERSION = 38;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully <em>Drive Carefully</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDriveCarefully()
+ * @generated
+ */
+ int DRIVE_CAREFULLY = 39;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle <em>Do Not Leave Your Vehicle</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDoNotLeaveYourVehicle()
+ * @generated
+ */
+ int DO_NOT_LEAVE_YOUR_VEHICLE = 40;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes <em>Use Toll Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getUseTollLanes()
+ * @generated
+ */
+ int USE_TOLL_LANES = 41;
+
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode <em>Effect Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Effect Code</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @generated
+ */
+ EEnum getEffectCode();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Tendency <em>Tendency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Tendency</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @generated
+ */
+ EEnum getTendency();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode <em>Cause Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cause Code</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @generated
+ */
+ EEnum getCauseCode();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel <em>Warning Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Warning Level</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @generated
+ */
+ EEnum getWarningLevel();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion <em>Traffic Congestion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Traffic Congestion</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion
+ * @generated
+ */
+ EEnum getTrafficCongestion();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Accident <em>Accident</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Accident</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Accident
+ * @generated
+ */
+ EEnum getAccident();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks <em>Road Works</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Road Works</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks
+ * @generated
+ */
+ EEnum getRoadWorks();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes <em>Narrow Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Narrow Lanes</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes
+ * @generated
+ */
+ EEnum getNarrowLanes();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility <em>Impassibility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Impassibility</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility
+ * @generated
+ */
+ EEnum getImpassibility();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad <em>Slippery Road</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Slippery Road</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad
+ * @generated
+ */
+ EEnum getSlipperyRoad();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Fire <em>Fire</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Fire</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Fire
+ * @generated
+ */
+ EEnum getFire();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions <em>Hazardous Driving Conditions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Hazardous Driving Conditions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions
+ * @generated
+ */
+ EEnum getHazardousDrivingConditions();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad <em>Objects On The Road</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Objects On The Road</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad
+ * @generated
+ */
+ EEnum getObjectsOnTheRoad();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway <em>Animals On Roadway</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Animals On Roadway</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway
+ * @generated
+ */
+ EEnum getAnimalsOnRoadway();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway <em>People On Roadway</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>People On Roadway</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway
+ * @generated
+ */
+ EEnum getPeopleOnRoadway();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles <em>Broken Down Vehicles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Broken Down Vehicles</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles
+ * @generated
+ */
+ EEnum getBrokenDownVehicles();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress <em>Rescue And Recovery Work In Progress</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Rescue And Recovery Work In Progress</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress
+ * @generated
+ */
+ EEnum getRescueAndRecoveryWorkInProgress();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure <em>Regulatory Measure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Regulatory Measure</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure
+ * @generated
+ */
+ EEnum getRegulatoryMeasure();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType <em>Lane Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Lane Restriction Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @generated
+ */
+ EEnum getLaneRestrictionType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode <em>Advice Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Advice Code</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @generated
+ */
+ EEnum getAdviceCode();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType <em>Vehicle Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Vehicle Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @generated
+ */
+ EEnum getVehicleType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType <em>Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Restriction Type</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @generated
+ */
+ EEnum getRestrictionType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions <em>Extreme Weather Conditions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Extreme Weather Conditions</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions
+ * @generated
+ */
+ EEnum getExtremeWeatherConditions();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced <em>Visibility Reduced</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Visibility Reduced</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced
+ * @generated
+ */
+ EEnum getVisibilityReduced();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation <em>Precipitation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Precipitation</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation
+ * @generated
+ */
+ EEnum getPrecipitation();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons <em>Reckless Persons</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Reckless Persons</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons
+ * @generated
+ */
+ EEnum getRecklessPersons();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent <em>Major Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Major Event</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent
+ * @generated
+ */
+ EEnum getMajorEvent();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating <em>Service Not Operating</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Service Not Operating</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating
+ * @generated
+ */
+ EEnum getServiceNotOperating();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable <em>Service Not Usable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Service Not Usable</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable
+ * @generated
+ */
+ EEnum getServiceNotUsable();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles <em>Slow Moving Vehicles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Slow Moving Vehicles</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles
+ * @generated
+ */
+ EEnum getSlowMovingVehicles();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue <em>Dangerous End Of Queue</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Dangerous End Of Queue</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue
+ * @generated
+ */
+ EEnum getDangerousEndOfQueue();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire <em>Risk Of Fire</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Risk Of Fire</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire
+ * @generated
+ */
+ EEnum getRiskOfFire();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay <em>Time Delay</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Time Delay</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay
+ * @generated
+ */
+ EEnum getTimeDelay();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint <em>Police Checkpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Police Checkpoint</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint
+ * @generated
+ */
+ EEnum getPoliceCheckpoint();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment <em>Malfunctioning Roadside Equipment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Malfunctioning Roadside Equipment</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment
+ * @generated
+ */
+ EEnum getMalfunctioningRoadsideEquipment();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed <em>Overtaking Not Allowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Overtaking Not Allowed</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed
+ * @generated
+ */
+ EEnum getOvertakingNotAllowed();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed <em>Driving Not Allowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Driving Not Allowed</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed
+ * @generated
+ */
+ EEnum getDrivingNotAllowed();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind <em>Giving Path Vehicles From Behind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Giving Path Vehicles From Behind</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind
+ * @generated
+ */
+ EEnum getGivingPathVehiclesFromBehind();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion <em>Follow Diversion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Follow Diversion</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion
+ * @generated
+ */
+ EEnum getFollowDiversion();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully <em>Drive Carefully</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Drive Carefully</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully
+ * @generated
+ */
+ EEnum getDriveCarefully();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle <em>Do Not Leave Your Vehicle</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Do Not Leave Your Vehicle</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle
+ * @generated
+ */
+ EEnum getDoNotLeaveYourVehicle();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes <em>Use Toll Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Use Toll Lanes</em>'.
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes
+ * @generated
+ */
+ EEnum getUseTollLanes();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ trafficincidenttablesFactory gettrafficincidenttablesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode <em>Effect Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getEffectCode()
+ * @generated
+ */
+ EEnum EFFECT_CODE = eINSTANCE.getEffectCode();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Tendency <em>Tendency</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Tendency
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getTendency()
+ * @generated
+ */
+ EEnum TENDENCY = eINSTANCE.getTendency();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode <em>Cause Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getCauseCode()
+ * @generated
+ */
+ EEnum CAUSE_CODE = eINSTANCE.getCauseCode();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel <em>Warning Level</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getWarningLevel()
+ * @generated
+ */
+ EEnum WARNING_LEVEL = eINSTANCE.getWarningLevel();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion <em>Traffic Congestion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getTrafficCongestion()
+ * @generated
+ */
+ EEnum TRAFFIC_CONGESTION = eINSTANCE.getTrafficCongestion();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Accident <em>Accident</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Accident
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getAccident()
+ * @generated
+ */
+ EEnum ACCIDENT = eINSTANCE.getAccident();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks <em>Road Works</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRoadWorks()
+ * @generated
+ */
+ EEnum ROAD_WORKS = eINSTANCE.getRoadWorks();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes <em>Narrow Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getNarrowLanes()
+ * @generated
+ */
+ EEnum NARROW_LANES = eINSTANCE.getNarrowLanes();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility <em>Impassibility</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getImpassibility()
+ * @generated
+ */
+ EEnum IMPASSIBILITY = eINSTANCE.getImpassibility();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad <em>Slippery Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getSlipperyRoad()
+ * @generated
+ */
+ EEnum SLIPPERY_ROAD = eINSTANCE.getSlipperyRoad();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Fire <em>Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Fire
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getFire()
+ * @generated
+ */
+ EEnum FIRE = eINSTANCE.getFire();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions <em>Hazardous Driving Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getHazardousDrivingConditions()
+ * @generated
+ */
+ EEnum HAZARDOUS_DRIVING_CONDITIONS = eINSTANCE.getHazardousDrivingConditions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad <em>Objects On The Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getObjectsOnTheRoad()
+ * @generated
+ */
+ EEnum OBJECTS_ON_THE_ROAD = eINSTANCE.getObjectsOnTheRoad();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway <em>Animals On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getAnimalsOnRoadway()
+ * @generated
+ */
+ EEnum ANIMALS_ON_ROADWAY = eINSTANCE.getAnimalsOnRoadway();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway <em>People On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getPeopleOnRoadway()
+ * @generated
+ */
+ EEnum PEOPLE_ON_ROADWAY = eINSTANCE.getPeopleOnRoadway();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles <em>Broken Down Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getBrokenDownVehicles()
+ * @generated
+ */
+ EEnum BROKEN_DOWN_VEHICLES = eINSTANCE.getBrokenDownVehicles();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress <em>Rescue And Recovery Work In Progress</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRescueAndRecoveryWorkInProgress()
+ * @generated
+ */
+ EEnum RESCUE_AND_RECOVERY_WORK_IN_PROGRESS = eINSTANCE.getRescueAndRecoveryWorkInProgress();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure <em>Regulatory Measure</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRegulatoryMeasure()
+ * @generated
+ */
+ EEnum REGULATORY_MEASURE = eINSTANCE.getRegulatoryMeasure();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType <em>Lane Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getLaneRestrictionType()
+ * @generated
+ */
+ EEnum LANE_RESTRICTION_TYPE = eINSTANCE.getLaneRestrictionType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode <em>Advice Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getAdviceCode()
+ * @generated
+ */
+ EEnum ADVICE_CODE = eINSTANCE.getAdviceCode();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType <em>Vehicle Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getVehicleType()
+ * @generated
+ */
+ EEnum VEHICLE_TYPE = eINSTANCE.getVehicleType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType <em>Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRestrictionType()
+ * @generated
+ */
+ EEnum RESTRICTION_TYPE = eINSTANCE.getRestrictionType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions <em>Extreme Weather Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getExtremeWeatherConditions()
+ * @generated
+ */
+ EEnum EXTREME_WEATHER_CONDITIONS = eINSTANCE.getExtremeWeatherConditions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced <em>Visibility Reduced</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getVisibilityReduced()
+ * @generated
+ */
+ EEnum VISIBILITY_REDUCED = eINSTANCE.getVisibilityReduced();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation <em>Precipitation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getPrecipitation()
+ * @generated
+ */
+ EEnum PRECIPITATION = eINSTANCE.getPrecipitation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons <em>Reckless Persons</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRecklessPersons()
+ * @generated
+ */
+ EEnum RECKLESS_PERSONS = eINSTANCE.getRecklessPersons();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent <em>Major Event</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getMajorEvent()
+ * @generated
+ */
+ EEnum MAJOR_EVENT = eINSTANCE.getMajorEvent();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating <em>Service Not Operating</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getServiceNotOperating()
+ * @generated
+ */
+ EEnum SERVICE_NOT_OPERATING = eINSTANCE.getServiceNotOperating();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable <em>Service Not Usable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getServiceNotUsable()
+ * @generated
+ */
+ EEnum SERVICE_NOT_USABLE = eINSTANCE.getServiceNotUsable();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles <em>Slow Moving Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getSlowMovingVehicles()
+ * @generated
+ */
+ EEnum SLOW_MOVING_VEHICLES = eINSTANCE.getSlowMovingVehicles();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue <em>Dangerous End Of Queue</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDangerousEndOfQueue()
+ * @generated
+ */
+ EEnum DANGEROUS_END_OF_QUEUE = eINSTANCE.getDangerousEndOfQueue();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire <em>Risk Of Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getRiskOfFire()
+ * @generated
+ */
+ EEnum RISK_OF_FIRE = eINSTANCE.getRiskOfFire();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay <em>Time Delay</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getTimeDelay()
+ * @generated
+ */
+ EEnum TIME_DELAY = eINSTANCE.getTimeDelay();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint <em>Police Checkpoint</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getPoliceCheckpoint()
+ * @generated
+ */
+ EEnum POLICE_CHECKPOINT = eINSTANCE.getPoliceCheckpoint();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment <em>Malfunctioning Roadside Equipment</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getMalfunctioningRoadsideEquipment()
+ * @generated
+ */
+ EEnum MALFUNCTIONING_ROADSIDE_EQUIPMENT = eINSTANCE.getMalfunctioningRoadsideEquipment();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed <em>Overtaking Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getOvertakingNotAllowed()
+ * @generated
+ */
+ EEnum OVERTAKING_NOT_ALLOWED = eINSTANCE.getOvertakingNotAllowed();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed <em>Driving Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDrivingNotAllowed()
+ * @generated
+ */
+ EEnum DRIVING_NOT_ALLOWED = eINSTANCE.getDrivingNotAllowed();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind <em>Giving Path Vehicles From Behind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getGivingPathVehiclesFromBehind()
+ * @generated
+ */
+ EEnum GIVING_PATH_VEHICLES_FROM_BEHIND = eINSTANCE.getGivingPathVehiclesFromBehind();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion <em>Follow Diversion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getFollowDiversion()
+ * @generated
+ */
+ EEnum FOLLOW_DIVERSION = eINSTANCE.getFollowDiversion();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully <em>Drive Carefully</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDriveCarefully()
+ * @generated
+ */
+ EEnum DRIVE_CAREFULLY = eINSTANCE.getDriveCarefully();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle <em>Do Not Leave Your Vehicle</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getDoNotLeaveYourVehicle()
+ * @generated
+ */
+ EEnum DO_NOT_LEAVE_YOUR_VEHICLE = eINSTANCE.getDoNotLeaveYourVehicle();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes <em>Use Toll Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes
+ * @see org.genivi.trafficincidentsservice.trafficincidenttables.impl.trafficincidenttablesPackageImpl#getUseTollLanes()
+ * @generated
+ */
+ EEnum USE_TOLL_LANES = eINSTANCE.getUseTollLanes();
+
+ }
+
+} //trafficincidenttablesPackage
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.classpath b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.classpath
new file mode 100755
index 0000000..def9cf4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.libmatthew"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.project b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.project
new file mode 100755
index 0000000..03a5315
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/.project
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.dbus-java</name>
+ <comment>Copy of dbus-java with bug fixes and extensions. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.libmatthew</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/ReadMe.confluence
new file mode 100755
index 0000000..af390a9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/ReadMe.confluence
@@ -0,0 +1,5 @@
+This project is a copy of the dbus-java project by Matthew Johnson, with small modifications needed to get the TrafficIncidentsService PoC running.
+* support for unicast signals added
+* some bugs fixed, e.g. support of empty lists
+
+The original project can be found at http://dbus.freedesktop.org/ \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/pom.xml b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/pom.xml
new file mode 100755
index 0000000..980f61f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/pom.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI dbus-java copy</name>
+ <description>Copy of dbus-java with bug fixes and extensions</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/AUTHORS b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/AUTHORS
new file mode 100755
index 0000000..9b7699e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/AUTHORS
@@ -0,0 +1,37 @@
+The D-Bus Java implementation was written by:
+
+Matthew Johnson <dbus -at matthew -dot- ath -dot- cx>
+
+Bug fixes/reports and other suggestions from:
+
+Remi Emonet <remi.emonet -at- inrialpes -dot- fr>
+Simon McVittie <simon -dot- mcvittie -at- collabora -dot- co -dot- uk>
+Dick Hollenbeck <dick -at- softplc -dot- com>
+Joshua Nichols <nichoj -at- gentoo -dot- org>
+Ralf Kistner <ralf.kistner -at- gmail -dot- com>
+Henrik Petander <henrik -dot- petander -at- iki -dot- fi>
+Luigi Paioro <luigi -at- lambrate -dot- it>
+Roberto Francisco Arroyo Moreno <robfram -at- ugr -dot- es>
+Steve Crane <Steve -dot Crane -at- rococosoft -dot- com>
+Philippe Marschall <philippe -dot- marschall -at- gmail -dot- com>
+Daniel Machado <cdanielmachado -at- gmail -dot- com>
+Anibal Sanchez <anibal -dot- sanchez -at- sunya -dot- com -dot- ar>
+Jan Kümmel <freedesktop -at- snorc -dot- org>
+Johannes Felten <johannesfelten -at- googlemail -dot- com>
+Tom Walsh <walshtc -at- gmail -dot- com>
+Ed Wei <Edward.Wei.03 -at- alum -dot- dartmouth -dot- org>
+Sveinung Kvilhaugsvik <sveinung84 -at- users -dot- sourceforge -dot- net>
+Hugues Moreau <hmoreau -at- gmail -dot- com>
+Viktar Vauchkevich <vctr -at- yandex -dot- ru>
+Serkan Kaba <serkan_kaba -at- yahoo -dot- com>
+Adam Bennett <cruxic -at- gmail -dot- com>
+Frank Benoit <benoit -at- tionex -dot- de>
+Gunnar Aastrand Grimnes <gunnar -dot- grimnes -at- dfki -dot- de>
+
+The included Viewer application was originally written by:
+
+Peter Cox <petercox -at- gawab -dot- com>
+
+with patches from:
+
+Zsombor Gegesy <gzsombor -at- gmail -dot- com>
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/COPYING b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/COPYING
new file mode 100755
index 0000000..d651143
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/COPYING
@@ -0,0 +1,680 @@
+The D-Bus Java implementation is licensed to you under your choice of the
+Academic Free License version 2.1, or the GNU Lesser/Library General Public License
+version 2. Both licenses are included here. Each source code file is marked
+with the proper copyright information.
+
+The Academic Free License
+v. 2.1
+
+This Academic Free License (the "License") applies to any original work of
+authorship (the "Original Work") whose owner (the "Licensor") has placed the
+following notice immediately following the copyright notice for the Original
+Work:
+
+Licensed under the Academic Free License version 2.1
+
+1) Grant of Copyright License. Licensor hereby grants You a world-wide,
+royalty-free, non-exclusive, perpetual, sublicenseable license to do the
+following:
+
+a) to reproduce the Original Work in copies;
+
+b) to prepare derivative works ("Derivative Works") based upon the Original
+Work;
+
+c) to distribute copies of the Original Work and Derivative Works to the
+public;
+
+d) to perform the Original Work publicly; and
+
+e) to display the Original Work publicly.
+
+2) Grant of Patent License. Licensor hereby grants You a world-wide,
+royalty-free, non-exclusive, perpetual, sublicenseable license, under patent
+claims owned or controlled by the Licensor that are embodied in the Original
+Work as furnished by the Licensor, to make, use, sell and offer for sale the
+Original Work and Derivative Works.
+
+3) Grant of Source Code License. The term "Source Code" means the preferred
+form of the Original Work for making modifications to it and all available
+documentation describing how to modify the Original Work. Licensor hereby
+agrees to provide a machine-readable copy of the Source Code of the Original
+Work along with each copy of the Original Work that Licensor distributes.
+Licensor reserves the right to satisfy this obligation by placing a
+machine-readable copy of the Source Code in an information repository
+reasonably calculated to permit inexpensive and convenient access by You for as
+long as Licensor continues to distribute the Original Work, and by publishing
+the address of that information repository in a notice immediately following
+the copyright notice that applies to the Original Work.
+
+4) Exclusions From License Grant. Neither the names of Licensor, nor the names
+of any contributors to the Original Work, nor any of their trademarks or
+service marks, may be used to endorse or promote products derived from this
+Original Work without express prior written permission of the Licensor. Nothing
+in this License shall be deemed to grant any rights to trademarks, copyrights,
+patents, trade secrets or any other intellectual property of Licensor except as
+expressly stated herein. No patent license is granted to make, use, sell or
+offer to sell embodiments of any patent claims other than the licensed claims
+defined in Section 2. No right is granted to the trademarks of Licensor even if
+such marks are included in the Original Work. Nothing in this License shall be
+interpreted to prohibit Licensor from licensing under different terms from this
+License any Original Work that Licensor otherwise would have a right to
+license.
+
+5) This section intentionally omitted.
+
+6) Attribution Rights. You must retain, in the Source Code of any Derivative
+Works that You create, all copyright, patent or trademark notices from the
+Source Code of the Original Work, as well as any notices of licensing and any
+descriptive text identified therein as an "Attribution Notice." You must cause
+the Source Code for any Derivative Works that You create to carry a prominent
+Attribution Notice reasonably calculated to inform recipients that You have
+modified the Original Work.
+
+7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that
+the copyright in and to the Original Work and the patent rights granted herein
+by Licensor are owned by the Licensor or are sublicensed to You under the terms
+of this License with the permission of the contributor(s) of those copyrights
+and patent rights. Except as expressly stated in the immediately proceeding
+sentence, the Original Work is provided under this License on an "AS IS" BASIS
+and WITHOUT WARRANTY, either express or implied, including, without limitation,
+the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU.
+This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No
+license to Original Work is granted hereunder except under this disclaimer.
+
+8) Limitation of Liability. Under no circumstances and under no legal theory,
+whether in tort (including negligence), contract, or otherwise, shall the
+Licensor be liable to any person for any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License
+or the use of the Original Work including, without limitation, damages for loss
+of goodwill, work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses. This limitation of liability shall not
+apply to liability for death or personal injury resulting from Licensor's
+negligence to the extent applicable law prohibits such limitation. Some
+jurisdictions do not allow the exclusion or limitation of incidental or
+consequential damages, so this exclusion and limitation may not apply to You.
+
+9) Acceptance and Termination. If You distribute copies of the Original Work or
+a Derivative Work, You must make a reasonable effort under the circumstances to
+obtain the express assent of recipients to the terms of this License. Nothing
+else but this License (or another written agreement between Licensor and You)
+grants You permission to create Derivative Works based upon the Original Work
+or to exercise any of the rights granted in Section 1 herein, and any attempt
+to do so except under the terms of this License (or another written agreement
+between Licensor and You) is expressly prohibited by U.S. copyright law, the
+equivalent laws of other countries, and by international treaty. Therefore, by
+exercising any of the rights granted to You in Section 1 herein, You indicate
+Your acceptance of this License and all of its terms and conditions.
+
+10) Termination for Patent Action. This License shall terminate automatically
+and You may no longer exercise any of the rights granted to You by this License
+as of the date You commence an action, including a cross-claim or counterclaim,
+against Licensor or any licensee alleging that the Original Work infringes a
+patent. This termination provision shall not apply for an action alleging
+patent infringement by combinations of the Original Work with other software or
+hardware.
+
+11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this
+License may be brought only in the courts of a jurisdiction wherein the
+Licensor resides or in which Licensor conducts its primary business, and under
+the laws of that jurisdiction excluding its conflict-of-law provisions. The
+application of the United Nations Convention on Contracts for the International
+Sale of Goods is expressly excluded. Any use of the Original Work outside the
+scope of this License or after its termination shall be subject to the
+requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq.,
+the equivalent laws of other countries, and international treaty. This section
+shall survive the termination of this License.
+
+12) Attorneys Fees. In any action to enforce the terms of this License or
+seeking damages relating thereto, the prevailing party shall be entitled to
+recover its costs and expenses, including, without limitation, reasonable
+attorneys' fees and costs incurred in connection with such action, including
+any appeal of such action. This section shall survive the termination of this
+License.
+
+13) Miscellaneous. This License represents the complete agreement concerning
+the subject matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent necessary to
+make it enforceable.
+
+14) Definition of "You" in This License. "You" throughout this License, whether
+in upper or lower case, means an individual or a legal entity exercising rights
+under, and complying with all of the terms of, this License. For legal
+entities, "You" includes any entity that controls, is controlled by, or is
+under common control with you. For purposes of this definition, "control" means
+(i) the power, direct or indirect, to cause the direction or management of such
+entity, whether by contract or otherwise, or (ii) ownership of fifty percent
+(50%) or more of the outstanding shares, or (iii) beneficial ownership of such
+entity.
+
+15) Right to Use. You may use the Original Work in all ways not otherwise
+restricted or conditioned by this License or by law, and Licensor promises not
+to interfere with or be responsible for such uses by You.
+
+This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved.
+Permission is hereby granted to copy and distribute this license without
+modification. This license may not be modified without the express written
+permission of its copyright owner.
+
+
+--
+END OF ACADEMIC FREE LICENSE. The following is intended to describe the
+essential differences between the Academic Free License (AFL) version 1.0 and
+other open source licenses:
+
+The Academic Free License is similar to the BSD, MIT, UoI/NCSA and Apache
+licenses in many respects but it is intended to solve a few problems with those
+licenses.
+
+* The AFL is written so as to make it clear what software is being
+licensed (by the inclusion of a statement following the copyright notice in the
+software). This way, the license functions better than a template license. The
+BSD, MIT and UoI/NCSA licenses apply to unidentified software.
+
+* The AFL contains a complete copyright grant to the software. The BSD
+and Apache licenses are vague and incomplete in that respect.
+
+* The AFL contains a complete patent grant to the software. The BSD, MIT,
+UoI/NCSA and Apache licenses rely on an implied patent license and contain no
+explicit patent grant.
+
+* The AFL makes it clear that no trademark rights are granted to the
+licensor's trademarks. The Apache license contains such a provision, but the
+BSD, MIT and UoI/NCSA licenses do not.
+
+* The AFL includes the warranty by the licensor that it either owns the
+copyright or that it is distributing the software under a license. None of the
+other licenses contain that warranty. All other warranties are disclaimed, as
+is the case for the other licenses.
+
+* The AFL is itself copyrighted (with the right granted to copy and distribute
+without modification). This ensures that the owner of the copyright to the
+license will control changes. The Apache license contains a copyright notice,
+but the BSD, MIT and UoI/NCSA licenses do not.
+
+--
+START OF GNU LIBRARY GENERAL PUBLIC LICENSE
+--
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.bat b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.bat
new file mode 100755
index 0000000..8275e45
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+set debug=%DEBUG%
+set version=%VERSION%
+set jarpath=%WINJARPATH%
+set javaunixjarpath=%WINUNIXJARPATH%
+
+java -DVersion=%version% -cp %javaunixjarpath%debug-%debug%.jar;%javaunixjarpath%hexdump.jar;%jarpath%dbus.jar;%jarpath%dbus-bin.jar org.freedesktop.dbus.bin.CreateInterface %*
+
+endlocal
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sgml b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sgml
new file mode 100755
index 0000000..44ad676
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sgml
@@ -0,0 +1,182 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Matthew</firstname>">
+ <!ENTITY dhsurname "<surname>Johnson</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>January 10, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>1</manvolnum>">
+ <!ENTITY dhemail "<email>&lt;debian@matthew.ath.cx&gt;</email>">
+ <!ENTITY dhusername "Matthew Johnson">
+ <!ENTITY dhucpackage "<refentrytitle>DBUS-JAVA</refentrytitle>">
+ <!ENTITY dhpackage "CreateInterface">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>Create a Java Interface definition from DBus
+ introspection data.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <arg><option><replaceable>introspection.xml</replaceable></option></arg>
+ <arg><option><replaceable>busname</replaceable> <replaceable>objectname</replaceable></option></arg>
+ <arg><option>-y </option></arg>
+ <arg><option>--system </option></arg>
+ <arg><option>-s </option></arg>
+ <arg><option>--session </option></arg>
+ <arg><option>-f </option></arg>
+ <arg><option>--create-files </option></arg>
+ <arg><option>-h </option></arg>
+ <arg><option>--help</option></arg>
+
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para><command>&dhpackage;</command> takes DBus introspection data,
+ either as an XML file or by calling the Introspect() method on the Bus,
+ and converts it into a Java interface file. This is either written
+ to the standard output or to the correct file structure for the
+ Java packages.
+ </para>
+
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-s</option>
+ <option>--session</option>
+ </term>
+ <listitem>
+ <para>Use the Session Bus to query introspection data
+ (This is the Default)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-y</option>
+ <option>--system</option>
+ </term>
+ <listitem>
+ <para>Use the System Bus to query introspection data
+ (Default is Session)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-f</option>
+ <option>--create-files</option>
+ </term>
+ <listitem>
+ <para>Writes introspection data into files rather than to stdout.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--no-ignore-builtin</option>
+ </term>
+ <listitem>
+ <para>Do not ignore builtin (org.freedesktop.DBus)
+ interfaces while parsing introspection data</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail;. Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; Lesser General Public License, Version 2 as
+ published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sh b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sh
new file mode 100755
index 0000000..863d1a3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/CreateInterface.sh
@@ -0,0 +1,10 @@
+#!/bin/sh --
+
+JAVA=%JAVA%
+DEBUG=%DEBUG%
+VERSION=%VERSION%
+JARPATH=%JARPATH%
+JAVAUNIXLIBPATH=%JAVAUNIXLIBPATH%
+JAVAUNIXJARPATH=%JAVAUNIXJARPATH%
+
+exec $JAVA -DPid=$$ -DVersion=$VERSION -Djava.library.path=$JAVAUNIXLIBPATH -cp $JAVAUNIXJARPATH/unix.jar:$JAVAUNIXJARPATH/debug-$DEBUG.jar:$JAVAUNIXJARPATH/hexdump.jar:$JARPATH/dbus.jar:$JARPATH/dbus-bin.jar org.freedesktop.dbus.bin.CreateInterface "$@"
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.bat b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.bat
new file mode 100755
index 0000000..2489048
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+set debug=%DEBUG%
+set version=%VERSION%
+set jarpath=%WINJARPATH%
+set javaunixjarpath=%WINUNIXJARPATH%
+
+java -DVersion=%version% -cp %javaunixjarpath%debug-%debug%.jar;%javaunixjarpath%hexdump.jar;%jarpath%dbus.jar;%jarpath%dbus-bin.jar org.freedesktop.dbus.bin.Caller %*
+
+endlocal
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sgml b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sgml
new file mode 100755
index 0000000..9efd4f0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sgml
@@ -0,0 +1,126 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Matthew</firstname>">
+ <!ENTITY dhsurname "<surname>Johnson</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>January 10, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>1</manvolnum>">
+ <!ENTITY dhemail "<email>&lt;debian@matthew.ath.cx&gt;</email>">
+ <!ENTITY dhusername "Matthew Johnson">
+ <!ENTITY dhucpackage "<refentrytitle>DBUS-JAVA</refentrytitle>">
+ <!ENTITY dhpackage "DBusCall">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2007</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>Calls methods on DBus</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <arg><replaceable>dest</replaceable></arg>
+ <arg><replaceable>path</replaceable></arg>
+ <arg><replaceable>interface</replaceable></arg>
+ <arg><replaceable>method</replaceable></arg>
+ <arg><option><replaceable>sig</replaceable></option></arg>
+ <arg><option><replaceable>args</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para><command>&dhpackage;</command> calls arbitrary methods on the bus
+ </para>
+
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below.
+ </para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail;. Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; Lesser General Public License, Version 2 as
+ published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sh b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sh
new file mode 100755
index 0000000..23f2fe5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusCall.sh
@@ -0,0 +1,10 @@
+#!/bin/sh --
+
+JAVA=%JAVA%
+DEBUG=%DEBUG%
+VERSION=%VERSION%
+JARPATH=%JARPATH%
+JAVAUNIXLIBPATH=%JAVAUNIXLIBPATH%
+JAVAUNIXJARPATH=%JAVAUNIXJARPATH%
+
+exec $JAVA -DPid=$$ -DVersion=$VERSION -Djava.library.path=$JAVAUNIXLIBPATH -cp $JAVAUNIXJARPATH/unix.jar:$JAVAUNIXJARPATH/debug-$DEBUG.jar:$JAVAUNIXJARPATH/hexdump.jar:$JARPATH/dbus.jar:$JARPATH/dbus-bin.jar org.freedesktop.dbus.bin.Caller "$@"
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.bat b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.bat
new file mode 100755
index 0000000..e9c1b71
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+set debug=%DEBUG%
+set version=%VERSION%
+set jarpath=%WINJARPATH%
+set javaunixjarpath=%WINUNIXJARPATH%
+
+java -DVersion=%version% -cp %javaunixjarpath%debug-%debug%.jar;%javaunixjarpath%hexdump.jar;%jarpath%dbus.jar;%jarpath%dbus-bin.jar org.freedesktop.dbus.bin.DBusDaemon %*
+
+endlocal
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sgml b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sgml
new file mode 100755
index 0000000..eeee64d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sgml
@@ -0,0 +1,212 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Matthew</firstname>">
+ <!ENTITY dhsurname "<surname>Johnson</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>January 10, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>1</manvolnum>">
+ <!ENTITY dhemail "<email>&lt;debian@matthew.ath.cx&gt;</email>">
+ <!ENTITY dhusername "Matthew Johnson">
+ <!ENTITY dhucpackage "<refentrytitle>DBUS-JAVA</refentrytitle>">
+ <!ENTITY dhpackage "DBusDaemon">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>Runs a D-Bus Daemon</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <arg><option>--version</option></arg>
+ <arg><option>-v</option></arg>
+ <arg><option>--help</option></arg>
+ <arg><option>-h</option></arg>
+ <arg><option>--print-address</option></arg>
+ <arg><option>-r</option></arg>
+ <arg><option>--unix</option></arg>
+ <arg><option>-u</option></arg>
+ <arg><option>--tcp</option></arg>
+ <arg><option>-t</option></arg>
+ <arg><option>--listen</option> <replaceable>address</replaceable></arg>
+ <arg><option>-l</option> <replaceable>address</replaceable></arg>
+ <arg><option>--addressfile</option> <replaceable>file</replaceable></arg>
+ <arg><option>-a</option> <replaceable>file</replaceable></arg>
+ <arg><option>--pidfile</option> <replaceable>file</replaceable></arg>
+ <arg><option>-p</option> <replaceable>file</replaceable></arg>
+
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para><command>&dhpackage;</command> provides a D-Bus daemon for applications to communicate.
+ </para>
+
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Print the version</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Print the syntax</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-r</option>
+ <option>--print-address</option>
+ </term>
+ <listitem>
+ <para>Print the address</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-u</option>
+ <option>--unix</option>
+ </term>
+ <listitem>
+ <para>Generate random Unix Socket address</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-t</option>
+ <option>--tcp</option>
+ </term>
+ <listitem>
+ <para>Generate random local TCP address</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-l</option> <replaceable>address</replaceable>
+ <option>--listen</option> <replaceable>address</replaceable>
+ </term>
+ <listitem>
+ <para>Listen on the specified address</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-a</option> <replaceable>file</replaceable>
+ <option>--addressfile</option> <replaceable>file</replaceable>
+ </term>
+ <listitem>
+ <para>Print address to specified file</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-p</option> <replaceable>file</replaceable>
+ <option>--pidfile</option> <replaceable>file</replaceable>
+ </term>
+ <listitem>
+ <para>Print address to specified file</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail;. Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; Lesser General Public License, Version 2 as
+ published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sh b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sh
new file mode 100755
index 0000000..7de5000
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusDaemon.sh
@@ -0,0 +1,10 @@
+#!/bin/sh --
+
+JAVA=%JAVA%
+DEBUG=%DEBUG%
+VERSION=%VERSION%
+JARPATH=%JARPATH%
+JAVAUNIXLIBPATH=%JAVAUNIXLIBPATH%
+JAVAUNIXJARPATH=%JAVAUNIXJARPATH%
+
+exec $JAVA -DPid=$$ -DVersion=$VERSION -Djava.library.path=$JAVAUNIXLIBPATH -cp $JAVAUNIXJARPATH/unix.jar:$JAVAUNIXJARPATH/debug-$DEBUG.jar:$JAVAUNIXJARPATH/hexdump.jar:$JARPATH/dbus.jar:$JARPATH/dbus-bin.jar org.freedesktop.dbus.bin.DBusDaemon "$@"
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.bat b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.bat
new file mode 100755
index 0000000..f180fba
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+set debug=%DEBUG%
+set version=%VERSION%
+set jarpath=%WINJARPATH%
+set javaunixjarpath=%WINUNIXJARPATH%
+
+java -DVersion=%version% -cp %javaunixjarpath%debug-%debug%.jar;%javaunixjarpath%hexdump.jar;%jarpath%dbus.jar;%jarpath%dbus-viewer.jar;%jarpath%dbus-bin.jar org.freedesktop.dbus.viewer.DBusViewer %*
+
+endlocal
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sgml b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sgml
new file mode 100755
index 0000000..65535b2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sgml
@@ -0,0 +1,107 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Matthew</firstname>">
+ <!ENTITY dhsurname "<surname>Johnson</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>January 10, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>1</manvolnum>">
+ <!ENTITY dhemail "<email>&lt;debian@matthew.ath.cx&gt;</email>">
+ <!ENTITY dhusername "Matthew Johnson">
+ <!ENTITY dhucpackage "<refentrytitle>DBUS-JAVA</refentrytitle>">
+ <!ENTITY dhpackage "DBusViewer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>Show connections to the Bus and introspect on them.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para><command>&dhpackage;</command> shows connections to the Bus in a
+ window. It allows you to introspect on them and save the corresponding Java
+ interface definitions. </para>
+
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail;. Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; Lesser General Public License, Version 2 as
+ published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sh b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sh
new file mode 100755
index 0000000..c060b36
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/DBusViewer.sh
@@ -0,0 +1,10 @@
+#!/bin/sh --
+
+JAVA=%JAVA%
+DEBUG=%DEBUG%
+VERSION=%VERSION%
+JARPATH=%JARPATH%
+JAVAUNIXLIBPATH=%JAVAUNIXLIBPATH%
+JAVAUNIXJARPATH=%JAVAUNIXJARPATH%
+
+exec $JAVA -DPid=$$ -DVersion=$VERSION -Djava.library.path=$JAVAUNIXLIBPATH -cp $JAVAUNIXJARPATH/unix.jar:$JAVAUNIXJARPATH/debug-$DEBUG.jar:$JAVAUNIXJARPATH/hexdump.jar:$JARPATH/dbus.jar:$JARPATH/dbus-bin.jar:$JARPATH/dbus-viewer.jar org.freedesktop.dbus.viewer.DBusViewer "$@"
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/INSTALL b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/INSTALL
new file mode 100755
index 0000000..a6c5fb8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/INSTALL
@@ -0,0 +1,101 @@
+D-Bus Java installation guide
+-----------------------------
+
+Prerequisites
+-------------
+
+To compile and install the library you will need:
+
+ A Java 1.5-compliant VM and Compiler (at time of writing
+ only the Sun VM and Compiler is known to work).
+ The unix socket, debug and hexdump libraries from http://www.matthew.ath.cx/projects/java/ (version 0.6 or later)
+ GNU gettext
+
+To build and install the documentation you will also need:
+
+ A LaTeX environment
+ tex4ht
+ docbook
+
+Compiling the Library
+---------------------
+
+Simply invoke `make' in the top level directory to compile the library.
+Depending on your JDK installation you may need to export JAVA_HOME
+appropriately. The location of the unix-socket library can be set with
+JAVAUNIXLIBDIR and JAVAUNIXJARDIR. Explicit paths to the javac, jar, java and
+javadoc binaries can be set with the JAVAC, JAR, JAVA and JAVADOC variables.
+
+The library will be installed into /usr/local by invoking `make install'. If
+you wish to install them anywhere else then run make with the PREFIX variable
+set to another location. More fine grained control of the installation
+directories can be achieved using the BINDIR etc variables. For more detail
+read the Makefile. DESTDIR can be used for packaging to install with the
+correct hierarchy into a temporary folder.
+
+NOTE: if you set PREFIX in `make install' you should also set it when invoking
+just `make'. PREFIX is to create the binary wrappers with the correct paths to
+the installed library.
+
+Documentation for the library can be built with `make doc' and installed with
+`make install-doc install-man', with the same provisos for installation paths.
+
+Using the Library
+-----------------
+
+The documentation which is by default installed into
+/usr/local/share/doc/libdbus-java/ gives detailed instructions on how to call
+D-Bus programs using the Java implementation and a full API reference.
+
+To run a Java program using D-Bus you need to have the libdbus-java,
+libunix-java and libdebug jar files in your classpath and the libunix-java
+shared library in your library path. With the default install paths you may
+have to do something like:
+
+java -cp /usr/local/share/java/dbus.jar:/usr/local/share/java/unix.jar:/usr/local/share/java/debug-disable.jar -Djava.library.path=/usr/local/lib/jni
+
+Windows
+-------
+
+The Java D-Bus implementation can be used under Windows with TCP Sockets. There
+are several windows batch scripts provided to ease use on Windows.
+
+If the library is being compiled in a unix environment (including cygwin) the
+normal Makefile can be used to create batch files under win/ with `make win'.
+These batch files are wrapper scripts to run the included programs (DBusDaemon,
+CreateInterface, ...) under windows. There is also a make target which creates
+a zip file containing all the jars, wrapper scripts and dependency jars.
+
+If you are compiling on windows there is a script, compile.bat, which will
+create all the jars. You may have to alter the variables defined in it
+depending where you have installed the dependencies and your Java compiler.
+The other .bat files are the wrapper scripts which will need variables setting
+appropriately before use.
+
+Debugging
+---------
+
+It is possible to enable debugging during the build. This will be a lot slower,
+but can print a lot of useful information for debugging your program.
+
+To enable a debug build compile with DEBUG=enable. This will then need to be
+enabled at runtime by using the debug jar with debugging enabled (usually
+installed as debug-enable.jar alongside the normal jar).
+
+Running a program which uses this library will print some informative messages.
+More verbose debug information can be got by supplying a custom debug
+configuration file. This should be placed in the file `debug.conf' and has the
+format:
+
+classname = LEVEL
+
+Where classname is either the special word `ALL' or a full class name like
+`org.freedesktop.dbus' and LEVEL is one of NONE, CRIT, ERR, WARN, INFO, DEBUG,
+VERBOSE, YES, ALL or TRUE. This will set the debug level for a particular
+class. Any messages from that class at that level or higher will be printed.
+Verbose debugging is extremely verbose.
+
+In addition, the environment variable DBUS_JAVA_EXCEPTION_DEBUG will cause all
+exceptions which are handled internally to have their stack trace printed when
+they are handled. This will happen unless debugging has been disabled for that
+class.
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.bat b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.bat
new file mode 100755
index 0000000..2dd6439
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+set debug=%DEBUG%
+set version=%VERSION%
+set jarpath=%WINJARPATH%
+set javaunixjarpath=%WINUNIXJARPATH%
+
+java -DVersion=%version% -cp %javaunixjarpath%debug-%debug%.jar;%javaunixjarpath%hexdump.jar;%jarpath%dbus.jar;%jarpath%dbus-bin.jar org.freedesktop.dbus.bin.ListDBus %*
+
+endlocal
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sgml b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sgml
new file mode 100755
index 0000000..4be1e95
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sgml
@@ -0,0 +1,177 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Matthew</firstname>">
+ <!ENTITY dhsurname "<surname>Johnson</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>January 10, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>1</manvolnum>">
+ <!ENTITY dhemail "<email>&lt;debian@matthew.ath.cx&gt;</email>">
+ <!ENTITY dhusername "Matthew Johnson">
+ <!ENTITY dhucpackage "<refentrytitle>DBUS-JAVA</refentrytitle>">
+ <!ENTITY dhpackage "ListDBus">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>List the names on a DBus</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <arg><option>-y </option></arg>
+ <arg><option>--system </option></arg>
+ <arg><option>-s </option></arg>
+ <arg><option>--session </option></arg>
+ <arg><option>-o </option></arg>
+ <arg><option>--owners </option></arg>
+ <arg><option>-u </option></arg>
+ <arg><option>--uids </option></arg>
+ <arg><option>-h </option></arg>
+ <arg><option>--help</option></arg>
+
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para><command>&dhpackage;</command> lists all the names on DBus.
+ </para>
+
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-s</option>
+ <option>--session</option>
+ </term>
+ <listitem>
+ <para>List the Session Bus
+ (This is the Default)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-y</option>
+ <option>--system</option>
+ </term>
+ <listitem>
+ <para>List the System Bus
+ (Default is Session)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-u</option>
+ <option>--uids</option>
+ </term>
+ <listitem>
+ <para>Give the UIDs which own each name
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-o</option>
+ <option>--owners</option>
+ </term>
+ <listitem>
+ <para>Resolve any well-known names to their owners
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail;. Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; Lesser General Public License, Version 2 as
+ published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sh b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sh
new file mode 100755
index 0000000..4fdfb39
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/ListDBus.sh
@@ -0,0 +1,10 @@
+#!/bin/sh --
+
+JAVA=%JAVA%
+DEBUG=%DEBUG%
+VERSION=%VERSION%
+JARPATH=%JARPATH%
+JAVAUNIXLIBPATH=%JAVAUNIXLIBPATH%
+JAVAUNIXJARPATH=%JAVAUNIXJARPATH%
+
+exec $JAVA -DPid=$$ -DVersion=$VERSION -Djava.library.path=$JAVAUNIXLIBPATH -cp $JAVAUNIXJARPATH/unix.jar:$JAVAUNIXJARPATH/debug-$DEBUG.jar:$JAVAUNIXJARPATH/hexdump.jar:$JARPATH/dbus.jar:$JARPATH/dbus-bin.jar org.freedesktop.dbus.bin.ListDBus "$@"
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/Makefile b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/Makefile
new file mode 100755
index 0000000..65bff86
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/Makefile
@@ -0,0 +1,328 @@
+#
+# For profiling/debug builds use:
+#
+# make CFLAGS="" STRIP=touch JCFLAGS="-Xlint:all"
+# JFLAGS="-Xrunhprof:heap=sites,cpu=samples,monitor=y,thread=y,doe=y -classic" check
+#
+
+# Variables controlling compilation. May be overridden on the command line for
+# debug builds etc
+
+# Programs
+JAVAC?=javac
+JAVA?=java
+JAVADOC?=javadoc
+JAR?=jar
+MAKE?=make
+MSGFMT?=msgfmt
+DOCBOOKTOMAN?=docbook-to-man
+
+# Program parameters
+CPFLAG?=-classpath
+JCFLAGS?=-Xlint:all -O -g:none
+JFLAGS+=-Djava.library.path=$(JAVAUNIXLIBDIR)
+
+# Source/Class locations
+SRCDIR=org/freedesktop
+CLASSDIR=classes/org/freedesktop/dbus
+
+# Installation variables. Controls the location of make install. May be
+# overridden in the make command line to install to different locations
+#
+PREFIX?=/usr/local
+JARPREFIX?=$(PREFIX)/share/java
+BINPREFIX?=$(PREFIX)/bin
+DOCPREFIX?=$(PREFIX)/share/doc/libdbus-java
+MANPREFIX?=$(PREFIX)/share/man/man1
+# allows overriding the javadoc install location from command line
+JAVADOCPREFIX?=$(DOCPREFIX)
+
+# Installation directory of the java-unix libraries
+JAVAUNIXLIBDIR?=/usr/lib/jni
+# Installation directory of the java-unix jars
+JAVAUNIXJARDIR?=/usr/share/java
+DEBUG=disable
+
+# Version numbering
+VERSION = $(shell sed -n '1s/.* \(.*\):/\1/p' changelog)
+RELEASEVERSION = $(shell sed -n '/^Version/s/.* \(.*\):/\1/p' changelog | sed -n '2p')
+
+DISTFILES=dbus-java.tex Makefile org tmp-session.conf CreateInterface.sgml DBusDaemon.sgml ListDBus.sgml DBusViewer.sgml changelog AUTHORS COPYING README INSTALL CreateInterface.sh DBusDaemon.sh ListDBus.sh DBusViewer.sh DBusDaemon.bat CreateInterface.bat ListDBus.bat DBusViewer.bat compile.bat DBusCall.bat DBusCall.sh DBusCall.sgml translations
+
+all: bin doc man
+bin: libdbus-java-$(VERSION).jar dbus-java-viewer-$(VERSION).jar bin/DBusDaemon bin/ListDBus bin/CreateInterface bin/DBusViewer dbus-java-bin-$(VERSION).jar bin/DBusCall
+man: CreateInterface.1 ListDBus.1 DBusDaemon.1 DBusViewer.1 DBusCall.1
+doc: doc/dbus-java.dvi doc/dbus-java.ps doc/dbus-java.pdf doc/dbus-java/index.html doc/api/index.html
+
+clean:
+ rm -rf doc bin classes testbin win
+ rm -f *.1 *.o *.so *.h .dist .classes .testclasses .doc *.jar *.log pid address tmp-session-bus *.gz .viewerclasses .bin .testbin .win .binclasses Manifest
+ rm -rf dbus-java-$(VERSION)
+ rm -rf dbus-java-$(RELEASEVERSION)
+
+classes: .classes
+testclasses: .testclasses
+viewerclasses: .viewerclasses
+binclasses: .binclasses
+.testclasses: $(SRCDIR)/dbus/test/*.java .classes
+ mkdir -p classes
+ $(JAVAC) -cp classes:${JAVAUNIXJARDIR}/debug-$(DEBUG).jar:${JAVAUNIXJARDIR}/hexdump.jar:$(CLASSPATH) -d classes $(JCFLAGS) $(SRCDIR)/dbus/test/*.java
+ touch .testclasses
+.viewerclasses: $(SRCDIR)/dbus/viewer/*.java .classes .binclasses
+ mkdir -p classes
+ $(JAVAC) -cp classes:$(CLASSPATH):${JAVAUNIXJARDIR}/unix.jar:${JAVAUNIXJARDIR}/debug-$(DEBUG).jar:${JAVAUNIXJARDIR}/hexdump.jar -d classes $(JCFLAGS) $(SRCDIR)/dbus/viewer/*.java
+ touch .viewerclasses
+.binclasses: $(SRCDIR)/dbus/bin/*.java .classes
+ mkdir -p classes
+ $(JAVAC) -cp classes:$(CLASSPATH):${JAVAUNIXJARDIR}/unix.jar:${JAVAUNIXJARDIR}/debug-$(DEBUG).jar:${JAVAUNIXJARDIR}/hexdump.jar -d classes $(JCFLAGS) $(SRCDIR)/dbus/bin/*.java
+ touch .binclasses
+.classes: $(SRCDIR)/*.java $(SRCDIR)/dbus/*.java $(SRCDIR)/dbus/exceptions/*.java $(SRCDIR)/dbus/types/*.java translations/*.po
+ mkdir -p classes
+ $(JAVAC) -d classes -cp classes:${JAVAUNIXJARDIR}/unix.jar:${JAVAUNIXJARDIR}/debug-$(DEBUG).jar:${JAVAUNIXJARDIR}/hexdump.jar:$(CLASSPATH) $(JCFLAGS) $(SRCDIR)/*.java $(SRCDIR)/dbus/*.java $(SRCDIR)/dbus/exceptions/*.java $(SRCDIR)/dbus/types/*.java
+ (cd translations; for i in *.po; do $(MSGFMT) --java2 -r dbusjava_localized -d ../classes -l $${i%.po} $$i; done)
+ $(MSGFMT) --java2 -r dbusjava_localized -d classes translations/en_GB.po
+ touch .classes
+
+translations/en_GB.po: $(SRCDIR)/*.java $(SRCDIR)/dbus/*.java $(SRCDIR)/dbus/exceptions/*.java $(SRCDIR)/dbus/types/*.java $(SRCDIR)/dbus/bin/*.java $(SRCDIR)/dbus/viewer/*.java
+ echo "#java-format" > $@
+ sed -n '/_(/s/.*_("\([^"]*\)").*/\1/p' $^ | sort -u | sed 's/\(.*\)/msgid "\1"\nmsgstr "\1"/' >> $@
+
+libdbus-java-$(VERSION).jar: .classes
+ echo "Class-Path: ${JAVAUNIXJARDIR}/unix.jar ${JAVAUNIXJARDIR}/hexdump.jar ${JAVAUNIXJARDIR}/debug-$(DEBUG).jar" > Manifest
+ (cd classes; $(JAR) -cfm ../$@ ../Manifest org/freedesktop/dbus/*.class org/freedesktop/*.class org/freedesktop/dbus/types/*.class org/freedesktop/dbus/exceptions/*.class *localized*class)
+dbus-java-test-$(VERSION).jar: .testclasses
+ echo "Class-Path: ${JARPREFIX}/libdbus-java-$(VERSION).jar" > Manifest
+ (cd classes; $(JAR) -cfm ../$@ ../Manifest org/freedesktop/dbus/test/*.class)
+dbus-java-viewer-$(VERSION).jar: .viewerclasses
+ echo "Class-Path: ${JARPREFIX}/libdbus-java-$(VERSION).jar" > Manifest
+ (cd classes; $(JAR) -cfm ../$@ ../Manifest org/freedesktop/dbus/viewer/*.class)
+dbus-java-bin-$(VERSION).jar: .binclasses
+ echo "Class-Path: ${JARPREFIX}/libdbus-java-$(VERSION).jar" > Manifest
+ (cd classes; $(JAR) -cfm ../$@ ../Manifest org/freedesktop/dbus/bin/*.class)
+dbus.jar: libdbus-java-$(VERSION).jar
+ ln -sf $< $@
+dbus-bin.jar: dbus-java-bin-$(VERSION).jar
+ ln -sf $< $@
+dbus-viewer.jar: dbus-java-viewer-$(VERSION).jar
+ ln -sf $< $@
+
+jar: libdbus-java-$(VERSION).jar
+
+.doc:
+ mkdir -p doc
+ mkdir -p doc/dbus-java
+ touch .doc
+.win:
+ mkdir -p win
+ touch .win
+.bin:
+ mkdir -p bin
+ touch .bin
+.testbin:
+ mkdir -p testbin
+ touch .testbin
+doc/dbus-java.dvi: dbus-java.tex .doc
+ (cd doc; latex ../dbus-java.tex)
+ (cd doc; latex ../dbus-java.tex)
+ (cd doc; latex ../dbus-java.tex)
+doc/dbus-java.ps: doc/dbus-java.dvi .doc
+ (cd doc; dvips -o dbus-java.ps dbus-java.dvi)
+doc/dbus-java.pdf: doc/dbus-java.dvi .doc
+ (cd doc; pdflatex ../dbus-java.tex)
+doc/dbus-java/index.html: dbus-java.tex .doc
+ mkdir -p doc/dbus-java/
+ (cd doc/dbus-java; TEX4HTENV=/etc/tex4ht/tex4ht.env htlatex ../../dbus-java.tex "xhtml,2" "" "-cvalidate")
+ rm -f doc/dbus-java/*{4ct,4tc,aux,dvi,idv,lg,log,tmp,xref}
+ cp doc/dbus-java/dbus-java.html doc/dbus-java/index.html
+doc/api/index.html: $(SRCDIR)/*.java $(SRCDIR)/dbus/*.java .doc
+ $(JAVADOC) -quiet -author -link http://java.sun.com/j2se/1.5.0/docs/api/ -classpath $(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar -d doc/api $(SRCDIR)/*.java $(SRCDIR)/dbus/*.java $(SRCDIR)/dbus/types/*.java $(SRCDIR)/dbus/exceptions/*.java
+
+%.1: %.sgml
+ $(DOCBOOKTOMAN) $< > $@
+
+bin/%: %.sh .bin
+ sed 's,\%JARPATH\%,$(JARPREFIX),;s,\%JAVAUNIXJARPATH\%,$(JAVAUNIXJARDIR),;s,\%JAVAUNIXLIBPATH\%,$(JAVAUNIXLIBDIR),;s,\%VERSION\%,$(VERSION),;s,\%DEBUG\%,$(DEBUG),;s,\%JAVA\%,$(JAVA),' < $< > $@
+
+win/%.bat: %.bat .win
+ sed 's,\%WINJARPATH\%,$(JARPREFIX),;s,\%WINUNIXJARPATH\%,$(JAVAUNIXJARDIR),;s,\%VERSION\%,$(VERSION),;s,\%DEBUG\%,$(DEBUG),' < $< > $@
+
+testbin/%: %.sh .testbin libdbus-java-$(VERSION).jar dbus-java-bin-$(VERSION).jar dbus-bin.jar dbus.jar dbus-viewer.jar
+ sed 's,\%JARPATH\%,.,;s,\%JAVAUNIXJARPATH\%,$(JAVAUNIXJARDIR),;s,\%JAVAUNIXLIBPATH\%,$(JAVAUNIXLIBDIR),;s,\%VERSION\%,$(VERSION),;s,\%DEBUG\%,$(DEBUG),;s,\%JAVA\%,$(JAVA),' < $< > $@
+ chmod 755 $@
+
+testrun: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.test
+
+low-level-run: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.test_low_level
+
+cross-test-server: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.cross_test_server
+
+cross-test-client: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.cross_test_client
+
+peer-server: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.test_p2p_server
+
+peer-client: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.test_p2p_client
+
+two-part-server: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.two_part_test_server
+
+two-part-client: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.two_part_test_client
+
+profilerun: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-test-$(VERSION).jar org.freedesktop.dbus.test.profile $(PROFILE)
+
+viewer: libdbus-java-$(VERSION).jar dbus-java-viewer-$(VERSION).jar
+ $(JAVA) $(JFLAGS) $(CPFLAG) $(CLASSPATH):$(JAVAUNIXJARDIR)/unix.jar:$(JAVAUNIXJARDIR)/hexdump.jar:$(JAVAUNIXJARDIR)/debug-$(DEBUG).jar:libdbus-java-$(VERSION).jar:dbus-java-viewer-$(VERSION).jar org.freedesktop.dbus.viewer.DBusViewer
+
+#dbus-daemon --config-file=tmp-session.conf --print-pid --print-address=5 --fork >pid 5>address ; \
+
+low-level: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar testbin/DBusDaemon dbus.jar dbus-java-bin-$(VERSION).jar dbus-bin.jar
+ ( testbin/DBusDaemon --addressfile address --pidfile pid & \
+ sleep 1; \
+ export DBUS_SESSION_BUS_ADDRESS=$$(cat address) ;\
+ $(MAKE) DBUS_JAVA_FLOATS=true low-level-run ;\
+ kill $$(cat pid))
+
+checktcp: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar testbin/DBusDaemon dbus.jar dbus-java-bin-$(VERSION).jar dbus-bin.jar
+ ( PASS=false; \
+ testbin/DBusDaemon --tcp --addressfile address --pidfile pid 2> server.log&\
+ sleep 1; \
+ export DBUS_SESSION_BUS_ADDRESS=$$(cat address) ;\
+ dbus-monitor >> monitor.log &\
+ if $(MAKE) DBUS_JAVA_FLOATS=true DEBUG=$(DEBUG) testrun 2>&1 | tee client.log; then export PASS=true; fi ; \
+ kill $$(cat pid) ; \
+ if [ "$$PASS" = "true" ]; then exit 0; else exit 1; fi )
+
+
+check: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar testbin/DBusDaemon dbus.jar dbus-java-bin-$(VERSION).jar dbus-bin.jar
+ ( PASS=false; \
+ testbin/DBusDaemon --addressfile address --pidfile pid 2> server.log&\
+ sleep 1; \
+ export DBUS_SESSION_BUS_ADDRESS=$$(cat address) ;\
+ dbus-monitor >> monitor.log &\
+ if $(MAKE) DBUS_JAVA_FLOATS=true DEBUG=$(DEBUG) testrun 2>&1 | tee client.log; then export PASS=true; fi ; \
+ kill $$(cat pid) ; \
+ if [ "$$PASS" = "true" ]; then exit 0; else exit 1; fi )
+
+cross-test-compile: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+
+internal-cross-test: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar testbin/DBusDaemon dbus.jar dbus-java-bin-$(VERSION).jar dbus-bin.jar
+ ( testbin/DBusDaemon --addressfile address --pidfile pid &\
+ sleep 1; \
+ export DBUS_SESSION_BUS_ADDRESS=$$(cat address) ;\
+ $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s cross-test-server | tee server.log &\
+ sleep 1;\
+ $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s cross-test-client | tee client1.log &\
+ $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s cross-test-client | tee client2.log ;\
+ kill $$(cat pid) ; )
+
+peer-to-peer-test: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar
+ ( $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s peer-server 2>&1 | tee server.log &\
+ sleep 1;\
+ $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s peer-client 2>&1 | tee client.log )
+
+two-part-test: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar testbin/DBusDaemon dbus.jar dbus-java-bin-$(VERSION).jar dbus-bin.jar
+ ( testbin/DBusDaemon --addressfile address --pidfile pid &\
+ sleep 1; \
+ export DBUS_SESSION_BUS_ADDRESS=$$(cat address) ;\
+ $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s two-part-server | tee server.log &\
+ sleep 1;\
+ $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true -s two-part-client | tee client.log ;\
+ kill $$(cat pid) ; )
+
+profile: libdbus-java-$(VERSION).jar dbus-java-test-$(VERSION).jar testbin/DBusDaemon dbus.jar dbus-java-bin-$(VERSION).jar dbus-bin.jar
+ ( PASS=false; \
+ testbin/DBusDaemon --addressfile address --pidfile pid &\
+ sleep 1; \
+ export DBUS_SESSION_BUS_ADDRESS=$$(cat address) ;\
+ if $(MAKE) DEBUG=$(DEBUG) DBUS_JAVA_FLOATS=true profilerun ; then export PASS=true; fi ; \
+ kill $$(cat pid) ; \
+ if [ "$$PASS" = "true" ]; then exit 0; else exit 1; fi )
+
+uninstall:
+ rm -f $(DESTDIR)$(JARPREFIX)/dbus.jar $(DESTDIR)$(JARPREFIX)/dbus-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-viewer.jar $(DESTDIR)$(JARPREFIX)/dbus-viewer-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-bin.jar $(DESTDIR)$(JARPREFIX)/dbus-bin-$(VERSION).jar
+ rm -rf $(DESTDIR)$(DOCPREFIX)
+ rm -f $(DESTDIR)$(MANPREFIX)/CreateInterface.1 $(DESTDIR)$(MANPREFIX)/ListDBus.1 $(DESTDIR)$(MANPREFIX)/DBusViewer.1 $(DESTDIR)$(MANPREFIX)/DBusDaemon.1 $(DESTDIR)$(MANPREFIX)/DBusCall.1
+ rm -f $(DESTDIR)$(BINPREFIX)/CreateInterface $(DESTDIR)$(BINPREFIX)/ListDBus $(DESTDIR)$(BINPREFIX)/DBusViewer $(DESTDIR)$(BINPREFIX)/DBusDaemon $(DESTDIR)$(BINPREFIX)/DBusCall
+
+install: install-bin install-man install-doc
+
+install-bin: dbus-java-viewer-$(VERSION).jar libdbus-java-$(VERSION).jar bin/CreateInterface bin/ListDBus bin/DBusViewer bin/DBusDaemon dbus-java-bin-$(VERSION).jar bin/DBusCall
+ install -d $(DESTDIR)$(JARPREFIX)
+ install -m 644 libdbus-java-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-$(VERSION).jar
+ install -m 644 dbus-java-viewer-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-viewer-$(VERSION).jar
+ install -m 644 dbus-java-bin-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-bin-$(VERSION).jar
+ ln -sf dbus-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus.jar
+ ln -sf dbus-viewer-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-viewer.jar
+ ln -sf dbus-bin-$(VERSION).jar $(DESTDIR)$(JARPREFIX)/dbus-bin.jar
+ install -d $(DESTDIR)$(BINPREFIX)
+ install bin/DBusViewer $(DESTDIR)$(BINPREFIX)
+ install bin/DBusCall $(DESTDIR)$(BINPREFIX)
+ install bin/CreateInterface $(DESTDIR)$(BINPREFIX)
+ install bin/ListDBus $(DESTDIR)$(BINPREFIX)
+ install bin/DBusDaemon $(DESTDIR)$(BINPREFIX)
+
+install-man: CreateInterface.1 ListDBus.1 DBusDaemon.1 DBusViewer.1 changelog AUTHORS COPYING README INSTALL DBusCall.1
+ install -d $(DESTDIR)$(DOCPREFIX)
+ install -m 644 changelog $(DESTDIR)$(DOCPREFIX)
+ install -m 644 COPYING $(DESTDIR)$(DOCPREFIX)
+ install -m 644 AUTHORS $(DESTDIR)$(DOCPREFIX)
+ install -m 644 README $(DESTDIR)$(DOCPREFIX)
+ install -m 644 INSTALL $(DESTDIR)$(DOCPREFIX)
+ install -d $(DESTDIR)$(MANPREFIX)
+ install -m 644 CreateInterface.1 $(DESTDIR)$(MANPREFIX)/CreateInterface.1
+ install -m 644 ListDBus.1 $(DESTDIR)$(MANPREFIX)/ListDBus.1
+ install -m 644 DBusDaemon.1 $(DESTDIR)$(MANPREFIX)/DBusDaemon.1
+ install -m 644 DBusViewer.1 $(DESTDIR)$(MANPREFIX)/DBusViewer.1
+ install -m 644 DBusCall.1 $(DESTDIR)$(MANPREFIX)/DBusCall.1
+
+install-doc: doc
+ install -d $(DESTDIR)$(DOCPREFIX)
+ install -m 644 doc/dbus-java.dvi $(DESTDIR)$(DOCPREFIX)
+ install -m 644 doc/dbus-java.ps $(DESTDIR)$(DOCPREFIX)
+ install -m 644 doc/dbus-java.pdf $(DESTDIR)$(DOCPREFIX)
+ install -d $(DESTDIR)$(DOCPREFIX)/dbus-java
+ install -m 644 doc/dbus-java/*.html $(DESTDIR)$(DOCPREFIX)/dbus-java
+ install -m 644 doc/dbus-java/*.css $(DESTDIR)$(DOCPREFIX)/dbus-java
+ install -d $(DESTDIR)$(JAVADOCPREFIX)/api
+ cp -a doc/api/* $(DESTDIR)$(JAVADOCPREFIX)/api
+
+dist: .dist
+.dist: $(DISTFILES)
+ mkdir -p dbus-java-$(VERSION)
+ cp -fa $^ dbus-java-$(VERSION)
+ touch .dist
+tar: dbus-java-$(VERSION).tar.gz
+
+distclean:
+ rm -rf dbus-java-$(VERSION)
+ rm -rf dbus-java-$(VERSION).tar.gz
+ rm -f .dist
+
+libdbus-java-$(VERSION): .dist
+
+dbus-java-$(VERSION).tar.gz: .dist
+ tar zcf $@ dbus-java-$(VERSION)
+dbus-java-$(VERSION).zip: .dist
+ zip -r $@ dbus-java-$(VERSION)/
+
+dbus-java-$(RELEASEVERSION).tar.gz: $(DISTFILES)
+ mkdir -p dbus-java-$(RELEASEVERSION)/
+ cp -fa $^ dbus-java-$(RELEASEVERSION)/
+ tar zcf $@ dbus-java-$(RELEASEVERSION)
+
+dbus-java-win-$(VERSION).zip: dbus-java-bin-$(VERSION).jar libdbus-java-$(VERSION).jar win/CreateInterface.bat win/DBusDaemon.bat win/DBusViewer.bat win/ListDBus.bat $(JAVAUNIXJARDIR)/hexdump.jar $(JAVAUNIXJARDIR)/debug-$(DEBUG).jar dbus-java-viewer-$(VERSION).jar win/DBusCall.bat
+ mkdir -p dbus-java-win-$(VERSION)
+ cp -fa dbus-java-bin-$(VERSION).jar dbus-java-win-$(VERSION)/dbus-bin.jar
+ cp -fa dbus-java-viewer-$(VERSION).jar dbus-java-win-$(VERSION)/dbus-viewer.jar
+ cp -fa libdbus-java-$(VERSION).jar dbus-java-win-$(VERSION)/dbus.jar
+ cp -fa win/* dbus-java-win-$(VERSION)/
+ cp -faL $(JAVAUNIXJARDIR)/hexdump.jar dbus-java-win-$(VERSION)/
+ cp -faL $(JAVAUNIXJARDIR)/debug-$(DEBUG).jar dbus-java-win-$(VERSION)/
+ zip -r $@ dbus-java-win-$(VERSION)/
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/README b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/README
new file mode 100755
index 0000000..9c88f8c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/README
@@ -0,0 +1,32 @@
+D-Bus Java README
+-----------------
+
+Compilation and installation is described in the INSTALL file.
+
+This will install two jar files, three binaries and some documentation in the
+form of an HTML/PDF guide to writing D-Bus Java programs, JavaDoc API for the
+library and man pages for the supplied programs. Read the documentation, it's
+there for a reason.
+
+The installed programs are documented in their respective man pages.
+
+CreateInterface is a tool for creating interface stubs for D-Bus programs. It
+will connect to services running on the bus and introspect on them to find
+their API. This will then be written as Java interface definitions suitable for
+importing into your program. A file containing the introspection data can be
+used instead.
+
+ListDBus lists the names currently connected to a bus.
+
+DBusViewer is a graphical tool which combines the two tools. It will list the
+names on a bus and allow you to introspect on them and save the result as Java
+interface files. This currently only introspects on the root object, however.
+
+To run a Java program using D-Bus you need to have the libdbus-java,
+libunix-java and libdebug jar files in your classpath and the libunix-java
+shared library in your library path. With the default install paths you may
+have to do something like:
+
+java -cp /usr/local/share/java/dbus.jar:/usr/local/share/java/unix.jar:/usr/local/share/java/debug-disable.jar -Djava.library.path=/usr/local/lib/jni
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/changelog b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/changelog
new file mode 100755
index 0000000..f3675f7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/changelog
@@ -0,0 +1,342 @@
+Version 2.7:
+
+ * Fix bug in disconnected signal/exception handling (Spotted by Serkan Kaba
+ <serkan_kaba -at- yahoo -dot- com>)
+ * Fix bug in empty signals (Spotted by Daniel Wagner <Daniel -dot- Wagner
+ -at- bmw-carit -dot- de>)
+ * Fix bug in maps containing complex types (Spotted by Tim Court <tim -dot-
+ court -at- venture3systems -dot- com>)
+ * Fix signal handling bug in DBusDaemon (Spotted by Markus Gaebelein
+ <Markus -dot- Gaebelein -at- fiducia -dot- de>)
+ * Make MessageReader/Writer use Buffered streams to try and improve
+ performance
+ * Support reading session bus address from file in $HOME
+ * Fix TCP cookie timestamp problems (Report/fix from Johannes Felten
+ <johannesfelten -at- googlemail -dot- com>)
+ * Add handleError() method to callbacks (breaks backwards source compatibility)
+
+Version 2.6:
+
+ * Add DBusConnection.releaseBusName API
+ * Add DBusConnection.PeerSet for tracking peer lifetimes
+ * Fix bug where DBusDaemon never sends NameOwnerChanged/NameLost
+ signals
+ * Patches from Omair Majid <omajid -at- redhat -dot- com> to fix
+ DBusCall manpage and allow alternative docbook-to-man implementations.
+ * Fix dependency on unix.jar even in tcp mode
+ * Fix Path/ObjectPath cast issues (reported by Greg DeAngelis
+ <gdeangel -at- gmail -dot- com>)
+ * Fix behavior when disconnected (spotted by Christopher
+ Armstrong <carmstrong -at- fastmail -dot- com -dot- au>)
+
+Version 2.5.1:
+
+ * Fix for possible NPex in DBusDaemon
+ * Add hexdump.jar to Class-Path for libdbus-java.jar
+ * Add GetAll to properties interface (Patch from
+ Sveinung Kvilhaugsvik <sveinung84 -at- users -dot- sourceforge -dot- net>)
+ * Make signals with renamed interfaces and member names work
+ if they are explicitly listened for (Partially fixes: #18257).
+ Also make the error reporting better when it doesn't work.
+ * Add test for signal with renamed interface.
+ * Fix clearing of string buffer during marshalling (Fixes: #17362)
+ * Fix array marshalling bug (Fixes: #13291)
+
+Version 2.5:
+
+ * Patch from Omair Majid <omajid -at- redhat -dot- com> to
+ have seperate javadoc installation directory
+ * Patch from Omair Majid <omajid -at- redhat -dot- com> to
+ have make all build the manpages.
+ * ... but as serkan_kaba requested, also provide a bin target which doesn't
+ * Fix returning DBusSerializables (Spotted by Johannes Felten
+ <johannesfelten -at- googlemail -dot- com>)
+ * Fix CreateInterface (Spotted by Tom Walsh <walshtc -at- gmail -dot- com>)
+ * Fix serial assignment race condition (Spotted by Ed Wei
+ <Edward.Wei.03 -at- alum -dot- dartmouth -dot- org>)
+ * Fix dynamic introspection of objects which export the same
+ interface multiple times (Patch from Sveinung Kvilhaugsvik
+ <sveinung84 -at- users -dot- sourceforge -dot- net>)
+ * Fix CreateInterface to mangle names which are reserved words
+ (Spotted by Sveinung Kvilhaugsvik <sveinung84 -at- users -dot-
+ sourceforge -dot- net>)
+ * Fix DBusDaemon to not crash on bad tcp connections (Patch from
+ Hugues Moreau <hmoreau -at- gmail -dot- com>)
+ * Relicence to LGPL or AFL.
+
+Version 2.4:
+
+ * Add DBusMemberName to force method names or signal names to something
+ other than the Java name (suggested by Viktar Vauchkevich <vctr -at-
+ yandex -dot- ru>)
+ * Don't respond to Introspect/Ping except on the right interface
+ (pointed out by Serkan Kaba <serkan_kaba -at- yahoo -dot- com>)
+ * Automatically unexport objects which go out of scope in the
+ parent program (don't hold a strong reference). This is now
+ optional and not the default for 1. sanity and 2. a possible
+ bug in the WeakReference workings in Sun.
+ * Add fallback objects---a single object can be called for any
+ object under a given path prefix.
+ * Add support for localization of strings via gettext.
+ * Throw a nicer error when signals are not declared as part of an
+ interface.
+ * .viewerclasses needs to depend on .binclasses
+ * Use libunixsocket-java support for writing multiple byte arrays at
+ once to write message vectors
+ * check that the unix-socket-received uid matches for connections to
+ DBusDaemon
+ * Update to use libunixsocket-java syntax which works on BSDs
+ * Fix utf-8 characters used in test to actually be the same character...
+ * Add code to preallocate the buffer array array (Suggested by Adam
+ Bennett <cruxic -at- gmail -dot- com>)
+ * Fix warnings when building with gcj (fixes a bug in Peer handling and
+ DBusSerializable handling)
+
+Version 2.3.2:
+
+ * Fix empty array/map bug (reported by Jan Kümmel
+ <freedesktop -at- snorc -dot- org>)
+ * Add licence headers to files missing them
+ * Fix minor bug in AbstractConnection.java (reported by Frank Benoit
+ <benoit -at- tionex -dot- de>)
+ * Make Marshalling more verbose and descriptive in the presence of
+ mismatched parameter lists (suggested by Anibal Sanchez
+ <anibal -dot- sanchez -at- sunya -dot- com -dot- ar>)
+ * Fix struct type parsing error (spotted by Gunnar Aastrand Grimnes
+ <gunnar -dot- grimnes -at- dfki -dot- de> and Frank Benoit
+ <keinfarbton -at- googlemail -dot- com>)
+ * Fix parsing of serializable classes
+ * Anonymous SASL (needs testing)
+
+Version 2.3.1:
+
+ * Fix regression in normal array handling (spotted by Anibal Sanchez
+ <anibal -dot- sanchez -at- sunya -dot- com -dot- ar>)
+
+Version 2.3:
+
+ * Apply recursive-path patch for DBusViewer (written by Zsombor Gegesy
+ <gzsombor -at- gmail -dot- com>)
+ * Add Class-Path to jar manifests
+ * Update documentation for nested classes
+ * Documentation build fix
+ * Add test for arrays-of-structs
+ * Fix arrays-of-structs bug (spotted by Daniel Machado
+ <cdanielmachado -at- gmail -dot- com>)
+ * Fix bashism in Makefile
+ * add DBusInterfaceName annotation to override the Java interface name as
+ the name exported on the bus.
+
+Version 2.2:
+
+ * Fix cross-test to pass.
+ * Fix DBusViewer.sh *again* (Spotted by Serkan Kaba <serkan_kaba
+ -at- yahoo -dot- com>)
+ * Add DBusCall
+ * fix CreateInterface to put DBusException in the right package in import
+ statements. Spotted by Steve Crane <Steve -dot- Crane -at- rococosoft
+ -dot- com>
+ * Update Cross-test to new spec
+ * Change casting and return types for get{Peer,}RemoteObject calls to
+ use generics so you don't need explicit casts on return types.
+ Suggested by Philippe Marschall <philippe -dot- marschall -at- gmail
+ -dot- com>.
+ * Test with multiple requested (same actual) connection
+ * Add async-with-callback API.
+
+Version 2.1:
+
+ * make scripts with $JAVA
+ * fix DBusViewer.sh (Spotted by Luigi Paioro <luigi -at- lambrate -dot-
+ inaf -dot- it>
+
+Version 2.0:
+
+ * Remove libdbus-1 dependency and talk the wire protocol directly
+ * Add dependency on http://www.matthew.ath.cx/projects/java/ unix, debug
+ and hexdump libraries
+ * API changes:
+ * Exceptions (including DBusException and DBusExecutionException) moved
+ to the org.freedesktop.dbus.exceptions package.
+ * Convert/deserialize and dbus<->java type conversion code moved from
+ org.freedesktop.dbus.DBusConnection to org.freedesktop.dbus.Marshalling.
+ * Types moved to the org.freedesktop.dbus.types package.
+ * All message metadata methods have been moved to the superclass and
+ getObjectPath() has been renamed to getPath().
+ * Deprecated method registerService has been removed.
+ * getUniqueName() and getNames() methods added to get the bus names
+ associated with this connection.
+ * Access to the low-level API added.
+ * Change all documentation to refer to 'implementation' not 'binding'
+ * Add peer 2 peer support with DirectConnection class
+ * add peer to peer test
+ * split some code from DBusConnection into common super-class
+ AbstractConnection
+ * Support float ('f') type with tests
+ * Degrade floats to doubles when DBUS_JAVA_FLOATS is not set
+ * add DBus.Peer interface to standard introspection data
+ * Document peer to peer and low level.
+ * Fix TCP and SHA-1 auth
+ * fix wrapper scripts with new depends
+ * add a DBusDaemon
+ * Make daemon multithreaded; performance improvements
+ * Add sending thread to library, move to blocking IO
+ * Ensure key directory exists when serving cookie auth
+ * Add TCP support to daemon
+ * Remove dependency on dbus-daemon for tests
+ * add --version support for other programs
+ * Add windows wrapper scripts
+ * Test working on Windows
+ * Add makefile target to build zip file for windows
+ * Add windows compile script
+ * DBusDaemon can generate random TCP ports to listen on
+
+Version 1.13:
+
+ * add AccessDenied signal
+ * fix deadlock issue when sending objectpaths in signals, spotted by Mathis
+ * add Path type which can be used for non-auto OBJECT_PATH handling, spotted by Mathis
+ * fix some freebsd build issues:
+ * remove explicit recursive make calls
+ * parameterize /usr/lib as DBUSLIBDIR
+ Spotted by Roberto Francisco Arroyo Moreno <robfram -at- ugr -dot- es>
+ * rejig build system to replace variables in wrapper in make stage and
+ use DESTDIR properly, hence removing the RUNPREFIX stuff.
+ * add checks and documentation for DBusInterfaces not being in a package.
+ Spotted by Henrik Petander <henrik -dot- petander -at- iki -dot- fi>
+
+Version 1.12:
+
+ * fix internal-cross-test bugs and increase error verbosity
+ * add org.freedesktop.DBus.Error.NoReply, change to that from my own
+ * add -pedantic -std=c99 flags to GCC
+ * remove supplied Hal classes as they are out of date
+ * change to using tex4ht rather than latex2html
+
+Version 1.11:
+
+ * fix script replacement directories to be different to install directories
+ * split install-doc and install-man to allow easy split -doc package
+
+Version 1.10:
+
+ * fix URLs to point to fdo
+ * check for signal path validity in Java
+ * fix NameAcquired spelling
+ * check array lengths and name lengths
+ * support method calls with empty interfaces
+ * support for non-activating remote objects
+ * remove errant debug statemant left in 1.9
+ * Fix List<List<Integer>> bug spotted by Remi Emonet
+ <remi.emonet -at- inrialpes -dot- fr>
+ * Fix OBJECT_PATH handling; bug spotted by Remi Emonet
+ <remi.emonet -at- inrialpes -dot- fr>
+ * added getRemoteObject and getPeerRemoteObject methods with
+ introspection support to guess interfaces.
+ * changed introspection to recurse over the exported object tree
+ and show sub-objects.
+ * compare maps unordered in tests; spotted by Simon McVittie
+ <simon -dot- mcvittie -at- collabora -dot- co -dot- uk>
+ * implement UInt64 with BigInteger to allow full-range UInt64s
+ * fix $ in introspection data for nested interfaces
+ * fix the required dbus version in the docs
+ * can now send DBUS_TYPE_SIGNATURE as Type[]
+ * rewrite Variant handling to work with complex types
+ * add $JAVA_HOME/include and $JAVA_HOME/include/linux to CFLAGS
+ (Fix from Joshua Nichols <nichoj -at- gentoo -dot- org>)
+ * remove unneccessary build warnings
+ (Fix from Joshua Nichols <nichoj -at- gentoo -dot- org>)
+ * seperate install and install-doc targets
+ (Suggested by Ralf Kistner <ralf.kistner -at- gmail -dot- com>)
+ * add -fno-stack-protector flag (only for gcc 4.1 or later)
+ (Suggested by Ralf Kistner <ralf.kistner -at- gmail -dot- com>)
+ * Revamp tuples
+ * Build without DBUS_API_SUBJECT_TO_CHANGE set
+ * fix LDFLAGS to work properly with --as-needed
+ (Suggested by TFKyle)
+ * Update CreateInterface to new API
+ * More speed fixes with type introspection
+ * Add README and INSTALL files
+ * Change wrappers to point to installed locations
+
+Version 1.9:
+
+ * Map and List handling optimisations
+ * Struct optimisations
+ * Canonicalise D-Bus spelling in documentation
+ * Update documentation
+ * Implement cross-bindings test suite
+ * add getPeerRemoteObject method
+ * add addSigHandler methods which filter on sender and path
+ * Signal handling optimisations
+ * deprecating service in favour of bus name. Deprecated registerService in
+ favour of requestBusName
+
+Version 1.8:
+
+ * stop dvips printing on wierd systems
+ * Doc patches from Dick Hollenbeck <dick -at- softplc -dot- com>
+ * reduce TIMEOUT to 1ms and check for outbound messages in the JNI; reduces
+ RTT from 100ms to ~1ms
+ * Remove two java collections which were doing a lot of allocation and
+ deallocation and replace with data structures based on arrays.
+ * add removeSigHandler method
+ * add profiling application
+ * handle incoming & outgoing native array types natively (biiiig savings
+ here)
+
+Version 1.7:
+
+ * compiles with -Xlint:all
+ * fixed struct/nested struct creation
+ * compile with -Os -O -Wall -Werror -g:none and strip
+ * allow overloading methods by argument type
+ * getJavaType bugfix from Antoine Perdaens
+ * nulls in Variant fix from Antoine Perdaens
+ * Variant parameter checking in <init>
+ * CreateInterface now maintains order of parameters to signals
+
+Version 1.6:
+
+ * Custom serializable objects
+ * Thread pool model
+ * CreateInterfaces updated to handle new Structs, annotations, Signals etc
+
+Version 1.5:
+
+ * Remove static library dependency
+
+Version 1.4:
+
+ * provide call info to called methods
+ * check for disconnections and throw
+ * complete rewrite of Structs
+ * add message send/receive debugging
+
+Version 1.3:
+
+ * Annotation and throws support
+ * proper noreply support
+ * asynchronous method call support
+ * strip InternalErrorMessage reference from JNI
+
+Version 1.2:
+
+ * Make sure pending messages are sent on disconnect
+ * Import of viewer application (Peter Cox <petercox -at- gawab -dot- com>)
+ * Make CreateInterface usable in other apps.
+ * Import extra functions that weren't documented into DBus.java
+ * Implement throwing and catching of specific exception types
+
+Version 1.1:
+
+ * Fix connections to multiple busses
+ * Allow connections by bus address
+ * Stricter error checking in looking up connection object
+
+Version 1.0:
+
+ * 1.x is a java 1.5 version, 0.x is a java 1.4 version
+ * introspect on the root object
+ * support for nested nodes in CreateInterface
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/compile.bat b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/compile.bat
new file mode 100755
index 0000000..92099f0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/compile.bat
@@ -0,0 +1,17 @@
+@echo off
+setlocal
+REM set to true for debug builds
+set debug=disable
+REM set to empty for debug builds
+set jcflags=-O -g:none -Xlint:all
+REM set to the location you installed unix.jar, debug-*.jar and hexdump.jar
+set jarpath=
+REM set to the Java installation location
+REM set JAVA_HOME=
+
+%JAVA_HOME%\bin\javac -cp .;%jarpath%unix.jar;%jarpath%debug-%debug%.jar;%jarpath%hexdump.jar;%CLASSPATH% %jcflags% org\freedesktop\*.java org\freedesktop\dbus\*.java org\freedesktop\dbus\bin\*.java org\freedesktop\dbus\exceptions\*.java org\freedesktop\dbus\types\*.java org\freedesktop\dbus\viewer\*.java
+%JAVA_HOME%\bin\jar -cf dbus.jar org\freedesktop\*.class org\freedesktop\dbus\*.class org\freedesktop\dbus\exceptions\*.class org\freedesktop\dbus\types\*.class
+%JAVA_HOME%\bin\jar -cf dbus-bin.jar org\freedesktop\dbus\bin\*.class
+%JAVA_HOME%\bin\jar -cf dbus-viewer.jar org\freedesktop\dbus\viewer\*.class
+
+endlocal
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/dbus-java.tex b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/dbus-java.tex
new file mode 100755
index 0000000..980a77b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/dbus-java.tex
@@ -0,0 +1,1266 @@
+\documentclass[a4paper,12pt]{article}
+
+%
+% D-Bus Java Implementation
+% Copyright (c) 2005-2006 Matthew Johnson
+%
+% This program is free software; you can redistribute it and/or modify it
+% under the terms of either the GNU Lesser General Public License Version 2 or the
+% Academic Free Licence Version 2.1.
+%
+% Full licence texts are included in the COPYING file with this program.
+%
+
+\usepackage{fullpage}
+\usepackage{ifthen}
+
+\ifx\pdfoutput\undefined
+ \usepackage{hyperref}
+\else
+ \usepackage[
+ bookmarks,
+ bookmarksopen,
+ bookmarksnumbered=false,
+ colorlinks,
+ pdfpagemode=None,
+ urlcolor=black,
+ citecolor=black,
+ linkcolor=black,
+ pagecolor=black,
+ plainpages=false,
+ pdfpagelabels,
+ ]{hyperref}
+\fi
+
+\author{Matthew Johnson\\dbus@matthew.ath.cx}
+\title{D-Bus programming in Java 1.5}
+
+\begin{document}
+
+\def\javadocroot/{http://dbus.freedesktop.org/doc/dbus-java/api/}
+
+\maketitle
+
+\tableofcontents
+\listoffigures
+\listoftables
+
+\section{Introduction}
+
+This document describes how to use the Java implementation of D-Bus. D-Bus is
+an IPC mechanism which at a low level uses message passing over Unix Sockets or
+IP. D-Bus models its messages as either function calls on remote objects, or
+signals emitted from them.
+
+Java is an object-oriented language and this implementation attempts to match
+the D-Bus IPC model to the Java object model. The implementation also make
+heavy use of threads and exceptions. The programmer should be careful to take
+care of synchronisation issues in their code. All method calls by remote
+programs on exported objects and all signal handlers are run in new threads.
+Any calls on remote objects may throw {\tt DBusExecutionException}, which is a
+runtime exception and so the compiler will not remind you to handle it.
+
+The Java D-Bus API is also documented in the JavaDoc\footnote{\url{\javadocroot/}},
+D-Bus is described in the
+specification\footnote{http://dbus.freedesktop.org/doc/dbus-specification.html}
+and the API documentation\footnote{http://dbus.freedesktop.org/doc/api/html/}.
+
+\subsection{Protocol Implementation}
+
+This library is a native Java implementation of the D-Bus protocol and not
+a wrapper around the C reference implementation.
+
+\subsection{Dependencies}
+
+This library requires Java 1.5-compatible VM and compiler (either Sun, or
+ecj+jamvm with classpath-generics newer than 0.19) and the unix socket, debug
+and hexdump libraries from \url{http://www.matthew.ath.cx/projects/java/}.
+
+\subsection{D-Bus Terminology}
+
+D-Bus has several notions which are exposed to the users of the Java
+implementation.
+
+\subsubsection{Bus Names}
+
+Programs on the bus are issued a unique identifier by the bus. This
+is guaranteed to be unique within one run of the bus, but is
+assigned sequentially to each new connection.
+
+There are also so called well-known bus names which a device can
+request on the bus. These are of the form {\em ``org.freedesktop.DBus''},
+and any program can request them if they are not already owned.
+
+\subsubsection{Interfaces}
+
+All method calls and signals are specified using an interface,
+similar to those in Java. When executing a method or sending a
+signal you specify the interface the method belongs to. These are of
+the form {\em ``org.freedesktop.DBus''}.
+
+\subsubsection{Object Paths}
+
+A program may expose more than one object which implements an
+interface. Object paths of the form {\em ``/org/freedesktop/DBus''}
+are used to distinguish objects.
+
+\subsubsection{Member Names}
+
+Methods and Signals have names which identify them within an
+interface. D-Bus does not support method overloading, only one
+method or signal should exist with each name.
+
+\subsubsection{Errors}
+
+A reply to any message may be an error condition. In which case you reply with
+an error message which has a name of the form {\em
+ ``org.freedesktop.DBus.Error.ServiceUnknown''}.
+
+\section{DBusConnection}
+
+The {\tt
+DBusConnection\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusConnection.html}}}
+class provides methods for connecting to the bus, exporting objects,
+sending signals and getting references to remote objects.
+
+{\tt DBusConnection} is a singleton class, multiple calls to {\tt
+getConnection} will return the same bus connection.
+
+\begin{verbatim}
+conn = DBusConnection.getConnection(DBusConnection.SESSION);
+\end{verbatim}
+
+This creates a connection to the session bus, or returns the
+existing connection.
+
+\begin{verbatim}
+conn.addSigHandler(TestSignalInterface.TestSignal.class,
+ new SignalHandler());
+\end{verbatim}
+
+This sets up a signal handler for the given signal type.
+SignalHandler.handle will be called in a new thread with an instance
+of TestSignalInterface.TestSignal when that signal is recieved.
+
+\begin{verbatim}
+conn.sendSignal(new TestSignalInterface.TestSignal(
+ "/foo/bar/com/Wibble",
+ "Bar",
+ new UInt32(42)));
+\end{verbatim}
+
+This sends a signal of type {\tt TestSignalInterface.TestSignal},
+from the object {\em ``/foo/bar/com/Wibble''} with the arguments {\em
+``Bar''} and {\tt UInt32(42)}.
+
+\begin{verbatim}
+conn.exportObject("/Test", new testclass());
+\end{verbatim}
+
+This exports the {\tt testclass} object on the path {\em ``/Test''}
+
+\begin{verbatim}
+Introspectable intro = (Introspectable) conn.getRemoteObject(
+ "foo.bar.Test", "/Test",
+ Introspectable.class);
+\end{verbatim}
+
+This gets a reference to the {\em ``/Test''} object on the process with the
+name {\em ``foo.bar.Test''} . The object implements the {\tt Introspectable}
+interface, and calls may be made to methods in that interface as if it was a
+local object.
+
+\begin{verbatim}
+String data = intro.Introspect();
+\end{verbatim}
+
+The Runtime Exception {\tt DBusExecutionException} may be thrown
+by any remote method if any part of the execution fails.
+
+\subsection{Asynchronous Calls}
+
+Calling a method on a remote object is synchronous, that is the thread will
+block until it has a reply. If you do not want to block you can use an
+asynchronous call.
+
+There are two ways of making asynchronous calls. You can either call the {\tt
+callMethodAsync} function on the connection object, in which case you are
+returned a {\tt
+DBusAsyncReply\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusAsyncReply.html}}}
+object which can be used to check for a reply and get the return value. This
+is demonstrated in figure \ref{fig:async}.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+DBusAsyncReply<Boolean> stuffreply =
+ conn.callMethodAsync(remoteObject, "methodname", arg1, arg2);
+...
+if (stuffreply.hasReply()) {
+ Boolean b = stuffreply.getReply();
+ ...
+}
+\end{verbatim}
+\end{center}
+\caption{Calling an asynchronous method}
+\label{fig:async}
+\end{figure}
+
+Alternatively, you can register a callback with the connection using the {\tt
+callWithCallback} function on the connection object. In this case, your
+callback class (implementing the {\tt
+CallbackHandler\footnote{\url{\javadocroot/org/freedesktop/dbus/CallbackHandler.html}}}
+interface will be called when the reply is returned from the bus.
+
+\section{DBusInterface}
+
+To call methods or expose methods on D-Bus you need to define them with their
+exact signature in a Java interface. The full name of this interface must be
+the same as the D-Bus interface they represent. In addition, D-Bus interface
+names must contain at least one period. This means that DBusInterfaces cannot
+be declared without being in a package.
+
+For example, if I want to expose methods on the interface {\em
+``org.freedesktop.DBus''} I would define a Java interface in the package {\tt
+org.freedesktop} called {\tt DBus}. This would be in the file {\tt
+org/freedesktop/DBus.java} as normal. Any object wanting to export these
+methods would implement {\tt org.freedesktop.DBus}.
+
+Any interfaces which can be exported over D-Bus must extend {\tt
+DBusInterface\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusInterface.html}}}.
+A class may implement more than one exportable interface, all public methods
+declared in an interface which extend {\tt DBusInterface} will be exported.
+
+A sample interface definition is given in figure~\ref{fig:interface}, and a
+class which implements it in figure~\ref{fig:class}. More complicated
+definitions can be seen in the test
+classes\footnote{\url{\javadocroot/org/freedesktop/dbus/test/TestRemoteInterface2.java}
+\url{\javadocroot/org/freedesktop/dbus/test/TestRemoteInterface.java}}.
+
+All method calls by other programs on objects you export over D-Bus
+are executed in their own thread.
+
+{\tt DBusInterface} itself specifies one method \verb&boolean isRemote()&. If
+this is executed on a remote object it will always return true. Local objects
+implementing a remote interface must implement this method to return false.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package org.freedesktop;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.DBusInterface;
+
+public interface DBus extends DBusInterface
+{
+ public boolean NameHasOwner(String name);
+ public UInt32 RequestName(String name, UInt32 flags);
+}
+\end{verbatim}
+\end{center}
+\caption{An interface which exposes two methods}
+\label{fig:interface}
+\end{figure}
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package my.real.implementation;
+import org.freedesktop.dbus.DBus;
+import org.freedesktop.dbus.UInt32;
+
+public class DBusImpl implements DBus
+{
+ Vector<String> names;
+ public boolean NameHasOwner(String name)
+ {
+ if (names.contains(name)) return true;
+ else return false;
+ }
+ public UInt32 RequestName(String name, UInt32 flags)
+ {
+ names.add(name);
+ return new UInt32(0);
+ }
+ public boolean isRemote() { return false; }
+}
+\end{verbatim}
+\end{center}
+\caption{A class providing a real implementation which can be exported}
+\label{fig:class}
+\end{figure}
+
+\subsection{Interface name overriding}
+
+It is highly recommended that the Java interface and package name match the
+D-Bus interface. However, if, for some reason, this is not possible then the
+name can be overridden by use of an Annotation.
+
+To override the Java interface name you should add an annotation to the
+interface of {\tt
+DBusInterfaceName\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusInterfaceName.html}}}
+with a value of the desired D-Bus interface name. An example of this can be seen in
+figure \ref{fig:interfacename}.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package my.package;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusInterfaceName;
+
+@DBusInterfaceName("my.otherpackage.Remote")
+public interface Remote extends DBusInterface
+{
+ ...
+}
+\end{verbatim}
+\end{center}
+\caption{Overloading the name of an interface.}
+\label{fig:interfacename}
+\end{figure}
+
+If you have signals which are declared in a renamed interface (see below for
+signals) then when adding a signal handler you {\em must} use an {\tt
+addSigHandler} method which takes a class object corresponding to that signal.
+If you do not then receiving the signal will fail.
+
+\section{DBusSignal}
+
+Signals are also declared as part of an interface. The Java API models these as
+inner classes within an interface. The containing interface must extend {\tt
+DBusInterface}, and the inner classes representing the signals must extend {\tt
+DBusSignal\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusSignal.html}}}.
+The Signal name is derived from the name of this inner class, and the interface
+from its containing interface.
+
+Signals can take parameters as methods can (although they cannot return
+anything). For the reflection to work, a Signal declare a single constructor of
+the correct type. The constructor must take the object path they are being
+emitted from as their first (String) argument, followed by the other parameters
+in order. They must also call the superclass constructor with the same
+parameters. A full definition of a signal can be seen in
+figure~\ref{fig:signal}. Again, more complicated definitions are available in
+the test
+classes\footnote{\url{\javadocroot/org/freedesktop/dbus/test/TestSignalInterface.html}}.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package org.freedesktop;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public interface DBus extends DBusInterface
+{
+ public class NameAcquired extends DBusSignal
+ {
+ public final String name;
+ public NameAcquired(String path, String name)
+ throws DBusException
+ {
+ super(path, name);
+ this.name = name;
+ }
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{A Signal with one parameter}
+\label{fig:signal}
+\end{figure}
+
+\section{DBusExecutionException}
+
+If you wish to report an error condition in a method call you can throw an
+instance of {\tt
+DBusExecutionException\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusExecutionException.html}}}.
+This will be sent back to the caller as an error message, and the error name is
+taken from the class name of the exception. For example, if you wanted to
+report an unknown method you would define an exception as in figure
+\ref{fig:exceptiondef} and then throw it in your method as in figure
+\ref{fig:exceptioncall}.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package org.freedesktop.DBus.Error;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+public class UnknownMethod extends DBusExecutionException
+{
+ public UnknownMethod(String message)
+ {
+ super(message);
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{An Exception}
+\label{fig:exceptiondef}
+\end{figure}
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+...
+public void throwme() throws org.freedesktop.DBus.Error.UnknownMethod
+{
+ throw new org.freedesktop.DBus.Error.UnknownMethod("hi");
+}
+...
+\end{verbatim}
+\end{center}
+\caption{Throwing An Exception}
+\label{fig:exceptioncall}
+\end{figure}
+
+If you are calling a remote method and you want to handle such an error you can
+simply catch the exception as in figure \ref{fig:exceptioncatch}.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+...
+try {
+ remote.throwme();
+} catch (org.freedesktop.DBus.Error.UnknownMethod UM) {
+ ...
+}
+...
+\end{verbatim}
+\end{center}
+\caption{Catching An Exception}
+\label{fig:exceptioncatch}
+\end{figure}
+
+\section{DBusSigHandler}
+
+To handle incoming signals from other programs on the Bus you must register a
+signal handler. This must implement {\tt
+DBusSigHandler\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusSigHandler.html}}}
+and provide an implementation for the handle method. An example Signal Handler
+is in figure~\ref{fig:handler}. Signal handlers should be parameterised with
+the signal they are handling. If you want a signal handler to handle multiple
+signals you can leave out the parameterisation and use {\tt instanceof} to
+check the type of signal you are handling. Signal handlers will be run in their
+own thread.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.DBusSigHandler;
+
+public class Handler extends DBusSigHandler<DBus.NameAcquired>
+{
+ public void handle(DBus.NameAcquired sig)
+ {
+ ...
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{A Signal Handler}
+\label{fig:handler}
+\end{figure}
+
+
+\section{D-Bus Types}
+
+D-Bus supports a number of types in its messages, some which Java
+supports natively, and some which it doesn't. This library provides
+a way of modelling the extra D-Bus Types in Java. The full list of
+types and what D-Bus type they map to is in table \ref{table:types}.
+
+\subsection{Basic Types}
+
+All of Java's basic types are supported as parameters and return types to methods, and as parameters to signals. These can be used in either their primitive or wrapper types.
+
+\subsubsection{Unsigned Types}
+
+D-Bus, like C and similar languages, has a notion of unsigned numeric
+types. The library supplies {\tt
+UInt16\footnote{\url{\javadocroot/org/freedesktop/dbus/UInt16.html}}}, {\tt
+UInt32} and {\tt UInt64} classes to represent these new basic types.
+
+\subsection{Strings}
+
+D-Bus also supports sending Strings. When mentioned below, Strings
+count as a basic type.
+
+\subsubsection{String Comparisons}
+
+There may be some problems with comparing strings received over D-Bus with
+strings generated locally when using the String.equals method. This is due to
+how the Strings are generated from a UTF8 encoding. The recommended way to
+compare strings which have been sent over D-Bus is with the {\tt
+java.text.Collator} class. Figure \ref{fig:collator} demonstrates its use.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+String rname = remote.getName();
+Collator col = Collator.getInstance();
+col.setDecomposition(Collator.FULL_DECOMPOSITION);
+col.setStrength(Collator.PRIMARY);
+if (0 != col.compare("Name", rname))
+ fail("getName return value incorrect");
+\end{verbatim}
+\end{center}
+\caption{Comparing strings with {\tt java.text.Collator}.}
+\label{fig:collator}
+\end{figure}
+
+\subsection{Arrays}
+
+You can send arrays of any valid D-Bus Type over D-Bus. These can either be
+declared in Java as arrays (e.g. \verb&Integer[]& or \verb&int[]&) or as Lists
+(e.g. \verb&List<String>&). All lists {\bf must} be parameterised with their
+type in the source (reflection on this is used by the library to determine
+their type). Also note that arrays cannot be used as part of more complex type,
+only Lists (for example \verb&List<List<String>>&).
+
+\subsection{Maps}
+
+D-Bus supports a dictionary type analogous to the Java Map type. This
+has the additional restriction that only basic types can be used as
+the key (including String). Any valid D-Bus type can be the value. As
+with lists, maps must be fully parameterised. (e.g.
+\verb&Map<Integer, String>&).
+
+\subsection{Variants}
+
+D-Bus has support for a Variant type. This is similar to declaring that a
+method takes a parameter of type {\tt Object}, in that a Variant may contain
+any other type. Variants can either be declared using the {\tt
+Variant\footnote{\url{\javadocroot/org/freedesktop/dbus/Variant.html}}} class, or as
+a Type Variable. In the latter case the value is automatically unwrapped and
+passed to the function. Variants in compound types (Arrays, Maps, etc) must be
+declared using the Variant class with the full type passed to the Variant
+constructor and manually unwrapped.
+
+Both these methods use variants:
+
+\begin{verbatim}
+public void display(Variant v);
+public <T> int hash(T v);
+\end{verbatim}
+
+\subsection{Structs}
+
+D-Bus has a struct type, which is a collection of other types. Java
+does not have an analogue of this other than fields in classes, and
+due to the limitation of Java reflection this is not sufficient. The
+library declares a {\tt
+Struct\footnote{\url{\javadocroot/org/freedesktop/dbus/Struct.html}}} class which can be used to create structs.
+To define a struct you extend the {\tt Struct} class and define fields for each member of the struct.
+These fields then need to be annotated in the order which they appear in the struct (class fields do not have a defined order). You must also define a single constructor which takes the contents of he struct in order. This is best demonstrated by an example.
+Figure~\ref{fig:struct} shows a Struct definition, and
+figure~\ref{fig:structmethod} shows this being used as a parameter
+to a method.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusException;
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+
+public final class TestStruct extends Struct
+{
+ @Position(0)
+ public final String a;
+ @Position(1)
+ public final int b;
+ @Position(2)
+ public final String c;
+ public Struct3(String a, int b, String c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{A Struct with three elements}
+\label{fig:struct}
+\end{figure}
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+public void do(TestStruct data);
+\end{verbatim}
+\end{center}
+\caption{A struct as a parameter to a method}
+\label{fig:structmethod}
+\end{figure}
+
+
+Section~\ref{sec:create} describes how these can be automatically
+generated from D-Bus introspection data.
+
+\subsection{Objects}
+
+You can pass references to exportable objects round using their object paths.
+To do this in Java you declare a type of {\tt DBusInterface}. When the library
+receive- an object path it will automatically convert it into the object you
+are exporting with that object path. You can pass remote objects back to their
+processes in a similar fashion.
+
+Using a parameter of type {\tt DBusInterface} can cause the automatic creation
+of a proxy object using introspection. If the remote app does not support
+introspection, or the object does not exist at the time you receive the message
+then this will fail. In that case the parameter can be declared to be of type
+{\tt Path}. In this case no automatic creation will be performed and you can
+get the path as a string with either the {\tt getPath} or {\tt toString} methods
+on the {\tt Path} object.
+
+
+\subsection{Multiple Return Values}
+
+D-Bus also allows functions to return multiple values, a concept not supported
+by Java. This has been solved in a fashion similar to the struct, using a {\tt
+Tuple\footnote{\url{\javadocroot/org/freedesktop/dbus/Tuple.html}}}
+class. Tuples are defined as generic tuples which can be parameterised for
+different types and just need to be defined of the appropriate length. This can
+be seen in figure~\ref{fig:tuple} and a call in figure~\ref{fig:tuplemethod}.
+Again, these can be automatically generated from introspection data.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+import org.freedesktop.dbus.Tuple;
+
+public final class TestTuple<A, B, C> extends Tuple
+{
+ public final A a;
+ public final B b;
+ public final C c;
+ public TestTuple(A a, B b, C c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{A 3-tuple}
+\label{fig:tuple}
+\end{figure}
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+public ThreeTuple<String, Integer, Boolean> status(int item);
+\end{verbatim}
+\end{center}
+\caption{A Tuple being returned from a method}
+\label{fig:tuplemethod}
+\end{figure}
+
+\subsection{Full list of types}
+
+Table \ref{table:types} contains a full list of all the Java types and their corresponding D-Bus types.
+
+\begin{table}
+\begin{center}
+\begin{tabular}{l|l}
+\bf Java Type & \bf D-Bus Type \\
+\hline
+Byte & DBUS\_TYPE\_BYTE \\
+byte & DBUS\_TYPE\_BYTE \\
+Boolean & DBUS\_TYPE\_BOOLEAN \\
+boolean & DBUS\_TYPE\_BOOLEAN \\
+Short & DBUS\_TYPE\_INT16 \\
+short & DBUS\_TYPE\_INT16 \\
+UInt16 & DBUS\_TYPE\_UINT16 \\
+int & DBUS\_TYPE\_INT32 \\
+Integer & DBUS\_TYPE\_INT32 \\
+UInt32 & DBUS\_TYPE\_UINT32 \\
+long & DBUS\_TYPE\_INT64 \\
+Long & DBUS\_TYPE\_INT64 \\
+UInt64 & DBUS\_TYPE\_UINT64 \\
+double & DBUS\_TYPE\_DOUBLE \\
+Double & DBUS\_TYPE\_DOUBLE \\
+String & DBUS\_TYPE\_STRING \\
+Path & DBUS\_TYPE\_OBJECT\_PATH \\
+$<$T$>$ & DBUS\_TYPE\_VARIANT \\
+Variant & DBUS\_TYPE\_VARIANT \\
+? extends Struct & DBUS\_TYPE\_STRUCT \\
+?$[$~$]$ & DBUS\_TYPE\_ARRAY \\
+? extends List & DBUS\_TYPE\_ARRAY \\
+? extends Map & DBUS\_TYPE\_DICT \\
+? extends DBusInterface & DBUS\_TYPE\_OBJECT\_PATH \\
+Type$[$~$]$ & DBUS\_TYPE\_SIGNATURE \\
+\end{tabular}
+\end{center}
+\caption{Mapping between Java types and D-Bus types}
+\label{table:types}
+\end{table}
+
+\subsubsection{float}
+
+Currently the D-Bus reference implementation does not support a native
+single-precision floating point type. Along with the C\# implementation of the
+protocol, the Java implementation supports this extension to the protocol. By
+default, however, the library operates in compatibility mode and converts all
+floats to the double type. To disable compatibility mode export the environment
+variable {\tt DBUS\_JAVA\_FLOATS=true}.
+
+\section{Annotations}
+
+You can annotate your D-Bus methods as in figure \ref{fig:annotation} to provide hints to other users of your API. Common annotations are listed in table \ref{tab:annotations}.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+package org.freedesktop;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.DBusInterface;
+
+@org.freedesktop.DBus.Description("Some Methods");
+public interface DBus extends DBusInterface
+{
+ @org.freedesktop.DBus.Description("Check if the name has an owner")
+ public boolean NameHasOwner(String name);
+ @org.freedesktop.DBus.Description("Request a name")
+ @org.freedesktop.DBus.Deprecated()
+ public UInt32 RequestName(String name, UInt32 flags);
+}
+\end{verbatim}
+\end{center}
+\caption{An annotated method}
+\label{fig:annotation}
+\end{figure}
+
+
+\begin{table}[htb]
+\begin{tabular}{l|l}
+{\bf Name} & {\bf Meaning} \\
+\hline
+org.freedesktop.DBus.Description & Provide a short 1-line description \\
+ & of the method or interface. \\
+org.freedesktop.DBus.Deprecated & This method or interface is Deprecated. \\
+org.freedesktop.DBus.Method.NoReply & This method may be called and returned \\
+ & without waiting for a reply. \\
+org.freedesktop.DBus.Method.Error & This method may throw the listed Exception\\
+ & in addition to the standard ones. \\
+\end{tabular}
+\caption{Common Annotations}
+\label{tab:annotations}
+\end{table}
+
+\section{DBusSerializable}
+
+Some people may want to be able to pass their own objects over D-Bus. Obviously
+only raw D-Bus types can be sent on the message bus itself, but the Java
+implementation allows the creation of serializable objects which can be passed to
+D-Bus functions and will be converted to/from D-Bus types by the library.
+
+To create such a class you must implement the {\tt
+DBusSerializable\footnote{\url{\javadocroot/org/freedesktop/dbus/DBusSerializable.html}}}
+class and provide two methods and a zero-argument constructor. The first method
+has the signature {\tt public Object\[\] serialize() throws DBusException} and
+the second must be called {\tt deserialize}, return {\tt null} and take as it's
+arguments exactly all the dbus types that are being serialized to {\em in
+order} and {\em with parameterization}. The serialize method should return the
+class properties you wish to serialize, correctly formatted for the wire ({\tt
+DBusConnection.convertParameters()} can help with this), in order in an Object
+array.
+
+An example of a serializable class can be seen in figure~\ref{fig:serializable}.
+
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+import java.lang.reflect.Type;
+
+import java.util.List;
+import java.util.Vector;
+
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSerializable;
+
+public class TestSerializable implements DBusSerializable
+{
+ private int a;
+ private String b;
+ private Vector<Integer> c;
+ public TestSerializable(int a, String b, Vector<Integer> c)
+ {
+ this.a = a;
+ this.b = b.toString();
+ this.c = c;
+ }
+ public TestSerializable() {}
+ public void deserialize(int a, String b, List<Integer> c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = new Vector<Integer>(c);
+ }
+ public Object[] serialize()
+ {
+ return new Object[] { a, b, c };
+ }
+ public int getInt() { return a; }
+ public String getString() { return b; }
+ public Vector<Integer> getVector() { return c; }
+ public String toString()
+ {
+ return "TestSerializable{"+a+","+b+","+c+"}";
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{A serializable class}
+\label{fig:serializable}
+\end{figure}
+
+
+
+\section{CreateInterface}
+\label{sec:create}
+
+D-Bus provides a method to get introspection data on a remote object, which
+describes the interfaces, methods and signals it provides. This introspection
+data is in XML
+format\footnote{http://dbus.freedesktop.org/doc/dbus-specification.html\#introspection-format}.
+The library automatically provides XML introspection data on all objects which
+are exported by it. Introspection data can be used to create Java interface
+definitions automatically.
+
+The {\tt
+CreateInterface\footnote{\url{\javadocroot/org/freedesktop/dbus/CreateInterface.html}}}
+class will automatically create Java source files from an XML file
+containing the introspection data, or by querying the remote object
+over D-Bus. CreateInterface can be called from Java code, or can be run as a
+stand alone program.
+
+The syntax for the CreateInterface program is
+
+\begin{verbatim}
+CreateInterface [--system] [--session] [--create-files]
+ <bus name> <object>
+CreateInterface [--create-files] <introspection-file.xml>
+\end{verbatim}
+
+The Java source code interfaces will be written to the standard ouput. If the
+{\tt --create-files} option is specified the correct files in the
+correct directory structure will be created.
+
+\subsection{Nested Interfaces}
+
+In some cases there are nested interfaces. In this case CreateInterface will
+not correctly create the Java equivalent. This is because Java cannot have both
+a class and a package with the same name. The solution to this is to create
+nested classes in the same file.
+
+An example would be the Hal interface:
+
+\begin{verbatim}
+<interface name="org.freedesktop.Hal.Device">
+ ...
+</interface>
+<interface name="org.freedesktop.Hal.Device.Volume">
+ ...
+</interface>
+\end{verbatim}
+
+When converted to Java you would just have one file {\tt
+org/freedesktop/Hal/Device.java} in the package {\tt org.freedesktop.Hal},
+which would contain one class and one nested class:
+
+\begin{verbatim}
+public interface Device extends DBusInterface {
+ public interface Volume extends DBusInterface {
+ ... methods in Volume ...
+ }
+ ... methods in Device ...
+}
+\end{verbatim}
+
+\section{Debugging}
+
+It is possible to enable debugging in the library. This will be a lot slower,
+but can print a lot of useful information for debugging your program.
+
+To enable a debug build compile with {\tt DEBUG=enable}. This will then need to be
+enabled at runtime by using the debug jar with debugging enabled (usually
+installed as debug-enable.jar alongside the normal jar).
+
+Running a program which uses this library will print some informative messages.
+More verbose debug information can be got by supplying a custom debug
+configuration file. This should be placed in the file {\tt debug.conf} and has the
+format:
+
+\begin{verbatim}
+classname = LEVEL
+\end{verbatim}
+
+Where {\tt classname} is either the special word {\tt ALL} or a full class name
+like {\tt org.freedesktop.dbus} and {\tt LEVEL} is one of {\tt NONE}, {\tt
+CRIT}, {\tt ERR}, {\tt WARN}, {\tt INFO}, {\tt DEBUG}, {\tt VERBOSE}, {\tt
+YES}, {\tt ALL} or {\tt TRUE}. This will set the debug level for a particular
+class. Any messages from that class at that level or higher will be printed.
+Verbose debugging is extremely verbose.
+
+In addition, setting the environment variable {\tt
+DBUS\_JAVA\_EXCEPTION\_DEBUG} will cause all exceptions which are handled
+internally to have their stack trace printed when they are handled. This will
+happen unless debugging has been disabled for that class.
+
+\section{Peer to Peer}
+
+It is possible to connect two applications together directly without using a
+bus. D-Bus calls this a peer-to-peer connection.
+
+The Java implementation provides an alternative to the {\tt DBusConnection}
+class, the {\tt
+DirectConnection\footnote{\url{\javadocroot/org/freedesktop/dbus/DirectConnection.html}}}
+class. This allows you to connect two applications together directly without
+the need of a bus.
+
+When using a DirectConnection rather than a DBusConnection most operations are
+the same. The only things which differ are how you connect and the operations
+which depend on a bus. Since peer connections are only one-to-one there is no
+destination or source address to messages. There is also no {\tt
+org.freedesktop.DBus} service running on the bus.
+
+\subsection{Connecting to another application}
+
+To connect with a peer connection one of the two applications must be listening
+on the socket and the other connecting. Both of these use the same method to
+instantiate the {\tt DirectConnection} but with different addresses. To listen
+rather than connect you add the {\em ``listen=true''} parameter to the address.
+Listening and connecting can be seen in figures \ref{fig:p2plisten} and
+\ref{fig:p2pconnect} respectively. Listening will block at creating the
+connection until the other application has connected.
+
+{\tt DirectConnection} also provides a {\tt createDynamicSession} method which
+generates a random abstract unix socket address to use.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+DirectConnection dc = new DirectConnection("unix:path=/tmp/dbus-ABCXYZ,listen=true");
+\end{verbatim}
+\end{center}
+\caption{Listening for a peer connection}
+\label{fig:p2plisten}
+\end{figure}
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+DirectConnection dc = new DirectConnection("unix:path=/tmp/dbus-ABCXYZ");
+\end{verbatim}
+\end{center}
+\caption{Connecting to a peer connection}
+\label{fig:p2pconnect}
+\end{figure}
+
+\subsection{Getting Remote Objects}
+
+Getting a remote object is essentially the same as with a bus connection,
+except that you do not have to specify a bus name, only an object path. There
+is also no {\tt getPeerRemoteObject} method, since there can only be one peer
+on this connection.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+RemoteInterface remote = dc.getRemoteObject("/Path");
+remote.doStuff();
+\end{verbatim}
+\end{center}
+\caption{Getting a remote object on a peer connection}
+\label{fig:p2premote}
+\end{figure}
+
+The rest of the API is the same for peer connections as bus connections,
+ommiting any bus addresses.
+
+\section{Low-level API}
+
+In very rare circumstances it may be neccessary to deal directly with messages
+on the bus, rather than with objects and method calls. This implementation
+gives the programmer access to this low-level API but its use is strongly
+recommended against.
+
+To use the low-level API you use a different set of classes than with the
+normal API.
+
+\subsection{Transport}
+
+The {\tt Transport\footnote{\url{\javadocroot/org/freedesktop/dbus/Transport.html}}}
+class is used to connect to the underlying transport with a bus address and to
+send and receive messages.
+
+You connect by either creating a {\tt Transport} object with the bus address as
+the parameter, or by calling {\tt connect} with the address later. Addresses
+are represented using the {\tt BusAddress} class.
+
+Messages can be read by calling {\tt transport.min.readMessage()} and written
+by using the {\tt transport.mout.writeMessage(m)} methods.
+
+\subsection{Message}
+
+{\tt Message\footnote{\url{\javadocroot/org/freedesktop/dbus/Message.html}}} is the
+superclass of all the classes representing a message. To send a message you
+need to create a subclass of this object. Possible message types are: {\tt
+MethodCall}, {\tt MethodReturn}, {\tt Error} and {\tt DBusSignal}. Constructors
+for these vary, but they are basically similar to the {\tt MethodCall} class.
+
+All the constructors have variadic parameter lists with the last of the
+parameters being the signature of the message body and the parameters which
+make up the body. If the message has an empty body then the last parameter must
+be null. Reading and writing messages is not thread safe.
+
+Messages can be read either in blocking or non-blocking mode. When reading a
+message in non-blocking mode, if a full message has not yet been read from the
+transport the method will return null. Messages are instantiated as the correct
+message type, so {\tt instanceof} will work on the returned object. Blocking
+mode can be enabled with an extra parameter to the Transport constructor.
+
+Figure \ref{fig:lowlevel} shows how to connect to a bus, send the (required)
+initial `Hello' message and
+call a method with two parameters.
+
+\begin{figure}[htb]
+\begin{center}
+\begin{verbatim}
+BusAddress address = new BusAddress(
+ System.getenv("DBUS_SESSION_BUS_ADDRESS"));
+Transport conn = new Transport(address, true);
+
+Message m = new MethodCall("org.freedesktop.DBus", "/org/freedesktop/DBus",
+ "org.freedesktop. DBus", "Hello", (byte) 0, null);
+conn.mout.writeMessage(m);
+
+m = conn.min.readMessage();
+System.out.println("Response to Hello is: "+m);
+
+m = new MethodCall("org.freedesktop.DBus", "/org/freedesktop/DBus",
+ "org.freedesktop.DBus", "RequestName", (byte) 0,
+ "su", "org.testname", 0);
+conn.mout.writeMessage(m);
+
+conn.disconnect();
+\end{verbatim}
+\end{center}
+\caption{Low-level usage}
+\label{fig:lowlevel}
+\end{figure}
+
+\section{Examples}
+
+As an example here are a complete set of interfaces for the
+bluemon\footnote{http://www.matthew.ath.cx/projects/bluemon} daemon,
+which communicates over D-Bus. These interfaces were all created by
+querying introspection data over the bus.
+
+\newpage
+
+\begin{figure}[!h]
+\begin{center}
+\begin{verbatim}
+package cx.ath.matthew.bluemon;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.UInt32;
+public interface Bluemon extends DBusInterface
+{
+ public Triplet<String, Boolean, UInt32>
+ Status(String address);
+}
+\end{verbatim}
+\end{center}
+\caption{cx/ath/matthew/bluemon/Bluemon.java}
+\end{figure}
+
+\newpage
+
+\begin{figure}[!h]
+\begin{center}
+\begin{verbatim}
+package cx.ath.matthew.bluemon;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+public interface ProximitySignal extends DBusInterface
+{
+ public static class Connect extends DBusSignal
+ {
+ public final String address;
+ public Connect(String path, String address)
+ throws DBusException
+ {
+ super(path, address);
+ this.address = address;
+ }
+ }
+ public static class Disconnect extends DBusSignal
+ {
+ public final String address;
+ public Disconnect(String path, String address)
+ throws DBusException
+ {
+ super(path, address);
+ this.address = address;
+ }
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{cx/ath/matthew/bluemon/ProximitySignal.java}
+\end{figure}
+
+\newpage
+
+\begin{figure}[!h]
+\begin{center}
+\begin{verbatim}
+package cx.ath.matthew.bluemon;
+import org.freedesktop.dbus.Tuple;
+/** Just a typed container class */
+public final class Triplet <A,B,C> extends Tuple
+{
+ public final A a;
+ public final B b;
+ public final C c;
+ public Triplet(A a, B b, C c)
+ {
+ super(a, b, c);
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{cx/ath/matthew/bluemon/Triplet.java}
+\end{figure}
+
+\newpage
+
+\begin{figure}[!h]
+\begin{center}
+\begin{verbatim}
+package cx.ath.matthew.bluemon;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public class Query {
+ public static void main(String[] args) {
+ String btid;
+ Triplet<String, Boolean, UInt32> rv = null;
+
+ if (0 == args.length) btid = "";
+ else btid = args[0];
+
+ DBusConnection conn = null;
+ try {
+ conn = DBusConnection.getConnection(DBusConnection.SYSTEM);
+ } catch (DBusException De) {
+ System.exit(1);
+ }
+ Bluemon b = (Bluemon) conn.getRemoteObject(
+ "cx.ath.matthew.bluemon.server",
+ "/cx/ath/matthew/bluemon/Bluemon", Bluemon.class);
+ try {
+ rv = b.Status(btid);
+ } catch (RuntimeException Re) {
+ System.exit(1);
+ }
+ String address = rv.a;
+ boolean status = rv.b;
+ int level = rv.c.intValue();
+
+ if (status)
+ System.out.println("Device "+address+
+ " connected with level "+level);
+ else
+ System.out.println("Device "+address+" not connected");
+ conn.disconnect();
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{cx/ath/matthew/bluemon/Query.java}
+\end{figure}
+
+\newpage
+
+\begin{figure}[!h]
+\begin{center}
+\begin{verbatim}
+/* cx/ath/matthew/bluemon/Client.java */
+package cx.ath.matthew.bluemon;
+
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public class Client implements DBusSigHandler
+{
+ public void handle(DBusSignal s)
+ {
+ if (s instanceof ProximitySignal.Connect)
+ System.out.println("Got a connect for "
+ +((ProximitySignal.Connect) s).address);
+ else if (s instanceof ProximitySignal.Disconnect)
+ System.out.println("Got a disconnect for "
+ +((ProximitySignal.Disconnect) s).address);
+ }
+ public static void main(String[] args)
+ {
+ System.out.println("Creating Connection");
+ DBusConnection conn = null;
+ try {
+ conn = DBusConnection
+ .getConnection(DBusConnection.SYSTEM);
+ } catch (DBusException DBe) {
+ System.out.println("Could not connect to bus");
+ System.exit(1);
+ }
+
+ try {
+ conn.addSigHandler(ProximitySignal.Connect.class,
+ new Client());
+ conn.addSigHandler(ProximitySignal.Disconnect.class,
+ new Client());
+ } catch (DBusException DBe) {
+ conn.disconnect();
+ System.exit(1);
+ }
+ }
+}
+\end{verbatim}
+\end{center}
+\caption{cx/ath/matthew/bluemon/Client.java}
+\end{figure}
+
+\newpage
+
+\section{Credits}
+
+This document and the Java API were written by and are copyright to
+Matthew Johnson. Much help and advice was provided by the members of
+the \#dbus irc channel. Comments, corrections and patches can be sent
+to dbus-java@matthew.ath.cx.
+
+\end{document}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/DBus.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/DBus.java
new file mode 100755
index 0000000..5d99a64
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/DBus.java
@@ -0,0 +1,490 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import java.util.Map;
+import java.util.List;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.Tuple;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.UInt64;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+public interface DBus extends DBusInterface
+{
+ public static final int DBUS_NAME_FLAG_ALLOW_REPLACEMENT = 0x01;
+ public static final int DBUS_NAME_FLAG_REPLACE_EXISTING = 0x02;
+ public static final int DBUS_NAME_FLAG_DO_NOT_QUEUE = 0x04;
+ public static final int DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER = 1;
+ public static final int DBUS_REQUEST_NAME_REPLY_IN_QUEUE = 2;
+ public static final int DBUS_REQUEST_NAME_REPLY_EXISTS = 3;
+ public static final int DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER = 4;
+ public static final int DBUS_RELEASE_NAME_REPLY_RELEASED = 1;
+ public static final int DBUS_RELEASE_NAME_REPLY_NON_EXISTANT = 2;
+ public static final int DBUS_RELEASE_NAME_REPLY_NOT_OWNER = 3;
+ public static final int DBUS_START_REPLY_SUCCESS = 1;
+ public static final int DBUS_START_REPLY_ALREADY_RUNNING = 2;
+ /**
+ * All DBus Applications should respond to the Ping method on this interface
+ */
+ public interface Peer extends DBusInterface
+ {
+ public void Ping();
+ }
+ /**
+ * Objects can provide introspection data via this interface and method.
+ * See the <a href="http://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format">Introspection Format</a>.
+ */
+ public interface Introspectable extends DBusInterface
+ {
+ /**
+ * @return The XML introspection data for this object
+ */
+ public String Introspect();
+ }
+ /**
+ * A standard properties interface.
+ */
+ public interface Properties extends DBusInterface
+ {
+ /**
+ * Get the value for the given property.
+ * @param interface_name The interface this property is associated with.
+ * @param property_name The name of the property.
+ * @return The value of the property (may be any valid DBus type).
+ */
+ public <A> A Get (String interface_name, String property_name);
+ /**
+ * Set the value for the given property.
+ * @param interface_name The interface this property is associated with.
+ * @param property_name The name of the property.
+ * @param value The new value of the property (may be any valid DBus type).
+ */
+ public <A> void Set (String interface_name, String property_name, A value);
+ /**
+ * Get all properties and values.
+ * @param interface_name The interface the properties is associated with.
+ * @return The properties mapped to their values.
+ */
+ public Map<String, Variant> GetAll (String interface_name);
+ }
+ /**
+ * Messages generated locally in the application.
+ */
+ public interface Local extends DBusInterface
+ {
+ public class Disconnected extends DBusSignal
+ {
+ public Disconnected(String path) throws DBusException
+ {
+ super(path);
+ }
+ }
+ }
+
+ /**
+ * Initial message to register ourselves on the Bus.
+ * @return The unique name of this connection to the Bus.
+ */
+ public String Hello();
+ /**
+ * Lists all connected names on the Bus.
+ * @return An array of all connected names.
+ */
+ public String[] ListNames();
+ /**
+ * Determine if a name has an owner.
+ * @param name The name to query.
+ * @return true if the name has an owner.
+ */
+ public boolean NameHasOwner(String name);
+ /**
+ * Get the connection unique name that owns the given name.
+ * @param name The name to query.
+ * @return The connection which owns the name.
+ */
+ public String GetNameOwner(String name);
+ /**
+ * Get the Unix UID that owns a connection name.
+ * @param connection_name The connection name.
+ * @return The Unix UID that owns it.
+ */
+ public UInt32 GetConnectionUnixUser(String connection_name);
+ /**
+ * Start a service. If the given service is not provided
+ * by any application, it will be started according to the .service file
+ * for that service.
+ * @param name The service name to start.
+ * @param flags Unused.
+ * @return DBUS_START_REPLY constants.
+ */
+ public UInt32 StartServiceByName(String name, UInt32 flags);
+ /**
+ * Request a name on the bus.
+ * @param name The name to request.
+ * @param flags DBUS_NAME flags.
+ * @return DBUS_REQUEST_NAME_REPLY constants.
+ */
+ public UInt32 RequestName(String name, UInt32 flags);
+ /**
+ * Release a name on the bus.
+ * @param name The name to release.
+ * @return DBUS_RELEASE_NAME_REPLY constants.
+ */
+ public UInt32 ReleaseName(String name);
+
+ /**
+ * Add a match rule.
+ * Will cause you to receive messages that aren't directed to you which
+ * match this rule.
+ * @param matchrule The Match rule as a string. Format Undocumented.
+ */
+ public void AddMatch(String matchrule) throws Error.MatchRuleInvalid;
+
+ /**
+ * Remove a match rule.
+ * Will cause you to stop receiving messages that aren't directed to you which
+ * match this rule.
+ * @param matchrule The Match rule as a string. Format Undocumented.
+ */
+ public void RemoveMatch(String matchrule) throws Error.MatchRuleInvalid;
+
+ /**
+ * List the connections currently queued for a name.
+ * @param name The name to query
+ * @return A list of unique connection IDs.
+ */
+ public String[] ListQueuedOwners(String name);
+
+ /**
+ * Returns the proccess ID associated with a connection.
+ * @param connection_name The name of the connection
+ * @return The PID of the connection.
+ */
+ public UInt32 GetConnectionUnixProcessID(String connection_name);
+
+ /**
+ * Does something undocumented.
+ */
+ public Byte[] GetConnectionSELinuxSecurityContext(String a);
+
+ /**
+ * Does something undocumented.
+ */
+ public void ReloadConfig();
+
+ /**
+ * Signal sent when the owner of a name changes
+ */
+ public class NameOwnerChanged extends DBusSignal
+ {
+ public final String name;
+ public final String old_owner;
+ public final String new_owner;
+ public NameOwnerChanged(String path, String name, String old_owner, String new_owner) throws DBusException
+ {
+ super(path, new Object[] { name, old_owner, new_owner });
+ this.name = name;
+ this.old_owner = old_owner;
+ this.new_owner = new_owner;
+ }
+ }
+ /**
+ * Signal sent to a connection when it loses a name
+ */
+ public class NameLost extends DBusSignal
+ {
+ public final String name;
+ public NameLost(String path, String name) throws DBusException
+ {
+ super(path, name);
+ this.name = name;
+ }
+ }
+ /**
+ * Signal sent to a connection when it aquires a name
+ */
+ public class NameAcquired extends DBusSignal
+ {
+ public final String name;
+ public NameAcquired(String path, String name) throws DBusException
+ {
+ super(path, name);
+ this.name = name;
+ }
+ }
+ /**
+ * Contains standard errors that can be thrown from methods.
+ */
+ public interface Error
+ {
+ /**
+ * Thrown if the method called was unknown on the remote object
+ */
+ @SuppressWarnings("serial")
+ public class UnknownMethod extends DBusExecutionException
+ {
+ public UnknownMethod(String message)
+ {
+ super(message);
+ }
+ }
+ /**
+ * Thrown if the object was unknown on a remote connection
+ */
+ @SuppressWarnings("serial")
+ public class UnknownObject extends DBusExecutionException
+ {
+ public UnknownObject(String message)
+ {
+ super(message);
+ }
+ }
+ /**
+ * Thrown if the requested service was not available
+ */
+ @SuppressWarnings("serial")
+ public class ServiceUnknown extends DBusExecutionException
+ {
+ public ServiceUnknown(String message)
+ {
+ super(message);
+ }
+ }
+ /**
+ * Thrown if the match rule is invalid
+ */
+ @SuppressWarnings("serial")
+ public class MatchRuleInvalid extends DBusExecutionException
+ {
+ public MatchRuleInvalid(String message)
+ {
+ super(message);
+ }
+ }
+ /**
+ * Thrown if there is no reply to a method call
+ */
+ @SuppressWarnings("serial")
+ public class NoReply extends DBusExecutionException
+ {
+ public NoReply(String message)
+ {
+ super(message);
+ }
+ }
+ /**
+ * Thrown if a message is denied due to a security policy
+ */
+ @SuppressWarnings("serial")
+ public class AccessDenied extends DBusExecutionException
+ {
+ public AccessDenied(String message)
+ {
+ super(message);
+ }
+ }
+ }
+ /**
+ * Description of the interface or method, returned in the introspection data
+ */
+ @Retention(RetentionPolicy.RUNTIME)
+ public @interface Description
+ {
+ String value();
+ }
+ /**
+ * Indicates that a DBus interface or method is deprecated
+ */
+ @Retention(RetentionPolicy.RUNTIME)
+ public @interface Deprecated {}
+ /**
+ * Contains method-specific annotations
+ */
+ public interface Method
+ {
+ /**
+ * Methods annotated with this do not send a reply
+ */
+ @Target(ElementType.METHOD)
+ @Retention(RetentionPolicy.RUNTIME)
+ public @interface NoReply {}
+ /**
+ * Give an error that the method can return
+ */
+ @Target(ElementType.METHOD)
+ @Retention(RetentionPolicy.RUNTIME)
+ public @interface Error
+ {
+ String value();
+ }
+ }
+ /**
+ * Contains GLib-specific annotations
+ */
+ public interface GLib
+ {
+ /**
+ * Define a C symbol to map to this method. Used by GLib only
+ */
+ @Target(ElementType.METHOD)
+ @Retention(RetentionPolicy.RUNTIME)
+ public @interface CSymbol
+ {
+ String value();
+ }
+ }
+ /**
+ * Contains Binding-test interfaces
+ */
+ public interface Binding
+ {
+ public interface SingleTests extends DBusInterface
+ {
+ @Description("Returns the sum of the values in the input list")
+ public UInt32 Sum(byte[] a);
+ }
+ public interface TestClient extends DBusInterface
+ {
+ @Description("when the trigger signal is received, this method should be called on the sending process/object.")
+ public void Response(UInt16 a, double b);
+ @Description("Causes a callback")
+ public static class Trigger extends DBusSignal
+ {
+ public final UInt16 a;
+ public final double b;
+ public Trigger(String path, UInt16 a, double b) throws DBusException
+ {
+ super(path, a, b);
+ this.a = a;
+ this.b = b;
+ }
+ }
+
+ }
+ public interface Tests extends DBusInterface
+ {
+ @Description("Returns whatever it is passed")
+ public <T> Variant<T> Identity(Variant<T> input);
+ @Description("Returns whatever it is passed")
+ public byte IdentityByte(byte input);
+ @Description("Returns whatever it is passed")
+ public boolean IdentityBool(boolean input);
+ @Description("Returns whatever it is passed")
+ public short IdentityInt16(short input);
+ @Description("Returns whatever it is passed")
+ public UInt16 IdentityUInt16(UInt16 input);
+ @Description("Returns whatever it is passed")
+ public int IdentityInt32(int input);
+ @Description("Returns whatever it is passed")
+ public UInt32 IdentityUInt32(UInt32 input);
+ @Description("Returns whatever it is passed")
+ public long IdentityInt64(long input);
+ @Description("Returns whatever it is passed")
+ public UInt64 IdentityUInt64(UInt64 input);
+ @Description("Returns whatever it is passed")
+ public double IdentityDouble(double input);
+ @Description("Returns whatever it is passed")
+ public String IdentityString(String input);
+ @Description("Returns whatever it is passed")
+ public <T> Variant<T>[] IdentityArray(Variant<T>[] input);
+ @Description("Returns whatever it is passed")
+ public byte[] IdentityByteArray(byte[] input);
+ @Description("Returns whatever it is passed")
+ public boolean[] IdentityBoolArray(boolean[] input);
+ @Description("Returns whatever it is passed")
+ public short[] IdentityInt16Array(short[] input);
+ @Description("Returns whatever it is passed")
+ public UInt16[] IdentityUInt16Array(UInt16[] input);
+ @Description("Returns whatever it is passed")
+ public int[] IdentityInt32Array(int[] input);
+ @Description("Returns whatever it is passed")
+ public UInt32[] IdentityUInt32Array(UInt32[] input);
+ @Description("Returns whatever it is passed")
+ public long[] IdentityInt64Array(long[] input);
+ @Description("Returns whatever it is passed")
+ public UInt64[] IdentityUInt64Array(UInt64[] input);
+ @Description("Returns whatever it is passed")
+ public double[] IdentityDoubleArray(double[] input);
+ @Description("Returns whatever it is passed")
+ public String[] IdentityStringArray(String[] input);
+ @Description("Returns the sum of the values in the input list")
+ public long Sum(int[] a);
+ @Description("Given a map of A => B, should return a map of B => a list of all the As which mapped to B")
+ public Map<String, List<String>> InvertMapping(Map<String, String> a);
+ @Description("This method returns the contents of a struct as separate values")
+ public Triplet<String, UInt32, Short> DeStruct(TestStruct a);
+ @Description("Given any compound type as a variant, return all the primitive types recursively contained within as an array of variants")
+ public List<Variant<Object>> Primitize(Variant<Object> a);
+ @Description("inverts it's input")
+ public boolean Invert(boolean a);
+ @Description("triggers sending of a signal from the supplied object with the given parameter")
+ public void Trigger(String a, UInt64 b);
+ @Description("Causes the server to exit")
+ public void Exit();
+ }
+ public interface TestSignals extends DBusInterface
+ {
+ @Description("Sent in response to a method call")
+ public static class Triggered extends DBusSignal
+ {
+ public final UInt64 a;
+ public Triggered(String path, UInt64 a) throws DBusException
+ {
+ super(path, a);
+ this.a = a;
+ }
+ }
+ }
+ public final class Triplet<A,B,C> extends Tuple
+ {
+ @Position(0)
+ public final A a;
+ @Position(1)
+ public final B b;
+ @Position(2)
+ public final C c;
+ public Triplet(A a, B b, C c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ }
+ public final class TestStruct extends Struct
+ {
+ @Position(0)
+ public final String a;
+ @Position(1)
+ public final UInt32 b;
+ @Position(2)
+ public final Short c;
+ public TestStruct(String a, UInt32 b, Short c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/AbstractConnection.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/AbstractConnection.java
new file mode 100755
index 0000000..3c2607e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/AbstractConnection.java
@@ -0,0 +1,1075 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+
+import java.io.File;
+import java.io.IOException;
+
+import java.text.MessageFormat;
+import java.text.ParseException;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Vector;
+
+import java.util.regex.Pattern;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.exceptions.NotConnected;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.exceptions.FatalDBusException;
+import org.freedesktop.dbus.exceptions.FatalException;
+
+import cx.ath.matthew.debug.Debug;
+
+
+/** Handles a connection to DBus.
+ */
+public abstract class AbstractConnection
+{
+ protected class FallbackContainer
+ {
+ private Map<String[], ExportedObject> fallbacks = new HashMap<String[], ExportedObject>();
+ public synchronized void add(String path, ExportedObject eo)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Adding fallback on "+path+" of "+eo);
+ fallbacks.put(path.split("/"), eo);
+ }
+ public synchronized void remove(String path)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Removing fallback on "+path);
+ fallbacks.remove(path.split("/"));
+ }
+ public synchronized ExportedObject get(String path)
+ {
+ int best = 0;
+ int i = 0;
+ ExportedObject bestobject = null;
+ String[] pathel = path.split("/");
+ for (String[] fbpath: fallbacks.keySet()) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Trying fallback path "+Arrays.deepToString(fbpath)+" to match "+Arrays.deepToString(pathel));
+ for (i = 0; i < pathel.length && i < fbpath.length; i++)
+ if (!pathel[i].equals(fbpath[i])) break;
+ if (i > 0 && i == fbpath.length && i > best)
+ bestobject = fallbacks.get(fbpath);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Matches "+i+" bestobject now "+bestobject);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Found fallback for "+path+" of "+bestobject);
+ return bestobject;
+ }
+ }
+ protected class _thread extends Thread
+ {
+ public _thread()
+ {
+ setName("DBusConnection");
+ }
+ public void run()
+ {
+ try {
+ Message m = null;
+ while (_run) {
+ m = null;
+
+ // read from the wire
+ try {
+ // this blocks on outgoing being non-empty or a message being available.
+ m = readIncoming();
+ if (m != null) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Got Incoming Message: "+m);
+ synchronized (this) { notifyAll(); }
+
+ if (m instanceof DBusSignal)
+ handleMessage((DBusSignal) m);
+ else if (m instanceof MethodCall)
+ handleMessage((MethodCall) m);
+ else if (m instanceof MethodReturn)
+ handleMessage((MethodReturn) m);
+ else if (m instanceof Error)
+ handleMessage((Error) m);
+
+ m = null;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ if (e instanceof FatalException) {
+ disconnect();
+ }
+ }
+
+ }
+ synchronized (this) { notifyAll(); }
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (Debug.debug && EXCEPTION_DEBUG) Debug.print(Debug.ERR, e);
+ }
+ }
+ }
+ private class _globalhandler implements org.freedesktop.DBus.Peer, org.freedesktop.DBus.Introspectable
+ {
+ private String objectpath;
+ public _globalhandler()
+ {
+ this.objectpath = null;
+ }
+ public _globalhandler(String objectpath)
+ {
+ this.objectpath = objectpath;
+ }
+ public boolean isRemote() { return false; }
+ public void Ping() { return; }
+ public String Introspect()
+ {
+ String intro = objectTree.Introspect(objectpath);
+ if (null == intro) {
+ ExportedObject eo = fallbackcontainer.get(objectpath);
+ if (null != eo) intro = eo.introspectiondata;
+ }
+ if (null == intro)
+ throw new DBus.Error.UnknownObject("Introspecting on non-existant object");
+ else return
+ "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\" "+
+ "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n"+intro;
+ }
+ }
+ protected class _workerthread extends Thread
+ {
+ private boolean _run = true;
+ public void halt()
+ {
+ _run = false;
+ }
+ public void run()
+ {
+ while (_run) {
+ Runnable r = null;
+ synchronized (runnables) {
+ while (runnables.size() == 0 && _run)
+ try { runnables.wait(); } catch (InterruptedException Ie) {}
+ if (runnables.size() > 0)
+ r = runnables.removeFirst();
+ }
+ if (null != r) r.run();
+ }
+ }
+ }
+ private class _sender extends Thread
+ {
+ public _sender()
+ {
+ setName("Sender");
+ }
+ public void run()
+ {
+ Message m = null;
+
+ if (Debug.debug) Debug.print(Debug.INFO, "Monitoring outbound queue");
+ // block on the outbound queue and send from it
+ while (_run) {
+ if (null != outgoing) synchronized (outgoing) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Blocking");
+ while (outgoing.size() == 0 && _run)
+ try { outgoing.wait(); } catch (InterruptedException Ie) {}
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Notified");
+ if (outgoing.size() > 0)
+ m = outgoing.remove();
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Got message: "+m);
+ }
+ if (null != m)
+ sendMessage(m);
+ m = null;
+ }
+
+ if (Debug.debug) Debug.print(Debug.INFO, "Flushing outbound queue and quitting");
+ // flush the outbound queue before disconnect.
+ if (null != outgoing) do {
+ EfficientQueue ogq = outgoing;
+ synchronized (ogq) {
+ outgoing = null;
+ }
+ if (!ogq.isEmpty())
+ m = ogq.remove();
+ else m = null;
+ sendMessage(m);
+ } while (null != m);
+
+ // close the underlying streams
+ }
+ }
+ /**
+ * Timeout in us on checking the BUS for incoming messages and sending outgoing messages
+ */
+ protected static final int TIMEOUT = 100000;
+ /** Initial size of the pending calls map */
+ private static final int PENDING_MAP_INITIAL_SIZE = 10;
+ static final String BUSNAME_REGEX = "^[-_a-zA-Z][-_a-zA-Z0-9]*(\\.[-_a-zA-Z][-_a-zA-Z0-9]*)*$";
+ static final String CONNID_REGEX = "^:[0-9]*\\.[0-9]*$";
+ static final String OBJECT_REGEX = "^/([-_a-zA-Z0-9]+(/[-_a-zA-Z0-9]+)*)?$";
+ static final byte THREADCOUNT = 4;
+ static final int MAX_ARRAY_LENGTH = 67108864;
+ static final int MAX_NAME_LENGTH = 255;
+
+ public static String currentSender = null; // pego
+
+ protected Map<String,ExportedObject> exportedObjects;
+ private ObjectTree objectTree;
+ private _globalhandler _globalhandlerreference;
+ protected Map<DBusInterface,RemoteObject> importedObjects;
+ protected Map<SignalTuple,Vector<DBusSigHandler<? extends DBusSignal>>> handledSignals;
+ protected EfficientMap pendingCalls;
+ protected Map<MethodCall, CallbackHandler<? extends Object>> pendingCallbacks;
+ protected Map<MethodCall, DBusAsyncReply<? extends Object>> pendingCallbackReplys;
+ protected LinkedList<Runnable> runnables;
+ protected LinkedList<_workerthread> workers;
+ protected FallbackContainer fallbackcontainer;
+ protected boolean _run;
+ EfficientQueue outgoing;
+ LinkedList<Error> pendingErrors;
+ private static final Map<Thread,DBusCallInfo> infomap = new HashMap<Thread,DBusCallInfo>();
+ protected _thread thread;
+ protected _sender sender;
+ protected Transport transport;
+ protected String addr;
+ protected boolean weakreferences = false;
+ static final Pattern dollar_pattern = Pattern.compile("[$]");
+ public static final boolean EXCEPTION_DEBUG;
+ static final boolean FLOAT_SUPPORT;
+ protected boolean connected = false;
+ static {
+ FLOAT_SUPPORT = (null != System.getenv("DBUS_JAVA_FLOATS"));
+ EXCEPTION_DEBUG = (null != System.getenv("DBUS_JAVA_EXCEPTION_DEBUG"));
+ if (EXCEPTION_DEBUG) {
+ Debug.print("Debugging of internal exceptions enabled");
+ Debug.setThrowableTraces(true);
+ }
+ if (Debug.debug) {
+ File f = new File("debug.conf");
+ if (f.exists()) {
+ Debug.print("Loading debug config file: "+f);
+ try {
+ Debug.loadConfig(f);
+ } catch (IOException IOe) {}
+ } else {
+ Properties p = new Properties();
+ p.setProperty("ALL", "INFO");
+ Debug.print("debug config file "+f+" does not exist, not loading.");
+ }
+ Debug.setHexDump(true);
+ }
+ }
+
+ protected AbstractConnection(String address) throws DBusException
+ {
+ exportedObjects = new HashMap<String,ExportedObject>();
+ importedObjects = new HashMap<DBusInterface,RemoteObject>();
+ _globalhandlerreference = new _globalhandler();
+ synchronized (exportedObjects) {
+ exportedObjects.put(null, new ExportedObject(_globalhandlerreference, weakreferences));
+ }
+ handledSignals = new HashMap<SignalTuple,Vector<DBusSigHandler<? extends DBusSignal>>>();
+ pendingCalls = new EfficientMap(PENDING_MAP_INITIAL_SIZE);
+ outgoing = new EfficientQueue(PENDING_MAP_INITIAL_SIZE);
+ pendingCallbacks = new HashMap<MethodCall, CallbackHandler<? extends Object>>();
+ pendingCallbackReplys = new HashMap<MethodCall, DBusAsyncReply<? extends Object>>();
+ pendingErrors = new LinkedList<Error>();
+ runnables = new LinkedList<Runnable>();
+ workers = new LinkedList<_workerthread>();
+ objectTree = new ObjectTree();
+ fallbackcontainer = new FallbackContainer();
+ synchronized (workers) {
+ for (int i = 0; i < THREADCOUNT; i++) {
+ _workerthread t = new _workerthread();
+ t.start();
+ workers.add(t);
+ }
+ }
+ _run = true;
+ addr = address;
+ }
+
+ protected void listen()
+ {
+ // start listening
+ thread = new _thread();
+ thread.start();
+ sender = new _sender();
+ sender.start();
+ }
+
+ /**
+ * Change the number of worker threads to receive method calls and handle signals.
+ * Default is 4 threads
+ * @param newcount The new number of worker Threads to use.
+ */
+ public void changeThreadCount(byte newcount)
+ {
+ synchronized (workers) {
+ if (workers.size() > newcount) {
+ int n = workers.size() - newcount;
+ for (int i = 0; i < n; i++) {
+ _workerthread t = workers.removeFirst();
+ t.halt();
+ }
+ } else if (workers.size() < newcount) {
+ int n = newcount-workers.size();
+ for (int i = 0; i < n; i++) {
+ _workerthread t = new _workerthread();
+ t.start();
+ workers.add(t);
+ }
+ }
+ }
+ }
+ private void addRunnable(Runnable r)
+ {
+ synchronized(runnables) {
+ runnables.add(r);
+ runnables.notifyAll();
+ }
+ }
+
+ String getExportedObject(DBusInterface i) throws DBusException
+ {
+ synchronized (exportedObjects) {
+ for (String s: exportedObjects.keySet())
+ if (i.equals(exportedObjects.get(s).object.get()))
+ return s;
+ }
+
+ String s = importedObjects.get(i).objectpath;
+ if (null != s) return s;
+
+ throw new DBusException("Not an object exported or imported by this connection");
+ }
+
+ abstract DBusInterface getExportedObject(String source, String path) throws DBusException;
+
+ /**
+ * Returns a structure with information on the current method call.
+ * @return the DBusCallInfo for this method call, or null if we are not in a method call.
+ */
+ public static DBusCallInfo getCallInfo()
+ {
+ DBusCallInfo info;
+ synchronized (infomap) {
+ info = infomap.get(Thread.currentThread());
+ }
+ return info;
+ }
+
+ /**
+ * If set to true the bus will not hold a strong reference to exported objects.
+ * If they go out of scope they will automatically be unexported from the bus.
+ * The default is to hold a strong reference, which means objects must be
+ * explicitly unexported before they will be garbage collected.
+ */
+ public void setWeakReferences(boolean weakreferences)
+ {
+ this.weakreferences = weakreferences;
+ }
+
+ /**
+ * Export an object so that its methods can be called on DBus.
+ * @param objectpath The path to the object we are exposing. MUST be in slash-notation, like "/org/freedesktop/Local",
+ * and SHOULD end with a capitalised term. Only one object may be exposed on each path at any one time, but an object
+ * may be exposed on several paths at once.
+ * @param object The object to export.
+ * @throws DBusException If the objectpath is already exporting an object.
+ * or if objectpath is incorrectly formatted,
+ */
+ public void exportObject(String objectpath, DBusInterface object) throws DBusException
+ {
+ if (null == objectpath || "".equals(objectpath))
+ throw new DBusException(_("Must Specify an Object Path"));
+ if (!objectpath.matches(OBJECT_REGEX)||objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+ synchronized (exportedObjects) {
+ if (null != exportedObjects.get(objectpath))
+ throw new DBusException(_("Object already exported"));
+ ExportedObject eo = new ExportedObject(object, weakreferences);
+ exportedObjects.put(objectpath, eo);
+ objectTree.add(objectpath, eo, eo.introspectiondata);
+ }
+ }
+ /**
+ * Export an object as a fallback object.
+ * This object will have it's methods invoked for all paths starting
+ * with this object path.
+ * @param objectprefix The path below which the fallback handles calls.
+ * MUST be in slash-notation, like "/org/freedesktop/Local",
+ * @param object The object to export.
+ * @throws DBusException If the objectpath is incorrectly formatted,
+ */
+ public void addFallback(String objectprefix, DBusInterface object) throws DBusException
+ {
+ if (null == objectprefix || "".equals(objectprefix))
+ throw new DBusException(_("Must Specify an Object Path"));
+ if (!objectprefix.matches(OBJECT_REGEX)||objectprefix.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectprefix);
+ ExportedObject eo = new ExportedObject(object, weakreferences);
+ fallbackcontainer.add(objectprefix, eo);
+ }
+ /**
+ * Remove a fallback
+ * @param objectprefix The prefix to remove the fallback for.
+ */
+ public void removeFallback(String objectprefix)
+ {
+ fallbackcontainer.remove(objectprefix);
+ }
+ /**
+ * Stop Exporting an object
+ * @param objectpath The objectpath to stop exporting.
+ */
+ public void unExportObject(String objectpath)
+ {
+ synchronized (exportedObjects) {
+ exportedObjects.remove(objectpath);
+ objectTree.remove(objectpath);
+ }
+ }
+ /**
+ * Return a reference to a remote object.
+ * This method will resolve the well known name (if given) to a unique bus name when you call it.
+ * This means that if a well known name is released by one process and acquired by another calls to
+ * objects gained from this method will continue to operate on the original process.
+ * @param busname The bus name to connect to. Usually a well known bus name in dot-notation (such as "org.freedesktop.local")
+ * or may be a DBus address such as ":1-16".
+ * @param objectpath The path on which the process is exporting the object.$
+ * @param type The interface they are exporting it on. This type must have the same full class name and exposed method signatures
+ * as the interface the remote object is exporting.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted or type is not in a package.
+ */
+ /**
+ * Send a signal.
+ * @param signal The signal to send.
+ */
+ public void sendSignal(DBusSignal signal)
+ {
+ queueOutgoing(signal);
+ }
+ void queueOutgoing(Message m)
+ {
+ synchronized (outgoing) {
+ if (null == outgoing) return;
+ outgoing.add(m);
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Notifying outgoing thread");
+ outgoing.notifyAll();
+ }
+ }
+ /**
+ * Remove a Signal Handler.
+ * Stops listening for this signal.
+ * @param type The signal to watch for.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ public <T extends DBusSignal> void removeSigHandler(Class<T> type, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ removeSigHandler(new DBusMatchRule(type), handler);
+ }
+ /**
+ * Remove a Signal Handler.
+ * Stops listening for this signal.
+ * @param type The signal to watch for.
+ * @param object The object emitting the signal.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ public <T extends DBusSignal> void removeSigHandler(Class<T> type, DBusInterface object, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ String objectpath = importedObjects.get(object).objectpath;
+ if (!objectpath.matches(OBJECT_REGEX)||objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+ removeSigHandler(new DBusMatchRule(type, null, objectpath), handler);
+ }
+
+ protected abstract <T extends DBusSignal> void removeSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException;
+ /**
+ * Add a Signal Handler.
+ * Adds a signal handler to call when a signal is received which matches the specified type and name.
+ * @param type The signal to watch for.
+ * @param handler The handler to call when a signal is received.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends DBusSignal> void addSigHandler(Class<T> type, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ addSigHandler(new DBusMatchRule(type), (DBusSigHandler<? extends DBusSignal>) handler);
+ }
+ /**
+ * Add a Signal Handler.
+ * Adds a signal handler to call when a signal is received which matches the specified type, name and object.
+ * @param type The signal to watch for.
+ * @param object The object from which the signal will be emitted
+ * @param handler The handler to call when a signal is received.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends DBusSignal> void addSigHandler(Class<T> type, DBusInterface object, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ String objectpath = importedObjects.get(object).objectpath;
+ if (!objectpath.matches(OBJECT_REGEX)||objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+ addSigHandler(new DBusMatchRule(type, null, objectpath), (DBusSigHandler<? extends DBusSignal>) handler);
+ }
+
+ protected abstract <T extends DBusSignal> void addSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException;
+
+ // pego was protedted, made public
+ public <T extends DBusSignal> void addSigHandlerWithoutMatch(Class<? extends DBusSignal> signal, DBusSigHandler<T> handler) throws DBusException
+ {
+ DBusMatchRule rule = new DBusMatchRule(signal);
+ SignalTuple key = new SignalTuple(rule.getInterface(), rule.getMember(), rule.getObject(), rule.getSource());
+ synchronized (handledSignals) {
+ Vector<DBusSigHandler<? extends DBusSignal>> v = handledSignals.get(key);
+ if (null == v) {
+ v = new Vector<DBusSigHandler<? extends DBusSignal>>();
+ v.add(handler);
+ handledSignals.put(key, v);
+ } else
+ v.add(handler);
+ }
+ }
+
+ /**
+ * Disconnect from the Bus.
+ */
+ public void disconnect()
+ {
+ connected = false;
+ if (Debug.debug) Debug.print(Debug.INFO, "Sending disconnected signal");
+ try {
+ handleMessage(new org.freedesktop.DBus.Local.Disconnected("/"));
+ } catch (Exception ee) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, ee);
+ }
+
+ if (Debug.debug) Debug.print(Debug.INFO, "Disconnecting Abstract Connection");
+ // run all pending tasks.
+ while (runnables.size() > 0)
+ synchronized (runnables) {
+ runnables.notifyAll();
+ }
+
+ // stop the main thread
+ _run = false;
+
+ // unblock the sending thread.
+ synchronized (outgoing) {
+ outgoing.notifyAll();
+ }
+
+ // disconnect from the trasport layer
+ try {
+ if (null != transport) {
+ transport.disconnect();
+ transport = null;
+ }
+ } catch (IOException IOe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, IOe);
+ }
+
+ // stop all the workers
+ synchronized(workers) {
+ for (_workerthread t: workers)
+ t.halt();
+ }
+
+ // make sure none are blocking on the runnables queue still
+ synchronized (runnables) {
+ runnables.notifyAll();
+ }
+ }
+
+ public void finalize()
+ {
+ disconnect();
+ }
+ /**
+ * Return any DBus error which has been received.
+ * @return A DBusExecutionException, or null if no error is pending.
+ */
+ public DBusExecutionException getError()
+ {
+ synchronized (pendingErrors) {
+ if (pendingErrors.size() == 0) return null;
+ else
+ return pendingErrors.removeFirst().getException();
+ }
+ }
+
+ /**
+ * Call a method asynchronously and set a callback.
+ * This handler will be called in a separate thread.
+ * @param object The remote object on which to call the method.
+ * @param m The name of the method on the interface to call.
+ * @param callback The callback handler.
+ * @param parameters The parameters to call the method with.
+ */
+ @SuppressWarnings("unchecked")
+ public <A> void callWithCallback(DBusInterface object, String m, CallbackHandler<A> callback, Object... parameters)
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "callWithCallback("+object+","+m+", "+callback);
+ Class[] types = new Class[parameters.length];
+ for (int i = 0; i < parameters.length; i++)
+ types[i] = parameters[i].getClass();
+ RemoteObject ro = importedObjects.get(object);
+
+ try {
+ Method me = null;
+ if (null == ro.iface)
+ me = object.getClass().getMethod(m, types);
+ else {
+ Method[] methods = ro.iface.getMethods();
+ for (Method method: methods) {
+// System.out.println(method.getName());
+ for (Class<?> parameterType: method.getParameterTypes()) {
+// System.out.println("parameter: " + parameterType.getName());
+ }
+ if (method.getName().equals(m)) {
+ me = method;
+ }
+ }
+// Following code doesn't work: if actual paremeter is BasicEList and definition of parameter is List, the method is not found
+// try {
+// Method me2 = ro.iface.getMethod(m, types);
+// } catch (NoSuchMethodException e) {
+// System.out.println("NoSuchMethodException: method name = " + m);
+// for (Class type: types) {
+// System.out.println("type = " + type.getName());
+// }
+// }
+ }
+ RemoteInvocationHandler.executeRemoteMethod(ro, me, this, RemoteInvocationHandler.CALL_TYPE_CALLBACK, callback, parameters);
+ } catch (DBusExecutionException DBEe) {
+ DBEe.printStackTrace();
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw DBEe;
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusExecutionException(e.getMessage());
+ }
+ }
+
+ /**
+ * Call a method asynchronously and get a handle with which to get the reply.
+ * @param object The remote object on which to call the method.
+ * @param m The name of the method on the interface to call.
+ * @param parameters The parameters to call the method with.
+ * @return A handle to the call.
+ */
+ @SuppressWarnings("unchecked")
+ public DBusAsyncReply callMethodAsync(DBusInterface object, String m, Object... parameters)
+ {
+ Class<?>[] types = new Class[parameters.length];
+ for (int i = 0; i < parameters.length; i++)
+ types[i] = parameters[i].getClass();
+ RemoteObject ro = importedObjects.get(object);
+
+ try {
+ Method me = null;
+ if (null == ro.iface) {
+// System.out.println("ro.iface == null");
+ me = object.getClass().getMethod(m, types);
+ } else {
+// System.out.println("ro.iface != null");
+ Method[] methods = ro.iface.getMethods();
+ for (Method method: methods) {
+// System.out.println(method.getName());
+// for (Class<?> parameterType: method.getParameterTypes()) {
+// System.out.println("parameter: " + parameterType.getName());
+// }
+ if (method.getName().equals(m)) {
+ me = method;
+ }
+ }
+// me = ro.iface.getMethod(m, types);
+// System.out.println("me = " + me);
+ }
+ return (DBusAsyncReply) RemoteInvocationHandler.executeRemoteMethod(ro, me, this, RemoteInvocationHandler.CALL_TYPE_ASYNC, null, parameters);
+ } catch (DBusExecutionException DBEe) {
+ DBEe.printStackTrace();
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw DBEe;
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusExecutionException(e.getMessage());
+ }
+ }
+
+ private void handleMessage(final MethodCall m) throws DBusException
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Handling incoming method call: "+m);
+
+ currentSender = m.getSource(); // pego
+ ExportedObject eo = null;
+ Method meth = null;
+ Object o = null;
+
+ if (null == m.getInterface() ||
+ m.getInterface().equals("org.freedesktop.DBus.Peer") ||
+ m.getInterface().equals("org.freedesktop.DBus.Introspectable")) {
+ synchronized (exportedObjects) {
+ eo = exportedObjects.get(null);
+ }
+ if (null != eo && null == eo.object.get()) {
+ unExportObject(null);
+ eo = null;
+ }
+ if (null != eo) {
+ meth = eo.methods.get(new MethodTuple(m.getName(), m.getSig()));
+ }
+ if (null != meth)
+ o = new _globalhandler(m.getPath());
+ else
+ eo = null;
+ }
+ if (null == o) {
+ // now check for specific exported functions
+
+ synchronized (exportedObjects) {
+ eo = exportedObjects.get(m.getPath());
+ }
+ if (null != eo && null == eo.object.get()) {
+ if (Debug.debug) Debug.print(Debug.INFO, "Unexporting "+m.getPath()+" implicitly");
+ unExportObject(m.getPath());
+ eo = null;
+ }
+
+ if (null == eo) {
+ eo = fallbackcontainer.get(m.getPath());
+ }
+
+ if (null == eo) {
+ try {
+ queueOutgoing(new Error(m, new DBus.Error.UnknownObject(m.getPath()+_(" is not an object provided by this process."))));
+ } catch (DBusException DBe) {}
+ return;
+ }
+ if (Debug.debug) {
+ Debug.print(Debug.VERBOSE, "Searching for method "+m.getName()+" with signature "+m.getSig());
+ Debug.print(Debug.VERBOSE, "List of methods on "+eo+":");
+ for (MethodTuple mt: eo.methods.keySet())
+ Debug.print(Debug.VERBOSE, " "+mt+" => "+eo.methods.get(mt));
+ }
+ meth = eo.methods.get(new MethodTuple(m.getName(), m.getSig()));
+ if (null == meth) {
+ try {
+ queueOutgoing(new Error(m, new DBus.Error.UnknownMethod(MessageFormat.format(_("The method `{0}.{1}' does not exist on this object."), new Object[] { m.getInterface(), m.getName() }))));
+ } catch (DBusException DBe) {}
+ return;
+ }
+ o = eo.object.get();
+ }
+
+ // now execute it
+ final Method me = meth;
+ final Object ob = o;
+ final boolean noreply = (1 == (m.getFlags() & Message.Flags.NO_REPLY_EXPECTED));
+ final DBusCallInfo info = new DBusCallInfo(m);
+ final AbstractConnection conn = this;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Adding Runnable for method "+meth);
+ addRunnable(new Runnable()
+ {
+ private boolean run = false;
+ public synchronized void run()
+ {
+ if (run) return;
+ run = true;
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Running method "+me+" for remote call");
+ try {
+ Type[] ts = me.getGenericParameterTypes();
+ m.setArgs(Marshalling.deSerializeParameters(m.getParameters(), ts, conn));
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Deserialised "+Arrays.deepToString(m.getParameters())+" to types "+Arrays.deepToString(ts));
+ } catch (Exception e) {
+ e.printStackTrace();
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ try {
+ conn.queueOutgoing(new Error(m, new DBus.Error.UnknownMethod(_("Failure in de-serializing message: ")+e)));
+ } catch (DBusException DBe) {}
+ return;
+ }
+
+ try {
+ synchronized (infomap) {
+ infomap.put(Thread.currentThread(), info);
+ }
+ Object result;
+ try {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Invoking Method: "+me+" on "+ob+" with parameters "+Arrays.deepToString(m.getParameters()));
+ result = me.invoke(ob, m.getParameters());
+ } catch (InvocationTargetException ITe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, ITe.getCause());
+ throw ITe.getCause();
+ }
+ synchronized (infomap) {
+ infomap.remove(Thread.currentThread());
+ }
+ if (!noreply) {
+ MethodReturn reply;
+ if (Void.TYPE.equals(me.getReturnType()))
+ reply = new MethodReturn(m, null);
+ else {
+ StringBuffer sb = new StringBuffer();
+ for (String s: Marshalling.getDBusType(me.getGenericReturnType()))
+ sb.append(s);
+ Object[] nr = Marshalling.convertParameters(new Object[] { result }, new Type[] {me.getGenericReturnType()}, conn);
+
+ reply = new MethodReturn(m, sb.toString(),nr);
+ }
+ conn.queueOutgoing(reply);
+ }
+ } catch (DBusExecutionException DBEe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ try {
+ conn.queueOutgoing(new Error(m, DBEe));
+ } catch (DBusException DBe) {}
+ } catch (Throwable e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ try {
+ conn.queueOutgoing(new Error(m, new DBusExecutionException(MessageFormat.format(_("Error Executing Method {0}.{1}: {2}"), new Object[] { m.getInterface(), m.getName(), e.getMessage() }))));
+ } catch (DBusException DBe) {}
+ }
+ }
+ });
+ }
+ @SuppressWarnings({"unchecked","deprecation"})
+ private void handleMessage(final DBusSignal s)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Handling incoming signal: "+s);
+ Vector<DBusSigHandler<? extends DBusSignal>> v = new Vector<DBusSigHandler<? extends DBusSignal>>();
+ synchronized(handledSignals) {
+ Vector<DBusSigHandler<? extends DBusSignal>> t;
+ t = handledSignals.get(new SignalTuple(s.getInterface(), s.getName(), null, null));
+ if (null != t) v.addAll(t);
+ t = handledSignals.get(new SignalTuple(s.getInterface(), s.getName(), s.getPath(), null));
+ if (null != t) v.addAll(t);
+ t = handledSignals.get(new SignalTuple(s.getInterface(), s.getName(), null, s.getSource()));
+ if (null != t) v.addAll(t);
+ t = handledSignals.get(new SignalTuple(s.getInterface(), s.getName(), s.getPath(), s.getSource()));
+ if (null != t) v.addAll(t);
+ }
+ if (0 == v.size()) return;
+ final AbstractConnection conn = this;
+ for (final DBusSigHandler<? extends DBusSignal> h: v) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Adding Runnable for signal "+s+" with handler "+h);
+ addRunnable(new Runnable() {
+ private boolean run = false;
+ public synchronized void run()
+ {
+ if (run) return;
+ run = true;
+ try {
+ DBusSignal rs;
+ if (s instanceof DBusSignal.internalsig || s.getClass().equals(DBusSignal.class))
+ rs = s.createReal(conn);
+ else
+ rs = s;
+ ((DBusSigHandler<DBusSignal>)h).handle(rs);
+ } catch (DBusException DBe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ try {
+ conn.queueOutgoing(new Error(s, new DBusExecutionException("Error handling signal "+s.getInterface()+"."+s.getName()+": "+DBe.getMessage())));
+ } catch (DBusException DBe2) {}
+ }
+ }
+ });
+ }
+ }
+ private void handleMessage(final Error err)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Handling incoming error: "+err);
+ MethodCall m = null;
+ if (null == pendingCalls) return;
+ synchronized (pendingCalls) {
+ if (pendingCalls.contains(err.getReplySerial()))
+ m = pendingCalls.remove(err.getReplySerial());
+ }
+ if (null != m) {
+ m.setReply(err);
+ CallbackHandler cbh = null;
+ DBusAsyncReply asr = null;
+ synchronized (pendingCallbacks) {
+ cbh = pendingCallbacks.remove(m);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, cbh+" = pendingCallbacks.remove("+m+")");
+ asr = pendingCallbackReplys.remove(m);
+ }
+ // queue callback for execution
+ if (null != cbh) {
+ final CallbackHandler fcbh = cbh;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Adding Error Runnable with callback handler "+fcbh);
+ addRunnable(new Runnable() {
+ private boolean run = false;
+ public synchronized void run()
+ {
+ if (run) return;
+ run = true;
+ try {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Running Error Callback for "+err);
+ DBusCallInfo info = new DBusCallInfo(err);
+ synchronized (infomap) {
+ infomap.put(Thread.currentThread(), info);
+ }
+
+ fcbh.handleError(err.getException());
+ synchronized (infomap) {
+ infomap.remove(Thread.currentThread());
+ }
+
+ } catch (Exception e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ }
+ }
+ });
+ }
+
+ }
+ else
+ synchronized (pendingErrors) {
+ pendingErrors.addLast(err); }
+ }
+ @SuppressWarnings("unchecked")
+ private void handleMessage(final MethodReturn mr)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Handling incoming method return: "+mr);
+ MethodCall m = null;
+ if (null == pendingCalls) return;
+ synchronized (pendingCalls) {
+ if (pendingCalls.contains(mr.getReplySerial()))
+ m = pendingCalls.remove(mr.getReplySerial());
+ }
+ if (null != m) {
+ m.setReply(mr);
+ mr.setCall(m);
+ CallbackHandler cbh = null;
+ DBusAsyncReply asr = null;
+ synchronized (pendingCallbacks) {
+ cbh = pendingCallbacks.remove(m);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, cbh+" = pendingCallbacks.remove("+m+")");
+ asr = pendingCallbackReplys.remove(m);
+ }
+ // queue callback for execution
+ if (null != cbh) {
+ final CallbackHandler fcbh = cbh;
+ final DBusAsyncReply fasr = asr;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Adding Runnable for method "+fasr.getMethod()+" with callback handler "+fcbh);
+ addRunnable(new Runnable() {
+ private boolean run = false;
+ public synchronized void run()
+ {
+ if (run) return;
+ run = true;
+ try {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Running Callback for "+mr);
+ DBusCallInfo info = new DBusCallInfo(mr);
+ synchronized (infomap) {
+ infomap.put(Thread.currentThread(), info);
+ }
+
+ fcbh.handle(RemoteInvocationHandler.convertRV(mr.getSig(), mr.getParameters(), fasr.getMethod(), fasr.getConnection()));
+ synchronized (infomap) {
+ infomap.remove(Thread.currentThread());
+ }
+
+ } catch (Exception e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ }
+ }
+ });
+ }
+
+ } else
+ try {
+ queueOutgoing(new Error(mr, new DBusExecutionException(_("Spurious reply. No message with the given serial id was awaiting a reply."))));
+ } catch (DBusException DBe) {}
+ }
+ protected void sendMessage(Message m)
+ {
+ try {
+ if (!connected) throw new NotConnected(_("Disconnected"));
+ if (m instanceof DBusSignal)
+ ((DBusSignal) m).appendbody(this);
+
+ if (m instanceof MethodCall) {
+ if (0 == (m.getFlags() & Message.Flags.NO_REPLY_EXPECTED))
+ if (null == pendingCalls)
+ ((MethodCall) m).setReply(new Error("org.freedesktop.DBus.Local", "org.freedesktop.DBus.Local.Disconnected", 0, "s", new Object[] { _("Disconnected") }));
+ else synchronized (pendingCalls) {
+ pendingCalls.put(m.getSerial(),(MethodCall) m);
+ }
+ }
+
+ transport.mout.writeMessage(m);
+
+ } catch (Exception e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ if (m instanceof MethodCall && e instanceof NotConnected)
+ try {
+ ((MethodCall) m).setReply(new Error("org.freedesktop.DBus.Local", "org.freedesktop.DBus.Local.Disconnected", 0, "s", new Object[] { _("Disconnected") }));
+ } catch (DBusException DBe) {}
+ if (m instanceof MethodCall && e instanceof DBusExecutionException)
+ try {
+ ((MethodCall)m).setReply(new Error(m, e));
+ } catch (DBusException DBe) {}
+ else if (m instanceof MethodCall)
+ try {
+ if (Debug.debug) Debug.print(Debug.INFO, "Setting reply to "+m+" as an error");
+ ((MethodCall)m).setReply(new Error(m, new DBusExecutionException(_("Message Failed to Send: ")+e.getMessage())));
+ } catch (DBusException DBe) {}
+ else if (m instanceof MethodReturn)
+ try {
+ transport.mout.writeMessage(new Error(m, e));
+ } catch(IOException IOe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, IOe);
+ } catch(DBusException IOe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ }
+ if (e instanceof IOException) disconnect();
+ }
+ }
+ private Message readIncoming() throws DBusException
+ {
+ if (!connected) throw new NotConnected(_("No transport present"));
+ Message m = null;
+ try {
+ m = transport.min.readMessage();
+ } catch (IOException IOe) {
+ throw new FatalDBusException(IOe.getMessage());
+ }
+ return m;
+ }
+ /**
+ * Returns the address this connection is connected to.
+ */
+ public BusAddress getAddress() throws ParseException { return new BusAddress(addr); }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ArrayFrob.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ArrayFrob.java
new file mode 100755
index 0000000..978b198
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ArrayFrob.java
@@ -0,0 +1,173 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Array;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.List;
+
+import cx.ath.matthew.debug.Debug;
+
+class ArrayFrob
+{
+ static Hashtable<Class<? extends Object>, Class<? extends Object>> primitiveToWrapper = new Hashtable<Class<? extends Object>, Class<? extends Object>>();
+ static Hashtable<Class<? extends Object>, Class<? extends Object>> wrapperToPrimitive = new Hashtable<Class<? extends Object>, Class<? extends Object>>();
+ static {
+ primitiveToWrapper.put( Boolean.TYPE, Boolean.class );
+ primitiveToWrapper.put( Byte.TYPE, Byte.class );
+ primitiveToWrapper.put( Short.TYPE, Short.class );
+ primitiveToWrapper.put( Character.TYPE, Character.class );
+ primitiveToWrapper.put( Integer.TYPE, Integer.class );
+ primitiveToWrapper.put( Long.TYPE, Long.class );
+ primitiveToWrapper.put( Float.TYPE, Float.class );
+ primitiveToWrapper.put( Double.TYPE, Double.class );
+ wrapperToPrimitive.put( Boolean.class, Boolean.TYPE );
+ wrapperToPrimitive.put( Byte.class, Byte.TYPE );
+ wrapperToPrimitive.put( Short.class, Short.TYPE );
+ wrapperToPrimitive.put( Character.class, Character.TYPE );
+ wrapperToPrimitive.put( Integer.class, Integer.TYPE );
+ wrapperToPrimitive.put( Long.class, Long.TYPE );
+ wrapperToPrimitive.put( Float.class, Float.TYPE );
+ wrapperToPrimitive.put( Double.class, Double.TYPE );
+
+ }
+ @SuppressWarnings("unchecked")
+ public static <T> T[] wrap(Object o) throws IllegalArgumentException
+ {
+ Class<? extends Object> ac = o.getClass();
+ if (!ac.isArray()) throw new IllegalArgumentException(_("Not an array"));
+ Class<? extends Object> cc = ac.getComponentType();
+ Class<? extends Object> ncc = primitiveToWrapper.get(cc);
+ if (null == ncc) throw new IllegalArgumentException(_("Not a primitive type"));
+ T[] ns = (T[]) Array.newInstance(ncc, Array.getLength(o));
+ for (int i = 0; i < ns.length; i++)
+ ns[i] = (T) Array.get(o, i);
+ return ns;
+ }
+ @SuppressWarnings("unchecked")
+ public static <T> Object unwrap(T[] ns) throws IllegalArgumentException
+ {
+ Class<? extends T[]> ac = (Class<? extends T[]>) ns.getClass();
+ Class<T> cc = (Class<T>) ac.getComponentType();
+ Class<? extends Object> ncc = wrapperToPrimitive.get(cc);
+ if (null == ncc) throw new IllegalArgumentException(_("Not a wrapper type"));
+ Object o = Array.newInstance(ncc, ns.length);
+ for (int i = 0; i < ns.length; i++)
+ Array.set(o, i, ns[i]);
+ return o;
+ }
+ public static <T> List<T> listify(T[] ns) throws IllegalArgumentException
+ {
+ return Arrays.asList(ns);
+ }
+ @SuppressWarnings("unchecked")
+ public static <T> List<T> listify(Object o) throws IllegalArgumentException
+ {
+ if (o instanceof Object[]) return listify((T[]) o);
+ if (!o.getClass().isArray()) throw new IllegalArgumentException(_("Not an array"));
+ List<T> l = new ArrayList<T>(Array.getLength(o));
+ for (int i = 0; i < Array.getLength(o); i++)
+ l.add((T)Array.get(o, i));
+ return l;
+ }
+ @SuppressWarnings("unchecked")
+ public static <T> T[] delist(List<T> l, Class<T> c) throws IllegalArgumentException
+ {
+ return l.toArray((T[]) Array.newInstance(c, 0));
+ }
+ public static <T> Object delistprimitive(List<T> l, Class<T> c) throws IllegalArgumentException
+ {
+ Object o = Array.newInstance(c, l.size());
+ for (int i = 0; i < l.size(); i++)
+ Array.set(o, i, l.get(i));
+ return o;
+ }
+ @SuppressWarnings("unchecked")
+ public static Object convert(Object o, Class<? extends Object> c) throws IllegalArgumentException
+ {
+ /* Possible Conversions:
+ *
+ ** List<Integer> -> List<Integer>
+ ** List<Integer> -> int[]
+ ** List<Integer> -> Integer[]
+ ** int[] -> int[]
+ ** int[] -> List<Integer>
+ ** int[] -> Integer[]
+ ** Integer[] -> Integer[]
+ ** Integer[] -> int[]
+ ** Integer[] -> List<Integer>
+ */
+ try {
+ // List<Integer> -> List<Integer>
+ if (List.class.equals(c)
+ && o instanceof List)
+ return o;
+
+ // int[] -> List<Integer>
+ // Integer[] -> List<Integer>
+ if (List.class.equals(c)
+ && o.getClass().isArray())
+ return listify(o);
+
+ // int[] -> int[]
+ // Integer[] -> Integer[]
+ if (o.getClass().isArray()
+ && c.isArray()
+ && o.getClass().getComponentType().equals(c.getComponentType()))
+ return o;
+
+ // int[] -> Integer[]
+ if (o.getClass().isArray()
+ && c.isArray()
+ && o.getClass().getComponentType().isPrimitive())
+ return wrap(o);
+
+ // Integer[] -> int[]
+ if (o.getClass().isArray()
+ && c.isArray()
+ && c.getComponentType().isPrimitive())
+ return unwrap((Object[]) o);
+
+ // List<Integer> -> int[]
+ if (o instanceof List
+ && c.isArray()
+ && c.getComponentType().isPrimitive())
+ return delistprimitive((List<Object>) o, (Class<Object>) c.getComponentType());
+
+ // List<Integer> -> Integer[]
+ if (o instanceof List
+ && c.isArray())
+ return delist((List<Object>) o, (Class<Object>) c.getComponentType());
+
+ if (o.getClass().isArray()
+ && c.isArray())
+ return type((Object[]) o, (Class<Object>) c.getComponentType());
+
+ } catch (Exception e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new IllegalArgumentException(e);
+ }
+
+ throw new IllegalArgumentException(MessageFormat.format(_("Not An Expected Convertion type from {0} to {1}"), new Object[] { o.getClass(), c}));
+ }
+ public static Object[] type(Object[] old, Class<Object> c)
+ {
+ Object[] ns = (Object[]) Array.newInstance(c, old.length);
+ for (int i = 0; i < ns.length; i++)
+ ns[i] = old[i];
+ return ns;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/BusAddress.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/BusAddress.java
new file mode 100755
index 0000000..84594da
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/BusAddress.java
@@ -0,0 +1,41 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+import static org.freedesktop.dbus.Gettext._;
+import java.text.ParseException;
+import java.util.Map;
+import java.util.HashMap;
+import cx.ath.matthew.debug.Debug;
+
+public class BusAddress
+{
+ private String type;
+ private Map<String,String> parameters;
+ public BusAddress(String address) throws ParseException
+ {
+ if (null == address || "".equals(address)) throw new ParseException(_("Bus address is blank"), 0);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Parsing bus address: "+address);
+ String[] ss = address.split(":", 2);
+ if (ss.length < 2) throw new ParseException(_("Bus address is invalid: ")+address, 0);
+ type = ss[0];
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Transport type: "+type);
+ String[] ps = ss[1].split(",");
+ parameters = new HashMap<String,String>();
+ for (String p: ps) {
+ String[] kv = p.split("=", 2);
+ parameters.put(kv[0], kv[1]);
+ }
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Transport options: "+parameters);
+ }
+ public String getType() { return type; }
+ public String getParameter(String key) { return parameters.get(key); }
+ public String toString() { return type+": "+parameters; }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/CallbackHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/CallbackHandler.java
new file mode 100755
index 0000000..b05b500
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/CallbackHandler.java
@@ -0,0 +1,22 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+/**
+ * Interface for callbacks in async mode
+ */
+public interface CallbackHandler<ReturnType>
+{
+ public void handle(ReturnType r);
+ public void handleError(DBusExecutionException e);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Container.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Container.java
new file mode 100755
index 0000000..d2efb67
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Container.java
@@ -0,0 +1,88 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.lang.reflect.Field;
+import java.lang.reflect.Type;
+
+/**
+ * This class is the super class of both Structs and Tuples
+ * and holds common methods.
+ */
+abstract class Container
+{
+ private static Map<Type,Type[]> typecache = new HashMap<Type,Type[]>();
+ static void putTypeCache(Type k, Type[] v)
+ {
+ typecache.put(k, v);
+ }
+ static Type[] getTypeCache(Type k)
+ {
+ return typecache.get(k);
+ }
+ private Object[] parameters = null;
+ public Container() {}
+ private void setup()
+ {
+ Field[] fs = getClass().getDeclaredFields();
+ Object[] args = new Object[fs.length];
+
+ int diff = 0;
+ for (Field f : fs) {
+ Position p = f.getAnnotation(Position.class);
+ if (null == p) {
+ diff++;
+ continue;
+ }
+ try {
+ args[p.value()] = f.get(this);
+ } catch (IllegalAccessException IAe) {}
+ }
+
+ this.parameters = new Object[args.length - diff];
+ System.arraycopy(args, 0, parameters, 0, parameters.length);
+ }
+ /**
+ * Returns the struct contents in order.
+ * @throws DBusException If there is a problem doing this.
+ */
+ public final Object[] getParameters()
+ {
+ if (null != parameters) return parameters;
+ setup();
+ return parameters;
+ }
+ /** Returns this struct as a string. */
+ public final String toString()
+ {
+ String s = getClass().getName()+"<";
+ if (null == parameters)
+ setup();
+ if (0 == parameters.length)
+ return s+">";
+ for (Object o: parameters)
+ s += o+", ";
+ return s.replaceAll(", $", ">");
+ }
+ public final boolean equals(Object other)
+ {
+ if (other instanceof Container) {
+ Container that = (Container) other;
+ if (this.getClass().equals(that.getClass()))
+ return Arrays.equals(this.getParameters(), that.getParameters());
+ else return false;
+ }
+ else return false;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusAsyncReply.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusAsyncReply.java
new file mode 100755
index 0000000..252cf07
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusAsyncReply.java
@@ -0,0 +1,111 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.freedesktop.DBus.Error.NoReply;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+import cx.ath.matthew.debug.Debug;
+
+/**
+ * A handle to an asynchronous method call.
+ */
+public class DBusAsyncReply<ReturnType>
+{
+ /**
+ * Check if any of a set of asynchronous calls have had a reply.
+ * @param replies A Collection of handles to replies to check.
+ * @return A Collection only containing those calls which have had replies.
+ */
+ public static Collection<DBusAsyncReply<? extends Object>> hasReply(Collection<DBusAsyncReply<? extends Object>> replies)
+ {
+ Collection<DBusAsyncReply<? extends Object>> c = new ArrayList<DBusAsyncReply<? extends Object>>(replies);
+ Iterator<DBusAsyncReply<? extends Object>> i = c.iterator();
+ while (i.hasNext())
+ if (!i.next().hasReply()) i.remove();
+ return c;
+ }
+
+ private ReturnType rval = null;
+ private DBusExecutionException error = null;
+ private MethodCall mc;
+ private Method me;
+ private AbstractConnection conn;
+ DBusAsyncReply(MethodCall mc, Method me, AbstractConnection conn)
+ {
+ this.mc = mc;
+ this.me = me;
+ this.conn = conn;
+ }
+ @SuppressWarnings("unchecked")
+ private synchronized void checkReply()
+ {
+ if (mc.hasReply()) {
+ Message m = mc.getReply();
+ if (m instanceof Error)
+ error = ((Error) m).getException();
+ else if (m instanceof MethodReturn) {
+ try {
+ rval = (ReturnType) RemoteInvocationHandler.convertRV(m.getSig(), m.getParameters(), me, conn);
+ } catch (DBusExecutionException DBEe) {
+ error = DBEe;
+ } catch (DBusException DBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ error = new DBusExecutionException(DBe.getMessage());
+ }
+ }
+ }
+ }
+
+ /**
+ * Check if we've had a reply.
+ * @return True if we have a reply
+ */
+ public boolean hasReply()
+ {
+ if (null != rval || null != error) return true;
+ checkReply();
+ return null != rval || null != error;
+ }
+
+ /**
+ * Get the reply.
+ * @return The return value from the method.
+ * @throws DBusExecutionException if the reply to the method was an error.
+ * @throws NoReply if the method hasn't had a reply yet
+ */
+ public ReturnType getReply() throws DBusExecutionException
+ {
+ if (null != rval) return rval;
+ else if (null != error) throw error;
+ checkReply();
+ if (null != rval) return rval;
+ else if (null != error) throw error;
+ else throw new NoReply(_("Async call has not had a reply"));
+ }
+
+ public String toString()
+ {
+ return _("Waiting for: ")+mc;
+ }
+ Method getMethod() { return me; }
+ AbstractConnection getConnection() { return conn; }
+ MethodCall getCall() { return mc; }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusCallInfo.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusCallInfo.java
new file mode 100755
index 0000000..d34ef4e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusCallInfo.java
@@ -0,0 +1,51 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+/**
+ * Holds information on a method call
+ */
+public class DBusCallInfo
+{
+ /**
+ * Indicates the caller won't wait for a reply (and we won't send one).
+ */
+ public static final int NO_REPLY = Message.Flags.NO_REPLY_EXPECTED;
+ public static final int ASYNC = 0x100;
+ private String source;
+ private String destination;
+ private String objectpath;
+ private String iface;
+ private String method;
+ private int flags;
+ DBusCallInfo(Message m)
+ {
+ this.source = m.getSource();
+ this.destination = m.getDestination();
+ this.objectpath = m.getPath();
+ this.iface = m.getInterface();
+ this.method = m.getName();
+ this.flags = m.getFlags();
+ }
+
+ /** Returns the BusID which called the method */
+ public String getSource() { return source; }
+ /** Returns the name with which we were addressed on the Bus */
+ public String getDestination() { return destination; }
+ /** Returns the object path used to call this method */
+ public String getObjectPath() { return objectpath; }
+ /** Returns the interface this method was called with */
+ public String getInterface() { return iface; }
+ /** Returns the method name used to call this method */
+ public String getMethod() { return method; }
+ /** Returns any flags set on this method call */
+ public int getFlags() { return flags; }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusConnection.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusConnection.java
new file mode 100755
index 0000000..6609833
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusConnection.java
@@ -0,0 +1,780 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Proxy;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import java.text.MessageFormat;
+import java.text.ParseException;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.exceptions.NotConnected;
+
+import cx.ath.matthew.debug.Debug;
+
+/** Handles a connection to DBus.
+ * <p>
+ * This is a Singleton class, only 1 connection to the SYSTEM or SESSION busses can be made.
+ * Repeated calls to getConnection will return the same reference.
+ * </p>
+ * <p>
+ * Signal Handlers and method calls from remote objects are run in their own threads, you MUST handle the concurrency issues.
+ * </p>
+ */
+public class DBusConnection extends AbstractConnection
+{
+ /**
+ * Add addresses of peers to a set which will watch for them to
+ * disappear and automatically remove them from the set.
+ */
+ public class PeerSet implements Set<String>, DBusSigHandler<DBus.NameOwnerChanged>
+ {
+ private Set<String> addresses;
+ public PeerSet()
+ {
+ addresses = new TreeSet<String>();
+ try {
+ addSigHandler(new DBusMatchRule(DBus.NameOwnerChanged.class, null, null), this);
+ } catch (DBusException DBe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ }
+ }
+ public void handle(DBus.NameOwnerChanged noc)
+ {
+ if (Debug.debug)
+ Debug.print(Debug.DEBUG, "Received NameOwnerChanged("+noc.name+","+noc.old_owner+","+noc.new_owner+")");
+ if ("".equals(noc.new_owner) && addresses.contains(noc.name))
+ remove(noc.name);
+ }
+ public boolean add(String address)
+ {
+ if (Debug.debug)
+ Debug.print(Debug.DEBUG, "Adding "+address);
+ synchronized (addresses) {
+ return addresses.add(address);
+ }
+ }
+ public boolean addAll(Collection<? extends String> addresses)
+ {
+ synchronized (this.addresses) {
+ return this.addresses.addAll(addresses);
+ }
+ }
+ public void clear()
+ {
+ synchronized (addresses) {
+ addresses.clear();
+ }
+ }
+ public boolean contains(Object o)
+ {
+ return addresses.contains(o);
+ }
+ public boolean containsAll(Collection<?> os)
+ {
+ return addresses.containsAll(os);
+ }
+ public boolean equals(Object o)
+ {
+ if (o instanceof PeerSet)
+ return ((PeerSet) o).addresses.equals(addresses);
+ else return false;
+ }
+ public int hashCode()
+ {
+ return addresses.hashCode();
+ }
+ public boolean isEmpty()
+ {
+ return addresses.isEmpty();
+ }
+ public Iterator<String> iterator()
+ {
+ return addresses.iterator();
+ }
+ public boolean remove(Object o)
+ {
+ if (Debug.debug)
+ Debug.print(Debug.DEBUG, "Removing "+o);
+ synchronized(addresses) {
+ return addresses.remove(o);
+ }
+ }
+ public boolean removeAll(Collection<?> os)
+ {
+ synchronized(addresses) {
+ return addresses.removeAll(os);
+ }
+ }
+ public boolean retainAll(Collection<?> os)
+ {
+ synchronized(addresses) {
+ return addresses.retainAll(os);
+ }
+ }
+ public int size()
+ {
+ return addresses.size();
+ }
+ public Object[] toArray()
+ {
+ synchronized(addresses) {
+ return addresses.toArray();
+ }
+ }
+ public <T> T[] toArray(T[] a)
+ {
+ synchronized(addresses) {
+ return addresses.toArray(a);
+ }
+ }
+ }
+ private class _sighandler implements DBusSigHandler<DBusSignal>
+ {
+ public void handle(DBusSignal s)
+ {
+ if (s instanceof org.freedesktop.DBus.Local.Disconnected) {
+ if (Debug.debug) Debug.print(Debug.WARN, "Handling Disconnected signal from bus");
+ try {
+ Error err = new Error(
+ "org.freedesktop.DBus.Local" , "org.freedesktop.DBus.Local.Disconnected", 0, "s", new Object[] { _("Disconnected") });
+ if (null != pendingCalls) synchronized (pendingCalls) {
+ long[] set = pendingCalls.getKeys();
+ for (long l: set) if (-1 != l) {
+ MethodCall m = pendingCalls.remove(l);
+ if (null != m)
+ m.setReply(err);
+ }
+ }
+ synchronized (pendingErrors) {
+ pendingErrors.add(err);
+ }
+ } catch (DBusException DBe) {}
+ } else if (s instanceof org.freedesktop.DBus.NameAcquired) {
+ busnames.add(((org.freedesktop.DBus.NameAcquired) s).name);
+ }
+ }
+ }
+
+ /**
+ * System Bus
+ */
+ public static final int SYSTEM = 0;
+ /**
+ * Session Bus
+ */
+ public static final int SESSION = 1;
+
+ public static final String DEFAULT_SYSTEM_BUS_ADDRESS = "unix:path=/var/run/dbus/system_bus_socket";
+
+ private List<String> busnames;
+
+ private static final Map<Object,DBusConnection> conn = new HashMap<Object,DBusConnection>();
+ private int _refcount = 0;
+ private Object _reflock = new Object();
+ private DBus _dbus;
+
+ /**
+ * Connect to the BUS. If a connection already exists to the specified Bus, a reference to it is returned.
+ * @param address The address of the bus to connect to
+ * @throws DBusException If there is a problem connecting to the Bus.
+ */
+ public static DBusConnection getConnection(String address) throws DBusException
+ {
+ synchronized (conn) {
+ DBusConnection c = conn.get(address);
+ if (null != c) {
+ synchronized (c._reflock) { c._refcount++; }
+ return c;
+ }
+ else {
+ c = new DBusConnection(address);
+ conn.put(address, c);
+ return c;
+ }
+ }
+ }
+ /**
+ * Connect to the BUS. If a connection already exists to the specified Bus, a reference to it is returned.
+ * @param bustype The Bus to connect to.
+ * @see #SYSTEM
+ * @see #SESSION
+ * @throws DBusException If there is a problem connecting to the Bus.
+ */
+ public static DBusConnection getConnection(int bustype) throws DBusException
+ {
+ synchronized (conn) {
+ String s = null;
+ switch (bustype) {
+ case SYSTEM:
+ s = System.getenv("DBUS_SYSTEM_BUS_ADDRESS");
+ if (null == s) s = DEFAULT_SYSTEM_BUS_ADDRESS;
+ break;
+ case SESSION:
+ s = System.getenv("DBUS_SESSION_BUS_ADDRESS");
+ if (null == s) {
+ // address gets stashed in $HOME/.dbus/session-bus/`dbus-uuidgen --get`-`sed 's/:\(.\)\..*/\1/' <<< $DISPLAY`
+ String display = System.getenv("DISPLAY");
+ if (null == display) throw new DBusException(_("Cannot Resolve Session Bus Address"));
+ File uuidfile = new File("/var/lib/dbus/machine-id");
+ if (!uuidfile.exists()) throw new DBusException(_("Cannot Resolve Session Bus Address"));
+ try {
+ BufferedReader r = new BufferedReader(new FileReader(uuidfile));
+ String uuid = r.readLine();
+ String homedir = System.getProperty("user.home");
+ File addressfile = new File(homedir + "/.dbus/session-bus",
+ uuid + "-" + display.replaceAll(":([0-9]*)\\..*", "$1"));
+ if (!addressfile.exists()) throw new DBusException(_("Cannot Resolve Session Bus Address"));
+ r = new BufferedReader(new FileReader(addressfile));
+ String l;
+ while (null != (l = r.readLine())) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Reading D-Bus session data: "+l);
+ if (l.matches("DBUS_SESSION_BUS_ADDRESS.*")) {
+ s = l.replaceAll("^[^=]*=", "");
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Parsing "+l+" to "+s);
+ }
+ }
+ if (null == s || "".equals(s)) throw new DBusException(_("Cannot Resolve Session Bus Address"));
+ if (Debug.debug) Debug.print(Debug.INFO, "Read bus address "+s+" from file "+addressfile.toString());
+ } catch (Exception e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusException(_("Cannot Resolve Session Bus Address"));
+ }
+ }
+ break;
+ default:
+ throw new DBusException(_("Invalid Bus Type: ")+bustype);
+ }
+ DBusConnection c = conn.get(s);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Getting bus connection for "+s+": "+c);
+ if (null != c) {
+ synchronized (c._reflock) { c._refcount++; }
+ return c;
+ }
+ else {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Creating new bus connection to: "+s);
+ c = new DBusConnection(s);
+ conn.put(s, c);
+ return c;
+ }
+ }
+ }
+ @SuppressWarnings("unchecked")
+ private DBusConnection(String address) throws DBusException
+ {
+ super(address);
+ busnames = new Vector<String>();
+
+ synchronized (_reflock) {
+ _refcount = 1;
+ }
+
+ try {
+ transport = new Transport(addr, AbstractConnection.TIMEOUT);
+ connected = true;
+ } catch (IOException IOe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, IOe);
+ disconnect();
+ throw new DBusException(_("Failed to connect to bus ")+IOe.getMessage());
+ } catch (ParseException Pe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, Pe);
+ disconnect();
+ throw new DBusException(_("Failed to connect to bus ")+Pe.getMessage());
+ }
+
+ // start listening for calls
+ listen();
+
+ // register disconnect handlers
+ DBusSigHandler h = new _sighandler();
+ addSigHandlerWithoutMatch(org.freedesktop.DBus.Local.Disconnected.class, h);
+ addSigHandlerWithoutMatch(org.freedesktop.DBus.NameAcquired.class, h);
+
+ // register ourselves
+ _dbus = getRemoteObject("org.freedesktop.DBus", "/org/freedesktop/DBus", DBus.class);
+ try {
+ busnames.add(_dbus.Hello());
+ } catch (DBusExecutionException DBEe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw new DBusException(DBEe.getMessage());
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ DBusInterface dynamicProxy(String source, String path) throws DBusException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Introspecting "+path+" on "+source+" for dynamic proxy creation");
+ try {
+ DBus.Introspectable intro = getRemoteObject(source, path, DBus.Introspectable.class);
+ String data = intro.Introspect();
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Got introspection data: "+data);
+ String[] tags = data.split("[<>]");
+ Vector<String> ifaces = new Vector<String>();
+ for (String tag: tags) {
+ if (tag.startsWith("interface")) {
+ ifaces.add(tag.replaceAll("^interface *name *= *['\"]([^'\"]*)['\"].*$", "$1"));
+ }
+ }
+ Vector<Class<? extends Object>> ifcs = new Vector<Class<? extends Object>>();
+ for(String iface: ifaces) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Trying interface "+iface);
+ int j = 0;
+ while (j >= 0) {
+ try {
+ Class ifclass = Class.forName(iface);
+ if (!ifcs.contains(ifclass))
+ ifcs.add(ifclass);
+ break;
+ } catch (Exception e) {}
+ j = iface.lastIndexOf(".");
+ char[] cs = iface.toCharArray();
+ if (j >= 0) {
+ cs[j] = '$';
+ iface = String.valueOf(cs);
+ }
+ }
+ }
+
+ if (ifcs.size() == 0) throw new DBusException(_("Could not find an interface to cast to"));
+
+ RemoteObject ro = new RemoteObject(source, path, null, false);
+ DBusInterface newi = (DBusInterface)
+ Proxy.newProxyInstance(ifcs.get(0).getClassLoader(),
+ ifcs.toArray(new Class[0]),
+ new RemoteInvocationHandler(this, ro));
+ importedObjects.put(newi, ro);
+ return newi;
+ } catch (Exception e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusException(MessageFormat.format(_("Failed to create proxy object for {0} exported by {1}. Reason: {2}"), new Object[] { path, source, e.getMessage() }));
+ }
+ }
+
+ DBusInterface getExportedObject(String source, String path) throws DBusException
+ {
+ ExportedObject o = null;
+ synchronized (exportedObjects) {
+ o = exportedObjects.get(path);
+ }
+ if (null != o && null == o.object.get()) {
+ unExportObject(path);
+ o = null;
+ }
+ if (null != o) return o.object.get();
+ if (null == source) throw new DBusException(_("Not an object exported by this connection and no remote specified"));
+ return dynamicProxy(source, path);
+ }
+
+ /**
+ * Release a bus name.
+ * Releases the name so that other people can use it
+ * @param busname The name to release. MUST be in dot-notation like "org.freedesktop.local"
+ * @throws DBusException If the busname is incorrectly formatted.
+ */
+ public void releaseBusName(String busname) throws DBusException
+ {
+ if (!busname.matches(BUSNAME_REGEX)||busname.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name"));
+ synchronized (this.busnames) {
+ UInt32 rv;
+ try {
+ rv = _dbus.ReleaseName(busname);
+ } catch (DBusExecutionException DBEe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw new DBusException(DBEe.getMessage());
+ }
+ this.busnames.remove(busname);
+ }
+ }
+ /**
+ * Request a bus name.
+ * Request the well known name that this should respond to on the Bus.
+ * @param busname The name to respond to. MUST be in dot-notation like "org.freedesktop.local"
+ * @throws DBusException If the register name failed, or our name already exists on the bus.
+ * or if busname is incorrectly formatted.
+ */
+ public void requestBusName(String busname) throws DBusException
+ {
+ if (!busname.matches(BUSNAME_REGEX)||busname.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name"));
+ synchronized (this.busnames) {
+ UInt32 rv;
+ try {
+ rv = _dbus.RequestName(busname,
+ new UInt32(DBus.DBUS_NAME_FLAG_REPLACE_EXISTING |
+ DBus.DBUS_NAME_FLAG_DO_NOT_QUEUE));
+ } catch (DBusExecutionException DBEe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw new DBusException(DBEe.getMessage());
+ }
+ switch (rv.intValue()) {
+ case DBus.DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER: break;
+ case DBus.DBUS_REQUEST_NAME_REPLY_IN_QUEUE: throw new DBusException(_("Failed to register bus name"));
+ case DBus.DBUS_REQUEST_NAME_REPLY_EXISTS: throw new DBusException(_("Failed to register bus name"));
+ case DBus.DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER: break;
+ default: break;
+ }
+ this.busnames.add(busname);
+ }
+ }
+
+ /**
+ * Returns the unique name of this connection.
+ */
+ public String getUniqueName()
+ {
+ return busnames.get(0);
+ }
+ /**
+ * Returns all the names owned by this connection.
+ */
+ public String[] getNames()
+ {
+ Set<String> names = new TreeSet<String>();
+ names.addAll(busnames);
+ return names.toArray(new String[0]);
+ }
+ public <I extends DBusInterface> I getPeerRemoteObject(String busname, String objectpath, Class<I> type) throws DBusException
+ {
+ return getPeerRemoteObject(busname, objectpath, type, true);
+ }
+ /**
+ * Return a reference to a remote object.
+ * This method will resolve the well known name (if given) to a unique bus name when you call it.
+ * This means that if a well known name is released by one process and acquired by another calls to
+ * objects gained from this method will continue to operate on the original process.
+ *
+ * This method will use bus introspection to determine the interfaces on a remote object and so
+ * <b>may block</b> and <b>may fail</b>. The resulting proxy object will, however, be castable
+ * to any interface it implements. It will also autostart the process if applicable. Also note
+ * that the resulting proxy may fail to execute the correct method with overloaded methods
+ * and that complex types may fail in interesting ways. Basically, if something odd happens,
+ * try specifying the interface explicitly.
+ *
+ * @param busname The bus name to connect to. Usually a well known bus name in dot-notation (such as "org.freedesktop.local")
+ * or may be a DBus address such as ":1-16".
+ * @param objectpath The path on which the process is exporting the object.$
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted.
+ */
+ public DBusInterface getPeerRemoteObject(String busname, String objectpath) throws DBusException
+ {
+ if (null == busname) throw new DBusException(_("Invalid bus name: null"));
+
+ if ((!busname.matches(BUSNAME_REGEX) && !busname.matches(CONNID_REGEX))
+ || busname.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+busname);
+
+ String unique = _dbus.GetNameOwner(busname);
+
+ return dynamicProxy(unique, objectpath);
+ }
+
+ /**
+ * Return a reference to a remote object.
+ * This method will always refer to the well known name (if given) rather than resolving it to a unique bus name.
+ * In particular this means that if a process providing the well known name disappears and is taken over by another process
+ * proxy objects gained by this method will make calls on the new proccess.
+ *
+ * This method will use bus introspection to determine the interfaces on a remote object and so
+ * <b>may block</b> and <b>may fail</b>. The resulting proxy object will, however, be castable
+ * to any interface it implements. It will also autostart the process if applicable. Also note
+ * that the resulting proxy may fail to execute the correct method with overloaded methods
+ * and that complex types may fail in interesting ways. Basically, if something odd happens,
+ * try specifying the interface explicitly.
+ *
+ * @param busname The bus name to connect to. Usually a well known bus name name in dot-notation (such as "org.freedesktop.local")
+ * or may be a DBus address such as ":1-16".
+ * @param objectpath The path on which the process is exporting the object.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted.
+ */
+ public DBusInterface getRemoteObject(String busname, String objectpath) throws DBusException
+ {
+ if (null == busname) throw new DBusException(_("Invalid bus name: null"));
+ if (null == objectpath) throw new DBusException(_("Invalid object path: null"));
+
+ if ((!busname.matches(BUSNAME_REGEX) && !busname.matches(CONNID_REGEX))
+ || busname.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+busname);
+
+ if (!objectpath.matches(OBJECT_REGEX) || objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+
+ return dynamicProxy(busname, objectpath);
+ }
+
+ /**
+ * Return a reference to a remote object.
+ * This method will resolve the well known name (if given) to a unique bus name when you call it.
+ * This means that if a well known name is released by one process and acquired by another calls to
+ * objects gained from this method will continue to operate on the original process.
+ * @param busname The bus name to connect to. Usually a well known bus name in dot-notation (such as "org.freedesktop.local")
+ * or may be a DBus address such as ":1-16".
+ * @param objectpath The path on which the process is exporting the object.$
+ * @param type The interface they are exporting it on. This type must have the same full class name and exposed method signatures
+ * as the interface the remote object is exporting.
+ * @param autostart Disable/Enable auto-starting of services in response to calls on this object.
+ * Default is enabled; when calling a method with auto-start enabled, if the destination is a well-known name
+ * and is not owned the bus will attempt to start a process to take the name. When disabled an error is
+ * returned immediately.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted or type is not in a package.
+ */
+ public <I extends DBusInterface> I getPeerRemoteObject(String busname, String objectpath, Class<I> type, boolean autostart) throws DBusException
+ {
+ if (null == busname) throw new DBusException(_("Invalid bus name: null"));
+
+ if ((!busname.matches(BUSNAME_REGEX) && !busname.matches(CONNID_REGEX))
+ || busname.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+busname);
+
+ String unique = _dbus.GetNameOwner(busname);
+
+ return getRemoteObject(unique, objectpath, type, autostart);
+ }
+ /**
+ * Return a reference to a remote object.
+ * This method will always refer to the well known name (if given) rather than resolving it to a unique bus name.
+ * In particular this means that if a process providing the well known name disappears and is taken over by another process
+ * proxy objects gained by this method will make calls on the new proccess.
+ * @param busname The bus name to connect to. Usually a well known bus name name in dot-notation (such as "org.freedesktop.local")
+ * or may be a DBus address such as ":1-16".
+ * @param objectpath The path on which the process is exporting the object.
+ * @param type The interface they are exporting it on. This type must have the same full class name and exposed method signatures
+ * as the interface the remote object is exporting.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted or type is not in a package.
+ */
+ public <I extends DBusInterface> I getRemoteObject(String busname, String objectpath, Class<I> type) throws DBusException
+ {
+ return getRemoteObject(busname, objectpath, type, true);
+ }
+ /**
+ * Return a reference to a remote object.
+ * This method will always refer to the well known name (if given) rather than resolving it to a unique bus name.
+ * In particular this means that if a process providing the well known name disappears and is taken over by another process
+ * proxy objects gained by this method will make calls on the new proccess.
+ * @param busname The bus name to connect to. Usually a well known bus name name in dot-notation (such as "org.freedesktop.local")
+ * or may be a DBus address such as ":1-16".
+ * @param objectpath The path on which the process is exporting the object.
+ * @param type The interface they are exporting it on. This type must have the same full class name and exposed method signatures
+ * as the interface the remote object is exporting.
+ * @param autostart Disable/Enable auto-starting of services in response to calls on this object.
+ * Default is enabled; when calling a method with auto-start enabled, if the destination is a well-known name
+ * and is not owned the bus will attempt to start a process to take the name. When disabled an error is
+ * returned immediately.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted or type is not in a package.
+ */
+ @SuppressWarnings("unchecked")
+ public <I extends DBusInterface> I getRemoteObject(String busname, String objectpath, Class<I> type, boolean autostart) throws DBusException
+ {
+ if (null == busname) throw new DBusException(_("Invalid bus name: null"));
+ if (null == objectpath) throw new DBusException(_("Invalid object path: null"));
+ if (null == type) throw new ClassCastException(_("Not A DBus Interface"));
+
+ if ((!busname.matches(BUSNAME_REGEX) && !busname.matches(CONNID_REGEX))
+ || busname.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+busname);
+
+ if (!objectpath.matches(OBJECT_REGEX) || objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+
+ if (!DBusInterface.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Interface"));
+
+ // don't let people import things which don't have a
+ // valid D-Bus interface name
+ if (type.getName().equals(type.getSimpleName()))
+ throw new DBusException(_("DBusInterfaces cannot be declared outside a package"));
+
+ RemoteObject ro = new RemoteObject(busname, objectpath, type, autostart);
+ I i = (I) Proxy.newProxyInstance(type.getClassLoader(),
+ new Class[] { type }, new RemoteInvocationHandler(this, ro));
+ importedObjects.put(i, ro);
+ return i;
+ }
+ /**
+ * Remove a Signal Handler.
+ * Stops listening for this signal.
+ * @param type The signal to watch for.
+ * @param source The source of the signal.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ public <T extends DBusSignal> void removeSigHandler(Class<T> type, String source, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ if (source.matches(BUSNAME_REGEX)) throw new DBusException(_("Cannot watch for signals based on well known bus name as source, only unique names."));
+ if (!source.matches(CONNID_REGEX)||source.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+source);
+ removeSigHandler(new DBusMatchRule(type, source, null), handler);
+ }
+ /**
+ * Remove a Signal Handler.
+ * Stops listening for this signal.
+ * @param type The signal to watch for.
+ * @param source The source of the signal.
+ * @param object The object emitting the signal.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ public <T extends DBusSignal> void removeSigHandler(Class<T> type, String source, DBusInterface object, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ if (source.matches(BUSNAME_REGEX)) throw new DBusException(_("Cannot watch for signals based on well known bus name as source, only unique names."));
+ if (!source.matches(CONNID_REGEX)||source.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+source);
+ String objectpath = importedObjects.get(object).objectpath;
+ if (!objectpath.matches(OBJECT_REGEX)||objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+ removeSigHandler(new DBusMatchRule(type, source, objectpath), handler);
+ }
+ protected <T extends DBusSignal> void removeSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException
+ {
+
+ SignalTuple key = new SignalTuple(rule.getInterface(), rule.getMember(), rule.getObject(), rule.getSource());
+ synchronized (handledSignals) {
+ Vector<DBusSigHandler<? extends DBusSignal>> v = handledSignals.get(key);
+ if (null != v) {
+ v.remove(handler);
+ if (0 == v.size()) {
+ handledSignals.remove(key);
+ try {
+ _dbus.RemoveMatch(rule.toString());
+ } catch (NotConnected NC) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, NC);
+ } catch (DBusExecutionException DBEe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw new DBusException(DBEe.getMessage());
+ }
+ }
+ }
+ }
+ }
+ /**
+ * Add a Signal Handler.
+ * Adds a signal handler to call when a signal is received which matches the specified type, name and source.
+ * @param type The signal to watch for.
+ * @param source The process which will send the signal. This <b>MUST</b> be a unique bus name and not a well known name.
+ * @param handler The handler to call when a signal is received.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends DBusSignal> void addSigHandler(Class<T> type, String source, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ if (source.matches(BUSNAME_REGEX)) throw new DBusException(_("Cannot watch for signals based on well known bus name as source, only unique names."));
+ if (!source.matches(CONNID_REGEX)||source.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+source);
+ addSigHandler(new DBusMatchRule(type, source, null), (DBusSigHandler<? extends DBusSignal>) handler);
+ }
+ /**
+ * Add a Signal Handler.
+ * Adds a signal handler to call when a signal is received which matches the specified type, name, source and object.
+ * @param type The signal to watch for.
+ * @param source The process which will send the signal. This <b>MUST</b> be a unique bus name and not a well known name.
+ * @param object The object from which the signal will be emitted
+ * @param handler The handler to call when a signal is received.
+ * @throws DBusException If listening for the signal on the bus failed.
+ * @throws ClassCastException If type is not a sub-type of DBusSignal.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends DBusSignal> void addSigHandler(Class<T> type, String source, DBusInterface object, DBusSigHandler<T> handler) throws DBusException
+ {
+ if (!DBusSignal.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Signal"));
+ if (source.matches(BUSNAME_REGEX)) throw new DBusException(_("Cannot watch for signals based on well known bus name as source, only unique names."));
+ if (!source.matches(CONNID_REGEX)||source.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid bus name: ")+source);
+ String objectpath = importedObjects.get(object).objectpath;
+ if (!objectpath.matches(OBJECT_REGEX)||objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+ addSigHandler(new DBusMatchRule(type, source, objectpath), (DBusSigHandler<? extends DBusSignal>) handler);
+ }
+ protected <T extends DBusSignal> void addSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException
+ {
+ try {
+ _dbus.AddMatch(rule.toString());
+ } catch (DBusExecutionException DBEe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBEe);
+ throw new DBusException(DBEe.getMessage());
+ }
+ SignalTuple key = new SignalTuple(rule.getInterface(), rule.getMember(), rule.getObject(), rule.getSource());
+ synchronized (handledSignals) {
+ Vector<DBusSigHandler<? extends DBusSignal>> v = handledSignals.get(key);
+ if (null == v) {
+ v = new Vector<DBusSigHandler<? extends DBusSignal>>();
+ v.add(handler);
+ handledSignals.put(key, v);
+ } else
+ v.add(handler);
+ }
+ }
+ /**
+ * Disconnect from the Bus.
+ * This only disconnects when the last reference to the bus has disconnect called on it
+ * or has been destroyed.
+ */
+ public void disconnect()
+ {
+ synchronized (conn) {
+ synchronized (_reflock) {
+ if (0 == --_refcount) {
+ if (Debug.debug) Debug.print(Debug.INFO, "Disconnecting DBusConnection");
+ // Set all pending messages to have an error.
+ try {
+ Error err = new Error(
+ "org.freedesktop.DBus.Local" , "org.freedesktop.DBus.Local.Disconnected", 0, "s", new Object[] { _("Disconnected") });
+ synchronized (pendingCalls) {
+ long[] set = pendingCalls.getKeys();
+ for (long l: set) if (-1 != l) {
+ MethodCall m = pendingCalls.remove(l);
+ if (null != m)
+ m.setReply(err);
+ }
+ pendingCalls = null;
+ }
+ synchronized (pendingErrors) {
+ pendingErrors.add(err);
+ }
+ } catch (DBusException DBe) {}
+
+ conn.remove(addr);
+ super.disconnect();
+ }
+ }
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterface.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterface.java
new file mode 100755
index 0000000..7b0d30a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterface.java
@@ -0,0 +1,31 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+/**
+ * Denotes a class as exportable or a remote interface which can be called.
+ * <p>
+ * Any interface which should be exported or imported should extend this
+ * interface. All public methods from that interface are exported/imported
+ * with the given method signatures.
+ * </p>
+ * <p>
+ * All method calls on exported objects are run in their own threads.
+ * Application writers are responsible for any concurrency issues.
+ * </p>
+ */
+public interface DBusInterface
+{
+ /**
+ * Returns true on remote objects.
+ * Local objects implementing this interface MUST return false.
+ */
+ public boolean isRemote();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterfaceName.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterfaceName.java
new file mode 100755
index 0000000..5400a92
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusInterfaceName.java
@@ -0,0 +1,27 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Force the interface name to be different to the Java class name.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface DBusInterfaceName
+{
+ /** The replacement interface name. */
+ String value();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java
new file mode 100755
index 0000000..b9d06d7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java
@@ -0,0 +1,152 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+
+class DBusMap<K, V> implements Map<K, V>
+{
+ Object[][] entries;
+ public DBusMap(Object[][] entries)
+ {
+ this.entries=entries;
+ }
+ class Entry implements Map.Entry<K,V>, Comparable<Entry>
+ {
+ private int entry;
+ public Entry(int i)
+ {
+ this.entry = i;
+ }
+ public boolean equals(Object o)
+ {
+ if (null == o) return false;
+ if (!(o instanceof DBusMap.Entry)) return false;
+ return this.entry == ((Entry) o).entry;
+ }
+ @SuppressWarnings("unchecked")
+ public K getKey()
+ {
+ return (K) entries[entry][0];
+ }
+ @SuppressWarnings("unchecked")
+ public V getValue()
+ {
+ return (V) entries[entry][1];
+ }
+ public int hashCode()
+ {
+ return entries[entry][0].hashCode();
+ }
+ public V setValue(V value)
+ {
+ throw new UnsupportedOperationException();
+ }
+ public int compareTo(Entry e)
+ {
+ return entry - e.entry;
+ }
+ }
+
+ public void clear()
+ {
+ throw new UnsupportedOperationException();
+ }
+ public boolean containsKey(Object key)
+ {
+ for (int i = 0; i < entries.length; i++)
+ if (key == entries[i][0] || (key != null && key.equals(entries[i][0])))
+ return true;
+ return false;
+ }
+ public boolean containsValue(Object value)
+ {
+ for (int i = 0; i < entries.length; i++)
+ if (value == entries[i][1] || (value != null && value.equals(entries[i][1])))
+ return true;
+ return false;
+ }
+ public Set<Map.Entry<K,V>> entrySet()
+ {
+ Set<Map.Entry<K,V>> s = new TreeSet<Map.Entry<K,V>>();
+ for (int i = 0; i < entries.length; i++)
+ s.add(new Entry(i));
+ return s;
+ }
+ @SuppressWarnings("unchecked")
+ public V get(Object key)
+ {
+ for (int i = 0; i < entries.length; i++)
+ if (key == entries[i][0] || (key != null && key.equals(entries[i][0])))
+ return (V) entries[i][1];
+ return null;
+ }
+ public boolean isEmpty()
+ {
+ return entries.length == 0;
+ }
+ @SuppressWarnings("unchecked")
+ public Set<K> keySet()
+ {
+ Set<K> s = new TreeSet<K>();
+ for (Object[] entry: entries)
+ s.add((K) entry[0]);
+ return s;
+ }
+ public V put(K key, V value)
+ {
+ throw new UnsupportedOperationException();
+ }
+ public void putAll(Map<? extends K,? extends V> t)
+ {
+ throw new UnsupportedOperationException();
+ }
+ public V remove(Object key)
+ {
+ throw new UnsupportedOperationException();
+ }
+ public int size()
+ {
+ return entries.length;
+ }
+ @SuppressWarnings("unchecked")
+ public Collection<V> values()
+ {
+ List<V> l = new Vector<V>();
+ for (Object[] entry: entries)
+ l.add((V) entry[1]);
+ return l;
+ }
+ public int hashCode()
+ {
+ return Arrays.deepHashCode(entries);
+ }
+ @SuppressWarnings("unchecked")
+ public boolean equals(Object o)
+ {
+ if (null == o) return false;
+ if (!(o instanceof Map)) return false;
+ return ((Map<K,V>) o).entrySet().equals(entrySet());
+ }
+ public String toString()
+ {
+ String s = "{ ";
+ for (int i = 0; i < entries.length; i++)
+ s += entries[i][0] + " => " + entries[i][1] + ",";
+ return s.replaceAll(".$", " }");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMatchRule.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMatchRule.java
new file mode 100755
index 0000000..fa1e0ca
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMatchRule.java
@@ -0,0 +1,143 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+import java.util.HashMap;
+
+public class DBusMatchRule
+{
+ /* signal, error, method_call, method_reply */
+ private String type;
+ private String iface;
+ private String member;
+ private String object;
+ private String source;
+ private static HashMap<String, Class<? extends DBusSignal>> signalTypeMap =
+ new HashMap<String, Class<? extends DBusSignal>>();
+ static Class<? extends DBusSignal> getCachedSignalType(String type)
+ {
+ return signalTypeMap.get(type);
+ }
+ public DBusMatchRule(String type, String iface, String member)
+ {
+ this.type = type;
+ this.iface = iface;
+ this.member = member;
+ }
+ public DBusMatchRule(DBusExecutionException e) throws DBusException
+ {
+ this(e.getClass());
+ member = null;
+ type = "error";
+ }
+ public DBusMatchRule(Message m)
+ {
+ iface = m.getInterface();
+ member = m.getName();
+ if (m instanceof DBusSignal)
+ type = "signal";
+ else if (m instanceof Error) {
+ type = "error";
+ member = null;
+ }
+ else if (m instanceof MethodCall)
+ type = "method_call";
+ else if (m instanceof MethodReturn)
+ type = "method_reply";
+ }
+ public DBusMatchRule(Class<? extends DBusInterface> c, String method) throws DBusException
+ {
+ this(c);
+ member = method;
+ type = "method_call";
+ }
+ public DBusMatchRule(Class<? extends Object> c, String source, String object) throws DBusException
+ {
+ this(c);
+ this.source = source;
+ this.object = object;
+ }
+ @SuppressWarnings("unchecked")
+ public DBusMatchRule(Class<? extends Object> c) throws DBusException
+ {
+ if (DBusInterface.class.isAssignableFrom(c)) {
+ if (null != c.getAnnotation(DBusInterfaceName.class))
+ iface = c.getAnnotation(DBusInterfaceName.class).value();
+ else
+ iface = AbstractConnection.dollar_pattern.matcher(c.getName()).replaceAll(".");
+ if (!iface.matches(".*\\..*"))
+ throw new DBusException(_("DBusInterfaces must be defined in a package."));
+ member = null;
+ type = null;
+ }
+ else if (DBusSignal.class.isAssignableFrom(c)) {
+ if (null == c.getEnclosingClass())
+ throw new DBusException(_("Signals must be declared as a member of a class implementing DBusInterface which is the member of a package."));
+ else
+ if (null != c.getEnclosingClass().getAnnotation(DBusInterfaceName.class))
+ iface = c.getEnclosingClass().getAnnotation(DBusInterfaceName.class).value();
+ else
+ iface = AbstractConnection.dollar_pattern.matcher(c.getEnclosingClass().getName()).replaceAll(".");
+ // Don't export things which are invalid D-Bus interfaces
+ if (!iface.matches(".*\\..*"))
+ throw new DBusException(_("DBusInterfaces must be defined in a package."));
+ if (c.isAnnotationPresent(DBusMemberName.class))
+ member = c.getAnnotation(DBusMemberName.class).value();
+ else
+ member = c.getSimpleName();
+ signalTypeMap.put(iface+'$'+member, (Class<? extends DBusSignal>) c);
+ type = "signal";
+ }
+ else if (Error.class.isAssignableFrom(c)) {
+ if (null != c.getAnnotation(DBusInterfaceName.class))
+ iface = c.getAnnotation(DBusInterfaceName.class).value();
+ else
+ iface = AbstractConnection.dollar_pattern.matcher(c.getName()).replaceAll(".");
+ if (!iface.matches(".*\\..*"))
+ throw new DBusException(_("DBusInterfaces must be defined in a package."));
+ member = null;
+ type = "error";
+ }
+ else if (DBusExecutionException.class.isAssignableFrom(c)) {
+ if (null != c.getClass().getAnnotation(DBusInterfaceName.class))
+ iface = c.getClass().getAnnotation(DBusInterfaceName.class).value();
+ else
+ iface = AbstractConnection.dollar_pattern.matcher(c.getClass().getName()).replaceAll(".");
+ if (!iface.matches(".*\\..*"))
+ throw new DBusException(_("DBusInterfaces must be defined in a package."));
+ member = null;
+ type = "error";
+ }
+ else
+ throw new DBusException(_("Invalid type for match rule: ")+c);
+ }
+ public String toString()
+ {
+ String s = null;
+ if (null != type) s = null == s ? "type='"+type+"'" : s + ",type='"+type+"'";
+ if (null != member) s = null == s ? "member='"+member+"'" : s + ",member='"+member+"'";
+ if (null != iface) s = null == s ? "interface='"+iface+"'" : s + ",interface='"+iface+"'";
+ if (null != source) s = null == s ? "sender='"+source+"'" : s + ",sender='"+source+"'";
+ if (null != object) s = null == s ? "path='"+object+"'" : s + ",path='"+object+"'";
+ return s;
+ }
+ public String getType() { return type; }
+ public String getInterface() { return iface; }
+ public String getMember() { return member; }
+ public String getSource() { return source; }
+ public String getObject() { return object; }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMemberName.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMemberName.java
new file mode 100755
index 0000000..da7f8fd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMemberName.java
@@ -0,0 +1,27 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Force the member (method/signal) name on the bus to be different to the Java name.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE,ElementType.METHOD})
+public @interface DBusMemberName
+{
+ /** The replacement member name. */
+ String value();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSerializable.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSerializable.java
new file mode 100755
index 0000000..8e31137
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSerializable.java
@@ -0,0 +1,38 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+import org.freedesktop.dbus.exceptions.DBusException;
+/**
+ * Custom classes may be sent over DBus if they implement this interface.
+ * <p>
+ * In addition to the serialize method, classes <b>MUST</b> implement
+ * a deserialize method which returns null and takes as it's arguments
+ * all the DBus types the class will be serialied to <i>in order</i> and
+ * <i>with type parameterisation</i>. They <b>MUST</b> also provide a
+ * zero-argument constructor.
+ * </p>
+ * <p>
+ * The serialize method should return the class properties you wish to
+ * serialize, correctly formatted for the wire
+ * (DBusConnection.convertParameters() can help with this), in order in an
+ * Object array.
+ * </p>
+ * <p>
+ * The deserialize method will be called once after the zero-argument
+ * constructor. This should contain all the code to initialise the object
+ * from the types.
+ * </p>
+ */
+public interface DBusSerializable
+{
+ public Object[] serialize() throws DBusException;
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSigHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSigHandler.java
new file mode 100755
index 0000000..a56d845
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSigHandler.java
@@ -0,0 +1,25 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+/** Handle a signal on DBus.
+ * All Signal handlers are run in their own Thread.
+ * Application writers are responsible for managing any concurrency issues.
+ */
+public interface DBusSigHandler<T extends DBusSignal>
+{
+ /**
+ * Handle a signal.
+ * @param s The signal to handle. If such a class exists, the
+ * signal will be an instance of the class with the correct type signature.
+ * Otherwise it will be an instance of DBusSignal
+ */
+ public void handle(T s);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSignal.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSignal.java
new file mode 100755
index 0000000..a776027
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusSignal.java
@@ -0,0 +1,276 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.GenericDeclaration;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.MessageFormatException;
+
+import cx.ath.matthew.debug.Debug;
+
+public class DBusSignal extends Message
+{
+ DBusSignal() { }
+ public DBusSignal(String source, String path, String iface, String member, String sig, Object... args) throws DBusException
+ {
+ super(Message.Endian.BIG, Message.MessageType.SIGNAL, (byte) 0);
+
+ if (null == path || null == member || null == iface)
+ throw new MessageFormatException(_("Must specify object path, interface and signal name to Signals."));
+ headers.put(Message.HeaderField.PATH,path);
+ headers.put(Message.HeaderField.MEMBER,member);
+ headers.put(Message.HeaderField.INTERFACE,iface);
+
+ Vector<Object> hargs = new Vector<Object>();
+ hargs.add(new Object[] { Message.HeaderField.PATH, new Object[] { ArgumentType.OBJECT_PATH_STRING, path } });
+ hargs.add(new Object[] { Message.HeaderField.INTERFACE, new Object[] { ArgumentType.STRING_STRING, iface } });
+ hargs.add(new Object[] { Message.HeaderField.MEMBER, new Object[] { ArgumentType.STRING_STRING, member } });
+
+ if (null != source) {
+ headers.put(Message.HeaderField.SENDER,source);
+ hargs.add(new Object[] { Message.HeaderField.SENDER, new Object[] { ArgumentType.STRING_STRING, source } });
+ }
+
+ if (null != sig) {
+ hargs.add(new Object[] { Message.HeaderField.SIGNATURE, new Object[] { ArgumentType.SIGNATURE_STRING, sig } });
+ headers.put(Message.HeaderField.SIGNATURE,sig);
+ setArgs(args);
+ }
+
+ blen = new byte[4];
+ appendBytes(blen);
+ append("ua(yv)", ++serial, hargs.toArray());
+ pad((byte)8);
+
+ long c = bytecounter;
+ if (null != sig) append(sig, args);
+ marshallint(bytecounter-c, blen, 0, 4);
+ bodydone = true;
+ }
+ static class internalsig extends DBusSignal
+ {
+ public internalsig(String source, String objectpath, String type, String name, String sig, Object[] parameters, long serial) throws DBusException
+ {
+ super(source, objectpath, type, name, sig, parameters, serial);
+ }
+ }
+ private static Map<Class<? extends DBusSignal>, Type[]> typeCache = new HashMap<Class<? extends DBusSignal>, Type[]>();
+ private static Map<String, Class<? extends DBusSignal>> classCache = new HashMap<String, Class<? extends DBusSignal>>();
+ private static Map<Class<? extends DBusSignal>, Constructor<? extends DBusSignal>> conCache = new HashMap<Class<? extends DBusSignal>, Constructor<? extends DBusSignal>>();
+ private static Map<String, String> signames = new HashMap<String, String>();
+ private static Map<String, String> intnames = new HashMap<String, String>();
+ private Class<? extends DBusSignal> c;
+ private boolean bodydone = false;
+ private byte[] blen;
+
+ static void addInterfaceMap(String java, String dbus)
+ {
+ intnames.put(dbus, java);
+ }
+ static void addSignalMap(String java, String dbus)
+ {
+ signames.put(dbus, java);
+ }
+
+ static DBusSignal createSignal(Class<? extends DBusSignal> c, String source, String objectpath, String sig, long serial, Object... parameters) throws DBusException
+ {
+ String type = "";
+ if (null != c.getEnclosingClass()) {
+ if (null != c.getEnclosingClass().getAnnotation(DBusInterfaceName.class))
+ type = c.getEnclosingClass().getAnnotation(DBusInterfaceName.class).value();
+ else
+ type = AbstractConnection.dollar_pattern.matcher(c.getEnclosingClass().getName()).replaceAll(".");
+
+ } else
+ throw new DBusException(_("Signals must be declared as a member of a class implementing DBusInterface which is the member of a package."));
+ DBusSignal s = new internalsig(source, objectpath, type, c.getSimpleName(), sig, parameters, serial);
+ s.c = c;
+ return s;
+ }
+ @SuppressWarnings("unchecked")
+ private static Class<? extends DBusSignal> createSignalClass(String intname, String signame) throws DBusException
+ {
+ String name = intname+'$'+signame;
+ Class<? extends DBusSignal> c = classCache.get(name);
+ if (null == c) c = DBusMatchRule.getCachedSignalType(name);
+ if (null != c) return c;
+ do {
+ try {
+ c = (Class<? extends DBusSignal>) Class.forName(name);
+ } catch (ClassNotFoundException CNFe) {}
+ name = name.replaceAll("\\.([^\\.]*)$", "\\$$1");
+ } while (null == c && name.matches(".*\\..*"));
+ if (null == c)
+ throw new DBusException(_("Could not create class from signal ")+intname+'.'+signame);
+ classCache.put(name, c);
+ return c;
+ }
+ @SuppressWarnings("unchecked")
+ DBusSignal createReal(AbstractConnection conn) throws DBusException
+ {
+ String intname = intnames.get(getInterface());
+ String signame = signames.get(getName());
+ if (null == intname) intname = getInterface();
+ if (null == signame) signame = getName();
+ if (null == c)
+ c = createSignalClass(intname,signame);
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Converting signal to type: "+c);
+ Type[] types = typeCache.get(c);
+ Constructor<? extends DBusSignal> con = conCache.get(c);
+ if (null == types) {
+ con = (Constructor<? extends DBusSignal>) c.getDeclaredConstructors()[0];
+ conCache.put(c, con);
+ Type[] ts = con.getGenericParameterTypes();
+ types = new Type[ts.length-1];
+ for (int i = 1; i < ts.length; i++)
+ if (ts[i] instanceof TypeVariable)
+ for (Type b: ((TypeVariable<GenericDeclaration>) ts[i]).getBounds())
+ types[i-1] = b;
+ else
+ types[i-1] = ts[i];
+ typeCache.put(c, types);
+ }
+
+ try {
+ DBusSignal s;
+ Object[] args = Marshalling.deSerializeParameters(getParameters(), types, conn);
+ if (null == args) s = (DBusSignal) con.newInstance(getPath());
+ else {
+ Object[] params = new Object[args.length + 1];
+ params[0] = getPath();
+ System.arraycopy(args, 0, params, 1, args.length);
+
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Creating signal of type "+c+" with parameters "+Arrays.deepToString(params));
+ s = (DBusSignal) con.newInstance(params);
+ }
+ s.headers = headers;
+ s.wiredata = wiredata;
+ s.bytecounter = wiredata.length;
+ return s;
+ } catch (Exception e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusException(e.getMessage());
+ }
+ }
+ /**
+ * Create a new signal.
+ * This contructor MUST be called by all sub classes.
+ * @param objectpath The path to the object this is emitted from.
+ * @param args The parameters of the signal.
+ * @throws DBusException This is thrown if the subclass is incorrectly defined.
+ */
+ @SuppressWarnings("unchecked")
+ protected DBusSignal(String objectpath, Object... args) throws DBusException
+ {
+ super(Message.Endian.BIG, Message.MessageType.SIGNAL, (byte) 0);
+
+ String destination = null; // pego
+ StringTokenizer tokens = new StringTokenizer(objectpath, "&"); // pego
+ if (tokens.countTokens() > 1) { // pego
+ objectpath = tokens.nextToken(); // pego
+ destination = tokens.nextToken(); // pego
+// System.out.println("DBusSignal: destination specified: objectpath = " + objectpath + ", destination = " + destination);
+ } else { // pego
+// System.out.println("DBusSignal: NO destination specified: objectpath = " + objectpath); // pego
+ } // pego
+
+ if (!objectpath.matches(AbstractConnection.OBJECT_REGEX)) throw new DBusException(_("Invalid object path: ")+objectpath);
+
+ Class<? extends DBusSignal> tc = getClass();
+ String member;
+ if (tc.isAnnotationPresent(DBusMemberName.class))
+ member = tc.getAnnotation(DBusMemberName.class).value();
+ else
+ member = tc.getSimpleName();
+ String iface = null;
+ Class<? extends Object> enc = tc.getEnclosingClass();
+ if (null == enc ||
+ !DBusInterface.class.isAssignableFrom(enc) ||
+ enc.getName().equals(enc.getSimpleName()))
+ throw new DBusException(_("Signals must be declared as a member of a class implementing DBusInterface which is the member of a package."));
+ else
+ if (null != enc.getAnnotation(DBusInterfaceName.class))
+ iface = enc.getAnnotation(DBusInterfaceName.class).value();
+ else
+ iface = AbstractConnection.dollar_pattern.matcher(enc.getName()).replaceAll(".");
+
+ if (destination != null) { // pego
+ headers.put(Message.HeaderField.DESTINATION, destination); // pego
+ } // pego
+ headers.put(Message.HeaderField.PATH,objectpath);
+ headers.put(Message.HeaderField.MEMBER,member);
+ headers.put(Message.HeaderField.INTERFACE,iface);
+
+ Vector<Object> hargs = new Vector<Object>();
+ if (destination != null) { // pego
+ hargs.add(new Object[] { Message.HeaderField.DESTINATION, new Object[] { ArgumentType.STRING_STRING, destination } });
+ } // pego
+ hargs.add(new Object[] { Message.HeaderField.PATH, new Object[] { ArgumentType.OBJECT_PATH_STRING, objectpath } });
+ hargs.add(new Object[] { Message.HeaderField.INTERFACE, new Object[] { ArgumentType.STRING_STRING, iface } });
+ hargs.add(new Object[] { Message.HeaderField.MEMBER, new Object[] { ArgumentType.STRING_STRING, member } });
+
+ String sig = null;
+ if (0 < args.length) {
+ try {
+ Type[] types = typeCache.get(tc);
+ if (null == types) {
+ Constructor<? extends DBusSignal> con = (Constructor<? extends DBusSignal>) tc.getDeclaredConstructors()[0];
+ conCache.put(tc, con);
+ Type[] ts = con.getGenericParameterTypes();
+ types = new Type[ts.length-1];
+ for (int i = 1; i <= types.length; i++)
+ if (ts[i] instanceof TypeVariable)
+ types[i-1] = ((TypeVariable<GenericDeclaration>) ts[i]).getBounds()[0];
+ else
+ types[i-1] = ts[i];
+ typeCache.put(tc, types);
+ }
+ sig = Marshalling.getDBusType(types);
+ hargs.add(new Object[] { Message.HeaderField.SIGNATURE, new Object[] { ArgumentType.SIGNATURE_STRING, sig } });
+ headers.put(Message.HeaderField.SIGNATURE,sig);
+ setArgs(args);
+ } catch (Exception e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusException(_("Failed to add signal parameters: ")+e.getMessage());
+ }
+ }
+
+ blen = new byte[4];
+ appendBytes(blen);
+ append("ua(yv)", ++serial, hargs.toArray());
+ pad((byte)8);
+ }
+ void appendbody(AbstractConnection conn) throws DBusException
+ {
+ if (bodydone) return;
+
+ Type[] types = typeCache.get(getClass());
+ Object[] args = Marshalling.convertParameters(getParameters(), types, conn);
+ setArgs(args);
+ String sig = getSig();
+
+ long c = bytecounter;
+ if (null != args && 0 < args.length) append(sig, args);
+ marshallint(bytecounter-c, blen, 0, 4);
+ bodydone = true;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DirectConnection.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DirectConnection.java
new file mode 100755
index 0000000..93ec03f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DirectConnection.java
@@ -0,0 +1,251 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Proxy;
+import java.io.File;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.text.MessageFormat;
+import java.text.ParseException;
+import java.util.Random;
+import java.util.Vector;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+import cx.ath.matthew.debug.Debug;
+
+/** Handles a peer to peer connection between two applications withou a bus daemon.
+ * <p>
+ * Signal Handlers and method calls from remote objects are run in their own threads, you MUST handle the concurrency issues.
+ * </p>
+ */
+public class DirectConnection extends AbstractConnection
+{
+ /**
+ * Create a direct connection to another application.
+ * @param address The address to connect to. This is a standard D-Bus address, except that the additional parameter 'listen=true' should be added in the application which is creating the socket.
+ */
+ public DirectConnection(String address) throws DBusException
+ {
+ super(address);
+
+ try {
+ transport = new Transport(addr, AbstractConnection.TIMEOUT);
+ connected = true;
+ } catch (IOException IOe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, IOe);
+ throw new DBusException(_("Failed to connect to bus ")+IOe.getMessage());
+ } catch (ParseException Pe) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, Pe);
+ throw new DBusException(_("Failed to connect to bus ")+Pe.getMessage());
+ }
+
+ listen();
+ }
+
+ /**
+ * Creates a bus address for a randomly generated tcp port.
+ * @return a random bus address.
+ */
+ public static String createDynamicTCPSession()
+ {
+ String address = "tcp:host=localhost";
+ int port;
+ try {
+ ServerSocket s = new ServerSocket();
+ s.bind(null);
+ port = s.getLocalPort();
+ s.close();
+ } catch (Exception e) {
+ Random r = new Random();
+ port = 32768 + (Math.abs(r.nextInt()) % 28232);
+ }
+ address += ",port="+port;
+ address += ",guid="+Transport.genGUID();
+ if (Debug.debug) Debug.print("Created Session address: "+address);
+ return address;
+ }
+
+ /**
+ * Creates a bus address for a randomly generated abstract unix socket.
+ * @return a random bus address.
+ */
+ public static String createDynamicSession()
+ {
+ String address = "unix:";
+ String path = "/tmp/dbus-XXXXXXXXXX";
+ Random r = new Random();
+ do {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < 10; i++)
+ sb.append((char) ((Math.abs(r.nextInt()) % 26) + 65));
+ path = path.replaceAll("..........$", sb.toString());
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Trying path "+path);
+ } while ((new File(path)).exists());
+ address += "abstract="+path;
+ address += ",guid="+Transport.genGUID();
+ if (Debug.debug) Debug.print("Created Session address: "+address);
+ return address;
+ }
+ DBusInterface dynamicProxy(String path) throws DBusException
+ {
+ try {
+ DBus.Introspectable intro = (DBus.Introspectable) getRemoteObject(path, DBus.Introspectable.class);
+ String data = intro.Introspect();
+ String[] tags = data.split("[<>]");
+ Vector<String> ifaces = new Vector<String>();
+ for (String tag: tags) {
+ if (tag.startsWith("interface")) {
+ ifaces.add(tag.replaceAll("^interface *name *= *['\"]([^'\"]*)['\"].*$", "$1"));
+ }
+ }
+ Vector<Class<? extends Object>> ifcs = new Vector<Class<? extends Object>>();
+ for(String iface: ifaces) {
+ int j = 0;
+ while (j >= 0) {
+ try {
+ ifcs.add(Class.forName(iface));
+ break;
+ } catch (Exception e) {}
+ j = iface.lastIndexOf(".");
+ char[] cs = iface.toCharArray();
+ if (j >= 0) {
+ cs[j] = '$';
+ iface = String.valueOf(cs);
+ }
+ }
+ }
+
+ if (ifcs.size() == 0) throw new DBusException(_("Could not find an interface to cast to"));
+
+ RemoteObject ro = new RemoteObject(null, path, null, false);
+ DBusInterface newi = (DBusInterface)
+ Proxy.newProxyInstance(ifcs.get(0).getClassLoader(),
+ ifcs.toArray(new Class[0]),
+ new RemoteInvocationHandler(this, ro));
+ importedObjects.put(newi, ro);
+ return newi;
+ } catch (Exception e) {
+ if (EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusException(MessageFormat.format(_("Failed to create proxy object for {0}; reason: {1}."), new Object[] { path, e.getMessage()}));
+ }
+ }
+
+ DBusInterface getExportedObject(String path) throws DBusException
+ {
+ ExportedObject o = null;
+ synchronized (exportedObjects) {
+ o = exportedObjects.get(path);
+ }
+ if (null != o && null == o.object.get()) {
+ unExportObject(path);
+ o = null;
+ }
+ if (null != o) return o.object.get();
+ return dynamicProxy(path);
+ }
+
+ /**
+ * Return a reference to a remote object.
+ * This method will always refer to the well known name (if given) rather than resolving it to a unique bus name.
+ * In particular this means that if a process providing the well known name disappears and is taken over by another process
+ * proxy objects gained by this method will make calls on the new proccess.
+ *
+ * This method will use bus introspection to determine the interfaces on a remote object and so
+ * <b>may block</b> and <b>may fail</b>. The resulting proxy object will, however, be castable
+ * to any interface it implements. It will also autostart the process if applicable. Also note
+ * that the resulting proxy may fail to execute the correct method with overloaded methods
+ * and that complex types may fail in interesting ways. Basically, if something odd happens,
+ * try specifying the interface explicitly.
+ *
+ * @param objectpath The path on which the process is exporting the object.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted.
+ */
+ public DBusInterface getRemoteObject(String objectpath) throws DBusException
+ {
+ if (null == objectpath) throw new DBusException(_("Invalid object path: null"));
+
+ if (!objectpath.matches(OBJECT_REGEX) || objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+
+ return dynamicProxy(objectpath);
+ }
+
+ /**
+ * Return a reference to a remote object.
+ * This method will always refer to the well known name (if given) rather than resolving it to a unique bus name.
+ * In particular this means that if a process providing the well known name disappears and is taken over by another process
+ * proxy objects gained by this method will make calls on the new proccess.
+ * @param objectpath The path on which the process is exporting the object.
+ * @param type The interface they are exporting it on. This type must have the same full class name and exposed method signatures
+ * as the interface the remote object is exporting.
+ * @return A reference to a remote object.
+ * @throws ClassCastException If type is not a sub-type of DBusInterface
+ * @throws DBusException If busname or objectpath are incorrectly formatted or type is not in a package.
+ */
+ public DBusInterface getRemoteObject(String objectpath, Class<? extends DBusInterface> type) throws DBusException
+ {
+ if (null == objectpath) throw new DBusException(_("Invalid object path: null"));
+ if (null == type) throw new ClassCastException(_("Not A DBus Interface"));
+
+ if (!objectpath.matches(OBJECT_REGEX) || objectpath.length() > MAX_NAME_LENGTH)
+ throw new DBusException(_("Invalid object path: ")+objectpath);
+
+ if (!DBusInterface.class.isAssignableFrom(type)) throw new ClassCastException(_("Not A DBus Interface"));
+
+ // don't let people import things which don't have a
+ // valid D-Bus interface name
+ if (type.getName().equals(type.getSimpleName()))
+ throw new DBusException(_("DBusInterfaces cannot be declared outside a package"));
+
+ RemoteObject ro = new RemoteObject(null, objectpath, type, false);
+ DBusInterface i = (DBusInterface) Proxy.newProxyInstance(type.getClassLoader(),
+ new Class[] { type }, new RemoteInvocationHandler(this, ro));
+ importedObjects.put(i, ro);
+ return i;
+ }
+ protected <T extends DBusSignal> void removeSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException
+ {
+ SignalTuple key = new SignalTuple(rule.getInterface(), rule.getMember(), rule.getObject(), rule.getSource());
+ synchronized (handledSignals) {
+ Vector<DBusSigHandler<? extends DBusSignal>> v = handledSignals.get(key);
+ if (null != v) {
+ v.remove(handler);
+ if (0 == v.size()) {
+ handledSignals.remove(key);
+ }
+ }
+ }
+ }
+ protected <T extends DBusSignal> void addSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException
+ {
+ SignalTuple key = new SignalTuple(rule.getInterface(), rule.getMember(), rule.getObject(), rule.getSource());
+ synchronized (handledSignals) {
+ Vector<DBusSigHandler<? extends DBusSignal>> v = handledSignals.get(key);
+ if (null == v) {
+ v = new Vector<DBusSigHandler<? extends DBusSignal>>();
+ v.add(handler);
+ handledSignals.put(key, v);
+ } else
+ v.add(handler);
+ }
+ }
+ DBusInterface getExportedObject(String source, String path) throws DBusException
+ {
+ return getExportedObject(path);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientMap.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientMap.java
new file mode 100755
index 0000000..67a2484
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientMap.java
@@ -0,0 +1,116 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+/**
+ * Provides a long =&gt; MethodCall map which doesn't allocate objects
+ * on insertion/removal. Keys must be inserted in ascending order. */
+class EfficientMap
+{
+ private long[] kv;
+ private MethodCall[] vv;
+ private int start;
+ private int end;
+ private int init_size;
+ public EfficientMap(int initial_size)
+ {
+ init_size = initial_size;
+ shrink();
+ }
+ private void grow()
+ {
+ // create new vectors twice as long
+ long[] oldkv = kv;
+ kv = new long[oldkv.length*2];
+ MethodCall[] oldvv = vv;
+ vv = new MethodCall[oldvv.length*2];
+
+ // copy start->length to the start of the new vector
+ System.arraycopy(oldkv,start,kv,0,oldkv.length-start);
+ System.arraycopy(oldvv,start,vv,0,oldvv.length-start);
+ // copy 0->end to the next part of the new vector
+ if (end != (oldkv.length-1)) {
+ System.arraycopy(oldkv,0,kv,oldkv.length-start,end+1);
+ System.arraycopy(oldvv,0,vv,oldvv.length-start,end+1);
+ }
+ // reposition pointers
+ start = 0;
+ end = oldkv.length;
+ }
+ // create a new vector with just the valid keys in and return it
+ public long[] getKeys()
+ {
+ int size;
+ if (start < end) size = end-start;
+ else size = kv.length-(start-end);
+ long[] lv = new long[size];
+ int copya;
+ if (size > kv.length-start) copya = kv.length-start;
+ else copya = size;
+ System.arraycopy(kv,start,lv,0,copya);
+ if (copya < size) {
+ System.arraycopy(kv,0,lv,copya,size-copya);
+ }
+ return lv;
+ }
+ private void shrink()
+ {
+ if (null != kv && kv.length == init_size) return;
+ // reset to original size
+ kv = new long[init_size];
+ vv = new MethodCall[init_size];
+ start = 0;
+ end = 0;
+ }
+ public void put(long l, MethodCall m)
+ {
+ // put this at the end
+ kv[end] = l;
+ vv[end] = m;
+ // move the end
+ if (end == (kv.length-1)) end = 0; else end++;
+ // if we are out of space, grow.
+ if (end == start) grow();
+ }
+ public MethodCall remove(long l)
+ {
+ // find the item
+ int pos = find(l);
+ // if we don't have it return null
+ if (-1 == pos) return null;
+ // get the value
+ MethodCall m = vv[pos];
+ // set it as unused
+ vv[pos] = null;
+ kv[pos] = -1;
+ // move the pointer to the first full element
+ while (-1 == kv[start]) {
+ if (start == (kv.length-1)) start = 0; else start++;
+ // if we have emptied the list, shrink it
+ if (start == end) { shrink(); break; }
+ }
+ return m;
+ }
+ public boolean contains(long l)
+ {
+ // check if find succeeds
+ return -1 != find(l);
+ }
+ /* could binary search, but it's probably the first one */
+ private int find(long l)
+ {
+ int i = start;
+ while (i != end && kv[i] != l)
+ if (i == (kv.length-1)) i = 0; else i++;
+ if (i == end) return -1;
+ return i;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientQueue.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientQueue.java
new file mode 100755
index 0000000..5724730
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/EfficientQueue.java
@@ -0,0 +1,107 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import cx.ath.matthew.debug.Debug;
+
+/**
+ * Provides a Message queue which doesn't allocate objects
+ * on insertion/removal. */
+class EfficientQueue
+{
+ private Message[] mv;
+ private int start;
+ private int end;
+ private int init_size;
+ public EfficientQueue(int initial_size)
+ {
+ init_size = initial_size;
+ shrink();
+ }
+ private void grow()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Growing");
+ // create new vectors twice as long
+ Message[] oldmv = mv;
+ mv = new Message[oldmv.length*2];
+
+ // copy start->length to the start of the new vector
+ System.arraycopy(oldmv,start,mv,0,oldmv.length-start);
+ // copy 0->end to the next part of the new vector
+ if (end != (oldmv.length-1)) {
+ System.arraycopy(oldmv,0,mv,oldmv.length-start,end+1);
+ }
+ // reposition pointers
+ start = 0;
+ end = oldmv.length;
+ }
+ // create a new vector with just the valid keys in and return it
+ public Message[] getKeys()
+ {
+ if (start == end) return new Message[0];
+ Message[] lv;
+ if (start < end) {
+ int size = end-start;
+ lv = new Message[size];
+ System.arraycopy(mv, start, lv, 0, size);
+ } else {
+ int size = mv.length-start+end;
+ lv = new Message[size];
+ System.arraycopy(mv, start, lv, 0, mv.length-start);
+ System.arraycopy(mv, 0, lv, mv.length-start, end);
+ }
+ return lv;
+ }
+ private void shrink()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Shrinking");
+ if (null != mv && mv.length == init_size) return;
+ // reset to original size
+ mv = new Message[init_size];
+ start = 0;
+ end = 0;
+ }
+ public void add(Message m)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Enqueueing Message "+m);
+ // put this at the end
+ mv[end] = m;
+ // move the end
+ if (end == (mv.length-1)) end = 0; else end++;
+ // if we are out of space, grow.
+ if (end == start) grow();
+ }
+ public Message remove()
+ {
+ if (start == end) return null;
+ // find the item
+ int pos = start;
+ // get the value
+ Message m = mv[pos];
+ // set it as unused
+ mv[pos] = null;
+ if (start == (mv.length-1)) start = 0; else start++;
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Dequeueing "+m);
+ return m;
+ }
+ public boolean isEmpty()
+ {
+ // check if find succeeds
+ return start == end;
+ }
+ public int size()
+ {
+ if (end >= start)
+ return end-start;
+ else
+ return mv.length-start+end;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Error.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Error.java
new file mode 100755
index 0000000..9db1e07
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Error.java
@@ -0,0 +1,142 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Constructor;
+import java.util.Vector;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.exceptions.MessageFormatException;
+import org.freedesktop.dbus.exceptions.NotConnected;
+
+import cx.ath.matthew.debug.Debug;
+
+/**
+ * Error messages which can be sent over the bus.
+ */
+public class Error extends Message
+{
+ Error() { }
+ public Error(String dest, String errorName, long replyserial, String sig, Object... args) throws DBusException
+ {
+ this(null, dest, errorName, replyserial, sig, args);
+ }
+ public Error(String source, String dest, String errorName, long replyserial, String sig, Object... args) throws DBusException
+ {
+ super(Message.Endian.BIG, Message.MessageType.ERROR, (byte) 0);
+
+ if (null == errorName)
+ throw new MessageFormatException(_("Must specify error name to Errors."));
+ headers.put(Message.HeaderField.REPLY_SERIAL,replyserial);
+ headers.put(Message.HeaderField.ERROR_NAME,errorName);
+
+ Vector<Object> hargs = new Vector<Object>();
+ hargs.add(new Object[] { Message.HeaderField.ERROR_NAME, new Object[] { ArgumentType.STRING_STRING, errorName } });
+ hargs.add(new Object[] { Message.HeaderField.REPLY_SERIAL, new Object[] { ArgumentType.UINT32_STRING, replyserial } });
+
+ if (null != source) {
+ headers.put(Message.HeaderField.SENDER,source);
+ hargs.add(new Object[] { Message.HeaderField.SENDER, new Object[] { ArgumentType.STRING_STRING, source } });
+ }
+
+ if (null != dest) {
+ headers.put(Message.HeaderField.DESTINATION,dest);
+ hargs.add(new Object[] { Message.HeaderField.DESTINATION, new Object[] { ArgumentType.STRING_STRING, dest } });
+ }
+
+ if (null != sig) {
+ hargs.add(new Object[] { Message.HeaderField.SIGNATURE, new Object[] { ArgumentType.SIGNATURE_STRING, sig } });
+ headers.put(Message.HeaderField.SIGNATURE,sig);
+ setArgs(args);
+ }
+
+ byte[] blen = new byte[4];
+ appendBytes(blen);
+ append("ua(yv)", serial, hargs.toArray());
+ pad((byte)8);
+
+ long c = bytecounter;
+ if (null != sig) append(sig, args);
+ marshallint(bytecounter-c, blen, 0, 4);
+ }
+ public Error(String source, Message m, Throwable e) throws DBusException
+ {
+ this(source, m.getSource(), AbstractConnection.dollar_pattern.matcher(e.getClass().getName()).replaceAll("."), m.getSerial(), "s", e.getMessage());
+ }
+ public Error(Message m, Throwable e) throws DBusException
+ {
+ this(m.getSource(), AbstractConnection.dollar_pattern.matcher(e.getClass().getName()).replaceAll("."), m.getSerial(), "s", e.getMessage());
+ }
+ @SuppressWarnings("unchecked")
+ private static Class<? extends DBusExecutionException> createExceptionClass(String name)
+ {
+ if (name == "org.freedesktop.DBus.Local.Disconnected") return NotConnected.class;
+ Class<? extends DBusExecutionException> c = null;
+ do {
+ try {
+ c = (Class<? extends org.freedesktop.dbus.exceptions.DBusExecutionException>) Class.forName(name);
+ } catch (ClassNotFoundException CNFe) {}
+ name = name.replaceAll("\\.([^\\.]*)$", "\\$$1");
+ } while (null == c && name.matches(".*\\..*"));
+ return c;
+ }
+ /**
+ * Turns this into an exception of the correct type
+ */
+ public DBusExecutionException getException()
+ {
+ try {
+ Class<? extends DBusExecutionException> c = createExceptionClass(getName());
+ if (null == c || !DBusExecutionException.class.isAssignableFrom(c)) c = DBusExecutionException.class;
+ Constructor<? extends DBusExecutionException> con = c.getConstructor(String.class);
+ DBusExecutionException ex;
+ Object[] args = getParameters();
+ if (null == args || 0 == args.length)
+ ex = con.newInstance("");
+ else {
+ String s = "";
+ for (Object o: args)
+ s += o + " ";
+ ex = con.newInstance(s.trim());
+ }
+ ex.setType(getName());
+ return ex;
+ } catch (Exception e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug && null != e.getCause())
+ Debug.print(Debug.ERR, e.getCause());
+ DBusExecutionException ex;
+ Object[] args = null;
+ try {
+ args = getParameters();
+ } catch (Exception ee) {}
+ if (null == args || 0 == args.length)
+ ex = new DBusExecutionException("");
+ else {
+ String s = "";
+ for (Object o: args)
+ s += o + " ";
+ ex = new DBusExecutionException(s.trim());
+ }
+ ex.setType(getName());
+ return ex;
+ }
+ }
+ /**
+ * Throw this as an exception of the correct type
+ */
+ public void throwException() throws DBusExecutionException
+ {
+ throw getException();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ExportedObject.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ExportedObject.java
new file mode 100755
index 0000000..3afa54b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ExportedObject.java
@@ -0,0 +1,166 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+class ExportedObject
+{
+ @SuppressWarnings("unchecked")
+ private String getAnnotations(AnnotatedElement c)
+ {
+ String ans = "";
+ for (Annotation a: c.getDeclaredAnnotations()) {
+ Class t = a.annotationType();
+ String value = "";
+ try {
+ Method m = t.getMethod("value");
+ value = m.invoke(a).toString();
+ } catch (NoSuchMethodException NSMe) {
+ } catch (InvocationTargetException ITe) {
+ } catch (IllegalAccessException IAe) {}
+
+ ans += " <annotation name=\""+AbstractConnection.dollar_pattern.matcher(t.getName()).replaceAll(".")+"\" value=\""+value+"\" />\n";
+ }
+ return ans;
+ }
+ @SuppressWarnings("unchecked")
+ private Map<MethodTuple,Method> getExportedMethods(Class c) throws DBusException
+ {
+ if (DBusInterface.class.equals(c)) return new HashMap<MethodTuple,Method>();
+ Map<MethodTuple,Method> m = new HashMap<MethodTuple,Method>();
+ for (Class i: c.getInterfaces())
+ if (DBusInterface.class.equals(i)) {
+ // add this class's public methods
+ if (null != c.getAnnotation(DBusInterfaceName.class)) {
+ String name = ((DBusInterfaceName) c.getAnnotation(DBusInterfaceName.class)).value();
+ introspectiondata += " <interface name=\""+name+"\">\n";
+ DBusSignal.addInterfaceMap(c.getName(), name);
+ } else {
+ // don't let people export things which don't have a
+ // valid D-Bus interface name
+ if (c.getName().equals(c.getSimpleName()))
+ throw new DBusException(_("DBusInterfaces cannot be declared outside a package"));
+ if (c.getName().length() > DBusConnection.MAX_NAME_LENGTH)
+ throw new DBusException(_("Introspected interface name exceeds 255 characters. Cannot export objects of type ")+c.getName());
+ else
+ introspectiondata += " <interface name=\""+AbstractConnection.dollar_pattern.matcher(c.getName()).replaceAll(".")+"\">\n";
+ }
+ introspectiondata += getAnnotations(c);
+ for (Method meth: c.getDeclaredMethods())
+ if (Modifier.isPublic(meth.getModifiers())) {
+ String ms = "";
+ String name;
+ if (meth.isAnnotationPresent(DBusMemberName.class))
+ name = meth.getAnnotation(DBusMemberName.class).value();
+ else
+ name = meth.getName();
+ if (name.length() > DBusConnection.MAX_NAME_LENGTH)
+ throw new DBusException(_("Introspected method name exceeds 255 characters. Cannot export objects with method ")+name);
+ introspectiondata += " <method name=\""+name+"\" >\n";
+ introspectiondata += getAnnotations(meth);
+ for (Class ex: meth.getExceptionTypes())
+ if (DBusExecutionException.class.isAssignableFrom(ex))
+ introspectiondata +=
+ " <annotation name=\"org.freedesktop.DBus.Method.Error\" value=\""+AbstractConnection.dollar_pattern.matcher(ex.getName()).replaceAll(".")+"\" />\n";
+ for (Type pt: meth.getGenericParameterTypes())
+ for (String s: Marshalling.getDBusType(pt)) {
+ introspectiondata += " <arg type=\""+s+"\" direction=\"in\"/>\n";
+ ms += s;
+ }
+ if (!Void.TYPE.equals(meth.getGenericReturnType())) {
+ if (Tuple.class.isAssignableFrom((Class) meth.getReturnType())) {
+ ParameterizedType tc = (ParameterizedType) meth.getGenericReturnType();
+ Type[] ts = tc.getActualTypeArguments();
+
+ for (Type t: ts)
+ if (t != null)
+ for (String s: Marshalling.getDBusType(t))
+ introspectiondata += " <arg type=\""+s+"\" direction=\"out\"/>\n";
+ } else if (Object[].class.equals(meth.getGenericReturnType())) {
+ throw new DBusException(_("Return type of Object[] cannot be introspected properly"));
+ } else
+ for (String s: Marshalling.getDBusType(meth.getGenericReturnType()))
+ introspectiondata += " <arg type=\""+s+"\" direction=\"out\"/>\n";
+ }
+ introspectiondata += " </method>\n";
+ m.put(new MethodTuple(name, ms), meth);
+ }
+ for (Class sig: c.getDeclaredClasses())
+ if (DBusSignal.class.isAssignableFrom(sig)) {
+ String name;
+ if (sig.isAnnotationPresent(DBusMemberName.class)) {
+ name = ((DBusMemberName) sig.getAnnotation(DBusMemberName.class)).value();
+ DBusSignal.addSignalMap(sig.getSimpleName(), name);
+ } else
+ name = sig.getSimpleName();
+ if (name.length() > DBusConnection.MAX_NAME_LENGTH)
+ throw new DBusException(_("Introspected signal name exceeds 255 characters. Cannot export objects with signals of type ")+name);
+ introspectiondata += " <signal name=\""+name+"\">\n";
+ Constructor con = sig.getConstructors()[0];
+ Type[] ts = con.getGenericParameterTypes();
+ for (int j = 1; j < ts.length; j++)
+ for (String s: Marshalling.getDBusType(ts[j]))
+ introspectiondata += " <arg type=\""+s+"\" direction=\"out\" />\n";
+ introspectiondata += getAnnotations(sig);
+ introspectiondata += " </signal>\n";
+
+ }
+ introspectiondata += " </interface>\n";
+ } else {
+ // recurse
+ m.putAll(getExportedMethods(i));
+ }
+ return m;
+ }
+ Map<MethodTuple,Method> methods;
+ Reference<DBusInterface> object;
+ String introspectiondata;
+ public ExportedObject(DBusInterface object, boolean weakreferences) throws DBusException
+ {
+ if (weakreferences)
+ this.object = new WeakReference<DBusInterface>(object);
+ else
+ this.object = new StrongReference<DBusInterface>(object);
+ introspectiondata = "";
+ methods = getExportedMethods(object.getClass());
+ introspectiondata +=
+ " <interface name=\"org.freedesktop.DBus.Introspectable\">\n"+
+ " <method name=\"Introspect\">\n"+
+ " <arg type=\"s\" direction=\"out\"/>\n"+
+ " </method>\n"+
+ " </interface>\n";
+ introspectiondata +=
+ " <interface name=\"org.freedesktop.DBus.Peer\">\n"+
+ " <method name=\"Ping\">\n"+
+ " </method>\n"+
+ " </interface>\n";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Gettext.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Gettext.java
new file mode 100755
index 0000000..5fd6de9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Gettext.java
@@ -0,0 +1,31 @@
+/*
+ * Pescetti Pseudo-Duplimate Generator
+ *
+ * Copyright (C) 2007 Matthew Johnson
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License Version 2 as published by
+ * the Free Software Foundation. This program is distributed in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details. You should have received a
+ * copy of the GNU Lesser General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * To Contact me, please email src@matthew.ath.cx
+ *
+ */
+package org.freedesktop.dbus;
+
+import java.util.ResourceBundle;
+
+public class Gettext
+{
+// private static ResourceBundle myResources =
+// ResourceBundle.getBundle("dbusjava_localized"); pego
+ public static String _(String s) {
+// return myResources.getString(s); pego
+ return s;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/InternalSignal.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/InternalSignal.java
new file mode 100755
index 0000000..55954d5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/InternalSignal.java
@@ -0,0 +1,20 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+import org.freedesktop.dbus.exceptions.DBusException;
+class InternalSignal extends DBusSignal
+{
+ public InternalSignal(String source, String objectpath, String name, String iface, String sig, long serial, Object... parameters) throws DBusException
+ {
+ super(objectpath, iface, name, sig, parameters);
+ this.serial = serial;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Marshalling.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Marshalling.java
new file mode 100755
index 0000000..b561f19
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Marshalling.java
@@ -0,0 +1,629 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.GenericArrayType;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.types.DBusListType;
+import org.freedesktop.dbus.types.DBusMapType;
+import org.freedesktop.dbus.types.DBusStructType;
+
+import cx.ath.matthew.debug.Debug;
+
+/**
+ * Contains static methods for marshalling values.
+ */
+public class Marshalling
+{
+ private static Map<Type, String[]> typeCache = new HashMap<Type, String[]>();
+ /**
+ * Will return the DBus type corresponding to the given Java type.
+ * Note, container type should have their ParameterizedType not their
+ * Class passed in here.
+ * @param c The Java types.
+ * @return The DBus types.
+ * @throws DBusException If the given type cannot be converted to a DBus type.
+ */
+ public static String getDBusType(Type[] c) throws DBusException
+ {
+ StringBuffer sb = new StringBuffer();
+ for (Type t: c)
+ for (String s: getDBusType(t))
+ sb.append(s);
+ return sb.toString();
+ }
+ /**
+ * Will return the DBus type corresponding to the given Java type.
+ * Note, container type should have their ParameterizedType not their
+ * Class passed in here.
+ * @param c The Java type.
+ * @return The DBus type.
+ * @throws DBusException If the given type cannot be converted to a DBus type.
+ */
+ public static String[] getDBusType(Type c) throws DBusException
+ {
+ String[] cached = typeCache.get(c);
+ if (null != cached) return cached;
+ cached = getDBusType(c, false);
+ typeCache.put(c, cached);
+ return cached;
+ }
+ /**
+ * Will return the DBus type corresponding to the given Java type.
+ * Note, container type should have their ParameterizedType not their
+ * Class passed in here.
+ * @param c The Java type.
+ * @param basic If true enforces this to be a non-compound type. (compound types are Maps, Structs and Lists/arrays).
+ * @return The DBus type.
+ * @throws DBusException If the given type cannot be converted to a DBus type.
+ */
+ public static String[] getDBusType(Type c, boolean basic) throws DBusException
+ {
+ return recursiveGetDBusType(c, basic, 0);
+ }
+ private static StringBuffer[] out = new StringBuffer[20]; // pego
+ @SuppressWarnings("unchecked")
+ public static String[] recursiveGetDBusType(Type c, boolean basic, int level) throws DBusException
+ {
+ if (out.length <= level) {
+ StringBuffer[] newout = new StringBuffer[out.length];
+ System.arraycopy(out, 0, newout, 0, out.length);
+ out = newout;
+ }
+ if (null == out[level]) out[level] = new StringBuffer();
+ else out[level].delete(0, out[level].length());
+
+ if (basic && !(c instanceof Class))
+ throw new DBusException(c+_(" is not a basic type"));
+
+ if (c instanceof TypeVariable) out[level].append((char) Message.ArgumentType.VARIANT);
+ else if (c instanceof GenericArrayType) {
+ out[level].append((char) Message.ArgumentType.ARRAY);
+ String[] s = recursiveGetDBusType(((GenericArrayType) c).getGenericComponentType(), false, level+1);
+ if (s.length != 1) throw new DBusException(_("Multi-valued array types not permitted"));
+ out[level].append(s[0]);
+ } else if ((c instanceof Class &&
+ DBusSerializable.class.isAssignableFrom((Class<? extends Object>) c)) ||
+ (c instanceof ParameterizedType &&
+ DBusSerializable.class.isAssignableFrom((Class<? extends Object>) ((ParameterizedType) c).getRawType()))) {
+ // it's a custom serializable type
+ Type[] newtypes = null;
+ if (c instanceof Class) {
+ for (Method m: ((Class<? extends Object>) c).getDeclaredMethods())
+ if (m.getName().equals("deserialize"))
+ newtypes = m.getGenericParameterTypes();
+ }
+ else
+ for (Method m: ((Class<? extends Object>) ((ParameterizedType) c).getRawType()).getDeclaredMethods())
+ if (m.getName().equals("deserialize"))
+ newtypes = m.getGenericParameterTypes();
+
+ if (null == newtypes) throw new DBusException(_("Serializable classes must implement a deserialize method"));
+
+ String[] sigs = new String[newtypes.length];
+ for (int j = 0; j < sigs.length; j++) {
+ String[] ss = recursiveGetDBusType(newtypes[j], false, level+1);
+ if (1 != ss.length) throw new DBusException(_("Serializable classes must serialize to native DBus types"));
+ sigs[j] = ss[0];
+ }
+ return sigs;
+ }
+ else if (c instanceof ParameterizedType) {
+ ParameterizedType p = (ParameterizedType) c;
+ if (p.getRawType().equals(Map.class)) {
+ out[level].append("a{");
+ Type[] t = p.getActualTypeArguments();
+ try {
+ String[] s = recursiveGetDBusType(t[0], true, level+1);
+ if (s.length != 1) throw new DBusException(_("Multi-valued array types not permitted"));
+ out[level].append(s[0]);
+ s = recursiveGetDBusType(t[1], false, level+1);
+ if (s.length != 1) throw new DBusException(_("Multi-valued array types not permitted"));
+ out[level].append(s[0]);
+ } catch (ArrayIndexOutOfBoundsException AIOOBe) {
+ AIOOBe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, AIOOBe);
+ throw new DBusException(_("Map must have 2 parameters"));
+ }
+ out[level].append('}');
+ }
+ else if (List.class.isAssignableFrom((Class<? extends Object>) p.getRawType())) {
+ for (Type t: p.getActualTypeArguments()) {
+ if (Type.class.equals(t))
+ out[level].append((char) Message.ArgumentType.SIGNATURE);
+ else {
+ String[] s = recursiveGetDBusType(t, false, level+1);
+ if (s.length != 1) throw new DBusException(_("Multi-valued array types not permitted"));
+ out[level].append((char) Message.ArgumentType.ARRAY);
+ out[level].append(s[0]);
+ }
+ }
+ }
+ else if (p.getRawType().equals(Variant.class)) {
+ out[level].append((char) Message.ArgumentType.VARIANT);
+ }
+ else if (DBusInterface.class.isAssignableFrom((Class<? extends Object>) p.getRawType())) {
+ out[level].append((char) Message.ArgumentType.OBJECT_PATH);
+ }
+ else if (Tuple.class.isAssignableFrom((Class<? extends Object>) p.getRawType())) {
+ Type[] ts = p.getActualTypeArguments();
+ Vector<String> vs = new Vector<String>();
+ for (Type t: ts)
+ for (String s: recursiveGetDBusType(t, false, level+1))
+ vs.add(s);
+ return vs.toArray(new String[0]);
+ }
+ else
+ throw new DBusException(_("Exporting non-exportable parameterized type ")+c);
+ }
+
+ else if (c.equals(Byte.class)) out[level].append((char) Message.ArgumentType.BYTE);
+ else if (c.equals(Byte.TYPE)) out[level].append((char) Message.ArgumentType.BYTE);
+ else if (c.equals(Boolean.class)) out[level].append((char) Message.ArgumentType.BOOLEAN);
+ else if (c.equals(Boolean.TYPE)) out[level].append((char) Message.ArgumentType.BOOLEAN);
+ else if (c.equals(Short.class)) out[level].append((char) Message.ArgumentType.INT16);
+ else if (c.equals(Short.TYPE)) out[level].append((char) Message.ArgumentType.INT16);
+ else if (c.equals(UInt16.class)) out[level].append((char) Message.ArgumentType.UINT16);
+ else if (c.equals(Integer.class)) out[level].append((char) Message.ArgumentType.INT32);
+ else if (c.equals(Integer.TYPE)) out[level].append((char) Message.ArgumentType.INT32);
+ else if (c.equals(UInt32.class)) out[level].append((char) Message.ArgumentType.UINT32);
+ else if (c.equals(Long.class)) out[level].append((char) Message.ArgumentType.INT64);
+ else if (c.equals(Long.TYPE)) out[level].append((char) Message.ArgumentType.INT64);
+ else if (c.equals(UInt64.class)) out[level].append((char) Message.ArgumentType.UINT64);
+ else if (c.equals(Double.class)) out[level].append((char) Message.ArgumentType.DOUBLE);
+ else if (c.equals(Double.TYPE)) out[level].append((char) Message.ArgumentType.DOUBLE);
+ else if (c.equals(Float.class) && AbstractConnection.FLOAT_SUPPORT) out[level].append((char) Message.ArgumentType.FLOAT);
+ else if (c.equals(Float.class)) out[level].append((char) Message.ArgumentType.DOUBLE);
+ else if (c.equals(Float.TYPE) && AbstractConnection.FLOAT_SUPPORT) out[level].append((char) Message.ArgumentType.FLOAT);
+ else if (c.equals(Float.TYPE)) out[level].append((char) Message.ArgumentType.DOUBLE);
+ else if (c.equals(String.class)) out[level].append((char) Message.ArgumentType.STRING);
+ else if (c.equals(Variant.class)) out[level].append((char) Message.ArgumentType.VARIANT);
+ else if (c instanceof Class &&
+ DBusInterface.class.isAssignableFrom((Class<? extends Object>) c)) out[level].append((char) Message.ArgumentType.OBJECT_PATH);
+ else if (c instanceof Class &&
+ Path.class.equals((Class<? extends Object>) c)) out[level].append((char) Message.ArgumentType.OBJECT_PATH);
+ else if (c instanceof Class &&
+ ObjectPath.class.equals((Class<? extends Object>) c)) out[level].append((char) Message.ArgumentType.OBJECT_PATH);
+ else if (c instanceof Class &&
+ ((Class<? extends Object>) c).isArray()) {
+ if (Type.class.equals(((Class<? extends Object>) c).getComponentType()))
+ out[level].append((char) Message.ArgumentType.SIGNATURE);
+ else {
+ out[level].append((char) Message.ArgumentType.ARRAY);
+ String[] s = recursiveGetDBusType(((Class<? extends Object>) c).getComponentType(), false, level+1);
+ if (s.length != 1) throw new DBusException(_("Multi-valued array types not permitted"));
+ out[level].append(s[0]);
+ }
+ } else if (c instanceof Class &&
+ Struct.class.isAssignableFrom((Class<? extends Object>) c)) {
+ out[level].append((char) Message.ArgumentType.STRUCT1);
+ Type[] ts = Container.getTypeCache(c);
+ if (null == ts) {
+ Field[] fs = ((Class<? extends Object>) c).getDeclaredFields();
+ ts = new Type[fs.length];
+ for (Field f : fs) {
+ Position p = f.getAnnotation(Position.class);
+ if (null == p) continue;
+ ts[p.value()] = f.getGenericType();
+ }
+ Container.putTypeCache(c, ts);
+ }
+
+ for (Type t: ts)
+ if (t != null)
+ for (String s: recursiveGetDBusType(t, false, level+1))
+ out[level].append(s);
+ out[level].append(')');
+ } else {
+ throw new DBusException(_("Exporting non-exportable type ")+c);
+ }
+
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Converted Java type: "+c+" to D-Bus Type: "+out[level]);
+
+ return new String[] { out[level].toString() };
+ }
+
+ /**
+ * Converts a dbus type string into Java Type objects,
+ * @param dbus The DBus type or types.
+ * @param rv Vector to return the types in.
+ * @param limit Maximum number of types to parse (-1 == nolimit).
+ * @return number of characters parsed from the type string.
+ */
+ public static int getJavaType(String dbus, List<Type> rv, int limit) throws DBusException
+ {
+ if (null == dbus || "".equals(dbus) || 0 == limit) return 0;
+
+ try {
+ int i = 0;
+ for (; i < dbus.length() && (-1 == limit || limit > rv.size()); i++)
+ switch(dbus.charAt(i)) {
+ case Message.ArgumentType.STRUCT1:
+ int j = i+1;
+ for (int c = 1; c > 0; j++) {
+ if (')' == dbus.charAt(j)) c--;
+ else if (Message.ArgumentType.STRUCT1 == dbus.charAt(j)) c++;
+ }
+
+ Vector<Type> contained = new Vector<Type>();
+ int c = getJavaType(dbus.substring(i+1, j-1), contained, -1);
+ rv.add(new DBusStructType(contained.toArray(new Type[0])));
+ i = j;
+ break;
+ case Message.ArgumentType.ARRAY:
+ if (Message.ArgumentType.DICT_ENTRY1 == dbus.charAt(i+1)) {
+ contained = new Vector<Type>();
+ c = getJavaType(dbus.substring(i+2), contained, 2);
+ rv.add(new DBusMapType(contained.get(0), contained.get(1)));
+ i += (c+2);
+ } else {
+ contained = new Vector<Type>();
+ c = getJavaType(dbus.substring(i+1), contained, 1);
+ rv.add(new DBusListType(contained.get(0)));
+ i += c;
+ }
+ break;
+ case Message.ArgumentType.VARIANT:
+ rv.add(Variant.class);
+ break;
+ case Message.ArgumentType.BOOLEAN:
+ rv.add(Boolean.class);
+ break;
+ case Message.ArgumentType.INT16:
+ rv.add(Short.class);
+ break;
+ case Message.ArgumentType.BYTE:
+ rv.add(Byte.class);
+ break;
+ case Message.ArgumentType.OBJECT_PATH:
+ rv.add(DBusInterface.class);
+ break;
+ case Message.ArgumentType.UINT16:
+ rv.add(UInt16.class);
+ break;
+ case Message.ArgumentType.INT32:
+ rv.add(Integer.class);
+ break;
+ case Message.ArgumentType.UINT32:
+ rv.add(UInt32.class);
+ break;
+ case Message.ArgumentType.INT64:
+ rv.add(Long.class);
+ break;
+ case Message.ArgumentType.UINT64:
+ rv.add(UInt64.class);
+ break;
+ case Message.ArgumentType.DOUBLE:
+ rv.add(Double.class);
+ break;
+ case Message.ArgumentType.FLOAT:
+ rv.add(Float.class);
+ break;
+ case Message.ArgumentType.STRING:
+ rv.add(String.class);
+ break;
+ case Message.ArgumentType.SIGNATURE:
+ rv.add(Type[].class);
+ break;
+ case Message.ArgumentType.DICT_ENTRY1:
+ rv.add(Map.Entry.class);
+ contained = new Vector<Type>();
+ c = getJavaType(dbus.substring(i+1), contained, 2);
+ i+=c+1;
+ break;
+ default:
+ throw new DBusException(MessageFormat.format(_("Failed to parse DBus type signature: {0} ({1})."), new Object[] { dbus, dbus.charAt(i) }));
+ }
+ return i;
+ } catch (IndexOutOfBoundsException IOOBe) {
+ IOOBe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, IOOBe);
+ throw new DBusException(_("Failed to parse DBus type signature: ")+dbus);
+ }
+ }
+ /**
+ * Recursively converts types for serialization onto DBus.
+ * @param parameters The parameters to convert.
+ * @param types The (possibly generic) types of the parameters.
+ * @return The converted parameters.
+ * @throws DBusException Thrown if there is an error in converting the objects.
+ */
+ @SuppressWarnings("unchecked")
+ public static Object[] convertParameters(Object[] parameters, Type[] types, AbstractConnection conn) throws DBusException
+ {
+ if (null == parameters) return null;
+ for (int i = 0; i < parameters.length; i++) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE,"Converting "+i+" from "+parameters[i]+" to "+types[i]);
+ if (null == parameters[i]) continue;
+
+ if (parameters[i] instanceof DBusSerializable) {
+ for (Method m: parameters[i].getClass().getDeclaredMethods())
+ if (m.getName().equals("deserialize")) {
+ Type[] newtypes = m.getParameterTypes();
+ Type[] expand = new Type[types.length + newtypes.length - 1];
+ System.arraycopy(types, 0, expand, 0, i);
+ System.arraycopy(newtypes, 0, expand, i, newtypes.length);
+ System.arraycopy(types, i+1, expand, i+newtypes.length, types.length-i-1);
+ types = expand;
+ Object[] newparams = ((DBusSerializable) parameters[i]).serialize();
+ Object[] exparams = new Object[parameters.length + newparams.length - 1];
+ System.arraycopy(parameters, 0, exparams, 0, i);
+ System.arraycopy(newparams, 0, exparams, i, newparams.length);
+ System.arraycopy(parameters, i+1, exparams, i+newparams.length, parameters.length-i-1);
+ parameters = exparams;
+ }
+ i--;
+ } else if (parameters[i] instanceof Tuple) {
+ Type[] newtypes = ((ParameterizedType) types[i]).getActualTypeArguments();
+ Type[] expand = new Type[types.length + newtypes.length - 1];
+ System.arraycopy(types, 0, expand, 0, i);
+ System.arraycopy(newtypes, 0, expand, i, newtypes.length);
+ System.arraycopy(types, i+1, expand, i+newtypes.length, types. length-i-1);
+ types = expand;
+ Object[] newparams = ((Tuple) parameters[i]).getParameters();
+ Object[] exparams = new Object[parameters.length + newparams.length - 1];
+ System.arraycopy(parameters, 0, exparams, 0, i);
+ System.arraycopy(newparams, 0, exparams, i, newparams.length);
+ System.arraycopy(parameters, i+1, exparams, i+newparams.length, parameters.length-i-1);
+ parameters = exparams;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "New params: "+Arrays.deepToString(parameters)+" new types: "+Arrays.deepToString(types));
+ i--;
+ } else if (types[i] instanceof TypeVariable &&
+ !(parameters[i] instanceof Variant))
+ // its an unwrapped variant, wrap it
+ parameters[i] = new Variant<Object>(parameters[i]);
+ else if (parameters[i] instanceof DBusInterface)
+ parameters[i] = conn.getExportedObject((DBusInterface) parameters[i]);
+ }
+ return parameters;
+ }
+ @SuppressWarnings("unchecked")
+ static Object deSerializeParameter(Object parameter, Type type, AbstractConnection conn) throws Exception
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Deserializing from "+parameter.getClass()+" to "+type.getClass());
+ if (null == parameter)
+ return null;
+
+ // its a wrapped variant, unwrap it
+ if (type instanceof TypeVariable
+ && parameter instanceof Variant) {
+ parameter = ((Variant)parameter).getValue();
+ }
+
+ // Turn a signature into a Type[]
+ if (type instanceof Class
+ && ((Class) type).isArray()
+ && ((Class) type).getComponentType().equals(Type.class)
+ && parameter instanceof String) {
+ Vector<Type> rv = new Vector<Type>();
+ getJavaType((String) parameter, rv, -1);
+ parameter = rv.toArray(new Type[0]);
+ }
+
+ // its an object path, get/create the proxy
+ if (parameter instanceof ObjectPath) {
+ if (type instanceof Class && DBusInterface.class.isAssignableFrom((Class) type))
+ parameter = conn.getExportedObject(
+ ((ObjectPath) parameter).source,
+ ((ObjectPath) parameter).path);
+ else
+ parameter = new Path(((ObjectPath) parameter).path);
+ }
+
+ // it should be a struct. create it
+ if (parameter instanceof Object[] &&
+ type instanceof Class &&
+ Struct.class.isAssignableFrom((Class) type)) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Creating Struct "+type+" from "+parameter);
+ Type[] ts = Container.getTypeCache(type);
+ if (null == ts) {
+ Field[] fs = ((Class) type).getDeclaredFields();
+ ts = new Type[fs.length];
+ for (Field f : fs) {
+ Position p = f.getAnnotation(Position.class);
+ if (null == p) continue;
+ ts[p.value()] = f.getGenericType();
+ }
+ Container.putTypeCache(type, ts);
+ }
+
+ // recurse over struct contents
+ parameter = deSerializeParameters((Object[]) parameter, ts, conn);
+ for (Constructor con: ((Class) type).getDeclaredConstructors()) {
+ try {
+ parameter = con.newInstance((Object[]) parameter);
+ break;
+ } catch (IllegalArgumentException IAe) {}
+ }
+ }
+
+ // recurse over arrays
+ if (parameter instanceof Object[]) {
+ Type[] ts = new Type[((Object[]) parameter).length];
+ Arrays.fill(ts, parameter.getClass().getComponentType());
+ parameter = deSerializeParameters((Object[]) parameter,
+ ts, conn);
+ }
+ if (parameter instanceof List) {
+ Type type2;
+ if (type instanceof ParameterizedType)
+ type2 = ((ParameterizedType) type).getActualTypeArguments()[0];
+ else if (type instanceof GenericArrayType)
+ type2 = ((GenericArrayType) type).getGenericComponentType();
+ else if (type instanceof Class && ((Class) type).isArray())
+ type2 = ((Class) type).getComponentType();
+ else
+ type2 = null;
+ if (null != type2)
+ parameter = deSerializeParameters((List) parameter, type2, conn);
+ }
+
+ // correct floats if appropriate
+ if (type.equals(Float.class) || type.equals(Float.TYPE))
+ if (!(parameter instanceof Float))
+ parameter = ((Number) parameter).floatValue();
+
+ // make sure arrays are in the correct format
+ if (parameter instanceof Object[] ||
+ parameter instanceof List ||
+ parameter.getClass().isArray()) {
+ if (type instanceof ParameterizedType)
+ parameter = ArrayFrob.convert(parameter,
+ (Class<? extends Object>) ((ParameterizedType) type).getRawType());
+ else if (type instanceof GenericArrayType) {
+ Type ct = ((GenericArrayType) type).getGenericComponentType();
+ Class cc = null;
+ if (ct instanceof Class)
+ cc = (Class) ct;
+ if (ct instanceof ParameterizedType)
+ cc = (Class) ((ParameterizedType) ct).getRawType();
+ Object o = Array.newInstance(cc, 0);
+ parameter = ArrayFrob.convert(parameter,
+ o.getClass());
+ } else if (type instanceof Class &&
+ ((Class) type).isArray()) {
+ Class cc = ((Class) type).getComponentType();
+ if ((cc.equals(Float.class) || cc.equals(Float.TYPE))
+ && (parameter instanceof double[])) {
+ double[] tmp1 = (double[]) parameter;
+ float[] tmp2 = new float[tmp1.length];
+ for (int i = 0; i < tmp1.length; i++)
+ tmp2[i] = (float) tmp1[i];
+ parameter = tmp2;
+ }
+ Object o = Array.newInstance(cc, 0);
+ parameter = ArrayFrob.convert(parameter,
+ o.getClass());
+ }
+ }
+ if (parameter instanceof DBusMap) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Deserializing a Map");
+ DBusMap dmap = (DBusMap) parameter;
+ Type[] maptypes = ((ParameterizedType) type).getActualTypeArguments();
+ for (int i = 0; i < dmap.entries.length; i++) {
+ dmap.entries[i][0] = deSerializeParameter(dmap.entries[i][0], maptypes[0], conn);
+ dmap.entries[i][1] = deSerializeParameter(dmap.entries[i][1], maptypes[1], conn);
+ }
+ }
+ return parameter;
+ }
+ static List<Object> deSerializeParameters(List<Object> parameters, Type type, AbstractConnection conn) throws Exception
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Deserializing from "+parameters+" to "+type);
+ if (null == parameters) return null;
+ for (int i = 0; i < parameters.size(); i++) {
+ if (null == parameters.get(i)) continue;
+
+ /* DO NOT DO THIS! IT'S REALLY NOT SUPPORTED!
+ * if (type instanceof Class &&
+ DBusSerializable.class.isAssignableFrom((Class) types[i])) {
+ for (Method m: ((Class) types[i]).getDeclaredMethods())
+ if (m.getName().equals("deserialize")) {
+ Type[] newtypes = m.getGenericParameterTypes();
+ try {
+ Object[] sub = new Object[newtypes.length];
+ System.arraycopy(parameters, i, sub, 0, newtypes.length);
+ sub = deSerializeParameters(sub, newtypes, conn);
+ DBusSerializable sz = (DBusSerializable) ((Class) types[i]).newInstance();
+ m.invoke(sz, sub);
+ Object[] compress = new Object[parameters.length - newtypes.length + 1];
+ System.arraycopy(parameters, 0, compress, 0, i);
+ compress[i] = sz;
+ System.arraycopy(parameters, i + newtypes.length, compress, i+1, parameters.length - i - newtypes.length);
+ parameters = compress;
+ } catch (ArrayIndexOutOfBoundsException AIOOBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, AIOOBe);
+ throw new DBusException("Not enough elements to create custom object from serialized data ("+(parameters.size()-i)+" < "+(newtypes.length)+")");
+ }
+ }
+ } else*/
+ parameters.set(i, deSerializeParameter(parameters.get(i), type, conn));
+ }
+ return parameters;
+ }
+
+ @SuppressWarnings("unchecked")
+ static Object[] deSerializeParameters(Object[] parameters, Type[] types, AbstractConnection conn) throws Exception
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Deserializing from "+Arrays.deepToString(parameters)+" to "+Arrays.deepToString(types));
+ if (null == parameters) return null;
+
+ if (types.length == 1 && types[0] instanceof ParameterizedType
+ && Tuple.class.isAssignableFrom((Class) ((ParameterizedType) types[0]).getRawType())) {
+ types = ((ParameterizedType) types[0]).getActualTypeArguments();
+ }
+
+ for (int i = 0; i < parameters.length; i++) {
+ // CHECK IF ARRAYS HAVE THE SAME LENGTH <-- has to happen after expanding parameters
+ if (i >= types.length) {
+ if (Debug.debug) {
+ for (int j = 0; j < parameters.length; j++) {
+ Debug.print(Debug.ERR, String.format("Error, Parameters difference (%1d, '%2s')", j, parameters[j].toString()));
+ }
+ }
+ throw new DBusException(_("Error deserializing message: number of parameters didn't match receiving signature"));
+ }
+ if (null == parameters[i]) continue;
+
+ if ((types[i] instanceof Class &&
+ DBusSerializable.class.isAssignableFrom((Class<? extends Object>) types[i])) ||
+ (types[i] instanceof ParameterizedType &&
+ DBusSerializable.class.isAssignableFrom((Class<? extends Object>) ((ParameterizedType) types[i]).getRawType()))) {
+ Class<? extends DBusSerializable> dsc;
+ if (types[i] instanceof Class)
+ dsc = (Class<? extends DBusSerializable>) types[i];
+ else
+ dsc = (Class<? extends DBusSerializable>) ((ParameterizedType) types[i]).getRawType();
+ for (Method m: dsc.getDeclaredMethods())
+ if (m.getName().equals("deserialize")) {
+ Type[] newtypes = m.getGenericParameterTypes();
+ try {
+ Object[] sub = new Object[newtypes.length];
+ System.arraycopy(parameters, i, sub, 0, newtypes.length);
+ sub = deSerializeParameters(sub, newtypes, conn);
+ DBusSerializable sz = dsc.newInstance();
+ m.invoke(sz, sub);
+ Object[] compress = new Object[parameters.length - newtypes.length + 1];
+ System.arraycopy(parameters, 0, compress, 0, i);
+ compress[i] = sz;
+ System.arraycopy(parameters, i + newtypes.length, compress, i+1, parameters.length - i - newtypes.length);
+ parameters = compress;
+ } catch (ArrayIndexOutOfBoundsException AIOOBe) {
+ AIOOBe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, AIOOBe);
+ throw new DBusException(MessageFormat.format(_("Not enough elements to create custom object from serialized data ({0} < {1})."),
+ new Object[] { parameters.length-i, newtypes.length }));
+ }
+ }
+ } else
+ parameters[i] = deSerializeParameter(parameters[i], types[i], conn);
+ }
+ return parameters;
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Message.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Message.java
new file mode 100755
index 0000000..269ffab
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Message.java
@@ -0,0 +1,1225 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.Type;
+import java.io.UnsupportedEncodingException;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import cx.ath.matthew.debug.Debug;
+import cx.ath.matthew.utils.Hexdump;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.MarshallingException;
+import org.freedesktop.dbus.exceptions.UnknownTypeCodeException;
+
+/**
+ * Superclass of all messages which are sent over the Bus.
+ * This class deals with all the marshalling to/from the wire format.
+ */
+public class Message
+{
+ /** Defines constants representing the endianness of the message. */
+ public static interface Endian {
+ public static final byte BIG = 'B';
+ public static final byte LITTLE = 'l';
+ }
+ /** Defines constants representing the flags which can be set on a message. */
+ public static interface Flags {
+ public static final byte NO_REPLY_EXPECTED = 0x01;
+ public static final byte NO_AUTO_START = 0x02;
+ public static final byte ASYNC = 0x40;
+ }
+ /** Defines constants for each message type. */
+ public static interface MessageType {
+ public static final byte METHOD_CALL = 1;
+ public static final byte METHOD_RETURN = 2;
+ public static final byte ERROR = 3;
+ public static final byte SIGNAL = 4;
+ }
+ /** The current protocol major version. */
+ public static final byte PROTOCOL = 1;
+ /** Defines constants for each valid header field type. */
+ public static interface HeaderField {
+ public static final byte PATH = 1;
+ public static final byte INTERFACE = 2;
+ public static final byte MEMBER = 3;
+ public static final byte ERROR_NAME = 4;
+ public static final byte REPLY_SERIAL = 5;
+ public static final byte DESTINATION = 6;
+ public static final byte SENDER = 7;
+ public static final byte SIGNATURE = 8;
+ }
+ /** Defines constants for each argument type.
+ * There are two constants for each argument type,
+ * as a byte or as a String (the _STRING version) */
+ public static interface ArgumentType {
+ public static final String BYTE_STRING="y";
+ public static final String BOOLEAN_STRING="b";
+ public static final String INT16_STRING="n";
+ public static final String UINT16_STRING="q";
+ public static final String INT32_STRING="i";
+ public static final String UINT32_STRING="u";
+ public static final String INT64_STRING="x";
+ public static final String UINT64_STRING="t";
+ public static final String DOUBLE_STRING="d";
+ public static final String FLOAT_STRING="f";
+ public static final String STRING_STRING="s";
+ public static final String OBJECT_PATH_STRING="o";
+ public static final String SIGNATURE_STRING="g";
+ public static final String ARRAY_STRING="a";
+ public static final String VARIANT_STRING="v";
+ public static final String STRUCT_STRING="r";
+ public static final String STRUCT1_STRING="(";
+ public static final String STRUCT2_STRING=")";
+ public static final String DICT_ENTRY_STRING="e";
+ public static final String DICT_ENTRY1_STRING="{";
+ public static final String DICT_ENTRY2_STRING="}";
+
+ public static final byte BYTE='y';
+ public static final byte BOOLEAN='b';
+ public static final byte INT16='n';
+ public static final byte UINT16='q';
+ public static final byte INT32='i';
+ public static final byte UINT32='u';
+ public static final byte INT64='x';
+ public static final byte UINT64='t';
+ public static final byte DOUBLE='d';
+ public static final byte FLOAT='f';
+ public static final byte STRING='s';
+ public static final byte OBJECT_PATH='o';
+ public static final byte SIGNATURE='g';
+ public static final byte ARRAY='a';
+ public static final byte VARIANT='v';
+ public static final byte STRUCT='r';
+ public static final byte STRUCT1='(';
+ public static final byte STRUCT2=')';
+ public static final byte DICT_ENTRY='e';
+ public static final byte DICT_ENTRY1='{';
+ public static final byte DICT_ENTRY2='}';
+ }
+ /** Keep a static reference to each size of padding array to prevent allocation. */
+ private static byte[][] padding;
+ static {
+ padding = new byte[][] {
+ null,
+ new byte[1],
+ new byte[2],
+ new byte[3],
+ new byte[4],
+ new byte[5],
+ new byte[6],
+ new byte[7] };
+ }
+ /** Steps to increment the buffer array. */
+ private static final int BUFFERINCREMENT = 20;
+
+ private boolean big;
+ protected byte[][] wiredata;
+ protected long bytecounter;
+ protected Map<Byte, Object> headers;
+ protected static long globalserial = 0;
+ protected long serial;
+ protected byte type;
+ protected byte flags;
+ protected byte protover;
+ private Object[] args;
+ private byte[] body;
+ private long bodylen = 0;
+ private int preallocated = 0;
+ private int paofs = 0;
+ private byte[] pabuf;
+ private int bufferuse = 0;
+
+ /**
+ * Returns the name of the given header field.
+ */
+ public static String getHeaderFieldName(byte field)
+ {
+ switch (field) {
+ case HeaderField.PATH: return "Path";
+ case HeaderField.INTERFACE: return "Interface";
+ case HeaderField.MEMBER: return "Member";
+ case HeaderField.ERROR_NAME: return "Error Name";
+ case HeaderField.REPLY_SERIAL: return "Reply Serial";
+ case HeaderField.DESTINATION: return "Destination";
+ case HeaderField.SENDER: return "Sender";
+ case HeaderField.SIGNATURE: return "Signature";
+ default: return "Invalid";
+ }
+ }
+
+ /**
+ * Create a message; only to be called by sub-classes.
+ * @param endian The endianness to create the message.
+ * @param type The message type.
+ * @param flags Any message flags.
+ */
+ protected Message(byte endian, byte type, byte flags) throws DBusException
+ {
+ wiredata = new byte[BUFFERINCREMENT][];
+ headers = new HashMap<Byte, Object>();
+ big = (Endian.BIG == endian);
+ bytecounter = 0;
+ synchronized (Message.class) {
+ serial = ++globalserial;
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Creating message with serial "+serial);
+ this.type = type;
+ this.flags = flags;
+ preallocate(4);
+ append("yyyy", endian, type, flags, Message.PROTOCOL);
+ }
+ /**
+ * Create a blank message. Only to be used when calling populate.
+ */
+ protected Message()
+ {
+ wiredata = new byte[BUFFERINCREMENT][];
+ headers = new HashMap<Byte, Object>();
+ bytecounter = 0;
+ }
+ /**
+ * Create a message from wire-format data.
+ * @param msg D-Bus serialized data of type yyyuu
+ * @param headers D-Bus serialized data of type a(yv)
+ * @param body D-Bus serialized data of the signature defined in headers.
+ */
+ @SuppressWarnings("unchecked")
+ void populate(byte[] msg, byte[] headers, byte[] body) throws DBusException
+ {
+ big = (msg[0] == Endian.BIG);
+ type = msg[1];
+ flags = msg[2];
+ protover = msg[3];
+ wiredata[0] = msg;
+ wiredata[1] = headers;
+ wiredata[2] = body;
+ this.body = body;
+ bufferuse = 3;
+ bodylen = ((Number) extract(Message.ArgumentType.UINT32_STRING, msg, 4)[0]).longValue();
+ serial = ((Number) extract(Message.ArgumentType.UINT32_STRING, msg, 8)[0]).longValue();
+ bytecounter = msg.length+headers.length+body.length;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, headers);
+ Object[] hs = extract("a(yv)", headers, 0);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, Arrays.deepToString(hs));
+ for (Object o: (Vector<Object>) hs[0]) {
+ this.headers.put((Byte) ((Object[])o)[0], ((Variant<Object>)((Object[])o)[1]).getValue());
+ }
+ }
+ /**
+ * Create a buffer of num bytes.
+ * Data is copied to this rather than added to the buffer list.
+ */
+ private void preallocate(int num)
+ {
+ preallocated = 0;
+ pabuf = new byte[num];
+ appendBytes(pabuf);
+ preallocated = num;
+ paofs = 0;
+ }
+ /**
+ * Ensures there are enough free buffers.
+ * @param num number of free buffers to create.
+ */
+ private void ensureBuffers(int num)
+ {
+ int increase = num - wiredata.length + bufferuse;
+ if (increase > 0) {
+ if (increase < BUFFERINCREMENT) increase = BUFFERINCREMENT;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Resizing "+bufferuse);
+ byte[][] temp = new byte[wiredata.length+increase][];
+ System.arraycopy(wiredata, 0, temp, 0, wiredata.length);
+ wiredata = temp;
+ }
+ }
+ /**
+ * Appends a buffer to the buffer list.
+ */
+ protected void appendBytes(byte[] buf)
+ {
+ if (null == buf) return;
+ if (preallocated > 0) {
+ if (paofs+buf.length > pabuf.length)
+ throw new ArrayIndexOutOfBoundsException(MessageFormat.format(_("Array index out of bounds, paofs={0}, pabuf.length={1}, buf.length={2}."), new Object[] { paofs, pabuf.length, buf.length }));
+ System.arraycopy(buf, 0, pabuf, paofs, buf.length);
+ paofs += buf.length;
+ preallocated -= buf.length;
+ } else {
+ if (bufferuse == wiredata.length) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Resizing "+bufferuse);
+ byte[][] temp = new byte[wiredata.length+BUFFERINCREMENT][];
+ System.arraycopy(wiredata, 0, temp, 0, wiredata.length);
+ wiredata = temp;
+ }
+ wiredata[bufferuse++] = buf;
+ bytecounter += buf.length;
+ }
+ }
+ /**
+ * Appends a byte to the buffer list.
+ */
+ protected void appendByte(byte b)
+ {
+ if (preallocated > 0) {
+ pabuf[paofs++] = b;
+ preallocated--;
+ } else {
+ if (bufferuse == wiredata.length) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Resizing "+bufferuse);
+ byte[][] temp = new byte[wiredata.length+BUFFERINCREMENT][];
+ System.arraycopy(wiredata, 0, temp, 0, wiredata.length);
+ wiredata = temp;
+ }
+ wiredata[bufferuse++] = new byte[] { b };
+ bytecounter++;
+ }
+ }
+ /**
+ * Demarshalls an integer of a given width from a buffer.
+ * Endianness is determined from the format of the message.
+ * @param buf The buffer to demarshall from.
+ * @param ofs The offset to demarshall from.
+ * @param width The byte-width of the int.
+ */
+ public long demarshallint(byte[] buf, int ofs, int width)
+ { return big ? demarshallintBig(buf,ofs,width) : demarshallintLittle(buf,ofs,width); }
+ /**
+ * Demarshalls an integer of a given width from a buffer.
+ * @param buf The buffer to demarshall from.
+ * @param ofs The offset to demarshall from.
+ * @param endian The endianness to use in demarshalling.
+ * @param width The byte-width of the int.
+ */
+ public static long demarshallint(byte[] buf, int ofs, byte endian, int width)
+ { return endian==Endian.BIG ? demarshallintBig(buf,ofs,width) : demarshallintLittle(buf,ofs,width); }
+ /**
+ * Demarshalls an integer of a given width from a buffer using big-endian format.
+ * @param buf The buffer to demarshall from.
+ * @param ofs The offset to demarshall from.
+ * @param width The byte-width of the int.
+ */
+ public static long demarshallintBig(byte[] buf, int ofs, int width)
+ {
+ long l = 0;
+ for (int i = 0; i < width; i++) {
+ l <<=8;
+ l |= (buf[ofs+i] & 0xFF);
+ }
+ return l;
+ }
+ /**
+ * Demarshalls an integer of a given width from a buffer using little-endian format.
+ * @param buf The buffer to demarshall from.
+ * @param ofs The offset to demarshall from.
+ * @param width The byte-width of the int.
+ */
+ public static long demarshallintLittle(byte[] buf, int ofs, int width)
+ {
+ long l = 0;
+ for (int i = (width-1); i >= 0; i--) {
+ l <<=8;
+ l |= (buf[ofs+i] & 0xFF);
+ }
+ return l;
+ }
+ /**
+ * Marshalls an integer of a given width and appends it to the message.
+ * Endianness is determined from the message.
+ * @param l The integer to marshall.
+ * @param width The byte-width of the int.
+ */
+ public void appendint(long l, int width)
+ {
+ byte[] buf = new byte[width];
+ marshallint(l, buf, 0, width);
+ appendBytes(buf);
+ }
+ /**
+ * Marshalls an integer of a given width into a buffer.
+ * Endianness is determined from the message.
+ * @param l The integer to marshall.
+ * @param buf The buffer to marshall to.
+ * @param ofs The offset to marshall to.
+ * @param width The byte-width of the int.
+ */
+ public void marshallint(long l, byte[] buf, int ofs, int width)
+ {
+ if (big) marshallintBig(l, buf, ofs, width); else marshallintLittle(l, buf, ofs, width);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Marshalled int "+l+" to "+Hexdump.toHex(buf,ofs,width));
+ }
+ /**
+ * Marshalls an integer of a given width into a buffer using big-endian format.
+ * @param l The integer to marshall.
+ * @param buf The buffer to marshall to.
+ * @param ofs The offset to marshall to.
+ * @param width The byte-width of the int.
+ */
+ public static void marshallintBig(long l, byte[] buf, int ofs, int width)
+ {
+ for (int i = (width-1); i >= 0; i--) {
+ buf[i+ofs] = (byte) (l & 0xFF);
+ l >>= 8;
+ }
+ }
+ /**
+ * Marshalls an integer of a given width into a buffer using little-endian format.
+ * @param l The integer to marshall.
+ * @param buf The buffer to demarshall to.
+ * @param ofs The offset to demarshall to.
+ * @param width The byte-width of the int.
+ */
+ public static void marshallintLittle(long l, byte[] buf, int ofs, int width)
+ {
+ for (int i = 0; i < width; i++) {
+ buf[i+ofs] = (byte) (l & 0xFF);
+ l >>= 8;
+ }
+ }
+ public byte[][] getWireData()
+ {
+ return wiredata;
+ }
+ /**
+ * Formats the message in a human-readable format.
+ */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append(getClass().getSimpleName());
+ sb.append ('(');
+ sb.append (flags);
+ sb.append (',');
+ sb.append(serial);
+ sb.append (')');
+ sb.append (' ');
+ sb.append ('{');
+ sb.append(' ');
+ if (headers.size() == 0)
+ sb.append('}');
+ else {
+ for (Byte field: headers.keySet()) {
+ sb.append(getHeaderFieldName(field));
+ sb.append('=');
+ sb.append('>');
+ sb.append(headers.get(field).toString());
+ sb.append(',');
+ sb.append(' ');
+ }
+ sb.setCharAt(sb.length()-2,' ');
+ sb.setCharAt(sb.length()-1,'}');
+ }
+ sb.append(' ');
+ sb.append('{');
+ sb.append(' ');
+ Object[] args = null;
+ try {
+ args = getParameters();
+ } catch (DBusException DBe) {
+ DBe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ }
+ if (null == args || 0 == args.length)
+ sb.append('}');
+ else {
+ for (Object o: args) {
+ if (o instanceof Object[])
+ sb.append(Arrays.deepToString((Object[]) o));
+ else if (o instanceof byte[])
+ sb.append(Arrays.toString((byte[]) o));
+ else if (o instanceof int[])
+ sb.append(Arrays.toString((int[]) o));
+ else if (o instanceof short[])
+ sb.append(Arrays.toString((short[]) o));
+ else if (o instanceof long[])
+ sb.append(Arrays.toString((long[]) o));
+ else if (o instanceof boolean[])
+ sb.append(Arrays.toString((boolean[]) o));
+ else if (o instanceof double[])
+ sb.append(Arrays.toString((double[]) o));
+ else if (o instanceof float[])
+ sb.append(Arrays.toString((float[]) o));
+ else
+ if (o != null) { // pego
+ sb.append(o.toString());
+ } else { // pego
+ sb.append("null"); // pego
+ } // pego
+ sb.append(',');
+ sb.append(' ');
+ }
+ sb.setCharAt(sb.length()-2,' ');
+ sb.setCharAt(sb.length()-1,'}');
+ }
+ return sb.toString();
+ }
+ /**
+ * Returns the value of the header field of a given field.
+ * @param type The field to return.
+ * @return The value of the field or null if unset.
+ */
+ public Object getHeader(byte type) { return headers.get(type); }
+ /**
+ * Appends a value to the message.
+ * The type of the value is read from a D-Bus signature and used to marshall
+ * the value.
+ * @param sigb A buffer of the D-Bus signature.
+ * @param sigofs The offset into the signature corresponding to this value.
+ * @param data The value to marshall.
+ * @return The offset into the signature of the end of this value's type.
+ */
+ @SuppressWarnings("unchecked")
+ private int appendone(byte[] sigb, int sigofs, Object data) throws DBusException
+ {
+ try {
+ int i = sigofs;
+ if (Debug.debug) Debug.print(Debug.VERBOSE, (Object) bytecounter);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Appending type: "+((char)sigb[i])+" value: "+data);
+
+ // pad to the alignment of this type.
+ pad(sigb[i]);
+ switch (sigb[i]) {
+ case ArgumentType.BYTE:
+ appendByte(((Number) data).byteValue());
+ break;
+ case ArgumentType.BOOLEAN:
+ appendint(((Boolean) data).booleanValue() ? 1 : 0, 4);
+ break;
+ case ArgumentType.DOUBLE:
+ long l = Double.doubleToLongBits(((Number) data).doubleValue());
+ appendint(l, 8);
+ break;
+ case ArgumentType.FLOAT:
+ int rf = Float.floatToIntBits(((Number) data).floatValue());
+ appendint(rf, 4);
+ break;
+ case ArgumentType.UINT32:
+ appendint(((Number) data).longValue(), 4);
+ break;
+ case ArgumentType.INT64:
+ appendint(((Number) data).longValue(), 8);
+ break;
+ case ArgumentType.UINT64:
+ if (big) {
+ appendint(((UInt64) data).top(), 4);
+ appendint(((UInt64) data).bottom(), 4);
+ } else {
+ appendint(((UInt64) data).bottom(), 4);
+ appendint(((UInt64) data).top(), 4);
+ }
+ break;
+ case ArgumentType.INT32:
+ appendint(((Number) data).intValue(), 4);
+ break;
+ case ArgumentType.UINT16:
+ appendint(((Number) data).intValue(), 2);
+ break;
+ case ArgumentType.INT16:
+ appendint(((Number) data).shortValue(), 2);
+ break;
+ case ArgumentType.STRING:
+ case ArgumentType.OBJECT_PATH:
+ // Strings are marshalled as a UInt32 with the length,
+ // followed by the String, followed by a null byte.
+ String payload = data.toString();
+ byte[] payloadbytes = null;
+ try {
+ payloadbytes = payload.getBytes("UTF-8");
+ } catch (UnsupportedEncodingException UEe) {
+ UEe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(UEe);
+ throw new DBusException(_("System does not support UTF-8 encoding"));
+ }
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Appending String of length "+payloadbytes.length);
+ appendint(payloadbytes.length, 4);
+ appendBytes(payloadbytes);
+ appendBytes(padding[1]);
+ //pad(ArgumentType.STRING);? do we need this?
+ break;
+ case ArgumentType.SIGNATURE:
+ // Signatures are marshalled as a byte with the length,
+ // followed by the String, followed by a null byte.
+ // Signatures are generally short, so preallocate the array
+ // for the string, length and null byte.
+ if (data instanceof Type[])
+ payload = Marshalling.getDBusType((Type[]) data);
+ else
+ payload = (String) data;
+ byte[] pbytes = payload.getBytes();
+ preallocate(2+pbytes.length);
+ appendByte((byte) pbytes.length);
+ appendBytes(pbytes);
+ appendByte((byte) 0);
+ break;
+ case ArgumentType.ARRAY:
+ // Arrays are given as a UInt32 for the length in bytes,
+ // padding to the element alignment, then elements in
+ // order. The length is the length from the end of the
+ // initial padding to the end of the last element.
+ if (Debug.debug) {
+ if (data instanceof Object[])
+ Debug.print(Debug.VERBOSE, "Appending array: "+Arrays.deepToString((Object[])data));
+ }
+
+ byte[] alen = new byte[4];
+ appendBytes(alen);
+ pad(sigb[++i]);
+ long c = bytecounter;
+
+ // optimise primatives
+ if (data.getClass().isArray() &&
+ data.getClass().getComponentType().isPrimitive()) {
+ byte[] primbuf;
+ int algn = getAlignment(sigb[i]);
+ int len = Array.getLength(data);
+ switch (sigb[i]) {
+ case ArgumentType.BYTE:
+ primbuf = (byte[]) data;
+ break;
+ case ArgumentType.INT16:
+ case ArgumentType.INT32:
+ case ArgumentType.INT64:
+ primbuf = new byte[len*algn];
+ for (int j = 0, k = 0; j < len; j++, k += algn)
+ marshallint(Array.getLong(data, j), primbuf, k, algn);
+ break;
+ case ArgumentType.BOOLEAN:
+ primbuf = new byte[len*algn];
+ for (int j = 0, k = 0; j < len; j++, k += algn)
+ marshallint(Array.getBoolean(data, j)?1:0, primbuf, k, algn);
+ break;
+ case ArgumentType.DOUBLE:
+ primbuf = new byte[len*algn];
+ if (data instanceof float[])
+ for (int j = 0, k = 0; j < len; j++, k += algn)
+ marshallint(Double.doubleToRawLongBits(((float[])data)[j]),
+ primbuf, k, algn);
+ else
+ for (int j = 0, k = 0; j < len; j++, k += algn)
+ marshallint(Double.doubleToRawLongBits(((double[])data)[j]),
+ primbuf, k, algn);
+ break;
+ case ArgumentType.FLOAT:
+ primbuf = new byte[len*algn];
+ for (int j = 0, k = 0; j < len; j++, k += algn)
+ marshallint(
+ Float.floatToRawIntBits(((float[])data)[j]),
+ primbuf, k, algn);
+ break;
+ default:
+ throw new MarshallingException(_("Primative array being sent as non-primative array."));
+ }
+ appendBytes(primbuf);
+ } else if (data instanceof List) {
+ Object[] contents = ((List) data).toArray();
+ int diff = i;
+ ensureBuffers(contents.length*4);
+ for (Object o: contents)
+ diff = appendone(sigb, i, o);
+ i = diff;
+ if (contents.length == 0 && sigb[i] == '(') { // pego In case of zero length array of structs, the 'struct signature' still has to be skipped.
+// System.out.println("PEGO: Going to skip signature for zero sized array.");
+ int nestingLevel = 1;
+ int sigSkipIndex = i;
+ boolean correspondingStruct2Found = false;
+ while (!correspondingStruct2Found) {
+ sigSkipIndex++;
+// System.out.println("PEGO: sigSkipIndex = " + sigSkipIndex + ", byte = " + sigb[sigSkipIndex]);
+ switch (sigb[sigSkipIndex]) {
+ case ArgumentType.STRUCT1:
+ nestingLevel++;
+ break;
+
+ case ArgumentType.STRUCT2:
+ nestingLevel--;
+ if (nestingLevel == 0) {
+ correspondingStruct2Found = true;
+ }
+ break;
+
+ default:
+ // no action
+ }
+ }
+ i = sigSkipIndex;
+// System.out.println("PEGO: setting i to: " + i);
+ }
+ } else if (data instanceof Map) {
+ int diff = i;
+ ensureBuffers(((Map) data).size()*6);
+ for (Map.Entry<Object,Object> o: ((Map<Object,Object>) data).entrySet())
+ diff = appendone(sigb, i, o);
+ if (i == diff) {
+ // advance the type parser even on 0-size arrays.
+ Vector<Type> temp = new Vector<Type>();
+ byte[] temp2 = new byte[sigb.length-diff];
+ System.arraycopy(sigb, diff, temp2, 0, temp2.length);
+ String temp3 = new String(temp2);
+ int temp4 = Marshalling.getJavaType(temp3, temp, 1);
+ diff += temp4;
+ }
+ i = diff;
+ } else {
+ Object[] contents = (Object[]) data;
+ ensureBuffers(contents.length*4);
+ int diff = i;
+ for (Object o: contents)
+ diff = appendone(sigb, i, o);
+ i = diff;
+ }
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "start: "+c+" end: "+bytecounter+" length: "+(bytecounter-c));
+ marshallint(bytecounter-c, alen, 0, 4);
+ break;
+ case ArgumentType.STRUCT1:
+ // Structs are aligned to 8 bytes
+ // and simply contain each element marshalled in order
+ Object[] contents;
+ if (data instanceof Container)
+ contents = ((Container) data).getParameters();
+ else
+ contents = (Object[]) data;
+ ensureBuffers(contents.length*4);
+ int j = 0;
+ for (i++; sigb[i] != ArgumentType.STRUCT2; i++)
+ i = appendone(sigb, i, contents[j++]);
+ break;
+ case ArgumentType.DICT_ENTRY1:
+ // Dict entries are the same as structs.
+ if (data instanceof Map.Entry) {
+ i++;
+ i = appendone(sigb, i, ((Map.Entry) data).getKey());
+ i++;
+ i = appendone(sigb, i, ((Map.Entry) data).getValue());
+ i++;
+ } else {
+ contents = (Object[]) data;
+ j = 0;
+ for (i++; sigb[i] != ArgumentType.DICT_ENTRY2; i++)
+ i = appendone(sigb, i, contents[j++]);
+ }
+ break;
+ case ArgumentType.VARIANT:
+ // Variants are marshalled as a signature
+ // followed by the value.
+ if (data instanceof Variant) {
+ Variant var = (Variant) data;
+ appendone(new byte[] {ArgumentType.SIGNATURE}, 0, var.getSig());
+ appendone((var.getSig()).getBytes(), 0, var.getValue());
+ } else if (data instanceof Object[]) {
+ contents = (Object[]) data;
+ appendone(new byte[] {ArgumentType.SIGNATURE}, 0, contents[0]);
+ appendone(((String) contents[0]).getBytes(), 0, contents[1]);
+ } else {
+ String sig = Marshalling.getDBusType(data.getClass())[0];
+ appendone(new byte[] {ArgumentType.SIGNATURE}, 0, sig);
+ appendone((sig).getBytes(), 0, data);
+ }
+ break;
+ }
+ return i;
+ } catch (ClassCastException CCe) {
+ CCe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, CCe);
+ throw new MarshallingException(MessageFormat.format(_("Trying to marshall to unconvertable type (from {0} to {1})."), new Object[] { data.getClass().getName(), sigb[sigofs] }));
+ }
+ }
+ /**
+ * Pad the message to the proper alignment for the given type.
+ */
+ public void pad(byte type)
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "padding for "+(char)type);
+ int a = getAlignment(type);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, preallocated+" "+paofs+" "+bytecounter+" "+a);
+ int b = (int) ((bytecounter-preallocated)%a);
+ if (0 == b) return;
+ a = (a-b);
+ if (preallocated > 0) {
+ paofs += a;
+ preallocated -= a;
+ } else
+ appendBytes(padding[a]);
+ if (Debug.debug) Debug.print(Debug.VERBOSE, preallocated+" "+paofs+" "+bytecounter+" "+a);
+ }
+ /**
+ * Return the alignment for a given type.
+ */
+ public static int getAlignment(byte type)
+ {
+ switch (type) {
+ case 2:
+ case ArgumentType.INT16:
+ case ArgumentType.UINT16:
+ return 2;
+ case 4:
+ case ArgumentType.BOOLEAN:
+ case ArgumentType.FLOAT:
+ case ArgumentType.INT32:
+ case ArgumentType.UINT32:
+ case ArgumentType.STRING:
+ case ArgumentType.OBJECT_PATH:
+ case ArgumentType.ARRAY:
+ return 4;
+ case 8:
+ case ArgumentType.INT64:
+ case ArgumentType.UINT64:
+ case ArgumentType.DOUBLE:
+ case ArgumentType.STRUCT:
+ case ArgumentType.DICT_ENTRY:
+ case ArgumentType.STRUCT1:
+ case ArgumentType.DICT_ENTRY1:
+ case ArgumentType.STRUCT2:
+ case ArgumentType.DICT_ENTRY2:
+ return 8;
+ case 1:
+ case ArgumentType.BYTE:
+ case ArgumentType.SIGNATURE:
+ case ArgumentType.VARIANT:
+ default:
+ return 1;
+ }
+ }
+ /**
+ * Append a series of values to the message.
+ * @param sig The signature(s) of the value(s).
+ * @param data The value(s).
+ */
+ public void append(String sig, Object... data) throws DBusException
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Appending sig: "+sig+" data: "+Arrays.deepToString(data));
+ byte[] sigb = sig.getBytes();
+ int j = 0;
+ for (int i = 0; i < sigb.length; i++) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Appending item: "+i+" "+((char)sigb[i])+" "+j);
+ i = appendone(sigb, i, data[j++]);
+ }
+ }
+ /**
+ * Align a counter to the given type.
+ * @param current The current counter.
+ * @param type The type to align to.
+ * @return The new, aligned, counter.
+ */
+ public int align(int current, byte type)
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "aligning to "+(char)type);
+ int a = getAlignment(type);
+ if (0 == (current%a)) return current;
+ return current+(a-(current%a));
+ }
+ /**
+ * Demarshall one value from a buffer.
+ * @param sigb A buffer of the D-Bus signature.
+ * @param buf The buffer to demarshall from. If null, no data will be read.
+ * This can be used to skip a part of the signature only, e.g. in
+ * case of a zero length array. pego
+ * @param ofs An array of two ints, the offset into the signature buffer
+ * and the offset into the data buffer. These values will be
+ * updated to the start of the next value after demarshalling.
+ * @param contained converts nested arrays to Lists
+ * @return The demarshalled value.
+ */
+ private Object extractone(byte[] sigb, byte[] buf, int[] ofs, boolean contained) throws DBusException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Extracting type: "+((char)sigb[ofs[0]])+" from offset "+ofs[1]);
+ Object rv = null;
+ ofs[1] = align(ofs[1], sigb[ofs[0]]);
+ switch (sigb[ofs[0]]) {
+ case ArgumentType.BYTE:
+ if (buf != null) rv = buf[ofs[1]++];
+ break;
+ case ArgumentType.UINT32:
+ if (buf != null) {
+ rv = new UInt32(demarshallint(buf, ofs[1], 4));
+ ofs[1] += 4;
+ }
+ break;
+ case ArgumentType.INT32:
+ if (buf != null) {
+ rv = (int) demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ }
+ break;
+ case ArgumentType.INT16:
+ if (buf != null) {
+ rv = (short) demarshallint(buf, ofs[1], 2);
+ ofs[1] += 2;
+ }
+ break;
+ case ArgumentType.UINT16:
+ if (buf != null) {
+ rv = new UInt16((int) demarshallint(buf, ofs[1], 2));
+ ofs[1] += 2;
+ }
+ break;
+ case ArgumentType.INT64:
+ if (buf != null) {
+ rv = demarshallint(buf, ofs[1], 8);
+ ofs[1] += 8;
+ }
+ break;
+ case ArgumentType.UINT64:
+ if (buf != null) {
+ long top;
+ long bottom;
+ if (big) {
+ top = demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ bottom = demarshallint(buf, ofs[1], 4);
+ } else {
+ bottom = demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ top = demarshallint(buf, ofs[1], 4);
+ }
+ rv = new UInt64(top, bottom);
+ ofs[1] += 4;
+ }
+ break;
+ case ArgumentType.DOUBLE:
+ if (buf != null) {
+ long l = demarshallint(buf, ofs[1], 8);
+ ofs[1] += 8;
+ rv = Double.longBitsToDouble(l);
+ }
+ break;
+ case ArgumentType.FLOAT:
+ if (buf != null) {
+ int rf = (int) demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ rv = Float.intBitsToFloat(rf);
+ }
+ break;
+ case ArgumentType.BOOLEAN:
+ if (buf != null) {
+ int rf = (int) demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ rv = (1==rf)?Boolean.TRUE:Boolean.FALSE;
+ }
+ break;
+ case ArgumentType.ARRAY:
+ if (buf != null) {
+ long size = demarshallint(buf, ofs[1], 4);
+ if (Debug.debug) Debug.print(Debug.INFO, "Reading array of size: "+size);
+ ofs[1] += 4;
+ byte algn = (byte) getAlignment(sigb[++ofs[0]]);
+ ofs[1] = align(ofs[1], sigb[ofs[0]]);
+ int length = (int) (size / algn);
+ if (length > DBusConnection.MAX_ARRAY_LENGTH)
+ throw new MarshallingException(_("Arrays must not exceed ")+DBusConnection.MAX_ARRAY_LENGTH);
+ // optimise primatives
+ switch (sigb[ofs[0]]) {
+ case ArgumentType.BYTE:
+ rv = new byte[length];
+ System.arraycopy(buf, ofs[1], rv, 0, length);
+ ofs[1] += size;
+ break;
+ case ArgumentType.INT16:
+ rv = new short[length];
+ for (int j = 0; j < length; j++, ofs[1] += algn)
+ ((short[]) rv)[j] = (short) demarshallint(buf, ofs[1], algn);
+ break;
+ case ArgumentType.INT32:
+ rv = new int[length];
+ for (int j = 0; j < length; j++, ofs[1] += algn)
+ ((int[]) rv)[j] = (int) demarshallint(buf, ofs[1], algn);
+ break;
+ case ArgumentType.INT64:
+ rv = new long[length];
+ for (int j = 0; j < length; j++, ofs[1] += algn)
+ ((long[]) rv)[j] = demarshallint(buf, ofs[1], algn);
+ break;
+ case ArgumentType.BOOLEAN:
+ rv = new boolean[length];
+ for (int j = 0; j < length; j++, ofs[1] += algn)
+ ((boolean[]) rv)[j] = (1 == demarshallint(buf, ofs[1], algn));
+ break;
+ case ArgumentType.FLOAT:
+ rv = new float[length];
+ for (int j = 0; j < length; j++, ofs[1] += algn)
+ ((float[]) rv)[j] =
+ Float.intBitsToFloat((int)demarshallint(buf, ofs[1], algn));
+ break;
+ case ArgumentType.DOUBLE:
+ rv = new double[length];
+ for (int j = 0; j < length; j++, ofs[1] += algn)
+ ((double[]) rv)[j] =
+ Double.longBitsToDouble(demarshallint(buf, ofs[1], algn));
+ break;
+ case ArgumentType.DICT_ENTRY1:
+// if (0 == size) {
+// // advance the type parser even on 0-size arrays.
+// Vector<Type> temp = new Vector<Type>();
+// byte[] temp2 = new byte[sigb.length-ofs[0]];
+// System.arraycopy(sigb, ofs[0], temp2, 0, temp2.length);
+// String temp3 = new String(temp2);
+// // ofs[0] gets incremented anyway. Leave one character on the stack
+// int temp4 = Marshalling.getJavaType(temp3, temp, 1) - 1;
+// ofs[0] += temp4;
+// if (Debug.debug) Debug.print(Debug.VERBOSE, "Aligned type: "+temp3+" "+temp4+" "+ofs[0]);
+// }
+ Vector<Object[]> entries = new Vector<Object[]>();
+ if (size != 0) {
+ int ofssave = ofs[0];
+ long end = ofs[1]+size;
+ while (ofs[1] < end) {
+ ofs[0] = ofssave;
+ entries.add((Object[]) extractone(sigb, buf, ofs, true));
+ }
+ } else {
+ extractone(sigb, null, ofs, true);
+ }
+ rv = new DBusMap<Object, Object>(entries.toArray(new Object[0][]));
+ break;
+ default:
+// if (0 == size) {
+// // advance the type parser even on 0-size arrays.
+// Vector<Type> temp = new Vector<Type>();
+// byte[] temp2 = new byte[sigb.length-ofs[0]];
+// System.arraycopy(sigb, ofs[0], temp2, 0, temp2.length);
+// String temp3 = new String(temp2);
+// // ofs[0] gets incremented anyway. Leave one character on the stack
+// int temp4 = Marshalling.getJavaType(temp3, temp, 1) - 1;
+// ofs[0] += temp4;
+// if (temp3.startsWith("(")) { // pego
+// ofs[0]--;
+// System.out.println("Zero length array of structs, decrementing ofs[0]");
+// }
+// if (Debug.debug) Debug.print(Debug.VERBOSE, "Aligned type: "+temp3+" "+temp4+" "+ofs[0]);
+// }
+ Vector<Object> contents = new Vector<Object>();
+ if (size != 0) {
+ int ofssave = ofs[0];
+ long end = ofs[1]+size;
+ while (ofs[1] < end) {
+ ofs[0] = ofssave;
+ contents.add(extractone(sigb, buf, ofs, true));
+ }
+ } else {
+ extractone(sigb, null, ofs, true);
+ }
+ rv = contents;
+ }
+ } else {
+ if (Debug.debug) Debug.print(Debug.INFO, "Skipping array");
+ }
+ if (contained && rv != null && !(rv instanceof List) && !(rv instanceof Map))
+ rv = ArrayFrob.listify(rv);
+ break;
+ case ArgumentType.STRUCT1:
+ if (buf != null) {
+ Vector<Object> contents = new Vector<Object>();
+ while (sigb[++ofs[0]] != ArgumentType.STRUCT2)
+ contents.add(extractone(sigb, buf, ofs, true));
+ rv = contents.toArray();
+ } else {
+ while (sigb[++ofs[0]] != ArgumentType.STRUCT2)
+ extractone(sigb, null, ofs, true);
+ }
+ break;
+ case ArgumentType.DICT_ENTRY1:
+ if (buf != null) {
+ Object[] decontents = new Object[2];
+ if (Debug.debug) Debug.print(Debug.INFO, "Extracting Dict Entry ("+Hexdump.toAscii(sigb,ofs[0],sigb.length-ofs[0])+") from: "+Hexdump.toHex(buf,ofs[1],buf.length-ofs[1]));
+ ofs[0]++;
+ decontents[0] = extractone(sigb, buf, ofs, true);
+ ofs[0]++;
+ decontents[1] = extractone(sigb, buf, ofs, true);
+ ofs[0]++;
+ rv = decontents;
+ } else {
+ if (Debug.debug) Debug.print(Debug.INFO, "Skipping Dict Entry ("+Hexdump.toAscii(sigb,ofs[0],sigb.length-ofs[0])+")");
+ ofs[0]++;
+ extractone(sigb, null, ofs, true);
+ ofs[0]++;
+ extractone(sigb, null, ofs, true);
+ ofs[0]++;
+ }
+ break;
+ case ArgumentType.VARIANT:
+ if (buf != null) {
+ int[] newofs = new int[] { 0, ofs[1] };
+ String sig = (String) extract(ArgumentType.SIGNATURE_STRING, buf, newofs)[0];
+ newofs[0] = 0;
+ rv = new Variant<Object>(extract(sig, buf, newofs)[0] , sig);
+ ofs[1] = newofs[1];
+ }
+ break;
+ case ArgumentType.STRING:
+ if (buf != null) {
+ int length = (int) demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ try {
+ rv = new String(buf, ofs[1], length, "UTF-8");
+ } catch (UnsupportedEncodingException UEe) {
+ UEe.printStackTrace(); // pego
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(UEe);
+ throw new DBusException(_("System does not support UTF-8 encoding"));
+ }
+ ofs[1] += length + 1;
+ }
+ break;
+ case ArgumentType.OBJECT_PATH:
+ if (buf != null) {
+ int length = (int) demarshallint(buf, ofs[1], 4);
+ ofs[1] += 4;
+ rv = new ObjectPath(getSource(), new String(buf, ofs[1], length));
+ ofs[1] += length + 1;
+ }
+ break;
+ case ArgumentType.SIGNATURE:
+ if (buf != null) {
+ int length = (buf[ofs[1]++] & 0xFF);
+ rv = new String(buf, ofs[1], length);
+ ofs[1] += length + 1;
+ }
+ break;
+ default:
+ throw new UnknownTypeCodeException(sigb[ofs[0]]);
+ }
+ if (Debug.debug) if (rv instanceof Object[])
+ Debug.print(Debug.INFO, "Extracted: "+Arrays.deepToString((Object[]) rv)+" (now at "+ofs[1]+")");
+ else
+ Debug.print(Debug.INFO, "Extracted: "+rv+" (now at "+ofs[1]+")");
+ return rv;
+ }
+ /**
+ * Demarshall values from a buffer.
+ * @param sig The D-Bus signature(s) of the value(s).
+ * @param buf The buffer to demarshall from.
+ * @param ofs The offset into the data buffer to start.
+ * @return The demarshalled value(s).
+ */
+ public Object[] extract(String sig, byte[] buf, int ofs) throws DBusException
+ {
+ return extract(sig, buf, new int[] { 0, ofs });
+ }
+ /**
+ * Demarshall values from a buffer.
+ * @param sig The D-Bus signature(s) of the value(s).
+ * @param buf The buffer to demarshall from.
+ * @param ofs An array of two ints, the offset into the signature
+ * and the offset into the data buffer. These values will be
+ * updated to the start of the next value ofter demarshalling.
+ * @return The demarshalled value(s).
+ */
+ public Object[] extract(String sig, byte[] buf, int[] ofs) throws DBusException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "extract("+sig+",#"+buf.length+", {"+ofs[0]+","+ofs[1]+"}");
+ Vector<Object> rv = new Vector<Object>();
+ byte[] sigb = sig.getBytes();
+ for (int[] i = ofs; i[0] < sigb.length; i[0]++) {
+ rv.add(extractone(sigb, buf, i, false));
+ }
+ return rv.toArray();
+ }
+ /**
+ * Returns the Bus ID that sent the message.
+ */
+ public String getSource() { return (String) headers.get(HeaderField.SENDER); }
+ /**
+ * Returns the destination of the message.
+ */
+ public String getDestination() { return (String) headers.get(HeaderField.DESTINATION); }
+ /**
+ * Returns the interface of the message.
+ */
+ public String getInterface() { return (String) headers.get(HeaderField.INTERFACE); }
+ /**
+ * Returns the object path of the message.
+ */
+ public String getPath()
+ {
+ Object o = headers.get(HeaderField.PATH);
+ if (null == o) return null;
+ return o.toString();
+ }
+ /**
+ * Returns the member name or error name this message represents.
+ */
+ public String getName()
+ {
+ if (this instanceof Error)
+ return (String) headers.get(HeaderField.ERROR_NAME);
+ else
+ return (String) headers.get(HeaderField.MEMBER);
+ }
+ /**
+ * Returns the dbus signature of the parameters.
+ */
+ public String getSig() { return (String) headers.get(HeaderField.SIGNATURE); }
+ /**
+ * Returns the message flags.
+ */
+ public int getFlags() { return flags; }
+ /**
+ * Returns the message serial ID (unique for this connection)
+ * @return the message serial.
+ */
+ public long getSerial() { return serial; }
+ /**
+ * If this is a reply to a message, this returns its serial.
+ * @return The reply serial, or 0 if it is not a reply.
+ */
+ public long getReplySerial()
+ {
+ Number l = (Number) headers.get(HeaderField.REPLY_SERIAL);
+ if (null == l) return 0;
+ return l.longValue();
+ }
+ /**
+ * Parses and returns the parameters to this message as an Object array.
+ */
+ public Object[] getParameters() throws DBusException
+ {
+ if (null == args && null != body) {
+ String sig = (String) headers.get(HeaderField.SIGNATURE);
+ if (null != sig && 0 != body.length) {
+ args = extract(sig, body, 0);
+ } else args = new Object[0];
+ }
+ return args;
+ }
+ protected void setArgs(Object[] args) { this.args = args; }
+ /**
+ * Warning, do not use this method unless you really know what you are doing.
+ */
+ public void setSource(String source) throws DBusException
+ {
+ if (null != body) {
+ wiredata = new byte[BUFFERINCREMENT][];
+ bufferuse = 0;
+ bytecounter = 0;
+ preallocate(12);
+ append("yyyyuu", big ? Endian.BIG : Endian.LITTLE, type, flags, protover, bodylen, serial);
+ headers.put(HeaderField.SENDER, source);
+ Object[][] newhead = new Object[headers.size()][];
+ int i = 0;
+ for (Byte b: headers.keySet()) {
+ newhead[i] = new Object[2];
+ newhead[i][0] = b;
+ newhead[i][1] = headers.get(b);
+ i++;
+ }
+ append("a(yv)", (Object) newhead);
+ pad((byte) 8);
+ appendBytes(body);
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageReader.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageReader.java
new file mode 100755
index 0000000..49c69cd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageReader.java
@@ -0,0 +1,175 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.io.BufferedInputStream;
+import java.io.EOFException;
+import java.io.InputStream;
+import java.io.IOException;
+import java.net.SocketTimeoutException;
+import java.text.MessageFormat;
+
+import cx.ath.matthew.debug.Debug;
+import cx.ath.matthew.utils.Hexdump;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.MessageTypeException;
+import org.freedesktop.dbus.exceptions.MessageProtocolVersionException;
+
+public class MessageReader
+{
+ private InputStream in;
+ private byte[] buf = null;
+ private byte[] tbuf = null;
+ private byte[] header = null;
+ private byte[] body = null;
+ private int[] len = new int[4];
+ public MessageReader(InputStream in)
+ {
+ this.in = new BufferedInputStream(in);
+ }
+ public Message readMessage() throws IOException, DBusException
+ {
+ int rv;
+ /* Read the 12 byte fixed header, retrying as neccessary */
+ if (null == buf) { buf = new byte[12]; len[0] = 0; }
+ if (len[0] < 12) {
+ try { rv = in.read(buf, len[0], 12-len[0]); }
+ catch (SocketTimeoutException STe) { return null; }
+ if (-1 == rv) throw new EOFException(_("Underlying transport returned EOF"));
+ len[0] += rv;
+ }
+ if (len[0] == 0) return null;
+ if (len[0] < 12) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Only got "+len[0]+" of 12 bytes of header");
+ return null;
+ }
+
+ /* Parse the details from the header */
+ byte endian = buf[0];
+ byte type = buf[1];
+ byte protover = buf[3];
+ if (protover > Message.PROTOCOL) {
+ buf = null;
+ throw new MessageProtocolVersionException(MessageFormat.format(_("Protocol version {0} is unsupported"), new Object[] { protover }));
+ }
+
+ /* Read the length of the variable header */
+ if (null == tbuf) { tbuf = new byte[4]; len[1] = 0; }
+ if (len[1] < 4) {
+ try { rv = in.read(tbuf, len[1], 4-len[1]); }
+ catch (SocketTimeoutException STe) { return null; }
+ if (-1 == rv) throw new EOFException(_("Underlying transport returned EOF"));
+ len[1] += rv;
+ }
+ if (len[1] < 4) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Only got "+len[1]+" of 4 bytes of header");
+ return null;
+ }
+
+ /* Parse the variable header length */
+ int headerlen = 0;
+ if (null == header) {
+ headerlen = (int) Message.demarshallint(tbuf, 0, endian, 4);
+ if (0 != headerlen % 8)
+ headerlen += 8-(headerlen%8);
+ } else
+ headerlen = header.length-8;
+
+ /* Read the variable header */
+ if (null == header) {
+ header = new byte[headerlen+8];
+ System.arraycopy(tbuf, 0, header, 0, 4);
+ len[2] = 0;
+ }
+ if (len[2] < headerlen) {
+ try { rv = in.read(header, 8+len[2], headerlen-len[2]); }
+ catch (SocketTimeoutException STe) { return null; }
+ if (-1 == rv) throw new EOFException(_("Underlying transport returned EOF"));
+ len[2] += rv;
+ }
+ if (len[2] < headerlen) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Only got "+len[2]+" of "+headerlen+" bytes of header");
+ return null;
+ }
+
+ /* Read the body */
+ int bodylen = 0;
+ if (null == body) bodylen = (int) Message.demarshallint(buf, 4, endian, 4);
+ if (null == body) { body=new byte[bodylen]; len[3] = 0; }
+ if (len[3] < body.length) {
+ try { rv = in.read(body, len[3], body.length-len[3]); }
+ catch (SocketTimeoutException STe) { return null; }
+ if (-1 == rv) throw new EOFException(_("Underlying transport returned EOF"));
+ len[3] += rv;
+ }
+ if (len[3] < body.length) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Only got "+len[3]+" of "+body.length+" bytes of body");
+ return null;
+ }
+
+ Message m;
+ switch (type) {
+ case Message.MessageType.METHOD_CALL:
+ m = new MethodCall();
+ break;
+ case Message.MessageType.METHOD_RETURN:
+ m = new MethodReturn();
+ break;
+ case Message.MessageType.SIGNAL:
+ m = new DBusSignal();
+ break;
+ case Message.MessageType.ERROR:
+ m = new Error();
+ break;
+ default:
+ throw new MessageTypeException(MessageFormat.format(_("Message type {0} unsupported"), new Object[] {type}));
+ }
+ if (Debug.debug) {
+ Debug.print(Debug.VERBOSE, Hexdump.format(buf));
+ Debug.print(Debug.VERBOSE, Hexdump.format(tbuf));
+ Debug.print(Debug.VERBOSE, Hexdump.format(header));
+ Debug.print(Debug.VERBOSE, Hexdump.format(body));
+ }
+ try {
+ m.populate(buf, header, body);
+ } catch (DBusException DBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ buf = null;
+ tbuf = null;
+ body = null;
+ header = null;
+ throw DBe;
+ } catch (RuntimeException Re) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, Re);
+ buf = null;
+ tbuf = null;
+ body = null;
+ header = null;
+ throw Re;
+ }
+ if (Debug.debug) {
+ Debug.print(Debug.INFO, "=> "+m);
+ }
+ buf = null;
+ tbuf = null;
+ body = null;
+ header = null;
+ return m;
+ }
+ public void close() throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Closing Message Reader");
+ in.close();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageWriter.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageWriter.java
new file mode 100755
index 0000000..bb22108
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MessageWriter.java
@@ -0,0 +1,72 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.io.BufferedOutputStream;
+import java.io.OutputStream;
+import java.io.IOException;
+
+import cx.ath.matthew.debug.Debug;
+import cx.ath.matthew.unix.USOutputStream;
+import cx.ath.matthew.utils.Hexdump;
+
+public class MessageWriter
+{
+ private OutputStream out;
+ private boolean isunix;
+ public MessageWriter(OutputStream out)
+ {
+ this.out = out;
+ this.isunix = false;
+ try {
+ if (out instanceof USOutputStream)
+ this.isunix = true;
+ } catch (Throwable t) {
+ }
+ if (!this.isunix)
+ this.out = new BufferedOutputStream(this.out);
+ }
+ public void writeMessage(Message m) throws IOException
+ {
+ if (Debug.debug) {
+ Debug.print(Debug.INFO, "<= "+m);
+ }
+ if (null == m) return;
+ if (Debug.debug) Debug.print(Debug.INFO, "m in not null"); // pego
+ if (null == m.getWireData()) {
+ if (Debug.debug) Debug.print(Debug.WARN, "Message "+m+" wire-data was null!");
+ return;
+ }
+ if (Debug.debug) Debug.print(Debug.INFO, "wire data in not null"); // pego
+ if (isunix) {
+ if (Debug.debug) {
+ Debug.print(Debug.INFO, "Writing all "+m.getWireData().length+" buffers simultaneously to Unix Socket");
+ for (byte[] buf: m.getWireData())
+ Debug.print(Debug.INFO, "("+buf+"):"+ (null==buf? "": Hexdump.format(buf)));
+ }
+ ((USOutputStream) out).write(m.getWireData());
+ } else
+ for (byte[] buf: m.getWireData()) {
+ if (Debug.debug)
+ Debug.print(Debug.INFO, "("+buf+"):"+ (null==buf? "": Hexdump.format(buf)));
+ if (null == buf) break;
+ out.write(buf);
+ if (Debug.debug) Debug.print(Debug.INFO, "After write()"); // pego
+ }
+ out.flush();
+ if (Debug.debug) Debug.print(Debug.INFO, "After flush()"); // pego
+ }
+ public void close() throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Closing Message Writer");
+ out.close();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodCall.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodCall.java
new file mode 100755
index 0000000..c10b1b0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodCall.java
@@ -0,0 +1,126 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.util.Vector;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.MessageFormatException;
+import cx.ath.matthew.debug.Debug;
+import cx.ath.matthew.utils.Hexdump;
+
+public class MethodCall extends Message
+{
+ MethodCall() { }
+ public MethodCall(String dest, String path, String iface, String member, byte flags, String sig, Object... args) throws DBusException
+ {
+ this(null, dest, path, iface, member, flags, sig, args);
+ }
+ public MethodCall(String source, String dest, String path, String iface, String member, byte flags, String sig, Object... args) throws DBusException
+ {
+ super(Message.Endian.BIG, Message.MessageType.METHOD_CALL, flags);
+
+ if (null == member || null == path)
+ throw new MessageFormatException(_("Must specify destination, path and function name to MethodCalls."));
+ headers.put(Message.HeaderField.PATH,path);
+ headers.put(Message.HeaderField.MEMBER,member);
+
+ Vector<Object> hargs = new Vector<Object>();
+
+ hargs.add(new Object[] { Message.HeaderField.PATH, new Object[] { ArgumentType.OBJECT_PATH_STRING, path } });
+
+ if (null != source) {
+ headers.put(Message.HeaderField.SENDER,source);
+ hargs.add(new Object[] { Message.HeaderField.SENDER, new Object[] { ArgumentType.STRING_STRING, source } });
+ }
+
+ if (null != dest) {
+ headers.put(Message.HeaderField.DESTINATION,dest);
+ hargs.add(new Object[] { Message.HeaderField.DESTINATION, new Object[] { ArgumentType.STRING_STRING, dest } });
+ }
+
+ if (null != iface) {
+ hargs.add(new Object[] { Message.HeaderField.INTERFACE, new Object[] { ArgumentType.STRING_STRING, iface } });
+ headers.put(Message.HeaderField.INTERFACE,iface);
+ }
+
+ hargs.add(new Object[] { Message.HeaderField.MEMBER, new Object[] { ArgumentType. STRING_STRING, member } });
+
+ if (null != sig) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Appending arguments with signature: "+sig);
+ hargs.add(new Object[] { Message.HeaderField.SIGNATURE, new Object[] { ArgumentType.SIGNATURE_STRING, sig } });
+ headers.put(Message.HeaderField.SIGNATURE,sig);
+ setArgs(args);
+ }
+
+ byte[] blen = new byte[4];
+ appendBytes(blen);
+ append("ua(yv)", serial, hargs.toArray());
+ pad((byte)8);
+
+ long c = bytecounter;
+ if (null != sig) append(sig, args);
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Appended body, type: "+sig+" start: "+c+" end: "+bytecounter+" size: "+(bytecounter-c));
+ marshallint(bytecounter-c, blen, 0, 4);
+ if (Debug.debug) Debug.print("marshalled size ("+blen+"): "+Hexdump.format(blen));
+ }
+ private static long REPLY_WAIT_TIMEOUT = 20000;
+ /**
+ * Set the default timeout for method calls.
+ * Default is 20s.
+ * @param timeout New timeout in ms.
+ */
+ public static void setDefaultTimeout(long timeout)
+ {
+ REPLY_WAIT_TIMEOUT = timeout;
+ }
+ Message reply = null;
+ public synchronized boolean hasReply()
+ {
+ return null != reply;
+ }
+ /**
+ * Block (if neccessary) for a reply.
+ * @return The reply to this MethodCall, or null if a timeout happens.
+ * @param timeout The length of time to block before timing out (ms).
+ */
+ public synchronized Message getReply(long timeout)
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Blocking on "+this);
+ if (null != reply) return reply;
+ try {
+ wait(timeout);
+ return reply;
+ } catch (InterruptedException Ie) { return reply; }
+ }
+ /**
+ * Block (if neccessary) for a reply.
+ * Default timeout is 20s, or can be configured with setDefaultTimeout()
+ * @return The reply to this MethodCall, or null if a timeout happens.
+ */
+ public synchronized Message getReply()
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Blocking on "+this);
+ if (null != reply) return reply;
+ try {
+ wait(REPLY_WAIT_TIMEOUT);
+ return reply;
+ } catch (InterruptedException Ie) { return reply; }
+ }
+ protected synchronized void setReply(Message reply)
+ {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Setting reply to "+this+" to "+reply);
+ this.reply = reply;
+ notifyAll();
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodReturn.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodReturn.java
new file mode 100755
index 0000000..b0f719a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodReturn.java
@@ -0,0 +1,69 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.util.Vector;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public class MethodReturn extends Message
+{
+ MethodReturn() { }
+ public MethodReturn(String dest, long replyserial, String sig, Object... args) throws DBusException
+ {
+ this(null, dest, replyserial, sig, args);
+ }
+ public MethodReturn(String source, String dest, long replyserial, String sig, Object... args) throws DBusException
+ {
+ super(Message.Endian.BIG, Message.MessageType.METHOD_RETURN, (byte) 0);
+
+ headers.put(Message.HeaderField.REPLY_SERIAL,replyserial);
+
+ Vector<Object> hargs = new Vector<Object>();
+ hargs.add(new Object[] { Message.HeaderField.REPLY_SERIAL, new Object[] { ArgumentType.UINT32_STRING, replyserial } });
+
+ if (null != source) {
+ headers.put(Message.HeaderField.SENDER,source);
+ hargs.add(new Object[] { Message.HeaderField.SENDER, new Object[] { ArgumentType.STRING_STRING, source } });
+ }
+
+ if (null != dest) {
+ headers.put(Message.HeaderField.DESTINATION,dest);
+ hargs.add(new Object[] { Message.HeaderField.DESTINATION, new Object[] { ArgumentType.STRING_STRING, dest } });
+ }
+
+ if (null != sig) {
+ hargs.add(new Object[] { Message.HeaderField.SIGNATURE, new Object[] { ArgumentType.SIGNATURE_STRING, sig } });
+ headers.put(Message.HeaderField.SIGNATURE,sig);
+ setArgs(args);
+ }
+
+ byte[] blen = new byte[4];
+ appendBytes(blen);
+ append("ua(yv)", serial, hargs.toArray());
+ pad((byte)8);
+
+ long c = bytecounter;
+ if (null != sig) append(sig, args);
+ marshallint(bytecounter-c, blen, 0, 4);
+ }
+ public MethodReturn(MethodCall mc, String sig, Object... args) throws DBusException
+ {
+ this(null, mc, sig, args);
+ }
+ public MethodReturn(String source, MethodCall mc, String sig, Object... args) throws DBusException
+ {
+ this(source, mc.getSource(), mc.getSerial(), sig, args);
+ this.call = mc;
+ }
+ MethodCall call;
+ public MethodCall getCall() { return call; }
+ protected void setCall(MethodCall call) { this.call = call; }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodTuple.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodTuple.java
new file mode 100755
index 0000000..dd2c4a9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/MethodTuple.java
@@ -0,0 +1,38 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import cx.ath.matthew.debug.Debug;
+
+class MethodTuple
+{
+ String name;
+ String sig;
+ public MethodTuple(String name, String sig)
+ {
+ this.name = name;
+ if (null != sig)
+ this.sig = sig;
+ else
+ this.sig = "";
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "new MethodTuple("+this.name+", "+this.sig+")");
+ }
+ public boolean equals(Object o)
+ {
+ return o.getClass().equals(MethodTuple.class)
+ && ((MethodTuple) o).name.equals(this.name)
+ && ((MethodTuple) o).sig.equals(this.sig);
+ }
+ public int hashCode()
+ {
+ return name.hashCode()+sig.hashCode();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectPath.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectPath.java
new file mode 100755
index 0000000..409d26d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectPath.java
@@ -0,0 +1,23 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+class ObjectPath extends Path
+{
+ public String source;
+// public DBusConnection conn;
+ public ObjectPath(String source, String path/*, DBusConnection conn*/)
+ {
+ super(path);
+ this.source = source;
+ // this.conn = conn;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectTree.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectTree.java
new file mode 100755
index 0000000..f7d0591
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/ObjectTree.java
@@ -0,0 +1,163 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import cx.ath.matthew.debug.Debug;
+
+import java.util.regex.Pattern;
+
+/**
+ * Keeps track of the exported objects for introspection data */
+class ObjectTree
+{
+ class TreeNode
+ {
+ String name;
+ ExportedObject object;
+ String data;
+ TreeNode right;
+ TreeNode down;
+ public TreeNode(String name)
+ {
+ this.name = name;
+ }
+ public TreeNode(String name, ExportedObject object, String data)
+ {
+ this.name = name;
+ this.object = object;
+ this.data = data;
+ }
+ }
+ private TreeNode root;
+ public ObjectTree()
+ {
+ root = new TreeNode("");
+ }
+ public static final Pattern slashpattern = Pattern.compile("/");
+
+ private TreeNode recursiveFind(TreeNode current, String path)
+ {
+ if ("/".equals(path)) return current;
+ String[] elements = path.split("/", 2);
+ // this is us or a parent node
+ if (path.startsWith(current.name)) {
+ // this is us
+ if (path.equals(current.name)) {
+ return current;
+ }
+ // recurse down
+ else {
+ if (current.down == null)
+ return null;
+ else return recursiveFind(current.down, elements[1]);
+ }
+ }
+ else if (current.right == null) {
+ return null;
+ }
+ else if (0 > current.right.name.compareTo(elements[0])) {
+ return null;
+ }
+ // recurse right
+ else {
+ return recursiveFind(current.right, path);
+ }
+ }
+ private TreeNode recursiveAdd(TreeNode current, String path, ExportedObject object, String data)
+ {
+ String[] elements = slashpattern.split(path, 2);
+ // this is us or a parent node
+ if (path.startsWith(current.name)) {
+ // this is us
+ if (1 == elements.length || "".equals(elements[1])) {
+ current.object = object;
+ current.data = data;
+ }
+ // recurse down
+ else {
+ if (current.down == null) {
+ String[] el = elements[1].split("/", 2);
+ current.down = new TreeNode(el[0]);
+ }
+ current.down = recursiveAdd(current.down, elements[1], object, data);
+ }
+ }
+ // need to create a new sub-tree on the end
+ else if (current.right == null) {
+ current.right = new TreeNode(elements[0]);
+ current.right = recursiveAdd(current.right, path, object, data);
+ }
+ // need to insert here
+ else if (0 > current.right.name.compareTo(elements[0])) {
+ TreeNode t = new TreeNode(elements[0]);
+ t.right = current.right;
+ current.right = t;
+ current.right = recursiveAdd(current.right, path, object, data);
+ }
+ // recurse right
+ else {
+ current.right = recursiveAdd(current.right, path, object, data);
+ }
+ return current;
+ }
+ public void add(String path, ExportedObject object, String data)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Adding "+path+" to object tree");
+ root = recursiveAdd(root, path, object, data);
+ }
+ public void remove(String path)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Removing "+path+" from object tree");
+ TreeNode t = recursiveFind(root, path);
+ t.object = null;
+ t.data = null;
+ }
+
+ public String Introspect(String path)
+ {
+ TreeNode t = recursiveFind(root, path);
+ if (null == t) return null;
+ StringBuilder sb = new StringBuilder();
+ sb.append("<node name=\"");
+ sb.append(path);
+ sb.append("\">\n");
+ if (null != t.data) sb.append(t.data);
+ t = t.down;
+ while (null != t) {
+ sb.append("<node name=\"");
+ sb.append(t.name);
+ sb.append("\"/>\n");
+ t = t.right;
+ }
+ sb.append("</node>");
+ return sb.toString();
+ }
+
+ private String recursivePrint(TreeNode current)
+ {
+ String s = "";
+ if (null != current) {
+ s += current.name;
+ if (null != current.object)
+ s += "*";
+ if (null != current.down)
+ s += "/{"+recursivePrint(current.down)+"}";
+ if (null != current.right)
+ s += ", "+recursivePrint(current.right);
+ }
+ return s;
+ }
+
+ public String toString()
+ {
+ return recursivePrint(root);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Path.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Path.java
new file mode 100755
index 0000000..baaa7a6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Path.java
@@ -0,0 +1,40 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+public class Path implements Comparable<Path>
+{
+ protected String path;
+ public Path(String path)
+ {
+ this.path = path;
+ }
+ public String getPath()
+ {
+ return path;
+ }
+ public String toString()
+ {
+ return path;
+ }
+ public boolean equals(Object other)
+ {
+ return (other instanceof Path) && path.equals(((Path) other).path);
+ }
+ public int hashCode()
+ {
+ return path.hashCode();
+ }
+ public int compareTo(Path that)
+ {
+ return path.compareTo(that.path);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Position.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Position.java
new file mode 100755
index 0000000..45e68d8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Position.java
@@ -0,0 +1,28 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Position annotation, to annotate Struct fields
+ * to be sent over DBus.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface Position
+{
+ /** The order of this field in the Struct. */
+ int value();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteInvocationHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteInvocationHandler.java
new file mode 100755
index 0000000..9e40495
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteInvocationHandler.java
@@ -0,0 +1,191 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.lang.reflect.Type;
+import java.text.MessageFormat;
+import java.util.Arrays;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.exceptions.NotConnected;
+
+import cx.ath.matthew.debug.Debug;
+
+class RemoteInvocationHandler implements InvocationHandler
+{
+ public static final int CALL_TYPE_SYNC = 0;
+ public static final int CALL_TYPE_ASYNC = 1;
+ public static final int CALL_TYPE_CALLBACK = 2;
+ public static Object convertRV(String sig, Object[] rp, Method m, AbstractConnection conn) throws DBusException
+ {
+ Class<? extends Object> c = m.getReturnType();
+
+ if (null == rp) {
+ if(null == c || Void.TYPE.equals(c)) return null;
+ else throw new DBusExecutionException(_("Wrong return type (got void, expected a value)"));
+ } else {
+ try {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Converting return parameters from "+Arrays.deepToString(rp)+" to type "+m.getGenericReturnType());
+ rp = Marshalling.deSerializeParameters(rp,
+ new Type[] { m.getGenericReturnType() }, conn);
+ }
+ catch (Exception e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusExecutionException(MessageFormat.format(_("Wrong return type (failed to de-serialize correct types: {0} )"), new Object[] { e.getMessage() }));
+ }
+ }
+
+ switch (rp.length) {
+ case 0:
+ if (null == c || Void.TYPE.equals(c))
+ return null;
+ else throw new DBusExecutionException(_("Wrong return type (got void, expected a value)"));
+ case 1:
+ return rp[0];
+ default:
+
+ // check we are meant to return multiple values
+ if (!Tuple.class.isAssignableFrom(c))
+ throw new DBusExecutionException(_("Wrong return type (not expecting Tuple)"));
+
+ Constructor<? extends Object> cons = c.getConstructors()[0];
+ try {
+ return cons.newInstance(rp);
+ } catch (Exception e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusException(e.getMessage());
+ }
+ }
+ }
+ @SuppressWarnings("unchecked")
+ public static Object executeRemoteMethod(RemoteObject ro, Method m, AbstractConnection conn, int syncmethod, CallbackHandler callback, Object... args) throws DBusExecutionException
+ {
+ Type[] ts = m.getGenericParameterTypes();
+ String sig = null;
+ if (ts.length > 0) try {
+ sig = Marshalling.getDBusType(ts);
+ args = Marshalling.convertParameters(args, ts, conn);
+ } catch (DBusException DBe) {
+ throw new DBusExecutionException(_("Failed to construct D-Bus type: ")+DBe.getMessage());
+ }
+ MethodCall call;
+ byte flags = 0;
+ if (!ro.autostart) flags |= Message.Flags.NO_AUTO_START;
+ if (syncmethod == CALL_TYPE_ASYNC) flags |= Message.Flags.ASYNC;
+ if (m.isAnnotationPresent(DBus.Method.NoReply.class)) flags |= Message.Flags.NO_REPLY_EXPECTED;
+ try {
+ String name;
+ if (m.isAnnotationPresent(DBusMemberName.class))
+ name = m.getAnnotation(DBusMemberName.class).value();
+ else
+ name = m.getName();
+ if (null == ro.iface)
+ call = new MethodCall(ro.busname, ro.objectpath, null, name,flags, sig, args);
+ else {
+ if (null != ro.iface.getAnnotation(DBusInterfaceName.class)) {
+ call = new MethodCall(ro.busname, ro.objectpath, ro.iface.getAnnotation(DBusInterfaceName.class).value(), name, flags, sig, args);
+ } else
+ call = new MethodCall(ro.busname, ro.objectpath, AbstractConnection.dollar_pattern.matcher(ro.iface.getName()).replaceAll("."), name, flags, sig, args);
+ }
+ } catch (DBusException DBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ throw new DBusExecutionException(_("Failed to construct outgoing method call: ")+DBe.getMessage());
+ }
+ if (null == conn.outgoing) throw new NotConnected(_("Not Connected"));
+
+ switch (syncmethod) {
+ case CALL_TYPE_ASYNC:
+ conn.queueOutgoing(call);
+ return new DBusAsyncReply(call, m, conn);
+ case CALL_TYPE_CALLBACK:
+ synchronized (conn.pendingCallbacks) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Queueing Callback "+callback+" for "+call);
+ conn.pendingCallbacks.put(call, callback);
+ conn.pendingCallbackReplys.put(call, new DBusAsyncReply(call, m, conn));
+ }
+ conn.queueOutgoing(call);
+ return null;
+ case CALL_TYPE_SYNC:
+ conn.queueOutgoing(call);
+ break;
+ }
+
+ // get reply
+ if (m.isAnnotationPresent(DBus.Method.NoReply.class)) return null;
+
+ Message reply = call.getReply();
+ if (null == reply) throw new DBus.Error.NoReply(_("No reply within specified time"));
+
+ if (reply instanceof Error)
+ ((Error) reply).throwException();
+
+ try {
+ return convertRV(reply.getSig(), reply.getParameters(), m, conn);
+ } catch (DBusException e) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, e);
+ throw new DBusExecutionException(e.getMessage());
+ }
+ }
+
+ AbstractConnection conn;
+ RemoteObject remote;
+ public RemoteInvocationHandler(AbstractConnection conn, RemoteObject remote)
+ {
+ this.remote = remote;
+ this.conn = conn;
+ }
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
+ {
+ if (method.getName().equals("isRemote")) return true;
+ else if (method.getName().equals("clone")) return null;
+ else if (method.getName().equals("equals")) {
+ try {
+ if (1 == args.length)
+ return new Boolean(remote.equals(((RemoteInvocationHandler) Proxy.getInvocationHandler(args[0])).remote));
+ } catch (IllegalArgumentException IAe) {
+ return Boolean.FALSE;
+ }
+ }
+ else if (method.getName().equals("finalize")) return null;
+ else if (method.getName().equals("getClass")) return DBusInterface.class;
+ else if (method.getName().equals("hashCode")) return remote.hashCode();
+ else if (method.getName().equals("notify")) {
+ remote.notify();
+ return null;
+ } else if (method.getName().equals("notifyAll")) {
+ remote.notifyAll();
+ return null;
+ } else if (method.getName().equals("wait")) {
+ if (0 == args.length) remote.wait();
+ else if (1 == args.length
+ && args[0] instanceof Long) remote.wait((Long) args[0]);
+ else if (2 == args.length
+ && args[0] instanceof Long
+ && args[1] instanceof Integer)
+ remote.wait((Long) args[0], (Integer) args[1]);
+ if (args.length <= 2)
+ return null;
+ }
+ else if (method.getName().equals("toString"))
+ return remote.toString();
+
+ return executeRemoteMethod(remote, method, conn, CALL_TYPE_SYNC, null, args);
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteObject.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteObject.java
new file mode 100755
index 0000000..8a1f620
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/RemoteObject.java
@@ -0,0 +1,56 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+class RemoteObject
+{
+ String busname;
+ String objectpath;
+ Class<? extends DBusInterface> iface;
+ boolean autostart;
+ public RemoteObject(String busname, String objectpath, Class<? extends DBusInterface> iface, boolean autostart)
+ {
+ this.busname = busname;
+ this.objectpath = objectpath;
+ this.iface = iface;
+ this.autostart = autostart;
+ }
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof RemoteObject)) return false;
+ RemoteObject them = (RemoteObject) o;
+
+ if (!them.objectpath.equals(this.objectpath)) return false;
+
+ if (null == this.busname && null != them.busname) return false;
+ if (null != this.busname && null == them.busname) return false;
+ if (null != them.busname && !them.busname.equals(this.busname)) return false;
+
+ if (null == this.iface && null != them.iface) return false;
+ if (null != this.iface && null == them.iface) return false;
+ if (null != them.iface && !them.iface.equals(this.iface)) return false;
+
+ return true;
+ }
+ public int hashCode()
+ {
+ return (null == busname ? 0 : busname.hashCode()) + objectpath.hashCode() +
+ (null == iface ? 0 : iface.hashCode());
+ }
+ public boolean autoStarting() { return autostart; }
+ public String getBusName() { return busname; }
+ public String getObjectPath() { return objectpath; }
+ public Class<? extends DBusInterface> getInterface() { return iface; }
+ public String toString()
+ {
+ return busname+":"+objectpath+":"+iface;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/SignalTuple.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/SignalTuple.java
new file mode 100755
index 0000000..94cadee
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/SignalTuple.java
@@ -0,0 +1,51 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+class SignalTuple
+{
+ String type;
+ String name;
+ String object;
+ String source;
+ public SignalTuple(String type, String name, String object, String source)
+ {
+ this.type = type;
+ this.name = name;
+ this.object = object;
+ this.source = source;
+ }
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof SignalTuple)) return false;
+ SignalTuple other = (SignalTuple) o;
+ if (null == this.type && null != other.type) return false;
+ if (null != this.type && !this.type.equals(other.type)) return false;
+ if (null == this.name && null != other.name) return false;
+ if (null != this.name && !this.name.equals(other.name)) return false;
+ if (null == this.object && null != other.object) return false;
+ if (null != this.object && !this.object.equals(other.object)) return false;
+ if (null == this.source && null != other.source) return false;
+ if (null != this.source && !this.source.equals(other.source)) return false;
+ return true;
+ }
+ public int hashCode()
+ {
+ return (null == type ? 0 : type.hashCode())
+ + (null == name ? 0 : name.hashCode())
+ + (null == source ? 0 : source.hashCode())
+ + (null == object ? 0 : object.hashCode());
+ }
+ public String toString()
+ {
+ return "SignalTuple("+type+","+name+","+object+","+source+")";
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/StrongReference.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/StrongReference.java
new file mode 100755
index 0000000..c4d142d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/StrongReference.java
@@ -0,0 +1,43 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * An alternative to a WeakReference when you don't want
+ * that behaviour.
+ */
+public class StrongReference<T> extends WeakReference<T>
+{
+ T referant;
+ public StrongReference(T referant)
+ {
+ super(referant);
+ this.referant = referant;
+ }
+ public void clear()
+ {
+ referant = null;
+ }
+ public boolean enqueue()
+ {
+ return false;
+ }
+ public T get()
+ {
+ return referant;
+ }
+ public boolean isEnqueued()
+ {
+ return false;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Struct.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Struct.java
new file mode 100755
index 0000000..7d37ed0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Struct.java
@@ -0,0 +1,23 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+/**
+ * This class should be extended to create Structs.
+ * Any such class may be sent over DBus to a method which takes a Struct.
+ * All fields in the Struct which you wish to be serialized and sent to the
+ * remote method should be annotated with the org.freedesktop.dbus.Position
+ * annotation, in the order they should appear in to Struct to DBus.
+ */
+public abstract class Struct extends Container
+{
+ public Struct() {}
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Transport.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Transport.java
new file mode 100755
index 0000000..ccde1e9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Transport.java
@@ -0,0 +1,825 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.text.ParseException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.text.Collator;
+import java.util.Arrays;
+import java.util.Random;
+import java.util.Vector;
+import cx.ath.matthew.unix.UnixSocket;
+import cx.ath.matthew.unix.UnixServerSocket;
+import cx.ath.matthew.unix.UnixSocketAddress;
+import cx.ath.matthew.utils.Hexdump;
+import cx.ath.matthew.debug.Debug;
+
+public class Transport
+{
+ public static class SASL
+ {
+ public static class Command
+ {
+ private int command;
+ private int mechs;
+ private String data;
+ private String response;
+ public Command()
+ {
+ }
+ public Command(String s) throws IOException
+ {
+ String[] ss = s.split(" ");
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Creating command from: "+Arrays.toString(ss));
+ if (0 == col.compare(ss[0], "OK")) {
+ command = COMMAND_OK;
+ data = ss[1];
+ } else if (0 == col.compare(ss[0], "AUTH")) {
+ command = COMMAND_AUTH;
+ if (ss.length > 1) {
+ if (0 == col.compare(ss[1], "EXTERNAL"))
+ mechs = AUTH_EXTERNAL;
+ else if (0 == col.compare(ss[1], "DBUS_COOKIE_SHA1"))
+ mechs = AUTH_SHA;
+ else if (0 == col.compare(ss[1], "ANONYMOUS"))
+ mechs = AUTH_ANON;
+ }
+ if (ss.length > 2)
+ data = ss[2];
+ } else if (0 == col.compare(ss[0], "DATA")) {
+ command = COMMAND_DATA;
+ data = ss[1];
+ } else if (0 == col.compare(ss[0], "REJECTED")) {
+ command = COMMAND_REJECTED;
+ for (int i = 1; i < ss.length; i++)
+ if (0 == col.compare(ss[i], "EXTERNAL"))
+ mechs |= AUTH_EXTERNAL;
+ else if (0 == col.compare(ss[i], "DBUS_COOKIE_SHA1"))
+ mechs |= AUTH_SHA;
+ else if (0 == col.compare(ss[i], "ANONYMOUS"))
+ mechs |= AUTH_ANON;
+ } else if (0 == col.compare(ss[0], "BEGIN")) {
+ command = COMMAND_BEGIN;
+ } else if (0 == col.compare(ss[0], "CANCEL")) {
+ command = COMMAND_CANCEL;
+ } else if (0 == col.compare(ss[0], "ERROR")) {
+ command = COMMAND_ERROR;
+ data = ss[1];
+ } else {
+ throw new IOException(_("Invalid Command ")+ss[0]);
+ }
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Created command: "+this);
+ }
+ public int getCommand() { return command; }
+ public int getMechs() { return mechs; }
+ public String getData() { return data; }
+ public String getResponse() { return response; }
+ public void setResponse(String s) { response = s; }
+ public String toString()
+ {
+ return "Command("+command+", "+mechs+", "+data+", "+null+")";
+ }
+ }
+ private static Collator col = Collator.getInstance();
+ static {
+ col.setDecomposition(Collator.FULL_DECOMPOSITION);
+ col.setStrength(Collator.PRIMARY);
+ }
+ public static final int LOCK_TIMEOUT = 1000;
+ public static final int NEW_KEY_TIMEOUT_SECONDS = 60 * 5;
+ public static final int EXPIRE_KEYS_TIMEOUT_SECONDS = NEW_KEY_TIMEOUT_SECONDS + (60 * 2);
+ public static final int MAX_TIME_TRAVEL_SECONDS = 60 * 5;
+ public static final int COOKIE_TIMEOUT = 240;
+ public static final String COOKIE_CONTEXT = "org_freedesktop_java";
+
+ private String findCookie(String context, String ID) throws IOException
+ {
+ String homedir = System.getProperty("user.home");
+ File f = new File(homedir+"/.dbus-keyrings/"+context);
+ BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
+ String s = null;
+ String cookie = null;
+ long now = System.currentTimeMillis()/1000;
+ while (null != (s = r.readLine())) {
+ String[] line = s.split(" ");
+ long timestamp = Long.parseLong(line[1]);
+ if (line[0].equals(ID) && (! (timestamp < 0 ||
+ (now + MAX_TIME_TRAVEL_SECONDS) < timestamp ||
+ (now - EXPIRE_KEYS_TIMEOUT_SECONDS) > timestamp))) {
+ cookie = line[2];
+ break;
+ }
+ }
+ r.close();
+ return cookie;
+ }
+ private void addCookie(String context, String ID, long timestamp, String cookie) throws IOException
+ {
+ String homedir = System.getProperty("user.home");
+ File keydir = new File(homedir+"/.dbus-keyrings/");
+ File cookiefile = new File(homedir+"/.dbus-keyrings/"+context);
+ File lock = new File(homedir+"/.dbus-keyrings/"+context+".lock");
+ File temp = new File(homedir+"/.dbus-keyrings/"+context+".temp");
+
+ // ensure directory exists
+ if (!keydir.exists()) keydir.mkdirs();
+
+ // acquire lock
+ long start = System.currentTimeMillis();
+ while (!lock.createNewFile() && LOCK_TIMEOUT > (System.currentTimeMillis()-start));
+
+ // read old file
+ Vector<String> lines = new Vector<String>();
+ if (cookiefile.exists()) {
+ BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(cookiefile)));
+ String s = null;
+ while (null != (s = r.readLine())) {
+ String[] line = s.split(" ");
+ long time = Long.parseLong(line[1]);
+ // expire stale cookies
+ if ((timestamp - time) < COOKIE_TIMEOUT)
+ lines.add(s);
+ }
+ r.close();
+ }
+
+ // add cookie
+ lines.add(ID+" "+timestamp+" "+cookie);
+
+ // write temp file
+ PrintWriter w = new PrintWriter(new FileOutputStream(temp));
+ for (String l: lines)
+ w.println(l);
+ w.close();
+
+ // atomically move to old file
+ if (!temp.renameTo(cookiefile)) {
+ cookiefile.delete();
+ temp.renameTo(cookiefile);
+ }
+
+ // remove lock
+ lock.delete();
+ }
+ /**
+ * Takes the string, encodes it as hex and then turns it into a string again.
+ * No, I don't know why either.
+ */
+ private String stupidlyEncode(String data)
+ {
+ return Hexdump.toHex(data.getBytes()).replaceAll(" ","");
+ }
+ private String stupidlyEncode(byte[] data)
+ {
+ return Hexdump.toHex(data).replaceAll(" ","");
+ }
+ private byte getNibble(char c)
+ {
+ switch (c) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ return (byte) (c-'0');
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ return (byte) (c-'A'+10);
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ return (byte) (c-'a'+10);
+ default:
+ return 0;
+ }
+ }
+ private String stupidlyDecode(String data)
+ {
+ char[] cs = new char[data.length()];
+ char[] res = new char[cs.length/2];
+ data.getChars(0, data.length(), cs, 0);
+ for (int i = 0, j = 0; j < res.length; i += 2, j++) {
+ int b = 0;
+ b |= getNibble(cs[i])<<4;
+ b |= getNibble(cs[i+1]);
+ res[j] = (char) b;
+ }
+ return new String(res);
+ }
+
+ public static final int MODE_SERVER=1;
+ public static final int MODE_CLIENT=2;
+
+ public static final int AUTH_NONE=0;
+ public static final int AUTH_EXTERNAL=1;
+ public static final int AUTH_SHA=2;
+ public static final int AUTH_ANON=4;
+
+ public static final int COMMAND_AUTH=1;
+ public static final int COMMAND_DATA=2;
+ public static final int COMMAND_REJECTED=3;
+ public static final int COMMAND_OK=4;
+ public static final int COMMAND_BEGIN=5;
+ public static final int COMMAND_CANCEL=6;
+ public static final int COMMAND_ERROR=7;
+
+ public static final int INITIAL_STATE=0;
+ public static final int WAIT_DATA=1;
+ public static final int WAIT_OK=2;
+ public static final int WAIT_REJECT=3;
+ public static final int WAIT_AUTH=4;
+ public static final int WAIT_BEGIN=5;
+ public static final int AUTHENTICATED=6;
+ public static final int FAILED=7;
+
+ public static final int OK=1;
+ public static final int CONTINUE=2;
+ public static final int ERROR=3;
+ public static final int REJECT=4;
+
+ public Command receive(InputStream s) throws IOException
+ {
+ StringBuffer sb = new StringBuffer();
+ top: while (true) {
+ int c = s.read();
+ switch (c) {
+ case -1:
+ throw new IOException("Stream unexpectedly short (broken pipe)");
+ case 0:
+ case '\r':
+ continue;
+ case '\n':
+ break top;
+ default:
+ sb.append((char) c);
+ }
+ }
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "received: "+sb);
+ try {
+ return new Command(sb.toString());
+ } catch (Exception e) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, e);
+ return new Command();
+ }
+ }
+ public void send(OutputStream out, int command, String... data) throws IOException
+ {
+ StringBuffer sb = new StringBuffer();
+ switch (command) {
+ case COMMAND_AUTH:
+ sb.append("AUTH");
+ break;
+ case COMMAND_DATA:
+ sb.append("DATA");
+ break;
+ case COMMAND_REJECTED:
+ sb.append("REJECTED");
+ break;
+ case COMMAND_OK:
+ sb.append("OK");
+ break;
+ case COMMAND_BEGIN:
+ sb.append("BEGIN");
+ break;
+ case COMMAND_CANCEL:
+ sb.append("CANCEL");
+ break;
+ case COMMAND_ERROR:
+ sb.append("ERROR");
+ break;
+ default:
+ return;
+ }
+ for (String s: data) {
+ sb.append(' ');
+ sb.append(s);
+ }
+ sb.append('\r');
+ sb.append('\n');
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "sending: "+sb);
+ out.write(sb.toString().getBytes());
+ }
+ public int do_challenge(int auth, Command c) throws IOException
+ {
+ switch (auth) {
+ case AUTH_SHA:
+ String[] reply=stupidlyDecode(c.getData()).split(" ");
+ if (Debug.debug) Debug.print(Debug.VERBOSE, Arrays.toString(reply));
+ if (3 != reply.length) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Reply is not length 3");
+ return ERROR;
+ }
+ String context = reply[0];
+ String ID = reply[1];
+ String serverchallenge = reply[2];
+ MessageDigest md = null;
+ try {
+ md = MessageDigest.getInstance("SHA");
+ } catch (NoSuchAlgorithmException NSAe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, NSAe);
+ return ERROR;
+ }
+ byte[] buf = new byte[8];
+ Message.marshallintBig(System.currentTimeMillis(), buf, 0, 8);
+ String clientchallenge = stupidlyEncode(md.digest(buf));
+ md.reset();
+ long start = System.currentTimeMillis();
+ String cookie = null;
+ while (null == cookie && (System.currentTimeMillis()-start) < LOCK_TIMEOUT)
+ cookie = findCookie(context, ID);
+ if (null == cookie) {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Did not find a cookie in context "+context+" with ID "+ID);
+ return ERROR;
+ }
+ String response = serverchallenge+":"+clientchallenge+":"+cookie;
+ buf = md.digest(response.getBytes());
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Response: "+response+" hash: "+Hexdump.format(buf));
+ response = stupidlyEncode(buf);
+ c.setResponse(stupidlyEncode(clientchallenge+" "+response));
+ return OK;
+ default:
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Not DBUS_COOKIE_SHA1 authtype.");
+ return ERROR;
+ }
+ }
+ public String challenge = "";
+ public String cookie = "";
+ public int do_response(int auth, String Uid, String kernelUid, Command c)
+ {
+ MessageDigest md = null;
+ try {
+ md = MessageDigest.getInstance("SHA");
+ } catch (NoSuchAlgorithmException NSAe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, NSAe);
+ return ERROR;
+ }
+ switch (auth) {
+ case AUTH_NONE:
+ switch (c.getMechs()) {
+ case AUTH_ANON:
+ return OK;
+ case AUTH_EXTERNAL:
+ if (0 == col.compare(Uid, c.getData()) &&
+ (null == kernelUid || 0 == col.compare(Uid, kernelUid)))
+ return OK;
+ else
+ return ERROR;
+ case AUTH_SHA:
+ String context = COOKIE_CONTEXT;
+ long id = System.currentTimeMillis();
+ byte[] buf = new byte[8];
+ Message.marshallintBig(id, buf, 0, 8);
+ challenge = stupidlyEncode(md.digest(buf));
+ Random r = new Random();
+ r.nextBytes(buf);
+ cookie = stupidlyEncode(md.digest(buf));
+ try { addCookie(context, ""+id, id/1000, cookie);
+ } catch (IOException IOe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, IOe);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Sending challenge: "+context+' '+id+' '+challenge);
+ c.setResponse(stupidlyEncode(context+' '+id+' '+challenge));
+ return CONTINUE;
+ default:
+ return ERROR;
+ }
+ case AUTH_SHA:
+ String[] response = stupidlyDecode(c.getData()).split(" ");
+ if (response.length < 2) return ERROR;
+ String cchal = response[0];
+ String hash = response[1];
+ String prehash = challenge+":"+cchal+":"+cookie;
+ byte[] buf = md.digest(prehash.getBytes());
+ String posthash = stupidlyEncode(buf);
+ if (Debug.debug) Debug.print(Debug.DEBUG, "Authenticating Hash; data="+prehash+" remote hash="+hash+" local hash="+posthash);
+ if (0 == col.compare(posthash, hash))
+ return OK;
+ else
+ return ERROR;
+ default:
+ return ERROR;
+ }
+ }
+ public String[] getTypes(int types)
+ {
+ switch (types) {
+ case AUTH_EXTERNAL:
+ return new String[] { "EXTERNAL" };
+ case AUTH_SHA:
+ return new String[] { "DBUS_COOKIE_SHA1" };
+ case AUTH_ANON:
+ return new String[] { "ANONYMOUS" };
+ case AUTH_SHA+AUTH_EXTERNAL:
+ return new String[] { "EXTERNAL", "DBUS_COOKIE_SHA1" };
+ case AUTH_SHA+AUTH_ANON:
+ return new String[] { "ANONYMOUS", "DBUS_COOKIE_SHA1" };
+ case AUTH_EXTERNAL+AUTH_ANON:
+ return new String[] { "ANONYMOUS", "EXTERNAL" };
+ case AUTH_EXTERNAL+AUTH_ANON+AUTH_SHA:
+ return new String[] { "ANONYMOUS", "EXTERNAL", "DBUS_COOKIE_SHA1" };
+ default:
+ return new String[] { };
+ }
+ }
+ /**
+ * performs SASL auth on the given streams.
+ * Mode selects whether to run as a SASL server or client.
+ * Types is a bitmask of the available auth types.
+ * Returns true if the auth was successful and false if it failed.
+ */
+ @SuppressWarnings("unchecked")
+ public boolean auth(int mode, int types, String guid, OutputStream out, InputStream in, UnixSocket us) throws IOException
+ {
+ String username = System.getProperty("user.name");
+ String Uid = null;
+ String kernelUid = null;
+ try {
+ Class c = Class.forName("com.sun.security.auth.module.UnixSystem");
+ Method m = c.getMethod("getUid");
+ Object o = c.newInstance();
+ long uid = (Long) m.invoke(o);
+ Uid = stupidlyEncode(""+uid);
+ } catch (Exception e) {
+ Uid = stupidlyEncode(username);
+ }
+ Command c;
+ int failed = 0;
+ int current = 0;
+ int state = INITIAL_STATE;
+
+ while (state != AUTHENTICATED && state != FAILED) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "AUTH state: "+state);
+ switch (mode) {
+ case MODE_CLIENT:
+ switch (state) {
+ case INITIAL_STATE:
+ if (null == us)
+ out.write(new byte[] { 0 });
+ else
+ us.sendCredentialByte((byte) 0);
+ send(out, COMMAND_AUTH);
+ state = WAIT_DATA;
+ break;
+ case WAIT_DATA:
+ c = receive(in);
+ switch (c.getCommand()) {
+ case COMMAND_DATA:
+ switch (do_challenge(current, c)) {
+ case CONTINUE:
+ send(out, COMMAND_DATA, c.getResponse());
+ break;
+ case OK:
+ send(out, COMMAND_DATA, c.getResponse());
+ state = WAIT_OK;
+ break;
+ case ERROR:
+ send(out, COMMAND_ERROR, c.getResponse());
+ break;
+ }
+ break;
+ case COMMAND_REJECTED:
+ failed |= current;
+ int available = c.getMechs() & (~failed);
+ if (0 != (available & AUTH_EXTERNAL)){
+ send(out, COMMAND_AUTH, "EXTERNAL", Uid);
+ current = AUTH_EXTERNAL;
+ } else if (0 != (available & AUTH_SHA)) {
+ send(out, COMMAND_AUTH, "DBUS_COOKIE_SHA1", Uid);
+ current = AUTH_SHA;
+ } else if (0 != (available & AUTH_ANON)) {
+ send(out, COMMAND_AUTH, "ANONYMOUS");
+ current = AUTH_ANON;
+ }
+ else state = FAILED;
+ break;
+ case COMMAND_ERROR:
+ send(out, COMMAND_CANCEL);
+ state = WAIT_REJECT;
+ break;
+ case COMMAND_OK:
+ send(out, COMMAND_BEGIN);
+ state = AUTHENTICATED;
+ break;
+ default:
+ send(out, COMMAND_ERROR, "Got invalid command");
+ break;
+ }
+ break;
+ case WAIT_OK:
+ c = receive(in);
+ switch (c.getCommand()) {
+ case COMMAND_OK:
+ send(out, COMMAND_BEGIN);
+ state = AUTHENTICATED;
+ break;
+ case COMMAND_ERROR:
+ case COMMAND_DATA:
+ send(out, COMMAND_CANCEL);
+ state = WAIT_REJECT;
+ break;
+ case COMMAND_REJECTED:
+ failed |= current;
+ int available = c.getMechs() & (~failed);
+ state = WAIT_DATA;
+ if (0 != (available & AUTH_EXTERNAL)) {
+ send(out, COMMAND_AUTH, "EXTERNAL", Uid);
+ current = AUTH_EXTERNAL;
+ } else if (0 != (available & AUTH_SHA)) {
+ send(out, COMMAND_AUTH, "DBUS_COOKIE_SHA1", Uid);
+ current = AUTH_SHA;
+ } else if (0 != (available & AUTH_ANON)) {
+ send(out, COMMAND_AUTH, "ANONYMOUS");
+ current = AUTH_ANON;
+ }
+ else state = FAILED;
+ break;
+ default:
+ send(out, COMMAND_ERROR, "Got invalid command");
+ break;
+ }
+ break;
+ case WAIT_REJECT:
+ c = receive(in);
+ switch (c.getCommand()) {
+ case COMMAND_REJECTED:
+ failed |= current;
+ int available = c.getMechs() & (~failed);
+ if (0 != (available & AUTH_EXTERNAL)) {
+ send(out, COMMAND_AUTH, "EXTERNAL", Uid);
+ current = AUTH_EXTERNAL;
+ } else if (0 != (available & AUTH_SHA)) {
+ send(out, COMMAND_AUTH, "DBUS_COOKIE_SHA1", Uid);
+ current = AUTH_SHA;
+ } else if (0 != (available & AUTH_ANON)) {
+ send(out, COMMAND_AUTH, "ANONYMOUS");
+ current = AUTH_ANON;
+ }
+ else state = FAILED;
+ break;
+ default:
+ state = FAILED;
+ break;
+ }
+ break;
+ default:
+ state = FAILED;
+ }
+ break;
+ case MODE_SERVER:
+ switch (state) {
+ case INITIAL_STATE:
+ byte[] buf = new byte[1];
+ if (null == us) {
+ in.read(buf);
+ } else {
+ buf[0] = us.recvCredentialByte();
+ int kuid = us.getPeerUID();
+ if (kuid >= 0)
+ kernelUid = stupidlyEncode(""+kuid);
+ }
+ if (0 != buf[0]) state = FAILED;
+ else state = WAIT_AUTH;
+ break;
+ case WAIT_AUTH:
+ c = receive(in);
+ switch (c.getCommand()) {
+ case COMMAND_AUTH:
+ if (null == c.getData()) {
+ send(out, COMMAND_REJECTED, getTypes(types));
+ } else {
+ switch (do_response(current, Uid, kernelUid, c)) {
+ case CONTINUE:
+ send(out, COMMAND_DATA, c.getResponse());
+ current = c.getMechs();
+ state = WAIT_DATA;
+ break;
+ case OK:
+ send(out, COMMAND_OK, guid);
+ state = WAIT_BEGIN;
+ current = 0;
+ break;
+ case REJECT:
+ send(out, COMMAND_REJECTED, getTypes(types));
+ current = 0;
+ break;
+ }
+ }
+ break;
+ case COMMAND_ERROR:
+ send(out, COMMAND_REJECTED, getTypes(types));
+ break;
+ case COMMAND_BEGIN:
+ state = FAILED;
+ break;
+ default:
+ send(out, COMMAND_ERROR, "Got invalid command");
+ break;
+ }
+ break;
+ case WAIT_DATA:
+ c = receive(in);
+ switch (c.getCommand()) {
+ case COMMAND_DATA:
+ switch (do_response(current, Uid, kernelUid, c)) {
+ case CONTINUE:
+ send(out, COMMAND_DATA, c.getResponse());
+ state = WAIT_DATA;
+ break;
+ case OK:
+ send(out, COMMAND_OK, guid);
+ state = WAIT_BEGIN;
+ current = 0;
+ break;
+ case REJECT:
+ send(out, COMMAND_REJECTED, getTypes(types));
+ current = 0;
+ break;
+ }
+ break;
+ case COMMAND_ERROR:
+ case COMMAND_CANCEL:
+ send(out, COMMAND_REJECTED, getTypes(types));
+ state = WAIT_AUTH;
+ break;
+ case COMMAND_BEGIN:
+ state = FAILED;
+ break;
+ default:
+ send(out, COMMAND_ERROR, "Got invalid command");
+ break;
+ }
+ break;
+ case WAIT_BEGIN:
+ c = receive(in);
+ switch (c.getCommand()) {
+ case COMMAND_ERROR:
+ case COMMAND_CANCEL:
+ send(out, COMMAND_REJECTED, getTypes(types));
+ state = WAIT_AUTH;
+ break;
+ case COMMAND_BEGIN:
+ state = AUTHENTICATED;
+ break;
+ default:
+ send(out, COMMAND_ERROR, "Got invalid command");
+ break;
+ }
+ break;
+ default:
+ state = FAILED;
+ }
+ break;
+ default:
+ return false;
+ }
+ }
+
+ return state == AUTHENTICATED;
+ }
+ }
+ public MessageReader min;
+ public MessageWriter mout;
+ public Transport() {}
+ public static String genGUID()
+ {
+ Random r = new Random();
+ byte[] buf = new byte[16];
+ r.nextBytes(buf);
+ String guid = Hexdump.toHex(buf);
+ return guid.replaceAll(" ", "");
+ }
+ public Transport(BusAddress address) throws IOException
+ {
+ connect(address);
+ }
+ public Transport(String address) throws IOException, ParseException
+ {
+ connect(new BusAddress(address));
+ }
+ public Transport(String address, int timeout) throws IOException, ParseException
+ {
+ connect(new BusAddress(address), timeout);
+ }
+ public void connect(String address) throws IOException, ParseException
+ {
+ connect(new BusAddress(address), 0);
+ }
+ public void connect(String address, int timeout) throws IOException, ParseException
+ {
+ connect(new BusAddress(address), timeout);
+ }
+ public void connect(BusAddress address) throws IOException
+ {
+ connect(address, 0);
+ }
+ public void connect(BusAddress address, int timeout) throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Connecting to "+address);
+ OutputStream out = null;
+ InputStream in = null;
+ UnixSocket us = null;
+ Socket s = null;
+ int mode = 0;
+ int types = 0;
+ if ("unix".equals(address.getType())) {
+ types = SASL.AUTH_EXTERNAL;
+ if (null != address.getParameter("listen")) {
+ mode = SASL.MODE_SERVER;
+ UnixServerSocket uss = new UnixServerSocket();
+ if (null != address.getParameter("abstract"))
+ uss.bind(new UnixSocketAddress(address.getParameter("abstract"), true));
+ else if (null != address.getParameter("path"))
+ uss.bind(new UnixSocketAddress(address.getParameter("path"), false));
+ us = uss.accept();
+ } else {
+ mode = SASL.MODE_CLIENT;
+ us = new UnixSocket();
+ if (null != address.getParameter("abstract"))
+ us.connect(new UnixSocketAddress(address.getParameter("abstract"), true));
+ else if (null != address.getParameter("path"))
+ us.connect(new UnixSocketAddress(address.getParameter("path"), false));
+ }
+ us.setPassCred(true);
+ in = us.getInputStream();
+ out = us.getOutputStream();
+ } else if ("tcp".equals(address.getType())) {
+ types = SASL.AUTH_SHA;
+ if (null != address.getParameter("listen")) {
+ mode = SASL.MODE_SERVER;
+ ServerSocket ss = new ServerSocket();
+ ss.bind(new InetSocketAddress(address.getParameter("host"), Integer.parseInt(address.getParameter("port"))));
+ s = ss.accept();
+ } else {
+ mode = SASL.MODE_CLIENT;
+ s = new Socket();
+ s.connect(new InetSocketAddress(address.getParameter("host"), Integer.parseInt(address.getParameter("port"))));
+ }
+ in = s.getInputStream();
+ out = s.getOutputStream();
+ } else {
+ throw new IOException(_("unknown address type ")+address.getType());
+ }
+
+ if (!(new SASL()).auth(mode, types, address.getParameter("guid"), out, in, us)) {
+ out.close();
+ throw new IOException(_("Failed to auth"));
+ }
+ if (null != us) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Setting timeout to "+timeout+" on Socket");
+ if (timeout == 1)
+ us.setBlocking(false);
+ else
+ us.setSoTimeout(timeout);
+ }
+ if (null != s) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Setting timeout to "+timeout+" on Socket");
+ s.setSoTimeout(timeout);
+ }
+ mout = new MessageWriter(out);
+ min = new MessageReader(in);
+ }
+ public void disconnect() throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Disconnecting Transport");
+ min.close();
+ mout.close();
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Tuple.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Tuple.java
new file mode 100755
index 0000000..becfc60
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Tuple.java
@@ -0,0 +1,24 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+/**
+ * This class should be extended to create Tuples.
+ * Any such class may be used as the return type for a method
+ * which returns multiple values.
+ * All fields in the Tuple which you wish to be serialized and sent to the
+ * remote method should be annotated with the org.freedesktop.dbus.Position
+ * annotation, in the order they should appear to DBus.
+ */
+public abstract class Tuple extends Container
+{
+ public Tuple() {}
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/TypeSignature.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/TypeSignature.java
new file mode 100755
index 0000000..c297821
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/TypeSignature.java
@@ -0,0 +1,37 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import java.lang.reflect.Type;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public class TypeSignature
+{
+ String sig;
+ public TypeSignature(String sig)
+ {
+ this.sig = sig;
+ }
+ public TypeSignature(Type[] types) throws DBusException
+ {
+ StringBuffer sb = new StringBuffer();
+ for (Type t: types) {
+ String[] ts = Marshalling.getDBusType(t);
+ for (String s: ts)
+ sb.append(s);
+ }
+ this.sig = sb.toString();
+ }
+ public String getSig()
+ {
+ return sig;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt16.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt16.java
new file mode 100755
index 0000000..45af710
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt16.java
@@ -0,0 +1,79 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.text.MessageFormat;
+
+/**
+ * Class to represent 16-bit unsigned integers.
+ */
+@SuppressWarnings("serial")
+public class UInt16 extends Number implements Comparable<UInt16>
+{
+ /** Maximum possible value. */
+ public static final int MAX_VALUE = 65535;
+ /** Minimum possible value. */
+ public static final int MIN_VALUE = 0;
+ private int value;
+ /** Create a UInt16 from an int.
+ * @param value Must be within MIN_VALUE&ndash;MAX_VALUE
+ * @throws NumberFormatException if value is not between MIN_VALUE and MAX_VALUE
+ */
+ public UInt16(int value)
+ {
+ if (value < MIN_VALUE || value > MAX_VALUE)
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_VALUE}));
+ this.value = value;
+ }
+ /** Create a UInt16 from a String.
+ * @param value Must parse to a valid integer within MIN_VALUE&ndash;MAX_VALUE
+ * @throws NumberFormatException if value is not an integer between MIN_VALUE and MAX_VALUE
+ */
+ public UInt16(String value)
+ {
+ this(Integer.parseInt(value));
+ }
+ /** The value of this as a byte. */
+ public byte byteValue() { return (byte) value; }
+ /** The value of this as a double. */
+ public double doubleValue() { return (double) value; }
+ /** The value of this as a float. */
+ public float floatValue() { return (float) value; }
+ /** The value of this as a int. */
+ public int intValue() { return /*(int)*/ value; }
+ /** The value of this as a long. */
+ public long longValue() { return (long) value; }
+ /** The value of this as a short. */
+ public short shortValue(){ return (short) value; }
+ /** Test two UInt16s for equality. */
+ public boolean equals(Object o)
+ {
+ return o instanceof UInt16 && ((UInt16) o).value == this.value;
+ }
+ public int hashCode()
+ {
+ return /*(int)*/ value;
+ }
+ /** Compare two UInt16s.
+ * @return 0 if equal, -ve or +ve if they are different.
+ */
+ public int compareTo(UInt16 other)
+ {
+ return /*(int)*/ (this.value - other.value);
+ }
+ /** The value of this as a string. */
+ public String toString()
+ {
+ return ""+value;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt32.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt32.java
new file mode 100755
index 0000000..17b9f07
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt32.java
@@ -0,0 +1,79 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.text.MessageFormat;
+
+/**
+ * Class to represent unsigned 32-bit numbers.
+ */
+@SuppressWarnings("serial")
+public class UInt32 extends Number implements Comparable<UInt32>
+{
+ /** Maximum allowed value */
+ public static final long MAX_VALUE = 4294967295L;
+ /** Minimum allowed value */
+ public static final long MIN_VALUE = 0;
+ private long value;
+ /** Create a UInt32 from a long.
+ * @param value Must be a valid integer within MIN_VALUE&ndash;MAX_VALUE
+ * @throws NumberFormatException if value is not between MIN_VALUE and MAX_VALUE
+ */
+ public UInt32(long value)
+ {
+ if (value < MIN_VALUE || value > MAX_VALUE)
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_VALUE}));
+ this.value = value;
+ }
+ /** Create a UInt32 from a String.
+ * @param value Must parse to a valid integer within MIN_VALUE&ndash;MAX_VALUE
+ * @throws NumberFormatException if value is not an integer between MIN_VALUE and MAX_VALUE
+ */
+ public UInt32(String value)
+ {
+ this(Long.parseLong(value));
+ }
+ /** The value of this as a byte. */
+ public byte byteValue() { return (byte) value; }
+ /** The value of this as a double. */
+ public double doubleValue() { return (double) value; }
+ /** The value of this as a float. */
+ public float floatValue() { return (float) value; }
+ /** The value of this as a int. */
+ public int intValue() { return (int) value; }
+ /** The value of this as a long. */
+ public long longValue() { return /*(long)*/ value; }
+ /** The value of this as a short. */
+ public short shortValue(){ return (short) value; }
+ /** Test two UInt32s for equality. */
+ public boolean equals(Object o)
+ {
+ return o instanceof UInt32 && ((UInt32) o).value == this.value;
+ }
+ public int hashCode()
+ {
+ return (int) value;
+ }
+ /** Compare two UInt32s.
+ * @return 0 if equal, -ve or +ve if they are different.
+ */
+ public int compareTo(UInt32 other)
+ {
+ return (int) (this.value - other.value);
+ }
+ /** The value of this as a string */
+ public String toString()
+ {
+ return ""+value;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt64.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt64.java
new file mode 100755
index 0000000..b3e4cb9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/UInt64.java
@@ -0,0 +1,151 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.math.BigInteger;
+
+import java.text.MessageFormat;
+
+/**
+ * Class to represent unsigned 64-bit numbers.
+ * Warning: Any functions which take or return a <tt>long</tt>
+ * are restricted to the range of a signed 64bit number.
+ * Use the BigInteger methods if you wish access to the full
+ * range.
+ */
+@SuppressWarnings("serial")
+public class UInt64 extends Number implements Comparable<UInt64>
+{
+ /** Maximum allowed value (when accessed as a long) */
+ public static final long MAX_LONG_VALUE = Long.MAX_VALUE;
+ /** Maximum allowed value (when accessed as a BigInteger) */
+ public static final BigInteger MAX_BIG_VALUE = new BigInteger("18446744073709551615");
+ /** Minimum allowed value */
+ public static final long MIN_VALUE = 0;
+ private BigInteger value;
+ private long top;
+ private long bottom;
+ /** Create a UInt64 from a long.
+ * @param value Must be a valid integer within MIN_VALUE&ndash;MAX_VALUE
+ * @throws NumberFormatException if value is not between MIN_VALUE and MAX_VALUE
+ */
+ public UInt64(long value)
+ {
+ if (value < MIN_VALUE || value > MAX_LONG_VALUE)
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_LONG_VALUE}));
+ this.value = new BigInteger(""+value);
+ this.top = this.value.shiftRight(32).and(new BigInteger("4294967295")).longValue();
+ this.bottom = this.value.and(new BigInteger("4294967295")).longValue();
+ }
+ /**
+ * Create a UInt64 from two longs.
+ * @param top Most significant 4 bytes.
+ * @param bottom Least significant 4 bytes.
+ */
+ public UInt64(long top, long bottom)
+ {
+ BigInteger a = new BigInteger(""+top);
+ a = a.shiftLeft(32);
+ a = a.add(new BigInteger(""+bottom));
+ if (0 > a.compareTo(BigInteger.ZERO))
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { a, MIN_VALUE, MAX_BIG_VALUE}));
+ if (0 < a.compareTo(MAX_BIG_VALUE))
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { a, MIN_VALUE, MAX_BIG_VALUE}));
+ this.value = a;
+ this.top = top;
+ this.bottom = bottom;
+ }
+ /** Create a UInt64 from a BigInteger
+ * @param value Must be a valid BigInteger between MIN_VALUE&ndash;MAX_BIG_VALUE
+ * @throws NumberFormatException if value is not an integer between MIN_VALUE and MAX_BIG_VALUE
+ */
+ public UInt64(BigInteger value)
+ {
+ if (null == value)
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_BIG_VALUE}));
+ if (0 > value.compareTo(BigInteger.ZERO))
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_BIG_VALUE}));
+ if (0 < value.compareTo(MAX_BIG_VALUE))
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_BIG_VALUE}));
+ this.value = value;
+ this.top = this.value.shiftRight(32).and(new BigInteger("4294967295")).longValue();
+ this.bottom = this.value.and(new BigInteger("4294967295")).longValue();
+ }
+ /** Create a UInt64 from a String.
+ * @param value Must parse to a valid integer within MIN_VALUE&ndash;MAX_BIG_VALUE
+ * @throws NumberFormatException if value is not an integer between MIN_VALUE and MAX_BIG_VALUE
+ */
+ public UInt64(String value)
+ {
+ if (null == value)
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_BIG_VALUE}));
+ BigInteger a = new BigInteger(value);
+ if (0 > a.compareTo(BigInteger.ZERO))
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_BIG_VALUE}));
+ if (0 < a.compareTo(MAX_BIG_VALUE))
+ throw new NumberFormatException(MessageFormat.format(_("{0} is not between {1} and {2}."), new Object[] { value, MIN_VALUE, MAX_BIG_VALUE}));
+ this.value = a;
+ this.top = this.value.shiftRight(32).and(new BigInteger("4294967295")).longValue();
+ this.bottom = this.value.and(new BigInteger("4294967295")).longValue();
+ }
+ /** The value of this as a BigInteger. */
+ public BigInteger value() { return value; }
+ /** The value of this as a byte. */
+ public byte byteValue() { return value.byteValue(); }
+ /** The value of this as a double. */
+ public double doubleValue() { return value.doubleValue(); }
+ /** The value of this as a float. */
+ public float floatValue() { return value.floatValue(); }
+ /** The value of this as a int. */
+ public int intValue() { return value.intValue(); }
+ /** The value of this as a long. */
+ public long longValue() { return value.longValue(); }
+ /** The value of this as a short. */
+ public short shortValue(){ return value.shortValue(); }
+ /** Test two UInt64s for equality. */
+ public boolean equals(Object o)
+ {
+ return o instanceof UInt64 && this.value.equals(((UInt64) o).value);
+ }
+ public int hashCode()
+ {
+ return value.hashCode();
+ }
+ /** Compare two UInt32s.
+ * @return 0 if equal, -ve or +ve if they are different.
+ */
+ public int compareTo(UInt64 other)
+ {
+ return this.value.compareTo(other.value);
+ }
+ /** The value of this as a string. */
+ public String toString()
+ {
+ return value.toString();
+ }
+ /**
+ * Most significant 4 bytes.
+ */
+ public long top()
+ {
+ return top;
+ }
+ /**
+ * Least significant 4 bytes.
+ */
+ public long bottom()
+ {
+ return bottom;
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Variant.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Variant.java
new file mode 100755
index 0000000..621296a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/Variant.java
@@ -0,0 +1,112 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.lang.reflect.Type;
+import java.text.MessageFormat;
+import java.util.Vector;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+import cx.ath.matthew.debug.Debug;
+
+/**
+ * A Wrapper class for Variant values.
+ * A method on DBus can send or receive a Variant.
+ * This will wrap another value whose type is determined at runtime.
+ * The Variant may be parameterized to restrict the types it may accept.
+ */
+public class Variant<T>
+{
+ private final T o;
+ private final Type type;
+ private final String sig;
+ /**
+ * Create a Variant from a basic type object.
+ * @param o The wrapped value.
+ * @throws IllegalArugmentException If you try and wrap Null or an object of a non-basic type.
+ */
+ public Variant(T o) throws IllegalArgumentException
+ {
+ if (null == o) throw new IllegalArgumentException(_("Can't wrap Null in a Variant"));
+ type = o.getClass();
+ try {
+ String[] ss = Marshalling.getDBusType(o.getClass(), true);
+ if (ss.length != 1)
+ throw new IllegalArgumentException(_("Can't wrap a multi-valued type in a Variant: ")+type);
+ this.sig = ss[0];
+ } catch (DBusException DBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ throw new IllegalArgumentException(MessageFormat.format(_("Can't wrap {0} in an unqualified Variant ({1})."), new Object[] { o.getClass(), DBe.getMessage() }));
+ }
+ this.o = o;
+ }
+ /**
+ * Create a Variant.
+ * @param o The wrapped value.
+ * @param type The explicit type of the value.
+ * @throws IllegalArugmentException If you try and wrap Null or an object which cannot be sent over DBus.
+ */
+ public Variant(T o, Type type) throws IllegalArgumentException
+ {
+ if (null == o) throw new IllegalArgumentException(_("Can't wrap Null in a Variant"));
+ this.type = type;
+ try {
+ String[] ss = Marshalling.getDBusType(type);
+ if (ss.length != 1)
+ throw new IllegalArgumentException(_("Can't wrap a multi-valued type in a Variant: ")+type);
+ this.sig = ss[0];
+ } catch (DBusException DBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ throw new IllegalArgumentException(MessageFormat.format(_("Can't wrap {0} in an unqualified Variant ({1})."), new Object[] { type, DBe.getMessage() }));
+ }
+ this.o = o;
+ }
+ /**
+ * Create a Variant.
+ * @param o The wrapped value.
+ * @param sig The explicit type of the value, as a dbus type string.
+ * @throws IllegalArugmentException If you try and wrap Null or an object which cannot be sent over DBus.
+ */
+ public Variant(T o, String sig) throws IllegalArgumentException
+ {
+ if (null == o) throw new IllegalArgumentException(_("Can't wrap Null in a Variant"));
+ this.sig = sig;
+ try {
+ Vector<Type> ts = new Vector<Type>();
+ Marshalling.getJavaType(sig, ts,1);
+ if (ts.size() != 1)
+ throw new IllegalArgumentException(_("Can't wrap multiple or no types in a Variant: ")+sig);
+ this.type = ts.get(0);
+ } catch (DBusException DBe) {
+ if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
+ throw new IllegalArgumentException(MessageFormat.format(_("Can't wrap {0} in an unqualified Variant ({1})."), new Object[] { sig, DBe.getMessage() }));
+ }
+ this.o = o;
+ }
+ /** Return the wrapped value. */
+ public T getValue() { return o; }
+ /** Return the type of the wrapped value. */
+ public Type getType() { return type; }
+ /** Return the dbus signature of the wrapped value. */
+ public String getSig() { return sig; }
+ /** Format the Variant as a string. */
+ public String toString() { return "["+o+"]"; }
+ /** Compare this Variant with another by comparing contents */
+ @SuppressWarnings("unchecked")
+ public boolean equals(Object other)
+ {
+ if (null == other) return false;
+ if (!(other instanceof Variant)) return false;
+ return this.o.equals(((Variant<? extends Object>)other).o);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/Caller.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/Caller.java
new file mode 100755
index 0000000..ecd6002
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/Caller.java
@@ -0,0 +1,83 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.Vector;
+import java.io.File;
+import org.freedesktop.dbus.BusAddress;
+import org.freedesktop.dbus.Error;
+import org.freedesktop.dbus.Marshalling;
+import org.freedesktop.dbus.Message;
+import org.freedesktop.dbus.MethodCall;
+import org.freedesktop.dbus.Transport;
+import cx.ath.matthew.debug.Debug;
+
+public class Caller
+{
+ @SuppressWarnings("unchecked")
+ public static void main(String[] args)
+ {
+ try {
+ if (Debug.debug) {
+ Debug.setHexDump(true);
+ Debug.loadConfig(new File("debug.conf"));
+ }
+ if (args.length < 4) {
+ System.out.println ("Syntax: Caller <dest> <path> <interface> <method> [<sig> <args>]");
+ System.exit(1);
+ }
+ String addr = System.getenv("DBUS_SESSION_BUS_ADDRESS");
+ BusAddress address = new BusAddress(addr);
+ Transport conn = new Transport(address);
+
+ Message m = new MethodCall("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "Hello", (byte) 0, null);;
+ conn.mout.writeMessage(m);
+
+ if ("".equals(args[2])) args[2] = null;
+ if (args.length == 4)
+ m = new MethodCall(args[0], args[1], args[2], args[3], (byte) 0, null);
+ else {
+ Vector<Type> lts = new Vector<Type>();
+ Marshalling.getJavaType(args[4],lts, -1);
+ Type[] ts = lts.toArray(new Type[0]);
+ Object[] os = new Object[args.length-5];
+ for (int i = 5; i < args.length; i++) {
+ if (ts[i-5] instanceof Class) {
+ try {
+ Constructor c = ((Class) ts[i-5]).getConstructor(String.class);
+ os[i-5] = c.newInstance(args[i]);
+ } catch (Exception e) {
+ os[i-5] = args[i];
+ }
+ } else
+ os[i-5] = args[i];
+ }
+ m = new MethodCall(args[0], args[1], args[2], args[3], (byte) 0, args[4], os);
+ }
+ long serial = m.getSerial();
+ conn.mout.writeMessage(m);
+ do {
+ m = conn.min.readMessage();
+ } while (serial != m.getReplySerial());
+ if (m instanceof Error) ((Error) m).throwException();
+ else {
+ Object[] os = m.getParameters();
+ System.out.println(Arrays.deepToString(os));
+ }
+ } catch (Exception e) {
+ System.out.println (e.getClass().getSimpleName()+": "+e.getMessage());
+ System.exit(1);
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/CreateInterface.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/CreateInterface.java
new file mode 100755
index 0000000..18769f9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/CreateInterface.java
@@ -0,0 +1,711 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import static org.freedesktop.dbus.Gettext._;
+import static org.freedesktop.dbus.bin.IdentifierMangler.mangle;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintStream;
+import java.io.Reader;
+import java.io.StringReader;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.Marshalling;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.types.DBusStructType;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+/**
+ * Converts a DBus XML file into Java interface definitions.
+ */
+public class CreateInterface
+{
+ @SuppressWarnings("unchecked")
+ private static String collapseType(Type t, Set<String> imports, Map<StructStruct, Type[]> structs, boolean container, boolean fullnames) throws DBusException
+ {
+ if (t instanceof ParameterizedType) {
+ String s;
+ Class<? extends Object> c = (Class<? extends Object>) ((ParameterizedType) t).getRawType();
+ if (null != structs && t instanceof DBusStructType) {
+ int num = 1;
+ String name = "Struct";
+ while (null != structs.get(new StructStruct(name+num))) num++;
+ name = name+num;
+ structs.put(new StructStruct(name), ((ParameterizedType) t).getActualTypeArguments());
+ return name;
+ }
+ if (null != imports) imports.add(c.getName());
+ if (fullnames) return c.getName();
+ else s = c.getSimpleName();
+ s += '<';
+ Type[] ts = ((ParameterizedType) t).getActualTypeArguments();
+ for (Type st: ts)
+ s += collapseType(st, imports, structs, true, fullnames)+',';
+ s = s.replaceAll(",$", ">");
+ return s;
+ } else if (t instanceof Class) {
+ Class<? extends Object> c = (Class<? extends Object>) t;
+ if (c.isArray()) {
+ return collapseType(c.getComponentType(), imports, structs, container, fullnames)+"[]";
+ } else {
+ Package p = c.getPackage();
+ if (null != imports &&
+ !"java.lang".equals(p.getName())) imports.add(c.getName());
+ if (container) {
+ if (fullnames) return c.getName();
+ else return c.getSimpleName();
+ } else {
+ try {
+ Field f = c.getField("TYPE");
+ Class<? extends Object> d = (Class<? extends Object>) f.get(c);
+ return d.getSimpleName();
+ } catch (Exception e) {
+ return c.getSimpleName();
+ }
+ }
+ }
+ } else return "";
+ }
+ private static String getJavaType(String dbus, Set<String> imports, Map<StructStruct,Type[]> structs, boolean container, boolean fullnames) throws DBusException
+ {
+ if (null == dbus || "".equals(dbus)) return "";
+ Vector<Type> v = new Vector<Type>();
+ int c = Marshalling.getJavaType(dbus, v, 1);
+ Type t = v.get(0);
+ return collapseType(t, imports, structs, container, fullnames);
+ }
+ public String comment = "";
+ boolean builtin;
+
+ public CreateInterface(PrintStreamFactory factory, boolean builtin)
+ {
+ this.factory = factory;
+ this.builtin = builtin;
+ }
+ @SuppressWarnings("fallthrough")
+ String parseReturns(Vector<Element> out, Set<String> imports, Map<String,Integer> tuples, Map<StructStruct, Type[]> structs) throws DBusException
+ {
+ String[] names = new String[] { "Pair", "Triplet", "Quad", "Quintuple", "Sextuple", "Septuple" };
+ String sig = "";
+ String name = null;
+ switch (out.size()) {
+ case 0:
+ sig += "void ";
+ break;
+ case 1:
+ sig += getJavaType(out.get(0).getAttribute("type"), imports, structs, false, false)+" ";
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ name = names[out.size() - 2];
+ default:
+ if (null == name)
+ name = "NTuple"+out.size();
+
+ tuples.put(name, out.size());
+ sig += name + "<";
+ for (Element arg: out)
+ sig += getJavaType(arg.getAttribute("type"), imports, structs, true, false)+", ";
+ sig = sig.replaceAll(", $","> ");
+ break;
+ }
+ return sig;
+ }
+ String parseMethod(Element meth, Set<String> imports, Map<String,Integer> tuples, Map<StructStruct, Type[]> structs, Set<String> exceptions, Set<String> anns) throws DBusException
+ {
+ Vector<Element> in = new Vector<Element>();
+ Vector<Element> out = new Vector<Element>();
+ if (null == meth.getAttribute("name") ||
+ "".equals(meth.getAttribute("name"))) {
+ System.err.println(_("ERROR: Method name was blank, failed"));
+ System.exit(1);
+ }
+ String annotations = "";
+ String throwses = null;
+
+ for (Node a: new IterableNodeList(meth.getChildNodes())) {
+
+ if (Node.ELEMENT_NODE != a.getNodeType()) continue;
+
+ checkNode(a, "arg", "annotation");
+
+ if ("arg".equals(a.getNodeName())) {
+ Element arg = (Element) a;
+
+ // methods default to in
+ if ("out".equals(arg.getAttribute("direction")))
+ out.add(arg);
+ else
+ in.add(arg);
+ }
+ else if ("annotation".equals(a.getNodeName())) {
+ Element e = (Element) a;
+ if (e.getAttribute("name").equals("org.freedesktop.DBus.Method.Error")) {
+ if (null == throwses)
+ throwses = e.getAttribute("value");
+ else
+ throwses += ", " + e.getAttribute("value");
+ exceptions.add(e.getAttribute("value"));
+ } else
+ annotations += parseAnnotation(e, imports, anns);
+ }
+ }
+
+ String sig = "";
+ comment = "";
+ sig += parseReturns(out, imports, tuples, structs);
+
+ sig += mangle(meth.getAttribute("name"))+"(";
+
+ char defaultname = 'a';
+ String params = "";
+ for (Element arg: in) {
+ String type = getJavaType(arg.getAttribute("type"), imports, structs, false, false);
+ String name = arg.getAttribute("name");
+ if (null == name || "".equals(name)) name = ""+(defaultname++);
+ params += type+" "+mangle(name)+", ";
+ }
+ return ("".equals(comment) ? "" : " /**\n" + comment + " */\n")
+ + annotations + " public " + sig +
+ params.replaceAll("..$", "")+")"+
+ (null == throwses? "": " throws "+throwses)+";";
+ }
+ String parseSignal(Element signal, Set<String> imports, Map<StructStruct, Type[]> structs, Set<String> anns) throws DBusException
+ {
+ Map<String, String> params = new HashMap<String, String>();
+ Vector<String> porder = new Vector<String>();
+ char defaultname = 'a';
+ imports.add("org.freedesktop.dbus.DBusSignal");
+ imports.add("org.freedesktop.dbus.exceptions.DBusException");
+ String annotations = "";
+ for (Node a: new IterableNodeList(signal.getChildNodes())) {
+
+ if (Node.ELEMENT_NODE != a.getNodeType()) continue;
+
+ checkNode(a, "arg", "annotation");
+
+ if ("annotation".equals(a.getNodeName()))
+ annotations += parseAnnotation((Element) a, imports, anns);
+ else {
+ Element arg = (Element) a;
+ String type = getJavaType(arg.getAttribute("type"), imports, structs, false, false);
+ String name = arg.getAttribute("name");
+ if (null == name || "".equals(name)) name = ""+(defaultname++);
+ params.put(mangle(name), type);
+ porder.add(mangle(name));
+ }
+ }
+
+ String out = "";
+ out += annotations;
+ out += " public static class "+signal.getAttribute("name");
+ out += " extends DBusSignal\n {\n";
+ for (String name: porder)
+ out += " public final "+params.get(name)+" "+name+";\n";
+ out += " public "+signal.getAttribute("name")+"(String path";
+ for (String name: porder)
+ out += ", "+params.get(name)+" "+name;
+ out += ") throws DBusException\n {\n super(path";
+ for (String name: porder)
+ out += ", "+name;
+ out += ");\n";
+ for (String name: porder)
+ out += " this."+name+" = "+name+";\n";
+ out += " }\n";
+
+ out += " }\n";
+ return out;
+ }
+
+ String parseAnnotation(Element ann, Set<String> imports, Set<String> annotations)
+ {
+ String s = " @"+ann.getAttribute("name").replaceAll(".*\\.([^.]*)$","$1")+"(";
+ if (null != ann.getAttribute("value")
+ && !"".equals(ann.getAttribute("value")))
+ s += '"'+ann.getAttribute("value")+'"';
+ imports.add(ann.getAttribute("name"));
+ annotations.add(ann.getAttribute("name"));
+ return s += ")\n";
+ }
+
+ void parseInterface(Element iface, PrintStream out, Map<String,Integer> tuples, Map<StructStruct, Type[]> structs, Set<String> exceptions, Set<String> anns) throws DBusException
+ {
+ if (null == iface.getAttribute("name") ||
+ "".equals(iface.getAttribute("name"))) {
+ System.err.println(_("ERROR: Interface name was blank, failed"));
+ System.exit(1);
+ }
+
+ out.println("package "+iface.getAttribute("name").replaceAll("\\.[^.]*$","")+";");
+
+ String methods = "";
+ String signals = "";
+ String annotations = "";
+ Set<String> imports = new TreeSet<String>();
+ imports.add("org.freedesktop.dbus.DBusInterface");
+ for (Node meth: new IterableNodeList(iface.getChildNodes())) {
+
+ if (Node.ELEMENT_NODE != meth.getNodeType()) continue;
+
+ checkNode(meth, "method", "signal", "property", "annotation");
+
+ if ("method".equals(meth.getNodeName()))
+ methods += parseMethod((Element) meth, imports, tuples, structs, exceptions, anns) + "\n";
+ else if ("signal".equals(meth.getNodeName()))
+ signals += parseSignal((Element) meth, imports, structs, anns);
+ else if ("property".equals(meth.getNodeName()))
+ System.err.println("WARNING: Ignoring property");
+ else if ("annotation".equals(meth.getNodeName()))
+ annotations += parseAnnotation((Element) meth, imports, anns);
+ }
+
+ if (imports.size() > 0)
+ for (String i: imports)
+ out.println("import "+i+";");
+
+ out.print(annotations);
+ out.print("public interface "+iface.getAttribute("name").replaceAll("^.*\\.([^.]*)$","$1"));
+ out.println(" extends DBusInterface");
+ out.println("{");
+ out.println(signals);
+ out.println(methods);
+ out.println("}");
+ }
+ void createException(String name, String pack, PrintStream out) throws DBusException
+ {
+ out.println("package "+pack+";");
+ out.println("import org.freedesktop.dbus.DBusExecutionException;");
+ out.print("public class "+name);
+ out.println(" extends DBusExecutionException");
+ out.println("{");
+ out.println(" public "+name+"(String message)");
+ out.println(" {");
+ out.println(" super(message);");
+ out.println(" }");
+ out.println("}");
+ }
+ void createAnnotation(String name, String pack, PrintStream out) throws DBusException
+ {
+ out.println("package "+pack+";");
+ out.println("import java.lang.annotation.Retention;");
+ out.println("import java.lang.annotation.RetentionPolicy;");
+ out.println("@Retention(RetentionPolicy.RUNTIME)");
+ out.println("public @interface "+name);
+ out.println("{");
+ out.println(" String value();");
+ out.println("}");
+ }
+ void createStruct(String name, Type[] type, String pack, PrintStream out, Map<StructStruct, Type[]> existing) throws DBusException, IOException
+ {
+ out.println("package "+pack+";");
+
+ Set<String> imports = new TreeSet<String>();
+ imports.add("org.freedesktop.dbus.Position");
+ imports.add("org.freedesktop.dbus.Struct");
+ Map<StructStruct, Type[]> structs = new HashMap<StructStruct, Type[]>(existing);
+ String[] types = new String[type.length];
+ for (int i = 0; i < type.length; i++)
+ types[i] = collapseType(type[i], imports, structs, false, false);
+
+ for (String im: imports) out.println("import "+im+";");
+
+ out.println("public final class "+name+" extends Struct");
+ out.println("{");
+ int i = 0;
+ char c = 'a';
+ String params = "";
+ for (String t: types) {
+ out.println(" @Position("+i++ +")");
+ out.println(" public final "+t+" "+c+";");
+ params += t+" "+c+", ";
+ c++;
+ }
+ out.println(" public "+name+"("+params.replaceAll("..$", "")+")");
+ out.println(" {");
+ for (char d = 'a'; d < c; d++)
+ out.println(" this."+d+" = "+d+";");
+
+ out.println(" }");
+ out.println("}");
+
+ structs = StructStruct.fillPackages(structs, pack);
+ Map<StructStruct, Type[]> tocreate = new HashMap<StructStruct, Type[]>(structs);
+ for (StructStruct ss: existing.keySet()) tocreate.remove(ss);
+ createStructs(tocreate, structs);
+ }
+ void createTuple(String name, int num, String pack, PrintStream out) throws DBusException
+ {
+ out.println("package "+pack+";");
+ out.println("import org.freedesktop.dbus.Position;");
+ out.println("import org.freedesktop.dbus.Tuple;");
+ out.println("/** Just a typed container class */");
+ out.print("public final class "+name);
+ String types = " <";
+ for (char v = 'A'; v < 'A'+num; v++)
+ types += v + ",";
+ out.print(types.replaceAll(",$","> "));
+ out.println("extends Tuple");
+ out.println("{");
+
+ char t = 'A';
+ char n = 'a';
+ for (int i = 0; i < num; i++,t++,n++) {
+ out.println(" @Position("+i+")");
+ out.println(" public final "+t+" "+n+";");
+ }
+
+ out.print(" public "+name+"(");
+ String sig = "";
+ t = 'A';
+ n = 'a';
+ for (int i = 0; i < num; i++,t++,n++)
+ sig += t+" "+n+", ";
+ out.println(sig.replaceAll(", $", ")"));
+ out.println(" {");
+ for (char v = 'a'; v < 'a'+num; v++)
+ out.println(" this."+v+" = "+v+";");
+ out.println(" }");
+
+ out.println("}");
+ }
+ void parseRoot(Element root) throws DBusException, IOException
+ {
+ Map<StructStruct, Type[]> structs = new HashMap<StructStruct, Type[]>();
+ Set<String> exceptions = new TreeSet<String>();
+ Set<String> annotations = new TreeSet<String>();
+
+ for (Node iface: new IterableNodeList(root.getChildNodes())) {
+
+ if (Node.ELEMENT_NODE != iface.getNodeType()) continue;
+
+ checkNode(iface, "interface", "node");
+
+ if ("interface".equals(iface.getNodeName())) {
+
+ Map<String, Integer> tuples = new HashMap<String, Integer>();
+ String name = ((Element) iface).getAttribute("name");
+ String file = name.replaceAll("\\.","/")+".java";
+ String path = file.replaceAll("/[^/]*$", "");
+ String pack = name.replaceAll("\\.[^.]*$","");
+
+ // don't create interfaces in org.freedesktop.DBus by default
+ if (pack.startsWith("org.freedesktop.DBus") && !builtin) continue;
+
+ factory.init(file, path);
+ parseInterface((Element) iface,
+ factory.createPrintStream(file), tuples, structs, exceptions, annotations);
+
+ structs = StructStruct.fillPackages(structs, pack);
+ createTuples(tuples, pack);
+ }
+ else if ("node".equals(iface.getNodeName()))
+ parseRoot((Element) iface);
+ else {
+ System.err.println(_("ERROR: Unknown node: ")+iface.getNodeName());
+ System.exit(1);
+ }
+ }
+
+ createStructs(structs, structs);
+ createExceptions(exceptions);
+ createAnnotations(annotations);
+ }
+ private void createAnnotations(Set<String> annotations) throws DBusException, IOException
+ {
+ for (String fqn: annotations) {
+ String name = fqn.replaceAll("^.*\\.([^.]*)$", "$1");
+ String pack = fqn.replaceAll("\\.[^.]*$","");
+ // don't create things in org.freedesktop.DBus by default
+ if (pack.startsWith("org.freedesktop.DBus") && !builtin)
+ continue;
+ String path = pack.replaceAll("\\.", "/");
+ String file = name.replaceAll("\\.","/")+".java";
+ factory.init(file, path);
+ createAnnotation(name, pack,
+ factory.createPrintStream(path, name));
+ }
+ }
+ private void createExceptions(Set<String> exceptions) throws DBusException, IOException
+ {
+ for (String fqn: exceptions) {
+ String name = fqn.replaceAll("^.*\\.([^.]*)$", "$1");
+ String pack = fqn.replaceAll("\\.[^.]*$","");
+ // don't create things in org.freedesktop.DBus by default
+ if (pack.startsWith("org.freedesktop.DBus") && !builtin)
+ continue;
+ String path = pack.replaceAll("\\.", "/");
+ String file = name.replaceAll("\\.","/")+".java";
+ factory.init(file, path);
+ createException(name, pack,
+ factory.createPrintStream(path, name));
+ }
+ }
+ private void createStructs(Map<StructStruct, Type[]> structs, Map<StructStruct, Type[]> existing) throws DBusException, IOException
+ {
+ for (StructStruct ss: structs.keySet()) {
+ String file = ss.name.replaceAll("\\.","/")+".java";
+ String path = ss.pack.replaceAll("\\.", "/");
+ factory.init(file, path);
+ createStruct(ss.name, structs.get(ss), ss.pack,
+ factory.createPrintStream(path, ss.name), existing);
+ }
+ }
+
+ private void createTuples(Map<String, Integer> typeMap, String pack) throws DBusException, IOException
+ {
+ for (String tname: typeMap.keySet())
+ createTuple(tname, typeMap.get(tname), pack,
+ factory.createPrintStream(pack.replaceAll("\\.","/"), tname));
+ }
+
+ public static abstract class PrintStreamFactory
+ {
+
+ public abstract void init(String file, String path);
+
+ /**
+ * @param path
+ * @param tname
+ * @return PrintStream
+ * @throws IOException
+ */
+ public PrintStream createPrintStream(String path, String tname) throws IOException
+ {
+ final String file = path+"/"+tname+".java";
+ return createPrintStream(file);
+ }
+
+ /**
+ * @param file
+ * @return PrintStream
+ * @throws IOException
+ */
+ public abstract PrintStream createPrintStream(final String file) throws IOException;
+
+ }
+ static class ConsoleStreamFactory extends PrintStreamFactory
+ {
+
+ @Override
+ public
+ void init(String file, String path)
+ {
+ }
+
+ @Override
+ public
+ PrintStream createPrintStream(String file) throws IOException
+ {
+ System.out.println("/* File: "+file+" */");
+ return System.out;
+ }
+
+ public PrintStream createPrintStream(String path, String tname) throws IOException
+ {
+ return super.createPrintStream(path, tname);
+ }
+
+ }
+
+ static class FileStreamFactory extends PrintStreamFactory
+ {
+ public void init(String file, String path)
+ {
+ new File(path).mkdirs();
+ }
+
+
+ /**
+ * @param file
+ * @return
+ * @throws IOException
+ */
+ public PrintStream createPrintStream(final String file) throws IOException
+ {
+ return new PrintStream(new FileOutputStream(file));
+ }
+
+ }
+
+ static void checkNode(Node n, String... names)
+ {
+ String expected = "";
+ for (String name: names) {
+ if (name.equals(n.getNodeName())) return;
+ expected += name + " or ";
+ }
+ System.err.println(MessageFormat.format(_("ERROR: Expected {0}, got {1}, failed."), new Object[] { expected.replaceAll("....$", ""), n.getNodeName() }));
+ System.exit(1);
+ }
+
+ private final PrintStreamFactory factory;
+
+ static class Config
+ {
+ int bus = DBusConnection.SESSION;
+ String busname = null;
+ String object = null;
+ File datafile = null;
+ boolean printtree = false;
+ boolean fileout = false;
+ boolean builtin = false;
+ }
+
+ static void printSyntax()
+ {
+ printSyntax(System.err);
+ }
+ static void printSyntax(PrintStream o)
+ {
+ o.println("Syntax: CreateInterface <options> [file | busname object]");
+ o.println(" Options: --no-ignore-builtin --system -y --session -s --create-files -f --help -h --version -v");
+ }
+ public static void version()
+ {
+ System.out.println("Java D-Bus Version "+System.getProperty("Version"));
+ System.exit(1);
+ }
+
+ static Config parseParams(String[] args)
+ {
+ Config config = new Config();
+ for (String p: args) {
+ if ("--system".equals(p) || "-y".equals(p))
+ config.bus = DBusConnection.SYSTEM;
+ else if ("--session".equals(p) || "-s".equals(p))
+ config.bus = DBusConnection.SESSION;
+ else if ("--no-ignore-builtin".equals(p))
+ config.builtin = true;
+ else if ("--create-files".equals(p) || "-f".equals(p))
+ config.fileout = true;
+ else if ("--print-tree".equals(p) || "-p".equals(p))
+ config.printtree = true;
+ else if ("--help".equals(p) || "-h".equals(p)) {
+ printSyntax(System.out);
+ System.exit(0);
+ } else if ("--version".equals(p) || "-v".equals(p)) {
+ version();
+ System.exit(0);
+ } else if (p.startsWith("-")) {
+ System.err.println(_("ERROR: Unknown option: ")+p);
+ printSyntax();
+ System.exit(1);
+ }
+ else {
+ if (null == config.busname) config.busname = p;
+ else if (null == config.object) config.object = p;
+ else {
+ printSyntax();
+ System.exit(1);
+ }
+ }
+ }
+ if (null == config.busname) {
+ printSyntax();
+ System.exit(1);
+ }
+ else if (null == config.object) {
+ config.datafile = new File(config.busname);
+ config.busname = null;
+ }
+ return config;
+ }
+
+ public static void main(String[] args) throws Exception
+ {
+ Config config = parseParams(args);
+
+ Reader introspectdata = null;
+
+ if (null != config.busname) try {
+ DBusConnection conn = DBusConnection.getConnection(config.bus);
+ Introspectable in = conn.getRemoteObject(config.busname, config.object, Introspectable.class);
+ String id = in.Introspect();
+ if (null == id) {
+ System.err.println(_("ERROR: Failed to get introspection data"));
+ System.exit(1);
+ }
+ introspectdata = new StringReader(id);
+ conn.disconnect();
+ } catch (DBusException DBe) {
+ System.err.println(_("ERROR: Failure in DBus Communications: ")+DBe.getMessage());
+ System.exit(1);
+ } catch (DBusExecutionException DEe) {
+ System.err.println(_("ERROR: Failure in DBus Communications: ")+DEe.getMessage());
+ System.exit(1);
+
+ } else if (null != config.datafile) try {
+ introspectdata = new InputStreamReader(new FileInputStream(config.datafile));
+ } catch (FileNotFoundException FNFe) {
+ System.err.println(_("ERROR: Could not find introspection file: ")+FNFe.getMessage());
+ System.exit(1);
+ }
+ try {
+ PrintStreamFactory factory = config.fileout ? new FileStreamFactory() : new ConsoleStreamFactory();
+ CreateInterface createInterface = new CreateInterface(factory, config.builtin);
+ createInterface.createInterface(introspectdata);
+ } catch (DBusException DBe) {
+ System.err.println("ERROR: "+DBe.getMessage());
+ System.exit(1);
+ }
+ }
+ /** Output the interface for the supplied xml reader
+ * @param introspectdata The introspect data reader
+ * @throws ParserConfigurationException If the xml parser could not be configured
+ * @throws SAXException If a problem occurs reading the xml data
+ * @throws IOException If an IO error occurs
+ * @throws DBusException If the dbus related error occurs
+ */
+ public void createInterface(Reader introspectdata) throws ParserConfigurationException, SAXException, IOException, DBusException
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document document = builder.parse(new InputSource(introspectdata));
+
+ Element root = document.getDocumentElement();
+ checkNode(root, "node");
+ parseRoot(root);
+
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/DBusDaemon.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/DBusDaemon.java
new file mode 100755
index 0000000..1ecd77a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/DBusDaemon.java
@@ -0,0 +1,878 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.AbstractConnection;
+import org.freedesktop.dbus.BusAddress;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.DirectConnection;
+import org.freedesktop.dbus.Error;
+import org.freedesktop.dbus.Marshalling;
+import org.freedesktop.dbus.Message;
+import org.freedesktop.dbus.MessageReader;
+import org.freedesktop.dbus.MessageWriter;
+import org.freedesktop.dbus.MethodCall;
+import org.freedesktop.dbus.MethodReturn;
+import org.freedesktop.dbus.Transport;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.exceptions.FatalException;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.InvocationTargetException;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import cx.ath.matthew.debug.Debug;
+import cx.ath.matthew.unix.UnixServerSocket;
+import cx.ath.matthew.unix.UnixSocket;
+import cx.ath.matthew.unix.UnixSocketAddress;
+
+/**
+ * A replacement DBusDaemon
+ */
+public class DBusDaemon extends Thread
+{
+ public static final int QUEUE_POLL_WAIT = 500;
+ static class Connstruct
+ {
+ public UnixSocket usock;
+ public Socket tsock;
+ public MessageReader min;
+ public MessageWriter mout;
+ public String unique;
+ public Connstruct(UnixSocket sock)
+ {
+ this.usock = sock;
+ min = new MessageReader(sock.getInputStream());
+ mout = new MessageWriter(sock.getOutputStream());
+ }
+ public Connstruct(Socket sock) throws IOException
+ {
+ this.tsock = sock;
+ min = new MessageReader(sock.getInputStream());
+ mout = new MessageWriter(sock.getOutputStream());
+ }
+ public String toString()
+ {
+ return null == unique ? ":?-?" : unique;
+ }
+ }
+ static class MagicMap<A, B>
+ {
+ private Map<A, LinkedList<B>> m;
+ private LinkedList<A> q;
+ private String name;
+ public MagicMap(String name)
+ {
+ m = new HashMap<A, LinkedList<B>>();
+ q = new LinkedList<A>();
+ this.name = name;
+ }
+ public A head()
+ {
+ return q.getFirst();
+ }
+ public void putFirst(A a, B b)
+ {
+ if (Debug.debug) Debug.print("<"+name+"> Queueing {"+a+" => "+b+"}");
+ if (m.containsKey(a))
+ m.get(a).add(b);
+ else {
+ LinkedList<B> l = new LinkedList<B>();
+ l.add(b);
+ m.put(a, l);
+ }
+ q.addFirst(a);
+ }
+ public void putLast(A a, B b)
+ {
+ if (Debug.debug) Debug.print("<"+name+"> Queueing {"+a+" => "+b+"}");
+ if (m.containsKey(a))
+ m.get(a).add(b);
+ else {
+ LinkedList<B> l = new LinkedList<B>();
+ l.add(b);
+ m.put(a, l);
+ }
+ q.addLast(a);
+ }
+ public List<B> remove(A a)
+ {
+ if (Debug.debug) Debug.print("<"+name+"> Removing {"+a+"}");
+ q.remove(a);
+ return m.remove(a);
+ }
+ public int size()
+ {
+ return q.size();
+ }
+ }
+ public class DBusServer extends Thread implements DBus, DBus.Introspectable, DBus.Peer
+ {
+ public DBusServer()
+ {
+ setName("Server");
+ }
+ public Connstruct c;
+ public Message m;
+ public boolean isRemote() { return false; }
+ public String Hello()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ synchronized (c) {
+ if (null != c.unique)
+ throw new org.freedesktop.DBus.Error.AccessDenied(_("Connection has already sent a Hello message"));
+ synchronized (unique_lock) {
+ c.unique = ":1."+(++next_unique);
+ }
+ }
+ synchronized (names) {
+ names.put(c.unique, c);
+ }
+
+ if (Debug.debug) Debug.print(Debug.WARN, "Client "+c.unique+" registered");
+
+ try {
+ send(c, new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameAcquired", "s", c.unique));
+ DBusSignal s = new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameOwnerChanged", "sss", c.unique, "", c.unique);
+ send(null, s);
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return c.unique;
+ }
+ public String[] ListNames()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ String[] ns;
+ synchronized (names) {
+ Set<String> nss = names.keySet();
+ ns = nss.toArray(new String[0]);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return ns;
+ }
+
+ public boolean NameHasOwner(String name)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ boolean rv;
+ synchronized (names) {
+ rv = names.containsKey(name);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return rv;
+ }
+ public String GetNameOwner(String name)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ Connstruct owner = names.get(name);
+ String o;
+ if (null == owner)
+ o = "";
+ else
+ o = owner.unique;
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return o;
+ }
+
+ public UInt32 GetConnectionUnixUser(String connection_name)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new UInt32(0);
+ }
+ public UInt32 StartServiceByName(String name, UInt32 flags)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new UInt32(0);
+ }
+ public UInt32 RequestName(String name, UInt32 flags)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+
+ boolean exists = false;
+ synchronized (names) {
+ if (!(exists = names.containsKey(name)))
+ names.put(name, c);
+ }
+
+ int rv;
+ if (exists) {
+ rv = DBus.DBUS_REQUEST_NAME_REPLY_EXISTS;
+ } else {
+ if (Debug.debug) Debug.print(Debug.WARN, "Client "+c.unique+" acquired name "+name);
+ rv = DBus.DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER;
+ try {
+ send(c, new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameAcquired", "s", name));
+ send(null, new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameOwnerChanged", "sss", name, "", c.unique));
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ }
+ }
+
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new UInt32(rv);
+ }
+
+ public UInt32 ReleaseName(String name)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+
+ boolean exists = false;
+ synchronized (names) {
+ if ((exists = (names.containsKey(name) && names.get(name).equals(c))))
+ names.remove(name);
+ }
+
+ int rv;
+ if (!exists) {
+ rv = DBus.DBUS_RELEASE_NAME_REPLY_NON_EXISTANT;
+ } else {
+ if (Debug.debug) Debug.print(Debug.WARN, "Client "+c.unique+" acquired name "+name);
+ rv = DBus.DBUS_RELEASE_NAME_REPLY_RELEASED;
+ try {
+ send(c, new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameLost", "s", name));
+ send(null, new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameOwnerChanged", "sss", name, c.unique, ""));
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ }
+ }
+
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new UInt32(rv);
+ }
+ public void AddMatch(String matchrule) throws Error.MatchRuleInvalid
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Adding match rule: "+matchrule);
+ synchronized (sigrecips) {
+ if (!sigrecips.contains(c))
+ sigrecips.add(c);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return;
+ }
+ public void RemoveMatch(String matchrule) throws Error.MatchRuleInvalid
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Removing match rule: "+matchrule);
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return;
+ }
+ public String[] ListQueuedOwners(String name)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new String[0];
+ }
+ public UInt32 GetConnectionUnixProcessID(String connection_name)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new UInt32(0);
+ }
+ public Byte[] GetConnectionSELinuxSecurityContext(String a)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return new Byte[0];
+ }
+ public void ReloadConfig()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return;
+ }
+ @SuppressWarnings("unchecked")
+ private void handleMessage(Connstruct c, Message m) throws DBusException
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Handling message "+m+" from "+c.unique);
+ if (!(m instanceof MethodCall)) return;
+ Object[] args = m.getParameters();
+
+ Class<? extends Object>[] cs = new Class[args.length];
+
+ for (int i = 0; i < cs.length; i++)
+ cs[i] = args[i].getClass();
+
+ java.lang.reflect.Method meth = null;
+ Object rv = null;
+
+ try {
+ meth = DBusServer.class.getMethod(m.getName(), cs);
+ try {
+ this.c = c;
+ this.m = m;
+ rv = meth.invoke(dbus_server, args);
+ if (null == rv) {
+ send(c, new MethodReturn("org.freedesktop.DBus", (MethodCall) m, null), true);
+ } else {
+ String sig = Marshalling.getDBusType(meth.getGenericReturnType())[0];
+ send(c, new MethodReturn("org.freedesktop.DBus", (MethodCall) m, sig, rv), true);
+ }
+ } catch (InvocationTargetException ITe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, ITe);
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, ITe.getCause());
+ send(c, new org.freedesktop.dbus.Error("org.freedesktop.DBus", m, ITe.getCause()));
+ } catch (DBusExecutionException DBEe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBEe);
+ send(c, new org.freedesktop.dbus.Error("org.freedesktop.DBus", m, DBEe));
+ } catch (Exception e) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, e);
+ send(c,new org.freedesktop.dbus.Error("org.freedesktop.DBus", c.unique, "org.freedesktop.DBus.Error.GeneralError", m.getSerial(), "s", _("An error occurred while calling ")+m.getName()));
+ }
+ } catch (NoSuchMethodException NSMe) {
+ send(c,new org.freedesktop.dbus.Error("org.freedesktop.DBus", c.unique, "org.freedesktop.DBus.Error.UnknownMethod", m.getSerial(), "s", _("This service does not support ")+m.getName()));
+ }
+
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ public String Introspect()
+ {
+ return "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n"+
+ "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n"+
+ "<node>\n"+
+ " <interface name=\"org.freedesktop.DBus.Introspectable\">\n"+
+ " <method name=\"Introspect\">\n"+
+ " <arg name=\"data\" direction=\"out\" type=\"s\"/>\n"+
+ " </method>\n"+
+ " </interface>\n"+
+ " <interface name=\"org.freedesktop.DBus\">\n"+
+ " <method name=\"RequestName\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"in\" type=\"u\"/>\n"+
+ " <arg direction=\"out\" type=\"u\"/>\n"+
+ " </method>\n"+
+ " <method name=\"ReleaseName\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"u\"/>\n"+
+ " </method>\n"+
+ " <method name=\"StartServiceByName\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"in\" type=\"u\"/>\n"+
+ " <arg direction=\"out\" type=\"u\"/>\n"+
+ " </method>\n"+
+ " <method name=\"Hello\">\n"+
+ " <arg direction=\"out\" type=\"s\"/>\n"+
+ " </method>\n"+
+ " <method name=\"NameHasOwner\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"b\"/>\n"+
+ " </method>\n"+
+ " <method name=\"ListNames\">\n"+
+ " <arg direction=\"out\" type=\"as\"/>\n"+
+ " </method>\n"+
+ " <method name=\"ListActivatableNames\">\n"+
+ " <arg direction=\"out\" type=\"as\"/>\n"+
+ " </method>\n"+
+ " <method name=\"AddMatch\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " </method>\n"+
+ " <method name=\"RemoveMatch\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " </method>\n"+
+ " <method name=\"GetNameOwner\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"s\"/>\n"+
+ " </method>\n"+
+ " <method name=\"ListQueuedOwners\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"as\"/>\n"+
+ " </method>\n"+
+ " <method name=\"GetConnectionUnixUser\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"u\"/>\n"+
+ " </method>\n"+
+ " <method name=\"GetConnectionUnixProcessID\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"u\"/>\n"+
+ " </method>\n"+
+ " <method name=\"GetConnectionSELinuxSecurityContext\">\n"+
+ " <arg direction=\"in\" type=\"s\"/>\n"+
+ " <arg direction=\"out\" type=\"ay\"/>\n"+
+ " </method>\n"+
+ " <method name=\"ReloadConfig\">\n"+
+ " </method>\n"+
+ " <signal name=\"NameOwnerChanged\">\n"+
+ " <arg type=\"s\"/>\n"+
+ " <arg type=\"s\"/>\n"+
+ " <arg type=\"s\"/>\n"+
+ " </signal>\n"+
+ " <signal name=\"NameLost\">\n"+
+ " <arg type=\"s\"/>\n"+
+ " </signal>\n"+
+ " <signal name=\"NameAcquired\">\n"+
+ " <arg type=\"s\"/>\n"+
+ " </signal>\n"+
+ " </interface>\n"+
+ "</node>";
+ }
+ public void Ping() {}
+
+ public void run()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ while (_run) {
+ Message m;
+ List<WeakReference<Connstruct>> wcs;
+ // block on outqueue
+ synchronized (localqueue) {
+ while (localqueue.size() == 0) try {
+ localqueue.wait();
+ } catch (InterruptedException Ie) { }
+ m = localqueue.head();
+ wcs = localqueue.remove(m);
+ }
+ if (null != wcs) try {
+ for (WeakReference<Connstruct> wc: wcs) {
+ Connstruct c = wc.get();
+ if (null != c) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "<localqueue> Got message "+m+" from "+c);
+ handleMessage(c, m);
+ }
+ }
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ }
+ else if (Debug.debug) Debug.print(Debug.INFO, "Discarding "+m+" connection reaped");
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ }
+ public class Sender extends Thread
+ {
+ public Sender()
+ {
+ setName("Sender");
+ }
+ public void run()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ while (_run) {
+
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "Acquiring lock on outqueue and blocking for data");
+ Message m = null;
+ List<WeakReference<Connstruct>> wcs = null;
+ // block on outqueue
+ synchronized (outqueue) {
+ while (outqueue.size() == 0) try {
+ outqueue.wait();
+ } catch (InterruptedException Ie) { }
+
+ m = outqueue.head();
+ wcs = outqueue.remove(m);
+ }
+ if (null != wcs) {
+ for (WeakReference<Connstruct> wc: wcs) {
+ Connstruct c = wc.get();
+ if (null != c) {
+ if (Debug.debug) Debug.print(Debug.VERBOSE, "<outqueue> Got message "+m+" for "+c.unique);
+ if (Debug.debug) Debug.print(Debug.INFO, "Sending message "+m+" to "+c.unique);
+ try {
+ c.mout.writeMessage(m);
+ }
+ catch (IOException IOe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, IOe);
+ removeConnection(c);
+ }
+ }
+ }
+ }
+ else if (Debug.debug) Debug.print(Debug.INFO, "Discarding "+m+" connection reaped");
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ }
+ public class Reader extends Thread
+ {
+ private Connstruct conn;
+ private WeakReference<Connstruct> weakconn;
+ private boolean _lrun = true;
+ public Reader(Connstruct conn)
+ {
+ this.conn = conn;
+ weakconn = new WeakReference<Connstruct>(conn);
+ setName("Reader");
+ }
+ public void stopRunning()
+ {
+ _lrun = false;
+ }
+ public void run()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ while (_run && _lrun) {
+
+ Message m = null;
+ try {
+ m = conn.min.readMessage();
+ } catch (IOException IOe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, IOe);
+ removeConnection(conn);
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ if (DBe instanceof FatalException)
+ removeConnection(conn);
+ }
+
+ if (null != m) {
+ if (Debug.debug) Debug.print(Debug.INFO, "Read "+m+" from "+conn.unique);
+ synchronized (inqueue) {
+ inqueue.putLast(m, weakconn);
+ inqueue.notifyAll();
+ }
+ }
+ }
+ conn = null;
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ }
+
+ private Map<Connstruct, Reader> conns = new HashMap<Connstruct, Reader>();
+ private HashMap<String, Connstruct> names = new HashMap<String, Connstruct>();
+ private MagicMap<Message, WeakReference<Connstruct>> outqueue = new MagicMap<Message, WeakReference<Connstruct>>("out");
+ private MagicMap<Message, WeakReference<Connstruct>> inqueue = new MagicMap<Message, WeakReference<Connstruct>>("in");
+ private MagicMap<Message, WeakReference<Connstruct>> localqueue = new MagicMap<Message, WeakReference<Connstruct>>("local");
+ private List<Connstruct> sigrecips = new Vector<Connstruct>();
+ private boolean _run = true;
+ private int next_unique = 0;
+ private Object unique_lock = new Object();
+ DBusServer dbus_server = new DBusServer();
+ Sender sender = new Sender();
+
+ public DBusDaemon()
+ {
+ setName("Daemon");
+ synchronized (names) {
+ names.put("org.freedesktop.DBus", null);
+ }
+ }
+ @SuppressWarnings("unchecked")
+ private void send(Connstruct c, Message m)
+ {
+ send (c, m, false);
+ }
+ private void send(Connstruct c, Message m, boolean head)
+ {
+ if (Debug.debug){
+ Debug.print(Debug.DEBUG, "enter");
+ if (null == c)
+ Debug.print(Debug.VERBOSE, "Queing message "+m+" for all connections");
+ else
+ Debug.print(Debug.VERBOSE, "Queing message "+m+" for "+c.unique);
+ }
+ // send to all connections
+ if (null == c) {
+ synchronized (conns) {
+ synchronized (outqueue) {
+ for (Connstruct d: conns.keySet())
+ if (head)
+ outqueue.putFirst(m, new WeakReference<Connstruct>(d));
+ else
+ outqueue.putLast(m, new WeakReference<Connstruct>(d));
+ outqueue.notifyAll();
+ }
+ }
+ } else {
+ synchronized (outqueue) {
+ if (head)
+ outqueue.putFirst(m, new WeakReference<Connstruct>(c));
+ else
+ outqueue.putLast(m, new WeakReference<Connstruct>(c));
+ outqueue.notifyAll();
+ }
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ @SuppressWarnings("unchecked")
+ private List<Connstruct> findSignalMatches(DBusSignal sig)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ List<Connstruct> l;
+ synchronized (sigrecips) {
+ l = new Vector<Connstruct>(sigrecips);
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ return l;
+ }
+ @SuppressWarnings("unchecked")
+ public void run()
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ while (_run) {
+ try {
+ Message m;
+ List<WeakReference<Connstruct>> wcs;
+ synchronized (inqueue) {
+ while (0 == inqueue.size()) try {
+ inqueue.wait();
+ } catch (InterruptedException Ie) {}
+
+ m = inqueue.head();
+ wcs = inqueue.remove(m);
+ }
+ if (null != wcs) {
+ for (WeakReference<Connstruct> wc: wcs) {
+ Connstruct c = wc.get();
+ if (null != c) {
+ if (Debug.debug) Debug.print(Debug.INFO, "<inqueue> Got message "+m+" from "+c.unique);
+ // check if they have hello'd
+ if (null == c.unique
+ && (!(m instanceof MethodCall)
+ || !"org.freedesktop.DBus".equals(m.getDestination())
+ || !"Hello".equals(m.getName()))) {
+ send(c,new Error("org.freedesktop.DBus", null, "org.freedesktop.DBus.Error.AccessDenied", m.getSerial(), "s", _("You must send a Hello message")));
+ } else {
+ try {
+ if (null != c.unique) m.setSource(c.unique);
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ send(c,new Error("org.freedesktop.DBus", null, "org.freedesktop.DBus.Error.GeneralError", m.getSerial(), "s", _("Sending message failed")));
+ }
+
+ if ("org.freedesktop.DBus".equals(m.getDestination())) {
+ synchronized (localqueue) {
+ localqueue.putLast(m, wc);
+ localqueue.notifyAll();
+ }
+ } else {
+ if (m instanceof DBusSignal) {
+ List<Connstruct> list = findSignalMatches((DBusSignal) m);
+ for (Connstruct d: list)
+ send(d, m);
+ } else {
+ Connstruct dest = names.get(m.getDestination());
+
+ if (null == dest) {
+ send(c, new Error("org.freedesktop.DBus", null, "org.freedesktop.DBus.Error.ServiceUnknown", m.getSerial(), "s", MessageFormat.format(_("The name `{0}' does not exist"), new Object[] { m.getDestination() })));
+ } else
+ send(dest, m);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ }
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ private void removeConnection(Connstruct c)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ boolean exists;
+ synchronized(conns) {
+ if ((exists = conns.containsKey(c))) {
+ Reader r = conns.get(c);
+ r.stopRunning();
+ conns.remove(c);
+ }
+ }
+ if (exists) {
+ try {
+ if (null != c.usock) c.usock.close();
+ if (null != c.tsock) c.tsock.close();
+ } catch (IOException IOe) {}
+ synchronized(names) {
+ List<String> toRemove = new Vector<String>();
+ for (String name: names.keySet())
+ if (names.get(name) == c) {
+ toRemove.add(name);
+ try {
+ send(null, new DBusSignal("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameOwnerChanged", "sss", name, c.unique, ""));
+ } catch (DBusException DBe) {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.ERR, DBe);
+ }
+ }
+ for (String name: toRemove)
+ names.remove(name);
+ }
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ public void addSock(UnixSocket us)
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.WARN, "New Client");
+ Connstruct c = new Connstruct(us);
+ Reader r = new Reader(c);
+ synchronized (conns) {
+ conns.put(c, r);
+ }
+ r.start();
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ public void addSock(Socket s) throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ if (Debug.debug) Debug.print(Debug.WARN, "New Client");
+ Connstruct c = new Connstruct(s);
+ Reader r = new Reader(c);
+ synchronized (conns) {
+ conns.put(c, r);
+ }
+ r.start();
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ public static void syntax()
+ {
+ System.out.println("Syntax: DBusDaemon [--version] [-v] [--help] [-h] [--listen address] [-l address] [--print-address] [-r] [--pidfile file] [-p file] [--addressfile file] [-a file] [--unix] [-u] [--tcp] [-t] ");
+ System.exit(1);
+ }
+ public static void version()
+ {
+ System.out.println("D-Bus Java Version: "+System.getProperty("Version"));
+ System.exit(1);
+ }
+ public static void saveFile(String data, String file) throws IOException
+ {
+ PrintWriter w = new PrintWriter(new FileOutputStream(file));
+ w.println(data);
+ w.close();
+ }
+ public static void main(String args[]) throws Exception
+ {
+ if (Debug.debug && AbstractConnection.EXCEPTION_DEBUG) Debug.print(Debug.DEBUG, "enter");
+ else if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ String addr = null;
+ String pidfile = null;
+ String addrfile = null;
+ boolean printaddress = false;
+ boolean unix = true;
+ boolean tcp = false;
+
+ // parse options
+ try {
+ for (int i=0; i < args.length; i++)
+ if ("--help".equals(args[i]) || "-h".equals(args[i]))
+ syntax();
+ else if ("--version".equals(args[i]) || "-v".equals(args[i]))
+ version();
+ else if ("--listen".equals(args[i]) || "-l".equals(args[i]))
+ addr = args[++i];
+ else if ("--pidfile".equals(args[i]) || "-p".equals(args[i]))
+ pidfile = args[++i];
+ else if ("--addressfile".equals(args[i]) || "-a".equals(args[i]))
+ addrfile = args[++i];
+ else if ("--print-address".equals(args[i]) || "-r".equals(args[i]))
+ printaddress = true;
+ else if ("--unix".equals(args[i]) || "-u".equals(args[i])) {
+ unix = true;
+ tcp = false;
+ } else if ("--tcp".equals(args[i]) || "-t".equals(args[i])) {
+ tcp = true;
+ unix = false;
+ } else syntax();
+ } catch (ArrayIndexOutOfBoundsException AIOOBe) {
+ syntax();
+ }
+
+ // generate a random address if none specified
+ if (null == addr && unix) addr = DirectConnection.createDynamicSession();
+ else if (null == addr && tcp) addr = DirectConnection.createDynamicTCPSession();
+
+ BusAddress address = new BusAddress(addr);
+ if (null == address.getParameter("guid")) {
+ addr += ",guid="+Transport.genGUID();
+ address = new BusAddress(addr);
+ }
+
+ // print address to stdout
+ if (printaddress) System.out.println(addr);
+
+ // print address to file
+ if (null != addrfile) saveFile(addr, addrfile);
+
+ // print PID to file
+ if (null != pidfile) saveFile(System.getProperty("Pid"), pidfile);
+
+ // start the daemon
+ if (Debug.debug) Debug.print(Debug.WARN, "Binding to "+addr);
+ if ("unix".equals(address.getType()))
+ doUnix(address);
+ else if ("tcp".equals(address.getType()))
+ doTCP(address);
+ else throw new Exception("Unknown address type: "+address.getType());
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ private static void doUnix(BusAddress address) throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ UnixServerSocket uss;
+ if (null != address. getParameter("abstract"))
+ uss = new UnixServerSocket(new UnixSocketAddress(address.getParameter("abstract"), true));
+ else
+ uss = new UnixServerSocket(new UnixSocketAddress(address.getParameter("path"), false));
+ DBusDaemon d = new DBusDaemon();
+ d.start();
+ d.sender.start();
+ d.dbus_server.start();
+
+ // accept new connections
+ while (d._run) {
+ UnixSocket s = uss.accept();
+ if ((new Transport.SASL()).auth(Transport.SASL.MODE_SERVER, Transport.SASL.AUTH_EXTERNAL, address.getParameter("guid"), s.getOutputStream(), s.getInputStream(), s)) {
+ // s.setBlocking(false);
+ d.addSock(s);
+ } else
+ s.close();
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+ private static void doTCP(BusAddress address) throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.DEBUG, "enter");
+ ServerSocket ss = new ServerSocket(Integer.parseInt(address.getParameter("port")),10, InetAddress.getByName(address.getParameter("host")));
+ DBusDaemon d = new DBusDaemon();
+ d.start();
+ d.sender.start();
+ d.dbus_server.start();
+
+ // accept new connections
+ while (d._run) {
+ Socket s = ss.accept();
+ boolean authOK=false;
+ try {
+ authOK = (new Transport.SASL()).auth(Transport.SASL.MODE_SERVER, Transport.SASL.AUTH_EXTERNAL, address.getParameter("guid"), s.getOutputStream(), s.getInputStream(), null);
+ } catch (Exception e) {
+ if (Debug.debug) Debug. print(Debug.DEBUG, e);
+ }
+ if (authOK) {
+ d.addSock(s);
+ } else
+ s.close();
+ }
+ if (Debug.debug) Debug.print(Debug.DEBUG, "exit");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IdentifierMangler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IdentifierMangler.java
new file mode 100755
index 0000000..db596f4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IdentifierMangler.java
@@ -0,0 +1,43 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import java.util.Arrays;
+
+/**
+ * Checks identifiers for keywords etc and mangles them if so.
+ */
+public class IdentifierMangler
+{
+ private static String[] keywords;
+ static {
+ keywords = new String[] {
+ "true","false","null",
+ "abstract","continue","for","new","switch",
+ "assert","default","goto","package","synchronized",
+ "boolean","do","if","private","this",
+ "break","double","implements","protected","throw",
+ "byte","else","import","public","throws",
+ "case","enum","instanceof","return","transient",
+ "catch","extends","int","short","try",
+ "char","final","interface","static","void",
+ "class","finally","long","strictfp","volatile",
+ "const","float","native","super","while"
+ };
+ Arrays.sort(keywords);
+ }
+ public static String mangle(String name)
+ {
+ if (Arrays.binarySearch(keywords, name) >= 0)
+ name = "_"+name;
+ return name;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IterableNodeList.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IterableNodeList.java
new file mode 100755
index 0000000..ddd5884
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/IterableNodeList.java
@@ -0,0 +1,29 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import java.util.Iterator;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+class IterableNodeList implements Iterable<Node>
+{
+ private NodeList nl;
+ public IterableNodeList(NodeList nl)
+ {
+ this.nl = nl;
+ }
+ public Iterator<Node> iterator()
+ {
+ return new NodeListIterator(nl);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/ListDBus.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/ListDBus.java
new file mode 100755
index 0000000..93d4ad5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/ListDBus.java
@@ -0,0 +1,74 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+/**
+ * This class lists all the names currently connected on the bus
+ */
+public class ListDBus
+{
+ public static void syntax()
+ {
+ System.out.println("Syntax: ListDBus [--version] [-v] [--help] [-h] [--owners] [-o] [--uids] [-u] [--session] [-s] [--system] [-y]");
+ System.exit(1);
+ }
+ public static void version()
+ {
+ System.out.println("Java D-Bus Version "+System.getProperty("Version"));
+ System.exit(1);
+ }
+ public static void main(String args[]) throws Exception
+ {
+ boolean owners = false;
+ boolean users = false;
+ int connection = DBusConnection.SESSION;
+
+ for (String a: args)
+ if ("--help".equals(a)) syntax();
+ else if ("-h".equals(a)) syntax();
+ else if ("--version".equals(a)) version();
+ else if ("-v".equals(a)) version();
+ else if ("-u".equals(a)) users = true;
+ else if ("--uids".equals(a)) users = true;
+ else if ("-o".equals(a)) owners = true;
+ else if ("--owners".equals(a)) owners = true;
+ else if ("--session".equals(a)) connection = DBusConnection.SESSION;
+ else if ("-s".equals(a)) connection = DBusConnection.SESSION;
+ else if ("--system".equals(a)) connection = DBusConnection.SYSTEM;
+ else if ("-y".equals(a)) connection = DBusConnection.SYSTEM;
+ else syntax();
+
+ DBusConnection conn = DBusConnection.getConnection(connection);
+ DBus dbus = conn.getRemoteObject("org.freedesktop.DBus", "/org/freedesktop/DBus", DBus.class);
+ String[] names = dbus.ListNames();
+ for (String s: names) {
+ if (users)
+ try {
+ System.out.print(dbus.GetConnectionUnixUser(s)+"\t");
+ } catch (DBusExecutionException DBEe) {
+ System.out.print("\t");
+ }
+ System.out.print(s);
+ if (!s.startsWith(":") && owners) {
+ try {
+ System.out.print("\t"+dbus.GetNameOwner(s));
+ } catch (DBusExecutionException DBEe) {
+ }
+ }
+ System.out.println();
+ }
+ conn.disconnect();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/NodeListIterator.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/NodeListIterator.java
new file mode 100755
index 0000000..ea2d23a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/NodeListIterator.java
@@ -0,0 +1,38 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import java.util.Iterator;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+class NodeListIterator implements Iterator<Node>
+{
+ NodeList nl;
+ int i;
+ NodeListIterator(NodeList nl)
+ {
+ this.nl = nl;
+ i = 0;
+ }
+ public boolean hasNext()
+ {
+ return i < nl.getLength();
+ }
+ public Node next()
+ {
+ Node n = nl.item(i);
+ i++;
+ return n;
+ }
+ public void remove() {};
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/StructStruct.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/StructStruct.java
new file mode 100755
index 0000000..f302f6d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/bin/StructStruct.java
@@ -0,0 +1,54 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.bin;
+
+import java.lang.reflect.Type;
+import java.util.Map;
+import java.util.HashMap;
+
+class StructStruct
+{
+ public static Map<StructStruct, Type[]> fillPackages(Map<StructStruct, Type[]> structs, String pack)
+ {
+ Map<StructStruct, Type[]> newmap = new HashMap<StructStruct, Type[]>();
+ for (StructStruct ss: structs.keySet()) {
+ Type[] type = structs.get(ss);
+ if (null == ss.pack) ss.pack = pack;
+ newmap.put(ss, type);
+ }
+ return newmap;
+ }
+ public String name;
+ public String pack;
+ public StructStruct(String name)
+ {
+ this.name = name;
+ }
+ public StructStruct(String name, String pack)
+ {
+ this.name = name;
+ this.pack = pack;
+ }
+ public int hashCode()
+ {
+ return name.hashCode();
+ }
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof StructStruct)) return false;
+ if (!name.equals(((StructStruct) o).name)) return false;
+ return true;
+ }
+ public String toString()
+ {
+ return "<"+name+", "+pack+">";
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusException.java
new file mode 100755
index 0000000..15f46d0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusException.java
@@ -0,0 +1,26 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+/**
+ * An exception within DBus.
+ */
+@SuppressWarnings("serial")
+public class DBusException extends Exception
+{
+ /**
+ * Create an exception with the specified message
+ */
+ public DBusException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusExecutionException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusExecutionException.java
new file mode 100755
index 0000000..7dd54fd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/DBusExecutionException.java
@@ -0,0 +1,40 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+/**
+ * An exception while running a remote method within DBus.
+ */
+@SuppressWarnings("serial")
+public class DBusExecutionException extends RuntimeException
+{
+ private String type;
+ /**
+ * Create an exception with the specified message
+ */
+ public DBusExecutionException(String message)
+ {
+ super(message);
+ }
+ public void setType(String type)
+ {
+ this.type = type;
+ }
+ /**
+ * Get the DBus type of this exception. Use if this
+ * was an exception we don't have a class file for.
+ */
+ public String getType()
+ {
+ if (null == type) return getClass().getName();
+ else return type;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalDBusException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalDBusException.java
new file mode 100755
index 0000000..6f8d401
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalDBusException.java
@@ -0,0 +1,20 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+@SuppressWarnings("serial")
+public class FatalDBusException extends DBusException implements FatalException
+{
+ public FatalDBusException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalException.java
new file mode 100755
index 0000000..d69efa5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/FatalException.java
@@ -0,0 +1,15 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+public interface FatalException
+{
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/InternalMessageException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/InternalMessageException.java
new file mode 100755
index 0000000..4113bca
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/InternalMessageException.java
@@ -0,0 +1,20 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+@SuppressWarnings("serial")
+public class InternalMessageException extends DBusExecutionException implements NonFatalException
+{
+ public InternalMessageException(String message)
+ {
+ super (message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MarshallingException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MarshallingException.java
new file mode 100755
index 0000000..cf60d3b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MarshallingException.java
@@ -0,0 +1,20 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+@SuppressWarnings("serial")
+public class MarshallingException extends DBusException implements NonFatalException
+{
+ public MarshallingException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageFormatException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageFormatException.java
new file mode 100755
index 0000000..b7efcf7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageFormatException.java
@@ -0,0 +1,23 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+/**
+ * Thrown if a message is formatted incorrectly.
+ */
+@SuppressWarnings("serial")
+public class MessageFormatException extends DBusException implements NonFatalException
+{
+ public MessageFormatException(String message)
+ {
+ super (message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageProtocolVersionException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageProtocolVersionException.java
new file mode 100755
index 0000000..9f6e44e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageProtocolVersionException.java
@@ -0,0 +1,22 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public class MessageProtocolVersionException extends IOException implements FatalException
+{
+ public MessageProtocolVersionException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageTypeException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageTypeException.java
new file mode 100755
index 0000000..b36f30e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/MessageTypeException.java
@@ -0,0 +1,22 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public class MessageTypeException extends IOException implements NonFatalException
+{
+ public MessageTypeException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NonFatalException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NonFatalException.java
new file mode 100755
index 0000000..dc565f2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NonFatalException.java
@@ -0,0 +1,15 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+public interface NonFatalException
+{
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NotConnected.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NotConnected.java
new file mode 100755
index 0000000..71b8d44
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/NotConnected.java
@@ -0,0 +1,23 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+
+/**
+ * Thrown if a DBus action is called when not connected to the Bus.
+ */
+@SuppressWarnings("serial")
+public class NotConnected extends DBusExecutionException implements FatalException
+{
+ public NotConnected(String message)
+ {
+ super (message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/UnknownTypeCodeException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/UnknownTypeCodeException.java
new file mode 100755
index 0000000..9441e70
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/exceptions/UnknownTypeCodeException.java
@@ -0,0 +1,21 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.exceptions;
+import static org.freedesktop.dbus.Gettext._;
+
+@SuppressWarnings("serial")
+public class UnknownTypeCodeException extends DBusException implements NonFatalException
+{
+ public UnknownTypeCodeException(byte code)
+ {
+ super(_("Not a valid D-Bus type code: ") + code);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfileStruct.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfileStruct.java
new file mode 100755
index 0000000..9fa963b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfileStruct.java
@@ -0,0 +1,32 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.UInt32;
+
+public final class ProfileStruct extends Struct
+{
+ @Position(0)
+ public final String a;
+ @Position(1)
+ public final UInt32 b;
+ @Position(2)
+ public final long c;
+
+ public ProfileStruct(String a, UInt32 b, long c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/Profiler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/Profiler.java
new file mode 100755
index 0000000..efe9ab2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/Profiler.java
@@ -0,0 +1,40 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.DBus.Method.NoReply;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+import java.util.List;
+import java.util.Map;
+
+public interface Profiler extends DBusInterface
+{
+ public class ProfileSignal extends DBusSignal
+ {
+ public ProfileSignal(String path) throws DBusException
+ {
+ super(path);
+ }
+ }
+ public void array(int[] v);
+ public void stringarray(String[] v);
+ public void map(Map<String,String> m);
+ public void list(List<String> l);
+ public void bytes(byte[] b);
+ public void struct(ProfileStruct ps);
+ public void string(String s);
+ public void NoReply();
+ public void Pong();
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfilerInstance.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfilerInstance.java
new file mode 100755
index 0000000..b99d1b7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/ProfilerInstance.java
@@ -0,0 +1,28 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.util.List;
+import java.util.Map;
+
+public class ProfilerInstance implements Profiler
+{
+ public boolean isRemote() { return false; }
+ public void array(int[] v) { return; }
+ public void stringarray(String[] v) { return; }
+ public void map(Map<String,String> m) { return; }
+ public void list(List<String> l) { return; }
+ public void bytes(byte[] b) { return; }
+ public void struct(ProfileStruct ps) { return; }
+ public void string(String s) { return; }
+ public void NoReply() { return; }
+ public void Pong() { return; }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestException.java
new file mode 100755
index 0000000..2314ec3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestException.java
@@ -0,0 +1,24 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.DBus.Description;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+@Description("A test exception to throw over DBus")
+@SuppressWarnings("serial")
+public class TestException extends DBusExecutionException
+{
+ public TestException(String message)
+ {
+ super (message);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestNewInterface.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestNewInterface.java
new file mode 100755
index 0000000..4199403
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestNewInterface.java
@@ -0,0 +1,26 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.DBus.Description;
+
+/**
+ * A sample remote interface which exports one method.
+ */
+public interface TestNewInterface extends DBusInterface
+{
+ /**
+ * A simple method with no parameters which returns a String
+ */
+ @Description("Simple test method")
+ public String getName();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface.java
new file mode 100755
index 0000000..a24ef43
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface.java
@@ -0,0 +1,57 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.Path;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.DBus.Description;
+import org.freedesktop.DBus.Method;
+
+import java.lang.reflect.Type;
+
+import java.util.Map;
+import java.util.List;
+/**
+ * A sample remote interface which exports one method.
+ */
+public interface TestRemoteInterface extends DBusInterface
+{
+ /**
+ * A simple method with no parameters which returns a String
+ */
+ @Description("Simple test method")
+ public String getName();
+ public String getNameAndThrow();
+ @Description("Test of nested maps")
+ public <T> int frobnicate(List<Long> n, Map<String,Map<UInt16,Short>> m, T v);
+ @Description("Throws a TestException when called")
+ public void throwme() throws TestException;
+ @Description("Waits then doesn't return")
+ @Method.NoReply()
+ public void waitawhile();
+ @Description("Interface-overloaded method")
+ public int overload();
+ @Description("Testing Type Signatures")
+ public void sig(Type[] s);
+ @Description("Testing object paths as Path objects")
+ public void newpathtest(Path p);
+ @Description("Testing the float type")
+ public float testfloat(float[] f);
+ @Description("Testing structs of structs")
+ public int[][] teststructstruct(TestStruct3 in);
+ @Description("Regression test for #13291")
+ public void reg13291(byte[] as, byte[] bs);
+ /* test lots of things involving Path */
+ public Path pathrv(Path a);
+ public List<Path> pathlistrv(List<Path> a);
+ public Map<Path,Path> pathmaprv(Map<Path,Path> a);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface2.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface2.java
new file mode 100755
index 0000000..a44d627
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestRemoteInterface2.java
@@ -0,0 +1,54 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusInterfaceName;
+import org.freedesktop.dbus.DBusMemberName;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.DBus.Description;
+
+import java.util.List;
+
+@Description("An example remote interface")
+@DBusInterfaceName("org.freedesktop.dbus.test.AlternateTestInterface")
+public interface TestRemoteInterface2 extends DBusInterface
+{
+ @Description("Test multiple return values and implicit variant parameters.")
+ public <A> TestTuple<String,List<Integer>,Boolean> show(A in);
+ @Description("Test passing structs and explicit variants, returning implicit variants")
+ public <T> T dostuff(TestStruct foo);
+ @Description("Test arrays, boxed arrays and lists.")
+ public List<Integer> sampleArray(List<String> l, Integer[] is, long[] ls);
+ @Description("Test passing objects as object paths.")
+ public DBusInterface getThis(DBusInterface t);
+ @Description("Test bools work")
+ @DBusMemberName("checkbool")
+ public boolean check();
+ @Description("Test Serializable Object")
+ public TestSerializable<String> testSerializable(byte b, TestSerializable<String> s, int i);
+ @Description("Call another method on itself from within a call")
+ public String recursionTest();
+ @Description("Parameter-overloaded method (string)")
+ public int overload(String s);
+ @Description("Parameter-overloaded method (byte)")
+ public int overload(byte b);
+ @Description("Parameter-overloaded method (void)")
+ public int overload();
+ @Description("Nested List Check")
+ public List<List<Integer>> checklist(List<List<Integer>> lli);
+ @Description("Get new objects as object paths.")
+ public TestNewInterface getNew();
+ @Description("Test Complex Variants")
+ public void complexv(Variant<? extends Object> v);
+ @Description("Test Introspect on a different interface")
+ public String Introspect();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSerializable.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSerializable.java
new file mode 100755
index 0000000..8014299
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSerializable.java
@@ -0,0 +1,48 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.util.List;
+import java.util.Vector;
+
+import org.freedesktop.dbus.DBusSerializable;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public class TestSerializable<A> implements DBusSerializable
+{
+ private int a;
+ private String b;
+ private Vector<Integer> c;
+ public TestSerializable(int a, A b, Vector<Integer> c)
+ {
+ this.a = a;
+ this.b = b.toString();
+ this.c = c;
+ }
+ public TestSerializable() {}
+ public void deserialize(int a, String b, List<Integer> c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = new Vector<Integer>(c);
+ }
+ public Object[] serialize() throws DBusException
+ {
+ return new Object[] { a, b, c };
+ }
+ public int getInt() { return a; }
+ public String getString() { return b; }
+ public Vector<Integer> getVector() { return c; }
+ public String toString()
+ {
+ return "TestSerializable{"+a+","+b+","+c+"}";
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface.java
new file mode 100755
index 0000000..406ce36
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface.java
@@ -0,0 +1,97 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.DBus.Description;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusMemberName;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.Path;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A sample signal with two parameters
+ */
+@Description("Test interface containing signals")
+public interface TestSignalInterface extends DBusInterface
+{
+ @Description("Test basic signal")
+ public static class TestSignal extends DBusSignal
+ {
+ public final String value;
+ public final UInt32 number;
+ /**
+ * Create a signal.
+ */
+ public TestSignal(String path, String value, UInt32 number) throws DBusException
+ {
+ super(path, value, number);
+ this.value = value;
+ this.number = number;
+ }
+ }
+ public static class StringSignal extends DBusSignal
+ {
+ public final String aoeu;
+ public StringSignal(String path, String aoeu) throws DBusException
+ {
+ super(path, aoeu);
+ this.aoeu = aoeu;
+ }
+ }
+ public static class EmptySignal extends DBusSignal
+ {
+ public EmptySignal(String path) throws DBusException
+ {
+ super(path);
+ }
+ }
+ @Description("Test signal with arrays")
+ public static class TestArraySignal extends DBusSignal
+ {
+ public final List<TestStruct2> v;
+ public final Map<UInt32, TestStruct2> m;
+ public TestArraySignal(String path, List<TestStruct2> v, Map<UInt32, TestStruct2> m) throws DBusException
+ {
+ super(path, v, m);
+ this.v = v;
+ this.m = m;
+ }
+ }
+ @Description("Test signal sending an object path")
+ @DBusMemberName("TestSignalObject")
+ public static class TestObjectSignal extends DBusSignal
+ {
+ public final DBusInterface otherpath;
+ public TestObjectSignal(String path, DBusInterface otherpath) throws DBusException
+ {
+ super(path, otherpath);
+ this.otherpath = otherpath;
+ }
+ }
+ public static class TestPathSignal extends DBusSignal
+ {
+ public final Path otherpath;
+ public final List<Path> pathlist;
+ public final Map<Path,Path> pathmap;
+ public TestPathSignal(String path, Path otherpath, List<Path> pathlist, Map<Path,Path> pathmap) throws DBusException
+ {
+ super(path, otherpath, pathlist, pathmap);
+ this.otherpath = otherpath;
+ this.pathlist = pathlist;
+ this.pathmap = pathmap;
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface2.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface2.java
new file mode 100755
index 0000000..d5c9ac5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestSignalInterface2.java
@@ -0,0 +1,45 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.DBus.Description;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusInterfaceName;
+import org.freedesktop.dbus.DBusMemberName;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+import java.util.List;
+
+/**
+ * A sample signal with two parameters
+ */
+@Description("Test interface containing signals")
+@DBusInterfaceName("some.other.interface.Name")
+public interface TestSignalInterface2 extends DBusInterface
+{
+ @Description("Test basic signal")
+ public static class TestRenamedSignal extends DBusSignal
+ {
+ public final String value;
+ public final UInt32 number;
+ /**
+ * Create a signal.
+ */
+ public TestRenamedSignal(String path, String value, UInt32 number) throws DBusException
+ {
+ super(path, value, number);
+ this.value = value;
+ this.number = number;
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct.java
new file mode 100755
index 0000000..ca5deac
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct.java
@@ -0,0 +1,32 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.Variant;
+
+public final class TestStruct extends Struct
+{
+ @Position(0)
+ public final String a;
+ @Position(1)
+ public final UInt32 b;
+ @Position(2)
+ public final Variant<? extends Object> c;
+ public TestStruct(String a, UInt32 b, Variant<? extends Object> c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct2.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct2.java
new file mode 100755
index 0000000..5c8797b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct2.java
@@ -0,0 +1,31 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+import java.util.List;
+
+public final class TestStruct2 extends Struct
+{
+ @Position(0)
+ public final List<String> a;
+ @Position(1)
+ public final Variant<? extends Object> b;
+ public TestStruct2(List<String> a, Variant<? extends Object> b) throws DBusException
+ {
+ this.a = a;
+ this.b = b;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct3.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct3.java
new file mode 100755
index 0000000..52edbe0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestStruct3.java
@@ -0,0 +1,30 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+import java.util.List;
+
+public final class TestStruct3 extends Struct
+{
+ @Position(0)
+ public final TestStruct2 a;
+ @Position(1)
+ public final List<List<Integer>> b;
+ public TestStruct3(TestStruct2 a, List<List<Integer>> b) throws DBusException
+ {
+ this.a = a;
+ this.b = b;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestTuple.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestTuple.java
new file mode 100755
index 0000000..1cf507a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TestTuple.java
@@ -0,0 +1,30 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.Position;
+import org.freedesktop.dbus.Tuple;
+
+public final class TestTuple<A,B,C> extends Tuple
+{
+ @Position(0)
+ public final A a;
+ @Position(1)
+ public final B b;
+ @Position(2)
+ public final C c;
+ public TestTuple(A a, B b, C c)
+ {
+ this.a = a;
+ this.b = b;
+ this.c = c;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartInterface.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartInterface.java
new file mode 100755
index 0000000..af214cf
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartInterface.java
@@ -0,0 +1,29 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.exceptions.DBusException;
+
+public interface TwoPartInterface extends DBusInterface
+{
+ public TwoPartObject getNew();
+ public class TwoPartSignal extends DBusSignal
+ {
+ public final TwoPartObject o;
+ public TwoPartSignal(String path, TwoPartObject o) throws DBusException
+ {
+ super (path, o);
+ this.o = o;
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartObject.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartObject.java
new file mode 100755
index 0000000..3c7237b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/TwoPartObject.java
@@ -0,0 +1,18 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusInterface;
+
+public interface TwoPartObject extends DBusInterface
+{
+ public String getName();
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_client.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_client.java
new file mode 100755
index 0000000..af0d053
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_client.java
@@ -0,0 +1,512 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.Struct;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.UInt64;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.types.DBusMapType;
+
+import cx.ath.matthew.debug.Debug;
+
+public class cross_test_client implements DBus.Binding.TestClient, DBusSigHandler<DBus.Binding.TestSignals.Triggered>
+{
+ private DBusConnection conn;
+ private static Set<String> passed = new TreeSet<String>();
+ private static Map<String, List<String>> failed = new HashMap<String, List<String>>();
+ private static cross_test_client ctc;
+ static {
+ List<String> l = new Vector<String>();
+ l.add("Signal never arrived");
+ failed.put("org.freedesktop.DBus.Binding.TestSignals.Triggered", l);
+ l = new Vector<String>();
+ l.add("Method never called");
+ failed.put("org.freedesktop.DBus.Binding.TestClient.Response", l);
+ }
+ public cross_test_client(DBusConnection conn)
+ {
+ this.conn = conn;
+ }
+ public boolean isRemote() { return false; }
+ public void handle(DBus.Binding.TestSignals.Triggered t)
+ {
+ failed.remove("org.freedesktop.DBus.Binding.TestSignals.Triggered");
+ if (new UInt64(21389479283L).equals(t.a) && "/Test".equals(t.getPath()))
+ pass("org.freedesktop.DBus.Binding.TestSignals.Triggered");
+ else if (!new UInt64(21389479283L).equals(t.a))
+ fail("org.freedesktop.DBus.Binding.TestSignals.Triggered", "Incorrect signal content; expected 21389479283 got "+t.a);
+ else if (!"/Test".equals(t.getPath()))
+ fail("org.freedesktop.DBus.Binding.TestSignals.Triggered", "Incorrect signal source object; expected /Test got "+t.getPath());
+ }
+ public void Response(UInt16 a, double b)
+ {
+ failed.remove("org.freedesktop.DBus.Binding.TestClient.Response");
+ if (a.equals(new UInt16(15)) && (b == 12.5))
+ pass("org.freedesktop.DBus.Binding.TestClient.Response");
+ else
+ fail("org.freedesktop.DBus.Binding.TestClient.Response", "Incorrect parameters; expected 15, 12.5 got "+a+", "+b);
+ }
+ public static void pass(String test)
+ {
+ passed.add(test.replaceAll("[$]", "."));
+ }
+ public static void fail(String test, String reason)
+ {
+ test = test.replaceAll("[$]", ".");
+ List<String> reasons = failed.get(test);
+ if (null == reasons) {
+ reasons = new Vector<String>();
+ failed.put(test, reasons);
+ }
+ reasons.add(reason);
+ }
+ @SuppressWarnings("unchecked")
+ public static void test(Class<? extends DBusInterface> iface, Object proxy, String method, Object rv, Object... parameters)
+ {
+ try {
+ Method[] ms = iface.getMethods();
+ Method m = null;
+ for (Method t: ms) {
+ if (t.getName().equals(method))
+ m = t;
+ }
+ Object o = m.invoke(proxy, parameters);
+
+ String msg = "Incorrect return value; sent ( ";
+ if (null != parameters)
+ for (Object po: parameters)
+ if (null != po)
+ msg += collapseArray(po) + ",";
+ msg = msg.replaceAll(".$",");");
+ msg += " expected "+collapseArray(rv)+" got "+collapseArray(o);
+
+ if (null != rv && rv.getClass().isArray()) {
+ compareArray(iface.getName()+"."+method, rv,o);
+ } else if (rv instanceof Map) {
+ if (o instanceof Map) {
+ Map<Object,Object> a = (Map<Object,Object>) o;
+ Map<Object,Object> b = (Map<Object,Object>) rv;
+ if (a.keySet().size() != b.keySet().size()) {
+ fail(iface.getName()+"."+method, msg);
+ } else for (Object k: a.keySet())
+ if (a.get(k) instanceof List) {
+ if (b.get(k) instanceof List)
+ if (setCompareLists((List<Object>) a.get(k), (List<Object>) b.get(k)))
+ ;
+ else
+ fail(iface.getName()+"."+method, msg);
+ else
+ fail(iface.getName()+"."+method, msg);
+ } else if (!a.get(k).equals(b.get(k))) {
+ fail(iface.getName()+"."+method, msg);
+ return;
+ }
+ pass(iface.getName()+"."+method);
+ } else
+ fail(iface.getName()+"."+method, msg);
+ } else {
+ if (o == rv || (o != null && o.equals(rv)))
+ pass(iface.getName()+"."+method);
+ else
+ fail(iface.getName()+"."+method, msg);
+ }
+ } catch (DBusExecutionException DBEe) {
+ DBEe.printStackTrace();
+ fail(iface.getName()+"."+method, "Error occurred during execution: "+DBEe.getClass().getName()+" "+DBEe.getMessage());
+ } catch (InvocationTargetException ITe) {
+ ITe.printStackTrace();
+ fail(iface.getName()+"."+method, "Error occurred during execution: "+ITe.getCause().getClass().getName()+" "+ITe.getCause().getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(iface.getName()+"."+method, "Error occurred during execution: "+e.getClass().getName()+" "+e.getMessage());
+ }
+ }
+ @SuppressWarnings("unchecked")
+ public static String collapseArray(Object array)
+ {
+ if (null == array) return "null";
+ if (array.getClass().isArray()) {
+ String s = "{ ";
+ for (int i = 0; i < Array.getLength(array); i++)
+ s += collapseArray(Array.get(array, i))+",";
+ s = s.replaceAll(".$"," }");
+ return s;
+ } else if (array instanceof List) {
+ String s = "{ ";
+ for (Object o: (List<Object>) array)
+ s += collapseArray(o)+",";
+ s = s.replaceAll(".$"," }");
+ return s;
+ } else if (array instanceof Map) {
+ String s = "{ ";
+ for (Object o: ((Map<Object,Object>) array).keySet())
+ s += collapseArray(o)+" => "+collapseArray(((Map<Object,Object>) array).get(o))+",";
+ s = s.replaceAll(".$"," }");
+ return s;
+ } else return array.toString();
+ }
+ public static <T> boolean setCompareLists(List<T> a, List<T> b)
+ {
+ if (a.size() != b.size()) return false;
+ for (Object v: a)
+ if (!b.contains(v)) return false;
+ return true;
+ }
+ @SuppressWarnings("unchecked")
+ public static List<Variant<Object>> PrimitizeRecurse(Object a, Type t)
+ {
+ List<Variant<Object>> vs = new Vector<Variant<Object>>();
+ if (t instanceof ParameterizedType) {
+ Class<Object> c = (Class<Object>) ((ParameterizedType) t).getRawType();
+ if (List.class.isAssignableFrom(c)) {
+ Object os;
+ if (a instanceof List)
+ os = ((List<Object>) a).toArray();
+ else
+ os = a;
+ Type[] ts = ((ParameterizedType) t).getActualTypeArguments();
+ for (int i = 0; i < Array.getLength(os); i++)
+ vs.addAll(PrimitizeRecurse(Array.get(os, i), ts[0]));
+ } else if (Map.class.isAssignableFrom(c)) {
+ Object[] os = ((Map) a).keySet().toArray();
+ Object[] ks = ((Map) a).values().toArray();
+ Type[] ts = ((ParameterizedType) t).getActualTypeArguments();
+ for (int i = 0; i < ks.length; i++)
+ vs.addAll(PrimitizeRecurse(ks[i], ts[0]));
+ for (int i = 0; i < os.length; i++)
+ vs.addAll(PrimitizeRecurse(os[i], ts[1]));
+ } else if (Struct.class.isAssignableFrom(c)) {
+ Object[] os = ((Struct) a).getParameters();
+ Type[] ts = ((ParameterizedType) t).getActualTypeArguments();
+ for (int i = 0; i < os.length; i++)
+ vs.addAll(PrimitizeRecurse(os[i], ts[i]));
+
+ } else if (Variant.class.isAssignableFrom(c)) {
+ vs.addAll(PrimitizeRecurse(((Variant) a).getValue(), ((Variant) a).getType()));
+ }
+ } else if (Variant.class.isAssignableFrom((Class) t))
+ vs.addAll(PrimitizeRecurse(((Variant) a).getValue(), ((Variant) a).getType()));
+ else if (t instanceof Class && ((Class) t).isArray()) {
+ Type t2 = ((Class) t).getComponentType();
+ for (int i = 0; i < Array.getLength(a); i++)
+ vs.addAll(PrimitizeRecurse(Array.get(a, i), t2));
+ }
+ else vs.add(new Variant(a));
+
+ return vs;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static List<Variant<Object>> Primitize(Variant<Object> a)
+ {
+ return PrimitizeRecurse(a.getValue(), a.getType());
+ }
+
+ @SuppressWarnings("unchecked")
+ public static void primitizeTest(DBus.Binding.Tests tests, Object input)
+ {
+ Variant<Object> in = new Variant<Object>(input);
+ List<Variant<Object>> vs = Primitize(in);
+ List<Variant<Object>> res;
+
+ try {
+
+ res = tests.Primitize(in);
+ if (setCompareLists(res, vs))
+ pass("org.freedesktop.DBus.Binding.Tests.Primitize");
+ else
+ fail("org.freedesktop.DBus.Binding.Tests.Primitize", "Wrong Return Value; expected "+collapseArray(vs)+" got "+collapseArray(res));
+
+ } catch (Exception e) {
+ if (Debug.debug) Debug.print(e);
+ fail("org.freedesktop.DBus.Binding.Tests.Primitize", "Exception occurred during test: ("+e.getClass().getName()+") "+e.getMessage());
+ }
+ }
+ public static void doTests(DBus.Peer peer, DBus.Introspectable intro, DBus.Introspectable rootintro, DBus.Binding.Tests tests, DBus.Binding.SingleTests singletests)
+ {
+ Random r = new Random();
+ int i;
+ test(DBus.Peer.class, peer, "Ping", null);
+
+ try { if (intro.Introspect().startsWith("<!DOCTYPE")) pass("org.freedesktop.DBus.Introspectable.Introspect");
+ else fail("org.freedesktop.DBus.Introspectable.Introspect", "Didn't get valid xml data back when introspecting /Test");
+ } catch (DBusExecutionException DBEe) {
+ if (Debug.debug) Debug.print(DBEe);
+ fail("org.freedesktop.DBus.Introspectable.Introspect", "Got exception during introspection on /Test ("+DBEe.getClass().getName()+"): "+DBEe.getMessage());
+ }
+
+ try { if (rootintro.Introspect().startsWith("<!DOCTYPE")) pass("org.freedesktop.DBus.Introspectable.Introspect");
+ else fail("org.freedesktop.DBus.Introspectable.Introspect", "Didn't get valid xml data back when introspecting /");
+ } catch (DBusExecutionException DBEe) {
+ if (Debug.debug) Debug.print(DBEe);
+ fail("org.freedesktop.DBus.Introspectable.Introspect", "Got exception during introspection on / ("+DBEe.getClass().getName()+"): "+DBEe.getMessage());
+ }
+
+ test(DBus.Binding.Tests.class, tests, "Identity", new Variant<Integer>(new Integer(1)), new Variant<Integer>(new Integer(1)));
+ test(DBus.Binding.Tests.class, tests, "Identity", new Variant<String>("Hello"), new Variant<String>("Hello"));
+
+ test(DBus.Binding.Tests.class, tests, "IdentityBool", false, false);
+ test(DBus.Binding.Tests.class, tests, "IdentityBool", true, true);
+
+ test(DBus.Binding.Tests.class, tests, "Invert", false, true);
+ test(DBus.Binding.Tests.class, tests, "Invert", true, false);
+
+ test(DBus.Binding.Tests.class, tests, "IdentityByte", (byte) 0, (byte) 0);
+ test(DBus.Binding.Tests.class, tests, "IdentityByte", (byte) 1, (byte) 1);
+ test(DBus.Binding.Tests.class, tests, "IdentityByte", (byte) -1, (byte) -1);
+ test(DBus.Binding.Tests.class, tests, "IdentityByte", Byte.MAX_VALUE, Byte.MAX_VALUE);
+ test(DBus.Binding.Tests.class, tests, "IdentityByte", Byte.MIN_VALUE, Byte.MIN_VALUE);
+ i = r.nextInt();
+ test(DBus.Binding.Tests.class, tests, "IdentityByte", (byte) i, (byte) i);
+
+ test(DBus.Binding.Tests.class, tests, "IdentityInt16", (short) 0, (short) 0);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt16", (short) 1, (short) 1);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt16", (short) -1, (short) -1);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt16", Short.MAX_VALUE, Short.MAX_VALUE);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt16", Short.MIN_VALUE, Short.MIN_VALUE);
+ i = r.nextInt();
+ test(DBus.Binding.Tests.class, tests, "IdentityInt16", (short) i, (short) i);
+
+ test(DBus.Binding.Tests.class, tests, "IdentityInt32", 0, 0);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt32", 1, 1);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt32", -1, -1);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt32", Integer.MAX_VALUE, Integer.MAX_VALUE);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt32", Integer.MIN_VALUE, Integer.MIN_VALUE);
+ i = r.nextInt();
+ test(DBus.Binding.Tests.class, tests, "IdentityInt32", i, i);
+
+
+ test(DBus.Binding.Tests.class, tests, "IdentityInt64", (long) 0, (long) 0);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt64", (long) 1, (long) 1);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt64", (long) -1, (long) -1);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt64", Long.MAX_VALUE, Long.MAX_VALUE);
+ test(DBus.Binding.Tests.class, tests, "IdentityInt64", Long.MIN_VALUE, Long.MIN_VALUE);
+ i = r.nextInt();
+ test(DBus.Binding.Tests.class, tests, "IdentityInt64", (long) i, (long) i);
+
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt16", new UInt16(0), new UInt16(0));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt16", new UInt16(1), new UInt16(1));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt16", new UInt16(UInt16.MAX_VALUE), new UInt16(UInt16.MAX_VALUE));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt16", new UInt16(UInt16.MIN_VALUE), new UInt16(UInt16.MIN_VALUE));
+ i = r.nextInt();
+ i = i > 0 ? i : -i;
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt16", new UInt16(i%UInt16.MAX_VALUE), new UInt16(i%UInt16.MAX_VALUE));
+
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt32", new UInt32(0), new UInt32(0));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt32", new UInt32(1), new UInt32(1));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt32", new UInt32(UInt32.MAX_VALUE), new UInt32(UInt32.MAX_VALUE));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt32", new UInt32(UInt32.MIN_VALUE), new UInt32(UInt32.MIN_VALUE));
+ i = r.nextInt();
+ i = i > 0 ? i : -i;
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt32", new UInt32(i%UInt32.MAX_VALUE), new UInt32(i%UInt32.MAX_VALUE));
+
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt64", new UInt64(0), new UInt64(0));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt64", new UInt64(1), new UInt64(1));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt64", new UInt64(UInt64.MAX_LONG_VALUE), new UInt64(UInt64.MAX_LONG_VALUE));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt64", new UInt64(UInt64.MAX_BIG_VALUE), new UInt64(UInt64.MAX_BIG_VALUE));
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt64", new UInt64(UInt64.MIN_VALUE), new UInt64(UInt64.MIN_VALUE));
+ i = r.nextInt();
+ i = i > 0 ? i : -i;
+ test(DBus.Binding.Tests.class, tests, "IdentityUInt64", new UInt64(i%UInt64.MAX_LONG_VALUE), new UInt64(i%UInt64.MAX_LONG_VALUE));
+
+ test(DBus.Binding.Tests.class, tests, "IdentityDouble", 0.0, 0.0);
+ test(DBus.Binding.Tests.class, tests, "IdentityDouble", 1.0, 1.0);
+ test(DBus.Binding.Tests.class, tests, "IdentityDouble", -1.0, -1.0);
+ test(DBus.Binding.Tests.class, tests, "IdentityDouble", Double.MAX_VALUE, Double.MAX_VALUE);
+ test(DBus.Binding.Tests.class, tests, "IdentityDouble", Double.MIN_VALUE, Double.MIN_VALUE);
+ i = r.nextInt();
+ test(DBus.Binding.Tests.class, tests, "IdentityDouble", (double) i, (double) i);
+
+ test(DBus.Binding.Tests.class, tests, "IdentityString", "", "");
+ test(DBus.Binding.Tests.class, tests, "IdentityString", "The Quick Brown Fox Jumped Over The Lazy Dog", "The Quick Brown Fox Jumped Over The Lazy Dog");
+
+ testArray(DBus.Binding.Tests.class, tests, "IdentityBoolArray", Boolean.TYPE, null);
+ testArray(DBus.Binding.Tests.class, tests, "IdentityByteArray", Byte.TYPE, null);
+ testArray(DBus.Binding.Tests.class, tests, "IdentityInt16Array", Short.TYPE, null);
+ testArray(DBus.Binding.Tests.class, tests, "IdentityInt32Array", Integer.TYPE, null);
+ testArray(DBus.Binding.Tests.class, tests, "IdentityInt64Array", Long.TYPE, null);
+ testArray(DBus.Binding.Tests.class, tests, "IdentityDoubleArray", Double.TYPE, null);
+
+ testArray(DBus.Binding.Tests.class, tests, "IdentityArray", Variant.class, new Variant<String>("aoeu"));
+ testArray(DBus.Binding.Tests.class, tests, "IdentityUInt16Array", UInt16.class, new UInt16(12));
+ testArray(DBus.Binding.Tests.class, tests, "IdentityUInt32Array", UInt32.class, new UInt32(190));
+ testArray(DBus.Binding.Tests.class, tests, "IdentityUInt64Array", UInt64.class, new UInt64(103948));
+ testArray(DBus.Binding.Tests.class, tests, "IdentityStringArray", String.class, "asdf");
+
+ int[] is = new int[0];
+ test(DBus.Binding.Tests.class, tests, "Sum", 0L, is);
+ r = new Random();
+ int len = (r.nextInt() % 100) + 15;
+ len = (len<0 ? -len: len)+15;
+ is = new int[len];
+ long result = 0;
+ for (i = 0; i < len; i++) {
+ is[i] = r.nextInt();
+ result += is[i];
+ }
+ test(DBus.Binding.Tests.class, tests, "Sum", result, is);
+
+ byte[] bs = new byte[0];
+ test(DBus.Binding.SingleTests.class, singletests, "Sum", new UInt32(0), bs);
+ len = (r.nextInt() % 100);
+ len = (len<0 ? -len: len)+15;
+ bs = new byte[len];
+ int res = 0;
+ for (i = 0; i < len; i++) {
+ bs[i] = (byte) r.nextInt();
+ res += (bs[i] < 0 ? bs[i]+256 : bs[i]);
+ }
+ test(DBus.Binding.SingleTests.class, singletests, "Sum", new UInt32(res % (UInt32.MAX_VALUE+1)), bs);
+
+ test(DBus.Binding.Tests.class, tests, "DeStruct", new DBus.Binding.Triplet<String,UInt32,Short>("hi", new UInt32(12), new Short((short) 99)), new DBus.Binding.TestStruct("hi", new UInt32(12), new Short((short) 99)));
+
+ Map<String, String> in = new HashMap<String, String>();
+ Map<String, List<String>> out = new HashMap<String, List<String>>();
+ test(DBus.Binding.Tests.class, tests, "InvertMapping", out, in);
+
+ in.put("hi", "there");
+ in.put("to", "there");
+ in.put("from", "here");
+ in.put("in", "out");
+ List<String> l = new Vector<String>();
+ l.add("hi");
+ l.add("to");
+ out.put("there", l);
+ l = new Vector<String>();
+ l.add("from");
+ out.put("here", l);
+ l = new Vector<String>();
+ l.add("in");
+ out.put("out", l);
+ test(DBus.Binding.Tests.class, tests, "InvertMapping", out, in);
+
+ primitizeTest(tests, new Integer(1));
+ primitizeTest(tests,
+ new Variant<Variant<Variant<Variant<String>>>>(
+ new Variant<Variant<Variant<String>>>(
+ new Variant<Variant<String>>(
+ new Variant<String>("Hi")))));
+ primitizeTest(tests, new Variant<Map<String,String>>(in, new DBusMapType(String.class,String.class)));
+
+ test(DBus.Binding.Tests.class, tests, "Trigger", null, "/Test", new UInt64(21389479283L));
+
+ try {
+ ctc.conn.sendSignal(new DBus.Binding.TestClient.Trigger("/Test", new UInt16(15), 12.5));
+ } catch (DBusException DBe) {
+ if (Debug.debug) Debug.print(DBe);
+ throw new DBusExecutionException(DBe.getMessage());
+ }
+
+ try { Thread.sleep(10000); } catch (InterruptedException Ie) {}
+
+ test(DBus.Binding.Tests.class, tests, "Exit", null);
+ }
+ public static void testArray(Class<? extends DBusInterface> iface, Object proxy, String method, Class<? extends Object> arrayType, Object content)
+ {
+ Object array = Array.newInstance(arrayType, 0);
+ test(iface, proxy, method, array, array);
+ Random r = new Random();
+ int l = (r.nextInt() % 100);
+ array = Array.newInstance(arrayType, (l < 0 ? -l : l) + 15);
+ if (null != content)
+ Arrays.fill((Object[]) array, content);
+ test(iface, proxy, method, array, array);
+ }
+ public static void compareArray(String test, Object a, Object b)
+ {
+ if (!a.getClass().equals(b.getClass())) {
+ fail(test, "Incorrect return type; expected "+a.getClass()+" got "+b.getClass());
+ return;
+ }
+ boolean pass = false;
+
+ if (a instanceof Object[])
+ pass = Arrays.equals((Object[]) a, (Object[]) b);
+ else if (a instanceof byte[])
+ pass = Arrays.equals((byte[]) a, (byte[]) b);
+ else if (a instanceof boolean[])
+ pass = Arrays.equals((boolean[]) a, (boolean[]) b);
+ else if (a instanceof int[])
+ pass = Arrays.equals((int[]) a, (int[]) b);
+ else if (a instanceof short[])
+ pass = Arrays.equals((short[]) a, (short[]) b);
+ else if (a instanceof long[])
+ pass = Arrays.equals((long[]) a, (long[]) b);
+ else if (a instanceof double[])
+ pass = Arrays.equals((double[]) a, (double[]) b);
+
+ if (pass)
+ pass(test);
+ else {
+ String s = "Incorrect return value; expected ";
+ s += collapseArray(a);
+ s += " got ";
+ s += collapseArray(b);
+ fail(test, s);
+ }
+ }
+
+ public static void main(String[] args)
+ { try {
+ /* init */
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ ctc = new cross_test_client(conn);
+ conn.exportObject("/Test", ctc);
+ conn.addSigHandler(DBus.Binding.TestSignals.Triggered.class, ctc);
+ DBus.Binding.Tests tests = conn.getRemoteObject("org.freedesktop.DBus.Binding.TestServer", "/Test", DBus.Binding.Tests.class);
+ DBus.Binding.SingleTests singletests = conn.getRemoteObject("org.freedesktop.DBus.Binding.TestServer", "/Test", DBus.Binding.SingleTests.class);
+ DBus.Peer peer = conn.getRemoteObject("org.freedesktop.DBus.Binding.TestServer", "/Test", DBus.Peer.class);
+ DBus.Introspectable intro = conn.getRemoteObject("org.freedesktop.DBus.Binding.TestServer", "/Test", DBus.Introspectable.class);
+
+ DBus.Introspectable rootintro = conn.getRemoteObject("org.freedesktop.DBus.Binding.TestServer", "/", DBus.Introspectable.class);
+
+ doTests(peer, intro, rootintro, tests, singletests);
+
+ /* report results */
+ for (String s: passed)
+ System.out.println(s+" pass");
+ int i = 1;
+ for (String s: failed.keySet())
+ for (String r: failed.get(s)) {
+ System.out.println(s+" fail "+i);
+ System.out.println("report "+i+": "+r);
+ i++;
+ }
+
+ conn.disconnect();
+ } catch (DBusException DBe) {
+ DBe.printStackTrace();
+ System.exit(1);
+ }}
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_server.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_server.java
new file mode 100755
index 0000000..acfb2fa
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/cross_test_server.java
@@ -0,0 +1,344 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeSet;
+import java.util.Set;
+import java.util.Vector;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.UInt64;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+
+public class cross_test_server implements DBus.Binding.Tests, DBus.Binding.SingleTests, DBusSigHandler<DBus.Binding.TestClient.Trigger>
+{
+ private DBusConnection conn;
+ boolean run = true;
+ private Set<String> done = new TreeSet<String>();
+ private Set<String> notdone = new TreeSet<String>();
+ {
+ notdone.add("org.freedesktop.DBus.Binding.Tests.Identity");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityByte");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityBool");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityInt16");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt16");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityInt32");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt32");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityInt64");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt64");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityDouble");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityString");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityArray");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityByteArray");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityBoolArray");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityInt16Array");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt16Array");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityInt32Array");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt32Array");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityInt64Array");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt64Array");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityDoubleArray");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.IdentityStringArray");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.Sum");
+ notdone.add("org.freedesktop.DBus.Binding.SingleTests.Sum");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.InvertMapping");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.DeStruct");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.Primitize");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.Invert");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.Trigger");
+ notdone.add("org.freedesktop.DBus.Binding.Tests.Exit");
+ notdone.add("org.freedesktop.DBus.Binding.TestClient.Trigger");
+ }
+
+ public cross_test_server(DBusConnection conn)
+ {
+ this.conn = conn;
+ }
+ public boolean isRemote() { return false; }
+ @SuppressWarnings("unchecked")
+ @DBus.Description("Returns whatever it is passed")
+ public <T> Variant<T> Identity(Variant<T> input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.Identity");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.Identity");
+ return new Variant(input.getValue());
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public byte IdentityByte(byte input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityByte");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityByte");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public boolean IdentityBool(boolean input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityBool");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityBool");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public short IdentityInt16(short input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityInt16");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityInt16");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public UInt16 IdentityUInt16(UInt16 input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt16");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityUInt16");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public int IdentityInt32(int input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityInt32");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityInt32");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public UInt32 IdentityUInt32(UInt32 input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt32");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityUInt32");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public long IdentityInt64(long input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityInt64");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityInt64");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public UInt64 IdentityUInt64(UInt64 input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt64");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityUInt64");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public double IdentityDouble(double input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityDouble");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityDouble");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public String IdentityString(String input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityString");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityString");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public <T> Variant<T>[] IdentityArray(Variant<T>[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityArray");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityArray");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public byte[] IdentityByteArray(byte[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityByteArray");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityByteArray");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public boolean[] IdentityBoolArray(boolean[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityBoolArray");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityBoolArray");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public short[] IdentityInt16Array(short[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityInt16Array");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityInt16Array");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public UInt16[] IdentityUInt16Array(UInt16[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt16Array");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityUInt16Array");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public int[] IdentityInt32Array(int[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityInt32Array");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityInt32Array");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public UInt32[] IdentityUInt32Array(UInt32[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt32Array");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityUInt32Array");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public long[] IdentityInt64Array(long[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityInt64Array");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityInt64Array");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public UInt64[] IdentityUInt64Array(UInt64[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityUInt64Array");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityUInt64Array");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public double[] IdentityDoubleArray(double[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityDoubleArray");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityDoubleArray");
+ return input;
+ }
+ @DBus.Description("Returns whatever it is passed")
+ public String[] IdentityStringArray(String[] input)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.IdentityStringArray");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.IdentityStringArray");
+ return input;
+ }
+ @DBus.Description("Returns the sum of the values in the input list")
+ public long Sum(int[] a)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.Sum");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.Sum");
+ long sum = 0;
+ for (int b: a) sum += b;
+ return sum;
+ }
+ @DBus.Description("Returns the sum of the values in the input list")
+ public UInt32 Sum(byte[] a)
+ {
+ done.add("org.freedesktop.DBus.Binding.SingleTests.Sum");
+ notdone.remove("org.freedesktop.DBus.Binding.SingleTests.Sum");
+ int sum = 0;
+ for (byte b: a) sum += (b < 0 ? b+256 : b);
+ return new UInt32(sum % (UInt32.MAX_VALUE+1));
+ }
+ @DBus.Description("Given a map of A => B, should return a map of B => a list of all the As which mapped to B")
+ public Map<String, List<String>> InvertMapping(Map<String, String> a)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.InvertMapping");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.InvertMapping");
+ HashMap<String, List<String>> m = new HashMap<String, List<String>>();
+ for (String s: a.keySet()) {
+ String b = a.get(s);
+ List<String> l = m.get(b);
+ if (null == l) {
+ l = new Vector<String>();
+ m.put(b, l);
+ }
+ l.add(s);
+ }
+ return m;
+ }
+ @DBus.Description("This method returns the contents of a struct as separate values")
+ public DBus.Binding.Triplet<String,UInt32,Short> DeStruct(DBus.Binding.TestStruct a)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.DeStruct");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.DeStruct");
+ return new DBus.Binding.Triplet<String,UInt32,Short>(a.a, a.b, a.c);
+ }
+ @DBus.Description("Given any compound type as a variant, return all the primitive types recursively contained within as an array of variants")
+ @SuppressWarnings("unchecked")
+ public List<Variant<Object>> Primitize(Variant<Object> a)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.Primitize");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.Primitize");
+ return cross_test_client.PrimitizeRecurse(a.getValue(), a.getType());
+ }
+ @DBus.Description("inverts it's input")
+ public boolean Invert(boolean a)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.Invert");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.Invert");
+ return !a;
+ }
+ @DBus.Description("triggers sending of a signal from the supplied object with the given parameter")
+ public void Trigger(String a, UInt64 b)
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.Trigger");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.Trigger");
+ try {
+ conn.sendSignal(new DBus.Binding.TestSignals.Triggered(a, b));
+ } catch (DBusException DBe) {
+ throw new DBusExecutionException(DBe.getMessage());
+ }
+ }
+ public void Exit()
+ {
+ done.add("org.freedesktop.DBus.Binding.Tests.Exit");
+ notdone.remove("org.freedesktop.DBus.Binding.Tests.Exit");
+ run = false;
+ synchronized (this) {
+ notifyAll();
+ }
+ }
+ public void handle(DBus.Binding.TestClient.Trigger t)
+ {
+ done.add("org.freedesktop.DBus.Binding.TestClient.Trigger");
+ notdone.remove("org.freedesktop.DBus.Binding.TestClient.Trigger");
+ try {
+ DBus.Binding.TestClient cb = conn.getRemoteObject(t.getSource(), "/Test", DBus.Binding.TestClient.class);
+ cb.Response(t.a, t.b);
+ } catch (DBusException DBe) {
+ throw new DBusExecutionException(DBe.getMessage());
+ }
+ }
+
+ public static void main(String[] args)
+ { try {
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ conn.requestBusName("org.freedesktop.DBus.Binding.TestServer");
+ cross_test_server cts = new cross_test_server(conn);
+ conn.addSigHandler(DBus.Binding.TestClient.Trigger.class, cts);
+ conn.exportObject("/Test", cts);
+ synchronized (cts) {
+ while (cts.run) {
+ try {
+ cts.wait();
+ } catch (InterruptedException Ie) {}
+ }
+ }
+ for (String s: cts.done)
+ System.out.println(s+" ok");
+ for (String s: cts.notdone)
+ System.out.println(s+" untested");
+ conn.disconnect();
+ System.exit(0);
+ } catch (DBusException DBe) {
+ DBe.printStackTrace();
+ System.exit(1);
+ }}
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/profile.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/profile.java
new file mode 100755
index 0000000..f998fa2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/profile.java
@@ -0,0 +1,381 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.util.Random;
+import java.util.HashMap;
+import java.util.Vector;
+
+import org.freedesktop.DBus.Peer;
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.UInt32;
+
+class ProfileHandler implements DBusSigHandler<Profiler.ProfileSignal>
+{
+ public int c = 0;
+ public void handle(Profiler.ProfileSignal s)
+ {
+ if (0 == (c++%profile.SIGNAL_INNER)) System.out.print("-");
+ }
+}
+
+/**
+ * Profiling tests.
+ */
+public class profile
+{
+ public static final int SIGNAL_INNER = 100;
+ public static final int SIGNAL_OUTER = 100;
+ public static final int PING_INNER = 100;
+ public static final int PING_OUTER = 100;
+ public static final int BYTES = 2000000;
+ public static final int INTROSPECTION_OUTER = 100;
+ public static final int INTROSPECTION_INNER = 10;
+ public static final int STRUCT_OUTER = 100;
+ public static final int STRUCT_INNER = 10;
+ public static final int LIST_OUTER = 100;
+ public static final int LIST_INNER = 10;
+ public static final int LIST_LENGTH = 100;
+ public static final int MAP_OUTER = 100;
+ public static final int MAP_INNER = 10;
+ public static final int MAP_LENGTH = 100;
+ public static final int ARRAY_OUTER = 100;
+ public static final int ARRAY_INNER = 10;
+ public static final int ARRAY_LENGTH = 1000;
+ public static final int STRING_ARRAY_OUTER = 10;
+ public static final int STRING_ARRAY_INNER = 1;
+ public static final int STRING_ARRAY_LENGTH = 20000;
+
+ public static class Log
+ {
+ private long last;
+ private int[] deltas;
+ private int current = 0;
+ public Log(int size)
+ {
+ deltas = new int[size];
+ }
+ public void start()
+ {
+ last = System.currentTimeMillis();
+ }
+ public void stop()
+ {
+ deltas[current] = (int) (System.currentTimeMillis()-last);
+ current++;
+ }
+ public double mean()
+ {
+ if (0 == current) return 0;
+ long sum = 0;
+ for (int i = 0; i < current; i++)
+ sum+=deltas[i];
+ return sum /= current;
+ }
+ public long min()
+ {
+ int m = Integer.MAX_VALUE;
+ for (int i = 0; i < current; i++)
+ if (deltas[i] < m) m = deltas[i];
+ return m;
+ }
+ public long max()
+ {
+ int m = 0;
+ for (int i = 0; i < current; i++)
+ if (deltas[i] > m) m = deltas[i];
+ return m;
+ }
+ public double stddev()
+ {
+ double mean = mean();
+ double sum = 0;
+ for (int i=0; i < current; i++)
+ sum += (deltas[i]-mean)*(deltas[i]-mean);
+ return Math.sqrt(sum / (current-1));
+ }
+ }
+ public static void main(String[] args)
+ {
+ try {
+ if (0==args.length) {
+ System.out.println("You must specify a profile type.");
+ System.out.println("Syntax: profile <pings|arrays|introspect|maps|bytes|lists|structs|signals|rate|strings>");
+ System.exit(1);
+ }
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ conn.requestBusName("org.freedesktop.DBus.java.profiler");
+ if ("pings".equals(args[0])) {
+ int count = PING_INNER*PING_OUTER;
+ System.out.print("Sending "+count+" pings...");
+ Peer p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Peer.class);
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < PING_OUTER; i++) {
+ for (int j = 0; j < PING_INNER; j++) {
+ l.start();
+ p.Ping();
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ } else if ("strings".equals(args[0])) {
+ int count = STRING_ARRAY_INNER*STRING_ARRAY_OUTER;
+ System.out.print("Sending array of "+STRING_ARRAY_LENGTH+" strings "+count+" times.");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ String[] v = new String[STRING_ARRAY_LENGTH];
+ Random r = new Random();
+ for (int i = 0; i < STRING_ARRAY_LENGTH; i++) v[i] = ""+r.nextInt();
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < STRING_ARRAY_OUTER; i++) {
+ for (int j = 0; j < STRING_ARRAY_INNER; j++) {
+ l.start();
+ p.stringarray(v);
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ } else if ("arrays".equals(args[0])) {
+ int count = ARRAY_INNER*ARRAY_OUTER;
+ System.out.print("Sending array of "+ARRAY_LENGTH+" ints "+count+" times.");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ int[] v = new int[ARRAY_LENGTH];
+ Random r = new Random();
+ for (int i = 0; i < ARRAY_LENGTH; i++) v[i] = r.nextInt();
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < ARRAY_OUTER; i++) {
+ for (int j = 0; j < ARRAY_INNER; j++) {
+ l.start();
+ p.array(v);
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ } else if ("maps".equals(args[0])) {
+ int count = MAP_INNER*MAP_OUTER;
+ System.out.print("Sending map of "+MAP_LENGTH+" string=>strings "+count+" times.");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ HashMap<String,String> m = new HashMap<String,String>();
+ for (int i = 0; i < MAP_LENGTH; i++)
+ m.put(""+i, "hello");
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < MAP_OUTER; i++) {
+ for (int j=0; j < MAP_INNER; j++) {
+ l.start();
+ p.map(m);
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ } else if ("lists".equals(args[0])) {
+ int count = LIST_OUTER*LIST_INNER;
+ System.out.print("Sending list of "+LIST_LENGTH+" strings "+count+" times.");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ Vector<String> v = new Vector<String>();
+ for (int i = 0; i < LIST_LENGTH; i++)
+ v.add("hello "+i);
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < LIST_OUTER; i++) {
+ for (int j=0; j < LIST_INNER; j++) {
+ l.start();
+ p.list(v);
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ } else if ("structs".equals(args[0])) {
+ int count = STRUCT_OUTER*STRUCT_INNER;
+ System.out.print("Sending a struct "+count+" times.");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ ProfileStruct ps = new ProfileStruct("hello", new UInt32(18), 500L);
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < STRUCT_OUTER; i++) {
+ for (int j=0; j < STRUCT_INNER; j++) {
+ l.start();
+ p.struct(ps);
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ } else if ("introspect".equals(args[0])) {
+ int count = INTROSPECTION_OUTER*INTROSPECTION_INNER;
+ System.out.print("Recieving introspection data "+count+" times.");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Introspectable is = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Introspectable.class);
+ Log l = new Log(count);
+ long t = System.currentTimeMillis();
+ String s = null;
+ for (int i = 0; i < INTROSPECTION_OUTER; i++) {
+ for (int j = 0; j < INTROSPECTION_INNER; j++) {
+ l.start();
+ s = is.Introspect();
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ System.out.println("Introspect data: "+s);
+ } else if ("bytes".equals(args[0])) {
+ System.out.print("Sending "+BYTES+" bytes");
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ byte[] bs = new byte[BYTES];
+ for (int i = 0; i < BYTES; i++)
+ bs[i] = (byte) i;
+ long t = System.currentTimeMillis();
+ p.bytes(bs);
+ System.out.println(" done in "+(System.currentTimeMillis()-t)+"ms.");
+ } else if ("rate".equals(args[0])) {
+ ProfilerInstance pi = new ProfilerInstance();
+ conn.exportObject("/Profiler", pi);
+ Profiler p = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Profiler.class);
+ Peer peer = conn.getRemoteObject("org.freedesktop.DBus.java.profiler", "/Profiler", Peer.class);
+ conn.changeThreadCount((byte)1);
+
+ long start = System.currentTimeMillis();
+ int count = 0;
+ do {
+ p.Pong();
+ count++;
+ } while(count < 10000);
+ long end = System.currentTimeMillis();
+ System.out.println("No payload: "+((count*1000)/(end-start))+" RT/second");
+ start = System.currentTimeMillis();
+ count = 0;
+ do {
+ p.Pong();
+ count++;
+ } while(count < 10000);
+ peer.Ping();
+ end = System.currentTimeMillis();
+ System.out.println("No payload, One way: "+((count*1000)/(end-start))+" /second");
+ int len = 256;
+ while (len <= 32768) {
+ byte[] bs = new byte[len];
+ count = 0;
+ start = System.currentTimeMillis();
+ do {
+ p.bytes(bs);
+ count++;
+ } while(count < 1000);
+ end = System.currentTimeMillis();
+ long ms = end-start;
+ double cps = (count*1000)/ms;
+ double rate = (len*cps)/(1024.0*1024.0);
+ System.out.println(len+" byte array) "+(count*len)+" bytes in "+ms+"ms (in "+count+" calls / "+(int)cps+" CPS): "+rate+"MB/s");
+ len <<= 1;
+ }
+ len = 256;
+ while (len <= 32768) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < len; i++) sb.append('a');
+ String s = sb.toString();
+ end = System.currentTimeMillis()+500;
+ count = 0;
+ do {
+ p.string(s);
+ count++;
+ } while(count < 1000);
+ long ms = end-start;
+ double cps = (count*1000)/ms;
+ double rate = (len*cps)/(1024.0*1024.0);
+ System.out.println(len+" string) "+(count*len)+" bytes in "+ms+"ms (in "+count+" calls / "+(int)cps+" CPS): "+rate+"MB/s");
+ len <<= 1;
+ }
+ } else if ("signals".equals(args[0])) {
+ int count = SIGNAL_OUTER*SIGNAL_INNER;
+ System.out.print("Sending "+count+" signals");
+ ProfileHandler ph = new ProfileHandler();
+ conn.addSigHandler(Profiler.ProfileSignal.class, ph);
+ Log l = new Log(count);
+ Profiler.ProfileSignal ps = new Profiler.ProfileSignal("/");
+ long t = System.currentTimeMillis();
+ for (int i = 0; i < SIGNAL_OUTER; i++) {
+ for (int j = 0; j < SIGNAL_INNER; j++) {
+ l.start();
+ conn.sendSignal(ps);
+ l.stop();
+ }
+ System.out.print(".");
+ }
+ t = System.currentTimeMillis()-t;
+ System.out.println(" done.");
+ System.out.println("min/max/avg (ms): "+l.min()+"/"+l.max()+"/"+l.mean());
+ System.out.println("deviation: "+l.stddev());
+ System.out.println("Total time: "+t+"ms");
+ while (ph.c < count) try { Thread.sleep(100); }
+ catch (InterruptedException Ie) {};
+ } else {
+ conn.disconnect();
+ System.out.println("Invalid profile ``"+args[0]+"''.");
+ System.out.println("Syntax: profile <pings|arrays|introspect|maps|bytes|lists|structs|signals>");
+ System.exit(1);
+ }
+ conn.disconnect();
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test.java
new file mode 100755
index 0000000..4ccd696
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test.java
@@ -0,0 +1,965 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import java.text.Collator;
+
+import org.freedesktop.dbus.CallbackHandler;
+import org.freedesktop.dbus.DBusAsyncReply;
+import org.freedesktop.dbus.DBusCallInfo;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusInterface;
+import org.freedesktop.dbus.DBusSigHandler;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.Marshalling;
+import org.freedesktop.dbus.Path;
+import org.freedesktop.dbus.UInt16;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.UInt64;
+import org.freedesktop.dbus.Variant;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.exceptions.NotConnected;
+
+import org.freedesktop.DBus;
+import org.freedesktop.DBus.Error.MatchRuleInvalid;
+import org.freedesktop.DBus.Error.ServiceUnknown;
+import org.freedesktop.DBus.Error.UnknownObject;
+import org.freedesktop.DBus.Peer;
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.DBus.Properties;
+
+class testnewclass implements TestNewInterface
+{
+ public boolean isRemote() { return false; }
+ public String getName()
+ {
+ return toString();
+ }
+}
+
+class testclass implements TestRemoteInterface, TestRemoteInterface2, TestSignalInterface, TestSignalInterface2, Properties
+{
+ private DBusConnection conn;
+ public testclass(DBusConnection conn)
+ {
+ this.conn = conn;
+ }
+ public String Introspect()
+ {
+ return "Not XML";
+ }
+ public int[][] teststructstruct(TestStruct3 in)
+ {
+ List<List<Integer>> lli = in.b;
+ int[][] out = new int[lli.size()][];
+ for (int j = 0; j < out.length; j++) {
+ out[j] = new int[lli.get(j).size()];
+ for (int k = 0; k < out[j].length; k++)
+ out[j][k] = lli.get(j).get(k);
+ }
+ return out;
+ }
+ public float testfloat(float[] f)
+ {
+ if (f.length < 4 ||
+ f[0] != 17.093f ||
+ f[1] != -23f ||
+ f[2] != 0.0f ||
+ f[3] != 31.42f)
+ test.fail("testfloat got incorrect array");
+ return f[0];
+ }
+ public void newpathtest(Path p)
+ {
+ if (!p.toString().equals("/new/path/test"))
+ test.fail("new path test got wrong path");
+ }
+ public void waitawhile()
+ {
+ System.out.println("Sleeping.");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException Ie) {}
+ System.out.println("Done sleeping.");
+ }
+ public <A> TestTuple<String, List<Integer>, Boolean> show(A in)
+ {
+ System.out.println("Showing Stuff: "+in.getClass()+"("+in+")");
+ if (!(in instanceof Integer) || ((Integer) in).intValue() != 234)
+ test.fail("show received the wrong arguments");
+ DBusCallInfo info = DBusConnection.getCallInfo();
+ List<Integer> l = new Vector<Integer>();
+ l.add(1953);
+ return new TestTuple<String,List<Integer>, Boolean>(info.getSource(), l, true);
+ }
+ @SuppressWarnings("unchecked")
+ public <T> T dostuff(TestStruct foo)
+ {
+ System.out.println("Doing Stuff "+foo);
+ System.out.println(" -- ("+foo.a.getClass()+", "+foo.b.getClass()+", "+foo.c.getClass()+")");
+ if (!(foo instanceof TestStruct) ||
+ !(foo.a instanceof String) ||
+ !(foo.b instanceof UInt32) ||
+ !(foo.c instanceof Variant) ||
+ !"bar".equals(foo.a) ||
+ foo.b.intValue() != 52 ||
+ !(foo.c.getValue() instanceof Boolean) ||
+ ((Boolean) foo.c.getValue()).booleanValue() != true)
+ test.fail("dostuff received the wrong arguments");
+ return (T) foo.c.getValue();
+ }
+ /** Local classes MUST implement this to return false */
+ public boolean isRemote() { return false; }
+ /** The method we are exporting to the Bus. */
+ public List<Integer> sampleArray(List<String> ss, Integer[] is, long[] ls)
+ {
+ System.out.println("Got an array:");
+ for (String s: ss)
+ System.out.println("--"+s);
+ if (ss.size()!= 5 ||
+ !"hi".equals(ss.get(0)) ||
+ !"hello".equals(ss.get(1)) ||
+ !"hej".equals(ss.get(2)) ||
+ !"hey".equals(ss.get(3)) ||
+ !"aloha".equals(ss.get(4)))
+ test.fail("sampleArray, String array contents incorrect");
+ System.out.println("Got an array:");
+ for (Integer i: is)
+ System.out.println("--"+i);
+ if (is.length != 4 ||
+ is[0].intValue() != 1 ||
+ is[1].intValue() != 5 ||
+ is[2].intValue() != 7 ||
+ is[3].intValue() != 9)
+ test.fail("sampleArray, Integer array contents incorrect");
+ System.out.println("Got an array:");
+ for (long l: ls)
+ System.out.println("--"+l);
+ if (ls.length != 4 ||
+ ls[0] != 2 ||
+ ls[1] != 6 ||
+ ls[2] != 8 ||
+ ls[3] != 12)
+ test.fail("sampleArray, Integer array contents incorrect");
+ Vector<Integer> v = new Vector<Integer>();
+ v.add(-1);
+ v.add(-5);
+ v.add(-7);
+ v.add(-12);
+ v.add(-18);
+ return v;
+ }
+ public String getName()
+ {
+ return "This Is A UTF-8 Name: س !!";
+ }
+ public String getNameAndThrow() throws TestException
+ {
+ throw new TestException("test");
+ }
+ public boolean check()
+ {
+ System.out.println("Being checked");
+ return false;
+ }
+ public <T> int frobnicate(List<Long> n, Map<String,Map<UInt16,Short>> m, T v)
+ {
+ if (null == n)
+ test.fail("List was null");
+ if (n.size() != 3)
+ test.fail("List was wrong size (expected 3, actual "+n.size()+")");
+ if (n.get(0) != 2L ||
+ n.get(1) != 5L ||
+ n.get(2) != 71L)
+ test.fail("List has wrong contents");
+ if (!(v instanceof Integer))
+ test.fail("v not an Integer");
+ if (((Integer) v) != 13)
+ test.fail("v is incorrect");
+ if (null == m)
+ test.fail("Map was null");
+ if (m.size() != 1)
+ test.fail("Map was wrong size");
+ if (!m.keySet().contains("stuff"))
+ test.fail("Incorrect key");
+ Map<UInt16,Short> mus = m.get("stuff");
+ if (null == mus)
+ test.fail("Sub-Map was null");
+ if (mus.size() != 3)
+ test.fail("Sub-Map was wrong size");
+ if (!(new Short((short)5).equals(mus.get(new UInt16(4)))))
+ test.fail("Sub-Map has wrong contents");
+ if (!(new Short((short)6).equals(mus.get(new UInt16(5)))))
+ test.fail("Sub-Map has wrong contents");
+ if (!(new Short((short)7).equals(mus.get(new UInt16(6)))))
+ test.fail("Sub-Map has wrong contents");
+ return -5;
+ }
+ public DBusInterface getThis(DBusInterface t)
+ {
+ if (!t.equals(this))
+ test.fail("Didn't get this properly");
+ return this;
+ }
+ public void throwme() throws TestException
+ {
+ throw new TestException("test");
+ }
+ public TestSerializable<String> testSerializable(byte b, TestSerializable<String> s, int i)
+ {
+ System.out.println("Recieving TestSerializable: "+s);
+ if ( b != 12
+ || i != 13
+ || !(s.getInt() == 1)
+ || !(s.getString().equals("woo"))
+ || !(s.getVector().size() == 3)
+ || !(s.getVector().get(0) == 1)
+ || !(s.getVector().get(1) == 2)
+ || !(s.getVector().get(2) == 3) )
+ test.fail("Error in recieving custom synchronisation");
+ return s;
+ }
+ public String recursionTest()
+ {
+ try {
+ TestRemoteInterface tri = conn.getRemoteObject("foo.bar.Test", "/Test", TestRemoteInterface.class);
+ return tri.getName();
+ } catch (DBusException DBe) {
+ test.fail("Failed with error: "+DBe);
+ return "";
+ }
+ }
+ public int overload(String s)
+ {
+ return 1;
+ }
+ public int overload(byte b)
+ {
+ return 2;
+ }
+ public int overload()
+ {
+ DBusCallInfo info = DBusConnection.getCallInfo();
+ if ("org.freedesktop.dbus.test.AlternateTestInterface".equals(info.getInterface()))
+ return 3;
+ else if ("org.freedesktop.dbus.test.TestRemoteInterface".equals(info.getInterface()))
+ return 4;
+ else
+ return -1;
+ }
+ public List<List<Integer>> checklist(List<List<Integer>> lli)
+ {
+ return lli;
+ }
+ public TestNewInterface getNew()
+ {
+ testnewclass n = new testnewclass();
+ try {
+ conn.exportObject("/new", n);
+ } catch (DBusException DBe)
+ { throw new DBusExecutionException(DBe.getMessage()); }
+ return n;
+ }
+ public void sig(Type[] s)
+ {
+ if (s.length != 2
+ || !s[0].equals(Byte.class)
+ || ! (s[1] instanceof ParameterizedType)
+ || ! Map.class.equals(((ParameterizedType) s[1]).getRawType())
+ || ((ParameterizedType) s[1]).getActualTypeArguments().length != 2
+ || ! String.class.equals(((ParameterizedType) s[1]).getActualTypeArguments()[0])
+ || ! Integer.class.equals(((ParameterizedType) s[1]).getActualTypeArguments()[1]))
+ test.fail("Didn't send types correctly");
+ }
+ @SuppressWarnings("unchecked")
+ public void complexv(Variant<? extends Object> v)
+ {
+ if (!"a{ss}".equals(v.getSig())
+ || ! (v.getValue() instanceof Map)
+ || ((Map<Object,Object>) v.getValue()).size() != 1
+ || !"moo".equals(((Map<Object,Object>) v.getValue()).get("cow")))
+ test.fail("Didn't send variant correctly");
+ }
+ public void reg13291(byte[] as, byte[] bs)
+ {
+ if (as.length != bs.length) test.fail("didn't receive identical byte arrays");
+ for (int i = 0; i < as.length; i++)
+ if (as[i] != bs[i]) test.fail("didn't receive identical byte arrays");
+ }
+ @SuppressWarnings("unchecked")
+ public <A> A Get (String interface_name, String property_name)
+ {
+ return (A) new Path("/nonexistant/path");
+ }
+ public <A> void Set (String interface_name, String property_name, A value) {}
+ public Map<String, Variant> GetAll (String interface_name) { return new HashMap<String,Variant>(); }
+ public Path pathrv(Path a) { return a; }
+ public List<Path> pathlistrv(List<Path> a) { return a; }
+ public Map<Path,Path> pathmaprv(Map<Path,Path> a) { return a; }
+}
+
+/**
+ * Typed signal handler for renamed signal
+ */
+class renamedsignalhandler implements DBusSigHandler<TestSignalInterface2.TestRenamedSignal>
+{
+ /** Handling a signal */
+ public void handle(TestSignalInterface2.TestRenamedSignal t)
+ {
+ if (false == test.done5) {
+ test.done5 = true;
+ } else {
+ test.fail("SignalHandler R has been run too many times");
+ }
+ System.out.println("SignalHandler R Running");
+ System.out.println("string("+t.value+") int("+t.number+")");
+ if (!"Bar".equals(t.value) || !(new UInt32(42)).equals(t.number))
+ test.fail("Incorrect TestRenamedSignal parameters");
+ }
+}
+
+/**
+ * Empty signal handler
+ */
+class emptysignalhandler implements DBusSigHandler<TestSignalInterface.EmptySignal>
+{
+ /** Handling a signal */
+ public void handle(TestSignalInterface.EmptySignal t)
+ {
+ if (false == test.done7) {
+ test.done7 = true;
+ } else {
+ test.fail("SignalHandler E has been run too many times");
+ }
+ System.out.println("SignalHandler E Running");
+ }
+}
+/**
+ * Disconnect handler
+ */
+class disconnecthandler implements DBusSigHandler<DBus.Local.Disconnected>
+{
+ private DBusConnection conn;
+ private renamedsignalhandler sh;
+ public disconnecthandler(DBusConnection conn, renamedsignalhandler sh)
+ {
+ this.conn = conn;
+ this.sh = sh;
+ }
+ /** Handling a signal */
+ public void handle(DBus.Local.Disconnected t)
+ {
+ if (false == test.done6) {
+ test.done6 = true;
+ System.out.println("Handling disconnect, unregistering handler");
+ try {
+ conn.removeSigHandler(TestSignalInterface2.TestRenamedSignal.class, sh);
+ } catch (DBusException DBe) {
+ DBe.printStackTrace();
+ test.fail("Disconnect handler threw an exception: "+DBe);
+ }
+ }
+ }
+}
+
+
+/**
+ * Typed signal handler
+ */
+class pathsignalhandler implements DBusSigHandler<TestSignalInterface.TestPathSignal>
+{
+ /** Handling a signal */
+ public void handle(TestSignalInterface.TestPathSignal t)
+ {
+ System.out.println("Path sighandler: "+t);
+ }
+}
+
+/**
+ * Typed signal handler
+ */
+class signalhandler implements DBusSigHandler<TestSignalInterface.TestSignal>
+{
+ /** Handling a signal */
+ public void handle(TestSignalInterface.TestSignal t)
+ {
+ if (false == test.done1) {
+ test.done1 = true;
+ } else {
+ test.fail("SignalHandler 1 has been run too many times");
+ }
+ System.out.println("SignalHandler 1 Running");
+ System.out.println("string("+t.value+") int("+t.number+")");
+ if (!"Bar".equals(t.value) || !(new UInt32(42)).equals(t.number))
+ test.fail("Incorrect TestSignal parameters");
+ }
+}
+
+/**
+ * Untyped signal handler
+ */
+class arraysignalhandler implements DBusSigHandler<TestSignalInterface.TestArraySignal>
+{
+ /** Handling a signal */
+ public void handle(TestSignalInterface.TestArraySignal t)
+ {
+ try {
+ if (false == test.done2) {
+ test.done2 = true;
+ } else {
+ test.fail("SignalHandler 2 has been run too many times");
+ }
+ System.out.println("SignalHandler 2 Running");
+ if (t.v.size() != 1) test.fail("Incorrect TestArraySignal array length: should be 1, actually "+t.v.size());
+ System.out.println("Got a test array signal with Parameters: ");
+ for (String str: t.v.get(0).a)
+ System.out.println("--"+str);
+ System.out.println(t.v.get(0).b.getType());
+ System.out.println(t.v.get(0).b.getValue());
+ if (!(t.v.get(0).b.getValue() instanceof UInt64) ||
+ 567L != ((UInt64) t.v.get(0).b.getValue()).longValue() ||
+ t.v.get(0).a.size() != 5 ||
+ !"hi".equals(t.v.get(0).a.get(0)) ||
+ !"hello".equals(t.v.get(0).a.get(1)) ||
+ !"hej".equals(t.v.get(0).a.get(2)) ||
+ !"hey".equals(t.v.get(0).a.get(3)) ||
+ !"aloha".equals(t.v.get(0).a.get(4)))
+ test.fail("Incorrect TestArraySignal parameters");
+
+ if (t.m.keySet().size() != 2) test.fail("Incorrect TestArraySignal map size: should be 2, actually "+t.m.keySet().size());
+ if (!(t.m.get(new UInt32(1)).b.getValue() instanceof UInt64) ||
+ 678L != ((UInt64) t.m.get(new UInt32(1)).b.getValue()).longValue() ||
+ !(t.m.get(new UInt32(42)).b.getValue() instanceof UInt64) ||
+ 789L != ((UInt64) t.m.get(new UInt32(42)).b.getValue()).longValue())
+ test.fail("Incorrect TestArraySignal parameters");
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ test.fail("SignalHandler 2 threw an exception: "+e);
+ }
+ }
+}
+
+/**
+ * Object path signal handler
+ */
+class objectsignalhandler implements DBusSigHandler<TestSignalInterface.TestObjectSignal>
+{
+ public void handle(TestSignalInterface.TestObjectSignal s)
+ {
+ if (false == test.done3) {
+ test.done3 = true;
+ } else {
+ test.fail("SignalHandler 3 has been run too many times");
+ }
+ System.out.println(s.otherpath);
+ }
+}
+
+/**
+ * handler which should never be called
+ */
+class badarraysignalhandler<T extends DBusSignal> implements DBusSigHandler<T>
+{
+ /** Handling a signal */
+ public void handle(T s)
+ {
+ test.fail("This signal handler shouldn't be called");
+ }
+}
+
+/**
+ * Callback handler
+ */
+class callbackhandler implements CallbackHandler<String>
+{
+ public void handle(String r)
+ {
+ System.out.println("Handling callback: "+r);
+ Collator col = Collator.getInstance();
+ col.setDecomposition(Collator.FULL_DECOMPOSITION);
+ col.setStrength(Collator.PRIMARY);
+ if (0 != col.compare("This Is A UTF-8 Name: ﺱ !!", r))
+ test.fail("call with callback, wrong return value");
+ if (test.done4) test.fail("Already ran callback handler");
+ test.done4 = true;
+ }
+ public void handleError(DBusExecutionException e)
+ {
+ System.out.println("Handling error callback: "+e+" message = '"+e.getMessage()+"'");
+ if (!(e instanceof TestException)) test.fail("Exception is of the wrong sort");
+ Collator col = Collator.getInstance();
+ col.setDecomposition(Collator.FULL_DECOMPOSITION);
+ col.setStrength(Collator.PRIMARY);
+ if (0 != col.compare("test", e.getMessage()))
+ test.fail("Exception has the wrong message");
+ if (test.done8) test.fail("Already ran callback error handler");
+ test.done8=true;
+ }
+}
+
+/**
+ * This is a test program which sends and recieves a signal, implements, exports and calls a remote method.
+ */
+public class test
+{
+ public static boolean done1 = false;
+ public static boolean done2 = false;
+ public static boolean done3 = false;
+ public static boolean done4 = false;
+ public static boolean done5 = false;
+ public static boolean done6 = false;
+ public static boolean done7 = false;
+ public static boolean done8 = false;
+ public static void fail(String message)
+ {
+ System.out.println("Test Failed: "+message);
+ System.err.println("Test Failed: "+message);
+ if (null != serverconn) serverconn.disconnect();
+ if (null != clientconn) clientconn.disconnect();
+ System.exit(1);
+ }
+ static DBusConnection serverconn = null;
+ static DBusConnection clientconn = null;
+ @SuppressWarnings("unchecked")
+ public static void main(String[] args)
+ { try {
+ System.out.println("Creating Connection");
+ serverconn = DBusConnection.getConnection(DBusConnection.SESSION);
+ clientconn = DBusConnection.getConnection(DBusConnection.SESSION);
+ serverconn.setWeakReferences(true);
+ clientconn.setWeakReferences(true);
+
+ System.out.println("Registering Name");
+ serverconn.requestBusName("foo.bar.Test");
+
+ /** This gets a remote object matching our bus name and exported object path. */
+ Peer peer = clientconn.getRemoteObject("foo.bar.Test", "/Test", Peer.class);
+ DBus dbus = clientconn.getRemoteObject("org.freedesktop.DBus", "/org/freedesktop/DBus", DBus.class);
+
+ System.out.print("Listening for signals...");
+ signalhandler sigh = new signalhandler();
+ renamedsignalhandler rsh = new renamedsignalhandler();
+ try {
+ /** This registers an instance of the test class as the signal handler for the TestSignal class. */
+ clientconn.addSigHandler(TestSignalInterface.EmptySignal.class, new emptysignalhandler());
+ clientconn.addSigHandler(TestSignalInterface.TestSignal.class, sigh);
+ clientconn.addSigHandler(TestSignalInterface2.TestRenamedSignal.class, rsh);
+ clientconn.addSigHandler(DBus.Local.Disconnected.class, new disconnecthandler(clientconn, rsh));
+ String source = dbus.GetNameOwner("foo.bar.Test");
+ clientconn.addSigHandler(TestSignalInterface.TestArraySignal.class, source, peer, new arraysignalhandler());
+ clientconn.addSigHandler(TestSignalInterface.TestObjectSignal.class, new objectsignalhandler());
+ clientconn.addSigHandler(TestSignalInterface.TestPathSignal.class, new pathsignalhandler());
+ badarraysignalhandler<TestSignalInterface.TestSignal> bash = new badarraysignalhandler<TestSignalInterface.TestSignal>();
+ clientconn.addSigHandler(TestSignalInterface.TestSignal.class, bash);
+ clientconn.removeSigHandler(TestSignalInterface.TestSignal.class, bash);
+ System.out.println("done");
+ } catch (MatchRuleInvalid MRI) {
+ test.fail("Failed to add handlers: "+MRI.getMessage());
+ } catch (DBusException DBe) {
+ test.fail("Failed to add handlers: "+DBe.getMessage());
+ }
+
+ System.out.println("Listening for Method Calls");
+ testclass tclass = new testclass(serverconn);
+ testclass tclass2 = new testclass(serverconn);
+ /** This exports an instance of the test class as the object /Test. */
+ serverconn.exportObject("/Test", tclass);
+ serverconn.exportObject("/BadTest", tclass);
+ serverconn.exportObject("/BadTest2", tclass2);
+ serverconn.addFallback("/FallbackTest", tclass);
+
+ // explicitly unexport object
+ serverconn.unExportObject("/BadTest");
+ // implicitly unexport object
+ tclass2 = null;
+ System.gc();
+ System.runFinalization();
+ System.gc();
+ System.runFinalization();
+ System.gc();
+ System.runFinalization();
+
+ System.out.println("Sending Signal");
+ /** This creates an instance of the Test Signal, with the given object path, signal name and parameters, and broadcasts in on the Bus. */
+ serverconn.sendSignal(new TestSignalInterface.TestSignal("/foo/bar/Wibble", "Bar", new UInt32(42)));
+ serverconn.sendSignal(new TestSignalInterface.EmptySignal("/foo/bar/Wibble"));
+ serverconn.sendSignal(new TestSignalInterface2.TestRenamedSignal("/foo/bar/Wibble", "Bar", new UInt32(42)));
+
+ System.out.println("These things are on the bus:");
+ String[] names = dbus.ListNames();
+ for (String name: names)
+ System.out.println("\t"+name);
+
+ System.out.println("Getting our introspection data");
+ /** This gets a remote object matching our bus name and exported object path. */
+ Introspectable intro = clientconn.getRemoteObject("foo.bar.Test", "/", Introspectable.class);
+ /** Get introspection data */
+ String data;/* = intro.Introspect();
+ if (null == data || !data.startsWith("<!DOCTYPE"))
+ fail("Introspection data invalid");
+ System.out.println("Got Introspection Data: \n"+data);*/
+ intro = clientconn.getRemoteObject("foo.bar.Test", "/Test", Introspectable.class);
+ /** Get introspection data */
+ data = intro.Introspect();
+ if (null == data || !data.startsWith("<!DOCTYPE"))
+ fail("Introspection data invalid");
+ System.out.println("Got Introspection Data: \n"+data);
+
+ // setup bus name set
+ Set<String> peers = serverconn.new PeerSet();
+ peers.add("org.freedesktop.DBus");
+ clientconn.requestBusName("test.testclient");
+ peers.add("test.testclient");
+ clientconn.releaseBusName("test.testclient");
+
+ System.out.println("Pinging ourselves");
+ /** Call ping. */
+ for (int i = 0; i < 10; i++) {
+ long then = System.currentTimeMillis();
+ peer.Ping();
+ long now = System.currentTimeMillis();
+ System.out.println("Ping returned in "+(now-then)+"ms.");
+ }
+
+ System.out.println("Calling Method0/1");
+ /** This gets a remote object matching our bus name and exported object path. */
+ TestRemoteInterface tri = (TestRemoteInterface) clientconn.getPeerRemoteObject("foo.bar.Test", "/Test");
+ System.out.println("Got Remote Object: "+tri);
+ /** Call the remote object and get a response. */
+ String rname = tri.getName();
+ System.out.println("Got Remote Name: "+rname);
+
+ Path path = new Path("/nonexistantwooooooo");
+ Path p = tri.pathrv(path);
+ System.out.println(path.toString()+" => "+p.toString());
+ if (!path.equals(p)) fail("pathrv incorrect");
+ List<Path> paths = new Vector<Path>();
+ paths.add(path);
+ List<Path> ps = tri.pathlistrv(paths);
+ System.out.println(paths.toString()+" => "+ps.toString());
+ if (!paths.equals(ps)) fail("pathlistrv incorrect");
+ Map<Path, Path> pathm = new HashMap<Path, Path>();
+ pathm.put(path, path);
+ Map<Path, Path> pm = tri.pathmaprv(pathm);
+ System.out.println(pathm.toString()+" => "+pm.toString());
+ System.out.println(pm.containsKey(path)+" "+pm.get(path)+" "+path.equals(pm.get(path)));
+ System.out.println(pm.containsKey(p)+" "+pm.get(p)+" "+p.equals(pm.get(p)));
+ for (Path q: pm.keySet()) {
+ System.out.println(q);
+ System.out.println(pm.get(q));
+ }
+ if (!pm.containsKey(path) || !path.equals(pm.get(path))) fail("pathmaprv incorrect");
+
+ serverconn.sendSignal(new TestSignalInterface.TestPathSignal("/Test", path, paths, pathm));
+
+ Collator col = Collator.getInstance();
+ col.setDecomposition(Collator.FULL_DECOMPOSITION);
+ col.setStrength(Collator.PRIMARY);
+ if (0 != col.compare("This Is A UTF-8 Name: ﺱ !!", rname))
+ fail("getName return value incorrect");
+ System.out.println("sending it to sleep");
+ tri.waitawhile();
+ System.out.println("testing floats");
+ if (17.093f != tri.testfloat(new float[] { 17.093f, -23f, 0.0f, 31.42f }))
+ fail("testfloat returned the wrong thing");
+ System.out.println("Structs of Structs");
+ List<List<Integer>> lli = new Vector<List<Integer>>();
+ List<Integer> li = new Vector<Integer>();
+ li.add(1);
+ li.add(2);
+ li.add(3);
+ lli.add(li);
+ lli.add(li);
+ lli.add(li);
+ TestStruct3 ts3 = new TestStruct3(new TestStruct2(new Vector<String>(), new Variant<Integer>(0)), lli);
+ int[][] out = tri.teststructstruct(ts3);
+ if (out.length != 3) fail("teststructstruct returned the wrong thing: "+Arrays.deepToString(out));
+ for (int[] o: out)
+ if (o.length != 3
+ ||o[0] != 1
+ ||o[1] != 2
+ ||o[2] != 3) fail("teststructstruct returned the wrong thing: "+Arrays.deepToString(out));
+
+ System.out.println("frobnicating");
+ List<Long> ls = new Vector<Long>();
+ ls.add(2L);
+ ls.add(5L);
+ ls.add(71L);
+ Map<UInt16,Short> mus = new HashMap<UInt16,Short>();
+ mus.put(new UInt16(4), (short) 5);
+ mus.put(new UInt16(5), (short) 6);
+ mus.put(new UInt16(6), (short) 7);
+ Map<String,Map<UInt16,Short>> msmus = new HashMap<String,Map<UInt16,Short>>();
+ msmus.put("stuff", mus);
+ int rint = tri.frobnicate(ls, msmus, 13);
+ if (-5 != rint)
+ fail("frobnicate return value incorrect");
+
+ System.out.println("Doing stuff asynchronously with callback");
+ clientconn.callWithCallback(tri, "getName", new callbackhandler());
+ System.out.println("Doing stuff asynchronously with callback, which throws an error");
+ clientconn.callWithCallback(tri, "getNameAndThrow", new callbackhandler());
+
+ /** call something that throws */
+ try {
+ System.out.println("Throwing stuff");
+ tri.throwme();
+ test.fail("Method Execution should have failed");
+ } catch (TestException Te) {
+ System.out.println("Remote Method Failed with: "+Te.getClass().getName()+" "+Te.getMessage());
+ if (!Te.getMessage().equals("test"))
+ test.fail("Error message was not correct");
+ }
+
+ /* Test type signatures */
+ Vector<Type> ts = new Vector<Type>();
+ Marshalling.getJavaType("ya{si}", ts, -1);
+ tri.sig(ts.toArray(new Type[0]));
+
+ tri.newpathtest(new Path("/new/path/test"));
+
+ /** Try and call an invalid remote object */
+ try {
+ System.out.println("Calling Method2");
+ tri = clientconn.getRemoteObject("foo.bar.NotATest", "/Moofle", TestRemoteInterface.class);
+ System.out.println("Got Remote Name: "+tri.getName());
+ test.fail("Method Execution should have failed");
+ } catch (ServiceUnknown SU) {
+ System.out.println("Remote Method Failed with: "+SU.getClass().getName()+" "+SU.getMessage());
+ }
+
+ /** Try and call an invalid remote object */
+ try {
+ System.out.println("Calling Method3");
+ tri = clientconn.getRemoteObject("foo.bar.Test", "/Moofle", TestRemoteInterface.class);
+ System.out.println("Got Remote Name: "+tri.getName());
+ test.fail("Method Execution should have failed");
+ } catch (UnknownObject UO) {
+ System.out.println("Remote Method Failed with: "+UO.getClass().getName()+" "+UO.getMessage());
+ }
+
+ /** Try and call an explicitly unexported object */
+ try {
+ System.out.println("Calling Method4");
+ tri = clientconn.getRemoteObject("foo.bar.Test", "/BadTest", TestRemoteInterface.class);
+ System.out.println("Got Remote Name: "+tri.getName());
+ test.fail("Method Execution should have failed");
+ } catch (UnknownObject UO) {
+ System.out.println("Remote Method Failed with: "+UO.getClass().getName()+" "+UO.getMessage());
+ }
+
+ /** Try and call an implicitly unexported object */
+ try {
+ System.out.println("Calling Method5");
+ tri = clientconn.getRemoteObject("foo.bar.Test", "/BadTest2", TestRemoteInterface.class);
+ System.out.println("Got Remote Name: "+tri.getName());
+ test.fail("Method Execution should have failed");
+ } catch (UnknownObject UO) {
+ System.out.println("Remote Method Failed with: "+UO.getClass().getName()+" "+UO.getMessage());
+ }
+
+ System.out.println("Calling Method6");
+ tri = clientconn.getRemoteObject("foo.bar.Test", "/FallbackTest/0/1", TestRemoteInterface.class);
+ intro = clientconn.getRemoteObject("foo.bar.Test", "/FallbackTest/0/4", Introspectable.class);
+ System.out.println("Got Fallback Name: "+tri.getName());
+ System.out.println("Fallback Introspection Data: \n"+intro.Introspect());
+
+ System.out.println("Testing Properties returning Paths");
+ Properties prop = clientconn.getRemoteObject("foo.bar.Test", "/Test", Properties.class);
+ Path prv = (Path) prop.Get("foo.bar", "foo");
+ System.out.println("Got path "+prv);
+ System.out.println("Calling Method7--9");
+ /** This gets a remote object matching our bus name and exported object path. */
+ TestRemoteInterface2 tri2 = clientconn.getRemoteObject("foo.bar.Test", "/Test", TestRemoteInterface2.class);
+ System.out.print("Calling the other introspect method: ");
+ String intro2 = tri2.Introspect();
+ System.out.println(intro2);
+ if (0 != col.compare("Not XML", intro2))
+ fail("Introspect return value incorrect");
+
+ /** Call the remote object and get a response. */
+ TestTuple<String,List<Integer>,Boolean> rv = tri2.show(234);
+ System.out.println("Show returned: "+rv);
+ if (!serverconn.getUniqueName().equals(rv.a) ||
+ 1 != rv.b.size() ||
+ 1953 != rv.b.get(0) ||
+ true != rv.c.booleanValue())
+ fail("show return value incorrect ("+rv.a+","+rv.b+","+rv.c+")");
+
+ System.out.println("Doing stuff asynchronously");
+ DBusAsyncReply<Boolean> stuffreply = (DBusAsyncReply<Boolean>) clientconn.callMethodAsync(tri2, "dostuff", new TestStruct("bar", new UInt32(52), new Variant<Boolean>(new Boolean(true))));
+
+ System.out.println("Checking bools");
+ if (tri2.check()) fail("bools are broken");
+
+ List<String> l = new Vector<String>();
+ l.add("hi");
+ l.add("hello");
+ l.add("hej");
+ l.add("hey");
+ l.add("aloha");
+ System.out.println("Sampling Arrays:");
+ List<Integer> is = tri2.sampleArray(l, new Integer[] { 1, 5, 7, 9 }, new long[] { 2, 6, 8, 12 });
+ System.out.println("sampleArray returned an array:");
+ for (Integer i: is)
+ System.out.println("--"+i);
+ if (is.size() != 5 ||
+ is.get(0).intValue() != -1 ||
+ is.get(1).intValue() != -5 ||
+ is.get(2).intValue() != -7 ||
+ is.get(3).intValue() != -12 ||
+ is.get(4).intValue() != -18)
+ fail("sampleArray return value incorrect");
+
+ System.out.println("Get This");
+ if (!tclass.equals(tri2.getThis(tri2)))
+ fail("Didn't get the correct this");
+
+ Boolean b = stuffreply.getReply();
+ System.out.println("Do stuff replied "+b);
+ if (true != b.booleanValue())
+ fail("dostuff return value incorrect");
+
+ System.out.print("Sending Array Signal...");
+ /** This creates an instance of the Test Signal, with the given object path, signal name and parameters, and broadcasts in on the Bus. */
+ List<TestStruct2> tsl = new Vector<TestStruct2>();
+ tsl.add(new TestStruct2(l, new Variant<UInt64>(new UInt64(567))));
+ Map<UInt32, TestStruct2> tsm = new HashMap<UInt32, TestStruct2>();
+ tsm.put(new UInt32(1), new TestStruct2(l, new Variant<UInt64>(new UInt64(678))));
+ tsm.put(new UInt32(42), new TestStruct2(l, new Variant<UInt64>(new UInt64(789))));
+ serverconn.sendSignal(new TestSignalInterface.TestArraySignal("/Test", tsl, tsm));
+
+ System.out.println("done");
+
+ System.out.print("testing custom serialization...");
+ Vector<Integer> v = new Vector<Integer>();
+ v.add(1);
+ v.add(2);
+ v.add(3);
+ TestSerializable<String> s = new TestSerializable<String>(1, "woo", v);
+ s = tri2.testSerializable((byte) 12, s, 13);
+ System.out.print("returned: "+s);
+ if (s.getInt() != 1 ||
+ ! s.getString().equals("woo") ||
+ s.getVector().size() != 3 ||
+ s.getVector().get(0) != 1 ||
+ s.getVector().get(1) != 2 ||
+ s.getVector().get(2) != 3)
+ fail("Didn't get back the same TestSerializable");
+
+ System.out.println("done");
+
+ System.out.print("testing complex variants...");
+ Map m = new HashMap();
+ m.put("cow", "moo");
+ tri2.complexv(new Variant(m, "a{ss}"));
+ System.out.println("done");
+
+ System.out.print("testing recursion...");
+
+ if (0 != col.compare("This Is A UTF-8 Name: ﺱ !!",tri2.recursionTest())) fail("recursion test failed");
+
+ System.out.println("done");
+
+ System.out.print("testing method overloading...");
+ tri = clientconn.getRemoteObject("foo.bar.Test", "/Test", TestRemoteInterface.class);
+ if (1 != tri2.overload("foo")) test.fail("wrong overloaded method called");
+ if (2 != tri2.overload((byte) 0)) test.fail("wrong overloaded method called");
+ if (3 != tri2.overload()) test.fail("wrong overloaded method called");
+ if (4 != tri.overload()) test.fail("wrong overloaded method called");
+ System.out.println("done");
+
+ System.out.print("reg13291...");
+ byte[] as = new byte[10];
+ for (int i = 0; i < 10; i++)
+ as[i] = (byte) (100-i);
+ tri.reg13291(as, as);
+ System.out.println("done");
+
+ System.out.print("Testing nested lists...");
+ lli = new Vector<List<Integer>>();
+ li = new Vector<Integer>();
+ li.add(1);
+ lli.add(li);
+ List<List<Integer>> reti = tri2.checklist(lli);
+ if (reti.size() != 1 ||
+ reti.get(0).size() != 1 ||
+ reti.get(0).get(0) != 1)
+ test.fail("Failed to check nested lists");
+ System.out.println("done");
+
+ System.out.print("Testing dynamic object creation...");
+ TestNewInterface tni = tri2.getNew();
+ System.out.print(tni.getName()+" ");
+ System.out.println("done");
+
+ /* send an object in a signal */
+ serverconn.sendSignal(new TestSignalInterface.TestObjectSignal("/foo/bar/Wibble", tclass));
+
+ /** Pause while we wait for the DBus messages to go back and forth. */
+ Thread.sleep(1000);
+
+ // check that bus name set has been trimmed
+ if (peers.size() != 1) fail("peers hasn't been trimmed");
+ if (!peers.contains("org.freedesktop.DBus")) fail ("peers contains the wrong name");
+
+ System.out.println("Checking for outstanding errors");
+ DBusExecutionException DBEe = serverconn.getError();
+ if (null != DBEe) throw DBEe;
+ DBEe = clientconn.getError();
+ if (null != DBEe) throw DBEe;
+
+ System.out.println("Disconnecting");
+ /** Disconnect from the bus. */
+ clientconn.disconnect();
+ serverconn.disconnect();
+
+ System.out.println("Trying to do things after disconnection");
+
+ /** Remove sig handler */
+ clientconn.removeSigHandler(TestSignalInterface.TestSignal.class, sigh);
+
+ /** Call a method when disconnected */
+ try {
+ System.out.println("getName() suceeded and returned: "+tri.getName());
+ fail("Should not succeed when disconnected");
+ } catch (NotConnected NC) {
+ System.out.println("getName() failed with exception "+NC);
+ }
+ clientconn = null;
+ serverconn = null;
+
+ if (!done1) fail("Signal handler 1 failed to be run");
+ if (!done2) fail("Signal handler 2 failed to be run");
+ if (!done3) fail("Signal handler 3 failed to be run");
+ if (!done4) fail("Callback handler failed to be run");
+ if (!done5) fail("Signal handler R failed to be run");
+ if (!done6) fail("Disconnect handler failed to be run");
+ if (!done7) fail("Signal handler E failed to be run");
+ if (!done8) fail("Error callback handler failed to be run");
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("Unexpected Exception Occurred: "+e);
+ }}
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_low_level.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_low_level.java
new file mode 100755
index 0000000..e65956d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_low_level.java
@@ -0,0 +1,56 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+import cx.ath.matthew.debug.Debug;
+import org.freedesktop.dbus.BusAddress;
+import org.freedesktop.dbus.DBusSignal;
+import org.freedesktop.dbus.Message;
+import org.freedesktop.dbus.MethodCall;
+import org.freedesktop.dbus.Transport;
+
+public class test_low_level
+{
+ public static void main(String[] args) throws Exception
+ {
+ Debug.setHexDump(true);
+ String addr = System.getenv("DBUS_SESSION_BUS_ADDRESS");
+ Debug.print(addr);
+ BusAddress address = new BusAddress(addr);
+ Debug.print(address);
+
+ Transport conn = new Transport(address);
+
+ Message m = new MethodCall("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "Hello", (byte) 0, null);
+ conn.mout.writeMessage(m);
+ m = conn.min.readMessage();
+ Debug.print(m.getClass());
+ Debug.print(m);
+ m = conn.min.readMessage();
+ Debug.print(m.getClass());
+ Debug.print(m);
+ m = conn.min.readMessage();
+ Debug.print(""+m);
+ m = new MethodCall("org.freedesktop.DBus", "/", null, "Hello", (byte) 0, null);
+ conn.mout.writeMessage(m);
+ m = conn.min.readMessage();
+ Debug.print(m);
+
+ m = new MethodCall("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "RequestName", (byte) 0, "su", "org.testname", 0);
+ conn.mout.writeMessage(m);
+ m = conn.min.readMessage();
+ Debug.print(m);
+ m = new DBusSignal(null, "/foo", "org.foo", "Foo", null);
+ conn.mout.writeMessage(m);
+ m = conn.min.readMessage();
+ Debug.print(m);
+ conn.disconnect();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_client.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_client.java
new file mode 100755
index 0000000..aafbca4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_client.java
@@ -0,0 +1,42 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+
+import org.freedesktop.DBus;
+import org.freedesktop.dbus.DirectConnection;
+
+public class test_p2p_client
+{
+ public static void main(String[] args) throws Exception
+ {
+ BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream("address")));
+ String address = r.readLine();
+ DirectConnection dc = new DirectConnection(address);
+ System.out.println("Connected");
+ TestRemoteInterface tri = (TestRemoteInterface) dc.getRemoteObject("/Test");
+ System.out.println(tri.getName());
+ System.out.println(tri.testfloat(new float[] { 17.093f, -23f, 0.0f, 31.42f }));
+
+ try {
+ tri.throwme();
+ } catch (TestException Te) {
+ System.out.println("Caught TestException");
+ }
+ ((DBus.Peer) tri).Ping();
+ System.out.println(((DBus.Introspectable) tri).Introspect());
+ dc.disconnect();
+ System.out.println("Disconnected");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_server.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_server.java
new file mode 100755
index 0000000..6840694
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/test_p2p_server.java
@@ -0,0 +1,94 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import java.lang.reflect.Type;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.freedesktop.dbus.DirectConnection;
+import org.freedesktop.dbus.Path;
+import org.freedesktop.dbus.UInt16;
+
+public class test_p2p_server implements TestRemoteInterface
+{
+ public int[][] teststructstruct(TestStruct3 in)
+ {
+ List<List<Integer>> lli = in.b;
+ int[][] out = new int[lli.size()][];
+ for (int j = 0; j < out.length; j++) {
+ out[j] = new int[lli.get(j).size()];
+ for (int k = 0; k < out[j].length; k++)
+ out[j][k] = lli.get(j).get(k);
+ }
+ return out;
+ }
+ public String getNameAndThrow()
+ {
+ return getName();
+ }
+ public String getName()
+ {
+ System.out.println("getName called");
+ return "Peer2Peer Server";
+ }
+ public <T> int frobnicate(List<Long> n, Map<String,Map<UInt16,Short>> m, T v)
+ {
+ return 3;
+ }
+ public void throwme() throws TestException
+ {
+ System.out.println("throwme called");
+ throw new TestException("BOO");
+ }
+ public void waitawhile()
+ {
+ return;
+ }
+ public int overload()
+ {
+ return 1;
+ }
+ public void sig(Type[] s)
+ {
+ }
+ public void newpathtest(Path p)
+ {
+ }
+ public void reg13291(byte[] as, byte[] bs)
+ {
+ }
+ public Path pathrv(Path a) { return a; }
+ public List<Path> pathlistrv(List<Path> a) { return a; }
+ public Map<Path,Path> pathmaprv(Map<Path,Path> a) { return a; }
+ public boolean isRemote() { return false; }
+ public float testfloat(float[] f)
+ {
+ System.out.println("got float: "+Arrays.toString(f));
+ return f[0];
+ }
+
+ public static void main(String[] args) throws Exception
+ {
+ String address = DirectConnection.createDynamicSession();
+ //String address = "tcp:host=localhost,port=12344,guid="+Transport.genGUID();
+ PrintWriter w = new PrintWriter(new FileOutputStream("address"));
+ w.println(address);
+ w.flush();
+ w.close();
+ DirectConnection dc = new DirectConnection(address+",listen=true");
+ System.out.println("Connected");
+ dc.exportObject("/Test", new test_p2p_server());
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_client.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_client.java
new file mode 100755
index 0000000..f37e955
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_client.java
@@ -0,0 +1,42 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusConnection;
+
+public class two_part_test_client
+{
+ public static class two_part_test_object implements TwoPartObject
+ {
+ public boolean isRemote() { return false; }
+ public String getName()
+ {
+ System.out.println("client name");
+ return toString();
+ }
+ }
+ public static void main(String[] args) throws Exception
+ {
+ System.out.println("get conn");
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ System.out.println("get remote");
+ TwoPartInterface remote = conn.getRemoteObject("org.freedesktop.dbus.test.two_part_server", "/", TwoPartInterface.class);
+ System.out.println("get object");
+ TwoPartObject o = remote.getNew();
+ System.out.println("get name");
+ System.out.println(o.getName());
+ two_part_test_object tpto = new two_part_test_object();
+ conn.exportObject("/TestObject", tpto);
+ conn.sendSignal(new TwoPartInterface.TwoPartSignal("/FromObject", tpto));
+ try { Thread.sleep(1000); } catch (InterruptedException Ie) {}
+ conn.disconnect();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_server.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_server.java
new file mode 100755
index 0000000..7452303
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/test/two_part_test_server.java
@@ -0,0 +1,55 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.test;
+
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.DBusSigHandler;
+
+public class two_part_test_server implements TwoPartInterface, DBusSigHandler<TwoPartInterface.TwoPartSignal>
+{
+ public class two_part_test_object implements TwoPartObject
+ {
+ public boolean isRemote() { return false; }
+ public String getName()
+ {
+ System.out.println("give name");
+ return toString();
+ }
+ }
+ private DBusConnection conn;
+ public two_part_test_server(DBusConnection conn)
+ {
+ this.conn = conn;
+ }
+ public boolean isRemote() { return false; }
+ public TwoPartObject getNew()
+ {
+ TwoPartObject o = new two_part_test_object();
+ System.out.println("export new");
+ try { conn.exportObject("/12345", o); } catch (Exception e) {}
+ System.out.println("give new");
+ return o;
+ }
+ public void handle(TwoPartInterface.TwoPartSignal s)
+ {
+ System.out.println("Got: "+s.o);
+ }
+ public static void main(String[] args) throws Exception
+ {
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+ conn.requestBusName("org.freedesktop.dbus.test.two_part_server");
+ two_part_test_server server = new two_part_test_server(conn);
+ conn.exportObject("/", server);
+ conn.addSigHandler(TwoPartInterface.TwoPartSignal.class, server);
+ while (true) try { Thread.sleep(10000); } catch (InterruptedException Ie) {}
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusListType.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusListType.java
new file mode 100755
index 0000000..f7711dc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusListType.java
@@ -0,0 +1,44 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.types;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.List;
+
+/**
+ * The type of a list.
+ * Should be used whenever you need a Type variable for a list.
+ */
+public class DBusListType implements ParameterizedType
+{
+ private Type v;
+ /**
+ * Create a List type.
+ * @param v Type of the list contents.
+ */
+ public DBusListType(Type v)
+ {
+ this.v = v;
+ }
+ public Type[] getActualTypeArguments()
+ {
+ return new Type[] { v };
+ }
+ public Type getRawType()
+ {
+ return List.class;
+ }
+ public Type getOwnerType()
+ {
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusMapType.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusMapType.java
new file mode 100755
index 0000000..825df7d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusMapType.java
@@ -0,0 +1,47 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.types;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Map;
+
+/**
+ * The type of a map.
+ * Should be used whenever you need a Type variable for a map.
+ */
+public class DBusMapType implements ParameterizedType
+{
+ private Type k;
+ private Type v;
+ /**
+ * Create a map type.
+ * @param k The type of the keys.
+ * @param v The type of the values.
+ */
+ public DBusMapType(Type k, Type v)
+ {
+ this.k = k;
+ this.v = v;
+ }
+ public Type[] getActualTypeArguments()
+ {
+ return new Type[] { k, v };
+ }
+ public Type getRawType()
+ {
+ return Map.class;
+ }
+ public Type getOwnerType()
+ {
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusStructType.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusStructType.java
new file mode 100755
index 0000000..86d7533
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/types/DBusStructType.java
@@ -0,0 +1,44 @@
+/*
+ D-Bus Java Implementation
+ Copyright (c) 2005-2006 Matthew Johnson
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.types;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import org.freedesktop.dbus.Struct;
+
+/**
+ * The type of a struct.
+ * Should be used whenever you need a Type variable for a struct.
+ */
+public class DBusStructType implements ParameterizedType
+{
+ private Type[] contents;
+ /**
+ * Create a struct type.
+ * @param contents The types contained in this struct.
+ */
+ public DBusStructType(Type... contents)
+ {
+ this.contents = contents;
+ }
+ public Type[] getActualTypeArguments()
+ {
+ return contents;
+ }
+ public Type getRawType()
+ {
+ return Struct.class;
+ }
+ public Type getOwnerType()
+ {
+ return null;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusEntry.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusEntry.java
new file mode 100755
index 0000000..a71005e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusEntry.java
@@ -0,0 +1,123 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.UInt32;
+
+/** A summary class for a dbus entry for use in a table model
+ *
+ * @author pete
+ * @since 10/02/2006
+ */
+public class DBusEntry
+{
+ private String name;
+
+ private String path;
+
+ private UInt32 user;
+
+ private String owner;
+
+ private Introspectable introspectable;
+
+ /** Assign the name
+ *
+ * @param name The name.
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /** Retrieve the name
+ *
+ * @return The name.
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /** Assign the user
+ *
+ * @param user The user.
+ */
+ public void setUser(UInt32 user)
+ {
+ this.user = user;
+ }
+
+ /** Retrieve the user
+ *
+ * @return The user.
+ */
+ public UInt32 getUser()
+ {
+ return user;
+ }
+
+ /** Assign the owner
+ *
+ * @param owner The owner.
+ */
+ public void setOwner(String owner)
+ {
+ this.owner = owner;
+ }
+
+ /** Retrieve the owner
+ *
+ * @return The owner.
+ */
+ public String getOwner()
+ {
+ return owner;
+ }
+
+ /** Assign the introspectable
+ *
+ * @param introspectable The introspectable.
+ */
+ public void setIntrospectable(Introspectable introspectable)
+ {
+ this.introspectable = introspectable;
+ }
+
+ /** Retrieve the introspectable
+ *
+ * @return The introspectable.
+ */
+ public Introspectable getIntrospectable()
+ {
+ return introspectable;
+ }
+
+ /**
+ * retrieve the path parameter
+ *
+ * @return
+ */
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * set the path parameter
+ *
+ * @param path
+ */
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusTableModel.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusTableModel.java
new file mode 100755
index 0000000..d4363d4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusTableModel.java
@@ -0,0 +1,127 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.table.AbstractTableModel;
+
+@SuppressWarnings("serial")
+class DBusTableModel extends AbstractTableModel
+{
+ private static final String INTROSPECTABLE = "introspectable?";
+
+ private static final String OWNER = "owner";
+
+ private static final String USER = "user";
+
+ private static final String NAME = "name";
+
+ private static final String PATH = "path";
+
+ final String[] columns = { NAME, PATH, USER, OWNER, INTROSPECTABLE };
+
+ private List<DBusEntry> entries = new ArrayList<DBusEntry>();
+
+ /** {@inheritDoc} */
+ public int getRowCount()
+ {
+ return entries.size();
+ }
+ /** Add a row to the table model
+ *
+ * @param entry The dbus entry to add
+ */
+ public void add(DBusEntry entry)
+ {
+ entries.add(entry);
+ }
+
+ /** {@inheritDoc} */
+ public int getColumnCount()
+ {
+ return columns.length;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public String getColumnName(int column)
+ {
+ return columns[column];
+ }
+
+ /** Get a row of the table
+ * @param row The row index
+ * @return The table row
+ */
+ public DBusEntry getEntry(int row)
+ {
+ return entries.get(row);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public Class<?> getColumnClass(int columnIndex)
+ {
+ String columnName = getColumnName(columnIndex);
+ if (columnName.equals(NAME))
+ {
+ return String.class;
+ }
+ if (columnName.equals(PATH))
+ {
+ return String.class;
+ }
+ else if (columnName.equals(USER))
+ {
+ return Object.class;
+ }
+ else if (columnName.equals(OWNER))
+ {
+ return String.class;
+ }
+ else if (columnName.equals(INTROSPECTABLE))
+ {
+ return Boolean.class;
+ }
+ return super.getColumnClass(columnIndex);
+ }
+
+ /** {@inheritDoc} */
+ public Object getValueAt(int rowIndex, int columnIndex)
+ {
+ DBusEntry entry = getEntry(rowIndex);
+ String columnName = getColumnName(columnIndex);
+ if (columnName.equals(NAME))
+ {
+ return entry.getName();
+ }
+ if (columnName.equals(PATH))
+ {
+ return entry.getPath();
+ }
+ else if (columnName.equals(USER))
+ {
+ return entry.getUser();
+ }
+ else if (columnName.equals(OWNER))
+ {
+ return entry.getOwner();
+ }
+ else if (columnName.equals(INTROSPECTABLE))
+ {
+ return entry.getIntrospectable() != null;
+ }
+ return null;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusViewer.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusViewer.java
new file mode 100755
index 0000000..4d7e1b8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/DBusViewer.java
@@ -0,0 +1,363 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.awt.BorderLayout;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.SwingUtilities;
+import javax.swing.table.TableModel;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.freedesktop.DBus;
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.UInt32;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+/**
+ * A viewer for DBus
+ *
+ * goal is to replicate the functionality of kdbus with Java smarts
+ *
+ * @author pete
+ * @since 29/01/2006
+ */
+public class DBusViewer
+{
+ private static final Map<String, Integer> CONNECTION_TYPES = new HashMap<String, Integer>();
+
+ static
+ {
+ CONNECTION_TYPES.put("System", DBusConnection.SYSTEM);
+ CONNECTION_TYPES.put("Session", DBusConnection.SESSION);
+ }
+
+ /** Create the DBusViewer
+ *
+ * @param connectionTypes The map of connection types
+ */
+ public DBusViewer(final Map<String, Integer> connectionTypes)
+ {
+ connections = new ArrayList<DBusConnection>(connectionTypes.size());
+
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ @SuppressWarnings("synthetic-access")
+ public void run()
+ {
+
+ final JTabbedPane tabbedPane = new JTabbedPane();
+ addTabs(tabbedPane, connectionTypes);
+ final JFrame frame = new JFrame("Dbus Viewer");
+ frame.setContentPane(tabbedPane);
+ frame.setSize(600, 400);
+ frame.addWindowListener(new WindowAdapter()
+ {
+ @Override
+ public void windowClosing(WindowEvent e)
+ {
+ frame.dispose();
+ for (DBusConnection connection : connections)
+ {
+ connection.disconnect();
+ }
+ System.exit(0);
+ }
+ });
+ frame.setVisible(true);
+ }
+ });
+ }
+
+ private List<DBusConnection> connections;
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args)
+ {
+ new DBusViewer(CONNECTION_TYPES);
+ }
+
+ /** Add tabs for each supplied connection type
+ * @param tabbedPane The tabbed pane
+ * @param connectionTypes The connection
+ */
+ private void addTabs(final JTabbedPane tabbedPane,
+ final Map<String, Integer> connectionTypes)
+ {
+ for (final String key : connectionTypes.keySet())
+ {
+ final JLabel label = new JLabel(_("Processing DBus for ") + key);
+ tabbedPane.addTab(key, label);
+ }
+ Runnable loader = new Runnable()
+ {
+ @SuppressWarnings("synthetic-access")
+ public void run()
+ {
+ boolean users = true, owners = true;
+ for (final String key : connectionTypes.keySet())
+ {
+ try
+ {
+ DBusConnection conn = DBusConnection
+ .getConnection(connectionTypes.get(key));
+ connections.add(conn);
+
+ final TableModel tableModel = listDBusConnection(users,
+ owners, conn);
+
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ int index = tabbedPane.indexOfTab(key);
+ final JTable table = new JTable(tableModel);
+
+
+
+ JScrollPane scrollPane = new JScrollPane(table);
+
+ JPanel tab = new JPanel(new BorderLayout());
+ tab.add(scrollPane, BorderLayout.CENTER);
+
+ JPanel southPanel = new JPanel();
+ final JButton button = new JButton(new IntrospectAction(table));
+ southPanel.add(button);
+
+ tab.add(southPanel, BorderLayout.SOUTH);
+
+ tabbedPane.setComponentAt(index,
+ tab);
+
+ }
+ });
+ }
+ catch (final DBusException e)
+ {
+ e.printStackTrace();
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ int index = tabbedPane.indexOfTab(key);
+ JLabel label = (JLabel) tabbedPane
+ .getComponentAt(index);
+ label
+ .setText(_("Could not load Dbus information for ")
+ + key + ":" + e.getMessage());
+ }
+ });
+ }
+ catch (final DBusExecutionException e)
+ {
+ e.printStackTrace();
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ int index = tabbedPane.indexOfTab(key);
+ JLabel label = (JLabel) tabbedPane
+ .getComponentAt(index);
+ label
+ .setText(_("Could not load Dbus information for ")
+ + key + ":" + e.getMessage());
+ }
+ });
+ }
+ }
+ }
+ };
+ final Thread thread = new Thread(loader);
+ thread.setName("DBus Loader");
+ thread.start();
+ }
+
+ /* based on code from org.freedesktop.dbus.ListDBus */
+ private DBusTableModel listDBusConnection(boolean users, boolean owners,
+ DBusConnection conn) throws DBusException
+ {
+ DBusTableModel model = new DBusTableModel();
+
+ DBus dbus = conn.getRemoteObject("org.freedesktop.DBus",
+ "/org/freedesktop/DBus", DBus.class);
+ String[] names = dbus.ListNames();
+
+ ParsingContext p = new ParsingContext(conn);
+
+ for (String name : names)
+ {
+ List<DBusEntry> results = new ArrayList<DBusEntry>();
+ try
+ {
+ //String objectpath = '/' + name.replace('.', '/');
+
+
+ p.visitNode(name,"/");
+ }
+ catch (DBusException e)
+ {
+ e.printStackTrace();
+ }
+ catch (DBusExecutionException e)
+ {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ results = p.getResult();
+ p.reset();
+
+ if (results.size()>0) {
+ if (users) try
+ {
+ final UInt32 user = dbus.GetConnectionUnixUser(name);
+ for (DBusEntry entry : results) {
+ entry.setUser(user);
+ }
+ }
+ catch (DBusExecutionException DBEe)
+ {
+ }
+ if (!name.startsWith(":") && owners)
+ {
+ try
+ {
+ final String owner = dbus.GetNameOwner(name);
+ for (DBusEntry entry : results) {
+ entry.setOwner(owner);
+ }
+ }
+ catch (DBusExecutionException DBEe)
+ {
+ }
+ }
+ for (DBusEntry entry : results) {
+ model.add(entry);
+ }
+ }
+ }
+ return model;
+ }
+ private final static String DOC_TYPE = "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">";
+
+ class ParsingContext {
+ private DBusConnection conn;
+ private DocumentBuilder builder;
+ private List<DBusEntry> result;
+
+ ParsingContext(DBusConnection conn) {
+ this.conn = conn;
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ try {
+ builder = factory.newDocumentBuilder();
+ } catch (ParserConfigurationException e1) {
+ // TODO Auto-generated catch block
+ throw new RuntimeException(_("Error during parser init: ")+e1.getMessage(),e1);
+ }
+ reset();
+
+ }
+
+ DBusEntry addEntry(String name, String path) throws DBusException {
+ DBusEntry entry = new DBusEntry();
+ entry.setName(name);
+ entry.setPath(path);
+ Introspectable introspectable = conn.getRemoteObject(name, path, Introspectable.class);
+ entry.setIntrospectable(introspectable);
+
+ result.add(entry);
+
+ return entry;
+ }
+
+ public void visitNode(String name, String path) throws DBusException, SAXException, IOException {
+ System.out.println("visit "+name+":"+path);
+ if ("/org/freedesktop/DBus/Local".equals(path)) {
+ // this will disconnects us.
+ return;
+ }
+ DBusEntry e = addEntry(name, path);
+ String introspectData = e.getIntrospectable().Introspect();
+
+
+ Document document = builder.parse(new InputSource(new StringReader(introspectData.replace(DOC_TYPE, ""))));
+ Element root = document.getDocumentElement();
+
+ NodeList children = root.getChildNodes();
+ for (int i=0;i<children.getLength();i++) {
+ Node node = children.item(i);
+ if (Node.ELEMENT_NODE != node.getNodeType()) {
+ continue;
+ }
+ if ("node".equals(node.getNodeName())) {
+ Node nameNode = node.getAttributes().getNamedItem("name");
+ if (nameNode!=null) {
+ try {
+ if (path.endsWith("/")) {
+ visitNode(name, path + nameNode.getNodeValue());
+ } else {
+ visitNode(name, path + '/' + nameNode.getNodeValue());
+ }
+ } catch (DBusException ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ }
+
+ }
+
+ public List<DBusEntry> getResult() {
+ return result;
+ }
+
+ void reset() {
+ result = new ArrayList<DBusEntry>();
+ }
+
+
+ }
+
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/FileSaver.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/FileSaver.java
new file mode 100755
index 0000000..789aa65
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/FileSaver.java
@@ -0,0 +1,191 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.awt.Component;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Iterator;
+
+import javax.swing.JOptionPane;
+
+final class FileSaver implements Runnable
+{
+ private static final String CANCEL = "Cancel";
+
+ private static final String SKIP_ALL = "Skip All";
+
+ private static final String SKIP = "Skip";
+
+ private static final String OVERWRITE = "Overwrite";
+
+ private static final String OVERWRITE_ALL = "Overwrite All";
+
+ private final File parentDirectory;
+
+ private final Component parentComponent;
+
+ private final Iterable<TextFile> textFiles;
+
+ FileSaver(Component parentComponent, File parentDirectory,
+ Iterable<TextFile> files)
+ {
+ this.parentComponent = parentComponent;
+ this.parentDirectory = parentDirectory;
+ this.textFiles = files;
+ }
+
+ /** {@inheritDoc} */
+ public void run()
+ {
+ saveFiles();
+ }
+
+ private void saveFiles()
+ {
+ String overwritePolicy = null;
+ final Iterator<TextFile> iterator = textFiles.iterator();
+ while (iterator.hasNext())
+ {
+ final TextFile textFile = iterator.next();
+ String fileName = textFile.getFileName();
+ File fileToSave = new File(parentDirectory, fileName);
+ File parentFile = fileToSave.getParentFile();
+ if (parentFile.exists() || parentFile.mkdirs())
+ {
+ boolean doSave = !fileToSave.exists()
+ || OVERWRITE_ALL.equals(overwritePolicy);
+ if (!doSave && !SKIP_ALL.equals(overwritePolicy))
+ {
+ String[] selectionValues;
+ if (iterator.hasNext())
+ {
+ selectionValues = new String[] { OVERWRITE,
+ OVERWRITE_ALL, SKIP, SKIP_ALL, CANCEL };
+ }
+ else
+ {
+ selectionValues = new String[] { OVERWRITE, CANCEL };
+ }
+ int option = JOptionPane.showOptionDialog(parentComponent,
+ "File exists: " + fileName, "Save",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ selectionValues, null);
+ if (option == -1)
+ {
+ break;
+ }
+ overwritePolicy = selectionValues[option];
+ if (CANCEL.equals(overwritePolicy))
+ {
+ break;
+ }
+
+ doSave = OVERWRITE.equals(overwritePolicy)
+ || OVERWRITE_ALL.equals(overwritePolicy);
+ }
+ if (doSave)
+ {
+ try
+ {
+ String contents = textFile.getContents();
+ writeFile(fileToSave, contents);
+ }
+ catch (final IOException ex)
+ {
+ /* Can't access parent directory for saving */
+ final String errorMessage = "Could not save "
+ + fileName + ": " + ex.getLocalizedMessage();
+ if (iterator.hasNext())
+ {
+
+ int confirm = JOptionPane.showConfirmDialog(
+ parentComponent, errorMessage
+ + ".\n"+_("Try saving other files?"),
+ _("Save Failed"),
+ JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.ERROR_MESSAGE);
+ if (confirm != JOptionPane.OK_OPTION)
+ {
+ break;
+ }
+ }
+ else
+ {
+ JOptionPane.showMessageDialog(parentComponent,
+ errorMessage + ".", _("Save Failed"),
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+ }
+ else
+ {
+
+ final String errorMessage = _("Could not access parent directory for ")
+ + fileName;
+ if (iterator.hasNext())
+ {
+
+ int confirm = JOptionPane.showConfirmDialog(
+ parentComponent, errorMessage
+ + ".\n"+_("Try saving other files?"),
+ _("Save Failed"), JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.ERROR_MESSAGE);
+ if (confirm != JOptionPane.OK_OPTION)
+ {
+ break;
+ }
+ }
+ else
+ {
+ JOptionPane.showMessageDialog(parentComponent, errorMessage
+ + ".", _("Save Failed"), JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+ }
+
+ /**
+ * @param fileToSave
+ * @param contents
+ * @throws IOException
+ */
+ private void writeFile(File fileToSave, String contents) throws IOException
+ {
+ FileWriter fileWriter = null;
+ try
+ {
+ fileWriter = new FileWriter(fileToSave);
+ BufferedWriter writer = new BufferedWriter(fileWriter);
+ writer.append(contents);
+ writer.flush();
+ }
+ finally
+ {
+ if (fileWriter != null)
+ {
+ try
+ {
+ fileWriter.close();
+ }
+ catch (IOException e1)
+ {
+ }
+ }
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/IntrospectAction.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/IntrospectAction.java
new file mode 100755
index 0000000..d2110e9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/IntrospectAction.java
@@ -0,0 +1,148 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.io.StringReader;
+
+import javax.swing.AbstractAction;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.ListSelectionModel;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.bin.CreateInterface;
+
+@SuppressWarnings("serial")
+final class IntrospectAction extends AbstractAction implements ListSelectionListener
+{
+ private final JTable table;
+
+ IntrospectAction(JTable table)
+ {
+ super("Introspect");
+ setEnabled(false);
+ this.table = table;
+
+
+ ListSelectionModel selectionModel = table.getSelectionModel();
+ selectionModel.addListSelectionListener(this);
+ selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ }
+
+ /** {@inheritDoc} */
+ public void valueChanged(ListSelectionEvent e)
+ {
+ if (!e.getValueIsAdjusting())
+ {
+ DBusTableModel model = (DBusTableModel) table.getModel();
+ int selection = table.getSelectedRow();
+ if (selection > -1 && selection < model.getRowCount())
+ {
+ DBusEntry entry = model.getEntry(selection);
+ final Introspectable introspectable = entry.getIntrospectable();
+ setEnabled(introspectable != null);
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
+ public void actionPerformed(ActionEvent e)
+ {
+
+ int row = table.getSelectedRow();
+ DBusTableModel model = (DBusTableModel) table.getModel();
+ if (row > -1 && row < model.getRowCount())
+ {
+ DBusEntry entry = model.getEntry(row);
+ final String xmlFile = entry.getName() + ".xml";
+ final Introspectable introspectable = entry.getIntrospectable();
+ new Thread(new Runnable()
+ {
+ public void run()
+ {
+
+ StringStreamFactory factory = new StringStreamFactory();
+ CreateInterface createInterface = new CreateInterface(factory, false);
+ try
+ {
+ String xml = introspectable.Introspect();
+
+ String docType = "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">";
+
+ createInterface.createInterface(new StringReader(xml.replace(docType, "")));
+ final JTabbedPane tabbedPane = new JTabbedPane();
+
+ tabbedPane.addTab(xmlFile, createSourceTab(xmlFile, xml));
+
+ for (String file : factory.streamMap.keySet())
+ {
+ final String source = factory.streamMap.get(file).toString();
+
+ tabbedPane.addTab(file, createSourceTab(file, source));
+ }
+ tabbedPane.setPreferredSize(new Dimension(600, 400));
+
+ final JPanel introspectionPanel = new JPanel(new BorderLayout());
+ introspectionPanel.add(tabbedPane, BorderLayout.CENTER);
+
+ JPanel southPanel = new JPanel();
+ southPanel.add(new JButton(new SaveFileAction(tabbedPane)));
+ southPanel.add(new JButton(new SaveAllAction(tabbedPane)));
+ introspectionPanel.add(southPanel, BorderLayout.SOUTH);
+
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ @SuppressWarnings("synthetic-access")
+ public void run()
+ {
+ JOptionPane.showMessageDialog(table, introspectionPanel, "Introspection", JOptionPane.PLAIN_MESSAGE);
+ }
+ });
+
+ }
+ catch (final Exception e)
+ {
+ e.printStackTrace();
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ @SuppressWarnings("synthetic-access")
+ public void run()
+ {
+ JOptionPane.showMessageDialog(table, e.getMessage(), "Introspection Failed", JOptionPane.ERROR_MESSAGE);
+ }
+ });
+ }
+ }
+
+ private JScrollPane createSourceTab(String file, final String source)
+ {
+ JTextArea area = new JTextArea(source);
+ area.setLineWrap(true);
+ area.setWrapStyleWord(true);
+ return new JScrollPane(area, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ }
+ }).start();
+
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveAllAction.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveAllAction.java
new file mode 100755
index 0000000..d8bfb19
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveAllAction.java
@@ -0,0 +1,62 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import javax.swing.JTabbedPane;
+
+@SuppressWarnings("serial")
+class SaveAllAction extends TabbedSaveAction
+{
+
+ private class TabIterator implements Iterator<TextFile>
+ {
+ private int i = 0;
+ /** {@inheritDoc} */
+ public boolean hasNext()
+ {
+ return i < tabbedPane.getTabCount();
+ }
+
+ /** {@inheritDoc} */
+ public TextFile next()
+ {
+ if (hasNext())
+ {
+ int currentIndex = i;
+ i++;
+ return getTextFile(currentIndex);
+ }
+ throw new NoSuchElementException();
+ }
+
+ /** {@inheritDoc} */
+ public void remove()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ }
+
+ protected SaveAllAction(JTabbedPane tabbedPane)
+ {
+ super(tabbedPane, "Save All...");
+ }
+
+ /** {@inheritDoc} */
+ public Iterator<TextFile> iterator()
+ {
+ return new TabIterator();
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveFileAction.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveFileAction.java
new file mode 100755
index 0000000..487e22d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/SaveFileAction.java
@@ -0,0 +1,85 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import javax.swing.Action;
+import javax.swing.JTabbedPane;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+@SuppressWarnings("serial")
+class SaveFileAction extends TabbedSaveAction implements ChangeListener
+{
+ private class SelectedTabIterator implements Iterator<TextFile>
+ {
+ boolean iterated = false;
+ /** {@inheritDoc} */
+ public boolean hasNext()
+ {
+ return !iterated;
+ }
+
+ /** {@inheritDoc} */
+ public TextFile next()
+ {
+ if (iterated)
+ {
+ throw new NoSuchElementException(_("Already iterated"));
+ }
+ iterated = true;
+ return getTextFile(tabbedPane.getSelectedIndex());
+ }
+
+ /** {@inheritDoc} */
+ public void remove()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ }
+
+ SaveFileAction(JTabbedPane tabbedPane)
+ {
+ super(tabbedPane);
+
+ enableAndSetName();
+
+ tabbedPane.addChangeListener(this);
+ }
+
+ /** {@inheritDoc} */
+ public void stateChanged(ChangeEvent e)
+ {
+ enableAndSetName();
+ }
+
+ /**
+ * Enable and set the name of the action based on the shown tab
+ */
+ void enableAndSetName()
+ {
+ int selectedIndex = tabbedPane.getSelectedIndex();
+ boolean enabled = selectedIndex > -1;
+ putValue(Action.NAME, _("Save ") + getFileName(selectedIndex) + "...");
+ setEnabled(enabled);
+ }
+
+ /** {@inheritDoc} */
+ public Iterator<TextFile> iterator()
+ {
+ return new SelectedTabIterator();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/StringStreamFactory.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/StringStreamFactory.java
new file mode 100755
index 0000000..b8c28ab
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/StringStreamFactory.java
@@ -0,0 +1,47 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.freedesktop.dbus.bin.CreateInterface.PrintStreamFactory;
+
+/**
+ * A factory using a byte array input stream
+ *
+ *
+ * @author pete
+ * @since 10/02/2006
+ */
+final class StringStreamFactory extends PrintStreamFactory
+{
+ Map<String, ByteArrayOutputStream> streamMap = new HashMap<String, ByteArrayOutputStream>();
+
+ /** {@inheritDoc} */
+ public void init(String file, String path)
+ {
+
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("unused")
+ public PrintStream createPrintStream(final String file) throws IOException
+ {
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ streamMap.put(file, stream);
+ return new PrintStream(stream);
+
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TabbedSaveAction.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TabbedSaveAction.java
new file mode 100755
index 0000000..1f49c6a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TabbedSaveAction.java
@@ -0,0 +1,108 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+import static org.freedesktop.dbus.Gettext._;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import javax.swing.AbstractAction;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.text.JTextComponent;
+
+abstract class TabbedSaveAction extends AbstractAction implements Iterable<TextFile>
+{
+ /** File chooser component.
+ * Make static so that previous save location is stored
+ */
+ private static JFileChooser chooser;
+ protected final JTabbedPane tabbedPane;
+ protected TabbedSaveAction(JTabbedPane tabbedPane)
+ {
+ super();
+ this.tabbedPane = tabbedPane;
+ }
+ protected TabbedSaveAction(JTabbedPane tabbedPane, String name)
+ {
+ super(name);
+ this.tabbedPane = tabbedPane;
+ }
+
+ /** Get the text file object associated with the supplied index
+ * @param index The tabbed pane index
+ * @return The text file object for the referenced tab
+ */
+ protected TextFile getTextFile(int index)
+ {
+ JScrollPane scrollPane = (JScrollPane) tabbedPane.getComponentAt(index);
+ JTextComponent textComponent = (JTextComponent) scrollPane.getViewport().getView();
+ final String sourceCode = textComponent.getText();
+
+
+
+ final String fileName = getFileName(index);
+
+
+ TextFile textFile = new TextFile(fileName, sourceCode);
+ return textFile;
+ }
+
+
+ /** Get the file name for the supplied index
+ * @param index The tabbed pane index
+ * @return The file name for the referenced tab
+ */
+ protected String getFileName(int index)
+ {
+ return (index > -1) ? tabbedPane.getTitleAt(index) : "";
+ }
+
+ /** {@inheritDoc} */
+ public final void actionPerformed(ActionEvent e)
+ {
+
+ if (chooser == null)
+ {
+ /** Occurs on event dispatch thread, so no problems with lazy static init here */
+ chooser = new JFileChooser();
+ }
+ chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ chooser.setDialogTitle(_("Select parent directory for saving"));
+
+ int result = chooser.showDialog(tabbedPane, "Select");
+
+ if (result == JFileChooser.APPROVE_OPTION)
+ {
+ File parentDirectory = chooser.getSelectedFile();
+ if (parentDirectory.exists() || parentDirectory.mkdirs())
+ {
+ if (parentDirectory.canWrite())
+ {
+ Runnable runnable = new FileSaver(tabbedPane, parentDirectory, this);
+
+ new Thread(runnable).start();
+ }
+ else
+ {
+ JOptionPane.showMessageDialog(tabbedPane, _("Could not write to parent directory"), _("Invalid Parent Directory"), JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ else
+ {
+ JOptionPane.showMessageDialog(tabbedPane, _("Could not access parent directory"), _("Invalid Parent Directory"), JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TextFile.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TextFile.java
new file mode 100755
index 0000000..ecff9a7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/viewer/TextFile.java
@@ -0,0 +1,49 @@
+/*
+ D-Bus Java Viewer
+ Copyright (c) 2006 Peter Cox
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of either the GNU Lesser General Public License Version 2 or the
+ Academic Free Licence Version 2.1.
+
+ Full licence texts are included in the COPYING file with this program.
+*/
+package org.freedesktop.dbus.viewer;
+
+/** A Text file abstraction
+ *
+ *
+ * @author pete
+ * @since 10/02/2006
+ */
+class TextFile
+{
+ final String fileName;
+ final String contents;
+ /** Create the TextFile
+ *
+ * @param fileName The file name
+ * @param contents The contents
+ */
+ public TextFile(String fileName, String contents)
+ {
+ this.fileName = fileName;
+ this.contents = contents;
+ }
+ /** Retrieve the fileName
+ *
+ * @return The fileName.
+ */
+ String getFileName()
+ {
+ return fileName;
+ }
+ /** Retrieve the contents
+ *
+ * @return The contents.
+ */
+ String getContents()
+ {
+ return contents;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/tmp-session.conf b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/tmp-session.conf
new file mode 100755
index 0000000..61279f0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/tmp-session.conf
@@ -0,0 +1,31 @@
+<!-- This configuration file controls the per-user-login-session message bus.
+ Add a session-local.conf and edit that rather than changing this
+ file directly. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <!-- Our well-known bus type, don't change this -->
+ <type>session</type>
+
+ <listen>unix:path=./tmp-session-bus</listen>
+ <!--listen>tcp:port=12345</listen-->
+
+ <servicedir>/usr/share/dbus-1/services</servicedir>
+
+ <policy context="default">
+ <!-- Allow everything to be sent -->
+ <allow send_destination="*"/>
+ <!-- Allow everything to be received -->
+ <allow eavesdrop="true"/>
+ <!-- Allow anyone to own anything -->
+ <allow own="*"/>
+ </policy>
+
+ <!-- This is included last so local configuration can override what's
+ in this standard file -->
+ <include ignore_missing="yes">session-local.conf</include>
+
+ <include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include>
+
+</busconfig>
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/translations/en_GB.po b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/translations/en_GB.po
new file mode 100755
index 0000000..d619633
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/translations/en_GB.po
@@ -0,0 +1,213 @@
+#java-format
+msgid " is not a basic type"
+msgstr " is not a basic type"
+msgid " is not an object provided by this process."
+msgstr " is not an object provided by this process."
+msgid "Already iterated"
+msgstr "Already iterated"
+msgid "An error occurred while calling "
+msgstr "An error occurred while calling "
+msgid "Array index out of bounds, paofs={0}, pabuf.length={1}, buf.length={2}."
+msgstr "Array index out of bounds, paofs={0}, pabuf.length={1}, buf.length={2}."
+msgid "Arrays must not exceed "
+msgstr "Arrays must not exceed "
+msgid "Async call has not had a reply"
+msgstr "Async call has not had a reply"
+msgid "Bus address is blank"
+msgstr "Bus address is blank"
+msgid "Bus address is invalid: "
+msgstr "Bus address is invalid: "
+msgid "Can't wrap Null in a Variant"
+msgstr "Can't wrap Null in a Variant"
+msgid "Can't wrap a multi-valued type in a Variant: "
+msgstr "Can't wrap a multi-valued type in a Variant: "
+msgid "Can't wrap multiple or no types in a Variant: "
+msgstr "Can't wrap multiple or no types in a Variant: "
+msgid "Can't wrap {0} in an unqualified Variant ({1})."
+msgstr "Can't wrap {0} in an unqualified Variant ({1})."
+msgid "Cannot Resolve Session Bus Address"
+msgstr "Cannot Resolve Session Bus Address"
+msgid "Cannot watch for signals based on well known bus name as source, only unique names."
+msgstr "Cannot watch for signals based on well known bus name as source, only unique names."
+msgid "Connection has already sent a Hello message"
+msgstr "Connection has already sent a Hello message"
+msgid "Could not access parent directory for "
+msgstr "Could not access parent directory for "
+msgid "Could not create class from signal "
+msgstr "Could not create class from signal "
+msgid "Could not find an interface to cast to"
+msgstr "Could not find an interface to cast to"
+msgid "Could not load Dbus information for "
+msgstr "Could not load Dbus information for "
+msgid "DBusInterfaces cannot be declared outside a package"
+msgstr "DBusInterfaces cannot be declared outside a package"
+msgid "DBusInterfaces must be defined in a package."
+msgstr "DBusInterfaces must be defined in a package."
+msgid "Disconnected"
+msgstr "Disconnected"
+msgid "ERROR: Could not find introspection file: "
+msgstr "ERROR: Could not find introspection file: "
+msgid "ERROR: Expected {0}, got {1}, failed."
+msgstr "ERROR: Expected {0}, got {1}, failed."
+msgid "ERROR: Failed to get introspection data"
+msgstr "ERROR: Failed to get introspection data"
+msgid "ERROR: Failure in DBus Communications: "
+msgstr "ERROR: Failure in DBus Communications: "
+msgid "ERROR: Interface name was blank, failed"
+msgstr "ERROR: Interface name was blank, failed"
+msgid "ERROR: Method name was blank, failed"
+msgstr "ERROR: Method name was blank, failed"
+msgid "ERROR: Unknown node: "
+msgstr "ERROR: Unknown node: "
+msgid "ERROR: Unknown option: "
+msgstr "ERROR: Unknown option: "
+msgid "Error Executing Method {0}.{1}: {2}"
+msgstr "Error Executing Method {0}.{1}: {2}"
+msgid "Error deserializing message: number of parameters didn't match receiving signature"
+msgstr "Error deserializing message: number of parameters didn't match receiving signature"
+msgid "Error during parser init: "
+msgstr "Error during parser init: "
+msgid "Exporting non-exportable parameterized type "
+msgstr "Exporting non-exportable parameterized type "
+msgid "Exporting non-exportable type "
+msgstr "Exporting non-exportable type "
+msgid "Failed to add signal parameters: "
+msgstr "Failed to add signal parameters: "
+msgid "Failed to auth"
+msgstr "Failed to auth"
+msgid "Failed to connect to bus "
+msgstr "Failed to connect to bus "
+msgid "Failed to construct D-Bus type: "
+msgstr "Failed to construct D-Bus type: "
+msgid "Failed to construct outgoing method call: "
+msgstr "Failed to construct outgoing method call: "
+msgid "Failed to create proxy object for {0} exported by {1}. Reason: {2}"
+msgstr "Failed to create proxy object for {0} exported by {1}. Reason: {2}"
+msgid "Failed to create proxy object for {0}; reason: {1}."
+msgstr "Failed to create proxy object for {0}; reason: {1}."
+msgid "Failed to parse DBus type signature: "
+msgstr "Failed to parse DBus type signature: "
+msgid "Failed to parse DBus type signature: {0} ({1})."
+msgstr "Failed to parse DBus type signature: {0} ({1})."
+msgid "Failed to register bus name"
+msgstr "Failed to register bus name"
+msgid "Failure in de-serializing message: "
+msgstr "Failure in de-serializing message: "
+msgid "Introspected interface name exceeds 255 characters. Cannot export objects of type "
+msgstr "Introspected interface name exceeds 255 characters. Cannot export objects of type "
+msgid "Introspected method name exceeds 255 characters. Cannot export objects with method "
+msgstr "Introspected method name exceeds 255 characters. Cannot export objects with method "
+msgid "Introspected signal name exceeds 255 characters. Cannot export objects with signals of type "
+msgstr "Introspected signal name exceeds 255 characters. Cannot export objects with signals of type "
+msgid "Invalid Bus Type: "
+msgstr "Invalid Bus Type: "
+msgid "Invalid Command "
+msgstr "Invalid Command "
+msgid "Invalid Parent Directory"
+msgstr "Invalid Parent Directory"
+msgid "Invalid bus name"
+msgstr "Invalid bus name"
+msgid "Invalid bus name: "
+msgstr "Invalid bus name: "
+msgid "Invalid bus name: null"
+msgstr "Invalid bus name: null"
+msgid "Invalid object path: "
+msgstr "Invalid object path: "
+msgid "Invalid object path: null"
+msgstr "Invalid object path: null"
+msgid "Invalid type for match rule: "
+msgstr "Invalid type for match rule: "
+msgid "Map must have 2 parameters"
+msgstr "Map must have 2 parameters"
+msgid "Message Failed to Send: "
+msgstr "Message Failed to Send: "
+msgid "Message type {0} unsupported"
+msgstr "Message type {0} unsupported"
+msgid "Multi-valued array types not permitted"
+msgstr "Multi-valued array types not permitted"
+msgid "Must Specify an Object Path"
+msgstr "Must Specify an Object Path"
+msgid "Must specify destination, path and function name to MethodCalls."
+msgstr "Must specify destination, path and function name to MethodCalls."
+msgid "Must specify error name to Errors."
+msgstr "Must specify error name to Errors."
+msgid "Must specify object path, interface and signal name to Signals."
+msgstr "Must specify object path, interface and signal name to Signals."
+msgid "No reply within specified time"
+msgstr "No reply within specified time"
+msgid "No transport present"
+msgstr "No transport present"
+msgid "Not A DBus Interface"
+msgstr "Not A DBus Interface"
+msgid "Not A DBus Signal"
+msgstr "Not A DBus Signal"
+msgid "Not An Expected Convertion type from {0} to {1}"
+msgstr "Not An Expected Convertion type from {0} to {1}"
+msgid "Not Connected"
+msgstr "Not Connected"
+msgid "Not a primitive type"
+msgstr "Not a primitive type"
+msgid "Not a valid D-Bus type code: "
+msgstr "Not a valid D-Bus type code: "
+msgid "Not a wrapper type"
+msgstr "Not a wrapper type"
+msgid "Not an array"
+msgstr "Not an array"
+msgid "Not an object exported by this connection and no remote specified"
+msgstr "Not an object exported by this connection and no remote specified"
+msgid "Not enough elements to create custom object from serialized data ({0} < {1})."
+msgstr "Not enough elements to create custom object from serialized data ({0} < {1})."
+msgid "Object already exported"
+msgstr "Object already exported"
+msgid "Primative array being sent as non-primative array."
+msgstr "Primative array being sent as non-primative array."
+msgid "Processing DBus for "
+msgstr "Processing DBus for "
+msgid "Protocol version {0} is unsupported"
+msgstr "Protocol version {0} is unsupported"
+msgid "Return type of Object[] cannot be introspected properly"
+msgstr "Return type of Object[] cannot be introspected properly"
+msgid "Save "
+msgstr "Save "
+msgid "Save Failed"
+msgstr "Save Failed"
+msgid "Select parent directory for saving"
+msgstr "Select parent directory for saving"
+msgid "Sending message failed"
+msgstr "Sending message failed"
+msgid "Serializable classes must implement a deserialize method"
+msgstr "Serializable classes must implement a deserialize method"
+msgid "Serializable classes must serialize to native DBus types"
+msgstr "Serializable classes must serialize to native DBus types"
+msgid "Signals must be declared as a member of a class implementing DBusInterface which is the member of a package."
+msgstr "Signals must be declared as a member of a class implementing DBusInterface which is the member of a package."
+msgid "Spurious reply. No message with the given serial id was awaiting a reply."
+msgstr "Spurious reply. No message with the given serial id was awaiting a reply."
+msgid "System does not support UTF-8 encoding"
+msgstr "System does not support UTF-8 encoding"
+msgid "The method `{0}.{1}' does not exist on this object."
+msgstr "The method `{0}.{1}' does not exist on this object."
+msgid "The name `{0}' does not exist"
+msgstr "The name `{0}' does not exist"
+msgid "This service does not support "
+msgstr "This service does not support "
+msgid "Try saving other files?"
+msgstr "Try saving other files?"
+msgid "Trying to marshall to unconvertable type (from {0} to {1})."
+msgstr "Trying to marshall to unconvertable type (from {0} to {1})."
+msgid "Underlying transport returned EOF"
+msgstr "Underlying transport returned EOF"
+msgid "Waiting for: "
+msgstr "Waiting for: "
+msgid "Wrong return type (failed to de-serialize correct types: {0} )"
+msgstr "Wrong return type (failed to de-serialize correct types: {0} )"
+msgid "Wrong return type (got void, expected a value)"
+msgstr "Wrong return type (got void, expected a value)"
+msgid "Wrong return type (not expecting Tuple)"
+msgstr "Wrong return type (not expecting Tuple)"
+msgid "You must send a Hello message"
+msgstr "You must send a Hello message"
+msgid "unknown address type "
+msgstr "unknown address type "
+msgid "{0} is not between {1} and {2}."
+msgstr "{0} is not between {1} and {2}."
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/.classpath b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/.classpath
new file mode 100755
index 0000000..f197180
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/.project b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/.project
new file mode 100755
index 0000000..07b56fe
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.demo</name>
+ <comment>This project contains general classes used for demo&apos;s. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>com.soyatec.additional.Builder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/ReadMe.confluence
new file mode 100755
index 0000000..a6c61ec
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/ReadMe.confluence
@@ -0,0 +1,24 @@
+{toc:minLevel=2}
+
+h1. Introduction
+This project contains components which can be used in demo's and prototypes.
+
+h1. Communication Channel
+
+What communication channels have in common, is that someone receives data. Therefore there is a common interace DataReceptionListener, which is to be implemented by a client that receives the data.
+Based on this interface specific communication channels can be defined. For now there are a broadcast channel and an asynchronous two-way communication channel. The following diagram gives an overview.
+
+!uml/CommunicationChannel.png!
+
+h2. Broadcast Channel
+In case of a broadcast there is one sending side and any number of clients can receive the data.
+
+h3. Sending side
+For the sending side there's the interface Broadcast. This has just one method broadcast(Object object).
+
+h3. Receiving side
+For the receiving side, there's the interface BroadcastReception. Via this interface a client can register (and unregister) itself for receiving any broadcasted data. The actual data is received via the dataReceived(Object object) method of the DataReceptionListener interface.
+
+h1. Logging
+Class EclipseConsoleFormatter is a formatter, which creates a link to the Java code in Console output. Example:\\
+BroadcastFrameworkImplementation: nothing to broadcast +(BroadcastFrameworkImplementation.java:72)+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/pom.xml b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/pom.xml
new file mode 100755
index 0000000..d208541
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/pom.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>demo</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Demo Related Classes</name>
+ <description>This project contains general classes used for demo's.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/DataReceptionListener.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/DataReceptionListener.java
new file mode 100755
index 0000000..1dcabe7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/DataReceptionListener.java
@@ -0,0 +1,14 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel;
+
+public interface DataReceptionListener {
+ public void dataReceived(Object data);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelClient.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelClient.java
new file mode 100755
index 0000000..19ff33c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelClient.java
@@ -0,0 +1,16 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel;
+
+
+public interface Async2WayCommunicationChannelClient {
+ public long sendRequest(String address, Object data, Async2WayCommunicationChannelDataReceptionListener responseListener);
+
+} \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelDataReceptionListener.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelDataReceptionListener.java
new file mode 100755
index 0000000..bc63ba3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelDataReceptionListener.java
@@ -0,0 +1,14 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel;
+
+public interface Async2WayCommunicationChannelDataReceptionListener {
+ public void dataReceived(long messageId, Object data);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelServer.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelServer.java
new file mode 100755
index 0000000..38d5a6d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/Async2WayCommunicationChannelServer.java
@@ -0,0 +1,21 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel;
+
+
+public interface Async2WayCommunicationChannelServer {
+ public void sendResponse(long messageId, Object data);
+
+ public void addRequestListener(String address, Async2WayCommunicationChannelDataReceptionListener requestListener);
+
+ public void removeRequestListener(String address);
+
+ public void removeRequestListener(Async2WayCommunicationChannelDataReceptionListener requestListener);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/impl/DummyAsyn2WayCommunicationChannel.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/impl/DummyAsyn2WayCommunicationChannel.java
new file mode 100755
index 0000000..cc0f9be
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/async2waycommchannel/impl/DummyAsyn2WayCommunicationChannel.java
@@ -0,0 +1,83 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel.Async2WayCommunicationChannelClient;
+import org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel.Async2WayCommunicationChannelDataReceptionListener;
+import org.genivi.trafficinfo.demo.communicationchannel.async2waycommchannel.Async2WayCommunicationChannelServer;
+
+
+public class DummyAsyn2WayCommunicationChannel implements Async2WayCommunicationChannelClient, Async2WayCommunicationChannelServer {
+ private static DummyAsyn2WayCommunicationChannel broadcastChannel = null;
+
+ private Map<String, Async2WayCommunicationChannelDataReceptionListener> requestListeners =
+ new HashMap<String, Async2WayCommunicationChannelDataReceptionListener>();
+ private Map<Long, Async2WayCommunicationChannelDataReceptionListener> openRequests =
+ new HashMap<Long, Async2WayCommunicationChannelDataReceptionListener>();
+ private long nextMessageId = 1l;
+
+ public static DummyAsyn2WayCommunicationChannel getInstance() {
+ if (broadcastChannel == null) {
+ broadcastChannel = new DummyAsyn2WayCommunicationChannel();
+ }
+
+ return broadcastChannel;
+ }
+
+ @Override
+ public void addRequestListener(String address, Async2WayCommunicationChannelDataReceptionListener requestListener) {
+ requestListeners.put(address, requestListener);
+ }
+
+ public void removeRequestListener(String address) {
+ requestListeners.remove(address);
+ }
+
+ public void removeRequestListener(Async2WayCommunicationChannelDataReceptionListener requestListener) {
+ for (String address: requestListeners.keySet()) {
+ if (requestListeners.get(address).equals(requestListener)) {
+ requestListeners.remove(address);
+ }
+ }
+ }
+
+ @Override
+ public long sendRequest(String address, Object data, Async2WayCommunicationChannelDataReceptionListener responseListener) {
+ Async2WayCommunicationChannelDataReceptionListener requestListener = getRequestListenerForAddress(address);
+ if (requestListener == null) {
+ throw new RuntimeException("No request listener for request sent to address: " + address);
+ }
+ long messageId = generateMessageId();
+ openRequests.put(messageId, responseListener);
+ requestListener.dataReceived(messageId, data);
+ System.out.println("DummyAsyn2WayCommunicationChannel: sending request");
+
+ return messageId;
+ }
+
+
+ @Override
+ public void sendResponse(long messageId, Object data) {
+ System.out.println("DummyAsyn2WayCommunicationChannel: sending response");
+ Async2WayCommunicationChannelDataReceptionListener dataReceptionListener = openRequests.remove(messageId);
+ dataReceptionListener.dataReceived(messageId, data);
+ }
+
+ private long generateMessageId() {
+ return nextMessageId++;
+ }
+
+ private Async2WayCommunicationChannelDataReceptionListener getRequestListenerForAddress(String address) {
+ return requestListeners.get(address);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/Broadcast.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/Broadcast.java
new file mode 100755
index 0000000..937f7d0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/Broadcast.java
@@ -0,0 +1,15 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel;
+
+public interface Broadcast {
+// public void broadcast(byte[] data);
+ public void broadcast(Object data);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/BroadcastReception.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/BroadcastReception.java
new file mode 100755
index 0000000..eb41cc1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/BroadcastReception.java
@@ -0,0 +1,17 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel;
+
+import org.genivi.trafficinfo.demo.communicationchannel.DataReceptionListener;
+
+public interface BroadcastReception {
+ public void addBroadcastReceptionListener(DataReceptionListener broadcastReceptionListener);
+ public void removeBroadcastReceptionListener(DataReceptionListener broadcastReceptionListener);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/impl/DummyBroadcastChannel.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/impl/DummyBroadcastChannel.java
new file mode 100755
index 0000000..fac8a76
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/communicationchannel/broadcastchannel/impl/DummyBroadcastChannel.java
@@ -0,0 +1,65 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.trafficinfo.demo.communicationchannel.DataReceptionListener;
+import org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.Broadcast;
+import org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.BroadcastReception;
+
+
+public class DummyBroadcastChannel implements Broadcast, BroadcastReception {
+ private final static Logger LOGGER = Logger.getLogger(DummyBroadcastChannel.class.getName());
+
+ private static DummyBroadcastChannel broadcastChannel = null;
+
+ private List<DataReceptionListener> broadcastReceptionListeners = new ArrayList<DataReceptionListener>();
+
+ private DummyBroadcastChannel() {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ public static DummyBroadcastChannel getInstance() {
+ if (broadcastChannel == null) {
+ broadcastChannel = new DummyBroadcastChannel();
+ }
+
+ return broadcastChannel;
+ }
+
+ @Override
+ public void broadcast(Object data) {
+ LOGGER.info("DummyBroadcastChannel going to broadcasting data");
+ for (DataReceptionListener broadcastReceptionListener: broadcastReceptionListeners) {
+ broadcastReceptionListener.dataReceived(data);
+ }
+ }
+
+ @Override
+ public void addBroadcastReceptionListener(
+ DataReceptionListener broadcastReceptionListener) {
+ broadcastReceptionListeners.add(broadcastReceptionListener);
+
+ LOGGER.info("DataReceptionListenerAdded(" +
+ broadcastReceptionListener.getClass().getName() +
+ ") : number of listeners = " + broadcastReceptionListeners.size());
+ }
+
+ @Override
+ public void removeBroadcastReceptionListener(
+ DataReceptionListener broadcastReceptionListener) {
+ broadcastReceptionListeners.remove(broadcastReceptionListener);
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatter.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatter.java
new file mode 100755
index 0000000..59b1f4e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatter.java
@@ -0,0 +1,75 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.logging;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.logging.LogRecord;
+import java.util.logging.SimpleFormatter;
+
+public class EclipseConsoleFormatter extends SimpleFormatter {
+ private final static String LOGGER = "java.util.logging.Logger";
+ private static final String NEW_LINE = System.getProperty("line.separator");
+
+ @Override
+ public String format(LogRecord record) {
+ String fileName = null;
+ String className = null;
+ String methodName = null;
+ int lineNumber = -1;
+
+ boolean loggerFound = false;
+ for ( StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace() ) {
+ className = stackTraceElement.getClassName();
+
+ if (!loggerFound) {
+ if (className.equals(LOGGER)) {
+ loggerFound = true;
+ continue;
+ }
+ }
+
+
+ if (loggerFound && !className.equals(LOGGER)) {
+ className = className.substring(className.lastIndexOf(".") + 1);
+ fileName = stackTraceElement.getFileName();
+ methodName = stackTraceElement.getMethodName();
+ lineNumber = stackTraceElement.getLineNumber();
+ break;
+ }
+ }
+
+ StringBuilder buf = new StringBuilder();
+ buf.append(className);
+ buf.append(".");
+ buf.append(methodName);
+ buf.append(": ");
+ buf.append(formatMessage(record));
+
+ if (record.getThrown() != null) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ pw.println();
+ record.getThrown().printStackTrace(pw);
+ pw.close();
+ buf.append(sw.toString());
+ }
+
+ buf.append(" (");
+ buf.append(fileName);
+ buf.append(":");
+ buf.append(lineNumber);
+ buf.append(")");
+ buf.append(NEW_LINE);
+
+ return buf.toString();
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatterDemo.java b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatterDemo.java
new file mode 100755
index 0000000..f7f71c8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/src/org/genivi/trafficinfo/demo/logging/EclipseConsoleFormatterDemo.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+package org.genivi.trafficinfo.demo.logging;
+
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class EclipseConsoleFormatterDemo {
+ private final static Logger LOGGER = Logger.getLogger(EclipseConsoleFormatterDemo.class.getName());
+
+ public static void main(String args[]) {
+ EclipseConsoleFormatterDemo logTest = new EclipseConsoleFormatterDemo();
+ logTest.logSetup();
+ logTest.writeOutput();
+ }
+
+ private void logSetup() {
+ // Create Logger
+ Logger logger = Logger.getLogger("");
+ logger.setLevel(Level.INFO);
+
+ Handler consoleHandler = null;
+ for (Handler handler: logger.getHandlers()) {
+ if (handler.getClass().getName().equals("java.util.logging.ConsoleHandler")) {
+ consoleHandler = handler;
+ break;
+ }
+ }
+ consoleHandler.setFormatter(new EclipseConsoleFormatter());
+ }
+
+ private void writeOutput() {
+ LOGGER.info("Where am I?");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.demo/uml/CommunicationChannel.png b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/uml/CommunicationChannel.png
new file mode 100755
index 0000000..7e24908
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.demo/uml/CommunicationChannel.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.classpath b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.classpath
new file mode 100755
index 0000000..7a338a5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.project b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.project
new file mode 100755
index 0000000..30387d7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/.project
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.libmatthew</name>
+ <comment>Copy of libmatthew for easy testing. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/ReadMe.confluence
new file mode 100755
index 0000000..27e5dc5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/ReadMe.confluence
@@ -0,0 +1,4 @@
+This is an unmodified copy of the 'libmatthew' project by Matthew Johnson.
+This project is copied here as it is used by the dbus-java project.
+
+The original project can be found at http://dbus.freedesktop.org/ \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/pom.xml b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/pom.xml
new file mode 100755
index 0000000..71dcf04
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI libmatthew copy</name>
+ <description>Copy of libmatthew for easy testing</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/COPYING b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/COPYING
new file mode 100755
index 0000000..75300cc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/COPYING
@@ -0,0 +1,21 @@
+These Java libraries are Copyright Matthew Johnson 2006-2011 and are licenced
+under the terms of the Expat license:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/INSTALL b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/INSTALL
new file mode 100755
index 0000000..d94da85
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/INSTALL
@@ -0,0 +1,10 @@
+libmatthew-java installation guide
+-----------------------------
+
+To compile libmatthew-java you will need a Java 1.4 or better JDK, and a
+standard unix build environment including a C compiler.
+
+The libraries can be compiled and installed with `make' and `make install'
+respectively. By default they will be installed into /usr/local/share/java and
+/usr/local/lib/jni. This location can be configured by giving PREFIX, JARDIR
+and LIBDIR variables to make.
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/Makefile b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/Makefile
new file mode 100755
index 0000000..03c2e8a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/Makefile
@@ -0,0 +1,142 @@
+JAVAC?=javac
+JAVADOC?=javadoc
+JAR?=jar
+JAVAH?=javah
+GCJ?=gcj
+CC?=gcc
+LD?=gcc
+JPPFLAGS+=-C -P
+CFLAGS+=-Wall -Os -pedantic -Werror
+CSTD?=-std=c99
+CSHAREFLAG+=-fpic -fno-stack-protector
+GCJJNIFLAG=-fjni
+JVERCFLAGS+=-source 1.5
+JCFLAGS+=
+INCLUDES+=-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
+JAVADOCFLAGS?=-quiet -author -link http://java.sun.com/j2se/1.4.2/docs/api/
+
+LDVER?=$(shell ld -v | cut -d' ' -f1)
+UNAME?=$(shell uname -s)
+
+ifeq ($(LDVER),GNU)
+LDSHAREFLAGS+=-fpic -shared
+else
+LDSHAREFLAGS+=-lc
+endif
+
+PREFIX?=/usr/local
+JARDIR?=$(PREFIX)/share/java
+DOCDIR?=$(PREFIX)/share/doc/libmatthew-java/
+LIBDIR?=$(PREFIX)/lib/jni
+
+MATTVER=0.8
+DEBUGVER=1.1
+UNIXVER=0.5
+CGIVER=0.6
+IOVER=0.1
+HEXVER=0.2
+
+SRC=$(shell find cx -name '*.java' -and -not -name 'Debug.java')
+
+DEBUG?=disable
+
+.NOPARALLEL:
+.NO_PARALLEL:
+.NOTPARALLEL:
+
+all: unix-$(UNIXVER).jar cgi-$(CGIVER).jar debug-enable-$(DEBUGVER).jar debug-disable-$(DEBUGVER).jar io-$(IOVER).jar hexdump-$(HEXVER).jar libcgi-java.so libunix-java.so
+
+classes: .classes
+.classes: $(SRC)
+ mkdir -p classes
+ $(MAKE) .$(DEBUG)debug
+ $(JAVAC) $(JVERCFLAGS) $(JCFLAGS) -d classes -cp classes $^
+ touch .classes
+clean:
+ rm -rf classes doc
+ rm -f .classes .enabledebug .disabledebug *.o *.h *.so *.tar.gz *.jar *.cgi Manifest
+ rm -rf libmatthew-java-$(MATTVER)
+
+cgi-$(CGIVER).jar: .classes
+ (cd classes; $(JAR) cf ../$@ cx/ath/matthew/cgi/*class)
+io-$(IOVER).jar: .classes
+ (cd classes; $(JAR) cf ../$@ cx/ath/matthew/io/*class)
+unix-$(UNIXVER).jar: .classes
+ifeq ($(DEBUG),enable)
+ echo "Class-Path: $(JARDIR)/debug-$(DEBUG).jar" > Manifest
+else
+ echo "Class-Path: " > Manifest
+endif
+ (cd classes; $(JAR) cfm ../$@ ../Manifest cx/ath/matthew/unix/*class)
+
+hexdump-$(HEXVER).jar: .classes
+ (cd classes; $(JAR) cf ../$@ cx/ath/matthew/utils/Hexdump.class)
+
+%.o: %.c %.h
+ $(CC) $(CFLAGS) $(CSTD) $(CSHAREFLAG) $(INCLUDES) -c -o $@ $<
+lib%.so: %.o
+ $(CC) $(LDFLAGS) $(LDSHAREFLAGS) -o $@ $<
+unix-java.h: .classes
+ $(JAVAH) -classpath classes -o $@ cx.ath.matthew.unix.UnixServerSocket cx.ath.matthew.unix.UnixSocket cx.ath.matthew.unix.USInputStream cx.ath.matthew.unix.USOutputStream
+cgi-java.h: .classes
+ $(JAVAH) -classpath classes -o $@ cx.ath.matthew.cgi.CGI
+
+test.cgi: cgi-$(CGIVER).jar libcgi-java.so
+ $(GCJ) $(GCJFLAGS) $(GCJJNIFLAG) -L. -lcgi-java -o test.cgi --main=cx.ath.matthew.cgi.testcgi cgi-$(CGIVER).jar
+
+libmatthew-java-$(MATTVER).tar.gz: Makefile cx cgi-java.c unix-java.c README INSTALL COPYING changelog
+ mkdir -p libmatthew-java-$(MATTVER)
+ cp -a $^ libmatthew-java-$(MATTVER)
+ tar zcf $@ libmatthew-java-$(MATTVER)
+
+debug-enable-$(DEBUGVER).jar: cx/ath/matthew/debug/Debug.jpp
+ make .enabledebug
+ echo "Class-Path: $(JARDIR)/hexdump.jar" > Manifest
+ (cd classes;jar cfm ../$@ ../Manifest cx/ath/matthew/debug/*.class)
+debug-disable-$(DEBUGVER).jar: cx/ath/matthew/debug/Debug.jpp
+ make .disabledebug
+ echo "Class-Path: $(JARDIR)/hexdump.jar" > Manifest
+ (cd classes;jar cfm ../$@ ../Manifest cx/ath/matthew/debug/*.class)
+.enabledebug: cx/ath/matthew/debug/Debug.jpp
+ mkdir -p classes
+ cpp $(PPFLAGS) $(JPPFLAGS) -DDEBUGSETTING=true < cx/ath/matthew/debug/Debug.jpp > cx/ath/matthew/debug/Debug.java
+ $(JAVAC) $(JVERCFLAGS) $(JCFLAGS) -cp classes -d classes cx/ath/matthew/debug/Debug.java cx/ath/matthew/utils/Hexdump.java
+ rm -f .disabledebug
+ touch .enabledebug
+.disabledebug: cx/ath/matthew/debug/Debug.jpp
+ mkdir -p classes
+ cpp $(PPFLAGS) $(JPPFLAGS) -DDEBUGSETTING=false < cx/ath/matthew/debug/Debug.jpp > cx/ath/matthew/debug/Debug.java
+ $(JAVAC) $(JVERCFLAGS) $(JCFLAGS) -cp classes -d classes cx/ath/matthew/debug/Debug.java cx/ath/matthew/utils/Hexdump.java
+ rm -f .enabledebug
+ touch .disabledebug
+cx/ath/matthew/debug/Debug.java: .disabledebug
+doc/index.html:
+ $(JAVADOC) $(JAVADOCFLAGS) -d doc/ cx/ath/matthew/debug/Debug.java $(SRC)
+
+doc: doc/index.html
+
+install-doc: doc/index.html
+ install -d $(DESTDIR)$(DOCDIR)
+ cp -a doc $(DESTDIR)$(DOCDIR)/api
+
+install-native: libcgi-java.so libunix-java.so
+ install -d $(DESTDIR)$(LIBDIR)
+ install libcgi-java.so $(DESTDIR)$(LIBDIR)
+ install libunix-java.so $(DESTDIR)$(LIBDIR)
+
+install-jar: unix-$(UNIXVER).jar cgi-$(CGIVER).jar debug-enable-$(DEBUGVER).jar debug-disable-$(DEBUGVER).jar io-$(IOVER).jar hexdump-$(HEXVER).jar
+ install -d $(DESTDIR)$(JARDIR)
+ install -m 644 debug-enable-$(DEBUGVER).jar $(DESTDIR)$(JARDIR)
+ install -m 644 debug-disable-$(DEBUGVER).jar $(DESTDIR)$(JARDIR)
+ install -m 644 unix-$(UNIXVER).jar $(DESTDIR)$(JARDIR)
+ install -m 644 cgi-$(CGIVER).jar $(DESTDIR)$(JARDIR)
+ install -m 644 io-$(IOVER).jar $(DESTDIR)$(JARDIR)
+ install -m 644 hexdump-$(HEXVER).jar $(DESTDIR)$(JARDIR)
+ ln -sf debug-disable-$(DEBUGVER).jar $(DESTDIR)$(JARDIR)/debug-disable.jar
+ ln -sf debug-enable-$(DEBUGVER).jar $(DESTDIR)$(JARDIR)/debug-enable.jar
+ ln -sf unix-$(UNIXVER).jar $(DESTDIR)$(JARDIR)/unix.jar
+ ln -sf io-$(IOVER).jar $(DESTDIR)$(JARDIR)/io.jar
+ ln -sf cgi-$(CGIVER).jar $(DESTDIR)$(JARDIR)/cgi.jar
+ ln -sf hexdump-$(HEXVER).jar $(DESTDIR)$(JARDIR)/hexdump.jar
+
+install: install-native install-jar
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/README b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/README
new file mode 100755
index 0000000..acdc874
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/README
@@ -0,0 +1,41 @@
+libmatthew-java v0.1
+--------------------
+
+These are a selection of libraries for Java which I have written because they
+are useful and not provided with normal Java. They are available for download
+here and are licensed under the GPL or LGPL. They all come with example
+applications using the libraries.
+
+The ones I consider distribution-worthy are packaged up together. Several other
+classes are available separately below.
+
+Unix Sockets Library
+
+This is a collection of classes and native code to allow you to read and write
+Unix sockets in Java.
+
+Debug Library
+
+This is a comprehensive logging and debugging solution.
+
+CGI Library
+
+This is a collection of classes and native code to allow you to write CGI
+applications in Java.
+
+I/O Library
+
+This provides a few much needed extensions to the Java I/O subsystem. Firstly,
+there is a class which will connect and InputStream with an OutputStream and
+copy data between them.
+
+Secondly there are two classes for inserting into an Input or OutputStream pipe
+a command line command, so that everything is piped through that command.
+
+Thirdly there are a pair of classes for splitting streams in two. This can
+either be to two OuputStreams, or to an OutputStream and a file. Equivelent to
+the UNIX tool tee in UNIX pipes.
+
+Hexdump
+
+This class formats byte-arrays in hex and ascii for display.
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cgi-java.c b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cgi-java.c
new file mode 100755
index 0000000..64aed24
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cgi-java.c
@@ -0,0 +1,64 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+#include <jni.h>
+#include "cgi-java.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+extern char **environ;
+
+extern jobjectArray Java_cx_ath_matthew_cgi_CGI_getfullenv (JNIEnv *env, jobject obj, jclass type)
+{
+ int i;
+ for (i = 0; environ[i]; i++);
+ jobjectArray joa = (*env)->NewObjectArray(env, i+1, type, NULL);
+ for (i = 0; environ[i]; i++)
+ (*env)->SetObjectArrayElement(env, joa, i, (*env)->NewStringUTF(env, environ[i]));
+ return joa;
+}
+
+extern jstring Java_cx_ath_matthew_cgi_CGI_getenv (JNIEnv *env, jobject obj, jstring ename)
+{
+ const char *estr = (*env)->GetStringUTFChars(env, ename, 0);
+ char *eval = getenv(estr);
+ (*env)->ReleaseStringUTFChars(env, ename, estr);
+ if (NULL == eval)
+ return NULL;
+ else
+ return (*env)->NewStringUTF(env, eval);
+}
+
+extern void Java_cx_ath_matthew_cgi_CGI_setenv (JNIEnv *env, jobject obj, jstring var, jstring val)
+{
+#ifdef setenv
+ const char *cvar = (*env)->GetStringUTFChars(env, var, 0);
+ const char *cval = (*env)->GetStringUTFChars(env, val, 0);
+ setenv(cvar, cval, 1);
+#endif
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/changelog b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/changelog
new file mode 100755
index 0000000..e7a2183
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/changelog
@@ -0,0 +1,73 @@
+Version 0.8:
+
+ * Change to expat licence
+
+ * Patches to the CGI libraries from Andy Canfield <andy -dot- canfield -at-
+ pimco -dot- mobi>
+
+Version 0.7.3:
+
+ * Patch from çŸ³é ­æˆ <shirock -dot- tw -at- gmail -dot- com> to avoid a
+ memory leak
+
+Version 0.7.2:
+
+ * Also add .NO_PARALLEL and .NOTPARALLEL because I have no idea
+ which one is correct
+ * Apply patch from Omair Majid <omajid -at- redhat -dot- com>
+ which make overriding CFLAGS easier
+ * Use -source 1.5 rather than -source 5.0, the former works with more
+ Java compilers
+ * Add -fno-stack-protector to fix compilation issues in various distros
+ * Fix spin-on-disconnection bug (Spotted by Christopher Armstrong
+ <carmstrong -at- fastmail -dot- com -dot- au>)
+
+Version 0.7.1:
+
+ * Fix compiler warning on 64bit systems (spotted by
+ serkankaba -at- gmail -dot- com)
+ * Fix compilation with glibc 2.8 (patch from Omair Majid
+ <omajid -at- redhat -dot- com>)
+
+Version 0.7:
+
+ * use += not ?= when setting *FLAGS
+ * Possible SIGSEGV in native_close, possible fix
+ * Don't include debug-disable in any manifests
+ * Fix some compiler warnings. Setenv doesn't exist on all platforms.
+
+Version 0.6:
+
+ * Add toByteArray to Hexdump for creating byte-array-literals in
+ generated code.
+ * UnixSocket output streams can now send multiple byte[] at once
+ to use scatter-gather for efficiency
+ * Add fuctions to get peer credentials
+ * Work on BSD
+
+Version 0.5:
+
+ * Add licence headers to files which are missing
+ * fix javadoc calls so that -link is replacable with local docs
+ * add .NOPARALLEL: to disable parallel building. Fails to get debugging
+ right
+
+Version 0.4:
+
+ * Add javadoc target
+ * Add Manifest with Class-Path to relevant jars
+
+Version 0.2:
+
+ * Fix Unix Sockets not to lose reference if IO streams are still
+ referenced.
+ * Add methods to Debug to set the config manually
+ * update Debug defaults
+ * add ALL as a class name to Debug
+ * write installation guide
+ * fix UnixSocket.setBlocking
+ * add UnixSocket.setSoTimeout
+
+Version 0.1:
+
+ * Initial code and packaging.
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGI.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGI.java
new file mode 100755
index 0000000..b63fffa
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGI.java
@@ -0,0 +1,565 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+
+/**
+ * This is the main class you have to extend with your CGI program.
+ * You should implement the cgi() method.
+ *
+ * @author Matthew Johnson &lt;src@matthew.ath.cx&gt;
+ */
+abstract public class CGI
+{
+ private CGIErrorHandler errorhandler = new DefaultErrorHandler();
+ private boolean headers_sent = false;
+ private HashMap headers = new HashMap();
+ private Vector cookies = new Vector();
+ private LinkedList pagedata = new LinkedList();
+ private LinkedList rawdata = new LinkedList();
+
+ private native String getenv(String var);
+ /** MUST pass String.class and ALWAYS returns a String[] */
+ private native Object[] getfullenv(Class c);
+ private native void setenv(String var, String value);
+ {
+ System.loadLibrary("cgi-java");
+ }
+
+ /**
+ * Called by CGIs to send a header to the output
+ *
+ * @param variable The header variable to set.
+ * @param value The value of the variable.
+ *
+ * @throws CGIHeaderSentException if the headers have already been sent.
+ *
+ * @see #flush
+ */
+ public final void header(String variable, String value) throws CGIHeaderSentException
+ {
+ // only send headers once
+ if (headers_sent) throw new CGIHeaderSentException();
+
+ // buffer the variable (Map so that each header is only set once)
+ headers.put(variable.toLowerCase(), value);
+ }
+
+ /**
+ * Sets a Cookie in the web browser, with extended attributes.
+ * Calls header() so must be called before sending any output.
+ *
+ * A parameter will not be sent if it is null.
+ *
+ * @param variable The cookie variable to set.
+ * @param value The value of the variable.
+ * @param path The path that the cookie will be returned for.
+ * @param domain The domain that the cookie will be returned for.
+ * @param expires The expiry date of the cookie.
+ * @param secure Will only send the cookie over HTTPS if this is true.
+ *
+ * @throws CGIHeaderSentException if the headers have already been sent.
+ *
+ * @see #flush
+ * @see #header
+ */
+ public final void setcookie(String variable, String value, String path, String domain, Date expires, boolean secure) throws CGIHeaderSentException
+ {
+ if (headers_sent) throw new CGIHeaderSentException();
+
+ //Set-Cookie: NAME=VALUE; expires=DATE;
+ //path=PATH; domain=DOMAIN_NAME; secure
+ //Wdy, DD-Mon-YYYY HH:MM:SS GMT
+ DateFormat df = new SimpleDateFormat("E, dd-MMM-yyyy HH:mm:ss zzz");
+ String cookie = variable+"="+value;
+ if (null != path) cookie += "; path="+path;
+ if (null != domain) cookie += "; domain="+domain;
+ if (null != expires) cookie += "; expires="+df.format(expires);
+ if (secure) cookie += "; secure";
+ cookies.add("Set-Cookie: "+ cookie);
+ }
+
+ /**
+ * Sets a Cookie in the web browser.
+ * Calls header() so must be called before sending any output.
+ *
+ * @param variable The cookie variable to set.
+ * @param value The value of the variable.
+ *
+ * @throws CGIHeaderSentException if the headers have already been sent.
+ *
+ * @see #flush
+ * @see #header
+ */
+ public final void setcookie(String variable, String value) throws CGIHeaderSentException
+ {
+ if (headers_sent) throw new CGIHeaderSentException();
+
+ //Set-Cookie: NAME=VALUE; expires=DATE;
+ //path=PATH; domain=DOMAIN_NAME; secure
+ cookies.add("Set-Cookie: "+ variable+"="+value);
+ }
+
+ /**
+ * Called by CGIs to send byte data to the output.
+ * The data is buffered until the CGI exits, or a call of flush.
+ *
+ * @param data The page data.
+ * @throws CGIInvalidContentFormatException if text data has already been sent.
+ *
+ * @see #flush
+ */
+ public final void out(byte[] data) throws CGIInvalidContentFormatException
+ {
+ if (pagedata.size() > 0) throw new CGIInvalidContentFormatException();
+ rawdata.add(data);
+ }
+
+ /**
+ * Called by CGIs to send a string to the output.
+ * The data is buffered until the CGI exits, or a call of flush.
+ *
+ * @param data The page data.
+ * @throws CGIInvalidContentFormatException if raw data has already been sent.
+ *
+ * @see #flush
+ */
+ public final void out(String data) throws CGIInvalidContentFormatException
+ {
+ if (rawdata.size() > 0) throw new CGIInvalidContentFormatException();
+ pagedata.add(data);
+ }
+
+ /**
+ * This will return an OutputStream that you can write data
+ * directly to. Calling this method will cause the output to be
+ * flushed and the Headers sent. At the moment this is not buffered
+ * and will be sent directly to the client. Subsequent calls
+ * to out() will appear after data written to the output stream.
+ *
+ * @see #out
+ * @return an OutputStream
+ */
+ public final OutputStream getOutputStream() throws IOException
+ {
+ flush();
+ return System.out;
+ }
+
+ /**
+ * Flushes the output.
+ * Note that you cannot send a header after a flush.
+ * If you want to send both text and binary data in a page
+ * you may do so either side of a flush.
+ *
+ * @see #header
+ */
+ public final void flush() throws IOException
+ {
+ if (!headers_sent) {
+ // don't send headers again
+ headers_sent = true;
+ // send headers
+ Iterator i = headers.keySet().iterator();
+ while (i.hasNext()) {
+ String key = (String) i.next();
+ String value = (String) headers.get(key);
+ System.out.println(key + ": " + value);
+ }
+ // send cookies
+ i = cookies.iterator();
+ while (i.hasNext()) {
+ System.out.println((String) i.next());
+ }
+ System.out.println();
+ }
+
+ // send data
+ if (pagedata.size() >0) {
+ Iterator j = pagedata.iterator();
+ while (j.hasNext()) {
+ System.out.println((String) j.next());
+ }
+ pagedata.clear();
+ } else if (rawdata.size() > 0) {
+ Iterator j = rawdata.iterator();
+ while (j.hasNext()) {
+ System.out.write((byte[]) j.next());
+ }
+ pagedata.clear();
+ }
+ System.out.flush();
+ }
+
+ /**
+ * Sets a custom exception handler.
+ * Gets called when an exception is thrown.
+ * The default error handler prints the error nicely in HTML
+ * and then exits gracefully.
+ *
+ * @param handler The new exception handler
+ */
+ protected final void setErrorHandler(CGIErrorHandler handler)
+ {
+ errorhandler = handler;
+ }
+
+ /**
+ * Override this method in your CGI program.
+ *
+ * @param POST A Map of variable =$gt; value for the POST variables.
+ * @param GET A Map of variable =$gt; value for the GET variables.
+ * @param ENV A Map of variable =$gt; value for the Webserver environment variables.
+ * @param COOKIES A Map of variable =$gt; value for the browser-sent cookies.
+ * @param params An array of parameters passed to the CGI (GET with no variable assignments)
+ *
+ * @throws Exception You can throw anything, it will be caught by the error handler.
+ */
+ abstract protected void cgi(Map POST, Map GET, Map ENV, Map COOKIES, String[] params) throws Exception;
+
+ /**
+ * Reads variables from a String like a=b&amp;c=d to a Map {a =&gt; b, c =&gt; d}.
+ *
+ * @param s String to read from.
+ * @param seperator seperator character between variables (eg &amp;)
+ * @param values whether or not this string has values for variables
+ *
+ * @return a Map with values, a Vector without
+ */
+ private Object readVariables(String s, char seperator, boolean values)
+ {
+ HashMap vars = new HashMap();
+ Vector varv = new Vector();
+ String temp = "";
+ String variable = null;
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ if (c == seperator) { // new variable
+ if (null != temp) temp = temp.trim();
+ if (values) {
+ if (variable == null) {variable = temp; temp = "";}
+ else variable.trim();
+ if (!variable.equals("")) {
+ Object o = vars.get(variable);
+ if (o == null)
+ vars.put(variable.trim(), temp);
+ else if (o instanceof String) {
+ LinkedList l = new LinkedList();
+ l.add(o);
+ l.add(temp);
+ vars.put(variable.trim(), l);
+ } else if (o instanceof LinkedList)
+ ((LinkedList) o).add(temp);
+ }
+ temp = "";
+ }
+ else {
+ varv.add(temp);
+ temp = "";
+ }
+ variable = null;
+ continue;
+ }
+ if (values && c == '=') {
+ variable = temp;
+ temp = "";
+ continue;
+ }
+ switch (c) {
+ case '%': // escaped character
+ try {
+ char a = s.charAt(++i);
+ char b = s.charAt(++i);
+ int ch = 0;
+ switch (a) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ ch += 0x10 * (a - '0');
+ break;
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ ch += 0x10 * (a - 'a' + 0xa);
+ break;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ ch += 0x10 * (a - 'A' + 0xA);
+ break;
+ }
+ switch (b) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ ch += (b - '0');
+ break;
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ ch += (b - 'a' + 0xa);
+ break;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ ch += (b - 'A' + 0xA);
+ break;
+ }
+ temp += (char) ch;
+ } catch (StringIndexOutOfBoundsException SIOOBe) {
+ // this means someone has included an invalid escape sequence.
+ // Invalid URIs can just be thrown on the floor.
+ }
+ break;
+ // + is a space
+ case '+':
+ temp += ' ';
+ break;
+ default:
+ temp += c;
+ }
+ }
+ if (values) {
+ if (variable == null) {variable = temp; temp = "";}
+ else variable.trim();
+ //out("DEBUG variable read: "+variable+"/"+temp);
+ if (!variable.equals("")) {
+ Object o = vars.get(variable);
+ if (o == null)
+ vars.put(variable.trim(), temp);
+ else if (o instanceof String) {
+ LinkedList l = new LinkedList();
+ l.add(o);
+ l.add(temp);
+ vars.put(variable.trim(), l);
+ } else if (o instanceof LinkedList)
+ ((LinkedList) o).add(temp);
+ }
+
+ return vars;
+ }
+ else {
+ varv.add(temp);
+ return varv;
+ }
+ }
+
+ /**
+ * Sets up the POST variables
+ */
+ private Map getPOST()
+ {
+ try {
+ String s = "";
+ while(System.in.available() > 0)
+ s += (char) System.in.read();
+ //out("DEBUG: POST STRING: "+s);
+ return (Map) readVariables(s, '&', true);
+ } catch (IOException IOe) {
+ try {
+ out("ERROR: IOException: "+IOe);
+ } catch (CGIInvalidContentFormatException CGIICFe) {
+ System.err.println("ERROR: IOException: "+IOe);
+ }
+ return new HashMap();
+ }
+ }
+
+ /**
+ * Sets up the COOKIEs
+ */
+ private Map getCOOKIE()
+ {
+ String s = getenv("HTTP_COOKIE");
+ if (null == s)
+ return new HashMap();
+ else
+ return (Map) readVariables(s, ';', true);
+ }
+
+ /**
+ * Sets up the GET variables
+ */
+ private Map getGET()
+ {
+ String s = getenv("QUERY_STRING");
+ if (null == s)
+ return new HashMap();
+ else
+ return (Map) readVariables(s, '&', true);
+ }
+
+ /**
+ * Sets up the ENV variables
+ */
+ private Map getENV()
+ {
+ Map m = new HashMap();
+ String[] env = (String[]) getfullenv(String.class);
+ for (int i = 0; i < env.length; i++){
+ if (null == env[i]) continue;
+ String[] e = env[i].split("=");
+ if (1 == e.length)
+ m.put(e[0], "");
+ else
+ m.put(e[0], e[1]);
+ }
+
+/*
+ m.put("SERVER_SOFTWARE", getenv("SERVER_SOFTWARE"));
+ m.put("SERVER_NAME", getenv("SERVER_NAME"));
+ m.put("GATEWAY_INTERFACE", getenv("GATEWAY_INTERFACE"));
+ m.put("SERVER_PROTOCOL", getenv("SERVER_PROTOCOL"));
+ m.put("SERVER_PORT", getenv("SERVER_PORT"));
+ m.put("REQUEST_METHOD", getenv("REQUEST_METHOD"));
+ m.put("PATH_INFO", getenv("PATH_INFO"));
+ m.put("PATH_TRANSLATED", getenv("PATH_TRANSLATED"));
+ m.put("SCRIPT_NAME", getenv("SCRIPT_NAME"));
+ m.put("QUERY_STRING", getenv("QUERY_STRING"));
+ m.put("REMOTE_HOST", getenv("REMOTE_HOST"));
+ m.put("REMOTE_ADDR", getenv("REMOTE_ADDR"));
+ m.put("AUTH_TYPE", getenv("AUTH_TYPE"));
+ m.put("REMOTE_USER", getenv("REMOTE_USER"));
+ m.put("REMOTE_IDENT", getenv("REMOTE_IDENT"));
+ m.put("CONTENT_TYPE", getenv("CONTENT_TYPE"));
+ m.put("CONTENT_LENGTH", getenv("CONTENT_LENGTH"));
+ m.put("HTTP_ACCEPT", getenv("HTTP_ACCEPT"));
+ m.put("HTTP_USER_AGENT", getenv("HTTP_USER_AGENT"));
+ m.put("HTTP_COOKIE", getenv("HTTP_COOKIE"));
+ m.put("HTTP_ACCEPT_CHARSET", getenv("HTTP_ACCEPT_CHARSET"));
+ m.put("HTTP_ACCEPT_ENCODING", getenv("HTTP_ACCEPT_ENCODING"));
+ m.put("HTTP_CACHE_CONTROL", getenv("HTTP_CACHE_CONTROL"));
+ m.put("HTTP_REFERER", getenv("HTTP_REFERER"));
+ m.put("HTTP_X_FORWARDED_FOR", getenv("HTTP_X_FORWARDED_FOR"));
+ m.put("HTTP_HOST", getenv("HTTP_HOST"));
+ m.put("REQUEST_URI", getenv("REQUEST_URI"));
+ m.put("DOCUMENT_ROOT", getenv("DOCUMENT_ROOT"));
+ m.put("PATH", getenv("PATH"));
+ m.put("SERVER_ADDR", getenv("SERVER_ADDR"));
+ m.put("SCRIPT_FILENAME", getenv("SCRIPT_FILENAME"));
+ m.put("HTTP_COOKIE2", getenv("HTTP_COOKIE2"));
+ m.put("HTTP_CONNECTION", getenv("HTTP_CONNECTION"));
+ m.put("LANG", getenv("LANG"));
+ m.put("REDIRECT_LANG", getenv("REDIRECT_LANG"));
+ */
+ return m;
+ }
+
+ /**
+ * Sets up the param variables
+ */
+ private String[] getParams(String args)
+ {
+ Vector v = (Vector) readVariables(args, ',', false);
+ String[] params = new String[v.size()];
+ Iterator i = v.iterator();
+ for (int j = 0; j < params.length; j++)
+ params[j] = (String) i.next();
+ return params;
+ }
+
+ /**
+ * This method sets up all the CGI variables and calls the cgi() method, then writes out the page data.
+ */
+ public final void doCGI(String[] args)
+ {
+ CGI cgiclass = null;
+ // wrap everything in a try, we need to handle all our own errors.
+ try {
+ // setup the CGI variables
+ Map POST = getPOST();
+ Map GET = getGET();
+ Map ENV = getENV();
+ Map COOKIE = getCOOKIE();
+ String[] params = new String[] {};
+ if (args.length >= 1)
+ params = getParams(args[0]);
+
+ // instantiate CGI class
+ /* Class c = Class.forName(args[0]);
+ cgiclass = (CGI) c.newInstance(); */
+
+ // set default headers
+ /*cgiclass.*/header("Content-type", "text/html");
+
+ // execute the CGI
+ /*cgiclass.*/cgi(POST, GET, ENV, COOKIE, params);
+
+ // send the output / remaining output
+ /*cgiclass.*/flush();
+ }
+
+ // yes, we really want to do this. CGI programs can't send errors. Print nicely to the screen.
+ catch (Exception e) {
+ errorhandler.print(/*null == cgiclass ? false : cgiclass.*/headers_sent, e);
+ }
+ catch (Throwable t) {
+ t.printStackTrace(); // this is bad enough to produce stderr errors
+ errorhandler.print(/*null == cgiclass ? false : cgiclass.*/headers_sent, new Exception(t.toString()));
+ }
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIErrorHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIErrorHandler.java
new file mode 100755
index 0000000..e0798cb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIErrorHandler.java
@@ -0,0 +1,41 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+/**
+ * Interface to handle exceptions in the CGI.
+ */
+public interface CGIErrorHandler
+{
+ /**
+ * This is called if an exception is not caught in the CGI.
+ * It should handle printing the error message nicely to the user,
+ * and then exit gracefully.
+ */
+ public void print(boolean headers_sent, Exception e);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIHeaderSentException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIHeaderSentException.java
new file mode 100755
index 0000000..4df8cc7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIHeaderSentException.java
@@ -0,0 +1,39 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+/**
+ * Thrown if the headers have already been sent and CGI.header is called.
+ */
+public class CGIHeaderSentException extends Exception
+{
+ public CGIHeaderSentException()
+ {
+ super("Headers already sent by CGI");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIInvalidContentFormatException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIInvalidContentFormatException.java
new file mode 100755
index 0000000..281533d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGIInvalidContentFormatException.java
@@ -0,0 +1,39 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+/**
+ * Thrown if both raw and text data are set in the same page.
+ */
+public class CGIInvalidContentFormatException extends Exception
+{
+ public CGIInvalidContentFormatException()
+ {
+ super("Cannot send both raw and text data");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGITools.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGITools.java
new file mode 100755
index 0000000..9a37945
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CGITools.java
@@ -0,0 +1,48 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+abstract class CGITools
+{
+ /**
+ * Escape a character in a string.
+ * @param in String to escape in.
+ * @param c Character to escape.
+ * @return in with c replaced with \c
+ */
+ public static String escapeChar(String in, char c)
+ {
+ String out = "";
+ for (int i = 0; i < in.length(); i++) {
+ if (in.charAt(i) == c) out += '\\';
+ out += in.charAt(i);
+ }
+ return out;
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CheckBox.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CheckBox.java
new file mode 100755
index 0000000..350390d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/CheckBox.java
@@ -0,0 +1,46 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public class CheckBox extends Field
+{
+ boolean checked;
+ public CheckBox(String name, String label, boolean checked)
+ {
+ this.name = name;
+ this.label = label;
+ this.checked = checked;
+ }
+ protected String print()
+ {
+ return "<input type='checkbox' name='"+name+"'"+(checked?" checked='checked'":"")+" />";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DefaultErrorHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DefaultErrorHandler.java
new file mode 100755
index 0000000..f5b812f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DefaultErrorHandler.java
@@ -0,0 +1,67 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+/**
+ * Interface to handle exceptions in the CGI.
+ */
+public class DefaultErrorHandler implements CGIErrorHandler
+{
+ /**
+ * This is called if an exception is not caught in the CGI.
+ * It should handle printing the error message nicely to the user,
+ * and then exit gracefully.
+ */
+ public void print(boolean headers_sent, Exception e)
+ {
+ if (!headers_sent) {
+ System.out.println("Content-type: text/html");
+ System.out.println("");
+ System.out.println("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+ System.out.println("<HTML><HEAD>");
+ System.out.println("<TITLE>Exception in CGI</TITLE>");
+ System.out.println("</HEAD><BODY>");
+ }
+ System.out.println("<HR>");
+ System.out.println("<H1>"+e.getClass().toString()+"</H1>");
+ System.out.println("<P>");
+ System.out.println("Exception Message: "+e.getMessage());
+ System.out.println("</P>");
+ System.out.println("<P>");
+ System.out.println("Stack Trace:");
+ System.out.println("</P>");
+ System.out.println("<PRE>");
+ e.printStackTrace(System.out);
+ System.out.println("</PRE>");
+ System.out.println("<HR>");
+ if (!headers_sent) {
+ System.out.println("</BODY></HTML>");
+ }
+ System.exit(1);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DisplayField.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DisplayField.java
new file mode 100755
index 0000000..ec62a7f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DisplayField.java
@@ -0,0 +1,46 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public class DisplayField extends Field
+{
+ String value;
+ public DisplayField(String label, String value)
+ {
+ this.name = "";
+ this.label = label;
+ this.value = value;
+ }
+ protected String print()
+ {
+ return value;
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DropDown.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DropDown.java
new file mode 100755
index 0000000..bdc4534
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/DropDown.java
@@ -0,0 +1,131 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+import java.util.List;
+
+public class DropDown extends Field
+{
+ Object[] values;
+ Object defval;
+ boolean indexed = false;
+ /**
+ * Create a new DropDown list.
+ *
+ * @param name The HTML field name.
+ * @param label The label to display
+ * @param values The values for the drop down list
+ * @param defval If this parameter is set then this element will be selected by default.
+ * @param indexed If this is set to true, then indexes will be returned, rather than values.
+ */
+ public DropDown(String name, String label, Object[] values, Object defval, boolean indexed)
+ {
+ this.name = name;
+ this.label = label;
+ this.values = values;
+ this.indexed = indexed;
+ this.defval = defval;
+ }
+ /**
+ * Create a new DropDown list.
+ *
+ * @param name The HTML field name.
+ * @param label The label to display
+ * @param values The values for the drop down list
+ * @param defval If this parameter is set then this element will be selected by default.
+ * @param indexed If this is set to true, then indexes will be returned, rather than values.
+ */
+ public DropDown(String name, String label, Object[] values, int defval, boolean indexed)
+ {
+ this.name = name;
+ this.label = label;
+ this.values = values;
+ if (defval < 0)
+ this.defval = null;
+ else
+ this.defval = values[defval];
+ this.indexed = indexed;
+ }
+ /**
+ * Create a new DropDown list.
+ *
+ * @param name The HTML field name.
+ * @param label The label to display
+ * @param values The values for the drop down list
+ * @param defval If this parameter is set then this element will be selected by default.
+ * @param indexed If this is set to true, then indexes will be returned, rather than values.
+ */
+ public DropDown(String name, String label, List values, Object defval, boolean indexed)
+ {
+ this.name = name;
+ this.label = label;
+ this.values = (Object[]) values.toArray(new Object[] {});
+ this.defval = defval;
+ this.indexed = indexed;
+ }
+ /**
+ * Create a new DropDown list.
+ *
+ * @param name The HTML field name.
+ * @param label The label to display
+ * @param values The values for the drop down list
+ * @param defval If this parameter is set then this element will be selected by default.
+ * @param indexed If this is set to true, then indexes will be returned, rather than values.
+ */
+ public DropDown(String name, String label, List values, int defval, boolean indexed)
+ {
+ this.name = name;
+ this.label = label;
+ this.values = (Object[]) values.toArray(new Object[] {});
+ if (defval < 0)
+ this.defval = null;
+ else
+ this.defval = values.get(defval);
+ this.indexed = indexed;
+ }
+ protected String print()
+ {
+ String s = "";
+ s += "<select name='"+name+"'>\n";
+ for (int i=0; i<values.length; i++) {
+ if (indexed)
+ s += " <option value='"+i+"'";
+ else
+ s += " <option";
+ if (values[i].equals(defval))
+ s += " selected='selected'>"+values[i]+"</option>\n";
+ else
+ s += ">"+values[i]+"</option>\n";
+ }
+ s += "</select>\n";
+ return s;
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Field.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Field.java
new file mode 100755
index 0000000..d859952
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Field.java
@@ -0,0 +1,38 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public abstract class Field
+{
+ protected String name;
+ protected String label;
+ protected abstract String print();
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HTMLForm.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HTMLForm.java
new file mode 100755
index 0000000..0a39739
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HTMLForm.java
@@ -0,0 +1,141 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+import java.util.Iterator;
+import java.util.Vector;
+
+
+/**
+ * Class to manage drawing HTML forms
+ */
+public class HTMLForm
+{
+ private String target;
+ private String submitlabel;
+ private String tableclass;
+ private Vector fields;
+ private boolean post = true;
+
+ /**
+ * @param target The module to submit to
+ */
+ public HTMLForm(String target)
+ {
+ this(target, "Submit", null);
+ }
+
+ /**
+ * @param target The module to submit to
+ * @param submitlabel The string to display on the submit button
+ */
+ public HTMLForm(String target, String submitlabel)
+ {
+ this(target, submitlabel, null);
+ }
+
+ /**
+ * @param target The module to submit to
+ * @param submitlabel The string to display on the submit button
+ * @param tableclass The class= parameter for the generated table
+ */
+ public HTMLForm(String target, String submitlabel, String tableclass)
+ {
+ this.target = target;
+ this.submitlabel = submitlabel;
+ this.tableclass = tableclass;
+ fields = new Vector();
+ }
+
+ /**
+ * Add a field to be displayed in the form.
+ *
+ * @param field A Field subclass.
+ */
+ public void addField(Field field)
+ {
+ fields.add(field);
+ }
+
+ /**
+ * Set GET method rather than POST
+ * @param enable Enable/Disable GET
+ */
+ public void setGET(boolean enable)
+ {
+ post = !enable;
+ }
+
+ /**
+ * Shows the form.
+ * @param cgi The CGI instance that is handling output
+ */
+ public void display(CGI cgi)
+ {
+ try {
+ cgi.out("<form action='"+CGITools.escapeChar(target,'"')+"' method='"+
+ (post?"post":"get")+"'>");
+ if (null == tableclass)
+ cgi.out("<table>");
+ else
+ cgi.out("<table class='"+tableclass+"'>");
+
+ Iterator i = fields.iterator();
+ while (i.hasNext()) {
+ Field f = (Field) i.next();
+ if (f instanceof NewTable) {
+ cgi.out(f.print());
+ }
+ if (!(f instanceof HiddenField) && !(f instanceof SubmitButton) && !(f instanceof NewTable)) {
+ cgi.out(" <tr>");
+ cgi.out(" <td>"+f.label+"</td>");
+ cgi.out(" <td>"+f.print()+"</td>");
+ cgi.out(" </tr>");
+ }
+ }
+ cgi.out(" <tr>");
+ cgi.out(" <td colspan='2' style='text-align:center;'>");
+ i = fields.iterator();
+ while (i.hasNext()) {
+ Field f = (Field) i.next();
+ if (f instanceof HiddenField || f instanceof SubmitButton) {
+ cgi.out(" "+f.print());
+ }
+ }
+ cgi.out(" <input type='submit' name='submit' value='"+CGITools.escapeChar(submitlabel,'\'')+"' />");
+ cgi.out(" </td>");
+ cgi.out(" </tr>");
+ cgi.out("</table>");
+ cgi.out("</form>");
+ } catch (CGIInvalidContentFormatException CGIICFe) {}
+ }
+}
+
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HiddenField.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HiddenField.java
new file mode 100755
index 0000000..523f85b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/HiddenField.java
@@ -0,0 +1,46 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public class HiddenField extends Field
+{
+ String value;
+ public HiddenField(String name, String value)
+ {
+ this.name = name;
+ this.label = "";
+ this.value = value;
+ }
+ protected String print()
+ {
+ return "<input type=\"hidden\" name=\""+name+"\" value=\""+CGITools.escapeChar(value, '"')+"\" />";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/MultipleDropDown.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/MultipleDropDown.java
new file mode 100755
index 0000000..39904bd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/MultipleDropDown.java
@@ -0,0 +1,115 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+/*
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package cx.ath.matthew.cgi;
+
+import java.util.List;
+
+/**
+ * @author Agent
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class MultipleDropDown extends DropDown {
+
+ /**
+ * @param name
+ * @param label
+ * @param values
+ * @param defval
+ * @param indexed
+ */
+ public MultipleDropDown(String name, String label, String[] values,
+ String defval, boolean indexed) {
+ super(name, label, values, defval, indexed);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param name
+ * @param label
+ * @param values
+ * @param defval
+ * @param indexed
+ */
+ public MultipleDropDown(String name, String label, String[] values,
+ int defval, boolean indexed) {
+ super(name, label, values, defval, indexed);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param name
+ * @param label
+ * @param values
+ * @param defval
+ * @param indexed
+ */
+ public MultipleDropDown(String name, String label, List values,
+ String defval, boolean indexed) {
+ super(name, label, values, defval, indexed);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @param name
+ * @param label
+ * @param values
+ * @param defval
+ * @param indexed
+ */
+ public MultipleDropDown(String name, String label, List values, int defval,
+ boolean indexed) {
+ super(name, label, values, defval, indexed);
+ // TODO Auto-generated constructor stub
+ }
+
+ protected String print()
+ {
+ String s = "";
+ s += "<select name='"+name+"' multiple='multiple' size='"+values.length+"'>\n";
+ for (int i=0; i<values.length; i++) {
+ if (indexed)
+ s += " <option value='"+i+"'";
+ else
+ s += " <option";
+ if (values[i].equals(defval))
+ s += " selected='selected'>"+values[i]+"</option>\n";
+ else
+ s += ">"+values[i]+"</option>\n";
+ }
+ s += "</select>\n";
+ return s;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/NewTable.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/NewTable.java
new file mode 100755
index 0000000..1638b74
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/NewTable.java
@@ -0,0 +1,42 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+public class NewTable extends Field {
+
+ private String name;
+ private String cssClass;
+
+ public NewTable (String name, String css) {
+ this.name = name;
+ this.cssClass = css;
+ }
+
+ protected String print() {
+ return "</table>\n<table class=\""+cssClass+"\">";
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Password.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Password.java
new file mode 100755
index 0000000..046fc0c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Password.java
@@ -0,0 +1,46 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public class Password extends Field
+{
+ String defval;
+ public Password(String name, String label, String defval)
+ {
+ this.name = name;
+ this.label = label;
+ this.defval = defval;
+ }
+ protected String print()
+ {
+ return "<input type='password' name='"+name+"' value='"+CGITools.escapeChar(defval, '\'')+"' />";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Radio.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Radio.java
new file mode 100755
index 0000000..3a0d80e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/Radio.java
@@ -0,0 +1,46 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public class Radio extends Field
+{
+ boolean checked;
+ public Radio(String name, String label, boolean checked)
+ {
+ this.name = name;
+ this.label = label;
+ this.checked = checked;
+ }
+ protected String print()
+ {
+ return "<input type='radio' name='"+name+"'"+(checked?" checked='checked'":"")+" />";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/SubmitButton.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/SubmitButton.java
new file mode 100755
index 0000000..ff97e1c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/SubmitButton.java
@@ -0,0 +1,54 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+/*
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package cx.ath.matthew.cgi;
+
+/**
+ * @author Agent
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SubmitButton extends Field {
+
+ public SubmitButton(String name, String label) {
+ this.name = name;
+ this.label = label;
+ }
+ /* (non-Javadoc)
+ * @see cx.ath.matthew.cgi.Field#print()
+ */
+ protected String print() {
+ return "<input type='submit' name='"+name+"' value='"+CGITools.escapeChar(label,'\'')+"' />";
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextArea.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextArea.java
new file mode 100755
index 0000000..6a924c4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextArea.java
@@ -0,0 +1,57 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+public class TextArea extends Field
+{
+ String defval;
+ int cols;
+ int rows;
+ public TextArea(String name, String label, String defval)
+ {
+ this(name, label, defval, 30, 4);
+ }
+ public TextArea(String name, String label, String defval, int cols, int rows)
+ {
+ this.name = name;
+ this.label = label;
+ if (null == defval)
+ this.defval = "";
+ else
+ this.defval = defval;
+ this.cols = cols;
+ this.rows = rows;
+ }
+ protected String print()
+ {
+ return "<textarea name='"+name+"' cols='"+cols+"' rows='"+rows+"'>"+defval+"</textarea>";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextField.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextField.java
new file mode 100755
index 0000000..124ce3e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/TextField.java
@@ -0,0 +1,69 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+package cx.ath.matthew.cgi;
+
+
+public class TextField extends Field
+{
+ String defval;
+ int length;
+ public TextField(String name, String label)
+ {
+ this.name = name;
+ this.label = label;
+ this.defval = "";
+ this.length = 0;
+ }
+ public TextField(String name, String label, String defval)
+ {
+ this.name = name;
+ this.label = label;
+ if (null == defval)
+ this.defval = "";
+ else
+ this.defval = defval;
+ this.length = 0;
+ }
+ public TextField(String name, String label, String defval, int length)
+ {
+ this.name = name;
+ this.label = label;
+ if (null == defval)
+ this.defval = "";
+ else
+ this.defval = defval;
+ this.length = length;
+ }
+ protected String print()
+ {
+ return "<input type=\"text\" name=\""+name+"\" value=\""+CGITools.escapeChar(defval,'"')+"\" "+(length==0?"":"size=\""+length+"\"")+" />";
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/testcgi.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/testcgi.java
new file mode 100755
index 0000000..563447d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/cgi/testcgi.java
@@ -0,0 +1,78 @@
+/*
+ * Java CGI Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.cgi;
+
+import java.util.Iterator;
+import java.util.Map;
+
+class testcgi extends CGI
+{
+ protected void cgi(Map POST, Map GET, Map ENV, Map COOKIE, String[] params) throws Exception
+ {
+ header("Content-type", "text/plain");
+ setcookie("testcgi", "You have visited us already");
+ out("This is a test CGI program");
+ out("These are the params:");
+ for (int i=0; i < params.length; i++)
+ out("-- "+params[i]);
+
+ out("These are the POST vars:");
+ Iterator i = POST.keySet().iterator();
+ while (i.hasNext()) {
+ String s = (String) i.next();
+ out("-- "+s+" => "+POST.get(s));
+ }
+
+ out("These are the GET vars:");
+ i = GET.keySet().iterator();
+ while (i.hasNext()) {
+ String s = (String) i.next();
+ out("-- "+s+" => "+GET.get(s));
+ }
+
+ out("These are the ENV vars:");
+ i = ENV.keySet().iterator();
+ while (i.hasNext()) {
+ String s = (String) i.next();
+ out("-- "+s+" => "+ENV.get(s));
+ }
+
+ out("These are the COOKIEs:");
+ i = COOKIE.keySet().iterator();
+ while (i.hasNext()) {
+ String s = (String) i.next();
+ out("-- "+s+" => "+COOKIE.get(s));
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ CGI cgi = new testcgi();
+ cgi.doCGI(args);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.class b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.class
new file mode 100755
index 0000000..9afabe6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.class
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.java
new file mode 100755
index 0000000..6aae72f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.java
@@ -0,0 +1,597 @@
+/*
+ * Java Debug Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.debug;
+
+import cx.ath.matthew.utils.Hexdump;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ Add debugging to your program, has support for large projects with multiple
+ classes and debug levels per class. Supports optional enabling of debug
+ per-level per-class and debug targets of files, Streams or stderr.
+ Also supports timing between debug outputs, printing of stack traces for Throwables
+ and files/line numbers on each message.
+ <p>
+ Debug now automatically figures out which class it was called from, so all
+ methods passing in the calling class are deprecated.
+ </p>
+ <p>
+ The defaults are to print all messages to stderr with class and method name.
+ </p>
+ <p>
+ Should be called like this:
+ </p>
+ <pre>
+ if (Debug.debug) Debug.print(Debug.INFO, "Debug Message");
+ </pre>
+ */
+public class Debug
+{
+ /**
+ This interface can be used to provide custom printing filters
+ for certain classes.
+ */
+ public static interface FilterCommand
+ {
+ /**
+ Called to print debug messages with a custom filter.
+ @param output The PrintStream to output to.
+ @param level The debug level of this message.
+ @param location The textual location of the message.
+ @param extra Extra information such as timing details.
+ @param message The debug message.
+ @param lines Other lines of a multiple-line debug message.
+ */
+ public void filter(PrintStream output, int level, String location, String extra, String message, String[] lines);
+ }
+ /** Highest priority messages */
+ public static final int CRIT = 1;
+ /** Error messages */
+ public static final int ERR = 2;
+ /** Warnings */
+ public static final int WARN = 3;
+ /** Information */
+ public static final int INFO = 4;
+ /** Debug messages */
+ public static final int DEBUG = 5;
+ /** Verbose debug messages */
+ public static final int VERBOSE = 6;
+ /** Set this to false to disable compilation of Debug statements */
+// public static final boolean debug = false;
+ public static final boolean debug = false; // pego
+ /** The current output stream (defaults to System.err) */
+ public static PrintStream debugout = System.err;
+ private static Properties prop = null;
+ private static boolean timing = false;
+ private static boolean ttrace = false;
+ private static boolean lines = false;
+ private static boolean hexdump = false;
+ private static long last = 0;
+ private static int balen = 36;
+ private static int bawidth = 80;
+ private static Class saveclass = null;
+ //TODO: 1.5 private static Map<Class<? extends Object>, FilterCommand> filterMap = new HashMap<Class<? extends Object>, FilterCommand>();
+ private static Map filterMap = new HashMap();
+ /**
+ Set properties to configure debugging.
+ Format of properties is class =&gt; level, e.g.
+ <pre>
+ cx.ath.matthew.io.TeeOutputStream = INFO
+ cx.ath.matthew.io.DOMPrinter = DEBUG
+ </pre>
+ The debug level can be one of CRIT, ERR, WARN, INFO, DEBUG or VERBOSE which
+ correspond to all messages up to that level. The special words YES, ALL and TRUE
+ cause all messages to be printed regardless of level. All other terms disable
+ messages for that class. CRIT and ERR messages are always printed if debugging is enabled
+ unless explicitly disabled.
+ The special class name ALL can be used to set the default level for all classes.
+ @param prop Properties object to use.
+ */
+ public static void setProperties(Properties prop)
+ {
+ Debug.prop = prop;
+ }
+ /**
+ Read which class to debug on at which level from the given File.
+ Syntax the same as Java Properties files:
+ <pre>
+ &lt;class&gt; = &lt;debuglevel&gt;
+ </pre>
+ E.G.
+ <pre>
+ cx.ath.matthew.io.TeeOutputStream = INFO
+ cx.ath.matthew.io.DOMPrinter = DEBUG
+ </pre>
+ The debug level can be one of CRIT, ERR, WARN, INFO, DEBUG or VERBOSE which
+ correspond to all messages up to that level. The special words YES, ALL and TRUE
+ cause all messages to be printed regardless of level. All other terms disable
+ messages for that class. CRIT and ERR messages are always printed if debugging is enabled
+ unless explicitly disabled.
+ The special class name ALL can be used to set the default level for all classes.
+ @param f File to read from.
+ */
+ public static void loadConfig(File f) throws IOException
+ {
+ prop = new Properties();
+ prop.load(new FileInputStream(f));
+ }
+ /** @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in. */
+ //TODO: 1.5 @Deprecated()
+ public static boolean debugging(Class c, int loglevel)
+ {
+ if (debug) {
+ if (null == c) return true;
+ return debugging(c.getName(), loglevel);
+ }
+ return false;
+ }
+ public static boolean debugging(String s, int loglevel)
+ {
+ return loglevel <= INFO; // pego
+// if (debug) {
+// try {
+// if (null == s) return true;
+// if (null == prop) return loglevel <= DEBUG;
+// String d = prop.getProperty(s);
+// if (null == d || "".equals(d)) d = prop.getProperty("ALL");
+// if (null == d) return loglevel <= ERR;
+// if ("".equals(d)) return loglevel <= ERR;
+// d = d.toLowerCase();
+// if ("true".equals(d)) return true;
+// if ("yes".equals(d)) return true;
+// if ("all".equals(d)) return true;
+// if ("verbose".equals(d)) return loglevel <= VERBOSE;
+// if ("debug".equals(d)) return loglevel <= DEBUG;
+// if ("info".equals(d)) return loglevel <= INFO;
+// if ("warn".equals(d)) return loglevel <= WARN;
+// if ("err".equals(d)) return loglevel <= ERR;
+// if ("crit".equals(d)) return loglevel <= CRIT;
+// int i = Integer.parseInt(d); return i >= loglevel;
+// } catch (Exception e) { return false; }
+// }
+// return false;
+ }
+
+ /**
+ Output to the given Stream */
+ public static void setOutput(PrintStream p) throws IOException
+ {
+ debugout = p;
+ }
+ /**
+ Output to the given file */
+ public static void setOutput(String filename) throws IOException
+ {
+ debugout = new PrintStream(new FileOutputStream(filename, true));
+ }
+
+ /**
+ Output to the default debug.log */
+ public static void setOutput() throws IOException {
+ setOutput("./debug.log");
+ }
+ /**
+ Log at DEBUG
+ @param d The object to log */
+ public static void print(Object d)
+ {
+ if (debug) {
+ if (d instanceof String)
+ print(DEBUG, (String) d);
+ else if (d instanceof Throwable)
+ print(DEBUG, (Throwable) d);
+ else if (d instanceof byte[])
+ print(DEBUG, (byte[]) d);
+ else if (d instanceof Map)
+ printMap(DEBUG, (Map) d);
+ else print(DEBUG, d);
+ }
+ }
+ /**
+ Log at DEBUG
+ @param o The object doing the logging
+ @param d The object to log
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, Object d)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(d);
+ }
+ }
+
+ /**
+ Log an Object
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param d The object to log with d.toString()
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, int loglevel, Object d)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(loglevel, d);
+ }
+ }
+ /**
+ Log a String
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param s The log message
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, int loglevel, String s)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(loglevel, s);
+ }
+ }
+ /**
+ Log a Throwable
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param t The throwable to log with .toString and .printStackTrace
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, int loglevel, Throwable t)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(loglevel, t);
+ }
+ }
+
+ /**
+ Log a Throwable
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param t The throwable to log with .toString and .printStackTrace
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Class c, int loglevel, Throwable t)
+ {
+ if (debug) {
+ saveclass = c;
+ print(loglevel, t);
+ }
+ }
+ /**
+ Log a Throwable
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param t The throwable to log with .toString and .printStackTrace
+ @see #setThrowableTraces to turn on stack traces.
+ */
+ public static void print(int loglevel, Throwable t)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ String[] lines = null;
+ if (ttrace) {
+ StackTraceElement[] ste = t.getStackTrace();
+ lines = new String[ste.length];
+ for (int i = 0; i < ste.length; i++)
+ lines[i] = "\tat "+ste[i].toString();
+ }
+ _print(t.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, t.toString(), lines);
+ }
+ }
+ }
+
+ /**
+ Log a byte array
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param b The byte array to print.
+ @see #setHexDump to enable hex dumping.
+ @see #setByteArrayCount to change how many bytes are printed.
+ @see #setByteArrayWidth to change the formatting width of hex. */
+ public static void print(int loglevel, byte[] b)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ String[] lines = null;
+ if (hexdump) {
+ if (balen >= b.length)
+ lines = Hexdump.format(b, bawidth).split("\n");
+ else {
+ byte[] buf = new byte[balen];
+ System.arraycopy(b, 0, buf, 0, balen);
+ lines = Hexdump.format(buf, bawidth).split("\n");
+ }
+ }
+ _print(b.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, b.length+" bytes", lines);
+ }
+ }
+ }
+ /**
+ Log a String
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param s The string to log with d.toString()
+ */
+ public static void print(int loglevel, String s)
+ {
+ if (debug)
+ print(loglevel, (Object) s);
+ }
+ /**
+ Log an Object
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param d The object to log with d.toString()
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Class c, int loglevel, Object d)
+ {
+ if (debug) {
+ saveclass = c;
+ print(loglevel, d);
+ }
+ }
+ /**
+ Log a String
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param s The log message
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Class c, int loglevel, String s)
+ {
+ if (debug) {
+ saveclass = c;
+ print(loglevel, s);
+ }
+ }
+ private static String[] getTraceElements()
+ {
+ String[] data = new String[] { "", "", "" };
+ try {
+ Method m = Thread.class.getMethod("getStackTrace", new Class[0]);
+ StackTraceElement[] stes = (StackTraceElement[]) m.invoke(Thread.currentThread(), new Object[0]);
+ for (StackTraceElement ste: stes) {
+ if (Debug.class.getName().equals(ste.getClassName())) continue;
+ if (Thread.class.getName().equals(ste.getClassName())) continue;
+ if (Method.class.getName().equals(ste.getClassName())) continue;
+ if (ste.getClassName().startsWith("sun.reflect")) continue;
+ data[0] = ste.getClassName();
+ data[1] = ste.getMethodName();
+ if (lines)
+ data[2] = " "+ste.getFileName()+":"+ste.getLineNumber();
+ break;
+ }
+ } catch (NoSuchMethodException NSMe) {
+ if (null != saveclass)
+ data[0] = saveclass.getName();
+ } catch (IllegalAccessException IAe) {
+ } catch (InvocationTargetException ITe) {
+ }
+ return data;
+ }
+ /**
+ Log an Object
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param o The object to log
+ */
+ public static void print(int loglevel, Object o)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ _print(o.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, o.toString(), null);
+ }
+ }
+ }
+
+ /**
+ Log a Map
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param m The Map to print out
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void printMap(Object o, int loglevel, Map m)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ printMap(loglevel, m);
+ }
+ }
+ /**
+ Log a Map
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param m The Map to print out
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void printMap(Class c, int loglevel, Map m)
+ {
+ if (debug) {
+ saveclass = c;
+ printMap(loglevel, m);
+ }
+ }
+ /**
+ Log a Map at DEBUG log level
+ @param m The Map to print out
+ */
+ public static void printMap(Map m)
+ {
+ printMap(DEBUG, m);
+ }
+ /**
+ Log a Map
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param m The Map to print out
+ */
+ public static void printMap(int loglevel, Map m)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ Iterator i = m.keySet().iterator();
+ String[] lines = new String[m.size()];
+ int j = 0;
+ while (i.hasNext()) {
+ Object key = i.next();
+ lines[j++] = "\t\t- "+key+" => "+m.get(key);
+ }
+ _print(m.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, "Map:", lines);
+ }
+ }
+ }
+ /**
+ Enable or disable stack traces in Debuging throwables.
+ */
+ public static void setThrowableTraces(boolean ttrace)
+ {
+ Debug.ttrace = ttrace;
+ }
+ /**
+ Enable or disable timing in Debug messages.
+ */
+ public static void setTiming(boolean timing)
+ {
+ Debug.timing = timing;
+ }
+ /**
+ Enable or disable line numbers.
+ */
+ public static void setLineNos(boolean lines)
+ {
+ Debug.lines = lines;
+ }
+ /**
+ Enable or disable hexdumps.
+ */
+ public static void setHexDump(boolean hexdump)
+ {
+ Debug.hexdump = hexdump;
+ }
+ /**
+ Set the size of hexdumps.
+ (Default: 36)
+ */
+ public static void setByteArrayCount(int count)
+ {
+ Debug.balen = count;
+ }
+ /**
+ Set the formatted width of hexdumps.
+ (Default: 80 chars)
+ */
+ public static void setByteArrayWidth(int width)
+ {
+ Debug.bawidth = width;
+ }
+ /**
+ Add a filter command for a specific type.
+ This command will be called with the output stream
+ and the text to be sent. It should perform any
+ changes necessary to the text and then print the
+ result to the output stream.
+ */
+ public static void addFilterCommand(Class c, FilterCommand f)
+ //TODO 1.5: public static void addFilterCommand(Class<? extends Object> c, FilterCommand f)
+ {
+ filterMap.put(c, f);
+ }
+ private static void _print(Class c, int level, String loc, String extra, String message, String[] lines)
+ {
+ //TODO 1.5: FilterCommand f = filterMap.get(c);
+ FilterCommand f = (FilterCommand) filterMap.get(c);
+ if (null == f) {
+ debugout.println("["+loc+"] " +extra + message);
+ if (null != lines)
+ for (String s: lines)
+ debugout.println(s);
+ } else
+ f.filter(debugout, level, loc, extra, message, lines);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.jpp b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.jpp
new file mode 100755
index 0000000..56fd4ac
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/debug/Debug.jpp
@@ -0,0 +1,597 @@
+/*
+ * Java Debug Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.debug;
+
+import cx.ath.matthew.utils.Hexdump;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ Add debugging to your program, has support for large projects with multiple
+ classes and debug levels per class. Supports optional enabling of debug
+ per-level per-class and debug targets of files, Streams or stderr.
+ Also supports timing between debug outputs, printing of stack traces for Throwables
+ and files/line numbers on each message.
+ <p>
+ Debug now automatically figures out which class it was called from, so all
+ methods passing in the calling class are deprecated.
+ </p>
+ <p>
+ The defaults are to print all messages to stderr with class and method name.
+ </p>
+ <p>
+ Should be called like this:
+ </p>
+ <pre>
+ if (Debug.debug) Debug.print(Debug.INFO, "Debug Message");
+ </pre>
+ */
+public class Debug
+{
+ /**
+ This interface can be used to provide custom printing filters
+ for certain classes.
+ */
+ public static interface FilterCommand
+ {
+ /**
+ Called to print debug messages with a custom filter.
+ @param output The PrintStream to output to.
+ @param level The debug level of this message.
+ @param location The textual location of the message.
+ @param extra Extra information such as timing details.
+ @param message The debug message.
+ @param lines Other lines of a multiple-line debug message.
+ */
+ public void filter(PrintStream output, int level, String location, String extra, String message, String[] lines);
+ }
+ /** Highest priority messages */
+ public static final int CRIT = 1;
+ /** Error messages */
+ public static final int ERR = 2;
+ /** Warnings */
+ public static final int WARN = 3;
+ /** Information */
+ public static final int INFO = 4;
+ /** Debug messages */
+ public static final int DEBUG = 5;
+ /** Verbose debug messages */
+ public static final int VERBOSE = 6;
+ /** Set this to false to disable compilation of Debug statements */
+ public static final boolean debug = DEBUGSETTING;
+ /** The current output stream (defaults to System.err) */
+ public static PrintStream debugout = System.err;
+ private static Properties prop = null;
+ private static boolean timing = false;
+ private static boolean ttrace = false;
+ private static boolean lines = false;
+ private static boolean hexdump = false;
+ private static long last = 0;
+ private static int balen = 36;
+ private static int bawidth = 80;
+ private static Class saveclass = null;
+ //TODO: 1.5 private static Map<Class<? extends Object>, FilterCommand> filterMap = new HashMap<Class<? extends Object>, FilterCommand>();
+ private static Map filterMap = new HashMap();
+ /**
+ Set properties to configure debugging.
+ Format of properties is class =&gt; level, e.g.
+ <pre>
+ cx.ath.matthew.io.TeeOutputStream = INFO
+ cx.ath.matthew.io.DOMPrinter = DEBUG
+ </pre>
+ The debug level can be one of CRIT, ERR, WARN, INFO, DEBUG or VERBOSE which
+ correspond to all messages up to that level. The special words YES, ALL and TRUE
+ cause all messages to be printed regardless of level. All other terms disable
+ messages for that class. CRIT and ERR messages are always printed if debugging is enabled
+ unless explicitly disabled.
+ The special class name ALL can be used to set the default level for all classes.
+ @param prop Properties object to use.
+ */
+ public static void setProperties(Properties prop)
+ {
+ Debug.prop = prop;
+ }
+ /**
+ Read which class to debug on at which level from the given File.
+ Syntax the same as Java Properties files:
+ <pre>
+ &lt;class&gt; = &lt;debuglevel&gt;
+ </pre>
+ E.G.
+ <pre>
+ cx.ath.matthew.io.TeeOutputStream = INFO
+ cx.ath.matthew.io.DOMPrinter = DEBUG
+ </pre>
+ The debug level can be one of CRIT, ERR, WARN, INFO, DEBUG or VERBOSE which
+ correspond to all messages up to that level. The special words YES, ALL and TRUE
+ cause all messages to be printed regardless of level. All other terms disable
+ messages for that class. CRIT and ERR messages are always printed if debugging is enabled
+ unless explicitly disabled.
+ The special class name ALL can be used to set the default level for all classes.
+ @param f File to read from.
+ */
+ public static void loadConfig(File f) throws IOException
+ {
+ prop = new Properties();
+ prop.load(new FileInputStream(f));
+ }
+ /** @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in. */
+ //TODO: 1.5 @Deprecated()
+ public static boolean debugging(Class c, int loglevel)
+ {
+ if (debug) {
+ if (null == c) return true;
+ return debugging(c.getName(), loglevel);
+ }
+ return false;
+ }
+ public static boolean debugging(String s, int loglevel)
+ {
+ if (debug) {
+ try {
+ if (null == s) return true;
+ if (null == prop) return loglevel <= DEBUG;
+ String d = prop.getProperty(s);
+ if (null == d || "".equals(d)) d = prop.getProperty("ALL");
+ if (null == d) return loglevel <= ERR;
+ if ("".equals(d)) return loglevel <= ERR;
+ d = d.toLowerCase();
+ if ("true".equals(d)) return true;
+ if ("yes".equals(d)) return true;
+ if ("all".equals(d)) return true;
+ if ("verbose".equals(d)) return loglevel <= VERBOSE;
+ if ("debug".equals(d)) return loglevel <= DEBUG;
+ if ("info".equals(d)) return loglevel <= INFO;
+ if ("warn".equals(d)) return loglevel <= WARN;
+ if ("err".equals(d)) return loglevel <= ERR;
+ if ("crit".equals(d)) return loglevel <= CRIT;
+ int i = Integer.parseInt(d); return i >= loglevel;
+ } catch (Exception e) { return false; }
+ }
+ return false;
+ }
+
+ /**
+ Output to the given Stream */
+ public static void setOutput(PrintStream p) throws IOException
+ {
+ debugout = p;
+ }
+ /**
+ Output to the given file */
+ public static void setOutput(String filename) throws IOException
+ {
+ debugout = new PrintStream(new FileOutputStream(filename, true));
+ }
+
+ /**
+ Output to the default debug.log */
+ public static void setOutput() throws IOException {
+ setOutput("./debug.log");
+ }
+ /**
+ Log at DEBUG
+ @param d The object to log */
+ public static void print(Object d)
+ {
+ if (debug) {
+ if (d instanceof String)
+ print(DEBUG, (String) d);
+ else if (d instanceof Throwable)
+ print(DEBUG, (Throwable) d);
+ else if (d instanceof byte[])
+ print(DEBUG, (byte[]) d);
+ else if (d instanceof Map)
+ printMap(DEBUG, (Map) d);
+ else print(DEBUG, d);
+ }
+ }
+ /**
+ Log at DEBUG
+ @param o The object doing the logging
+ @param d The object to log
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, Object d)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(d);
+ }
+ }
+
+ /**
+ Log an Object
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param d The object to log with d.toString()
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, int loglevel, Object d)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(loglevel, d);
+ }
+ }
+ /**
+ Log a String
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param s The log message
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, int loglevel, String s)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(loglevel, s);
+ }
+ }
+ /**
+ Log a Throwable
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param t The throwable to log with .toString and .printStackTrace
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Object o, int loglevel, Throwable t)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ print(loglevel, t);
+ }
+ }
+
+ /**
+ Log a Throwable
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param t The throwable to log with .toString and .printStackTrace
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Class c, int loglevel, Throwable t)
+ {
+ if (debug) {
+ saveclass = c;
+ print(loglevel, t);
+ }
+ }
+ /**
+ Log a Throwable
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param t The throwable to log with .toString and .printStackTrace
+ @see #setThrowableTraces to turn on stack traces.
+ */
+ public static void print(int loglevel, Throwable t)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ String[] lines = null;
+ if (ttrace) {
+ StackTraceElement[] ste = t.getStackTrace();
+ lines = new String[ste.length];
+ for (int i = 0; i < ste.length; i++)
+ lines[i] = "\tat "+ste[i].toString();
+ }
+ _print(t.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, t.toString(), lines);
+ }
+ }
+ }
+
+ /**
+ Log a byte array
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param b The byte array to print.
+ @see #setHexDump to enable hex dumping.
+ @see #setByteArrayCount to change how many bytes are printed.
+ @see #setByteArrayWidth to change the formatting width of hex. */
+ public static void print(int loglevel, byte[] b)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ String[] lines = null;
+ if (hexdump) {
+ if (balen >= b.length)
+ lines = Hexdump.format(b, bawidth).split("\n");
+ else {
+ byte[] buf = new byte[balen];
+ System.arraycopy(b, 0, buf, 0, balen);
+ lines = Hexdump.format(buf, bawidth).split("\n");
+ }
+ }
+ _print(b.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, b.length+" bytes", lines);
+ }
+ }
+ }
+ /**
+ Log a String
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param s The string to log with d.toString()
+ */
+ public static void print(int loglevel, String s)
+ {
+ if (debug)
+ print(loglevel, (Object) s);
+ }
+ /**
+ Log an Object
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param d The object to log with d.toString()
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Class c, int loglevel, Object d)
+ {
+ if (debug) {
+ saveclass = c;
+ print(loglevel, d);
+ }
+ }
+ /**
+ Log a String
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param s The log message
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void print(Class c, int loglevel, String s)
+ {
+ if (debug) {
+ saveclass = c;
+ print(loglevel, s);
+ }
+ }
+ private static String[] getTraceElements()
+ {
+ String[] data = new String[] { "", "", "" };
+ try {
+ Method m = Thread.class.getMethod("getStackTrace", new Class[0]);
+ StackTraceElement[] stes = (StackTraceElement[]) m.invoke(Thread.currentThread(), new Object[0]);
+ for (StackTraceElement ste: stes) {
+ if (Debug.class.getName().equals(ste.getClassName())) continue;
+ if (Thread.class.getName().equals(ste.getClassName())) continue;
+ if (Method.class.getName().equals(ste.getClassName())) continue;
+ if (ste.getClassName().startsWith("sun.reflect")) continue;
+ data[0] = ste.getClassName();
+ data[1] = ste.getMethodName();
+ if (lines)
+ data[2] = " "+ste.getFileName()+":"+ste.getLineNumber();
+ break;
+ }
+ } catch (NoSuchMethodException NSMe) {
+ if (null != saveclass)
+ data[0] = saveclass.getName();
+ } catch (IllegalAccessException IAe) {
+ } catch (InvocationTargetException ITe) {
+ }
+ return data;
+ }
+ /**
+ Log an Object
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param o The object to log
+ */
+ public static void print(int loglevel, Object o)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ _print(o.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, o.toString(), null);
+ }
+ }
+ }
+
+ /**
+ Log a Map
+ @param o The object doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param m The Map to print out
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void printMap(Object o, int loglevel, Map m)
+ {
+ if (debug) {
+ if (o instanceof Class)
+ saveclass = (Class) o;
+ else
+ saveclass = o.getClass();
+ printMap(loglevel, m);
+ }
+ }
+ /**
+ Log a Map
+ @param c The class doing the logging
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param m The Map to print out
+ @deprecated In Java 1.5 calling class is automatically identified, no need to pass it in.
+ */
+ //TODO: 1.5 @Deprecated()
+ public static void printMap(Class c, int loglevel, Map m)
+ {
+ if (debug) {
+ saveclass = c;
+ printMap(loglevel, m);
+ }
+ }
+ /**
+ Log a Map at DEBUG log level
+ @param m The Map to print out
+ */
+ public static void printMap(Map m)
+ {
+ printMap(DEBUG, m);
+ }
+ /**
+ Log a Map
+ @param loglevel The level to log at (DEBUG, WARN, etc)
+ @param m The Map to print out
+ */
+ public static void printMap(int loglevel, Map m)
+ {
+ if (debug) {
+ String timestr = "";
+ String[] data = getTraceElements();
+ if (debugging(data[0], loglevel)) {
+ if (timing) {
+ long now = System.currentTimeMillis();
+ timestr = "{" + (now-last) + "} ";
+ last = now;
+ }
+ Iterator i = m.keySet().iterator();
+ String[] lines = new String[m.size()];
+ int j = 0;
+ while (i.hasNext()) {
+ Object key = i.next();
+ lines[j++] = "\t\t- "+key+" => "+m.get(key);
+ }
+ _print(m.getClass(), loglevel, data[0]+"."+data[1]+"()" + data[2], timestr, "Map:", lines);
+ }
+ }
+ }
+ /**
+ Enable or disable stack traces in Debuging throwables.
+ */
+ public static void setThrowableTraces(boolean ttrace)
+ {
+ Debug.ttrace = ttrace;
+ }
+ /**
+ Enable or disable timing in Debug messages.
+ */
+ public static void setTiming(boolean timing)
+ {
+ Debug.timing = timing;
+ }
+ /**
+ Enable or disable line numbers.
+ */
+ public static void setLineNos(boolean lines)
+ {
+ Debug.lines = lines;
+ }
+ /**
+ Enable or disable hexdumps.
+ */
+ public static void setHexDump(boolean hexdump)
+ {
+ Debug.hexdump = hexdump;
+ }
+ /**
+ Set the size of hexdumps.
+ (Default: 36)
+ */
+ public static void setByteArrayCount(int count)
+ {
+ Debug.balen = count;
+ }
+ /**
+ Set the formatted width of hexdumps.
+ (Default: 80 chars)
+ */
+ public static void setByteArrayWidth(int width)
+ {
+ Debug.bawidth = width;
+ }
+ /**
+ Add a filter command for a specific type.
+ This command will be called with the output stream
+ and the text to be sent. It should perform any
+ changes necessary to the text and then print the
+ result to the output stream.
+ */
+ public static void addFilterCommand(Class c, FilterCommand f)
+ //TODO 1.5: public static void addFilterCommand(Class<? extends Object> c, FilterCommand f)
+ {
+ filterMap.put(c, f);
+ }
+ private static void _print(Class c, int level, String loc, String extra, String message, String[] lines)
+ {
+ //TODO 1.5: FilterCommand f = filterMap.get(c);
+ FilterCommand f = (FilterCommand) filterMap.get(c);
+ if (null == f) {
+ debugout.println("["+loc+"] " +extra + message);
+ if (null != lines)
+ for (String s: lines)
+ debugout.println(s);
+ } else
+ f.filter(debugout, level, loc, extra, message, lines);
+ }
+}
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/DOMPrinter.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/DOMPrinter.java
new file mode 100755
index 0000000..e61fa77
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/DOMPrinter.java
@@ -0,0 +1,114 @@
+/*
+ * Java DOM Printing Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Print a DOM tree to the given OutputStream
+ */
+public class DOMPrinter
+{
+ /**
+ * Print the given node and all its children.
+ * @param n The Node to print.
+ * @param os The Stream to print to.
+ */
+ public static void printNode(Node n, OutputStream os)
+ {
+ PrintStream p = new PrintStream(os);
+ printNode(n, p);
+ }
+ /**
+ * Print the given node and all its children.
+ * @param n The Node to print.
+ * @param p The Stream to print to.
+ */
+ public static void printNode(Node n, PrintStream p)
+ {
+ if (null != n.getNodeValue()) p.print(n.getNodeValue());
+ else {
+ p.print("<"+n.getNodeName());
+ if (n.hasAttributes()) {
+ NamedNodeMap nnm = n.getAttributes();
+ for (int i = 0; i < nnm.getLength(); i++) {
+ Node attr = nnm.item(i);
+ p.print(" "+attr.getNodeName()+"='"+attr.getNodeValue()+"'");
+ }
+ }
+ if (n.hasChildNodes()) {
+ p.print(">");
+ NodeList nl = n.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++)
+ printNode(nl.item(i), p);
+ p.print("</"+n.getNodeName()+">");
+ } else {
+ p.print("/>");
+ }
+ }
+ }
+ /**
+ * Print the given document and all its children.
+ * @param d The Document to print.
+ * @param p The Stream to print to.
+ */
+ public static void printDOM(Document d, PrintStream p)
+ {
+ DocumentType dt = d.getDoctype();
+ if (null != dt) {
+ p.print("<!DOCTYPE "+dt.getName());
+ String pub = dt.getPublicId();
+ String sys = dt.getSystemId();
+ if (null != pub) p.print(" PUBLIC \""+pub+"\" \""+sys+"\"");
+ else if (null != sys) p.print(" SYSTEM \""+sys+"\"");
+ p.println(">");
+ }
+ Element e = d.getDocumentElement();
+ printNode(e, p);
+ }
+ /**
+ * Print the given document and all its children.
+ * @param d The Document to print.
+ * @param os The Stream to print to.
+ */
+ public static void printDOM(Document d, OutputStream os)
+ {
+ PrintStream p = new PrintStream(os);
+ printDOM(d, p);
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecInputStream.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecInputStream.java
new file mode 100755
index 0000000..517cded
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecInputStream.java
@@ -0,0 +1,142 @@
+/*
+ * Java Exec Pipe Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+
+import java.io.FilterInputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Class to pipe an InputStream through a command using stdin/stdout.
+ * E.g.
+ * <pre>
+ * Reader r = new InputStreamReader(new ExecInputStream(new FileInputStream("file"), "command"));
+ * </pre>
+ */
+public class ExecInputStream extends FilterInputStream
+{
+ private Process proc;
+ private InputStream stdout;
+ private OutputStream stdin;
+ private InOutCopier copy;
+
+ /**
+ * Create a new ExecInputStream on the given InputStream
+ * using the process to filter the stream.
+ * @param is Reads from this InputStream
+ * @param p Filters data through stdin/out on this Process
+ */
+ public ExecInputStream(InputStream is, Process p) throws IOException
+ {
+ super(is);
+ proc = p;
+ stdin = p.getOutputStream();
+ stdout = p.getInputStream();
+ copy = new InOutCopier(in, stdin);
+ copy.start();
+ }
+ /**
+ * Create a new ExecInputStream on the given InputStream
+ * using the process to filter the stream.
+ * @param is Reads from this InputStream
+ * @param cmd Creates a Process from this string to filter data through stdin/out
+ */
+ public ExecInputStream(InputStream is, String cmd) throws IOException
+ { this(is, Runtime.getRuntime().exec(cmd)); }
+ /**
+ * Create a new ExecInputStream on the given InputStream
+ * using the process to filter the stream.
+ * @param is Reads from this InputStream
+ * @param cmd Creates a Process from this string array (command, arg, ...) to filter data through stdin/out
+ */
+ public ExecInputStream(InputStream is, String[] cmd) throws IOException
+ { this(is, Runtime.getRuntime().exec(cmd)); }
+ /**
+ * Create a new ExecInputStream on the given InputStream
+ * using the process to filter the stream.
+ * @param is Reads from this InputStream
+ * @param cmd Creates a Process from this string to filter data through stdin/out
+ * @param env Setup the environment for the command
+ */
+ public ExecInputStream(InputStream is, String cmd, String[] env) throws IOException
+ { this(is, Runtime.getRuntime().exec(cmd, env)); }
+ /**
+ * Create a new ExecInputStream on the given InputStream
+ * using the process to filter the stream.
+ * @param is Reads from this InputStream
+ * @param cmd Creates a Process from this string array (command, arg, ...) to filter data through stdin/out
+ * @param env Setup the environment for the command
+ */
+ public ExecInputStream(InputStream is, String[] cmd, String[] env) throws IOException
+ { this(is, Runtime.getRuntime().exec(cmd, env)); }
+
+ public void close() throws IOException
+ {
+ try {
+ proc.waitFor();
+ } catch (InterruptedException Ie) {}
+ //copy.close();
+ try {
+ copy.join();
+ } catch (InterruptedException Ie) {}
+ stdin.close();
+ in.close();
+ stdout.close();
+ }
+ public void flush() throws IOException
+ {
+ copy.flush();
+ }
+ public int available() throws IOException
+ { return stdout.available(); }
+ public int read() throws IOException
+ { return stdout.read(); }
+ public int read(byte[] b) throws IOException
+ { return stdout.read(b); }
+ public int read(byte[] b, int off, int len) throws IOException
+ { return stdout.read(b, off, len); }
+ public long skip(long n) throws IOException
+ { return stdout.skip(n); }
+ public void mark(int readlimit)
+ {}
+ public boolean markSupported()
+ { return false; }
+ public void reset()
+ {}
+
+ public void finalize()
+ {
+ try {
+ close();
+ } catch (Exception e) {}
+ }
+}
+
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecOutputStream.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecOutputStream.java
new file mode 100755
index 0000000..9ee92d6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/ExecOutputStream.java
@@ -0,0 +1,137 @@
+/*
+ * Java Exec Pipe Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+
+import java.io.FilterOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Class to pipe an OutputStream through a command using stdin/stdout.
+ * E.g.
+ * <pre>
+ * Writer w = new OutputStreamWriter(new ExecOutputStream(new FileOutputStream("file"), "command"));
+ * </pre>
+ */
+public class ExecOutputStream extends FilterOutputStream
+{
+ private Process proc;
+ private InputStream stdout;
+ private OutputStream stdin;
+ private InOutCopier copy;
+
+ /**
+ * Create a new ExecOutputStream on the given OutputStream
+ * using the process to filter the stream.
+ * @param os Writes to this OutputStream
+ * @param p Filters data through stdin/out on this Process
+ */
+ public ExecOutputStream(OutputStream os, Process p) throws IOException
+ {
+ super(os);
+ proc = p;
+ stdin = p.getOutputStream();
+ stdout = p.getInputStream();
+ copy = new InOutCopier(stdout, out);
+ copy.start();
+ }
+ /**
+ * Create a new ExecOutputStream on the given OutputStream
+ * using the process to filter the stream.
+ * @param os Writes to this OutputStream
+ * @param cmd Creates a Process from this string to filter data through stdin/out
+ */
+ public ExecOutputStream(OutputStream os, String cmd) throws IOException
+ { this(os, Runtime.getRuntime().exec(cmd)); }
+ /**
+ * Create a new ExecOutputStream on the given OutputStream
+ * using the process to filter the stream.
+ * @param os Writes to this OutputStream
+ * @param cmd Creates a Process from this string array (command, arg, ...) to filter data through stdin/out
+ */
+ public ExecOutputStream(OutputStream os, String[] cmd) throws IOException
+ { this(os, Runtime.getRuntime().exec(cmd)); }
+ /**
+ * Create a new ExecOutputStream on the given OutputStream
+ * using the process to filter the stream.
+ * @param os Writes to this OutputStream
+ * @param cmd Creates a Process from this string to filter data through stdin/out
+ * @param env Setup the environment for the command
+ */
+ public ExecOutputStream(OutputStream os, String cmd, String[] env) throws IOException
+ { this(os, Runtime.getRuntime().exec(cmd, env)); }
+ /**
+ * Create a new ExecOutputStream on the given OutputStream
+ * using the process to filter the stream.
+ * @param os Writes to this OutputStream
+ * @param cmd Creates a Process from this string array (command, arg, ...) to filter data through stdin/out
+ * @param env Setup the environment for the command
+ */
+ public ExecOutputStream(OutputStream os, String[] cmd, String[] env) throws IOException
+ { this(os, Runtime.getRuntime().exec(cmd, env)); }
+
+ public void close() throws IOException
+ {
+ stdin.close();
+ try {
+ proc.waitFor();
+ } catch (InterruptedException Ie) {}
+ //copy.close();
+ try {
+ copy.join();
+ } catch (InterruptedException Ie) {}
+ stdout.close();
+ out.close();
+ }
+ public void flush() throws IOException
+ {
+ stdin.flush();
+ copy.flush();
+ out.flush();
+ }
+ public void write(byte[] b) throws IOException
+ {
+ stdin.write(b);
+ }
+ public void write(byte[] b, int off, int len) throws IOException
+ {
+ stdin.write(b, off, len);
+ }
+ public void write(int b) throws IOException
+ {
+ stdin.write(b);
+ }
+ public void finalize()
+ {
+ try {
+ close();
+ } catch (Exception e) {}
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/InOutCopier.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/InOutCopier.java
new file mode 100755
index 0000000..4968853
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/InOutCopier.java
@@ -0,0 +1,115 @@
+/*
+ * Java Exec Pipe Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * Copies from an input stream to an output stream using a Thread.
+ * example:
+ *
+ * <pre>
+ * InputStream a = getInputStream();
+ * OutputStream b = getOutputStream();
+ * InOutCopier copier = new InOutCopier(a, b);
+ * copier.start();
+ * &lt;do stuff that writes to the inputstream&gt;
+ * </pre>
+ */
+public class InOutCopier extends Thread
+{
+ private static final int BUFSIZE=1024;
+ private static final int POLLTIME=100;
+ private BufferedInputStream is;
+ private OutputStream os;
+ private boolean enable;
+ /**
+ * Create a copier from an inputstream to an outputstream
+ * @param is The stream to copy from
+ * @param os the stream to copy to
+ */
+ public InOutCopier(InputStream is, OutputStream os) throws IOException
+ {
+ this.is = new BufferedInputStream(is);
+ this.os = os;
+ this.enable = true;
+ }
+ /**
+ * Force close the stream without waiting for EOF on the source
+ */
+ public void close()
+ {
+ enable = false;
+ interrupt();
+ }
+ /**
+ * Flush the outputstream
+ */
+ public void flush() throws IOException
+ {
+ os.flush();
+ }
+ /** Start the thread and wait to make sure its really started */
+ public synchronized void start()
+ {
+ super.start();
+ try {
+ wait();
+ } catch (InterruptedException Ie) {}
+ }
+ /**
+ * Copies from the inputstream to the outputstream
+ * until EOF on the inputstream or explicitly closed
+ * @see #close()
+ */
+ public void run()
+ {
+ byte[] buf = new byte[BUFSIZE];
+ synchronized (this) {
+ notifyAll();
+ }
+ while (enable)
+ try {
+ int n = is.read(buf);
+ if (0 > n)
+ break;
+ if (0 < n) {
+ os.write(buf, 0, (n> BUFSIZE? BUFSIZE:n));
+ os.flush();
+ }
+ } catch (IOException IOe) {
+ break;
+ }
+ try { os.close(); } catch (IOException IOe) {}
+ }
+}
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeInputStream.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeInputStream.java
new file mode 100755
index 0000000..f769b11
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeInputStream.java
@@ -0,0 +1,155 @@
+/*
+ * Java Tee Stream Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FilterInputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Class to copy a stream to a file or another stream as it is being sent through a stream pipe
+ * E.g.
+ * <pre>
+ * Reader r = new InputStreamReader(new TeeInputStream(new FileInputStream("file"), new File("otherfile")));
+ * </pre>
+ */
+public class TeeInputStream extends FilterInputStream
+{
+ private InputStream in;
+ private OutputStream fos;
+ /**
+ * Create a new TeeInputStream on the given InputStream
+ * and copy the stream to the given File.
+ * @param is Reads from this InputStream
+ * @param tos Write to this OutputStream
+ */
+ public TeeInputStream(InputStream is, OutputStream tos) throws IOException
+ {
+ super(is);
+ this.in = is;
+ this.fos = tos;
+ }
+ /**
+ * Create a new TeeInputStream on the given InputStream
+ * and copy the stream to the given File.
+ * @param is Reads from this InputStream
+ * @param f Write to this File
+ * @param append Append to file not overwrite
+ */
+ public TeeInputStream(InputStream is, File f, boolean append) throws IOException
+ {
+ super(is);
+ this.in = is;
+ this.fos = new FileOutputStream(f, append);
+ }
+ /**
+ * Create a new TeeInputStream on the given InputStream
+ * and copy the stream to the given File.
+ * @param is Reads from this InputStream
+ * @param f Write to this File
+ */
+ public TeeInputStream(InputStream is, File f) throws IOException
+ {
+ super(is);
+ this.in = is;
+ this.fos = new FileOutputStream(f);
+ }
+ /**
+ * Create a new TeeInputStream on the given InputStream
+ * and copy the stream to the given File.
+ * @param is Reads from this InputStream
+ * @param f Write to this File
+ * @param append Append to file not overwrite
+ */
+ public TeeInputStream(InputStream is, String f, boolean append) throws IOException
+ {
+ this(is, new File(f), append);
+ }
+ /**
+ * Create a new TeeInputStream on the given InputStream
+ * and copy the stream to the given File.
+ * @param is Reads from this InputStream
+ * @param f Write to this File
+ */
+ public TeeInputStream(InputStream is, String f) throws IOException
+ {
+ this(is, new File(f));
+ }
+ public void close() throws IOException
+ {
+ in.close();
+ fos.close();
+ }
+ public void flush() throws IOException
+ {
+ fos.flush();
+ }
+ public int available() throws IOException
+ {
+ return in.available();
+ }
+ public int read() throws IOException
+ {
+ int i = in.read();
+ if (-1 != i) fos.write(i);
+ return i;
+ }
+ public int read(byte[] b) throws IOException
+ {
+ int c = in.read(b);
+ if (-1 != c) fos.write(b, 0, c);
+ return c;
+ }
+ public int read(byte[] b, int off, int len) throws IOException
+ {
+ int c = in.read(b, off, len);
+ if (-1 != c) fos.write(b, off, c);
+ return c;
+ }
+ public long skip(long n) throws IOException
+ { return in.skip(n); }
+ public void mark(int readlimit)
+ {}
+ public boolean markSupported()
+ { return false; }
+ public void reset() throws IOException
+ { in.reset(); }
+
+ public void finalize()
+ {
+ try {
+ close();
+ } catch (Exception e) {}
+ }
+}
+
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeOutputStream.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeOutputStream.java
new file mode 100755
index 0000000..3050923
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/TeeOutputStream.java
@@ -0,0 +1,141 @@
+/*
+ * Java Tee Stream Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FilterOutputStream;
+import java.io.OutputStream;
+import java.io.IOException;
+
+/**
+ * Class to copy a stream to another stream or file as it is being sent through a stream pipe
+ * E.g.
+ * <pre>
+ * PrintWriter r = new PrintWriter(new TeeOutputStream(new FileOutputStream("file"), new File("otherfile")));
+ * </pre>
+ */
+public class TeeOutputStream extends FilterOutputStream
+{
+ private File f;
+ private OutputStream out;
+ private OutputStream fos;
+ /**
+ * Create a new TeeOutputStream on the given OutputStream
+ * and copy the stream to the other OuputStream.
+ * @param os Writes to this OutputStream
+ * @param tos Write to this OutputStream
+ */
+ public TeeOutputStream(OutputStream os, OutputStream tos) throws IOException
+ {
+ super(os);
+ this.out = os;
+ this.fos = tos;
+ }
+ /**
+ * Create a new TeeOutputStream on the given OutputStream
+ * and copy the stream to the given File.
+ * @param os Writes to this OutputStream
+ * @param f Write to this File
+ * @param append Append to file not overwrite
+ */
+ public TeeOutputStream(OutputStream os, File f, boolean append) throws IOException
+ {
+ super(os);
+ this.out = os;
+ this.fos = new FileOutputStream(f, append);
+ }
+ /**
+ * Create a new TeeOutputStream on the given OutputStream
+ * and copy the stream to the given File.
+ * @param os Writes to this OutputStream
+ * @param f Write to this File
+ */
+ public TeeOutputStream(OutputStream os, File f) throws IOException
+ {
+ super(os);
+ this.out = os;
+ this.fos = new FileOutputStream(f);
+ }
+ /**
+ * Create a new TeeOutputStream on the given OutputStream
+ * and copy the stream to the given File.
+ * @param os Writes to this OutputStream
+ * @param f Write to this File
+ * @param append Append to file not overwrite
+ */
+ public TeeOutputStream(OutputStream os, String f, boolean append) throws IOException
+ {
+ this(os, new File(f), append);
+ }
+ /**
+ * Create a new TeeOutputStream on the given OutputStream
+ * and copy the stream to the given File.
+ * @param os Writes to this OutputStream
+ * @param f Write to this File
+ */
+ public TeeOutputStream(OutputStream os, String f) throws IOException
+ {
+ this(os, new File(f));
+ }
+ public void close() throws IOException
+ {
+ out.close();
+ fos.close();
+ }
+ public void flush() throws IOException
+ {
+ fos.flush();
+ out.flush();
+ }
+ public void write(int b) throws IOException
+ {
+ fos.write(b);
+ out.write(b);
+ }
+ public void write(byte[] b) throws IOException
+ {
+ fos.write(b);
+ out.write(b);
+ }
+ public void write(byte[] b, int off, int len) throws IOException
+ {
+ fos.write(b, off, len);
+ out.write(b, off, len);
+ }
+
+ public void finalize()
+ {
+ try {
+ close();
+ } catch (Exception e) {}
+ }
+}
+
+
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test.java
new file mode 100755
index 0000000..0f3c9e4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test.java
@@ -0,0 +1,48 @@
+/*
+ * Java IO Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+import java.io.PrintWriter;
+import java.io.OutputStreamWriter;
+class test
+{
+ public static void main(String[] args) throws Exception
+ {
+ PrintWriter out = new PrintWriter(new OutputStreamWriter(new ExecOutputStream(System.out, "xsltproc mcr.xsl -")));///java cx.ath.matthew.io.findeof")));
+
+ out.println("<?xml version='1.0'?>");
+ out.println(" <?xml-stylesheet href='style/mcr.xsl' type='text/xsl'?>");
+ out.println(" <mcr xmlns:xi='http://www.w3.org/2001/XInclude'>");
+ out.println(" <title>TEST</title>");
+ out.println(" <content title='TEST'>");
+ out.println("hello, he is helping tie up helen's lemmings");
+ out.println("we are being followed and we break out");
+ out.println(" </content>");
+ out.println(" </mcr>");
+ out.close();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test2.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test2.java
new file mode 100755
index 0000000..bd7a047
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test2.java
@@ -0,0 +1,39 @@
+/*
+ * Java IO Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+class test2
+{
+ public static void main(String[] args) throws Exception
+ {
+ BufferedReader in = new BufferedReader(new InputStreamReader(new ExecInputStream(System.in, "xsltproc mcr.xsl -")));
+ String s;
+ while (null != (s = in.readLine())) System.out.println(s);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test3.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test3.java
new file mode 100755
index 0000000..5d40214
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/io/test3.java
@@ -0,0 +1,45 @@
+/*
+ * Java IO Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.io;
+import java.io.PrintWriter;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+class test3
+{
+ public static void main(String[] args) throws Exception
+ {
+ String file = args[0];
+ PrintWriter p = new PrintWriter(new TeeOutputStream(System.out, file));
+ BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
+ String s;
+ while (null != (s = r.readLine()))
+ p.println(s);
+ p.close();
+ r.close();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/NotConnectedException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/NotConnectedException.java
new file mode 100755
index 0000000..7f5c4e7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/NotConnectedException.java
@@ -0,0 +1,37 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+import java.net.SocketException;
+
+public class NotConnectedException extends SocketException
+{
+ public NotConnectedException()
+ {
+ super("The Socket is Not Connected");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USInputStream.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USInputStream.java
new file mode 100755
index 0000000..95a95e6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USInputStream.java
@@ -0,0 +1,84 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+import java.io.InputStream;
+import java.io.IOException;
+
+public class USInputStream extends InputStream
+{
+ public static final int MSG_DONTWAIT = 0x40;
+ private native int native_recv(int sock, byte[] b, int off, int len, int flags, int timeout) throws IOException;
+ private int sock;
+ boolean closed = false;
+ private byte[] onebuf = new byte[1];
+ private UnixSocket us;
+ private boolean blocking = true;
+ private int flags = 0;
+ private int timeout = 0;
+ public USInputStream(int sock, UnixSocket us)
+ {
+ this.sock = sock;
+ this.us = us;
+ }
+ public void close() throws IOException
+ {
+ closed = true;
+ us.close();
+ }
+ public boolean markSupported() { return false; }
+ public int read() throws IOException
+ {
+ int rv = 0;
+ while (0 >= rv) rv = read(onebuf);
+ if (-1 == rv) return -1;
+ return 0 > onebuf[0] ? -onebuf[0] : onebuf[0];
+ }
+ public int read(byte[] b, int off, int len) throws IOException
+ {
+ if (closed) throw new NotConnectedException();
+ int count = native_recv(sock, b, off, len, flags, timeout);
+ /* Yes, I really want to do this. Recv returns 0 for 'connection shut down'.
+ * read() returns -1 for 'end of stream.
+ * Recv returns -1 for 'EAGAIN' (all other errors cause an exception to be raised)
+ * whereas read() returns 0 for '0 bytes read', so yes, I really want to swap them here.
+ */
+ if (0 == count) return -1;
+ else if (-1 == count) return 0;
+ else return count;
+ }
+ public boolean isClosed() { return closed; }
+ public UnixSocket getSocket() { return us; }
+ public void setBlocking(boolean enable)
+ {
+ flags = enable ? 0 : MSG_DONTWAIT;
+ }
+ public void setSoTimeout(int timeout)
+ {
+ this.timeout = timeout;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USOutputStream.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USOutputStream.java
new file mode 100755
index 0000000..7e06289
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/USOutputStream.java
@@ -0,0 +1,69 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+public class USOutputStream extends OutputStream
+{
+ private native int native_send(int sock, byte[] b, int off, int len) throws IOException;
+ private native int native_send(int sock, byte[][] b) throws IOException;
+ private int sock;
+ boolean closed = false;
+ private byte[] onebuf = new byte[1];
+ private UnixSocket us;
+ public USOutputStream(int sock, UnixSocket us)
+ {
+ this.sock = sock;
+ this.us = us;
+ }
+ public void close() throws IOException
+ {
+ closed = true;
+ us.close();
+ }
+ public void flush() {} // no-op, we do not buffer
+ public void write(byte[][] b) throws IOException
+ {
+ if (closed) throw new NotConnectedException();
+ native_send(sock, b);
+ }
+ public void write(byte[] b, int off, int len) throws IOException
+ {
+ if (closed) throw new NotConnectedException();
+ native_send(sock, b, off, len);
+ }
+ public void write(int b) throws IOException
+ {
+ onebuf[0] = (byte) (b % 0x7F);
+ if (1 == (b % 0x80)) onebuf[0] = (byte) -onebuf[0];
+ write(onebuf);
+ }
+ public boolean isClosed() { return closed; }
+ public UnixSocket getSocket() { return us; }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixIOException.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixIOException.java
new file mode 100755
index 0000000..61cdc12
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixIOException.java
@@ -0,0 +1,44 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+import java.io.IOException;
+
+/**
+ * An IO Exception which occurred during UNIX Socket IO
+ */
+public class UnixIOException extends IOException
+{
+ private int no;
+ private String message;
+ public UnixIOException(int no, String message)
+ {
+ super(message);
+ this.message = message;
+ this.no = no;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixServerSocket.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixServerSocket.java
new file mode 100755
index 0000000..082978c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixServerSocket.java
@@ -0,0 +1,129 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+import java.io.IOException;
+
+/**
+ * Represents a listening UNIX Socket.
+ */
+public class UnixServerSocket
+{
+ static { System.loadLibrary("unix-java"); }
+ private native int native_bind(String address, boolean abs) throws IOException;
+ private native void native_close(int sock) throws IOException;
+ private native int native_accept(int sock) throws IOException;
+ private UnixSocketAddress address = null;
+ private boolean bound = false;
+ private boolean closed = false;
+ private int sock;
+ /**
+ * Create an un-bound server socket.
+ */
+ public UnixServerSocket()
+ {
+ }
+ /**
+ * Create a server socket bound to the given address.
+ * @param address Path to the socket.
+ */
+ public UnixServerSocket(UnixSocketAddress address) throws IOException
+ {
+ bind(address);
+ }
+ /**
+ * Create a server socket bound to the given address.
+ * @param address Path to the socket.
+ */
+ public UnixServerSocket(String address) throws IOException
+ {
+ this(new UnixSocketAddress(address));
+ }
+ /**
+ * Accepts a connection on the ServerSocket.
+ * @return A UnixSocket connected to the accepted connection.
+ */
+ public UnixSocket accept() throws IOException
+ {
+ int client_sock = native_accept(sock);
+ return new UnixSocket(client_sock, address);
+ }
+ /**
+ * Closes the ServerSocket.
+ */
+ public synchronized void close() throws IOException
+ {
+ native_close(sock);
+ sock = 0;
+ closed = true;
+ bound = false;
+ }
+ /**
+ * Binds a server socket to the given address.
+ * @param address Path to the socket.
+ */
+ public void bind(UnixSocketAddress address) throws IOException
+ {
+ if (bound) close();
+ sock = native_bind(address.path, address.abs);
+ bound = true;
+ closed = false;
+ this.address = address;
+ }
+ /**
+ * Binds a server socket to the given address.
+ * @param address Path to the socket.
+ */
+ public void bind(String address) throws IOException
+ {
+ bind(new UnixSocketAddress(address));
+ }
+ /**
+ * Return the address this socket is bound to.
+ * @return The UnixSocketAddress if bound or null if unbound.
+ */
+ public UnixSocketAddress getAddress()
+ {
+ return address;
+ }
+ /**
+ * Check the status of the socket.
+ * @return True if closed.
+ */
+ public boolean isClosed()
+ {
+ return closed;
+ }
+ /**
+ * Check the status of the socket.
+ * @return True if bound.
+ */
+ public boolean isBound()
+ {
+ return bound;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocket.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocket.java
new file mode 100755
index 0000000..f652614
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocket.java
@@ -0,0 +1,320 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import cx.ath.matthew.debug.Debug;
+
+/**
+ * Represents a UnixSocket.
+ */
+public class UnixSocket
+{
+ static { System.loadLibrary("unix-java"); }
+ private native void native_set_pass_cred(int sock, boolean passcred) throws IOException;
+ private native int native_connect(String address, boolean abs) throws IOException;
+ private native void native_close(int sock) throws IOException;
+ private native int native_getPID(int sock);
+ private native int native_getUID(int sock);
+ private native int native_getGID(int sock);
+ private native void native_send_creds(int sock, byte data) throws IOException;
+ private native byte native_recv_creds(int sock, int[] creds) throws IOException;
+
+ private UnixSocketAddress address = null;
+ private USOutputStream os = null;
+ private USInputStream is = null;
+ private boolean closed = false;
+ private boolean connected = false;
+ private boolean passcred = false;
+ private int sock = 0;
+ private boolean blocking = true;
+ private int uid = -1;
+ private int pid = -1;
+ private int gid = -1;
+ UnixSocket(int sock, UnixSocketAddress address)
+ {
+ this.sock = sock;
+ this.address = address;
+ this.connected = true;
+ this.os = new USOutputStream(sock, this);
+ this.is = new USInputStream(sock, this);
+ }
+ /**
+ * Create an unconnected socket.
+ */
+ public UnixSocket()
+ {
+ }
+ /**
+ * Create a socket connected to the given address.
+ * @param address The Unix Socket address to connect to
+ */
+ public UnixSocket(UnixSocketAddress address) throws IOException
+ {
+ connect(address);
+ }
+ /**
+ * Create a socket connected to the given address.
+ * @param address The Unix Socket address to connect to
+ */
+ public UnixSocket(String address) throws IOException
+ {
+ this(new UnixSocketAddress(address));
+ }
+ /**
+ * Connect the socket to this address.
+ * @param address The Unix Socket address to connect to
+ */
+ public void connect(UnixSocketAddress address) throws IOException
+ {
+ if (connected) close();
+ this.sock = native_connect(address.path, address.abs);
+ this.os = new USOutputStream(this.sock, this);
+ this.is = new USInputStream(this.sock, this);
+ this.address = address;
+ this.connected = true;
+ this.closed = false;
+ this.is.setBlocking(blocking);
+ }
+ /**
+ * Connect the socket to this address.
+ * @param address The Unix Socket address to connect to
+ */
+ public void connect(String address) throws IOException
+ {
+ connect(new UnixSocketAddress(address));
+ }
+ public void finalize()
+ {
+ try {
+ close();
+ } catch (IOException IOe) {}
+ }
+ /**
+ * Closes the connection.
+ */
+ public synchronized void close() throws IOException
+ {
+ if (Debug.debug) Debug.print(Debug.INFO, "Closing socket");
+ native_close(sock);
+ sock = 0;
+ this.closed = true;
+ this.connected = false;
+ os = null;
+ is = null;
+ }
+ /**
+ * Returns an InputStream for reading from the socket.
+ * @return An InputStream connected to this socket.
+ */
+ public InputStream getInputStream()
+ {
+ return is;
+ }
+ /**
+ * Returns an OutputStream for writing to the socket.
+ * @return An OutputStream connected to this socket.
+ */
+ public OutputStream getOutputStream()
+ {
+ return os;
+ }
+ /**
+ * Returns the address this socket is connected to.
+ * Returns null if the socket is unconnected.
+ * @return The UnixSocketAddress the socket is connected to
+ */
+ public UnixSocketAddress getAddress()
+ {
+ return address;
+ }
+ /**
+ * Send a single byte of data with credentials.
+ * (Works on BSDs)
+ * @param data The byte of data to send.
+ */
+ public void sendCredentialByte(byte data) throws IOException
+ {
+ if (!connected) throw new NotConnectedException();
+ native_send_creds(sock, data);
+ }
+ /**
+ * Receive a single byte of data, with credentials.
+ * (Works on BSDs)
+ * @see getPeerUID
+ * @see getPeerPID
+ * @see getPeerGID
+ * @param data The byte of data to send.
+ */
+ public byte recvCredentialByte() throws IOException
+ {
+ if (!connected) throw new NotConnectedException();
+ int[] creds = new int[] { -1, -1, -1 };
+ byte data = native_recv_creds(sock, creds);
+ pid = creds[0];
+ uid = creds[1];
+ gid = creds[2];
+ return data;
+ }
+ /**
+ * Get the credential passing status.
+ * (only effective on linux)
+ * @return The current status of credential passing.
+ * @see setPassCred
+ */
+ public boolean getPassCred()
+ {
+ return passcred;
+ }
+ /**
+ * Return the uid of the remote process.
+ * Some data must have been received on the socket to do this.
+ * Either setPassCred must be called on Linux first, or recvCredentialByte
+ * on BSD.
+ * @return the UID or -1 if it is not available
+ */
+ public int getPeerUID()
+ {
+ if (-1 == uid)
+ uid = native_getUID(sock);
+ return uid;
+ }
+ /**
+ * Return the gid of the remote process.
+ * Some data must have been received on the socket to do this.
+ * Either setPassCred must be called on Linux first, or recvCredentialByte
+ * on BSD.
+ * @return the GID or -1 if it is not available
+ */
+ public int getPeerGID()
+ {
+ if (-1 == gid)
+ gid = native_getGID(sock);
+ return gid;
+ }
+ /**
+ * Return the pid of the remote process.
+ * Some data must have been received on the socket to do this.
+ * Either setPassCred must be called on Linux first, or recvCredentialByte
+ * on BSD.
+ * @return the PID or -1 if it is not available
+ */
+ public int getPeerPID()
+ {
+ if (-1 == pid)
+ pid = native_getPID(sock);
+ return pid;
+ }
+ /**
+ * Set the credential passing status.
+ * (Only does anything on linux, for other OS, you need
+ * to use send/recv credentials)
+ * @param enable Set to true for credentials to be passed.
+ */
+ public void setPassCred(boolean enable) throws IOException
+ {
+ native_set_pass_cred(sock, enable);
+ passcred = enable;
+ }
+ /**
+ * Get the blocking mode.
+ * @return true if reads are blocking.
+ * @see setBlocking
+ */
+ public boolean getBlocking()
+ {
+ return blocking;
+ }
+ /**
+ * Set the blocking mode.
+ * @param enable Set to false for non-blocking reads.
+ */
+ public void setBlocking(boolean enable)
+ {
+ blocking = enable;
+ if (null != is) is.setBlocking(enable);
+ }
+
+ /**
+ * Check the socket status.
+ * @return true if closed.
+ */
+ public boolean isClosed()
+ {
+ return closed;
+ }
+ /**
+ * Check the socket status.
+ * @return true if connected.
+ */
+ public boolean isConnected()
+ {
+ return connected;
+ }
+ /**
+ * Check the socket status.
+ * @return true if the input stream has been shutdown
+ */
+ public boolean isInputShutdown()
+ {
+ return is.isClosed();
+ }
+ /**
+ * Check the socket status.
+ * @return true if the output stream has been shutdown
+ */
+ public boolean isOutputShutdown()
+ {
+ return os.isClosed();
+ }
+ /**
+ * Shuts down the input stream.
+ * Subsequent reads on the associated InputStream will fail.
+ */
+ public void shutdownInput()
+ {
+ is.closed = true;
+ }
+ /**
+ * Shuts down the output stream.
+ * Subsequent writes to the associated OutputStream will fail.
+ */
+ public void shutdownOutput()
+ {
+ os.closed = true;
+ }
+ /**
+ * Set timeout of read requests.
+ */
+ public void setSoTimeout(int timeout)
+ {
+ is.setSoTimeout(timeout);
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocketAddress.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocketAddress.java
new file mode 100755
index 0000000..319cd60
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/UnixSocketAddress.java
@@ -0,0 +1,85 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2004
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+package cx.ath.matthew.unix;
+
+/**
+ * Represents an address for a Unix Socket
+ */
+public class UnixSocketAddress
+{
+ String path;
+ boolean abs;
+ /**
+ * Create the address.
+ * @param path The path to the Unix Socket.
+ * @param abs True if this should be an abstract socket.
+ */
+ public UnixSocketAddress(String path, boolean abs)
+ {
+ this.path = path;
+ this.abs = abs;
+ }
+ /**
+ * Create the address.
+ * @param path The path to the Unix Socket.
+ */
+ public UnixSocketAddress(String path)
+ {
+ this.path = path;
+ this.abs = false;
+ }
+ /**
+ * Return the path.
+ */
+ public String getPath()
+ {
+ return path;
+ }
+ /**
+ * Returns true if this an address for an abstract socket.
+ */
+ public boolean isAbstract()
+ {
+ return abs;
+ }
+ /**
+ * Return the Address as a String.
+ */
+ public String toString()
+ {
+ return "unix"+(abs?":abstract":"")+":path="+path;
+ }
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof UnixSocketAddress)) return false;
+ return ((UnixSocketAddress) o).path.equals(this.path);
+ }
+ public int hashCode()
+ {
+ return path.hashCode();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/java-unix.h b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/java-unix.h
new file mode 100755
index 0000000..f0d1ebe
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/java-unix.h
@@ -0,0 +1,112 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class cx_ath_matthew_unix_UnixServerSocket */
+
+#ifndef _Included_cx_ath_matthew_unix_UnixServerSocket
+#define _Included_cx_ath_matthew_unix_UnixServerSocket
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: cx_ath_matthew_unix_UnixServerSocket
+ * Method: native_bind
+ * Signature: (Ljava/lang/String;Z)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixServerSocket_native_1bind
+ (JNIEnv *, jobject, jstring, jboolean);
+
+/*
+ * Class: cx_ath_matthew_unix_UnixServerSocket
+ * Method: native_close
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixServerSocket_native_1close
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: cx_ath_matthew_unix_UnixServerSocket
+ * Method: native_accept
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixServerSocket_native_1accept
+ (JNIEnv *, jobject, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+/* Header for class cx_ath_matthew_unix_UnixSocket */
+
+#ifndef _Included_cx_ath_matthew_unix_UnixSocket
+#define _Included_cx_ath_matthew_unix_UnixSocket
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_set_pass_cred
+ * Signature: (IZ)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1set_1pass_1cred
+ (JNIEnv *, jobject, jint, jboolean);
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_connect
+ * Signature: (Ljava/lang/String;Z)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1connect
+ (JNIEnv *, jobject, jstring, jboolean);
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_close
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1close
+ (JNIEnv *, jobject, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+/* Header for class cx_ath_matthew_unix_USInputStream */
+
+#ifndef _Included_cx_ath_matthew_unix_USInputStream
+#define _Included_cx_ath_matthew_unix_USInputStream
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef cx_ath_matthew_unix_USInputStream_SKIP_BUFFER_SIZE
+#define cx_ath_matthew_unix_USInputStream_SKIP_BUFFER_SIZE 2048L
+/*
+ * Class: cx_ath_matthew_unix_USInputStream
+ * Method: native_recv
+ * Signature: (I[BII)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_USInputStream_native_1recv
+ (JNIEnv *, jobject, jint, jbyteArray, jint, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+/* Header for class cx_ath_matthew_unix_USOutputStream */
+
+#ifndef _Included_cx_ath_matthew_unix_USOutputStream
+#define _Included_cx_ath_matthew_unix_USOutputStream
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: cx_ath_matthew_unix_USOutputStream
+ * Method: native_send
+ * Signature: (I[BII)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_USOutputStream_native_1send
+ (JNIEnv *, jobject, jint, jbyteArray, jint, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testclient.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testclient.java
new file mode 100755
index 0000000..f390b4a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testclient.java
@@ -0,0 +1,51 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.unix;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+
+public class testclient
+{
+ public static void main(String args[]) throws IOException
+ {
+ UnixSocket s = new UnixSocket(new UnixSocketAddress("testsock", true));
+ OutputStream os = s.getOutputStream();
+ PrintWriter o = new PrintWriter(os);
+ BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
+ String l;
+ while (null != (l = r.readLine())) {
+ byte[] buf = (l+"\n").getBytes();
+ os.write(buf, 0, buf.length);
+ }
+ s.close();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testserver.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testserver.java
new file mode 100755
index 0000000..5e1d416
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/unix/testserver.java
@@ -0,0 +1,55 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.unix;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+
+public class testserver
+{
+ public static void main(String args[]) throws IOException
+ {
+ UnixServerSocket ss = new UnixServerSocket(new UnixSocketAddress("testsock", true));
+ UnixSocket s = ss.accept();
+ BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
+ String l;
+ while (null != (l = r.readLine()))
+ System.out.println(l);/*
+ InputStream is = s.getInputStream();
+ int r;
+ do {
+ r = is.read();
+ System.out.print((char)r);
+ } while (-1 != r);*/
+ s.close();
+ ss.close();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/utils/Hexdump.java b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/utils/Hexdump.java
new file mode 100755
index 0000000..02cf5c6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/cx/ath/matthew/utils/Hexdump.java
@@ -0,0 +1,149 @@
+/*
+ * Java Hexdump Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+package cx.ath.matthew.utils;
+
+import java.io.PrintStream;
+
+public class Hexdump
+{
+ public static final char[] hexchars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
+ public static String toHex(byte[] buf)
+ {
+ return toHex(buf, 0, buf.length);
+ }
+ public static String toHex(byte[] buf, int ofs, int len)
+ {
+ StringBuffer sb = new StringBuffer();
+ int j = ofs+len;
+ for (int i = ofs; i < j; i++) {
+ if (i < buf.length) {
+ sb.append(hexchars[(buf[i] & 0xF0) >> 4]);
+ sb.append(hexchars[buf[i] & 0x0F]);
+ sb.append(' ');
+ } else {
+ sb.append(' ');
+ sb.append(' ');
+ sb.append(' ');
+ }
+ }
+ return sb.toString();
+ }
+
+ public static String toAscii(byte[] buf)
+ {
+ return toAscii(buf, 0, buf.length);
+ }
+ public static String toAscii(byte[] buf, int ofs, int len)
+ {
+ StringBuffer sb = new StringBuffer();
+ int j = ofs+len;
+ for (int i = ofs; i < j ; i++) {
+ if (i < buf.length) {
+ if (20 <= buf[i] && 126 >= buf[i])
+ sb.append((char) buf[i]);
+ else
+ sb.append('.');
+ } else
+ sb.append(' ');
+ }
+ return sb.toString();
+ }
+ public static String format(byte[] buf)
+ {
+ return format(buf, 80);
+ }
+ public static String format(byte[] buf, int width)
+ {
+ int bs = (width - 8) / 4;
+ int i = 0;
+ StringBuffer sb = new StringBuffer();
+ do {
+ for (int j = 0; j < 6; j++) {
+ sb.append(hexchars[(i << (j*4) & 0xF00000) >> 20]);
+ }
+ sb.append('\t');
+ sb.append(toHex(buf, i, bs));
+ sb.append(' ');
+ sb.append(toAscii(buf, i, bs));
+ sb.append('\n');
+ i += bs;
+ } while (i < buf.length);
+ return sb.toString();
+ }
+ public static void print(byte[] buf)
+ {
+ print(buf, System.err);
+ }
+ public static void print(byte[] buf, int width)
+ {
+ print(buf, width, System.err);
+ }
+ public static void print(byte[] buf, int width, PrintStream out)
+ {
+ out.print(format(buf, width));
+ }
+ public static void print(byte[] buf, PrintStream out)
+ {
+ out.print(format(buf));
+ }
+ /**
+ * Returns a string which can be written to a Java source file as part
+ * of a static initializer for a byte array.
+ * Returns data in the format 0xAB, 0xCD, ....
+ * use like:
+ * javafile.print("byte[] data = {")
+ * javafile.print(Hexdump.toByteArray(data));
+ * javafile.println("};");
+ */
+ public static String toByteArray(byte[] buf)
+ {
+ return toByteArray(buf, 0, buf.length);
+ }
+ /**
+ * Returns a string which can be written to a Java source file as part
+ * of a static initializer for a byte array.
+ * Returns data in the format 0xAB, 0xCD, ....
+ * use like:
+ * javafile.print("byte[] data = {")
+ * javafile.print(Hexdump.toByteArray(data));
+ * javafile.println("};");
+ */
+ public static String toByteArray(byte[] buf, int ofs, int len)
+ {
+ StringBuffer sb = new StringBuffer();
+ for (int i = ofs; i < len && i < buf.length; i++) {
+ sb.append('0');
+ sb.append('x');
+ sb.append(hexchars[(buf[i] & 0xF0) >> 4]);
+ sb.append(hexchars[buf[i] & 0x0F]);
+ if ((i+1) < len && (i+1) < buf.length)
+ sb.append(',');
+ }
+ return sb.toString();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/unix-java.c b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/unix-java.c
new file mode 100755
index 0000000..4c49b0f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.libmatthew/src/main/java/unix-java.c
@@ -0,0 +1,464 @@
+/*
+ * Java Unix Sockets Library
+ *
+ * Copyright (c) Matthew Johnson 2005
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * To Contact the author, please email src@matthew.ath.cx
+ *
+ */
+
+
+/* _GNU_SOURCE is required to use struct ucred in glibc 2.8 */
+#define _GNU_SOURCE
+
+#include "unix-java.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/socket.h>
+#include <sys/select.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/un.h>
+
+#ifndef IOV_MAX
+#define IOV_MAX 1024
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void throw(JNIEnv* env, int err, const char* msg)
+{
+ jstring jmsg = (*env)->NewStringUTF(env, msg);
+ jclass exc = (*env)->FindClass(env, "cx/ath/matthew/unix/UnixIOException");
+ jmethodID cons = (*env)->GetMethodID(env, exc, "<init>", "(ILjava/lang/String;)V");
+ jobject exo = (*env)->NewObject(env, exc, cons, err, jmsg);
+ (*env)->DeleteLocalRef(env, exc);
+ (*env)->DeleteLocalRef(env, jmsg);
+ (*env)->Throw(env, exo);
+ (*env)->DeleteLocalRef(env, exo);
+}
+
+void handleerrno(JNIEnv *env)
+{
+ if (0 == errno) return;
+ int err = errno;
+ if (EAGAIN == err) return; // we read 0 bytes due to a timeout
+ const char* msg = strerror(err);
+ throw(env, err, msg);
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixServerSocket
+ * Method: native_bind
+ * Signature: (Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixServerSocket_native_1bind
+ (JNIEnv *env, jobject o, jstring address, jboolean abstract)
+{
+ int sock = socket(PF_UNIX, SOCK_STREAM, 0);
+ if (-1 == sock) { handleerrno(env); return -1; }
+ const char* caddr = (*env)->GetStringUTFChars(env, address, 0);
+ int slen = (*env)->GetStringUTFLength(env, address)+1;
+ struct sockaddr_un *sad = malloc(sizeof(sa_family_t)+slen);
+ if (abstract) {
+ char* shifted = sad->sun_path+1;
+ strncpy(shifted, caddr, slen-1);
+ sad->sun_path[0] = 0;
+ } else
+ strncpy(sad->sun_path, caddr, slen);
+ (*env)->ReleaseStringUTFChars(env, address, caddr);
+ sad->sun_family = AF_UNIX;
+ int rv = bind(sock, (const struct sockaddr*) sad, sizeof(sa_family_t)+slen);
+ free(sad);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ rv = listen(sock, 10);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ return sock;
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixServerSocket
+ * Method: native_close
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixServerSocket_native_1close
+ (JNIEnv * env, jobject o, jint sock)
+{
+ if (0 == sock) return;
+ int rv = shutdown(sock, SHUT_RDWR);
+ if (-1 == rv) { handleerrno(env); }
+ else {
+ rv = close(sock);
+ if (-1 == rv) { handleerrno(env); }
+ }
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixServerSocket
+ * Method: native_accept
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixServerSocket_native_1accept
+ (JNIEnv * env, jobject o, jint sock)
+{
+ int newsock = accept(sock, NULL, NULL);
+ if (-1 == newsock) handleerrno(env);
+ return newsock;
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_set_pass_cred
+ * Signature: (IZ)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1set_1pass_1cred
+ (JNIEnv *env, jobject o, jint sock, jboolean enable)
+{
+#ifdef SO_PASSCRED
+ int opt = enable;
+ int rv = setsockopt(sock, SOL_SOCKET, SO_PASSCRED, &opt, sizeof(int));
+ if (-1 == rv) { handleerrno(env);}
+#endif
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_connect
+ * Signature: (Ljava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1connect
+ (JNIEnv *env, jobject o, jstring address, jboolean abstract)
+{
+ int sock = socket(PF_UNIX, SOCK_STREAM, 0);
+ if (-1 == sock) { handleerrno(env); return -1; }
+ const char* caddr = (*env)->GetStringUTFChars(env, address, 0);
+ int slen = (*env)->GetStringUTFLength(env, address)+1;
+ struct sockaddr_un *sad = malloc(sizeof(sa_family_t)+slen);
+ if (abstract) {
+ char* shifted = sad->sun_path+1;
+ strncpy(shifted, caddr, slen-1);
+ sad->sun_path[0] = 0;
+ } else
+ strncpy(sad->sun_path, caddr, slen);
+ (*env)->ReleaseStringUTFChars(env, address, caddr);
+ sad->sun_family = AF_UNIX;
+ int rv = connect(sock, (const struct sockaddr*) sad, sizeof(sa_family_t)+slen);
+ free(sad);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ return sock;
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_close
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1close
+ (JNIEnv *env, jobject o, jint sock)
+{
+ if (0 == sock) return;
+ int rv = shutdown(sock, SHUT_RDWR);
+ if (-1 == rv) { handleerrno(env); }
+ else {
+ rv = close(sock);
+ if (-1 == rv) { handleerrno(env); }
+ }
+}
+
+/*
+ * Class: cx_ath_matthew_unix_USInputStream
+ * Method: native_recv
+ * Signature: ([BII)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_USInputStream_native_1recv
+ (JNIEnv *env, jobject o, jint sock, jbyteArray buf, jint offs, jint len, jint flags, jint timeout)
+{
+ fd_set rfds;
+ struct timeval tv;
+ jbyte* cbuf = (*env)->GetByteArrayElements(env, buf, NULL);
+ void* recvb = cbuf + offs;
+ int rv;
+
+ if (timeout > 0) {
+ FD_ZERO(&rfds);
+ FD_SET(sock, &rfds);
+ tv.tv_sec = 0;
+ tv.tv_usec = timeout;
+ rv = select(sock+1, &rfds, NULL, NULL, &tv);
+ rv = recv(sock, recvb, len, flags);
+ if (-1 == rv) { handleerrno(env); rv = -1; }
+ (*env)->ReleaseByteArrayElements(env, buf, cbuf, 0);
+ return rv;
+ } else {
+ rv = recv(sock, recvb, len, flags);
+ (*env)->ReleaseByteArrayElements(env, buf, cbuf, 0);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ return rv;
+ }
+}
+
+/*
+ * Class: cx_ath_matthew_unix_USOutputStream
+ * Method: native_send
+ * Signature: (I[BII)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_USOutputStream_native_1send__I_3BII
+ (JNIEnv *env, jobject o, jint sock, jbyteArray buf, jint offs, jint len)
+{
+ jbyte* cbuf = (*env)->GetByteArrayElements(env, buf, NULL);
+ void* sendb = cbuf + offs;
+ int rv = send(sock, sendb, len, 0);
+ (*env)->ReleaseByteArrayElements(env, buf, cbuf, 0);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ return rv;
+}
+
+/*
+ * Class: cx_ath_matthew_unix_USOutputStream
+ * Method: native_send
+ * Signature: (I[[B)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_USOutputStream_native_1send__I_3_3B
+ (JNIEnv *env, jobject o, jint sock, jobjectArray bufs)
+{
+ size_t sblen = 1;
+ socklen_t sblen_size = sizeof(sblen);
+ getsockopt(sock, SOL_SOCKET, SO_SNDBUF, &sblen, &sblen_size);
+
+ struct msghdr msg;
+ struct iovec *iov;
+ msg.msg_name = NULL;
+ msg.msg_namelen = 0;
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
+ msg.msg_flags = 0;
+ size_t els = (*env)->GetArrayLength(env, bufs);
+ iov = (struct iovec*) malloc((els<IOV_MAX?els:IOV_MAX) * sizeof(struct iovec));
+ msg.msg_iov = iov;
+ jbyteArray *b = (jbyteArray*) malloc(els * sizeof(jbyteArray));
+ int rv = 0;
+
+ for (int i = 0, j = 0, s = 0; i <= els; i++, j++) {
+ if (i == els) {
+ msg.msg_iovlen = j;
+ rv = sendmsg(sock, &msg, 0);
+ for (int k = i-1, l = j-1; l >= 0; k--, l--)
+ (*env)->ReleaseByteArrayElements(env, b[k], iov[l].iov_base, 0);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ break;
+ }
+ b[i] = (*env)->GetObjectArrayElement(env, bufs, i);
+ if (NULL == b[i]) {
+ msg.msg_iovlen = j;
+ rv = sendmsg(sock, &msg, 0);
+ for (int k = i-1, l = j-1; l >= 0; k--, l--)
+ (*env)->ReleaseByteArrayElements(env, b[k], iov[l].iov_base, 0);
+ if (-1 == rv) { handleerrno(env); return -1; }
+ break;
+ }
+ size_t l = (*env)->GetArrayLength(env, b[i]);
+ if (s+l > sblen || j == IOV_MAX) {
+ msg.msg_iovlen = j;
+ rv = sendmsg(sock, &msg, 0);
+ s = 0;
+ for (int k = i-1, l = j-1; l >= 0; k--, l--)
+ (*env)->ReleaseByteArrayElements(env, b[k], iov[l].iov_base, 0);
+ j = 0;
+ if (-1 == rv) { handleerrno(env); return -1; }
+ }
+ iov[j].iov_base = (*env)->GetByteArrayElements(env, b[i], NULL);
+ iov[j].iov_len = l;
+ s += l;
+ }
+
+ free(iov);
+ free(b);
+ return rv;
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_getPID
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1getPID
+ (JNIEnv * env, jobject o, jint sock)
+{
+#ifdef SO_PEERCRED
+ struct ucred cr;
+ socklen_t cl=sizeof(cr);
+
+ if (getsockopt(sock, SOL_SOCKET, SO_PEERCRED, &cr, &cl)==0)
+ return cr.pid;
+ else
+ return -1;
+#else
+ return -1;
+#endif
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_getUID
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1getUID
+ (JNIEnv * env, jobject o, jint sock)
+{
+#ifdef SO_PEERCRED
+ struct ucred cr;
+ socklen_t cl=sizeof(cr);
+
+ if (getsockopt(sock, SOL_SOCKET, SO_PEERCRED, &cr, &cl)==0)
+ return cr.uid;
+ else
+ return -1;
+#else
+ return -1;
+#endif
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_getGID
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1getGID
+ (JNIEnv * env, jobject o, jint sock)
+{
+#ifdef SO_PEERCRED
+ struct ucred cr;
+ socklen_t cl=sizeof(cr);
+
+ if (getsockopt(sock, SOL_SOCKET, SO_PEERCRED, &cr, &cl)==0)
+ return cr.gid;
+ else
+ return -1;
+#else
+ return -1;
+#endif
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_send_creds
+ * Signature: (B)V
+ */
+JNIEXPORT void JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1send_1creds
+ (JNIEnv * env, jobject o, jint sock, jbyte data)
+{
+ struct msghdr msg;
+ struct iovec iov;
+ msg.msg_name = NULL;
+ msg.msg_namelen = 0;
+ msg.msg_flags = 0;
+ msg.msg_iov = &iov;
+ msg.msg_iovlen = 1;
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
+ iov.iov_base = &data;
+ iov.iov_len = 1;
+
+#ifdef SCM_CREDENTIALS
+ char buf[CMSG_SPACE(sizeof(struct ucred))];
+ msg.msg_control = buf;
+ msg.msg_controllen = sizeof buf;
+ struct cmsghdr *cmsg;
+ struct ucred *creds;
+
+ cmsg = CMSG_FIRSTHDR(&msg);
+ cmsg->cmsg_level = SOL_SOCKET;
+ cmsg->cmsg_type = SCM_CREDENTIALS;
+ cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred));
+ /* Initialize the payload: */
+ creds = (struct ucred *)CMSG_DATA(cmsg);
+ creds->pid = getpid();
+ creds->uid = getuid();
+ creds->gid = getgid();
+#endif
+
+ int rv = sendmsg(sock, &msg, 0);
+ if (-1 == rv) { handleerrno(env); }
+}
+
+/*
+ * Class: cx_ath_matthew_unix_UnixSocket
+ * Method: native_recv_creds
+ * Signature: ([I)B
+ */
+JNIEXPORT jbyte JNICALL Java_cx_ath_matthew_unix_UnixSocket_native_1recv_1creds
+ (JNIEnv *env, jobject o, jint sock, jintArray jcreds)
+{
+ struct msghdr msg;
+ char iov_buf = 0;
+ struct iovec iov;
+ msg.msg_name = NULL;
+ msg.msg_namelen = 0;
+ msg.msg_flags = 0;
+ msg.msg_iov = &iov;
+ msg.msg_iovlen = 1;
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
+ iov.iov_base = &iov_buf;
+ iov.iov_len = 1;
+
+#ifdef SCM_CREDENTIALS
+ char buf[CMSG_SPACE(sizeof(struct ucred))];
+ msg.msg_control = buf;
+ msg.msg_controllen = sizeof buf;
+ struct cmsghdr *cmsg;
+ struct ucred *creds = NULL;
+#endif
+
+ recvmsg(sock, &msg, 0);
+
+#ifdef SCM_CREDENTIALS
+ for (cmsg = CMSG_FIRSTHDR(&msg);
+ cmsg != NULL;
+ cmsg = CMSG_NXTHDR(&msg,cmsg)) {
+ if (cmsg->cmsg_level == SOL_SOCKET
+ && cmsg->cmsg_type == SCM_CREDENTIALS) {
+ creds = (struct ucred *) CMSG_DATA(cmsg);
+ break;
+ }
+ }
+ if (NULL != creds) {
+ jint cred_array[3];
+ cred_array[0] = creds->pid;
+ cred_array[1] = creds->uid;
+ cred_array[2] = creds->gid;
+ (*env)->SetIntArrayRegion(env, jcreds, 0, 3, &cred_array[0]);
+ }
+#endif
+
+ return iov_buf;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project b/src/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project
new file mode 100755
index 0000000..5a1a074
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.maven-parent</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml b/src/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml
new file mode 100755
index 0000000..4d1ddcc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>TrafficInfo Project Parent Pom</name>
+ <description>Top level project for all GENIVI TrafficIncidentsService Eclipse projects.</description>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>Codehaus Snapshots</id>
+ <url>http://nexus.codehaus.org/snapshots/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled> <!-- Workaround for MNG-2974, see note below -->
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>demo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-cli-sqlite-with-dependencies</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map-sqlite-with-dependencies</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ <version>2.8.0.v20130125-0546</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ <version>2.8.3.v20130125-0546</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ <version>2.8.1.v20130125-0546</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>booleanexpr-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>iconset-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidents</groupId>
+ <artifactId>trafficincidents-trafficincident-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidentfeed</groupId>
+ <artifactId>trafficincidentfeed-trafficincident-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <modules>
+ <module>../org.genivi.trafficinfo.libmatthew</module>
+ <module>../org.genivi.trafficinfo.dbus-java</module>
+ <module>../org.genivi.trafficinfo.demo</module>
+ <module>../org.genivi.basetypes-model</module>
+ <module>../org.genivi.booleanexpr-model</module>
+ <module>../org.genivi.iconset-model</module>
+ <module>../org.genivi.locref-model</module>
+ <module>../org.genivi.trafficincidentsservice.trafficincidenttables-model</module>
+ <module>../org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model</module>
+ <module>../org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model</module>
+ <module>../org.genivi.trafficincidentsservice.trafficincidentsservice-model</module>
+ <module>../org.genivi.trafficinfo</module>
+ <module>../org.genivi.trafficincidentsservice.dbuswrapper</module>
+ <module>../org.genivi.trafficincidentsservice.dbus.impl</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.5.1</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.9</version>
+ <configuration>
+ <projectNameTemplate>[groupId].[artifactId]</projectNameTemplate>
+ <downloadSources>true</downloadSources>
+ <downloadJavadocs>true</downloadJavadocs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/.classpath b/src/traffic-incidents-service/org.genivi.trafficinfo/.classpath
new file mode 100755
index 0000000..e903c01
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/.classpath
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="src" path="/org.genivi.basetypes-model"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.dbus-java"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.libmatthew"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentsservice-model"/>
+ <classpathentry kind="src" path="/org.genivi.booleanexpr-model"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.demo"/>
+ <classpathentry kind="src" path="/org.genivi.iconset-model"/>
+ <classpathentry kind="src" path="/org.genivi.locref-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidenttables-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model"/>
+</classpath> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/.project b/src/traffic-incidents-service/org.genivi.trafficinfo/.project
new file mode 100755
index 0000000..d299524
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/.project
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo</name>
+ <comment>This project the main part of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.basetypes-model</project>
+ <project>org.genivi.trafficinfo.dbus-java</project>
+ <project>org.genivi.trafficinfo.libmatthew</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentsservice-model</project>
+ <project>org.genivi.booleanexpr-model</project>
+ <project>org.genivi.trafficinfo.demo</project>
+ <project>org.genivi.iconset-model</project>
+ <project>org.genivi.locref-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidents.trafficincidents-trafficincident-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidenttables-model</project>
+ <project>org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincidentfeed-trafficincident-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/OpenLR-encoder.log b/src/traffic-incidents-service/org.genivi.trafficinfo/OpenLR-encoder.log
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/OpenLR-encoder.log
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/ReadMe.confluence b/src/traffic-incidents-service/org.genivi.trafficinfo/ReadMe.confluence
new file mode 100755
index 0000000..2c41ae3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/ReadMe.confluence
@@ -0,0 +1,33 @@
+This project contains the main part of the Java only PoC for the TrafficIncidentsService. It makes use of several data models which are defined in other packages.
+On top of this there are projects to add D-Bus layers between the components.
+Packages
+
+org.genivi.locref.decoder
+Interface definition for Location Reference decoders. This interface is used in the implementation of org.genivi.locref.LocationReferenceDecodingService.
+
+org.genivi.locref.decoder.openlr
+OpenLR implementation of decoder interface defined in org.genivi.locref.decoder.
+
+org.genivi.locref.refimpl
+Reference implementation of org.genivi.locref.LocationReferenceDecodingService
+
+org.genivi.tpegtecfeed.refimpl
+Reference implementation of a TPEG-TEC Feed. This Feed receives TPEG Service Component Frames from the TPEG Framework and translates the information to TrafficIncidents which are handed over to the TrafficIncidents service, via the TrafficIncidentFeed interface.
+
+org.genivi.trafficincidentsservice
+Contains default implementations for TrafficIncidentsListener and TrafficIncidentFeedListener.
+
+org.genivi.trafficincidentsservice.refimpl
+Reference implementation of a TrafficIncidentsService (without any D-Bus binding).
+
+org.genivi.trafficincidentsservice.textgenerator
+Defines an interface for a text generator, as a sub component of the TrafficIncidentsService.
+
+org.genivi.trafficincidentsservice.textgenerator.basictextgenerator
+Basic implementation of a textgenerator.
+
+org.genivi.trafficinfo.pocmain
+Contains the Main class for starting the Proof of Concept (without D-Bus IPC).
+
+org.genivi.trafficinfo.trafficincidentsexampleclients
+Contains the example clients of the TrafficIncidentsService. \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/TextParts.properties b/src/traffic-incidents-service/org.genivi.trafficinfo/TextParts.properties
new file mode 100755
index 0000000..e962735
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/TextParts.properties
@@ -0,0 +1 @@
+on_the = on the \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/TextParts_en_US.properties b/src/traffic-incidents-service/org.genivi.trafficinfo/TextParts_en_US.properties
new file mode 100755
index 0000000..e962735
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/TextParts_en_US.properties
@@ -0,0 +1 @@
+on_the = on the \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Category definitions screenshot 1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Category definitions screenshot 1.png
new file mode 100755
index 0000000..996c542
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Category definitions screenshot 1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Icons and Iconsets screenshot 1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Icons and Iconsets screenshot 1.png
new file mode 100755
index 0000000..b8a8997
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Icons and Iconsets screenshot 1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot - status only.png b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot - status only.png
new file mode 100755
index 0000000..a9c6888
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot - status only.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot 1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot 1.png
new file mode 100755
index 0000000..9112f83
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/List Client screenshot 1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Map Client screenshot 1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Map Client screenshot 1.png
new file mode 100755
index 0000000..bf469be
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Map Client screenshot 1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Thumbs.db b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Thumbs.db
new file mode 100755
index 0000000..4fd0094
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Thumbs.db
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Warning Client screenshot 1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Warning Client screenshot 1.png
new file mode 100755
index 0000000..d2319fb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/doc/Warning Client screenshot 1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/Thumbs.db b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/Thumbs.db
new file mode 100755
index 0000000..9c651e8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/Thumbs.db
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId1.png
new file mode 100755
index 0000000..542067f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId2.png
new file mode 100755
index 0000000..6fe9dfe
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId3.png
new file mode 100755
index 0000000..1013bf4
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId4.png
new file mode 100755
index 0000000..e577a45
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId5.png
new file mode 100755
index 0000000..ca20e32
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId6.png
new file mode 100755
index 0000000..5bdd290
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId10_RGB888_D_2D_night_themeId44_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId1.png
new file mode 100755
index 0000000..f06f7a8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId2.png
new file mode 100755
index 0000000..09765eb
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId3.png
new file mode 100755
index 0000000..6b2f110
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId4.png
new file mode 100755
index 0000000..1f6d8a3
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId5.png
new file mode 100755
index 0000000..4ad170f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId6.png
new file mode 100755
index 0000000..ff5233e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId1_GRAY_8_D_2D_day_themeId28_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId1.png
new file mode 100755
index 0000000..16d0305
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId2.png
new file mode 100755
index 0000000..149fc8c
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId3.png
new file mode 100755
index 0000000..89d0111
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId4.png
new file mode 100755
index 0000000..7978cb5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId5.png
new file mode 100755
index 0000000..d8b0f12
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId6.png
new file mode 100755
index 0000000..9e27531
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId2_RGB888_D_2D_day_themeId28_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId1.png
new file mode 100755
index 0000000..21580ef
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId2.png
new file mode 100755
index 0000000..fa9aa0e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId3.png
new file mode 100755
index 0000000..5352a71
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId4.png
new file mode 100755
index 0000000..a9498b0
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId5.png
new file mode 100755
index 0000000..3456c50
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId6.png
new file mode 100755
index 0000000..0039781
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId3_GRAY_8_D_2D_night_themeId28_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId1.png
new file mode 100755
index 0000000..be328ce
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId2.png
new file mode 100755
index 0000000..686d784
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId3.png
new file mode 100755
index 0000000..0a96d1e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId4.png
new file mode 100755
index 0000000..4816b0e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId5.png
new file mode 100755
index 0000000..5e36f16
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId6.png
new file mode 100755
index 0000000..55b7a10
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId4_RGB888_D_2D_night_themeId28_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId1.png
new file mode 100755
index 0000000..fb3150b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId2.png
new file mode 100755
index 0000000..9b39634
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId3.png
new file mode 100755
index 0000000..bb1bb6e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId4.png
new file mode 100755
index 0000000..c024b42
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId5.png
new file mode 100755
index 0000000..526fb2f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId6.png
new file mode 100755
index 0000000..414de95
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId5_RGB888_D_2_5D_day_themeId28_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId1.png
new file mode 100755
index 0000000..ceb7422
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId2.png
new file mode 100755
index 0000000..cc603e8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId3.png
new file mode 100755
index 0000000..a9d882f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId4.png
new file mode 100755
index 0000000..7ae6fe1
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId5.png
new file mode 100755
index 0000000..a89abad
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId6.png
new file mode 100755
index 0000000..9bf0c51
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId6_RGB888_D_2_5D_night_themeId28_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId1.png
new file mode 100755
index 0000000..6674e6d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId2.png
new file mode 100755
index 0000000..fc374ed
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId3.png
new file mode 100755
index 0000000..2309e45
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId4.png
new file mode 100755
index 0000000..ca031f6
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId5.png
new file mode 100755
index 0000000..889801d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId6.png
new file mode 100755
index 0000000..cb66153
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId7_GRAY_8_D_2D_day_themeId44_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId1.png
new file mode 100755
index 0000000..5577406
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId2.png
new file mode 100755
index 0000000..797dc60
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId3.png
new file mode 100755
index 0000000..bdbf22e
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId4.png
new file mode 100755
index 0000000..f8e47fe
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId5.png
new file mode 100755
index 0000000..10aa635
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId6.png
new file mode 100755
index 0000000..713cc71
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId8_RGB888_D_2D_day_themeId44_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId1.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId1.png
new file mode 100755
index 0000000..5fb5601
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId1.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId2.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId2.png
new file mode 100755
index 0000000..2998c84
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId2.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId3.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId3.png
new file mode 100755
index 0000000..3d44839
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId3.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId4.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId4.png
new file mode 100755
index 0000000..8f9c9cc
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId4.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId5.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId5.png
new file mode 100755
index 0000000..6457412
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId5.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId6.png b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId6.png
new file mode 100755
index 0000000..86aaf80
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/icons/icon_setId9_GRAY_8_D_2D_night_themeId44_32x32_iconId6.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.bmp b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.bmp
new file mode 100755
index 0000000..7a0c728
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.bmp
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.png b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.png
new file mode 100755
index 0000000..885e113
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/GENIVI_TomTom_64x64.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/Thumbs.db b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/Thumbs.db
new file mode 100755
index 0000000..d21979b
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/Thumbs.db
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TomTom GENIVI Traffic Info license.rtf b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TomTom GENIVI Traffic Info license.rtf
new file mode 100755
index 0000000..312ede8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TomTom GENIVI Traffic Info license.rtf
@@ -0,0 +1,172 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
+{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
+{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
+{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f198\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f199\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\f201\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f202\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f203\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f204\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\f205\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f206\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f538\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f539\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
+{\f541\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f542\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f545\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f546\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
+{\f578\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f579\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f581\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f582\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;}
+{\f585\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f586\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
+{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
+{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
+{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
+{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
+\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;
+\caccentone\ctint255\cshade191\red54\green95\blue145;\caccentone\ctint255\cshade255\red79\green129\blue189;\ctexttwo\ctint255\cshade191\red23\green54\blue93;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
+\f38\fs18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 \styrsid12075506 Normal;}{\s1\ql \li0\ri0\sb480\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0
+\rtlch\fcs1 \ab\af0\afs28\alang1025 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid1780167 heading 1;}{
+\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0
+\b\fs26\cf18\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink16 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid1780167 heading 2;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1
+Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
+\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused
+Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0 \b\fs28\cf17\loch\f38\hich\af38\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid1780167 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\af0\afs26 \ltrch\fcs0
+\b\fs26\cf18\loch\f38\hich\af38\dbch\af31501 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 \styrsid1780167 Heading 2 Char;}{\s17\ql \li0\ri0\sa300\widctlpar\brdrb\brdrs\brdrw20\brsp80\brdrcf18
+\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\contextualspace \rtlch\fcs1 \af0\afs52\alang1025 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf19\lang1033\langfe1033\kerning28\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext0 \slink18 \sqformat \spriority10 \styrsid1780167 Title;}{\*\cs18 \additive \rtlch\fcs1 \af0\afs52 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf19\kerning28\loch\f38\hich\af38\dbch\af31501
+\sbasedon10 \slink17 \slocked \spriority10 \styrsid1780167 Title Char;}{\s19\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ilvl1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ai\af0\afs24\alang1025 \ltrch\fcs0
+\i\fs24\expnd3\expndtw15\cf18\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink20 \sqformat \spriority11 \styrsid1780167 Subtitle;}{\*\cs20 \additive \rtlch\fcs1 \ai\af0\afs24 \ltrch\fcs0
+\i\fs24\expnd3\expndtw15\cf18\loch\f38\hich\af38\dbch\af31501 \sbasedon10 \slink19 \slocked \spriority11 \styrsid1780167 Subtitle Char;}}{\*\rsidtbl \rsid1312242\rsid1780167\rsid2360776\rsid3034291\rsid7419968\rsid11485746\rsid12075506\rsid15359627}
+{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Peter Goedegebure}{\operator Peter Goedegebure}{\creatim\yr2012\mo9\dy27\hr10\min53}
+{\revtim\yr2012\mo10\dy1\hr14\min6}{\version3}{\edmins18}{\nofpages1}{\nofwords46}{\nofchars265}{\*\company TomTom Group}{\nofcharsws310}{\vern49273}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
+\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
+\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
+\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
+\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
+\asianbrkrule\rsidroot11485746\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
+{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
+\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
+\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
+{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f38\fs18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
+\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7419968 This software is only meant to be used to demonstrate the functionality of the GENIVI interfaces for Traffic Information.\line This software may not be distributed.\line This software
+is not allowed to be used and will not function after October 14}{\rtlch\fcs1 \af0 \ltrch\fcs0 \super\insrsid7419968\charrsid7419968 th}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7419968 2012.
+\par Copyright \'a9 2012, TomTom International B.V.
+\par All rights reserved}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7419968\charrsid1780167
+\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
+9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
+5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
+b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
+0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
+a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
+c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
+0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
+a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
+6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
+4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
+4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f
+7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87
+615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad
+79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b
+5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab
+999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9
+699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586
+8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6
+0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f
+9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be
+15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979
+3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d
+32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a
+f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86
+e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90
+fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2
+ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae
+a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1
+399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5
+4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84
+0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b
+c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7
+689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20
+5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0
+aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d
+316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840
+545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a
+c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100
+0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7
+8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89
+d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500
+1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f
+bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6
+a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a
+0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021
+0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008
+00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000}
+{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
+6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
+656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
+{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
+\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
+\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
+\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
+4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000070a7
+493acd9fcd01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo.nsi b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo.nsi
new file mode 100755
index 0000000..a6d07d9
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo.nsi
@@ -0,0 +1,223 @@
+;
+; NSIS script om de GENIVI Traffic Info installer te genereren.
+;
+
+!include LogicLib.nsh
+
+;--------------------------------
+
+!macro BIMAGE IMAGE
+ Push $0
+ GetTempFileName $0
+ File /oname=$0 "${IMAGE}"
+ SetBrandingImage $0
+ Delete $0
+ Pop $0
+!macroend
+
+
+;--------------------------------
+
+Name "TomTom GENIVI Traffic Info demo"
+Caption "TomTom GENIVI Traffic Info demo"
+
+OutFile "..\target\TomTom-GENIVI-TrafficInfo-Installer.exe"
+
+LicenseText "In order to install this software you have to agree with the following license agreement"
+LicenseData "TomTom GENIVI Traffic Info license.rtf"
+
+
+InstallColors 101010 e0e0e0
+XPStyle on
+
+; Add branding image to the installer (an image placeholder on the side).
+; It is not enough to just add the placeholder, we must set the image too...
+; We will later set the image in every pre-page function.
+; We can also set just one persistent image in .onGUIInit
+AddBrandingImage left 50 10
+
+InstallDir "$PROGRAMFILES\TomTom GENIVI Traffic Info demo"
+
+
+;--------------------------------
+
+Page license setBrandingImage
+Page components
+Page directory
+Page instfiles "" "" readySound
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+;--------------------------------
+
+
+Section "" ; empty string makes it hidden.
+ SetOutPath $INSTDIR
+ WriteUninstaller "TomTom-GENIVI-TrafficInfo-demo-uninst.exe"
+SectionEnd
+
+
+Section "!Traffic Info demo program"
+ SectionIn RO
+
+ File "TrafficInfo_32x32.ico"
+ File "..\resources\Traffic Info demo.sh"
+ CreateDirectory $INSTDIR\resources
+ File "/oname=resources\tomtom_utrecht_2008_04.db3" "..\resources\tomtom_utrecht_2008_04.db3"
+ File "C:\Documents and Settings\pego\.m2\repository\org-genivi\org-genivi-trafficinfo\1.0-SNAPSHOT\org-genivi-trafficinfo-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com-tomtom\com-tomtom-demo\1.0-SNAPSHOT\com-tomtom-demo-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com-tomtom\com-tomtom-ti-tecservice\1.0-SNAPSHOT\com-tomtom-ti-tecservice-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com-tomtom\com-tomtom-ti-tpeg2waycomm-model\1.0-SNAPSHOT\com-tomtom-ti-tpeg2waycomm-model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com-tomtom\com-tomtom-ti-tpegfwk\1.0-SNAPSHOT\com-tomtom-ti-tpegfwk-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com-tomtom\com-tomtom-ti-tpegfwktypes-model\1.0-SNAPSHOT\com-tomtom-ti-tpegfwktypes-model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com-tomtom\com-tomtom-ti-tpegtables\1.0-SNAPSHOT\com-tomtom-ti-tpegtables-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\com\tomtom\ti\com.tomtom.ti.tec.event-model\1.0-SNAPSHOT\com.tomtom.ti.tec.event-model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\junit\junit\4.3\junit-4.3.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\openlr\openlr-cli-sqlite-with-dependencies\1.2.2\openlr-cli-sqlite-with-dependencies-1.2.2.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\openlr\openlr-map\1.2.2\openlr-map-1.2.2.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\openlr\openlr-map-sqlite-with-dependencies\1.2.2\openlr-map-sqlite-with-dependencies-1.2.2.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org-genivi\org-genivi-basetypes\1.0-SNAPSHOT\org-genivi-basetypes-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org-genivi\org-genivi-locref-model\1.0-SNAPSHOT\org-genivi-locref-model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org-genivi\org-genivi-tpeg-sni-model\1.0-SNAPSHOT\org-genivi-tpeg-sni-model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org-genivi\org-genivi-trafficinfo-trafficincident.model\1.0-SNAPSHOT\org-genivi-trafficinfo-trafficincident.model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org-genivi\org-genivi-trafficinfo-trafficincidents-model\1.0-SNAPSHOT\org-genivi-trafficinfo-trafficincidents-model-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org-tisa\org-tisa-tpeg2waycomm\1.0-SNAPSHOT\org-tisa-tpeg2waycomm-1.0-SNAPSHOT.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org\eclipse\emf\org.eclipse.emf.common\2.8.0.v20120606-0717\org.eclipse.emf.common-2.8.0.v20120606-0717.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org\eclipse\emf\org.eclipse.emf.ecore\2.8.0.v20120606-0717\org.eclipse.emf.ecore-2.8.0.v20120606-0717.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org\eclipse\emf\org.eclipse.emf.ecore.xmi\2.8.0.v20120606-0717\org.eclipse.emf.ecore.xmi-2.8.0.v20120606-0717.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org\jdesktop\org.jdesktop.swingx\none\org.jdesktop.swingx-none.jar"
+ File "C:\Documents and Settings\pego\.m2\repository\org\jdesktop\org.jdesktop.swingx-ws\2007_10_14\org.jdesktop.swingx-ws-2007_10_14.jar"
+ CreateShortCut '$INSTDIR\Traffic Info demo.lnk' 'javaw.exe' \
+ '-jar org-genivi-trafficinfo-1.0-SNAPSHOT.jar' '$INSTDIR\TrafficInfo_32x32.ico' '' SW_SHOWNORMAL '' 'Start Traffic Info demo'
+SectionEnd
+
+
+sectionGroup Shortcuts
+
+ Section "Shortcuts in Start menu"
+ CreateDirectory "$SMPROGRAMS\Traffic Info demo"
+ CreateShortCut '$SMPROGRAMS\Traffic Info demo\Traffic Info demo.lnk' 'javaw.exe' \
+ '-jar org-genivi-trafficinfo-1.0-SNAPSHOT.jar' '$INSTDIR\TrafficInfo_32x32.ico' '' SW_SHOWNORMAL '' 'Start Traffic Info demo'
+ CreateShortCut "$SMPROGRAMS\Traffic Info demo\Traffic Info demo-uninst.lnk" "$INSTDIR\TomTom-GENIVI-TrafficInfo-demo-uninst.exe" \
+ "" "$INSTDIR\TomTom-GENIVI-TrafficInfo-demo-uninst.exe" "" SW_SHOWNORMAL "" "Remove Traffic Info demo"
+ SectionEnd
+
+ Section "Shortcut on Desktop"
+ CreateShortCut '$DESKTOP\Traffic Info demo.lnk' 'javaw.exe' \
+ '-jar org-genivi-trafficinfo-1.0-SNAPSHOT.jar' '$INSTDIR\TrafficInfo_32x32.ico' '' SW_SHOWNORMAL '' 'Start Traffic Info demo'
+ SectionEnd
+
+ Section "Quick access icon"
+ CreateShortCut '$QUICKLAUNCH\Traffic Info demo.lnk' 'javaw.exe' \
+ '-jar org-genivi-trafficinfo-1.0-SNAPSHOT.jar' '$INSTDIR\TrafficInfo_32x32.ico' '' SW_SHOWNORMAL '' 'Start Traffic Info demo'
+ SectionEnd
+
+sectionGroupEnd
+
+Function .onInit
+ # the plugins dir is automatically deleted when the installer exits
+ InitPluginsDir
+
+FunctionEnd
+
+Function .onGUIInit
+ # lets extract some bitmaps...
+ File /oname=$PLUGINSDIR\TrafficInfoBackground.bmp "TrafficInfoBackground.bmp"
+ File /oname=$PLUGINSDIR\notify.wav "notify.wav"
+
+ # set the initial background for images to be drawn on
+ # we will use a gradient from dark blue to a bright blue
+ BgImage::SetBg /NOUNLOAD /GRADIENT 0x0 0x0 0x50 0x10 0x10 0xFF
+
+ # create the font for the following text
+ CreateFont $R0 "Times New Roman" 50 700
+ # add a text with shadow
+ BgImage::AddText /NOUNLOAD "Traffic Info demo" $R0 50 50 50 328 48 900 198
+ BgImage::AddText /NOUNLOAD "Traffic Info demo" $R0 80 80 80 327 49 899 199
+ BgImage::AddText /NOUNLOAD "Traffic Info demo" $R0 110 110 110 326 50 898 200
+ BgImage::AddText /NOUNLOAD "Traffic Info demo" $R0 150 150 150 325 51 897 201
+ BgImage::AddText /NOUNLOAD "Traffic Info demo" $R0 190 190 190 324 52 896 202
+
+ # add the background image @ (150,200)
+ BgImage::AddImage /NOUNLOAD $PLUGINSDIR\TrafficInfoBackground.bmp 50 200
+
+ # show our creation to the world!
+ BgImage::Redraw /NOUNLOAD
+ # Refresh doesn't return any value
+
+FunctionEnd
+
+
+Function .onGUIEnd
+ # Destroy must not have /NOUNLOAD so NSIS will be able to unload
+ # and delete BgImage before it exits
+ BgImage::Destroy
+FunctionEnd
+
+
+Function setBrandingImage
+ !insertmacro BIMAGE "GENIVI_TomTom_64x64.bmp"
+FunctionEnd
+
+
+Function readySound
+ BgImage::Sound /NOUNLOAD /WAIT $PLUGINSDIR\notify.wav
+FunctionEnd
+
+;--------------------------------
+
+; Uninstaller
+
+UninstallText "This program removes the TomTom GENIVI Traffic Info demo from your computer. Click 'Uninstall' to continue."
+
+Section "Uninstall"
+ Delete "$INSTDIR\TrafficInfo_32x32.ico"
+ Delete "$INSTDIR\Traffic Info demo.sh"
+ Delete "$INSTDIR\resources\tomtom_utrecht_2008_04.db3"
+ Delete "$INSTDIR\org-genivi-trafficinfo-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com-tomtom-demo-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com-tomtom-ti-tecservice-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com-tomtom-ti-tpeg2waycomm-model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com-tomtom-ti-tpegfwk-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com-tomtom-ti-tpegfwktypes-model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com-tomtom-ti-tpegtables-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\com.tomtom.ti.tec.event-model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\commons-logging-1.0.4.jar"
+ Delete "$INSTDIR\junit-4.3.jar"
+ Delete "$INSTDIR\openlr-cli-sqlite-with-dependencies-1.2.2.jar"
+ Delete "$INSTDIR\openlr-map-1.2.2.jar"
+ Delete "$INSTDIR\openlr-map-sqlite-with-dependencies-1.2.2.jar"
+ Delete "$INSTDIR\org-genivi-basetypes-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\org-genivi-locref-model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\org-genivi-tpeg-sni-model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\org-genivi-trafficinfo-trafficincident.model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\org-genivi-trafficinfo-trafficincidents-model-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\org-tisa-tpeg2waycomm-1.0-SNAPSHOT.jar"
+ Delete "$INSTDIR\org.eclipse.emf.common-2.8.0.v20120606-0717.jar"
+ Delete "$INSTDIR\org.eclipse.emf.ecore-2.8.0.v20120606-0717.jar"
+ Delete "$INSTDIR\org.eclipse.emf.ecore.xmi-2.8.0.v20120606-0717.jar"
+ Delete "$INSTDIR\org.jdesktop.swingx-none.jar"
+ Delete "$INSTDIR\org.jdesktop.swingx-ws-2007_10_14.jar"
+ Delete "$INSTDIR\Traffic Info demo.lnk"
+ Delete "$INSTDIR\TomTom-GENIVI-TrafficInfo-demo-uninst.exe"
+ Delete "$INSTDIR\OpenLR-encoder.log"
+ RMDir "$INSTDIR\resources"
+ RMDir "$INSTDIR"
+ Delete "$SMPROGRAMS\Traffic Info demo\Traffic Info demo.lnk"
+ Delete "$SMPROGRAMS\Traffic Info demo\Traffic Info demo-uninst.lnk"
+ RMDir "$SMPROGRAMS\Traffic Info demo"
+ Delete "$DESKTOP\Traffic Info demo.lnk"
+ Delete "$QUICKLAUNCH\Traffic Info demo.lnk"
+
+ IfFileExists "$INSTDIR" 0 InstDirRemoved
+ MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0
+ InstDirRemoved:
+
+ IfFileExists "$SMPROGRAMS\Traffic Info demo" 0 ProgramsDirRemoved
+ MessageBox MB_OK "Note: $SMPROGRAMS\Traffic Info demo could not be removed!" IDOK 0
+ ProgramsDirRemoved:
+
+SectionEnd
+
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfoBackground.bmp b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfoBackground.bmp
new file mode 100755
index 0000000..a0bfd93
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfoBackground.bmp
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo_32x32.ico b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo_32x32.ico
new file mode 100755
index 0000000..c0000e8
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/TrafficInfo_32x32.ico
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/genivi_chrome_1_transparent.png b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/genivi_chrome_1_transparent.png
new file mode 100755
index 0000000..4594235
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/genivi_chrome_1_transparent.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/notify.wav b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/notify.wav
new file mode 100755
index 0000000..726bc0d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/notify.wav
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/road-smaller.png b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/road-smaller.png
new file mode 100755
index 0000000..a45356a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/road-smaller.png
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/road.jpg b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/road.jpg
new file mode 100755
index 0000000..0693336
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/nsis/road.jpg
Binary files differ
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/pom.xml b/src/traffic-incidents-service/org.genivi.trafficinfo/pom.xml
new file mode 100755
index 0000000..3642b63
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Information main project</name>
+ <description>This project the main part of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-cli-sqlite-with-dependencies</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map-sqlite-with-dependencies</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidentfeed</groupId>
+ <artifactId>trafficincidentfeed-trafficincident-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficinfo.pocmain.TrafficIncidentsServicePocMain</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/resources/Traffic Info demo.sh b/src/traffic-incidents-service/org.genivi.trafficinfo/resources/Traffic Info demo.sh
new file mode 100755
index 0000000..f380b27
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/resources/Traffic Info demo.sh
@@ -0,0 +1 @@
+java -jar org-genivi-trafficinfo-1.0-SNAPSHOT.jar \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationData.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationData.java
new file mode 100755
index 0000000..bf59643
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationData.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.locref.decoder;
+
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+
+public class LocationData {
+ private Location location;
+ private LocationInfo locationInfo;
+
+ public LocationData(Location location, LocationInfo locationInfo) {
+ super();
+ this.location = location;
+ this.locationInfo = locationInfo;
+ }
+
+ public Location getLocation() {
+ return location;
+ }
+
+ public LocationInfo getLocationInfo() {
+ return locationInfo;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationReferenceDecoder.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationReferenceDecoder.java
new file mode 100755
index 0000000..abd4c81
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/LocationReferenceDecoder.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.locref.decoder;
+
+
+
+public interface LocationReferenceDecoder {
+
+ /**
+ * Set the language.
+ * @param languageCode The language to be used.
+ * @param countryCode The country specific variant for the language to be used.
+ * <!-- end-model-doc -->
+ * @model
+ * @generated
+ */
+ public void setLanguage(String languageCode, String countryCode);
+
+ public LocationData decode(Object locationReference);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/openlr/OpenLRDecoder.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/openlr/OpenLRDecoder.java
new file mode 100755
index 0000000..c02b313
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/decoder/openlr/OpenLRDecoder.java
@@ -0,0 +1,359 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.locref.decoder.openlr;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import openlr.OpenLRRuntimeException;
+import openlr.binary.ByteArray;
+import openlr.binary.OpenLRBinaryRuntimeException;
+import openlr.decoder.OpenLRDecoderRuntimeException;
+import openlr.decoder.properties.generated.OpenLRDecoderProperties;
+import openlr.map.Line;
+import openlr.map.MapDatabase;
+import openlr.map.Node;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.Coordinate;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationFactory;
+import org.genivi.location.LocationInfo;
+import org.genivi.locref.decoder.LocationData;
+import org.genivi.locref.decoder.LocationReferenceDecoder;
+
+public class OpenLRDecoder implements LocationReferenceDecoder {
+ private final static Logger LOGGER = Logger.getLogger(OpenLRDecoder.class.getName());
+ private static final LocationFactory LOCATION_FACTORY = LocationFactory.eINSTANCE;
+ private static final CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+
+ private static final String DEFAULT_LANGUAGE = "nld";
+ private static final String DEFAULT_COUNTRY = null;
+
+ /** The Constant DECODER_PROPERTIES_FILE. */
+ private static final String DECODER_PROPERTIES_FILE = "/OpenLR-Decoder-Properties.xml";
+
+ private static Map<String, String> languageMap = new HashMap<String, String>();
+ private static Map<String, String> countryMap = new HashMap<String, String>();
+
+ private MapDatabase mapDataBase;
+ private OpenLRDecoderProperties openLRDecoderProperties;
+ private String languageCode = DEFAULT_LANGUAGE;
+ private String countryCode = DEFAULT_COUNTRY;
+ private Locale locale;
+
+ static {
+ languageMap.put("deu", "de");
+ languageMap.put("eng", "en");
+ languageMap.put("fra", "fr");
+ languageMap.put("nld", "nl");
+
+ countryMap.put("nld", "NL");
+ countryMap.put("gbr", "GB");
+ countryMap.put("usa", "US");
+ countryMap.put("fra", "FR");
+ countryMap.put("deu", "DE");
+ }
+
+ public OpenLRDecoder(MapDatabase mapDataBase) {
+ this.mapDataBase = mapDataBase;
+
+ InputStream is = null;
+ is = getClass().getResourceAsStream(DECODER_PROPERTIES_FILE);
+ try {
+ openLRDecoderProperties = openlr.decoder.properties.OpenLRPropertiesReader.loadPropertiesFile(is);
+ } catch (OpenLRDecoderRuntimeException e) {
+ throw new RuntimeException("Parsing of decoder properties failed!");
+ }
+
+ handleLanguageChange();
+ }
+
+ @Override
+ public void setLanguage(String languageCode, String countryCode) {
+ LOGGER.fine("=> languageCode = " + languageCode + ", countryCode = " + countryCode);
+ this.languageCode = languageCode;
+ this.countryCode = countryCode;
+
+ handleLanguageChange();
+ }
+
+ private void handleLanguageChange() {
+ String twoCharLanguageCode = languageMap.get(languageCode);
+ String twoCharCountryCode = null;
+ if (countryCode != null) {
+ twoCharCountryCode = countryMap.get(countryCode);
+ }
+
+ if (twoCharCountryCode != null) {
+ locale = new Locale(twoCharLanguageCode, twoCharCountryCode);
+ } else {
+ locale = new Locale(twoCharLanguageCode);
+ }
+ LOGGER.fine("locale = " + locale.getDisplayName());
+ }
+
+ @Override
+ public LocationData decode(Object locationReference) {
+ if (! (locationReference instanceof byte[])) {
+ throw new IllegalArgumentException("Wrong class for locationReference (not byte[])");
+ }
+
+ openlr.LocationReference openLrLocationReference = null;
+ ByteArray ba = new ByteArray((byte[]) locationReference);
+ try {
+ openLrLocationReference = new openlr.binary.impl.LocationReferenceBinaryImpl("", ba);
+ } catch (OpenLRBinaryRuntimeException e) {
+ e.printStackTrace();
+ }
+
+ openlr.Location openlrLocation = null; // Decoding result
+ Location location = null; // Decoding result in GENIVI format
+ LocationInfo locationInfo = null; // Location info related to location
+
+ try {
+ openlrLocation = openlr.decoder.OpenLRDecoder.decode(openLRDecoderProperties, openLrLocationReference, mapDataBase);
+ } catch (OpenLRRuntimeException e) {
+ e.printStackTrace();
+ }
+
+ switch (openlrLocation.getLocationType()) {
+ case LINE_LOCATION:
+ LinearLocation linearLocation = LOCATION_FACTORY.createLinearLocation();
+ List<Long> segments = linearLocation.getSegments();
+
+ List<? extends Line> openlrMapLines = openlrLocation.getLocationLines();
+ for (Line openlrMapLine: openlrMapLines) {
+ segments.add(openlrMapLine.getID());
+ }
+ linearLocation.setPositiveOffset(openlrLocation.getPositiveOffset());
+ linearLocation.setNegativeOffset(openlrLocation.getNegativeOffset());
+ LOGGER.fine("Positive Offset = " + linearLocation.getPositiveOffset() + ", Negative Offset = " + linearLocation.getNegativeOffset());
+
+ location = linearLocation;
+ locationInfo = getLinearLocationInfo(linearLocation);
+ break;
+
+ case GEO_COORDINATES:
+ case POI_WITH_ACCESS_POINT:
+ case POINT_ALONG_LINE:
+ case UNKNOWN:
+ // TODO PRIO9: FULL_IMPL Implement other location types (and error handling for illegal types).
+ throw new IllegalArgumentException("Unsupported location type: " + openlrLocation.getLocationType());
+ }
+
+ return new LocationData(location, locationInfo);
+ }
+
+
+ private LocationInfo getLinearLocationInfo(LinearLocation linearLocation) {
+ LinearLocationInfo locationInfo = LOCATION_FACTORY.createLinearLocationInfo();
+
+ EList<Long> segmentIds = linearLocation.getSegments();
+ if (!segmentIds.isEmpty()) {
+ // set fromLocationName to name of first line connected to first node, with a different name.
+ Long firstSegmentId = segmentIds.get(0);
+ Line firstLine = mapDataBase.getLine(firstSegmentId);
+ String firstLineName = getStreetName(firstLine);
+ LOGGER.fine("firstLineName = " + firstLineName);
+ locationInfo.setName(firstLineName);
+
+ LOGGER.fine("Going to handle PrevLines ");
+ Iterator<? extends Line> prevLines = firstLine.getPrevLines();
+ while (prevLines.hasNext()) {
+ Line prevLine = prevLines.next();
+ String fromName = getStreetName(prevLine);
+ LOGGER.fine("PrevLine: " + fromName);
+ if (!fromName.equals(firstLineName)) {
+ LOGGER.fine("fromName found: " + fromName);
+ locationInfo.setFromLocationName(fromName);
+ break;
+ } else {
+ LOGGER.fine("skipping name, name equals firstLineName: " + fromName);
+ }
+ }
+
+ // set toLocationName to name of first line connected to last node, with a different name.
+ Long lastSegmentId = segmentIds.get(segmentIds.size() - 1);
+ Line lastLine = mapDataBase.getLine(lastSegmentId);
+ String lastLineName = getStreetName(lastLine);
+ LOGGER.fine("lastLineName = " + lastLineName);
+
+ LOGGER.fine("Going to handle NextLines ");
+ Iterator<? extends Line> nextLines = lastLine.getNextLines();
+ while (nextLines.hasNext()) {
+ Line nextLine = nextLines.next();
+ String toName = getStreetName(nextLine);
+ if (!toName.equals(lastLineName)) {
+ LOGGER.fine("toName found: " + toName);
+ locationInfo.setToLocationName(toName);
+ break;
+ } else {
+ LOGGER.fine("skipping name, name equals lastLineName: " + toName);
+ }
+ }
+
+ }
+
+ // TODO PRIO9: FULL_IMPL Replace with an implementation for finding parent names in the database.
+ if (locationInfo.getName() != null &&
+ locationInfo.getName().equals("Hogeweide")) {
+ locationInfo.setFromLocationParentName("Amsterdam");
+ locationInfo.setToLocationParentName("Eindhoven");
+ }
+
+ fillCoordinates(linearLocation, locationInfo);
+
+ return locationInfo;
+ }
+
+ private void fillCoordinates(LinearLocation linearLocation,
+ LinearLocationInfo locationInfo) {
+ EList<Long> segmentIds = linearLocation.getSegments();
+ EList<Coordinate> coordinates = locationInfo.getCoordinates();
+
+ if (segmentIds.isEmpty()) {
+ return;
+ }
+
+ int numberOfSegments = segmentIds.size();
+ Coordinate coordinate;
+
+ for (int i = 0; i < numberOfSegments; i++) {
+ Long segmentId = segmentIds.get(i);
+ Line line = mapDataBase.getLine(segmentId);
+
+ if (i == 0) {
+ // calculate start coordinate from start node and positive offset
+ coordinate = calculateCoordinateOnSegment(line.getStartNode(), line.getEndNode(), linearLocation.getPositiveOffset());
+ LOGGER.fine("Start coordinate added: " + coordinate);
+ coordinates.add(coordinate);
+
+ // This is also the main location
+ locationInfo.setMainLocation(EcoreUtil.copy(coordinate));
+ }
+ if (i != numberOfSegments - 1) {
+ coordinate = COMMON_FACTORY.createCoordinate();
+ coordinate.setLatitude(line.getEndNode().getLatitudeDeg());
+ coordinate.setLongitude(line.getEndNode().getLongitudeDeg());
+ LOGGER.fine("Intermediate coordinate added: " + coordinate);
+ coordinates.add(coordinate);
+ } else {
+ // calculate end coordinate from end node and negative offset
+ coordinate = calculateCoordinateOnSegment(line.getEndNode(), line.getStartNode(), linearLocation.getNegativeOffset());
+ LOGGER.fine("End coordinate added: " + coordinate);
+ coordinates.add(coordinate);
+ }
+ }
+ }
+
+ private Coordinate calculateCoordinateOnSegment(Node startNode, Node endNode,
+ long offset) {
+ LOGGER.fine("offset = " + offset);
+ double startLatitude = startNode.getLatitudeDeg();
+ double startLongitude = startNode.getLongitudeDeg();
+ double endLatitude = endNode.getLatitudeDeg();
+ double endLongitude = endNode.getLongitudeDeg();
+ LOGGER.fine("startLatitude = " + startLatitude + ", startLongitude = " + startLongitude);
+ LOGGER.fine("endLatitude = " + endLatitude + ", endLongitude = " + endLongitude);
+
+ double distance = distanceBetweenCoordinates(startLatitude, startLongitude, endLatitude, endLongitude);
+ LOGGER.fine("distance = " + distance);
+
+ double deltaLatitude = endLatitude - startLatitude;
+ double deltaLongitude = endLongitude - startLongitude;
+ LOGGER.fine("deltaLatitude = " + deltaLatitude + ", deltaLongitude = " + deltaLongitude);
+ double latitude = startLatitude + offset / distance * deltaLatitude;
+ double longitude = startLongitude + offset / distance * deltaLongitude;
+ LOGGER.fine("latitude = " + latitude + ", longitude = " + longitude);
+
+ Coordinate coordinate = COMMON_FACTORY.createCoordinate();
+ coordinate.setLatitude(latitude);
+ coordinate.setLongitude(longitude);
+
+ return coordinate;
+ }
+
+ /**
+ * Algorithm taken from:
+ * http://stackoverflow.com/questions/837872/calculate-distance-in-meters-when-you-know-longitude-and-latitude-in-java
+ */
+ private double distanceBetweenCoordinates(double startLatitude,
+ double startLongitude, double endLatitude, double endLongitude) {
+ double earthMeanRadius = 6371009;
+ double dLat = Math.toRadians(endLatitude - startLatitude);
+ double dLng = Math.toRadians(endLongitude - startLongitude);
+ LOGGER.fine("dLat = " + dLat + ", dLng = " + dLng);
+
+ double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
+ Math.cos(Math.toRadians(startLatitude)) * Math.cos(Math.toRadians(endLatitude)) *
+ Math.sin(dLng/2) * Math.sin(dLng/2);
+ double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
+ double dist = earthMeanRadius * c;
+
+ return dist;
+ }
+
+ private String getStreetName(Line line) {
+ Map<Locale, List<String>> names = line.getNames();
+
+ // First check for a name in requested locale
+ List<String> namesForLocale = names.get(locale);
+ if (namesForLocale != null && !namesForLocale.isEmpty()) {
+ LOGGER.fine("Found name in requested locale: " + namesForLocale.get(0));
+ return namesForLocale.get(0);
+ }
+
+ // Next find any name for any locale
+ for (Locale locale: names.keySet()) {
+ LOGGER.fine("Checking for locale: " + locale.getDisplayName());
+ List<String> namesPerLocale = names.get(locale);
+ if (!namesPerLocale.isEmpty()) {
+ LOGGER.fine("Found name in this locale: " + namesPerLocale.get(0));
+ return namesPerLocale.get(0);
+ }
+ }
+
+ return null;
+ }
+
+// /**
+// * Convert a byte array to a human readable string.
+// */
+// private static String toHex(byte[] messageData) {
+// StringBuffer buffer= new StringBuffer("[ ");
+// for (int i = 0; i < messageData.length; i++) {
+// buffer.append(getHex(messageData[i])).append(' ');
+// }
+// buffer.append(']');
+// return buffer.toString();
+// }
+//
+// /**
+// * Convert a byte to a printable format.
+// * @param b
+// * @return
+// */
+// private static String getHex(byte b) {
+// char char0, char1;
+// byte byte1= (byte) (0x0f & (b >> 4));
+// byte byte2= (byte) (0x0f & b);
+// char0 = (char) (byte1 > 9 ? 'a' + byte1 - 10 : '0' + byte1);
+// char1 = (char) (byte2 > 9 ? 'a' + byte2 - 10 : '0' + byte2);
+// return "" + char0 + char1;
+// }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/refimpl/LocationReferenceDecodingHandlerRefImpl.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/refimpl/LocationReferenceDecodingHandlerRefImpl.java
new file mode 100755
index 0000000..9faa59a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/locref/refimpl/LocationReferenceDecodingHandlerRefImpl.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.locref.refimpl;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.locref.LocationReference;
+import org.genivi.locref.LocationReferenceDecodingService;
+import org.genivi.locref.LocationReferenceDecodingServiceListener;
+import org.genivi.locref.decoder.LocationData;
+import org.genivi.locref.decoder.LocationReferenceDecoder;
+
+
+public class LocationReferenceDecodingHandlerRefImpl extends EObjectImpl implements LocationReferenceDecodingService {
+ private final static Logger LOGGER = Logger.getLogger(LocationReferenceDecodingHandlerRefImpl.class.getName());
+
+ private static final String DEFAULT_LANGUAGE = "nld";
+ private static final String DEFAULT_COUNTRY = null;
+
+ private String languageCode = DEFAULT_LANGUAGE;
+ private String countryCode = DEFAULT_COUNTRY;
+ Map<Byte, LocationReferenceDecoder> decoders = new HashMap<>();
+
+
+ public LocationReferenceDecodingHandlerRefImpl() {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ @Override
+ public void setLanguage(String languageCode, String countryCode) {
+ this.languageCode = languageCode;
+ this.countryCode = countryCode;
+ for (LocationReferenceDecoder decoder: decoders.values()) {
+ decoder.setLanguage(languageCode, countryCode);
+ }
+ }
+
+ @Override
+ public void getLanguage(LocationReferenceDecodingServiceListener listener) {
+ listener.getLanguageReply(languageCode, countryCode);
+ }
+
+ public void addDecoder(Byte type, LocationReferenceDecoder decoder) {
+ decoder.setLanguage(languageCode, countryCode);
+ decoders.put(type, decoder);
+ }
+
+ public void removeDecoder(String type) {
+ decoders.remove(type);
+ }
+
+ @Override
+ public void decode(LocationReferenceDecodingServiceListener listener,
+ LocationReference locationReference) {
+ if (locationReference == null) {
+ throw new RuntimeException("LocationReferenceDecodingHandlerRefImpl: locationReference is null");
+ }
+ Byte locationReferenceType = (Byte) (byte) locationReference.getLocationReferenceType();
+ LocationReferenceDecoder decoder = decoders.get(locationReferenceType);
+ if (decoder == null) {
+ throw new RuntimeException("Location reference type \'" +
+ locationReferenceType.toString() + "\' not supported");
+ }
+ Object locationReferenceData = locationReference.getData();
+ LOGGER.info("Decoding location of type: " + locationReferenceType.toString());
+ LocationData locationData = decoder.decode(locationReferenceData);
+
+ listener.decodeReply(locationData.getLocation(), locationData.getLocationInfo());
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsListener.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsListener.java
new file mode 100755
index 0000000..0cd7a81
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsListener.java
@@ -0,0 +1,258 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconSet;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+
+public class DefaultTrafficIncidentsListener extends EObjectImpl implements TrafficIncidentsListener {
+ private final static Logger LOGGER = Logger.getLogger(DefaultTrafficIncidentsListener.class.getName());
+
+ @Override
+ public void getVersionReply(Version version) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getVersionReply ignored!");
+ }
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getLanguageReply ignored!");
+ }
+
+ @Override
+ public void setLanguageReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to setLanguageReply ignored!");
+ }
+
+ @Override
+ public void setTimeFormatReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to setTimeFormatReply ignored!");
+ }
+
+ @Override
+ public void setDateFormatReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to setDateFormatReply ignored!");
+ }
+
+ @Override
+ public void setLengthUnitReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to setLengthUnitReply ignored!");
+ }
+
+ @Override
+ public void setWeightUnitReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to setWeightUnitReply ignored!");
+ }
+
+ @Override
+ public void getApplicabilityReply(String filterExpression) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getApplicabilityReply ignored!");
+ }
+
+ @Override
+ public void setApplicabilityReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to setApplicabilityReply ignored!");
+ }
+
+ @Override
+ public void reserveIconSetIdsReply(EList<Integer> iconSetIds) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to reserveIconSetIdsReply ignored!");
+ }
+
+ @Override
+ public void freeIconSetIdsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to freeIconSetIdsReply ignored!");
+ }
+
+ @Override
+ public void getIconSetsReply(EList<IconSet> iconSets) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getIconSetsReply ignored!");
+ }
+
+ @Override
+ public void addIconSetDefinitionsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addIconSetsDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void removeIconSetDefinitionsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to removeIconSetDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void getIconDefinitionsReply(EList<IconDefinition> iconDefinitions) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getIconDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void addIconDefinitionsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addIconDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void removeIconDefinitionsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addIconDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void reserveCategoryIdsReply(EList<Integer> categoryIds) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to reserveCategoryIdsReply ignored!");
+ }
+
+ @Override
+ public void freeCategoryIdsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to freeCategoryIdsReply ignored!");
+ }
+
+ @Override
+ public void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getCategoryDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void addCategoryDefinitionsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addCategoryDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void removeCategoryDefinitionsReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to removeCategoryDefinitionsReply ignored!");
+ }
+
+ @Override
+ public void getTrafficIncidentIdsReply(EList<Integer> incidentIds) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getTrafficIncidentIdsReply ignored!");
+ }
+
+ @Override
+ public void getTrafficIncidentIdsInAreasReply(EList<Integer> trafficIncidentIds) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getTrafficIncidentIdsInAreasReply ignored!");
+ }
+
+ @Override
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getTrafficIncidentsReply ignored!");
+ }
+
+ @Override
+ public void getTrafficIncidentsFieldsReply(EList<TrafficIncident> trafficIncidents) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getTrafficIncidentsFieldsReply ignored!");
+ }
+
+ @Override
+ public void getTextsReply(EList<String> texts) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to getTextsReply ignored!");
+ }
+
+ @Override
+ public void addTrafficIncidentsStatusListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addTrafficIncidentsStatusListenerReply ignored!");
+ }
+
+ @Override
+ public void removeTrafficIncidentsStatusListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to removeTrafficIncidentsStatusListenerReply ignored!");
+ }
+
+ @Override
+ public void addFeedInformationListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addFeedInformationListenerReply ignored!");
+ }
+
+ @Override
+ public void removeFeedInformationListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to removeFeedInformationListenerReply ignored!");
+ }
+
+ @Override
+ public void addUpdateListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addUpdateListenerReply ignored!");
+ }
+
+ @Override
+ public void removeUpdateListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to removeUpdateListenerReply ignored!");
+ }
+
+ @Override
+ public void addAreasUpdateListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to addAreasUpdateListenerReply ignored!");
+ }
+
+ @Override
+ public void removeAreasUpdateListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to removeAreasUpdateListenerReply ignored!");
+ }
+
+ @Override
+ public void trafficIncidentsStatus(
+ TrafficIncidentFeedStatus trafficIncidentFeedStatus,
+ TrafficIncidentsStatus trafficIncidentsStatus) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to trafficIncidentsStatus ignored!");
+ }
+
+ @Override
+ public void feedInformation(EList<FeedInformation> feedsInformation) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to feedInformation ignored!");
+ }
+
+ @Override
+ public void updates(EList<Integer> unchangedTrafficIncidentIds, EList<Integer> changedTrafficIncidentIds, EList<Integer> newTrafficIncidentIds, EList<Integer> deletedTrafficIncidentIds) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to updates ignored!");
+ }
+
+ @Override
+ public void updatesInAreas(EList<RectangularArea> areas) {
+ // No action. Override this method if action is needed.
+ LOGGER.severe("Call to updatesInAreas ignored!");
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsUpdatesListener.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsUpdatesListener.java
new file mode 100755
index 0000000..3595cbd
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/DefaultTrafficIncidentsUpdatesListener.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.common.Version;
+
+public class DefaultTrafficIncidentsUpdatesListener extends EObjectImpl implements TrafficIncidentFeedListener {
+ private final static Logger LOGGER = Logger.getLogger(DefaultTrafficIncidentsUpdatesListener.class.getName());
+
+ static {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ @Override
+ public void getVersionReply(Version version) {
+ // No action. Override this method if action is needed.
+ LOGGER.info("Call to getVersionReply ignored!");
+ }
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // No action. Override this method if action is needed.
+ LOGGER.info("Call to getLanguageReply ignored!");
+ }
+
+ @Override
+ public void registerFeedReply(int feedId) {
+ // No action. Override this method if action is needed.
+ LOGGER.info("Call to registerFeedReply ignored!");
+ }
+
+ @Override
+ public void addLanguageListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.info("Call to addLanguageListenerReply ignored!");
+ }
+
+ @Override
+ public void removeLanguageListenerReply() {
+ // No action. Override this method if action is needed.
+ LOGGER.info("Call to removeLanguageListenerReply ignored!");
+ }
+
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/AreasFilter.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/AreasFilter.java
new file mode 100755
index 0000000..0646c82
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/AreasFilter.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.common.RectangularArea;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+
+public class AreasFilter extends Filter {
+ private final static Logger LOGGER = Logger.getLogger(ExpressionFilter.class.getName());
+
+ private List<RectangularArea> areas;
+
+ public AreasFilter(List<RectangularArea> areas) {
+ super();
+
+ LOGGER.setLevel(Level.SEVERE);
+
+ this.areas = areas;
+ }
+
+ @Override
+ public boolean filter(EObject object) {
+ LOGGER.info("=>");
+
+ boolean returnValue = false;
+
+ if (!(object instanceof TrafficIncident)) {
+ LOGGER.info("<= Object is not a TrafficIncident" + returnValue);
+ return returnValue;
+ }
+
+ TrafficIncident trafficIncident = (TrafficIncident) object;
+ RectangularArea incidentArea = trafficIncident.getLocationBoundingBox();
+
+ for (RectangularArea area: areas) {
+ if (!RectangularAreaUtils.areaIsOutsideArea(area, incidentArea)) {
+ returnValue = true;
+ break;
+ }
+ }
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpirationHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpirationHandler.java
new file mode 100755
index 0000000..ccd894d
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpirationHandler.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.Date;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+public class ExpirationHandler extends Thread {
+ TrafficIncidentsService trafficInfoStore;
+
+ public ExpirationHandler(TrafficIncidentsService trafficInfoStore) {
+ this.trafficInfoStore = trafficInfoStore;
+ }
+
+ public void run() {
+ for ( ; ; ) {
+ try {
+ sleep(1000 * 60);
+ } catch (InterruptedException e) {
+ }
+
+ cancelExpiredMessages();
+ }
+ }
+
+ private void cancelExpiredMessages() {
+ Date currentTime = new Date();
+ EList<String> cancelList = new BasicEList<>();
+
+ for (ManagedTrafficIncident managedTrafficIncident: trafficInfoStore.getManagedEvents()) {
+ Date expirationTime = managedTrafficIncident.getxTrafficIncident().getExpirationTime();
+ if (expirationTime != null && currentTime.after(expirationTime)) {
+ cancelList.add(managedTrafficIncident.getxTrafficIncident().getTrafficIncidentId());
+ }
+ }
+
+ if (cancelList.size() != 0) {
+ trafficInfoStore.updateIncidents(-1, cancelList, null);
+ }
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpressionFilter.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpressionFilter.java
new file mode 100755
index 0000000..7659b07
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ExpressionFilter.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.booleanexpr.BooleanExpression;
+
+public class ExpressionFilter extends Filter {
+ private final static Logger LOGGER = Logger.getLogger(ExpressionFilter.class.getName());
+
+ private BooleanExpression expression;
+
+ public ExpressionFilter(BooleanExpression expression) {
+ super();
+
+ LOGGER.setLevel(Level.SEVERE);
+
+ this.expression = expression;
+ }
+
+ @Override
+ public boolean filter(EObject object) {
+ LOGGER.info("=> Object = " + object.toString());
+ LOGGER.info("=> FilterExpression = " + expression.toString());
+
+ boolean returnValue = expression.evaluate(object);
+
+ LOGGER.info("<= " + returnValue);
+
+ return returnValue;
+ }
+
+ public BooleanExpression getExpression() {
+ return expression;
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java
new file mode 100755
index 0000000..6827f22
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/Filter.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.Collection;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+public abstract class Filter {
+ private final static Logger LOGGER = Logger.getLogger(Filter.class.getName());
+
+ public Filter() {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ public abstract boolean filter(EObject object);
+
+ public static EList<EObject> applyFilters(Collection<? extends EObject> values, EList<Filter> filters) {
+ EList<EObject> filteredList = new BasicEList<EObject>(values);
+ for (Filter filter: filters) {
+ filteredList = applyAcceptFilter(filteredList, filter);
+ }
+ return filteredList;
+ }
+
+ public static <T extends EObject> EList<T> applyAcceptFilter(Collection<T> values, Filter filter) {
+ LOGGER.info("=>");
+ EList<T> filteredList = new BasicEList<T>();
+
+ for (T object: values) {
+ if (filter.filter(object)) {
+ LOGGER.info("Adding object to filteredList: " + object);
+ filteredList.add(object);
+ } else {
+ LOGGER.info("Object NOT added to filteredList: " + object);
+ }
+ }
+
+ LOGGER.info("<=");
+ return filteredList;
+ }
+
+ public static <T extends EObject> EList<T> applyRejectFilter(Collection<T> values, Filter filter) {
+ LOGGER.info("=>");
+ EList<T> filteredList = new BasicEList<T>();
+
+ for (T object: values) {
+ if (!filter.filter(object)) {
+ LOGGER.info("Adding object to filteredList: " + object);
+ filteredList.add(object);
+ } else {
+ LOGGER.info("Object NOT added to filteredList: " + object);
+ }
+ }
+
+ return filteredList;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/LocationReferenceHandler.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/LocationReferenceHandler.java
new file mode 100755
index 0000000..21be7c2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/LocationReferenceHandler.java
@@ -0,0 +1,193 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.Coordinate;
+import org.genivi.common.RectangularArea;
+import org.genivi.location.AreaLocationInfo;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+import org.genivi.location.PointLocationInfo;
+import org.genivi.locref.LocationReferenceDecodingServiceListener;
+import org.genivi.locref.refimpl.LocationReferenceDecodingHandlerRefImpl;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+
+
+public class LocationReferenceHandler {
+ private final static Logger LOGGER = Logger.getLogger(LocationReferenceHandler.class.getName());
+ private final static CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+
+ private TrafficIncidentsService trafficIncidentsService;
+ private LocationReferenceDecodingHandlerRefImpl locationReferencDecodingHandler;
+ private List<ManagedTrafficIncident> incidents;
+ private boolean allDecodingRequestsSent = false;
+ private boolean trafficIncidentsServiceNotified = true;
+ private List<LocationDecodingHandlerListener> locationDecodingHandlerListeners = new ArrayList<LocationDecodingHandlerListener>();
+
+ public LocationReferenceHandler(TrafficIncidentsService trafficIncidentsService,
+ LocationReferenceDecodingHandlerRefImpl locationReferencDecodingHandler) {
+ LOGGER.setLevel(Level.SEVERE);
+
+ this.trafficIncidentsService = trafficIncidentsService;
+ this.locationReferencDecodingHandler = locationReferencDecodingHandler;
+ }
+
+ public void setLanguage(String languageCode, String countryCode) {
+ locationReferencDecodingHandler.setLanguage(languageCode, countryCode);
+ }
+
+ public void handleLocationReferences(List<ManagedTrafficIncident> incidents) {
+ LOGGER.info("Going to handle location references.");
+ this.incidents = incidents;
+ LocationDecodingHandlerListener locationDecodingHandlerListener;
+
+ allDecodingRequestsSent = false;
+ trafficIncidentsServiceNotified = false;
+
+ for (ManagedTrafficIncident managedTrafficIncident: incidents) {
+ LOGGER.info("Handling managedTrafficIncident: " + managedTrafficIncident.getxTrafficIncident().getTrafficIncidentId());
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident = managedTrafficIncident.getxTrafficIncident();
+ TrafficIncident trafficIncident = managedTrafficIncident.getTrafficIncident();
+
+ // Check for LocationReference to be decoded.
+ if (xTrafficIncident.isSetLocationReference()) {
+ LOGGER.info("Location to be dereferenced.");
+ locationDecodingHandlerListener = new LocationDecodingHandlerListener(this, trafficIncident);
+ locationDecodingHandlerListeners.add(locationDecodingHandlerListener);
+
+ locationReferencDecodingHandler.decode(locationDecodingHandlerListener, xTrafficIncident.getLocationReference());
+ }
+
+ // Check for VehicleRelatedRestrictions - RestrictionLocations to be decoded.
+ for (int applicabilityIndex = 0; applicabilityIndex < xTrafficIncident.getApplicability().size(); applicabilityIndex++) {
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability xApplicability = xTrafficIncident.getApplicability().get(applicabilityIndex);
+ Applicability applicability = trafficIncident.getApplicability().get(applicabilityIndex);
+ for (int restrictionIndex = 0; restrictionIndex < xApplicability.getVehicleRelatedRestrictions().size(); restrictionIndex++) {
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction xVehicleRelatedRestriction = xApplicability.getVehicleRelatedRestrictions().get(restrictionIndex);
+ VehicleRelatedRestriction vehicleRelatedRestriction = applicability.getVehicleRelatedRestrictions().get(restrictionIndex);
+
+ if (xVehicleRelatedRestriction.isSetRestrictionLocationReference()) {
+ LOGGER.info("Restriction Location to be dereferenced.");
+ locationDecodingHandlerListener = new LocationDecodingHandlerListener(this, vehicleRelatedRestriction);
+ locationDecodingHandlerListeners.add(locationDecodingHandlerListener);
+
+ locationReferencDecodingHandler.decode(locationDecodingHandlerListener, xVehicleRelatedRestriction.getRestrictionLocationReference());
+ }
+ }
+ }
+ }
+ allDecodingRequestsSent = true;
+
+ handleLocationDecoded(null);
+ }
+
+ synchronized void handleLocationDecoded(LocationDecodingHandlerListener locationDecodingHandlerListener) {
+ if (locationDecodingHandlerListener != null) {
+ locationDecodingHandlerListeners.remove(locationDecodingHandlerListener);
+ }
+
+ if (allDecodingRequestsSent && locationDecodingHandlerListeners.isEmpty() &&
+ !trafficIncidentsServiceNotified) {
+ trafficIncidentsServiceNotified = true;
+ LOGGER.info("Ready with handling location references. Inform the TrafficIncidentsService that decoding the locations is done.");
+ trafficIncidentsService.locationsDereferenced(incidents);
+ }
+ }
+
+ public RectangularArea calculateBoundingBox(LocationInfo locationInfo) {
+ Coordinate coordinate = locationInfo.getMainLocation();
+ double minLatitude = coordinate.getLatitude();
+ double maxLatitude = minLatitude;
+ double minLongitude = coordinate.getLongitude();
+ double maxLongitude = minLongitude;
+
+ if (locationInfo instanceof LinearLocationInfo) {
+ LinearLocationInfo linearLocationInfo = (LinearLocationInfo) locationInfo;
+
+ for (Coordinate loopCoordinate: linearLocationInfo.getCoordinates()) {
+ if (loopCoordinate.getLatitude() < minLatitude) {
+ minLatitude = loopCoordinate.getLatitude();
+ }
+ if (loopCoordinate.getLatitude() > maxLatitude) {
+ maxLatitude = loopCoordinate.getLatitude();
+ }
+ if (loopCoordinate.getLongitude() < minLongitude) {
+ minLongitude = loopCoordinate.getLongitude();
+ }
+ if (loopCoordinate.getLongitude() > maxLongitude) {
+ maxLongitude = loopCoordinate.getLongitude();
+ }
+ }
+ } else if (locationInfo instanceof PointLocationInfo) {
+ // Nothing else to do
+ } else if (locationInfo instanceof AreaLocationInfo) {
+ // TODO PRIO9: FULL_IMPL Implement bounding box for area locations.
+ }
+
+ Coordinate bottomLeft = COMMON_FACTORY.createCoordinate();
+ bottomLeft.setAltitude(0);
+ bottomLeft.setLongitude(minLongitude);
+ bottomLeft.setLatitude(minLatitude);
+
+ Coordinate topRight = COMMON_FACTORY.createCoordinate();
+ topRight.setAltitude(0);
+ topRight.setLongitude(maxLongitude);
+ topRight.setLatitude(maxLatitude);
+
+ RectangularArea boundingBox = COMMON_FACTORY.createRectangularArea();
+ boundingBox.setBottomLeft(bottomLeft);
+ boundingBox.setTopRight(topRight);
+
+ return boundingBox;
+ }
+
+ class LocationDecodingHandlerListener extends EObjectImpl implements LocationReferenceDecodingServiceListener {
+ private LocationReferenceHandler locationReferenceHandler;
+ private Object targetLocationObject;
+
+ LocationDecodingHandlerListener(LocationReferenceHandler locationReferenceHandler, Object targetLocationObject) {
+ this.locationReferenceHandler = locationReferenceHandler;
+ this.targetLocationObject = targetLocationObject;
+ }
+
+ @Override
+ public void decodeReply(Location location, LocationInfo locationInfo) {
+ if (targetLocationObject instanceof TrafficIncident) {
+ TrafficIncident managedTrafficIncident = (TrafficIncident) targetLocationObject;
+ if (location != null) {
+ managedTrafficIncident.setLocation(location);
+ }
+ if (locationInfo != null) {
+ managedTrafficIncident.setLocationInfo(locationInfo);
+ managedTrafficIncident.setLocationBoundingBox(calculateBoundingBox(locationInfo));
+ }
+ } else if (targetLocationObject instanceof VehicleRelatedRestriction) {
+ VehicleRelatedRestriction managedVehicleRelatedRestriction = (VehicleRelatedRestriction) targetLocationObject;
+ managedVehicleRelatedRestriction.setRestrictionLocation(location);
+ }
+
+ locationReferenceHandler.handleLocationDecoded(this);
+ }
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // no action.
+ }
+
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ManagedTrafficIncident.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ManagedTrafficIncident.java
new file mode 100755
index 0000000..01be3ba
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/ManagedTrafficIncident.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.Date;
+
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+
+public class ManagedTrafficIncident {
+ private org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident;
+ private TrafficIncident trafficIncident;
+ private Date receivedAt;
+
+ public ManagedTrafficIncident(
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident,
+ TrafficIncident trafficIncident,
+ Date receivedAt) {
+ super();
+ this.xTrafficIncident = xTrafficIncident;
+ this.trafficIncident = trafficIncident;
+ this.receivedAt = receivedAt;
+ }
+
+ public org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident getxTrafficIncident() {
+ return xTrafficIncident;
+ }
+
+ public TrafficIncident getTrafficIncident() {
+ return trafficIncident;
+ }
+
+ public Date getReceivedAt() {
+ return receivedAt;
+ }
+} \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/RectangularAreaUtils.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/RectangularAreaUtils.java
new file mode 100755
index 0000000..14d25e2
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/RectangularAreaUtils.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import org.genivi.common.RectangularArea;
+
+
+public class RectangularAreaUtils {
+
+ /**
+ * Determine if one area (area2) is completely outside of another area (area1).
+ *
+ * @param area1
+ * @param area2
+ * @return true if area2 is completely outside of area1.
+ */
+ public static boolean areaIsOutsideArea(RectangularArea rectangle1, RectangularArea rectangle2) {
+ boolean leftOfOne =
+ rectangle2.getTopRight().getLongitude() < rectangle1.getBottomLeft().getLongitude();
+ boolean rightOfOne =
+ rectangle2.getBottomLeft().getLongitude() > rectangle1.getTopRight().getLongitude();
+ boolean aboveOne =
+ rectangle2.getBottomLeft().getLatitude() > rectangle1.getTopRight().getLatitude();
+ boolean belowOne =
+ rectangle2.getTopRight().getLatitude() < rectangle1.getBottomLeft().getLatitude();
+ return (leftOfOne || rightOfOne || aboveOne || belowOne);
+ }
+
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentConvertor.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentConvertor.java
new file mode 100755
index 0000000..020b8be
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentConvertor.java
@@ -0,0 +1,272 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.genivi.common.LocalizedString;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+
+public class TrafficIncidentConvertor {
+ private static final trafficincidentFactory TI_FACTORY = trafficincidentFactory.eINSTANCE;
+
+ public static TrafficIncident xTrafficIncident2TrafficIncident(
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident,
+ String languageCode, String languageCountryCode) {
+ TrafficIncident trafficIncident = TI_FACTORY.createTrafficIncident();
+
+ // trafficIncidentId: not available in xTrafficIncident.
+
+ // effectCode
+ if (xTrafficIncident.isSetEffectCode()) {
+ trafficIncident.setEffectCode(xTrafficIncident.getEffectCode());
+ }
+
+ // effectText: not available in xTrafficIncident.
+
+ // startTime
+ if (xTrafficIncident.isSetStartTime()) {
+ Date startDate = new Date(xTrafficIncident.getStartTime().getTime());
+ trafficIncident.setStartTime(startDate);
+ }
+
+ // stopTime
+ if (xTrafficIncident.isSetStopTime()) {
+ Date stopDate = new Date(xTrafficIncident.getStopTime().getTime());
+ trafficIncident.setStopTime(stopDate);
+ }
+
+ // tendency
+ if (xTrafficIncident.isSetTendency()) {
+ trafficIncident.setTendency(xTrafficIncident.getTendency());
+ }
+
+ // tendencyText:; not available in xTrafficIncident.
+
+ // lengthAffected
+ if (xTrafficIncident.isSetLengthAffected()) {
+ trafficIncident.setLengthAffected(xTrafficIncident.getLengthAffected());
+ }
+
+ // averageSpeedAbsolute
+ if (xTrafficIncident.isSetAverageSpeedAbsolute()) {
+ trafficIncident.setAverageSpeedAbsolute(xTrafficIncident.getAverageSpeedAbsolute());
+ }
+
+ // delay
+ if (xTrafficIncident.isSetDelay()) {
+ trafficIncident.setDelay(xTrafficIncident.getDelay());
+ }
+
+ // segmentSpeedLimit
+ if (xTrafficIncident.isSetSegmentSpeedLimit()) {
+ trafficIncident.setSegmentSpeedLimit(xTrafficIncident.getSegmentSpeedLimit());
+ }
+
+ // expectedSpeedAbsolute
+ if (xTrafficIncident.isSetExpectedSpeedAbsolute()) {
+ trafficIncident.setExpectedSpeedAbsolute(xTrafficIncident.getExpectedSpeedAbsolute());
+ }
+
+ // locationInfo: not available in xTrafficIncident.
+
+ // causeTexts: not available in xTrafficIncident.
+
+ // applicabilityTexts: not available in xTrafficIncident.
+
+ // adviceTexts: not available in xTrafficIncident.
+
+ // categoryIds: not available in xTrafficIncident.
+
+ // locationInfo: not available in xTrafficIncident.
+
+ // causes
+ for (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause xCause: xTrafficIncident.getCauses()) {
+ trafficIncident.getCauses().add(xCause2Cause(xCause, languageCode, languageCountryCode));
+ }
+
+ // advices
+ for (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice xAdvice: xTrafficIncident.getAdvices()) {
+ trafficIncident.getAdvices().add(xAdvice2Advice(xAdvice, languageCode, languageCountryCode));
+ }
+
+ // applicability
+ for (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability xApplicability: xTrafficIncident.getApplicability()) {
+ trafficIncident.getApplicability().add(xApplicability2Applicability(xApplicability));
+ }
+
+ // location: not available in xTrafficIncident.
+
+ // locationBoundingBox: not available in xTrafficIncident.
+
+ return trafficIncident;
+ }
+
+ private static Cause xCause2Cause(org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause xCause, String languageCode, String languageCountryCode) {
+ Cause cause;
+
+ if (xCause instanceof org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause) {
+ cause = xDirectCause2DirectCause((org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause) xCause, languageCode, languageCountryCode);
+ } else {
+ cause = xLinkedCause2LinkedCause((org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause) xCause);
+ }
+ cause.setMainCause(xCause.getMainCause());
+
+ return cause;
+ }
+
+ private static DirectCause xDirectCause2DirectCause(org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause xDirectCause,
+ String languageCode, String languageCountryCode) {
+ DirectCause directCause = TI_FACTORY.createDirectCause();
+
+ // warningLevel
+ if (xDirectCause.isSetWarningLevel()) {
+ directCause.setWarningLevel(xDirectCause.getWarningLevel());
+ }
+
+ // unverifiedInformation
+ directCause.setUnverifiedInformation(xDirectCause.isUnverifiedInformation());
+
+ // subCause
+ if (xDirectCause.isSetSubCause()) {
+ directCause.setSubCause(xDirectCause.getSubCause());
+ }
+
+ // lengthAffected
+ if (xDirectCause.isSetLengthAffected()) {
+ directCause.setLengthAffected(xDirectCause.getLengthAffected());
+ }
+
+ // freeText
+ if (xDirectCause.getFreeText().size() != 0) {
+ directCause.setFreeText(getTextForSelectedLanguage(xDirectCause.getFreeText(), languageCode, languageCountryCode));
+ }
+
+ // laneRestrictions
+ if (xDirectCause.isSetLaneRestrictions()) {
+ directCause.setLaneRestrictions(xLaneRestrictions2LaneRestrictions(xDirectCause.getLaneRestrictions()));
+ }
+
+ // causeOffset
+ if (xDirectCause.isSetCauseOffset()) {
+ directCause.setCauseOffset(xDirectCause.getCauseOffset());
+ }
+
+ return directCause;
+ }
+
+ private static LaneRestrictions xLaneRestrictions2LaneRestrictions(
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions xLaneRestrictions) {
+ LaneRestrictions laneRestrictions = TI_FACTORY.createLaneRestrictions();
+
+ // laneRestrictionType
+ laneRestrictions.setLaneRestrictionType(xLaneRestrictions.getLaneRestrictionType());
+
+ // numberOfLanes
+ if (xLaneRestrictions.isSetNumberOfLanes()) {
+ laneRestrictions.setNumberOfLanes(xLaneRestrictions.getNumberOfLanes());
+ }
+
+ return laneRestrictions;
+ }
+
+ private static LinkedCause xLinkedCause2LinkedCause(org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause xLinkedCause) {
+ LinkedCause linkedCause = TI_FACTORY.createLinkedCause();
+
+ // causeTrafficIncidentId: not available in xTrafficIncident.
+
+ return linkedCause;
+ }
+
+ private static Advice xAdvice2Advice(org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice xAdvice, String languageCode, String languageCountryCode) {
+ Advice advice = TI_FACTORY.createAdvice();
+
+ // mainAdvice
+ advice.setMainAdvice(xAdvice.getMainAdvice());
+
+ // subAdvice
+ if (xAdvice.isSetSubAdvice()) {
+ advice.setSubAdvice(xAdvice.getSubAdvice());
+ }
+
+ // freeText
+ if (xAdvice.getFreeText().size() != 0) {
+ advice.setFreeText(getTextForSelectedLanguage(xAdvice.getFreeText(), languageCode, languageCountryCode));
+ }
+
+ // applicability
+ for (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability xApplicability: xAdvice.getApplicability()) {
+ advice.getApplicability().add(xApplicability2Applicability(xApplicability));
+ }
+
+ return advice;
+ }
+
+ private static Applicability xApplicability2Applicability(org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability xApplicability) {
+ Applicability applicability = TI_FACTORY.createApplicability();
+
+ // vehicleType
+ applicability.setVehicleType(xApplicability.getVehicleType());
+
+ // vehicleRelatedRestrictions
+ for (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction xVehicleRelatedRestriction: xApplicability.getVehicleRelatedRestrictions()) {
+ applicability.getVehicleRelatedRestrictions().add(xVehicleRelatedRestriction2VehicleRelatedRestriction(xVehicleRelatedRestriction));
+ }
+
+ return applicability;
+ }
+
+ private static VehicleRelatedRestriction xVehicleRelatedRestriction2VehicleRelatedRestriction(
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction xVehicleRelatedRestriction) {
+ VehicleRelatedRestriction vehicleRelatedRestriction = TI_FACTORY.createVehicleRelatedRestriction();
+
+ // restrictionType
+ vehicleRelatedRestriction.setRestrictionType(xVehicleRelatedRestriction.getRestrictionType());
+
+ // restrictionValue
+ if (xVehicleRelatedRestriction.isSetRestrictionValue()) {
+ vehicleRelatedRestriction.setRestrictionValue(xVehicleRelatedRestriction.getRestrictionValue());
+ }
+
+ // restrictionLocation: not available in xTrafficIncident.
+
+ return vehicleRelatedRestriction;
+ }
+
+ public static String getTextForSelectedLanguage(List<LocalizedString> localizedStrings, String languageCode, String languageCountryCode) {
+ // if languageCountryCode is set, try to find a match on language and country
+ if (languageCountryCode != null) {
+ for (LocalizedString localizedString: localizedStrings) {
+ if (localizedString.getLanguageCode().equals(languageCode) &&
+ localizedString.isSetCountryCode() &&
+ localizedString.getCountryCode().equals(languageCountryCode)) {
+ return localizedString.getString();
+ }
+ }
+ }
+
+ // try to find a match language only
+ for (LocalizedString localizedString: localizedStrings) {
+ if (localizedString.getLanguageCode().equals(languageCode)) {
+ return localizedString.getString();
+ }
+ }
+
+ // just take the first one
+ return localizedStrings.get(0).getString();
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentFilterUtils.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentFilterUtils.java
new file mode 100755
index 0000000..ea5a88f
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentFilterUtils.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.DownCastPredicate;
+import org.genivi.booleanexpr.FilterexprFactory;
+import org.genivi.booleanexpr.InOperator;
+import org.genivi.booleanexpr.InPredicate;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.Literal;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+public class TrafficIncidentFilterUtils {
+ private final static FilterexprFactory FILTER_EXPR_FACTORY = FilterexprFactory.eINSTANCE;
+ private final static trafficincidentPackage TRAFFIC_INCIDENT_PACKAGE = trafficincidentPackage.eINSTANCE;
+
+ public static Filter createWarningLevelFilter(EList<WarningLevel> warningLevels) {
+
+ // In Predicate: warningLevel IN warningLevels
+ InPredicate warningLevelAttributeCheck = FILTER_EXPR_FACTORY.createInPredicate();
+ ClassAttribute warningLevelAttribute = FILTER_EXPR_FACTORY.createClassAttribute();
+ warningLevelAttribute.setAttributeName(TRAFFIC_INCIDENT_PACKAGE.getDirectCause_WarningLevel().getName());
+ warningLevelAttributeCheck.setAttribute(warningLevelAttribute);
+ warningLevelAttributeCheck.setInOperator(InOperator.IN);
+ EList<Literal> literals = warningLevelAttributeCheck.getLiterals();
+ for (WarningLevel warningLevel: warningLevels) {
+ SignedIntegerLiteral warningLevelEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ warningLevelEnumValue.setValue(warningLevel.getValue());
+ literals.add(warningLevelEnumValue);
+ }
+
+ // Downcast: to DirectCause where (warningLevel IN warningLevels)
+ DownCastPredicate directCauseDownCast = FILTER_EXPR_FACTORY.createDownCastPredicate();
+ directCauseDownCast.setClassName(TRAFFIC_INCIDENT_PACKAGE.getDirectCause().getName());
+ directCauseDownCast.setExpression(warningLevelAttributeCheck);
+
+ // Subclass Predicate: ANY cause instanceof DirectCause where (warningLevel IN warningLevels)
+ MultiplicityPredicate anyCausePredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ anyCausePredicate.setListOperator(ListOperator.ANY);
+ ClassAttribute causes = FILTER_EXPR_FACTORY.createClassAttribute();
+ causes.setAttributeName(TRAFFIC_INCIDENT_PACKAGE.getTrafficIncident_Causes().getName());
+ anyCausePredicate.setAttribute(causes);
+ anyCausePredicate.setExpression(directCauseDownCast);
+// System.out.println(anyCausePredicate.toString());
+
+ Filter filter = new ExpressionFilter(anyCausePredicate);
+
+ return filter;
+ }
+
+ public static Filter createCategoryIdsFilter(EList<Integer> categoryIds) {
+ // In Predicate: categoryId IN categoryIds
+ InPredicate categoryIdCheck = FILTER_EXPR_FACTORY.createInPredicate();
+ categoryIdCheck.setInOperator(InOperator.IN);
+ EList<Literal> literals = categoryIdCheck.getLiterals();
+ for (Integer categoryId: categoryIds) {
+ SignedIntegerLiteral categoryIdLiteral = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ categoryIdLiteral.setValue(categoryId);
+ literals.add(categoryIdLiteral);
+ }
+
+ // Multiplicity Predicate: ANY categoryId where (categoryId IN categoryIds)
+ MultiplicityPredicate anyCategoryIdPredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ anyCategoryIdPredicate.setListOperator(ListOperator.ANY);
+ ClassAttribute categoryIdsAttribute = FILTER_EXPR_FACTORY.createClassAttribute();
+ categoryIdsAttribute.setAttributeName(TRAFFIC_INCIDENT_PACKAGE.getTrafficIncident_CategoryIds().getName());
+ anyCategoryIdPredicate.setAttribute(categoryIdsAttribute);
+ anyCategoryIdPredicate.setExpression(categoryIdCheck);
+
+// System.out.println(anyCategoryIdPredicate.toString());
+ Filter filter = new ExpressionFilter(anyCategoryIdPredicate);
+
+ return filter;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentsService.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentsService.java
new file mode 100755
index 0000000..3c0ebe7
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/TrafficIncidentsService.java
@@ -0,0 +1,1426 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+/**
+ * Applicability handling.
+ * The way that the Traffic Incidents Service shall handle the Applicability
+ * is a tradeoff between the best user experience and performance (use of system resources).
+ * It is based on the idea that the application (user) will hardly ever change the
+ * Applicability settings.
+ * Behaviour:
+ * - Traffic Incidents that are not applicable may be thrown away on reception.
+ * This can be done before any location dereferencing takes place. This implies
+ * that an Applicability Expression should not refer to any location.
+ * In a client/server solution it is even possible that the server is instructed
+ * not to transmit these incidents.
+ * - If the Applicability Expression is changed, it is applied on the current set of
+ * Traffic Incidents. This may lead to the removal of incidents, which in its turn
+ * may trigger notifications being sent to listeners for changes in the traffic situation.
+ * - Incidents that are not Applicable are never given to a client of this service.
+ */
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.RectangularArea;
+import org.genivi.common.Version;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.locref.refimpl.LocationReferenceDecodingHandlerRefImpl;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.textgenerator.TrafficIncidentTextGenerator;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+public class TrafficIncidentsService extends EObjectImpl implements TrafficIncidents, TrafficIncidentFeed {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsService.class.getName());
+ private static final trafficincidentsserviceFactory TRAFFIC_INCIDENTS_FACTORY = trafficincidentsserviceFactory.eINSTANCE;
+ private static final trafficincidentFactory TRAFFIC_INCIDENT_FACTORY = trafficincidentFactory.eINSTANCE;
+ private static final CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE; // Used to create a Version
+
+ private static final int NORMAL_DRIVING_SPEED_IN_METERS_PER_SECOND = 30; // TODO PRIO9: FULL_IMPL This value has to be obtained from the map database, for the related segment(s).
+
+ // Version information
+ private static final int MAJOR_VERSION_NUMBER = 1;
+ private static final int MINOR_VERSION_NUMBER = 0;
+ private static final int MICRO_VERSION_NUMBER = 0;
+ private static final String VERSION_DATE = "06-03-2014";
+
+ // Default language information.
+ private static final String DEFAULT_LANGUAGE_CODE = "eng";
+ private static final String DEFAULT_LANGUAGE_COUNTRY_CODE = null;
+
+ // List of TrafficIncidentFields which are text fields.
+ private static final TrafficIncidentField[] TRAFFIC_INCIDENT_TEXT_FIELDS = {
+ TrafficIncidentField.APPLICABILITY_TEXTS,
+ TrafficIncidentField.CAUSE_TEXTS,
+ TrafficIncidentField.ADVICE_TEXTS,
+ TrafficIncidentField.EFFECT_TEXT,
+ TrafficIncidentField.TENDENCY_TEXT,
+ TrafficIncidentField.TRAFFIC_INCIDENT_ID
+ };
+
+ private static Version VERSION;
+
+ // references to other components used.
+ private TrafficIncidentTextGenerator trafficIncidentTextGenerator;
+ private ExpirationHandler expirationHandler;
+// private LocationReferenceHandler locationReferenceHandler;
+ private LocationReferenceDecodingHandlerRefImpl locationReferencDecodingHandler;
+
+ // settings
+ private String languageCode = DEFAULT_LANGUAGE_CODE;
+ private String languageCountryCode = DEFAULT_LANGUAGE_COUNTRY_CODE;
+
+ // Status information
+ private TrafficIncidentFeedStatus trafficIncidentFeedStatus = TrafficIncidentFeedStatus.UNAVAILABLE;
+ private TrafficIncidentsStatus trafficIncidentsStatus = TrafficIncidentsStatus.UNAVAILABLE;
+
+ /*
+ * all other information.
+ */
+
+ // IconSet Ids reserved by applications.
+ private Set<Integer> reservedIconSetIds = new HashSet<Integer>();
+
+ // All known icons (including the actual data).
+ private Map<IconInfo, IconDefinition> iconDefinitionsMap = new HashMap<IconInfo, IconDefinition>();
+
+ // IconSets meta data.
+ private EList<IconSet> iconSets = new BasicEList<IconSet>();
+
+ // Category Ids reserved by applications.
+ private Set<Integer> reservedCategoryIds = new HashSet<Integer>();
+
+ // Category definitions
+ private EList<CategoryDefinition> categoryDefinitions = new BasicEList<CategoryDefinition>();
+
+ // Applicability filter
+ private ExpressionFilter applicabilityFilter = null;
+
+ /*
+ * The Traffic Incidents
+ */
+ private List<ManagedTrafficIncident> managedIncidents;
+ private Map<String, ManagedTrafficIncident> xIncidentIdToManagedIncidentMap;
+ private Map<Integer, ManagedTrafficIncident> incidentIdToManagedIncidentMap;
+
+ /*
+ * The update listeners.
+ */
+ // Listeners to updates in the Traffic Incidents: based on filters for area, warning level and category.
+ private Map<TrafficIncidentsListener, UpdateListenerInfo> updateListeners = new HashMap<>();
+ // Listeners for changes in the general status.
+ private List<TrafficIncidentsListener> trafficIncidentsStatusListeners = new ArrayList<TrafficIncidentsListener>();
+ // Listeners for changes in the Feed information.
+ private List<TrafficIncidentsListener> feedInformationListeners = new ArrayList<TrafficIncidentsListener>();
+ private List<TrafficIncidentFeedListener> trafficIncidentFeedListeners = new ArrayList<TrafficIncidentFeedListener>();
+ private Map<Integer, FeedInformation> feedsInformation = new HashMap<>();
+ private int nextFeedId = 1;
+ private int nextTrafficIncidentId = 1; // Use 0 as undefined.
+
+
+ static {
+ VERSION = COMMON_FACTORY.createVersion();
+ VERSION.setMajor(MAJOR_VERSION_NUMBER);
+ VERSION.setMinor(MINOR_VERSION_NUMBER);
+ VERSION.setMicro(MICRO_VERSION_NUMBER);
+ VERSION.setDate(VERSION_DATE);
+ }
+
+ public TrafficIncidentsService(LocationReferenceDecodingHandlerRefImpl locationReferencDecodingHandler, TrafficIncidentTextGenerator trafficIncidentTextGenerator) {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating TrafficIncidentsService");
+
+ this.locationReferencDecodingHandler = locationReferencDecodingHandler;
+ this.trafficIncidentTextGenerator = trafficIncidentTextGenerator;
+ trafficIncidentTextGenerator.setLanguage(languageCode, languageCountryCode);
+
+ managedIncidents = new ArrayList<>();
+ xIncidentIdToManagedIncidentMap = new HashMap<>();
+ incidentIdToManagedIncidentMap = new HashMap<>();
+
+ expirationHandler = new ExpirationHandler(this);
+ expirationHandler.start();
+ }
+
+ @Override
+ public void getVersion(TrafficIncidentsListener listener) {
+ listener.getVersionReply(VERSION);
+ }
+
+ @Override
+ public void getTrafficIncidentIds(TrafficIncidentsListener listener, EList<WarningLevel> warningLevels, EList<Integer> categoryIds) {
+ LOGGER.info("getTrafficIncidentIds() called, forwarding to getTrafficIncidentIdsInAreas()");
+ getTrafficIncidentIdsInAreas(listener, warningLevels, categoryIds, new BasicEList<RectangularArea>());
+ }
+
+ @Override
+ public void getTrafficIncidentIdsInAreas(TrafficIncidentsListener listener, EList<WarningLevel> severities, EList<Integer> categoryIds, EList<RectangularArea> areas) {
+ LOGGER.info("=>");
+ EList<Filter> filters = new BasicEList<Filter>();
+
+ if (!severities.isEmpty()) {
+ filters.add(TrafficIncidentFilterUtils.createWarningLevelFilter(severities));
+ }
+
+ if (!categoryIds.isEmpty()) {
+ filters.add(TrafficIncidentFilterUtils.createCategoryIdsFilter(categoryIds));
+ }
+
+ if (!areas.isEmpty()) {
+ filters.add(new AreasFilter(areas));
+ }
+
+ EList<EObject> relevantTrafficIncidents = Filter.applyFilters(getTrafficIncidents(), filters);
+
+ EList<Integer> trafficIncidentIds = new BasicEList<>();
+ for (EObject eObject: relevantTrafficIncidents) {
+ TrafficIncident trafficIncident = (TrafficIncident) eObject;
+ LOGGER.info("adding trafficIncidentId " + trafficIncident.getTrafficIncidentId() + " to result list.");
+ trafficIncidentIds.add(trafficIncident.getTrafficIncidentId());
+ }
+
+ LOGGER.info("Calling getTrafficIncidentIdsReply().");
+ listener.getTrafficIncidentIdsReply(trafficIncidentIds);
+ LOGGER.info("<=");
+ }
+
+ private TrafficIncident getTrafficIncident(int trafficIncidentId, boolean includeTextFields) {
+ LOGGER.info("getTrafficIncident => trafficIncidentId = " + trafficIncidentId + ", includeTextFields = " + includeTextFields);
+ ManagedTrafficIncident managedTrafficIncident = incidentIdToManagedIncidentMap.get(trafficIncidentId);
+ if (managedTrafficIncident != null) {
+ TrafficIncident trafficIncident = managedTrafficIncident.getTrafficIncident();
+
+ if (trafficIncident != null) {
+ LOGGER.info("managedTrafficIncident = " + trafficIncident);
+ if (includeTextFields) {
+ fillTextFields(trafficIncident);
+ }
+ return trafficIncident;
+ }
+ }
+
+ LOGGER.info("getTrafficIncident <= " + null);
+ return null;
+ }
+
+ private void fillTextFields(TrafficIncident trafficIncident) {
+ String[] texts;
+
+ for (TrafficIncidentField trafficIncidentField: TRAFFIC_INCIDENT_TEXT_FIELDS) {
+ // Check whether the field is already filled in or not.
+ switch (trafficIncidentField) {
+ case APPLICABILITY_TEXTS:
+ if (!trafficIncident.isSetApplicabilityTexts()) {
+ texts = trafficIncidentTextGenerator.getApplicabilityTexts(trafficIncident);
+ if (texts != null) {
+ for (String text: texts) {
+ trafficIncident.getApplicabilityTexts().add(text);
+ }
+ }
+ }
+ break;
+
+ case CAUSE_TEXTS:
+ if (!trafficIncident.isSetCauseTexts()) {
+ texts = trafficIncidentTextGenerator.getCauseTexts(trafficIncident);
+ if (texts != null) {
+ for (String text: texts) {
+ trafficIncident.getCauseTexts().add(text);
+ }
+ }
+ }
+ break;
+
+ case ADVICE_TEXTS:
+ if (!trafficIncident.isSetAdviceTexts()) {
+ texts = trafficIncidentTextGenerator.getAdviceTexts(trafficIncident);
+ if (texts != null) {
+ for (String text: texts) {
+ trafficIncident.getAdviceTexts().add(text);
+ }
+ }
+ }
+ break;
+
+ case EFFECT_TEXT:
+ if (!trafficIncident.isSetEffectText()) {
+ trafficIncident.setEffectText(trafficIncidentTextGenerator.getEffectText(trafficIncident));
+ }
+ break;
+
+ case TENDENCY_TEXT:
+ if (!trafficIncident.isSetTendencyText()) {
+ trafficIncident.setTendencyText(trafficIncidentTextGenerator.getTendencyText(trafficIncident));
+ }
+ break;
+
+ case TRAFFIC_INCIDENT_ID:
+ break;
+
+ default:
+ // no action
+ break;
+ }
+ }
+ }
+
+ @Override
+ public void getTrafficIncidents(TrafficIncidentsListener listener,
+ EList<Integer> trafficIncidentIds, boolean includeTextFields) {
+ listener.getTrafficIncidentsReply(getTrafficIncidents(trafficIncidentIds, includeTextFields));
+ }
+
+ private EList<TrafficIncident> getTrafficIncidents(EList<Integer> trafficIncidentIds, boolean includeTextFields) {
+ LOGGER.info("getTrafficIncidents => trafficIncidentIds = " + trafficIncidentIds + ", includeTextFields = " + includeTextFields);
+ EList<TrafficIncident> trafficIncidents = new BasicEList<TrafficIncident>();
+
+ for (int trafficIncidentId: trafficIncidentIds) {
+ TrafficIncident trafficIncident = getTrafficIncident(trafficIncidentId, includeTextFields);
+ if (trafficIncident != null) {
+ LOGGER.info("adding trafficIncident: " + trafficIncident);
+ trafficIncidents.add(trafficIncident);
+ } else {
+ LOGGER.info("skipping null value");
+ }
+ }
+
+ LOGGER.info("getTrafficIncidents <= " + trafficIncidents);
+ return trafficIncidents;
+ }
+
+ @Override
+ public void clear() {
+ managedIncidents.clear();
+ }
+
+ @Override
+ public synchronized void updateIncidents(int feedId, EList<String> idsToCancel, EList<org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident> newOrUpdatedIncidents) {
+ LOGGER.info("updateIncidents => feedId = " + feedId + ", idsToCancel = " + idsToCancel + ", newOrUpdatedIncidents = " + newOrUpdatedIncidents);
+
+ dumpManagedIncidentsMap("Before updating");
+ dumpIncidents("Before updating");
+
+ for (String trafficIncidentManagementId: idsToCancel) {
+ ManagedTrafficIncident managedTrafficIncident = xIncidentIdToManagedIncidentMap.get(trafficIncidentManagementId);
+ if (managedTrafficIncident == null) {
+ LOGGER.info("No ManagedTrafficIncident found for TrafficIncidentManagementId: " + trafficIncidentManagementId);
+ } else {
+ Integer trafficIncidentId = managedTrafficIncident.getTrafficIncident().getTrafficIncidentId();
+ xIncidentIdToManagedIncidentMap.remove(trafficIncidentManagementId);
+ incidentIdToManagedIncidentMap.remove(trafficIncidentId);
+ managedIncidents.remove(managedTrafficIncident);
+ LOGGER.info("Traffic Incident removed, Id = " + trafficIncidentId + ", managementId = " + trafficIncidentManagementId);
+ }
+ }
+
+ dumpManagedIncidentsMap("After handling cancels");
+ dumpIncidents("After handling cancels");
+ EList<org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident> applicableNewOrUpdatedIncidents;
+
+ if (applicabilityFilter != null) {
+ applicableNewOrUpdatedIncidents = Filter.applyRejectFilter(newOrUpdatedIncidents, applicabilityFilter);
+ } else {
+ applicableNewOrUpdatedIncidents = newOrUpdatedIncidents;
+ }
+
+ Date receivedAt = new Date();
+ List<ManagedTrafficIncident> managedApplicableNewOrUpdatedIncidents = new ArrayList<>();
+ for (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident: applicableNewOrUpdatedIncidents) {
+ TrafficIncident newOrUpdatedIncident = TrafficIncidentConvertor.xTrafficIncident2TrafficIncident(xTrafficIncident, languageCode, languageCountryCode);
+ ManagedTrafficIncident managedTrafficIncident = new ManagedTrafficIncident(xTrafficIncident, newOrUpdatedIncident, receivedAt);
+ managedApplicableNewOrUpdatedIncidents.add(managedTrafficIncident);
+ }
+
+
+ LOGGER.info("Triggering location dereferencing.");
+
+ // Trigger the LocationReferenceHandler. If this is ready, it calls locationsDereferenced().
+ LocationReferenceHandler locationReferenceHandler = new LocationReferenceHandler(this, locationReferencDecodingHandler);
+ locationReferenceHandler.setLanguage(languageCode, languageCountryCode);
+ locationReferenceHandler.handleLocationReferences(managedApplicableNewOrUpdatedIncidents);
+
+ notifyAll();
+ }
+
+ public void locationsDereferenced(List<ManagedTrafficIncident> incidents) {
+ for (ManagedTrafficIncident managedTrafficIncident: incidents) {
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident = managedTrafficIncident.getxTrafficIncident();
+ TrafficIncident trafficIncident = managedTrafficIncident.getTrafficIncident();
+
+ String trafficIncidentManagementId = xTrafficIncident.getTrafficIncidentId();
+ ManagedTrafficIncident originalEvent = xIncidentIdToManagedIncidentMap.get(trafficIncidentManagementId);
+
+ if (originalEvent != null) {
+ // It is an update
+ // Merge the new data into the existing incident
+ mergeIncidentData(originalEvent, managedTrafficIncident);
+ // Continue with the updated, existing incident
+ trafficIncident = originalEvent.getTrafficIncident();
+ }
+
+ calculateDelayIfApplicable(trafficIncident);
+
+ trafficIncident.getCategoryIds().clear();
+ for (CategoryDefinition categoryDefinition: categoryDefinitions) {
+ BooleanExpression filterExpression = FilterExprUtil.parseFilterExpression(categoryDefinition.getExpression());
+ Filter filter = new ExpressionFilter(filterExpression);
+ if (filter.filter(trafficIncident)) {
+ LOGGER.info("Category filter passed, adding category Id to traffic incident: " + categoryDefinition.getCategoryId());
+ trafficIncident.getCategoryIds().add(categoryDefinition.getCategoryId());
+ } else {
+ LOGGER.info("Category filter NOT passed, category Id NOT added to traffic incident: " + categoryDefinition.getCategoryId());
+ }
+ }
+
+ updateLinksWithOtherIncidents(managedTrafficIncident);
+
+ xTrafficIncident.setUpdateTime(new Date());
+
+ if (originalEvent == null) {
+ // There was no event with this Id yet, so it is a new one.
+ // So add an application level trafficIncidentId.
+ int trafficIncidentId = createTrafficIncidentId();
+ LOGGER.info("Adding message, Id = " + trafficIncidentId + ", managementId = " + trafficIncidentManagementId);
+ trafficIncident.setTrafficIncidentId(trafficIncidentId);
+ managedIncidents.add(managedTrafficIncident);
+ incidentIdToManagedIncidentMap.put(trafficIncidentId, managedTrafficIncident);
+ xIncidentIdToManagedIncidentMap.put(trafficIncidentManagementId, managedTrafficIncident);
+ }
+
+
+ }
+
+ dumpManagedIncidentsMap("After updating");
+ dumpIncidents("After updating");
+
+ notifyUpdateListeners();
+ }
+
+ /**
+ * The method handles the links between this incident and other incidents.
+ * If this incident has a link to another incident, and this incident is already in
+ * our store, the incidentId of that incident is filled in.
+ * There can also be an incident in our store, which has a link to this new incident.
+ * In that case the incidentId is also filled in.
+ * @param managedTrafficIncident
+ */
+ private void updateLinksWithOtherIncidents(ManagedTrafficIncident managedTrafficIncident) {
+ TrafficIncident trafficIncident = managedTrafficIncident.getTrafficIncident();
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident xTrafficIncident = managedTrafficIncident.getxTrafficIncident();
+
+ // Handle a possible link from this incident to one in our store.
+ for (int i = 0; i < xTrafficIncident.getCauses().size(); i++) {
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause xCause = xTrafficIncident.getCauses().get(i);
+ if (xCause instanceof org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause) {
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause xLinkedCause = (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause) xCause;
+ String trafficIncidentManagementId = xLinkedCause.getCauseTrafficIncidentId();
+ ManagedTrafficIncident referedToManagedIncident = xIncidentIdToManagedIncidentMap.get(trafficIncidentManagementId);
+ if (referedToManagedIncident != null) {
+ Cause cause = trafficIncident.getCauses().get(i);
+ LinkedCause linkedCause = (LinkedCause) cause;
+ Integer trafficIncidentId = referedToManagedIncident.getTrafficIncident().getTrafficIncidentId();
+ linkedCause.setCauseTrafficIncidentId(trafficIncidentId);
+ }
+ }
+ }
+
+ // Handle a possile link from any incident in our store to this incident.
+ for (ManagedTrafficIncident referredFromManagedIncident: managedIncidents) {
+ TrafficIncident referredFromIncident = referredFromManagedIncident.getTrafficIncident();
+ for (int i = 0; i < referredFromIncident.getCauses().size(); i++) {
+ Cause cause = referredFromIncident.getCauses().get(i);
+ if (cause instanceof LinkedCause) {
+ LinkedCause linkedCause = (LinkedCause) cause;
+ Integer referToId = linkedCause.getCauseTrafficIncidentId();
+ if (referToId == null) {
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident referredFromXIncident = referredFromManagedIncident.getxTrafficIncident();
+ org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause xLinkedCause = (org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause) referredFromXIncident.getCauses().get(i);
+ String referToManagementId = xLinkedCause.getCauseTrafficIncidentId();
+ if (referToManagementId.equals(xTrafficIncident.getTrafficIncidentId())) {
+ linkedCause.setCauseTrafficIncidentId(trafficIncident.getTrafficIncidentId());
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void mergeIncidentData(ManagedTrafficIncident existingManagedTrafficIncident, ManagedTrafficIncident updateManagedTrafficIncident) {
+ // TODO PRIO9: FULL_IMPL For now only one field merged, full implementation required.
+ TrafficIncident existingTrafficIncident = existingManagedTrafficIncident.getTrafficIncident();
+ TrafficIncident updateTrafficIncident = updateManagedTrafficIncident.getTrafficIncident();
+ if (updateTrafficIncident.isSetAverageSpeedAbsolute()) {
+ existingTrafficIncident.setAverageSpeedAbsolute(updateTrafficIncident.getAverageSpeedAbsolute());
+ }
+ }
+
+ private void calculateDelayIfApplicable(TrafficIncident managedTrafficIncident) {
+ if ((managedTrafficIncident.getDelay() == null) &&
+ (managedTrafficIncident.getLengthAffected() != null) &&
+ (managedTrafficIncident.getLengthAffected() != null)) {
+ managedTrafficIncident.getLengthAffected(); // meters
+ managedTrafficIncident.getAverageSpeedAbsolute(); // m/s
+ // normal driving time (in seconds) = length affecte (in meters) / normal driving speed (in m/s)
+ int normalDrivingTimeInSeconds = managedTrafficIncident.getLengthAffected() / NORMAL_DRIVING_SPEED_IN_METERS_PER_SECOND;
+ // current driving time (in seconds) = length affecte (in meters) / current driving speed (in m/s)
+ int currentDrivingTimeInSeconds = managedTrafficIncident.getLengthAffected() / managedTrafficIncident.getAverageSpeedAbsolute();
+ // delay is the difference rounded to minutes.
+ int delay = (currentDrivingTimeInSeconds - normalDrivingTimeInSeconds + 30) / 60;
+ managedTrafficIncident.setDelay(delay);
+ }
+ }
+
+ private void dumpManagedIncidentsMap(String whenText) {
+// LOGGER.info("Contents of managedIncidentMap - " + whenText);
+//
+// for (TrafficIncidentManagementId id: managedIncidents.keySet()) {
+// LOGGER.info("managementId = " + id.getId());
+// }
+ }
+
+ public void dumpIncidents(String whenText) {
+// LOGGER.info("Current Traffic Incidents - " + whenText);
+//
+// for (ManagedTrafficIncident managedTrafficIncident: managedIncidents.values()) {
+// LOGGER.info("TrafficIncident = " + managedTrafficIncident);
+// EList<Cause> causes = managedTrafficIncident.getCauses();
+// for (Cause cause: causes) {
+// LOGGER.info("Cause = " + cause);
+// }
+// }
+ }
+
+ @Override
+ public void updateStatus(int feedId, TrafficIncidentFeedStatus feedStatus,
+ TrafficIncidentsStatus incidentsStatus) {
+ boolean statusChanged = false;
+
+ FeedInformation feedInformation = feedsInformation.get(feedId);
+
+ if (feedInformation.getFeedStatus() != feedStatus) {
+ feedInformation.setFeedStatus(feedStatus);
+ statusChanged = true;
+ }
+ if (feedInformation.getTrafficIncidentsStatus() != incidentsStatus) {
+ feedInformation.setTrafficIncidentsStatus(incidentsStatus);
+ LOGGER.info("+++++++++++++ status = " + feedInformation.getTrafficIncidentsStatus());
+ statusChanged = true;
+ }
+
+ if (statusChanged) {
+ notifyFeedInformationListeners();
+ }
+
+ determineNewStatus();
+ }
+
+ private void determineNewStatus() {
+ TrafficIncidentFeedStatus newTrafficIncidentFeedStatus = TrafficIncidentFeedStatus.UNAVAILABLE;
+ TrafficIncidentsStatus newTrafficIncidentsStatus = TrafficIncidentsStatus.UNAVAILABLE;
+
+ for (Integer feedId: feedsInformation.keySet()) {
+ FeedInformation feedInformation = feedsInformation.get(feedId);
+
+ TrafficIncidentFeedStatus thisTrafficIncidentFeedStatus = feedInformation.getFeedStatus();
+ if (thisTrafficIncidentFeedStatus == TrafficIncidentFeedStatus.CONNECTED) {
+ newTrafficIncidentFeedStatus = TrafficIncidentFeedStatus.CONNECTED;
+ }
+ if (thisTrafficIncidentFeedStatus == TrafficIncidentFeedStatus.DISCONNECTED &&
+ newTrafficIncidentFeedStatus == TrafficIncidentFeedStatus.UNAVAILABLE) {
+ newTrafficIncidentFeedStatus = TrafficIncidentFeedStatus.DISCONNECTED;
+ }
+
+ TrafficIncidentsStatus thisTrafficIncidentsStatus = feedInformation.getTrafficIncidentsStatus();
+ if (thisTrafficIncidentsStatus == TrafficIncidentsStatus.PARTLY_AVAILABLE) {
+ newTrafficIncidentsStatus = TrafficIncidentsStatus.PARTLY_AVAILABLE;
+ }
+ if (thisTrafficIncidentsStatus == TrafficIncidentsStatus.AVAILABLE &&
+ newTrafficIncidentsStatus == TrafficIncidentsStatus.UNAVAILABLE) {
+ newTrafficIncidentsStatus = TrafficIncidentsStatus.AVAILABLE;
+ }
+
+ if (newTrafficIncidentFeedStatus != trafficIncidentFeedStatus ||
+ newTrafficIncidentsStatus != trafficIncidentsStatus) {
+ trafficIncidentFeedStatus = newTrafficIncidentFeedStatus;
+ trafficIncidentsStatus = newTrafficIncidentsStatus;
+ notifyTrafficIncidentsStatusListeners();
+ }
+ }
+
+ }
+
+ @Override
+ public void addLanguageListener(
+ TrafficIncidentFeedListener listener, TrafficIncidentFeedListener languageChangeListener) {
+ languageChangeListener.getLanguageReply(languageCode, languageCountryCode);
+ trafficIncidentFeedListeners.add(languageChangeListener);
+
+ if (listener != null) {
+ listener.addLanguageListenerReply();
+ }
+ }
+
+ @Override
+ public void removeLanguageListener(
+ TrafficIncidentFeedListener listener, TrafficIncidentFeedListener languageChangeListener) {
+ trafficIncidentFeedListeners.remove(languageChangeListener);
+
+ if (listener != null) {
+ listener.removeLanguageListenerReply();
+ }
+ }
+
+ @Override
+ public void getLanguage(TrafficIncidentFeedListener listener) {
+ listener.getLanguageReply(languageCode, languageCountryCode);
+ }
+
+ private int generateFeedId() {
+ return nextFeedId++; // This should never cause overflow.
+ }
+
+ private int createTrafficIncidentId() {
+ int trafficIncidentId = nextTrafficIncidentId ;
+
+ if (nextTrafficIncidentId < Integer.MAX_VALUE) {
+ nextTrafficIncidentId++;
+ } else {
+ nextTrafficIncidentId = 1;
+ }
+ return trafficIncidentId;
+ }
+
+ public Collection<ManagedTrafficIncident> getManagedEvents() {
+ return managedIncidents;
+ }
+
+ @Override
+ public void addUpdateListener(TrafficIncidentsListener listener,
+ EList<WarningLevel> warningLevels, EList<Integer> categoryIds,
+ TrafficIncidentsListener updateListener) {
+ addAreasUpdateListener(listener, warningLevels, categoryIds, new BasicEList<RectangularArea>(), updateListener);
+ }
+
+ @Override
+ public void addAreasUpdateListener(TrafficIncidentsListener listener,
+ EList<WarningLevel> warningLevels, EList<Integer> categoryIds, EList<RectangularArea> areas,
+ TrafficIncidentsListener updateListener) {
+ LOGGER.info("Adding (areas)UpdateListener => listener = " + listener +
+ ", warningLevels = " + warningLevels + ", categoryIds = " + categoryIds +
+ ", areas = " + areas + ", updateListener = " + updateListener);
+ UpdateListenerInfo updateListenerInfo = new UpdateListenerInfo(warningLevels, categoryIds, areas);
+ updateListeners.put(updateListener, updateListenerInfo);
+
+ listener.addUpdateListenerReply();
+
+ HandleUpdateListenerRunnable handleUpdateListenerRunnable = new HandleUpdateListenerRunnable(updateListener);
+ Thread thread = new Thread(handleUpdateListenerRunnable);
+ thread.start();
+ }
+
+ @Override
+ public void removeAreasUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updateListener) {
+ updateListeners.remove(updateListener);
+
+ if (listener != null) {
+ listener.removeAreasUpdateListenerReply();
+ }
+ }
+
+ @Override
+ public void removeUpdateListener(TrafficIncidentsListener listener, TrafficIncidentsListener updateListener) {
+ LOGGER.info("removeUpdateListener => listener = " + listener + ", updateListener = " + updateListener);
+ updateListeners.remove(updateListener);
+
+ if (listener != null) {
+ listener.removeUpdateListenerReply();
+ }
+ }
+
+ private void notifyUpdateListeners() {
+ for (TrafficIncidentsListener updateListener: updateListeners.keySet()) {
+ LOGGER.info("Notify update listener by calling updates()");
+ handleUpdateListener(updateListener);
+ }
+ }
+
+ private void handleUpdateListener(TrafficIncidentsListener updateListener) {
+ LOGGER.info("handleUpdateListener => updateListener = " + updateListener);
+ UpdateListenerInfo updateListenerInfo = updateListeners.get(updateListener);
+
+ EList<Filter> filters = new BasicEList<Filter>();
+
+ if (updateListenerInfo.getSeveritiesFilter() != null) {
+ LOGGER.info("adding severitiesFilter");
+ filters.add(updateListenerInfo.getSeveritiesFilter());
+ }
+ LOGGER.info("AFTER severitiesFilter");
+
+ if (updateListenerInfo.getCategoriesFilter() != null) {
+ LOGGER.info("adding category filter");
+ filters.add(updateListenerInfo.getCategoriesFilter());
+ }
+ LOGGER.info("AFTER category Filter");
+
+ if (updateListenerInfo.getAreasFilter() != null) {
+ filters.add(updateListenerInfo.getAreasFilter());
+ }
+ LOGGER.info("AFTER Areas Filter");
+
+ EList<ManagedTrafficIncident> relevantTrafficIncidents = applyFilters(managedIncidents, filters);
+ LOGGER.info("AFTER applyFilters");
+
+ List<Integer> unchangedIds = new ArrayList<>();
+ List<Integer> updatedIds = new ArrayList<>();
+ List<Integer> newIds = new ArrayList<>();
+ List<Integer> deletedIds = new ArrayList<>();
+
+ List<Integer> relevantTrafficIncidentIds = new ArrayList<>();
+ printList("incidentIdsToListener", updateListenerInfo.getIncidentIdsToListener());
+
+ for (ManagedTrafficIncident eObject: relevantTrafficIncidents) {
+ TrafficIncident trafficIncident = eObject.getTrafficIncident();
+ Integer trafficIncidentId = trafficIncident.getTrafficIncidentId();
+ LOGGER.info("Handling relevantTrafficIncidentId " + trafficIncidentId);
+ relevantTrafficIncidentIds.add(trafficIncidentId);
+
+ // if there is no current, everything is new.
+ if (updateListenerInfo.getIncidentIdsToListener() != null) {
+ // if in current and new, the incident is either unchanged or updated.
+ // else it is new.
+ if (updateListenerInfo.getIncidentIdsToListener().contains(trafficIncidentId)) {
+ if (eObject.getReceivedAt().after(updateListenerInfo.getUpdateTime())) {
+ // in current and new, but later timestamp, so updated.
+ LOGGER.info("adding trafficIncidentId " + trafficIncidentId + " to Updated list.");
+ updatedIds.add(trafficIncidentId);
+ } else {
+ // in current and new, and same timestamp, so unchanged.
+ LOGGER.info("adding trafficIncidentId " + trafficIncidentId + " to Unchanged list.");
+ unchangedIds.add(trafficIncidentId);
+ }
+ } else {
+ LOGGER.info("adding trafficIncidentId " + trafficIncidentId + " to New list.");
+ newIds.add(trafficIncidentId);
+ }
+ } else {
+ LOGGER.info("adding trafficIncidentId " + trafficIncidentId + " to New list (first update).");
+ newIds.add(trafficIncidentId);
+ }
+ }
+
+ // if incidentIdsToListener is null, nothing is deleted.
+ if (updateListenerInfo.getIncidentIdsToListener() != null) {
+ for (Integer trafficIncidentId: updateListenerInfo.getIncidentIdsToListener()) {
+ if (!relevantTrafficIncidentIds.contains(trafficIncidentId)) {
+ LOGGER.info("adding trafficIncidentId " + trafficIncidentId + " to Deleted list.");
+ deletedIds.add(trafficIncidentId);
+ }
+ }
+ }
+
+ printList("unchangedIds", unchangedIds);
+ printList("updatedIds", updatedIds);
+ printList("newIds", newIds);
+ printList("deletedIds", deletedIds);
+
+
+ // call the listener if the listener is new, or if there are any changes.
+ // There are changes if any of updatedIds, newIds or deletedIds is not empty.
+ if ((updateListenerInfo.getIncidentIdsToListener() == null) ||
+ (!updatedIds.isEmpty() ||
+ !newIds.isEmpty() ||
+ !deletedIds.isEmpty())) {
+ LOGGER.info("Calling updates() on listener.");
+ updateListener.updates(new BasicEList<Integer>(unchangedIds),
+ new BasicEList<Integer>(updatedIds),
+ new BasicEList<Integer>(newIds),
+ new BasicEList<Integer>(deletedIds));
+ LOGGER.info("After calling updates() on listener.");
+
+ unchangedIds.addAll(updatedIds);
+ unchangedIds.addAll(newIds);
+ updateListenerInfo.setIncidentIdsToListener(unchangedIds);
+ updateListenerInfo.setUpdateTime(new Date());
+ } else {
+ LOGGER.info("NOT Calling getTrafficIncidentIdsReply().");
+ }
+ LOGGER.info("handleUpdateListener <=");
+ }
+
+ private void printList(String listName, List<Integer> incidentIds) {
+ StringBuilder buf = new StringBuilder();
+
+ buf.append("INCIDENTS: ");
+ buf.append(listName);
+ buf.append(":");
+
+ if (incidentIds == null) {
+ buf.append("NULL");
+ } else if (incidentIds.isEmpty()) {
+ buf.append("EMPTY");
+ } else {
+ for (Integer incidentId: incidentIds) {
+ buf.append(" ");
+ buf.append(incidentId);
+ }
+ }
+
+ LOGGER.info(buf.toString());
+ }
+
+ @Override
+ public void getLanguage(TrafficIncidentsListener listener) {
+ listener.getLanguageReply(languageCode, languageCountryCode);
+ }
+
+ @Override
+ public void setLanguage(TrafficIncidentsListener listener, String languageCode, String countryCode) {
+ LOGGER.info("Setting language to: " + languageCode + ", " + countryCode);
+ this.languageCode = languageCode;
+ this.languageCountryCode = countryCode;
+
+ trafficIncidentTextGenerator.setLanguage(languageCode, countryCode);
+
+ notifyLanguageListeners();
+
+ if (listener != null) {
+ listener.setLanguageReply();
+ }
+ }
+
+ @Override
+ public void getTexts(TrafficIncidentsListener listener, EList<Integer> trafficIncidentIds, TextDetailLevel textDetailLevel) {
+ EList<TrafficIncident> trafficIncidents = getTrafficIncidents(trafficIncidentIds, false);
+ EList<String> texts = new BasicEList<String>();
+
+ for (int i = 0; i < trafficIncidents.size(); i++) {
+ texts.add(trafficIncidentTextGenerator.getText(trafficIncidents.get(i), textDetailLevel));
+ }
+
+ listener.getTextsReply(texts);
+ }
+
+ @Override
+ public void getTrafficIncidentsFields(TrafficIncidentsListener listener,
+ EList<Integer> trafficIncidentIds, EList<TrafficIncidentField> trafficIncidentFields) {
+ LOGGER.info("=> listener = " + listener + ", trafficIncidentIds = " + trafficIncidentIds + ", trafficIncidentFields = " + trafficIncidentFields);
+ EList<TrafficIncident> trafficIncidents = getTrafficIncidentsFields(trafficIncidentIds, trafficIncidentFields);
+ LOGGER.info("trafficIncidents = " + trafficIncidents);
+ listener.getTrafficIncidentsReply(trafficIncidents);
+ LOGGER.info("<=");
+ }
+
+ private EList<TrafficIncident> getTrafficIncidentsFields(EList<Integer> trafficIncidentIds, EList<TrafficIncidentField> trafficIncidentFields) {
+ EList<TrafficIncident> trafficIncidents = new BasicEList<TrafficIncident>();
+
+ for (int trafficIncidentId: trafficIncidentIds) {
+ TrafficIncident trafficIncident = getTrafficIncident(trafficIncidentId, true);
+ if (trafficIncident != null) {
+ trafficIncidents.add(constructTrafficIncidentFields(trafficIncident, trafficIncidentFields));
+ }
+ }
+
+ return trafficIncidents;
+ }
+
+ private TrafficIncident constructTrafficIncidentFields(TrafficIncident trafficIncident, EList<TrafficIncidentField> trafficIncidentFields) {
+ TrafficIncident incident;
+ incident = TRAFFIC_INCIDENT_FACTORY.createTrafficIncident();
+ incident.setTrafficIncidentId(trafficIncident.getTrafficIncidentId());
+
+ for (TrafficIncidentField trafficIncidentField: trafficIncidentFields) {
+ switch (trafficIncidentField) {
+ case APPLICABILITY:
+ EList<Applicability> applicability = incident.getApplicability();
+ for (Applicability trafficIncidentApplicability: trafficIncident.getApplicability()) {
+ applicability.add(EcoreUtil.copy(trafficIncidentApplicability));
+ }
+ break;
+
+ case APPLICABILITY_TEXTS:
+ EList<String> applicabilityTexts = incident.getApplicabilityTexts();
+ for (String trafficIncidentApplicabilityText: trafficIncident.getApplicabilityTexts()) {
+ applicabilityTexts.add(trafficIncidentApplicabilityText);
+ }
+ break;
+
+ case AVERAGE_SPEED_ABSOLUTE:
+ if (trafficIncident.isSetAverageSpeedAbsolute()) {
+ trafficIncident.setAverageSpeedAbsolute(trafficIncident.getAverageSpeedAbsolute());
+ }
+ break;
+
+ case CAUSE_TEXTS:
+ EList<String> causeTexts = incident.getCauseTexts();
+ for (String trafficIncidentCauseText: trafficIncident.getCauseTexts()) {
+ causeTexts.add(trafficIncidentCauseText);
+ }
+ break;
+
+ case CAUSES:
+ EList<Cause> causes = incident.getCauses();
+ for (Cause trafficIncidentCause: trafficIncident.getCauses()) {
+ causes.add(EcoreUtil.copy(trafficIncidentCause));
+ }
+ break;
+
+ case DELAY:
+ if (trafficIncident.isSetDelay()) {
+ incident.setDelay(trafficIncident.getDelay());
+ }
+ break;
+
+ case EFFECT_CODE:
+ if (trafficIncident.isSetEffectCode()) {
+ incident.setEffectCode(trafficIncident.getEffectCode());
+ }
+ break;
+
+ case EFFECT_TEXT:
+ if (trafficIncident.isSetEffectText()) {
+ incident.setEffectText(trafficIncident.getEffectText());
+ }
+ break;
+
+ case LENGTH_AFFECTED:
+ if (trafficIncident.isSetLengthAffected()) {
+ trafficIncident.setLengthAffected(trafficIncident.getLengthAffected());
+ }
+ break;
+
+ case LOCATION:
+ if (trafficIncident.isSetLocation()) {
+ incident.setLocation(EcoreUtil.copy(trafficIncident.getLocation()));
+ }
+ break;
+
+ case LOCATION_BOUNDING_BOX:
+ incident.setLocationBoundingBox(EcoreUtil.copy(trafficIncident.getLocationBoundingBox()));
+ break;
+
+ case LOCATION_INFO:
+ if (trafficIncident.isSetLocationInfo()) {
+ incident.setLocationInfo(EcoreUtil.copy(trafficIncident.getLocationInfo()));
+ }
+ break;
+
+ case SEGMENT_SPEED_LIMIT:
+ if (trafficIncident.isSetSegmentSpeedLimit()) {
+ incident.setSegmentSpeedLimit(trafficIncident.getSegmentSpeedLimit());
+ }
+ break;
+
+ case EXPECTED_SPEED_ABSOLUTE:
+ if (trafficIncident.isSetExpectedSpeedAbsolute()) {
+ incident.setExpectedSpeedAbsolute(trafficIncident.getExpectedSpeedAbsolute());
+ }
+
+ case START_TIME:
+ if (trafficIncident.isSetStartTime()) {
+ incident.setStartTime(trafficIncident.getStartTime());
+ }
+ break;
+
+ case STOP_TIME:
+ if (trafficIncident.isSetStopTime()) {
+ incident.setStopTime(trafficIncident.getStopTime());
+ }
+ break;
+
+ case TENDENCY:
+ if (trafficIncident.isSetTendency()) {
+ incident.setTendency(trafficIncident.getTendency());
+ }
+ break;
+
+ case TENDENCY_TEXT:
+ if (trafficIncident.isSetTendencyText()) {
+ incident.setTendencyText(trafficIncident.getTendencyText());
+ }
+ break;
+
+ case TRAFFIC_INCIDENT_ID:
+ // No action as the Id is always filled in.
+ break;
+
+ case ADVICES:
+ EList<Advice> advices = incident.getAdvices();
+ for (Advice advice: trafficIncident.getAdvices()) {
+ advices.add(EcoreUtil.copy(advice));
+ }
+ break;
+
+ case ADVICE_TEXTS:
+ EList<String> adviceTexts = incident.getAdviceTexts();
+ for (String adviceText: trafficIncident.getAdviceTexts()) {
+ adviceTexts.add(adviceText);
+ }
+ break;
+ }
+ }
+
+ return incident;
+ }
+
+ private void notifyLanguageListeners() {
+ for (TrafficIncidentFeedListener listener: trafficIncidentFeedListeners) {
+ listener.getLanguageReply(languageCode, languageCountryCode);
+ }
+ }
+
+ @Override
+ public void getVersion(TrafficIncidentFeedListener listener) {
+ listener.getVersionReply(VERSION);
+ }
+
+ @Override
+ public synchronized void addTrafficIncidentsStatusListener(
+ TrafficIncidentsListener listener, TrafficIncidentsListener trafficIncidentsStatusListener) {
+ trafficIncidentsStatusListeners.add(trafficIncidentsStatusListener);
+ trafficIncidentsStatusListener.trafficIncidentsStatus(trafficIncidentFeedStatus, trafficIncidentsStatus);
+
+ if (listener != null) {
+ listener.addTrafficIncidentsStatusListenerReply();
+ }
+ }
+
+ @Override
+ public void removeTrafficIncidentsStatusListener(
+ TrafficIncidentsListener listener,
+ TrafficIncidentsListener trafficIncidentsStatusListener) {
+ trafficIncidentsStatusListeners.remove(trafficIncidentsStatusListener);
+
+ if (listener != null) {
+ listener.removeTrafficIncidentsStatusListenerReply();
+ }
+ }
+
+ @Override
+ public void addFeedInformationListener(TrafficIncidentsListener listener, TrafficIncidentsListener feedInformationListener) {
+ feedInformationListeners.add(feedInformationListener);
+ feedInformationListener.feedInformation(createFeedsInformationList());
+
+ if (listener != null) {
+ listener.addFeedInformationListenerReply();
+ }
+ }
+
+ @Override
+ public void removeFeedInformationListener(TrafficIncidentsListener listener,
+ TrafficIncidentsListener feedInformationListener) {
+ feedInformationListeners.remove(feedInformationListener);
+
+ if (listener != null) {
+ listener.removeFeedInformationListenerReply();
+ }
+ }
+
+ private void notifyTrafficIncidentsStatusListeners() {
+ for (TrafficIncidentsListener trafficIncidentsStatusListener: trafficIncidentsStatusListeners) {
+ LOGGER.info("Notify update listeners by calling updates()");
+ trafficIncidentsStatusListener.trafficIncidentsStatus(trafficIncidentFeedStatus, trafficIncidentsStatus);
+ }
+ }
+
+ @Override
+ public void registerFeed(TrafficIncidentFeedListener listener,
+ String dataProviderName, String protocolName,
+ String communicationChannelName) {
+ FeedInformation feedInformation = TRAFFIC_INCIDENTS_FACTORY.createFeedInformation();
+ feedInformation.setDataProviderName(dataProviderName);
+ feedInformation.setProtocolName(protocolName);
+ feedInformation.setCommunicationChannelName(communicationChannelName);
+ feedInformation.setFeedStatus(TrafficIncidentFeedStatus.UNAVAILABLE);
+ feedInformation.setTrafficIncidentsStatus(TrafficIncidentsStatus.UNAVAILABLE);
+
+ Integer feedId = generateFeedId();
+
+ feedsInformation.put(feedId, feedInformation);
+
+ notifyFeedInformationListeners();
+
+ listener.registerFeedReply(feedId);
+ }
+
+ private void notifyFeedInformationListeners() {
+ LOGGER.info("=> ");
+ EList<FeedInformation> feedsInformationList = createFeedsInformationList();
+
+ for (TrafficIncidentsListener feedInformationListener: feedInformationListeners) {
+ LOGGER.info("Going to notify listener: " + feedInformationListener);
+ feedInformationListener.feedInformation(feedsInformationList);
+ }
+ LOGGER.info("<= ");
+ }
+
+ private EList<FeedInformation> createFeedsInformationList() {
+ EList<FeedInformation> feedsInformationList = new BasicEList<FeedInformation>();
+ for (Integer feedId: feedsInformation.keySet()) {
+ FeedInformation feedInformation = feedsInformation.get(feedId);
+ feedsInformationList.add(feedInformation);
+ }
+
+ return feedsInformationList;
+ }
+
+
+ @Override
+ public void addCategoryDefinitions(
+ TrafficIncidentsListener listener, EList<CategoryDefinition> categoryDefinitions) {
+ LOGGER.info("addCategoryDefinitions => categoryDefinitions = " + categoryDefinitions);
+ for (CategoryDefinition categoryDefinition: categoryDefinitions) {
+ LOGGER.info("addCategoryDefinitions: adding categoryDefinition: " + categoryDefinition);
+ this.categoryDefinitions.add(categoryDefinition);
+ }
+
+ if (listener != null) {
+ listener.addCategoryDefinitionsReply();
+ }
+ LOGGER.info("addCategoryDefinitions <=");
+ }
+
+ @Override
+ public void reserveIconSetIds(TrafficIncidentsListener listener, int numberOfIds) {
+ EList<Integer> iconSetIds = new BasicEList<Integer>();
+ for (int i = 1; i <= numberOfIds; i++) {
+ Integer iconSetId = reserveIconSetId();
+ iconSetIds.add(iconSetId);
+ }
+ listener.reserveIconSetIdsReply(iconSetIds);
+ }
+
+ private Integer reserveIconSetId() {
+ for (int i = 1; i < Integer.MAX_VALUE; i++) {
+ if (reservedIconSetIds.add(i)) {
+ return i;
+ }
+ }
+ throw new RuntimeException("No more IconSetId available");
+ }
+
+ @Override
+ public void freeIconSetIds(TrafficIncidentsListener listener, EList<Integer> iconSetIds) {
+ for (Integer iconSetId: iconSetIds) {
+ reservedIconSetIds.remove(iconSetId);
+ }
+
+ if (listener != null) {
+ listener.freeIconSetIdsReply();
+ }
+ }
+
+ @Override
+ public void addIconDefinitions(TrafficIncidentsListener listener, EList<IconDefinition> iconDefinitions) {
+ for (IconDefinition iconDefinition: iconDefinitions) {
+ iconDefinitionsMap.put(iconDefinition.getIconInfo(), iconDefinition);
+ }
+
+ if (listener != null) {
+ listener.addIconDefinitionsReply();
+ }
+ }
+
+ @Override
+ public void removeIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos) {
+ for (IconInfo iconInfo: iconInfos) {
+ iconDefinitionsMap.remove(iconInfo);
+ }
+
+ if (listener != null) {
+ listener.removeIconDefinitionsReply();
+ }
+ }
+
+ @Override
+ public void addIconSetDefinitions(TrafficIncidentsListener listener, EList<IconSet> iconSets) {
+ for (IconSet iconSet: iconSets) {
+ this.iconSets.add(iconSet);
+ }
+
+ if (listener != null) {
+ listener.addIconSetDefinitionsReply();
+ }
+ }
+
+ @Override
+ public void removeIconSetDefinitions(TrafficIncidentsListener listener, EList<Integer> iconSetIds) {
+ for (int iconSetId: iconSetIds) {
+ for (IconSet iconSet: iconSets) {
+ if (iconSet.getIconSetId() == iconSetId) {
+ iconSets.remove(iconSet);
+ break;
+ }
+ }
+ }
+
+ if (listener != null) {
+ listener.removeIconSetDefinitionsReply();
+ }
+ }
+
+ @Override
+ public void getIconSets(TrafficIncidentsListener listener) {
+ listener.getIconSetsReply(iconSets);
+ }
+
+ @Override
+ public void getIconDefinitions(TrafficIncidentsListener listener, EList<IconInfo> iconInfos) {
+ BasicEList<IconDefinition> requestedIconDefinitions = new BasicEList<IconDefinition>();
+ if (iconInfos.size() == 0) {
+ for (IconDefinition iconDefinition: iconDefinitionsMap.values()) {
+ requestedIconDefinitions.add(iconDefinition);
+ }
+ } else {
+ for (IconInfo iconInfo: iconInfos) {
+ requestedIconDefinitions.add(iconDefinitionsMap.get(iconInfo));
+ }
+ }
+
+ listener.getIconDefinitionsReply(requestedIconDefinitions);
+ }
+
+ @Override
+ public void reserveCategoryIds(TrafficIncidentsListener listener, int numberOfIds) {
+ EList<Integer> categoryIds = new BasicEList<Integer>();
+ for (int i = 1; i <= numberOfIds; i++) {
+ Integer categoryId = reserveCategoryId();
+ categoryIds.add(categoryId);
+ }
+ listener.reserveCategoryIdsReply(categoryIds);
+ }
+
+ private Integer reserveCategoryId() {
+ for (int i = 1; i < Integer.MAX_VALUE; i++) {
+ if (reservedCategoryIds.add(i)) {
+ return i;
+ }
+ }
+ throw new RuntimeException("No more IconSetId available");
+ }
+
+ @Override
+ public void freeCategoryIds(TrafficIncidentsListener listener, EList<Integer> categoryIds) {
+ for (Integer categoryId: categoryIds) {
+ reservedCategoryIds.remove(categoryId);
+ }
+
+ if (listener != null) {
+ listener.freeCategoryIdsReply();
+ }
+ }
+
+ @Override
+ public void removeCategoryDefinitions(TrafficIncidentsListener listener, EList<Integer> categoryIds) {
+ for (int categoryId: categoryIds) {
+ for (CategoryDefinition categoryDefinition: categoryDefinitions) {
+ if (categoryDefinition.getCategoryId() == categoryId) {
+ categoryDefinitions.remove(categoryDefinition);
+ break;
+ }
+ }
+ }
+
+ if (listener != null) {
+ listener.removeCategoryDefinitionsReply();
+ }
+ }
+
+ @Override
+ public void getCategoryDefinitions(TrafficIncidentsListener listener) {
+ listener.getCategoryDefinitionsReply(categoryDefinitions);
+ }
+
+ @Override
+ public void setApplicability(TrafficIncidentsListener listener, String expressionString) {
+ LOGGER.info("=> " + expressionString);
+
+ BooleanExpression filterExpression = FilterExprUtil.parseFilterExpression(expressionString);
+ if (filterExpression != null) {
+ LOGGER.info("filterExpression: " + filterExpression.toString());
+ } else {
+ LOGGER.info("filterExpression is null");
+ }
+ setApplicability(filterExpression);
+
+
+ if (listener != null) {
+ listener.setApplicabilityReply();
+ }
+ LOGGER.info("<= ");
+ }
+
+ public void setApplicability(BooleanExpression filterExpression) {
+ LOGGER.info("=> ");
+ if (filterExpression == null) {
+ applicabilityFilter = null;
+ // No need to check for incidents which aren't applicable anymore.
+ } else {
+ applicabilityFilter = new ExpressionFilter(filterExpression);
+ handleApplicabilityChanged();
+ }
+ LOGGER.info("<= ");
+ }
+
+ private void handleApplicabilityChanged() {
+ LOGGER.info("=> ");
+
+ // Create a list of current incidents which are no longer Applicable: a cancel list.
+ EList<ManagedTrafficIncident> incidentsToCancel = applyAcceptFilter(managedIncidents, applicabilityFilter);
+ LOGGER.info("incidentsToCancel: " + incidentsToCancel);
+
+ // Remove these from the current incidents.
+ for (ManagedTrafficIncident managedTrafficIncident: incidentsToCancel) {
+ String trafficIncidentManagementId = managedTrafficIncident.getxTrafficIncident().getTrafficIncidentId();
+ int trafficIncidentId = managedTrafficIncident.getTrafficIncident().getTrafficIncidentId();
+ xIncidentIdToManagedIncidentMap.remove(trafficIncidentManagementId);
+ incidentIdToManagedIncidentMap.remove(trafficIncidentId);
+ managedIncidents.remove(managedTrafficIncident);
+ LOGGER.info("Traffic Incident removed, Id = " + trafficIncidentId + ", managementId = " + trafficIncidentManagementId);
+ }
+
+ // Notify listeners in case of changes.
+ if (!incidentsToCancel.isEmpty()) {
+ notifyUpdateListeners();
+ }
+ LOGGER.info("<= ");
+ }
+
+ @Override
+ public void getApplicability(TrafficIncidentsListener listener) {
+ String expressionString = "";
+
+ if (applicabilityFilter != null) {
+ BooleanExpression filterExpression = applicabilityFilter.getExpression();
+ expressionString = filterExpression.toString();
+ }
+
+ listener.getApplicabilityReply(expressionString);
+ }
+
+ @Override
+ public void setTimeFormat(TrafficIncidentsListener listener, String timeFormat) {
+ trafficIncidentTextGenerator.setTimeFormat(timeFormat);
+
+ if (listener != null) {
+ listener.setTimeFormatReply();
+ }
+ }
+
+ @Override
+ public void setDateFormat(TrafficIncidentsListener listener, String dateFormat) {
+ trafficIncidentTextGenerator.setDateFormat(dateFormat);
+
+
+ if (listener != null) {
+ listener.setDateFormatReply();
+ }
+ }
+
+ @Override
+ public void setLengthUnit(TrafficIncidentsListener listener, LengthUnit lengthUnit) {
+ trafficIncidentTextGenerator.setLengthUnit(lengthUnit);
+
+ if (listener != null) {
+ listener.setLengthUnitReply();
+ }
+ }
+
+ @Override
+ public void setWeightUnit(TrafficIncidentsListener listener, WeightUnit weightUnit) {
+ trafficIncidentTextGenerator.setWeightUnit(weightUnit);
+
+ if (listener != null) {
+ listener.setWeightUnitReply();
+ }
+ }
+
+ public static EList<ManagedTrafficIncident> applyAcceptFilter(List<ManagedTrafficIncident> managedIncidents, Filter filter) {
+ LOGGER.info("=>");
+ EList<ManagedTrafficIncident> filteredManagedIncidents = new BasicEList<>();
+
+ for (ManagedTrafficIncident managedIncident: managedIncidents) {
+ if (filter.filter(managedIncident.getTrafficIncident())) {
+ LOGGER.info("Adding object to filteredList: " + managedIncident);
+ filteredManagedIncidents.add(managedIncident);
+ } else {
+ LOGGER.info("Object NOT added to filteredList: " + managedIncident);
+ }
+ }
+
+ LOGGER.info("<=");
+ return filteredManagedIncidents;
+ }
+
+ public static EList<ManagedTrafficIncident> applyFilters(List<ManagedTrafficIncident> managedIncidents, EList<Filter> filters) {
+ EList<ManagedTrafficIncident> filteredList = new BasicEList<>(managedIncidents);
+ for (Filter filter: filters) {
+ filteredList = applyAcceptFilter(filteredList, filter);
+ }
+ return filteredList;
+ }
+
+ private List<TrafficIncident> getTrafficIncidents() {
+ List<TrafficIncident> trafficIncidents = new ArrayList<>();
+
+ for (ManagedTrafficIncident managedTrafficIncident: managedIncidents) {
+ trafficIncidents.add(managedTrafficIncident.getTrafficIncident());
+ }
+
+ return trafficIncidents;
+ }
+
+ class HandleUpdateListenerRunnable implements Runnable {
+ private TrafficIncidentsListener updateListener;
+
+ public HandleUpdateListenerRunnable(TrafficIncidentsListener updateListener) {
+ this.updateListener = updateListener;
+ }
+
+ @Override
+ public void run() {
+ handleUpdateListener(updateListener);
+ }
+
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/UpdateListenerInfo.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/UpdateListenerInfo.java
new file mode 100755
index 0000000..78f4c86
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/refimpl/UpdateListenerInfo.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.refimpl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.common.RectangularArea;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+
+public class UpdateListenerInfo {
+ private Filter severitiesFilter = null;
+ private Filter categoriesFilter = null;
+ private Filter areasFilter = null;
+ private Date updateTime = null;
+ private List<Integer> incidentIdsToListener = null;
+
+ public UpdateListenerInfo(
+ EList<WarningLevel> severities,
+ EList<Integer> categoryIds,
+ EList<RectangularArea> areas) {
+
+ if (!severities.isEmpty()) {
+ severitiesFilter = TrafficIncidentFilterUtils.createWarningLevelFilter(severities);
+ }
+
+ if (!categoryIds.isEmpty()) {
+ categoriesFilter = TrafficIncidentFilterUtils.createCategoryIdsFilter(categoryIds);
+ }
+
+ if (!areas.isEmpty()) {
+ areasFilter = new AreasFilter(areas);
+ }
+ }
+
+ public List<Integer> getIncidentIdsToListener() {
+ return incidentIdsToListener;
+ }
+
+ public void setIncidentIdsToListener(List<Integer> incidentIdsToListener) {
+ this.incidentIdsToListener = incidentIdsToListener;
+ }
+
+ public Filter getSeveritiesFilter() {
+ return severitiesFilter;
+ }
+
+ public Filter getCategoriesFilter() {
+ return categoriesFilter;
+ }
+
+ public Filter getAreasFilter() {
+ return areasFilter;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+} \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/TrafficIncidentTextGenerator.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/TrafficIncidentTextGenerator.java
new file mode 100755
index 0000000..73050e5
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/TrafficIncidentTextGenerator.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.textgenerator;
+
+import org.genivi.common.Version;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+
+/**
+ * This interface is the interface for generating texts from a Traffic Incident data model.
+ * A text generator is not a service to be used by different clients,
+ * therefore it will be a plain C++ interface, instead of a D-Bus inteface.
+ */
+public interface TrafficIncidentTextGenerator {
+ /**
+ * Get the API version implemented by the TrafficIncidentTextGenerator.
+ * @return
+ */
+ public Version getVersion();
+
+ /**
+ * Set the default language for text generation.
+ * @param languageCode ISO 639-3 language code
+ * @param countryCode ISO 3166-1 alpha 3 country code
+ */
+ public void setLanguage(String languageCode, String countryCode);
+
+ public void setDateFormat(String dateFormat);
+
+ public void setTimeFormat(String timeFormat);
+
+ public void setLengthUnit(LengthUnit lengthUnit);
+
+ public void setWeightUnit(WeightUnit weightUnit);
+
+ String getText(TrafficIncident trafficIncident, TextDetailLevel textDetailLevel);
+
+ String[] getApplicabilityTexts(TrafficIncident trafficIncident);
+ String[] getCauseTexts(TrafficIncident trafficIncident);
+ String[] getAdviceTexts(TrafficIncident trafficIncident);
+ String getEffectText(TrafficIncident trafficIncident);
+ String getTendencyText(TrafficIncident trafficIncident);
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/BasicTextGenerator.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/BasicTextGenerator.java
new file mode 100755
index 0000000..2839100
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/BasicTextGenerator.java
@@ -0,0 +1,877 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.textgenerator.basictextgenerator;
+
+import java.text.MessageFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.common.CommonFactory;
+import org.genivi.common.Version;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.textgenerator.TrafficIncidentTextGenerator;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Accident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Fire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind;
+import org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment;
+import org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+
+public class BasicTextGenerator implements TrafficIncidentTextGenerator {
+ private final static Logger LOGGER = Logger.getLogger(BasicTextGenerator.class.getName());
+ private static final CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private static final Double KM_TO_MILES_FACTOR = 1.609344;
+ private static final Double KG_TO_POUNDS_FACTOR = 0.45359237; // 1 pound = 0.45359237 kilograms
+ private static final double FOOT_TO_METER_FACTOR = 0.304800; // 1 foot = 0,304 800 m
+ private static final int MAJOR_VERSION_NUMBER = 0;
+ private static final int MINOR_VERSION_NUMBER = 1;
+ private static final int MICRO_VERSION_NUMBER = 0;
+ private static final String VERSION_DATE = "13-3-2012";
+
+ private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
+ private static final String DEFAULT_TIME_FORMAT = "hh:mm a";
+ private static final LengthUnit DEFAULT_LENGTH_UNIT = LengthUnit.KILOMETERS;
+ private static final WeightUnit DEFAULT_WEIGHT_UNIT = WeightUnit.KILOGRAM;
+ private static final String DEFAULT_LANGUAGE = "nld";
+ private static final String DEFAULT_COUNTRY = null;
+
+ private static Version VERSION;
+ private static Map<String, String> languageMap = new HashMap<String, String>();
+ private static Map<String, String> countryMap = new HashMap<String, String>();
+ private static Map<LengthUnit, String> speedUnitMap = new HashMap<LengthUnit, String>();
+ private static Map<LengthUnit, String> lengthUnitMapLarge = new HashMap<LengthUnit, String>();
+
+ private SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMAT);
+ private SimpleDateFormat timeFormat = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
+ private LengthUnit lengthUnit = DEFAULT_LENGTH_UNIT;
+ private WeightUnit weightUnit = DEFAULT_WEIGHT_UNIT;
+ private String languageCode = DEFAULT_LANGUAGE;
+ private String countryCode = DEFAULT_COUNTRY;
+ private Locale locale = null;
+ private ResourceBundle textParts = null;
+ private MessageFormat messageFormat = new MessageFormat("");
+
+ static {
+ VERSION = COMMON_FACTORY.createVersion();
+ VERSION.setMajor(MAJOR_VERSION_NUMBER);
+ VERSION.setMinor(MINOR_VERSION_NUMBER);
+ VERSION.setMicro(MICRO_VERSION_NUMBER);
+ VERSION.setDate(VERSION_DATE);
+
+ speedUnitMap.put(LengthUnit.KILOMETERS, "km/h");
+ speedUnitMap.put(LengthUnit.MILES, "mph");
+
+ lengthUnitMapLarge.put(LengthUnit.KILOMETERS, "km");
+ lengthUnitMapLarge.put(LengthUnit.MILES, "mile");
+
+ languageMap.put("deu", "de");
+ languageMap.put("eng", "en");
+ languageMap.put("fra", "fr");
+ languageMap.put("nld", "nl");
+
+ countryMap.put("nld", "NL");
+ countryMap.put("gbr", "GB");
+ countryMap.put("usa", "US");
+ countryMap.put("fra", "FR");
+ countryMap.put("deu", "DE");
+ }
+
+ public BasicTextGenerator() {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("=>");
+ handleLanguageChange();
+ }
+
+ private void handleLanguageChange() {
+ String twoCharLanguageCode = languageMap.get(languageCode);
+ String twoCharCountryCode = null;
+ if (countryCode != null) {
+ twoCharCountryCode = countryMap.get(countryCode);
+ }
+
+ if (twoCharCountryCode != null) {
+ locale = new Locale(twoCharLanguageCode, twoCharCountryCode);
+ } else {
+ locale = new Locale(twoCharLanguageCode);
+ }
+ LOGGER.info("locale = " + locale.getDisplayName());
+ messageFormat.setLocale(locale);
+ textParts = ResourceBundle.getBundle("org.genivi.trafficincidentsservice.textgenerator.basictextgenerator.TextParts", locale);
+ }
+
+ @Override
+ public Version getVersion() {
+ return VERSION;
+ }
+
+ @Override
+ public void setLanguage(String languageCode, String countryCode) {
+ LOGGER.info("=> languageCode = " + languageCode + ", countryCode = " + countryCode);
+ this.languageCode = languageCode;
+ this.countryCode = countryCode;
+
+ handleLanguageChange();
+ }
+
+ @Override
+ public void setDateFormat(String dateFormat) {
+ this.dateFormat = new SimpleDateFormat(dateFormat);
+ }
+
+ @Override
+ public void setTimeFormat(String timeFormat) {
+ this.timeFormat = new SimpleDateFormat(timeFormat);
+ }
+
+ @Override
+ public void setLengthUnit(LengthUnit lengthUnit) {
+ this.lengthUnit = lengthUnit;
+ }
+
+ @Override
+ public void setWeightUnit(WeightUnit weightUnit) {
+ this.weightUnit = weightUnit;
+ }
+
+ @Override
+ public String getText(TrafficIncident trafficIncident,
+ TextDetailLevel textDetailLevel) {
+ StringBuffer buf = new StringBuffer();
+
+ fillLocation(buf, trafficIncident);
+
+ fillEffect(buf, trafficIncident);
+
+ fillAverageSpeedAbsolute(buf, trafficIncident);
+
+ fillSpeedLimit(buf, trafficIncident, textDetailLevel);
+
+ fillExpectedSpeed(buf, trafficIncident, textDetailLevel);
+
+ fillLengthAffected(buf, trafficIncident);
+
+ fillDelay(buf, trafficIncident);
+
+ fillValidityPeriod(buf, trafficIncident);
+
+ fillTendencyPart(buf, trafficIncident, textDetailLevel);
+
+ // Causes
+ if (textDetailLevel == TextDetailLevel.FULL &&
+ trafficIncident.isSetCauses()) {
+ buf.append(textParts.getString("causedByPart"));
+
+ boolean first = true;
+ for (Cause cause: trafficIncident.getCauses()) {
+ if (first) {
+ first = false;
+ } else {
+ buf.append(", ");
+ }
+ fillCause(buf, cause);
+ }
+ }
+
+ // Advices
+ if (textDetailLevel == TextDetailLevel.FULL &&
+ trafficIncident.isSetAdvices()) {
+ buf.append(", ");
+ buf.append(textParts.getString("advicePart"));
+
+ boolean first = true;
+ for (Advice advice: trafficIncident.getAdvices()) {
+ if (first) {
+ first = false;
+ } else {
+ buf.append(", ");
+ }
+ fillAdvice(buf, advice);
+ }
+ }
+ buf.append(".");
+
+ fillApplicabilityPart(buf, trafficIncident);
+
+ return buf.toString();
+ }
+
+ private void formatDateTime(StringBuffer buf, Date dateTime) {
+ if (dateIsToday(dateTime)) {
+ // no date printed
+ } else if (dateIsTomorrow(dateTime)) {
+ buf.append(textParts.getString("tomorrow"));
+ } else {
+ buf.append(dateFormat.format(dateTime));
+ buf.append(" ");
+ }
+
+ }
+
+ private boolean dateIsToday(Date dateTime) {
+ GregorianCalendar dateTimeCalendar = new GregorianCalendar();
+ dateTimeCalendar.setTime(dateTime);
+
+ GregorianCalendar todayCalendar = new GregorianCalendar();
+ todayCalendar.setTime(new Date());
+
+ if ((dateTimeCalendar.get(Calendar.YEAR) == todayCalendar.get(Calendar.YEAR)) &&
+ (dateTimeCalendar.get(Calendar.DAY_OF_YEAR) == todayCalendar.get(Calendar.DAY_OF_YEAR))) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private boolean dateIsTomorrow(Date dateTime) {
+ GregorianCalendar dateTimeCalendar = new GregorianCalendar();
+ dateTimeCalendar.setTime(dateTime);
+
+ GregorianCalendar tomorrowCalendar = new GregorianCalendar();
+ tomorrowCalendar.setTime(new Date());
+ tomorrowCalendar.add(Calendar.DATE, 1);
+
+ if ((dateTimeCalendar.get(Calendar.YEAR) == tomorrowCalendar.get(Calendar.YEAR)) &&
+ (dateTimeCalendar.get(Calendar.DAY_OF_YEAR) == tomorrowCalendar.get(Calendar.DAY_OF_YEAR))) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public String[] getApplicabilityTexts(TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetApplicability()) {
+ StringBuffer buf = new StringBuffer();
+
+ List<Applicability> applicabilities = trafficIncident.getApplicability();
+ String[] texts = new String[applicabilities.size()];
+
+ int i = 0;
+ for (Applicability applicability: applicabilities) {
+ buf.setLength(0);
+ fillApplicability(buf, applicability);
+ texts[i++] = buf.toString();
+ }
+
+ return texts;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public String[] getCauseTexts(TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetCauses()) {
+ StringBuffer buf = new StringBuffer();
+
+ List<Cause> causes = trafficIncident.getCauses();
+ String[] texts = new String[causes.size()];
+
+ int i = 0;
+ for (Cause cause: causes) {
+ buf.setLength(0);
+ fillCause(buf, cause);
+ LOGGER.fine("buf = " + buf.toString());
+ texts[i++] = buf.toString();
+ }
+
+ for (String text: texts) {
+ LOGGER.fine("text = " + text);
+ }
+ return texts;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public String[] getAdviceTexts(TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetAdvices()) {
+ StringBuffer buf = new StringBuffer();
+
+ List<Advice> advices = trafficIncident.getAdvices();
+ String[] texts = new String[advices.size()];
+
+ int i = 0;
+ for (Advice advice: advices) {
+ buf.setLength(0);
+ fillAdvice(buf, advice);
+ LOGGER.fine("buf = " + buf.toString());
+ texts[i++] = buf.toString();
+ }
+
+ for (String text: texts) {
+ LOGGER.fine("text = " + text);
+ }
+ return texts;
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public String getEffectText(TrafficIncident trafficIncident) {
+ StringBuffer buf = new StringBuffer();
+
+ fillEffect(buf, trafficIncident);
+
+ return buf.toString();
+ }
+
+ @Override
+ public String getTendencyText(TrafficIncident trafficIncident) {
+ StringBuffer buf = new StringBuffer();
+
+ fillTendency(buf, trafficIncident);
+
+ return buf.toString();
+ }
+
+
+ private void fillLocation(StringBuffer buf, TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetLocationInfo()) {
+ LinearLocationInfo linearLocationInfo = (LinearLocationInfo) trafficIncident.getLocationInfo();
+
+ if (linearLocationInfo.getFromLocationParentName() != null &&
+ linearLocationInfo.getToLocationParentName() != null) {
+ messageFormat.applyPattern(textParts.getString("locationTemplate"));
+ Object[] messageArguments = {
+ linearLocationInfo.getName(),
+ linearLocationInfo.getFromLocationParentName(),
+ linearLocationInfo.getToLocationParentName(),
+ linearLocationInfo.getFromLocationName(),
+ linearLocationInfo.getToLocationName()
+ };
+ messageFormat.format(messageArguments, buf, null);
+ } else {
+ messageFormat.applyPattern(textParts.getString("locationTemplateShort"));
+ Object[] messageArguments = {
+ linearLocationInfo.getName(),
+ linearLocationInfo.getFromLocationName(),
+ linearLocationInfo.getToLocationName()
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+ }
+ }
+
+ private void fillEffect(StringBuffer buf, TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetEffectCode()) {
+ buf.append(trafficIncident.getEffectCode().getLiteral());
+ } else {
+ buf.append("<NO EFFECTCODE>");
+ }
+ }
+
+ private void fillAverageSpeedAbsolute(StringBuffer buf, TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetAverageSpeedAbsolute()) {
+ messageFormat.applyPattern(textParts.getString("averageSpeedAbsoluteTemplate"));
+ double speed = msToKmh(trafficIncident.getAverageSpeedAbsolute());
+ if (lengthUnit == LengthUnit.MILES) {
+ speed = kmToMiles(speed);
+ }
+ Object[] messageArguments = {
+ speed,
+ speedUnitMap.get(lengthUnit)
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+ }
+
+ private void fillSpeedLimit(StringBuffer buf, TrafficIncident trafficIncident, TextDetailLevel textDetailLevel) {
+ if (textDetailLevel == TextDetailLevel.FULL &&
+ trafficIncident.isSetSegmentSpeedLimit()) {
+ messageFormat.applyPattern(textParts.getString("speedLimitTemplate"));
+ double speedLimit = msToKmh(trafficIncident.getSegmentSpeedLimit());
+ if (lengthUnit == LengthUnit.MILES) {
+ speedLimit = kmToMiles(speedLimit);
+ }
+ Object[] messageArguments = {
+ speedLimit,
+ speedUnitMap.get(lengthUnit)
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+ }
+
+ private void fillExpectedSpeed(StringBuffer buf, TrafficIncident trafficIncident, TextDetailLevel textDetailLevel) {
+ if (textDetailLevel == TextDetailLevel.FULL &&
+ trafficIncident.isSetExpectedSpeedAbsolute()) {
+ messageFormat.applyPattern(textParts.getString("expectedSpeedTemplate"));
+ double expectedSpeed = msToKmh(trafficIncident.getExpectedSpeedAbsolute());
+ if (lengthUnit == LengthUnit.MILES) {
+ expectedSpeed = kmToMiles(expectedSpeed);
+ }
+ Object[] messageArguments = {
+ expectedSpeed,
+ speedUnitMap.get(lengthUnit)
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+ }
+
+ private void fillLengthAffected(StringBuffer buf, TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetLengthAffected()) {
+ messageFormat.applyPattern(textParts.getString("lengthAffectedTemplate"));
+ double lengthAffected = trafficIncident.getLengthAffected() / 1000.0;
+ if (lengthUnit == LengthUnit.MILES) {
+ lengthAffected = kmToMiles(lengthAffected);
+ }
+ Object[] messageArguments = {
+ lengthAffected,
+ lengthUnitMapLarge.get(lengthUnit)
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+ }
+
+ private void fillDelay(StringBuffer buf, TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetDelay()) {
+ messageFormat.applyPattern(textParts.getString("delayTemplate"));
+ Object[] messageArguments = {
+ trafficIncident.getDelay()
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+ }
+
+
+ private void fillValidityPeriod(StringBuffer buf, TrafficIncident trafficIncident) {
+ // StartTime and StopTime
+ if (trafficIncident.isSetStartTime()) {
+ buf.append(textParts.getString("fromPart"));
+ formatDateTime(buf, trafficIncident.getStartTime());
+ buf.append(timeFormat.format(trafficIncident.getStartTime()));
+ }
+ if (trafficIncident.isSetStopTime()) {
+ buf.append(textParts.getString("tillPart"));
+ formatDateTime(buf, trafficIncident.getStopTime());
+ buf.append(timeFormat.format(trafficIncident.getStopTime()));
+ }
+ }
+
+ private void fillTendencyPart(StringBuffer buf, TrafficIncident trafficIncident, TextDetailLevel textDetailLevel) {
+ if (textDetailLevel == TextDetailLevel.FULL &&
+ trafficIncident.isSetTendency()) {
+ buf.append(textParts.getString("tendencyPart"));
+ fillTendency(buf, trafficIncident);
+ }
+ }
+
+ private void fillTendency(StringBuffer buf, TrafficIncident trafficIncident) {
+ if (trafficIncident.isSetTendency()) {
+ buf.append(trafficIncident.getTendency().getLiteral());
+ }
+ }
+
+ private void fillCause(StringBuffer buf, Cause cause) {
+ String causeText = cause.getMainCause().getLiteral();
+ if (cause instanceof DirectCause) {
+ DirectCause directCause = (DirectCause) cause;
+
+
+ // subCause
+ Object subCause = directCause.getSubCause();
+
+ if (subCause != null) {
+ switch (cause.getMainCause()) {
+ case TRAFFIC_CONGESTION:
+ causeText = ((TrafficCongestion) subCause).getLiteral();
+ break;
+
+ case ACCIDENT:
+ causeText = ((Accident) subCause).getLiteral();
+ break;
+
+ case ROADWORKS:
+ causeText = ((RoadWorks) subCause).getLiteral();
+ break;
+
+ case NARROW_LANES:
+ causeText = ((NarrowLanes) subCause).getLiteral();
+ break;
+
+ case IMPASSIBILITY:
+ causeText = ((Impassibility) subCause).getLiteral();
+ break;
+
+ case SLIPPERY_ROAD:
+ causeText = ((SlipperyRoad) subCause).getLiteral();
+ break;
+
+ case AQUAPLANING:
+ // No SubCause
+ break;
+
+ case FIRE:
+ causeText = ((Fire) subCause).getLiteral();
+ break;
+
+ case HAZARDOUS_DRIVING_CONDITIONS:
+ causeText = ((HazardousDrivingConditions) subCause).getLiteral();
+ break;
+
+ case OBJECTS_ON_THE_ROAD:
+ causeText = ((ObjectsOnTheRoad) subCause).getLiteral();
+ break;
+
+ case ANIMALS_ON_ROADWAY:
+ causeText = ((AnimalsOnRoadway) subCause).getLiteral();
+ break;
+
+ case PEOPLE_ON_ROADWAY:
+ causeText = ((PeopleOnRoadway) subCause).getLiteral();
+ break;
+
+ case BROKEN_DOWN_VEHICLES:
+ causeText = ((BrokenDownVehicles) subCause).getLiteral();
+ break;
+
+ case VEHICLE_ON_WRONG_CARRIAGEWAY:
+ // No SubCause
+ break;
+
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ causeText = ((RescueAndRecoveryWorkInProgress) subCause).getLiteral();
+ break;
+
+ case REGULATORY_MEASURE:
+ causeText = ((RegulatoryMeasure) subCause).getLiteral();
+ break;
+
+ case EXTREME_WEATHER_CONDITIONS:
+ causeText = ((ExtremeWeatherConditions) subCause).getLiteral();
+ break;
+
+ case VISIBILITY_REDUCED:
+ causeText = ((VisibilityReduced) subCause).getLiteral();
+ break;
+
+ case PRECIPITATION:
+ causeText = ((Precipitation) subCause).getLiteral();
+ break;
+
+ case RECKLESS_PERSONS:
+ causeText = ((RecklessPersons) subCause).getLiteral();
+ break;
+
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED:
+ // No SubCause
+ break;
+
+ case TRAFFIC_REGULATIONS_CHANGED:
+ // No SubCause
+ break;
+
+ case MAJOR_EVENT:
+ causeText = ((MajorEvent) subCause).getLiteral();
+ break;
+
+ case SERVICE_NOT_OPERATING:
+ causeText = ((ServiceNotOperating) subCause).getLiteral();
+ break;
+
+ case SERVICE_NOT_USEABLE:
+ causeText = ((ServiceNotUsable) subCause).getLiteral();
+ break;
+
+ case SLOW_MOVING_VEHICLES:
+ causeText = ((SlowMovingVehicles) subCause).getLiteral();
+ break;
+
+ case DANGEROUS_END_OF_QUEUE:
+ causeText = ((DangerousEndOfQueue) subCause).getLiteral();
+ break;
+
+ case RISK_OF_FIRE:
+ causeText = ((RiskOfFire) subCause).getLiteral();
+ break;
+
+ case TIME_DELAY:
+ causeText = ((TimeDelay) subCause).getLiteral();
+ break;
+
+ case POLICE_CHECKPOINT:
+ causeText = ((PoliceCheckpoint) subCause).getLiteral();
+ break;
+
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ causeText = ((MalfunctioningRoadsideEquipment) subCause).getLiteral();
+ break;
+ }
+ }
+ buf.append(" ");
+ buf.append(causeText);
+
+ // lengthAffected
+ if (directCause.getLengthAffected() != null) {
+ messageFormat.applyPattern(textParts.getString("lengthAffectedTemplate"));
+ double lengthAffected = directCause.getLengthAffected() / 1000.0;
+ if (lengthUnit == LengthUnit.MILES) {
+ lengthAffected = kmToMiles(lengthAffected);
+ }
+ Object[] messageArguments = {
+ lengthAffected,
+ lengthUnitMapLarge.get(lengthUnit)
+ };
+ messageFormat.format(messageArguments, buf, null);
+ }
+
+ // laneRestrictions
+ LaneRestrictions laneRestrictions = directCause.getLaneRestrictions();
+ if (laneRestrictions != null) {
+ buf.append(textParts.getString("laneRestrictionsPart"));
+ if (laneRestrictions.getNumberOfLanes() != null) {
+ buf.append(String.valueOf(laneRestrictions.getNumberOfLanes()));
+ buf.append(" ");
+ }
+ buf.append(laneRestrictions.getLaneRestrictionType().getLiteral());
+ }
+
+ // freeText
+ if (directCause.isSetFreeText()) {
+ buf.append(" ");
+ buf.append(directCause.getFreeText());
+ }
+
+ // unverifiedInformation
+ if (directCause.isUnverifiedInformation()) {
+ buf.append(textParts.getString("unverifiedInformationPart"));
+ }
+ } else {
+ buf.append(" ");
+ buf.append(causeText);
+ }
+ }
+
+ private void fillApplicabilityPart(StringBuffer buf, TrafficIncident trafficIncident) {
+ // Applicability
+ if (trafficIncident.isSetApplicability()) {
+ buf.append(textParts.getString("applicabilityPart"));
+
+ for (Applicability applicability: trafficIncident.getApplicability()) {
+ fillApplicability(buf, applicability);
+ }
+ }
+ }
+
+ private void fillApplicability(StringBuffer buf, Applicability applicability) {
+ if (applicability.getVehicleType() != null) {
+ buf.append(" ");
+ buf.append(applicability.getVehicleType().getLiteral());
+ }
+
+ for (VehicleRelatedRestriction vehicleRelatedRestriction: applicability.getVehicleRelatedRestrictions()) {
+ buf.append(" ");
+ buf.append(vehicleRelatedRestriction.getRestrictionType().getLiteral());
+
+ fillRestrictionTypeValueAndUnit(buf, vehicleRelatedRestriction.getRestrictionType(), vehicleRelatedRestriction.getRestrictionValue());
+ }
+ }
+
+ private void fillAdvice(StringBuffer buf, Advice advice) {
+ String adviceText = advice.getMainAdvice().getLiteral();
+ // subCause
+ Object subAdviceCode = null;
+ if (advice.isSetSubAdvice()) {
+ subAdviceCode = advice.getSubAdvice();
+ }
+
+ if (subAdviceCode != null) {
+ switch (advice.getMainAdvice()) {
+ case AVOID_THE_AREA:
+ case DO_NOT_DIVERT:
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE:
+ case FOLLOW_POLICE_INSTRUCTIONS:
+ case NO_DIVERSION_TO_RECOMMEND:
+ case SWITCH_ON_RADIO:
+ case USE_HARD_SHOULDER_AS_LANE:
+ case WAIT_FOR_CONVOI:
+ case WAIT_FOR_IMPROVED_WEATHER:
+ case WAIT_FOR_POLICE_PATROL:
+ // No SubCause
+ break;
+
+ case DO_NOT_LEAVE_YOUR_VEHICLE:
+ adviceText = ((DoNotLeaveYourVehicle) subAdviceCode).getLiteral();
+ break;
+
+ case DRIVE_CAREFULLY:
+ adviceText = ((DriveCarefully) subAdviceCode).getLiteral();
+ break;
+
+ case DRIVING_NOT_ALLOWED:
+ adviceText = ((DrivingNotAllowed) subAdviceCode).getLiteral();
+ break;
+
+ case FOLLOW_DIVERSION:
+ adviceText = ((FollowDiversion) subAdviceCode).getLiteral();
+ break;
+
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND:
+ adviceText = ((GivingPathVehiclesFromBehind) subAdviceCode).getLiteral();
+ break;
+
+ case OVERTAKING_NOT_ALLOWED:
+ adviceText = ((OvertakingNotAllowed) subAdviceCode).getLiteral();
+ break;
+
+ case USE_TOLL_LANES:
+ adviceText = ((UseTollLanes) subAdviceCode).getLiteral();
+ break;
+ }
+ }
+ buf.append(" ");
+ buf.append(adviceText);
+ }
+
+ private void fillRestrictionTypeValueAndUnit(StringBuffer buf, RestrictionType restrictionType, Integer restrictionValue) {
+ if (restrictionValue == null) {
+ return;
+ }
+
+ double value = restrictionValue;
+ String unit = null;
+ switch (restrictionType) {
+ // units in Tonnes
+ case AXLE_LOAD_GREATER_THAN:
+ case AXLE_LOAD_LESS_THAN:
+ case WEIGHT_GREATER_THAN:
+ case WEIGHT_LESS_THAN:
+ switch (weightUnit) {
+ case KILOGRAM:
+ value = value / 1000;
+ unit = textParts.getString("tonnes");
+ break;
+
+ case POUND:
+ value = kgToPounds(value);
+ unit = textParts.getString("pounds");
+ break;
+ }
+ break;
+
+ // units in m
+ case HEIGTH_GREATER_THAN:
+ case HEIGTH_LESS_THAN:
+ case LENGTH_GREATER_THAN:
+ case LENGTH_LESS_THAN:
+ case WIDTH_GREATER_THAN:
+ case WIDTH_LESS_THAN:
+ switch (lengthUnit) {
+ case KILOMETERS:
+ unit = "m";
+ value = value / 100;
+ break;
+
+ case MILES:
+ unit = textParts.getString("foot");
+ value = meterToFoot(value / 100);
+ break;
+ }
+ break;
+
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3:
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4:
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4:
+ case VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5:
+ case EVEN_NUMBER_PLATE:
+ case ODD_NUMBER_PLATE:
+ case PERSONS_IN_VEHICLE_LESS_THAN:
+ case PERSONS_IN_VEHICLE_MORE_THAN:
+ case WITH_TRAILER:
+ case WITH_CARAVAN:
+ case WITHOUT_SNOW_CHAIN:
+ case WITHOUT_WINTER_TYRE:
+ case RESIDENTS_TRAFFIC:
+ case WITH_LPG_ENGINE:
+ case WITH_PETROL_ENGINE:
+ case WITH_DIESEL_ENGINE:
+ case WITH_DESTINATION_IN_GIVEN_AREA:
+ case THROUGH_TRAFFIC:
+ // No unit
+ break;
+ }
+
+ buf.append(" ");
+ buf.append(String.valueOf(value));
+
+ if (unit != null) {
+ buf.append(" ");
+ buf.append(unit);
+ }
+ }
+
+ public static double msToKmh(int ms) {
+ return 3600.0 * ms / 1000.0;
+ }
+
+ public static double kmToMiles(double km) {
+ return km / KM_TO_MILES_FACTOR;
+ }
+
+ public static double metersToYards(double length) {
+ return 0.0;
+ }
+
+ public static double kgToPounds(double kg) {
+ return kg / KG_TO_POUNDS_FACTOR;
+ }
+
+ public static double meterToFoot(double meter) {
+ return meter / FOOT_TO_METER_FACTOR;
+ }
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts.java
new file mode 100755
index 0000000..18efb81
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.textgenerator.basictextgenerator;
+
+import java.util.ListResourceBundle;
+
+public class TextParts extends ListResourceBundle {
+ public Object[][] getContents() {
+ return contents;
+ }
+
+ private Object[][] contents = {
+ {"locationTemplate", "On the {0} from {1} to {2} between {3} and {4}: "},
+ {"locationTemplateShort", "On the {0} between {1} and {2}: "},
+ {"averageSpeedAbsoluteTemplate", " with an average driving speed of {0,number} {1}"},
+ {"speedLimitTemplate", " with a speedlimit of {0,number} {1}"},
+ {"expectedSpeedTemplate", " with an expected speed of {0,number} {1}"},
+ {"lengthAffectedTemplate", " over a length of {0,number} {1}"},
+ {"delayTemplate", " resulting in a delay of {0} minutes"},
+ {"fromPart", " from "},
+ {"tillPart", " till "},
+ {"tendencyPart", " tendency is "},
+ {"causedByPart", " caused by"},
+ {"advicePart", "advice"},
+ {"laneRestrictionsPart", " lane restrictions "},
+ {"unverifiedInformationPart", " (unverified information)"},
+ {"applicabilityPart", " This information is only applicable for:"},
+ {"tomorrow", "tomorrow "},
+ {"tonnes", "tonnes"},
+ {"pounds", "pound"},
+ {"foot", "feet"}
+ };
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en.java
new file mode 100755
index 0000000..5524367
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.textgenerator.basictextgenerator;
+
+import java.util.ListResourceBundle;
+
+public class TextParts_en extends ListResourceBundle {
+ public Object[][] getContents() {
+ return contents;
+ }
+
+ private Object[][] contents = {
+ {"locationTemplate", "On the {0} from {1} to {2} between {3} and {4}: "},
+ {"locationTemplateShort", "On the {0} between {1} and {2}: "},
+ {"averageSpeedAbsoluteTemplate", " with an average driving speed of {0,number} {1}"},
+ {"speedLimitTemplate", " with a speedlimit of {0,number} {1}"},
+ {"expectedSpeedTemplate", " with an expected speed of {0,number} {1}"},
+ {"lengthAffectedTemplate", " over a length of {0,number} {1}"},
+ {"delayTemplate", " resulting in a delay of {0} minutes"},
+ {"fromPart", " from "},
+ {"tillPart", " till "},
+ {"tendencyPart", " tendency is "},
+ {"causedByPart", " caused by"},
+ {"advicePart", "advice"},
+ {"laneRestrictionsPart", " lane restrictions "},
+ {"unverifiedInformationPart", " (unverified information)"},
+ {"applicabilityPart", " This information is only applicable for:"},
+ {"tomorrow", "tomorrow "},
+ {"tonnes", "tonnes"},
+ {"pounds", "pound"},
+ {"foot", "feet"}
+ };
+} \ No newline at end of file
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en_US.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en_US.java
new file mode 100755
index 0000000..5a5013a
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_en_US.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.textgenerator.basictextgenerator;
+
+import java.util.ListResourceBundle;
+
+public class TextParts_en_US extends ListResourceBundle {
+ public Object[][] getContents() {
+ return contents;
+ }
+
+ private Object[][] contents = {
+ {"locationTemplate", "On the {0} from {1} to {2} between {3} and {4}: "},
+ {"locationTemplateShort", "On the {0} between {1} and {2}: "},
+ {"averageSpeedAbsoluteTemplate", " with an av. speed of {0,number} {1}"},
+ {"speedLimitTemplate", " with a speedlimit of {0,number} {1}"},
+ {"expectedSpeedTemplate", " with an expected speed of {0,number} {1}"},
+ {"lengthAffectedTemplate", " over a length of {0,number} {1}"},
+ {"delayTemplate", " resulting in a dlay of {0} minutes"},
+ {"fromPart", " from "},
+ {"tillPart", " till "},
+ {"tendencyPart", " tendency "},
+ {"causedByPart", " caused by"},
+ {"advicePart", "advice"},
+ {"laneRestrictionsPart", " lane restr. "},
+ {"unverifiedInformationPart", " (unverified info)"},
+ {"applicabilityPart", " This info is only appl. for:"},
+ {"tomorrow", "tomorrow "},
+ {"tonnes", "tonnes"},
+ {"pounds", "pound"},
+ {"foot", "feet"}
+ };
+}
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_nl.java b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_nl.java
new file mode 100755
index 0000000..d0df755
--- /dev/null
+++ b/src/traffic-incidents-service/org.genivi.trafficinfo/src/org/genivi/trafficincidentsservice/textgenerator/basictextgenerator/TextParts_nl.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficincidentsservice.textgenerator.basictextgenerator;
+
+import java.util.ListResourceBundle;
+
+public class TextParts_nl extends ListResourceBundle {
+ public Object[][] getContents() {
+ return contents;
+ }
+
+ private Object[][] contents = {
+ {"locationTemplate", "Op de {0} van {1} naar {2} tussen {3} en {4}: "},
+ {"locationTemplateShort", "Op de {0} tussen {1} en {2}: "},
+ {"averageSpeedAbsoluteTemplate", " met een gemiddelde rijsnelheid van {0,number} {1}"},
+ {"speedLimitTemplate", " met een maximum snelheid van {0,number} {1}"},
+ {"expectedSpeedTemplate", " met een verwachtte snelheid van {0,number} {1}"},
+ {"lengthAffectedTemplate", " over een lengte van {0,number} {1}"},
+ {"delayTemplate", " resulterend in een vertraging van {0} minuten"},
+ {"fromPart", " van "},
+ {"tillPart", " tot "},
+ {"tendencyPart", " tendens is "},
+ {"causedByPart", " veroorzaakt door"},
+ {"advicePart", "advies"},
+ {"laneRestrictionsPart", " rijstrook beperkingen "},
+ {"unverifiedInformationPart", " (informatie niet geverifieerd)"},
+ {"applicabilityPart", " Deze informatie is alleen van toepassing voor:"},
+ {"tomorrow", "morgen "},
+ {"tonnes", "ton"},
+ {"pounds", "pond"},
+ {"foot", "voet"}
+ };
+
+}
diff --git a/test/traffic-incidents-service/ReadMe.txt b/test/traffic-incidents-service/ReadMe.txt
new file mode 100755
index 0000000..dab365d
--- /dev/null
+++ b/test/traffic-incidents-service/ReadMe.txt
@@ -0,0 +1,219 @@
+Introduction
+============
+This folder contains:
+
+feed
+----
+This folder contains all code to feed test TrafficIncidents into a TrafficIncidentsService.
+
+hmi
+---
+This folder contains:
+- Example clients for the TrafficIncidentsService.
+- A 'main' to run the test feed, the service and the clients (without D-Bus) within Eclipse.
+- A project to create an installer for running the test feed, the service and the clients (with D-Bus) on Linux.
+
+
+
+Project structure
+=================
+This project consists of a number of Eclipse projects.
+Data models are created with the Eclipse Modeling Framework (EMF), so EMF has to be installed in your Eclipse in order to compile and run the projects. All projects which contain an EMF model, have an extension '-model'.
+Each project has a 'ReadMe.confluence' file, which provides basic information on the project.
+The following package naming convention is used:
+
+org.genivi:
+Basename for all packages.
+
+ tpegtecfeed:
+ Classes that could be re-used in GENIVI.
+
+ trafficinfo:
+ All other code of this PoC, i.e. code to demonstrate the use of the TrafficIncidentsService.
+
+ tpeg:
+ TPEG related classes.
+
+
+Building and running the complete PoC in Eclipse (no D-Bus)
+===========================================================
+The repository contains the Eclipse projects, but not an Eclipse WorkSpace. So this has to be created manually.
+Start Eclipse and chose your 'ivi-navigation/test/traffic-incidents-service' folder as WorkSpace. Import all the projects.
+
+Database:
+The PoC uses a small database: tomtom_utrecht_2008_04.db3
+This database can be downloaded from http://www.openlr.org/testdata.html, using the link below the map picture.
+The database is part of the archive: tomtom-openlr-testdata-utrecht.zip
+The database has to be installed in: 'ivi-navigation/src/traffic-incidents-service/org.genivi.trafficinfo/resources
+
+
+Eclipse projects - feed
+=======================
+
+org.genivi.trafficincidentsfeed.tpegtec
+---------------------------------------
+Reference implementation of a TPEG-TEC Feed.
+Packages:
+
+org.genivi.tpegtecfeed.refimpl
+Reference implementation of a TPEG-TEC Feed. This Feed receives TPEG Service Component Frames from the TPEG Framework and translates the information to TrafficIncidents which are handed over to the TrafficIncidents service, via the TrafficIncidentUpdates interface.
+
+
+org.genivi.trafficinfo.tpeg.sni-model
+-------------------------------------
+This project contains the data model of the TPEG-SNI application.
+Packages:
+
+org.genivi.trafficinfo.tpeg.snitypes
+The TPEG-SNI data model
+
+org.genivi.trafficinfo.tpeg.snitypes.impl
+Implementation of org.genivi.trafficinfo.tpeg.snitypes.
+
+org.genivi.trafficinfo.tpeg.snitypes.util
+Utility classes related to org.genivi.trafficinfo.tpeg.snitypes.
+
+
+org.genivi.trafficinfo.tpeg.tec.event-model
+-------------------------------------------
+This project defines TPEG-TEC Event data model. This model is used to generate TEC Events on the server side and send these events to the client.
+This model is not part of any GENIVI interface, it is only used as part of the Proof of Concept.
+Packages:
+
+org.genivi.trafficinfo.tpeg.tec.event
+The PEG-TEC Event data model.
+
+org.genivi.trafficinfo.tpeg.tec.event.impl
+Implementation of org.genivi.trafficinfo.tpeg.tec.event.
+
+org.genivi.trafficinfo.tpeg.tec.event.util
+Utility classes related to org.genivi.trafficinfo.tpeg.tec.event.
+
+
+org.genivi.trafficinfo.tpeg.tecservice
+--------------------------------------
+This project contains a TPEG TEC service implementation for testing purposes. The TestPlayerTecService cycles through a small set of TEC messages.
+Packages:
+
+org.genivi.trafficinfo.tpeg.tecservice.testsetplayer
+Contains the TestPlayerTecService.
+
+
+org.genivi.trafficinfo.tpegfwk
+------------------------------
+Packages:
+
+org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk
+TPEG framework interfaces for the client side.
+
+org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.impl
+Mininal implementation of the client side service framework.
+
+org.genivi.trafficinfo.tpeg.clientside.broadcastadaptationlayer.refimpl
+Reference implementation for a client side Broadcast adaptation layer.
+
+org.genivi.trafficinfo.tpeg.registeredvalues
+Contains TPEG services related values registered with TISA. For now it contains the registered Application Ids (for testing only).
+
+org.genivi.trafficinfo.tpeg.serverside.broadcast.app.fwk
+Interface for a TPEG application on the server side, in a broadcast framework.
+
+org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk
+Interface for a TPEG framework on the server side, in a broadcast framework.
+
+org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.impl
+Minimal implementation of the server side service framework.
+
+
+org.genivi.trafficinfo.tpegfwktypes-model
+-----------------------------------------
+This project defines datatypes related to the TPEG framework.
+Packages:
+
+org.genivi.trafficinfo.tpeg.tpegfwktypes
+Datatypes related to the TPEG framework.
+
+org.genivi.trafficinfo.tpeg.tpegfwktypes.impl
+Implementation of org.genivi.trafficinfo.tpeg.tpegfwktypes.
+
+org.genivi.trafficinfo.tpeg.tpegfwktypes.util
+Utility classes related to org.genivi.trafficinfo.tpeg.tpegfwktypes.
+
+
+org.genivi.trafficinfo.tpegtables
+---------------------------------
+This project contains a minimal set (as needed for the TrafficIncidentsService PoC) of tables defined by TPEG.
+Packages:
+
+org.genivi.trafficinfo.tpeg.tpegtables
+Tables defined by TPEG.
+
+
+org.genivi.trafficinfo.trafficincidenttestfeed
+----------------------------------------------
+This project contains a class to start the whole chain for TPEG-TEC messages; from generating them on the server side to injecting them in the TrafficIncidentsService (using a D-Bus interface).
+Packages:
+
+org.genivi.trafficinfo.trafficincidenttestfeed
+Contans the class that starts the TPEG-TEC chain.
+
+
+
+Eclipse projects - hmi
+======================
+
+org.genivi.trafficinfo.trafficincidentsexampleclients
+-----------------------------------------------------
+This project contains example client applications and a 'main' to run the whole PoC within Eclipse.
+Packages:
+
+org.genivi.trafficinfo.pocmain
+Contains the Main class for starting the Proof of Concept (without D-Bus IPC).
+
+org.genivi.trafficinfo.trafficincidentsexampleclients
+Contains the example clients of the TrafficIncidentsService.
+
+
+org.genivi.trafficinfo.poc
+--------------------------
+This project contains:
+* An NSIS script to generate the installer of the Traffic Incidents PoC (folder nsis)
+* Scripts to start the processes of the PoC (folder scripts)
+
+
+org.genivi.trafficinfo.trafficincidentsconfiguration
+----------------------------------------------------
+This project contains a client of the TrafficIncidentsService, which configures this service (using a D-Bus interface). It defines icons and categories which use these icons.
+Packages:
+
+org.genivi.trafficinfo.trafficincidentsconfiguration
+The configuration client.
+
+
+org.genivi.trafficinfo.trafficincidentslistclient
+-------------------------------------------------
+This project contains a class to start the TrafficInfoListDisplay from org.genivi.trafficinfo.trafficincidentsexampleclients on top of a D-Bus proxy.
+Packages:
+
+org.genivi.trafficinfo.trafficincidentslistclient
+The class to start the TrafficInfoListDisplay.
+
+
+org.genivi.trafficinfo.trafficincidentsmapclient
+------------------------------------------------
+This project contains a class to start the TrafficInfoMapView from org.genivi.trafficinfo.trafficincidentsexampleclients on top of a D-Bus proxy.
+Packages:
+
+org.genivi.trafficinfo.trafficincidentsmapclient
+Contains the class to start the TrafficInfoMapView.
+
+
+org.genivi.trafficinfo.trafficincidentswarningclient
+----------------------------------------------------
+This project contains a class to start the WarningClient from org.genivi.trafficinfo.trafficincidentsexampleclients on top of a D-Bus proxy.
+Packages:
+
+org.genivi.trafficinfo.trafficincidentswarningclient
+The class to start the WarningClient.
+
+
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.classpath
new file mode 100755
index 0000000..4e430b0
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.classpath
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.project b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.project
new file mode 100755
index 0000000..9a24fd7
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/.project
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficincidentsfeed.tpegtec</name>
+ <comment>This project contains a test TPEG-TEC Feed for testing a TrafficIncidentsService. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/pom.xml
new file mode 100755
index 0000000..37a741f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance"
+ xmlns="http://maven.apache.org/POM/4.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficincidentsfeed</groupId>
+ <artifactId>tpegtec</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI TPEG-TEC Test Feed</name>
+ <description>This project contains a test TPEG-TEC Feed for testing a TrafficIncidentsService.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidentfeed</groupId>
+ <artifactId>trafficincidentfeed-trafficincident-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwk</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegtables</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg.tec</groupId>
+ <artifactId>event-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <build>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecEventToTrafficIncidentConversion.java b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecEventToTrafficIncidentConversion.java
new file mode 100755
index 0000000..2c76d49
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecEventToTrafficIncidentConversion.java
@@ -0,0 +1,1485 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.tpegtecfeed.refimpl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.LocalizedString;
+import org.genivi.locref.LocationReference;
+import org.genivi.locref.LocationReferenceType;
+import org.genivi.locref.locrefFactory;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentFactory;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Accident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AdviceCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.AnimalsOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.BrokenDownVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DangerousEndOfQueue;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DoNotLeaveYourVehicle;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DriveCarefully;
+import org.genivi.trafficincidentsservice.trafficincidenttables.DrivingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ExtremeWeatherConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Fire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.FollowDiversion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.GivingPathVehiclesFromBehind;
+import org.genivi.trafficincidentsservice.trafficincidenttables.HazardousDrivingConditions;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Impassibility;
+import org.genivi.trafficincidentsservice.trafficincidenttables.LaneRestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MajorEvent;
+import org.genivi.trafficincidentsservice.trafficincidenttables.MalfunctioningRoadsideEquipment;
+import org.genivi.trafficincidentsservice.trafficincidenttables.NarrowLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ObjectsOnTheRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.OvertakingNotAllowed;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PeopleOnRoadway;
+import org.genivi.trafficincidentsservice.trafficincidenttables.PoliceCheckpoint;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Precipitation;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RecklessPersons;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RegulatoryMeasure;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RescueAndRecoveryWorkInProgress;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RiskOfFire;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RoadWorks;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotOperating;
+import org.genivi.trafficincidentsservice.trafficincidenttables.ServiceNotUsable;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlipperyRoad;
+import org.genivi.trafficincidentsservice.trafficincidenttables.SlowMovingVehicles;
+import org.genivi.trafficincidentsservice.trafficincidenttables.Tendency;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TimeDelay;
+import org.genivi.trafficincidentsservice.trafficincidenttables.TrafficCongestion;
+import org.genivi.trafficincidentsservice.trafficincidenttables.UseTollLanes;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+import org.genivi.trafficinfo.tpeg.tec.event.Event;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.Method;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegtables.LanguageCode;
+
+
+public class TecEventToTrafficIncidentConversion {
+ private static final CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private static final XTrafficIncidentFactory TI_FACTORY = XTrafficIncidentFactory.eINSTANCE;
+ private final static locrefFactory locRefFactory = locrefFactory.eINSTANCE;
+ private final static Logger LOGGER = Logger.getLogger(TecEventToTrafficIncidentConversion.class.getName());
+
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.EffectCode, EffectCode> effectCodeMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.EffectCode, EffectCode>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.Tendency, Tendency> tendencyMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.Tendency, Tendency>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.CauseCode, CauseCode> causeCodeMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.CauseCode, CauseCode>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.WarningLevel, WarningLevel> warningLevelMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.WarningLevel, WarningLevel>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion, TrafficCongestion> trafficCongestionMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion, TrafficCongestion>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.Accident, Accident> accidentMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.Accident, Accident>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.RoadWorks, RoadWorks> roadWorksMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.RoadWorks, RoadWorks>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes, NarrowLanes> narrowLanesMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes, NarrowLanes>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.Impassibility, Impassibility> impassibilityMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.Impassibility, Impassibility>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad, SlipperyRoad> slipperyRoadMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad, SlipperyRoad>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.Fire, Fire> fireMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.Fire, Fire>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions, HazardousDrivingConditions> hazardousDrivingConditionsMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions, HazardousDrivingConditions>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad, ObjectsOnTheRoad> objectsOnTheRoadMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad, ObjectsOnTheRoad>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway, AnimalsOnRoadway> animalsOnRoadwayMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway, AnimalsOnRoadway>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway, PeopleOnRoadway> peopleOnRoadwayMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway, PeopleOnRoadway>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles, BrokenDownVehicles> brokenDownVehiclesMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles, BrokenDownVehicles>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress, RescueAndRecoveryWorkInProgress> rescueAndRecoveryWorkInProgressMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress, RescueAndRecoveryWorkInProgress>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure, RegulatoryMeasure> regulatoryMeasureMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure, RegulatoryMeasure>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions, ExtremeWeatherConditions> extremeWeatherConditionsMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions, ExtremeWeatherConditions>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced, VisibilityReduced> visibilityReducedMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced, VisibilityReduced>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.Precipitation, Precipitation> precipitationMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.Precipitation, Precipitation>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons, RecklessPersons> recklessPersonsMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons, RecklessPersons>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.MajorEvent, MajorEvent> majorEventMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.MajorEvent, MajorEvent>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating, ServiceNotOperating> serviceNotOperatingMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating, ServiceNotOperating>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable, ServiceNotUsable> serviceNotUsableMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable, ServiceNotUsable>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles, SlowMovingVehicles> slowMovingVehiclesMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles, SlowMovingVehicles>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue, DangerousEndOfQueue> dangerousEndOfQueueMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue, DangerousEndOfQueue>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire, RiskOfFire> riskOfFireMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire, RiskOfFire>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.TimeDelay, TimeDelay> timeDelayMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.TimeDelay, TimeDelay>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint, PoliceCheckpoint> policeCheckpointMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint, PoliceCheckpoint>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment, MalfunctioningRoadsideEquipment> malfunctioningRoadsideEquipmentMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment, MalfunctioningRoadsideEquipment>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType, LaneRestrictionType> laneRestrictionTypeMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType, LaneRestrictionType>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.VehicleType, VehicleType> vehicleTypeMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.VehicleType, VehicleType>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.RestrictionType, RestrictionType> restrictionTypeMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.RestrictionType, RestrictionType>();
+
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.AdviceCode, AdviceCode> adviceCodeMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.AdviceCode, AdviceCode>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed, OvertakingNotAllowed> overtakingNotAllowedMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed, OvertakingNotAllowed>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed, DrivingNotAllowed> drivingNotAllowedMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed, DrivingNotAllowed>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind, GivingPathVehiclesFromBehind> givingPathVehiclesFromBehindMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind, GivingPathVehiclesFromBehind>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion, FollowDiversion> followDiversionMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion, FollowDiversion>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully, DriveCarefully> driveCarefullyMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully, DriveCarefully>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle, DoNotLeaveYourVehicle> doNotLeaveYourVehicleMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle, DoNotLeaveYourVehicle>();
+ private static Map<org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes, UseTollLanes> useTollLanesMap = new HashMap<org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes, UseTollLanes>();
+
+ private static Map<Integer, String> languageMap = new HashMap<Integer, String>(); // Maps TPEG LanguageCode to ISO 639-3 code (lower case).
+ private static Map<Integer, String> languageCountryMap = new HashMap<Integer, String>(); // Map TPEG LanguageCode to ISO 3166-1 alpha 3 country code (upper case), for the languages where this is applicable.
+
+ static {
+ fillEffectCodeMap();
+ fillTendencyMap();
+ fillCauseCodeMap();
+ fillWarningLevelMap();
+ fillTrafficCongestionMap();
+ fillAccidentMap();
+ fillRoadWorksMap();
+ fillNarrowLanesMap();
+ fillImpassibilityMap();
+ fillSlipperyRoadMap();
+ fillFireMap();
+ fillHazardousDrivingConditionsMap();
+ fillObjectsOnTheRoadMap();
+ fillAnimalsOnRoadwayMap();
+ fillPeopleOnRoadwayMap();
+ fillBrokenDownVehiclesMap();
+ fillRescueAndRecoveryWorkInProgressMap();
+ fillRegulatoryMeasureMap();
+ fillExtremeWeatherConditionsMap();
+ fillVisibilityReducedMap();
+ fillPrecipitationMap();
+ fillRecklessPersonsMap();
+ fillMajorEventMap();
+ fillServiceNotOperatingMap();
+ fillServiceNotUsableMap();
+ fillSlowMovingVehiclesMap();
+ fillDangerousEndOfQueueMap();
+ fillRiskOfFireMap();
+ fillTimeDelayMap();
+ fillPoliceCheckpointMap();
+ fillMalfunctioningRoadsideEquipmentMap();
+ fillLaneRestrictionTypeMap();
+ fillVehicleTypeMap();
+ fillRestrictionTypeMap();
+
+ fillAdviceCodeMap();
+ fillOvertakingNotAllowedMap();
+ fillDrivingNotAllowedMap();
+ fillGivingPathVehiclesFromBehindMap();
+ fillFollowDiversionMap();
+ fillDriveCarefullyMap();
+ fillDoNotLeaveYourVehicleMap();
+ fillUseTollLanesMap();
+
+ fillLanguageMap();
+ fillLanguageCountryMap();
+ }
+
+ public TecEventToTrafficIncidentConversion() {
+ LOGGER.setLevel(Level.SEVERE);
+ }
+
+ public void setLanguage(String languageCode, String countryCode) {
+ LOGGER.info("Ignoring Setting language to: " + languageCode + ", " + countryCode);
+ // No action as:
+ // - all received texts are passed on to the TrafficIncidentsService.
+ // - there is no two way communication to inform the server about the language to use.
+ }
+
+ public void convertTecMessageToManagedTrafficIncident(TrafficIncident managedTrafficIncident, TECMessage tecMessage) {
+ LocationReferencingContainer locationReferencingContainer = tecMessage.getLoc();
+ if (locationReferencingContainer == null) {
+ throw new RuntimeException("LocationReferenceContainer missing in TEC message with Id " + managedTrafficIncident.getTrafficIncidentId());
+ }
+
+ for (Method method :locationReferencingContainer.getMethod()) {
+ LocationReference locationReference = createLocationReferenceForMethod(method);
+ if (locationReference != null) {
+ managedTrafficIncident.setLocationReference(locationReference);
+ }
+ }
+
+ convertTecEventToManagedTrafficIncident(managedTrafficIncident, tecMessage.getEvent());
+ }
+
+ private static LocationReference createLocationReferenceForMethod(Method method) {
+ LocationReference locationReference = null;
+
+ if (method instanceof OLRLocationReference) {
+ LOGGER.info("Message has Open LR location reference");
+ OLRLocationReference olrLocationReference = (OLRLocationReference) method;
+ locationReference = locRefFactory.createLocationReference();
+ locationReference.setLocationReferenceType((Byte) (byte) LocationReferenceType.OPEN_LR.getValue());
+ locationReference.setData(olrLocationReference.getLocationData());
+ } else {
+ LOGGER.info("Message has No Supported location reference");
+ }
+
+ return locationReference;
+ }
+
+ public void convertTecEventToManagedTrafficIncident(TrafficIncident managedTrafficIncident, Event event) {
+ handleEffectCode(event, managedTrafficIncident);
+ handleStartTime(event, managedTrafficIncident);
+ handleStopTime(event, managedTrafficIncident);
+ handleTendency(event, managedTrafficIncident);
+ handleLengthAffected(event, managedTrafficIncident);
+ handleAverageSpeedAbsolute(event, managedTrafficIncident);
+ handleDelay(event, managedTrafficIncident);
+ handleSegmentSpeedLimit(event, managedTrafficIncident);
+ handleExpectedSpeedAbsolute(event, managedTrafficIncident);
+ for (org.genivi.trafficinfo.tpeg.tec.event.Cause cause: event.getCause()) {
+ handleCause(cause, managedTrafficIncident);
+ }
+ for (org.genivi.trafficinfo.tpeg.tec.event.Advice advice: event.getAdvice()) {
+ handleAdvice(advice, managedTrafficIncident);
+ }
+ for (org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction tecVehicleRestriction: event.getVehicleRestriction()) {
+ handleVehicleRestriction(tecVehicleRestriction, managedTrafficIncident);
+ }
+ }
+
+ private static void fillEffectCodeMap() {
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.TRAFFIC_FLOW_UNKNOWN, EffectCode.TRAFFIC_FLOW_UNKNOWN);
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.FREE_TRAFFIC_FLOW, EffectCode.FREE_TRAFFIC_FLOW);
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.HEAVY_TRAFFIC, EffectCode.HEAVY_TRAFFIC);
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.SLOW_TRAFFIC, EffectCode.SLOW_TRAFFIC);
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.QUEUING_TRAFFIC, EffectCode.QUEUING_TRAFFIC);
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.STATIONARY_TRAFFIC, EffectCode.STATIONARY_TRAFFIC);
+ effectCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.EffectCode.NO_TRAFFIC_FLOW, EffectCode.NO_TRAFFIC_FLOW);
+ }
+
+ private static void fillTendencyMap() {
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.SLIGHTLY_INCREASING, Tendency.SLIGHTLY_INCREASING);
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.INCREASING, Tendency.INCREASING);
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.STRONGLY_INCREASING, Tendency.STRONGLY_INCREASING);
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.SLIGHTLY_DECREASING, Tendency.SLIGHTLY_DECREASING);
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.DECREASING, Tendency.DECREASING);
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.STRONGLY_DECREASING, Tendency.STRONGLY_DECREASING);
+ tendencyMap.put(org.genivi.trafficinfo.tpeg.tec.event.Tendency.CONSTANT, Tendency.CONSTANT);
+ }
+
+ private static void fillCauseCodeMap() {
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.TRAFFIC_CONGESTION, CauseCode.TRAFFIC_CONGESTION);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.ACCIDENT, CauseCode.ACCIDENT);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.ROADWORKS, CauseCode.ROADWORKS);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.NARROW_LANES, CauseCode.NARROW_LANES);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.IMPASSIBILITY, CauseCode.IMPASSIBILITY);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.SLIPPERY_ROAD, CauseCode.SLIPPERY_ROAD);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.AQUAPLANING, CauseCode.AQUAPLANING);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.FIRE, CauseCode.FIRE);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.HAZARDOUS_DRIVING_CONDITIONS, CauseCode.HAZARDOUS_DRIVING_CONDITIONS);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.OBJECTS_ON_THE_ROAD, CauseCode.OBJECTS_ON_THE_ROAD);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.ANIMALS_ON_ROADWAY, CauseCode.ANIMALS_ON_ROADWAY);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.PEOPLE_ON_ROADWAY, CauseCode.PEOPLE_ON_ROADWAY);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.BROKEN_DOWN_VEHICLES, CauseCode.BROKEN_DOWN_VEHICLES);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.VEHICLE_ON_WRONG_CARRIAGEWAY, CauseCode.VEHICLE_ON_WRONG_CARRIAGEWAY);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS, CauseCode.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.REGULATORY_MEASURE, CauseCode.REGULATORY_MEASURE);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.EXTREME_WEATHER_CONDITIONS, CauseCode.EXTREME_WEATHER_CONDITIONS);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.VISIBILITY_REDUCED, CauseCode.VISIBILITY_REDUCED);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.PRECIPITATION, CauseCode.PRECIPITATION);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.RECKLESS_PERSONS, CauseCode.RECKLESS_PERSONS);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED, CauseCode.OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.TRAFFIC_REGULATIONS_CHANGED, CauseCode.TRAFFIC_REGULATIONS_CHANGED);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.MAJOR_EVENT, CauseCode.MAJOR_EVENT);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.SERVICE_NOT_OPERATING, CauseCode.SERVICE_NOT_OPERATING);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.SERVICE_NOT_USEABLE, CauseCode.SERVICE_NOT_USEABLE);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.SLOW_MOVING_VEHICLES, CauseCode.SLOW_MOVING_VEHICLES);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.DANGEROUS_END_OF_QUEUE, CauseCode.DANGEROUS_END_OF_QUEUE);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.RISK_OF_FIRE, CauseCode.RISK_OF_FIRE);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.TIME_DELAY, CauseCode.TIME_DELAY);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.POLICE_CHECKPOINT, CauseCode.POLICE_CHECKPOINT);
+ causeCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.CauseCode.MALFUNCTIONING_ROADSIDE_EQUIPMENT, CauseCode.MALFUNCTIONING_ROADSIDE_EQUIPMENT);
+ }
+
+ private static void fillWarningLevelMap() {
+ warningLevelMap.put(org.genivi.trafficinfo.tpeg.tec.event.WarningLevel.INFORMATIVE, WarningLevel.INFORMATIVE);
+ warningLevelMap.put(org.genivi.trafficinfo.tpeg.tec.event.WarningLevel.DANGER_LEVEL_1, WarningLevel.DANGER_LEVEL_1);
+ warningLevelMap.put(org.genivi.trafficinfo.tpeg.tec.event.WarningLevel.DANGER_LEVEL_2, WarningLevel.DANGER_LEVEL_2);
+ warningLevelMap.put(org.genivi.trafficinfo.tpeg.tec.event.WarningLevel.DANGER_LEVEL_3, WarningLevel.DANGER_LEVEL_3);
+ }
+
+ private static void fillTrafficCongestionMap() {
+ trafficCongestionMap.put(org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion.INCREASED_VOLUME_OF_TRAFFIC, TrafficCongestion.INCREASED_VOLUME_OF_TRAFFIC);
+ }
+
+ private static void fillAccidentMap() {
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.MULTI_VEHICLE_ACCIDENT, Accident.MULTI_VEHICLE_ACCIDENT);
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.HEAVY_ACCIDENT, Accident.HEAVY_ACCIDENT);
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.ACCIDENT_INVOLVING_LORRY, Accident.ACCIDENT_INVOLVING_LORRY);
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.ACCIDENT_INVOLVING_BUS, Accident.ACCIDENT_INVOLVING_BUS);
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS, Accident.ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS);
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.ACCIDENT_ON_OPPOSITE_LANE, Accident.ACCIDENT_ON_OPPOSITE_LANE);
+ accidentMap.put(org.genivi.trafficinfo.tpeg.tec.event.Accident.UNSECURED_ACCIDENT, Accident.UNSECURED_ACCIDENT);
+ }
+
+ private static void fillRoadWorksMap() {
+ roadWorksMap.put(org.genivi.trafficinfo.tpeg.tec.event.RoadWorks.MAJOR_ROADWORKS, RoadWorks.MAJOR_ROADWORKS);
+ roadWorksMap.put(org.genivi.trafficinfo.tpeg.tec.event.RoadWorks.ROAD_MARKING_WORK, RoadWorks.ROAD_MARKING_WORK);
+ roadWorksMap.put(org.genivi.trafficinfo.tpeg.tec.event.RoadWorks.SLOW_MOVING_ROAD_MAINTENANCE, RoadWorks.SLOW_MOVING_ROAD_MAINTENANCE);
+ }
+
+ private static void fillNarrowLanesMap() {
+ narrowLanesMap.put(org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes.CONTRAFLOW, NarrowLanes.CONTRAFLOW);
+ narrowLanesMap.put(org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes.HARD_SHOULDER_CLOSED, NarrowLanes.HARD_SHOULDER_CLOSED);
+ narrowLanesMap.put(org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes.SLIP_LANE_CLOSED, NarrowLanes.HARD_SHOULDER_CLOSED);
+ narrowLanesMap.put(org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes.CRAWLER_LANE_CLOSED, NarrowLanes.HARD_SHOULDER_CLOSED);
+ }
+
+ private static void fillImpassibilityMap() {
+ impassibilityMap.put(org.genivi.trafficinfo.tpeg.tec.event.Impassibility.FLOODING, Impassibility.FLOODING);
+ impassibilityMap.put(org.genivi.trafficinfo.tpeg.tec.event.Impassibility.DANGER_OF_AVALANCHES, Impassibility.DANGER_OF_AVALANCHES);
+ impassibilityMap.put(org.genivi.trafficinfo.tpeg.tec.event.Impassibility.BLASTING_OF_AVALANCHES, Impassibility.BLASTING_OF_AVALANCHES);
+ impassibilityMap.put(org.genivi.trafficinfo.tpeg.tec.event.Impassibility.LANDSLIPS, Impassibility.LANDSLIPS);
+ impassibilityMap.put(org.genivi.trafficinfo.tpeg.tec.event.Impassibility.CHEMICAL_SPILLAGE, Impassibility.CHEMICAL_SPILLAGE);
+ impassibilityMap.put(org.genivi.trafficinfo.tpeg.tec.event.Impassibility.WINTER_CLOSURE, Impassibility.WINTER_CLOSURE);
+ }
+
+ private static void fillSlipperyRoadMap() {
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.HEAVY_FROST_ON_ROAD, SlipperyRoad.HEAVY_FROST_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.FUEL_ON_ROAD, SlipperyRoad.FUEL_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.MUD_ON_ROAD, SlipperyRoad.MUD_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.SNOW_ON_ROAD, SlipperyRoad.SNOW_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.ICE_ON_ROAD, SlipperyRoad.ICE_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.BLACK_ICE_ON_ROAD, SlipperyRoad.BLACK_ICE_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.OIL_ON_ROAD, SlipperyRoad.OIL_ON_ROAD);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.LOOSE_CHIPPINGS, SlipperyRoad.LOOSE_CHIPPINGS);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.INSTANT_BLACK_ICE, SlipperyRoad.INSTANT_BLACK_ICE);
+ slipperyRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad.ROADS_SALTED, SlipperyRoad.ROADS_SALTED);
+ }
+
+ private static void fillFireMap() {
+ fireMap.put(org.genivi.trafficinfo.tpeg.tec.event.Fire.FOREST_FIRE, Fire.FOREST_FIRE);
+ fireMap.put(org.genivi.trafficinfo.tpeg.tec.event.Fire.MAJOR_FIRE, Fire.MAJOR_FIRE);
+ }
+
+ private static void fillHazardousDrivingConditionsMap() {
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.ROCKFALLS, HazardousDrivingConditions.ROCKFALLS);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.EARTHQUAKE_DAMAGE, HazardousDrivingConditions.EARTHQUAKE_DAMAGE);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.SEWER_COLLAPSE, HazardousDrivingConditions.EARTHQUAKE_DAMAGE);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.SUBSIDENCE, HazardousDrivingConditions.SUBSIDENCE);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.SNOW_DRIFTS, HazardousDrivingConditions.SNOW_DRIFTS);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.STORM_DAMAGE, HazardousDrivingConditions.STORM_DAMAGE);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.BURST_PIPE, HazardousDrivingConditions.BURST_PIPE);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.VOLCANO_ERUPTION, HazardousDrivingConditions.VOLCANO_ERUPTION);
+ hazardousDrivingConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions.FALLING_ICE, HazardousDrivingConditions.FALLING_ICE);
+ }
+
+ private static void fillObjectsOnTheRoadMap() {
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.SHED_LOAD, ObjectsOnTheRoad.SHED_LOAD);
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.PARTS_OF_VEHICLES, ObjectsOnTheRoad.PARTS_OF_VEHICLES);
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.PARTS_OF_TYRES, ObjectsOnTheRoad.PARTS_OF_TYRES);
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.BIG_OBJECTS, ObjectsOnTheRoad.BIG_OBJECTS);
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.FALLEN_TREES, ObjectsOnTheRoad.FALLEN_TREES);
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.HUB_CAPS, ObjectsOnTheRoad.HUB_CAPS);
+ objectsOnTheRoadMap.put(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad.WAITING_VEHICLES, ObjectsOnTheRoad.WAITING_VEHICLES);
+ }
+
+ private static void fillAnimalsOnRoadwayMap() {
+ animalsOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway.WILD_ANIMALS, AnimalsOnRoadway.WILD_ANIMALS);
+ animalsOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway.HERD_OF_ANIMALS, AnimalsOnRoadway.HERD_OF_ANIMALS);
+ animalsOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway.SMALL_ANIMALS, AnimalsOnRoadway.SMALL_ANIMALS);
+ animalsOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway.LARGE_ANIMALS, AnimalsOnRoadway.LARGE_ANIMALS);
+ }
+
+ private static void fillPeopleOnRoadwayMap() {
+ peopleOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway.CHILDREN_ON_ROADWAY, PeopleOnRoadway.CHILDREN_ON_ROADWAY);
+ peopleOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway.CYCLISTS_ON_ROADWAY, PeopleOnRoadway.CYCLISTS_ON_ROADWAY);
+ peopleOnRoadwayMap.put(org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway.MOTOR_CYCLIST_ON_ROADWAY, PeopleOnRoadway.MOTOR_CYCLIST_ON_ROADWAY);
+ }
+
+ private static void fillBrokenDownVehiclesMap() {
+ brokenDownVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles.BROKEN_DOWN_UNLIT_VEHICLE, BrokenDownVehicles.BROKEN_DOWN_UNLIT_VEHICLE);
+ brokenDownVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles.BROKEN_DOWN_VEHICLE_BURNING, BrokenDownVehicles.BROKEN_DOWN_VEHICLE_BURNING);
+ }
+
+ private static void fillRescueAndRecoveryWorkInProgressMap() {
+ rescueAndRecoveryWorkInProgressMap.put(org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress.EMERGENCY_VEHICLES, RescueAndRecoveryWorkInProgress.EMERGENCY_VEHICLES);
+ rescueAndRecoveryWorkInProgressMap.put(org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress.RESCUE_HELICOPTER_LANDING, RescueAndRecoveryWorkInProgress.RESCUE_HELICOPTER_LANDING);
+ rescueAndRecoveryWorkInProgressMap.put(org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress.POLICE_ACTIVITY_ONGOING, RescueAndRecoveryWorkInProgress.POLICE_ACTIVITY_ONGOING);
+ rescueAndRecoveryWorkInProgressMap.put(org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress.MEDICAL_EMERGENCY_ONGOING, RescueAndRecoveryWorkInProgress.MEDICAL_EMERGENCY_ONGOING);
+ rescueAndRecoveryWorkInProgressMap.put(org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress.CHILD_ABDUCTION_IN_PROGRESS, RescueAndRecoveryWorkInProgress.CHILD_ABDUCTION_IN_PROGRESS);
+ }
+
+ private static void fillRegulatoryMeasureMap() {
+ regulatoryMeasureMap.put(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure.SECURITY_ALERT, RegulatoryMeasure.SECURITY_ALERT);
+ regulatoryMeasureMap.put(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure.CONTAGIOUS_DISEASE, RegulatoryMeasure.CONTAGIOUS_DISEASE);
+ regulatoryMeasureMap.put(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure.ENVIRONMENTAL, RegulatoryMeasure.ENVIRONMENTAL);
+ regulatoryMeasureMap.put(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure.SMOG_ALERT, RegulatoryMeasure.SMOG_ALERT);
+ regulatoryMeasureMap.put(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure.BATCH_SERVICE_IN_PROGRESS, RegulatoryMeasure.BATCH_SERVICE_IN_PROGRESS);
+ regulatoryMeasureMap.put(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure.ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES, RegulatoryMeasure.ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES);
+ }
+
+ private static void fillExtremeWeatherConditionsMap() {
+ extremeWeatherConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions.STRONG_WINDS, ExtremeWeatherConditions.STRONG_WINDS);
+ extremeWeatherConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions.DAMAGING_HAIL, ExtremeWeatherConditions.DAMAGING_HAIL);
+ extremeWeatherConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions.HURRICANE, ExtremeWeatherConditions.HURRICANE);
+ extremeWeatherConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions.THUNDERSTORM, ExtremeWeatherConditions.THUNDERSTORM);
+ extremeWeatherConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions.TORNADO, ExtremeWeatherConditions.TORNADO);
+ extremeWeatherConditionsMap.put(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions.BLIZARD, ExtremeWeatherConditions.BLIZARD);
+ }
+
+ private static void fillVisibilityReducedMap() {
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_FOG, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_FOG);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SMOKE, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SMOKE);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SANDSTORMS, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SANDSTORMS);
+ visibilityReducedMap.put(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS);
+ }
+
+ private static void fillPrecipitationMap() {
+ precipitationMap.put(org.genivi.trafficinfo.tpeg.tec.event.Precipitation.HEAVY_RAIN, Precipitation.HEAVY_RAIN);
+ precipitationMap.put(org.genivi.trafficinfo.tpeg.tec.event.Precipitation.HEAVY_SNOWFALL, Precipitation.HEAVY_SNOWFALL);
+ precipitationMap.put(org.genivi.trafficinfo.tpeg.tec.event.Precipitation.SOFT_HAIL, Precipitation.SOFT_HAIL);
+ }
+
+ private static void fillRecklessPersonsMap() {
+ recklessPersonsMap.put(org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons.GUNFIRE_ON_ROAD, RecklessPersons.GUNFIRE_ON_ROAD);
+ recklessPersonsMap.put(org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons.RECKLESS_DRIVER, RecklessPersons.RECKLESS_DRIVER);
+ recklessPersonsMap.put(org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons.STONE_THROWING_PERSONS, RecklessPersons.STONE_THROWING_PERSONS);
+ }
+
+ private static void fillMajorEventMap() {
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.CONCERT, MajorEvent.CONCERT);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.DEMONSTRATION, MajorEvent.DEMONSTRATION);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.DEMONSTRATION_WITH_VEHICLES, MajorEvent.DEMONSTRATION_WITH_VEHICLES);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.EMERGENCY_TRAINING, MajorEvent.EMERGENCY_TRAINING);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.FAIR, MajorEvent.FAIR);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.FESTIVITY, MajorEvent.FESTIVITY);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.MILITARY_TRAINING, MajorEvent.MILITARY_TRAINING);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.PROCESSION, MajorEvent.PROCESSION);
+ majorEventMap.put(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent.SPORTS_EVENT, MajorEvent.SPORTS_EVENT);
+ }
+
+ private static void fillServiceNotOperatingMap() {
+ serviceNotOperatingMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating.FERRY_SERVICE_NOT_OPERATING, ServiceNotOperating.FERRY_SERVICE_NOT_OPERATING);
+ serviceNotOperatingMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating.PLANE_SERVICE_NOT_OPERATING, ServiceNotOperating.PLANE_SERVICE_NOT_OPERATING);
+ serviceNotOperatingMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating.TRAIN_SERVICE_NOT_OPERATING, ServiceNotOperating.TRAIN_SERVICE_NOT_OPERATING);
+ serviceNotOperatingMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating.BUS_SERVICE_NOT_OPERATING, ServiceNotOperating.BUS_SERVICE_NOT_OPERATING);
+ }
+
+ private static void fillServiceNotUsableMap() {
+ serviceNotUsableMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable.FUEL_STATION_CLOSED, ServiceNotUsable.FUEL_STATION_CLOSED);
+ serviceNotUsableMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable.SERVICE_AREA_CLOSED, ServiceNotUsable.SERVICE_AREA_CLOSED);
+ serviceNotUsableMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable.SERVICE_AREA_BUSY, ServiceNotUsable.SERVICE_AREA_BUSY);
+ serviceNotUsableMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable.PARKING_FULL, ServiceNotUsable.PARKING_FULL);
+ serviceNotUsableMap.put(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable.CAR_PARK_CLOSED, ServiceNotUsable.CAR_PARK_CLOSED);
+ }
+
+ private static void fillSlowMovingVehiclesMap() {
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.SLOW_MOVING_MAINTENANCE_VEHICLE, SlowMovingVehicles.SLOW_MOVING_MAINTENANCE_VEHICLE);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT, SlowMovingVehicles.VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.ABNORMAL_LOAD, SlowMovingVehicles.ABNORMAL_LOAD);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.ABNORMAL_WIDE_LOAD, SlowMovingVehicles.ABNORMAL_WIDE_LOAD);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.CONVOY, SlowMovingVehicles.CONVOY);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.SNOWPLOUGH, SlowMovingVehicles.SNOWPLOUGH);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.DEICING, SlowMovingVehicles.DEICING);
+ slowMovingVehiclesMap.put(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles.SALTING_VEHICLES, SlowMovingVehicles.SALTING_VEHICLES);
+ }
+
+ private static void fillDangerousEndOfQueueMap() {
+ dangerousEndOfQueueMap.put(org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue.SUDDEN_END_OF_QUEUE, DangerousEndOfQueue.SUDDEN_END_OF_QUEUE);
+ dangerousEndOfQueueMap.put(org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue.QUEUE_OVER_HILL, DangerousEndOfQueue.QUEUE_OVER_HILL);
+ dangerousEndOfQueueMap.put(org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue.QUEUE_AROUND_BEND, DangerousEndOfQueue.QUEUE_AROUND_BEND);
+ dangerousEndOfQueueMap.put(org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue.QUEUE_IN_TUNNEL, DangerousEndOfQueue.QUEUE_IN_TUNNEL);
+ }
+
+ private static void fillRiskOfFireMap() {
+ riskOfFireMap.put(org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire.LEAKAGE_OF_FUEL, RiskOfFire.LEAKAGE_OF_FUEL);
+ riskOfFireMap.put(org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire.LEAKAGE_OF_GAS, RiskOfFire.LEAKAGE_OF_GAS);
+ }
+
+ private static void fillTimeDelayMap() {
+ timeDelayMap.put(org.genivi.trafficinfo.tpeg.tec.event.TimeDelay.TIME_DELAY_AT_FRONTIER, TimeDelay.TIME_DELAY_AT_FRONTIER);
+ timeDelayMap.put(org.genivi.trafficinfo.tpeg.tec.event.TimeDelay.TIME_DELAY_AT_FERRY_PORT, TimeDelay.TIME_DELAY_AT_FERRY_PORT);
+ timeDelayMap.put(org.genivi.trafficinfo.tpeg.tec.event.TimeDelay.TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL, TimeDelay.TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL);
+ }
+
+ private static void fillPoliceCheckpointMap() {
+ policeCheckpointMap.put(org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint.PERMANENT_POLICE_CHECKPOINT, PoliceCheckpoint.PERMANENT_POLICE_CHECKPOINT);
+ policeCheckpointMap.put(org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint.TEMPORARY_POLICE_CHECKPOINT, PoliceCheckpoint.TEMPORARY_POLICE_CHECKPOINT);
+ }
+
+ private static void fillMalfunctioningRoadsideEquipmentMap() {
+ malfunctioningRoadsideEquipmentMap.put(org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment.AUTOMATIC_PAYMENT_LANES_NOT_WORKING, MalfunctioningRoadsideEquipment.AUTOMATIC_PAYMENT_LANES_NOT_WORKING);
+ malfunctioningRoadsideEquipmentMap.put(org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment.EMERGENCY_TELEPHONES_NOT_WORKING, MalfunctioningRoadsideEquipment.EMERGENCY_TELEPHONES_NOT_WORKING);
+ malfunctioningRoadsideEquipmentMap.put(org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment.ROAD_RAIL_CROSSING_FAILURE, MalfunctioningRoadsideEquipment.ROAD_RAIL_CROSSING_FAILURE);
+ malfunctioningRoadsideEquipmentMap.put(org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment.TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY, MalfunctioningRoadsideEquipment.TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY);
+ malfunctioningRoadsideEquipmentMap.put(org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment.TUNNEL_VENTILATION_NOT_WORKING, MalfunctioningRoadsideEquipment.TUNNEL_VENTILATION_NOT_WORKING);
+ }
+
+ private static void fillLaneRestrictionTypeMap() {
+ laneRestrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType.LANES_CLOSED, LaneRestrictionType.LANES_CLOSED);
+ laneRestrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType.LANES_OPEN, LaneRestrictionType.LANES_OPEN);
+ laneRestrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType.RIGHT_LANES_CLOSED, LaneRestrictionType.RIGHT_LANES_CLOSED);
+ laneRestrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType.LEFT_LANES_CLOSED, LaneRestrictionType.LEFT_LANES_CLOSED);
+ }
+
+ private static void fillVehicleTypeMap() {
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.CAR, VehicleType.CAR);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.LORRY, VehicleType.LORRY);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.BUS, VehicleType.BUS);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.TAXI, VehicleType.TAXI);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.TRAIN, VehicleType.TRAIN);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.MOTOR_CYCLE, VehicleType.MOTOR_CYCLE);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.VEHICLE_WITH_TRAILER, VehicleType.VEHICLE_WITH_TRAILER);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.MOTOR_VEHICLES, VehicleType.MOTOR_VEHICLES);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.TRANSPORT_OF_DANGEROUS_GOODS, VehicleType.TRANSPORT_OF_DANGEROUS_GOODS);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.TRANSPORT_OF_ABNORMAL_LOAD, VehicleType.TRANSPORT_OF_ABNORMAL_LOAD);
+ vehicleTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.VehicleType.HEAVY_VEHICLE, VehicleType.HEAVY_VEHICLE);
+ }
+
+ private static void fillRestrictionTypeMap() {
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WIDTH_LESS_THAN, RestrictionType.WIDTH_LESS_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WIDTH_GREATER_THAN, RestrictionType.WIDTH_GREATER_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.HEIGTH_LESS_THAN, RestrictionType.HEIGTH_LESS_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.HEIGTH_GREATER_THAN, RestrictionType.HEIGTH_GREATER_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WEIGHT_LESS_THAN, RestrictionType.WEIGHT_LESS_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WEIGHT_GREATER_THAN, RestrictionType.WEIGHT_GREATER_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITHOUT_WINTER_TYRE, RestrictionType.WITHOUT_WINTER_TYRE);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITHOUT_SNOW_CHAIN, RestrictionType.WITHOUT_SNOW_CHAIN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITH_TRAILER, RestrictionType.WITH_TRAILER);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITH_CARAVAN, RestrictionType.WITH_CARAVAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.PERSONS_IN_VEHICLE_LESS_THAN, RestrictionType.PERSONS_IN_VEHICLE_LESS_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.PERSONS_IN_VEHICLE_MORE_THAN, RestrictionType.PERSONS_IN_VEHICLE_MORE_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.EVEN_NUMBER_PLATE, RestrictionType.EVEN_NUMBER_PLATE);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.ODD_NUMBER_PLATE, RestrictionType.ODD_NUMBER_PLATE);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.LENGTH_LESS_THAN, RestrictionType.LENGTH_LESS_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.LENGTH_GREATER_THAN, RestrictionType.LENGTH_GREATER_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.AXLE_LOAD_LESS_THAN, RestrictionType.AXLE_LOAD_LESS_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.AXLE_LOAD_GREATER_THAN, RestrictionType.AXLE_LOAD_GREATER_THAN);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO3D4);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO4);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5, RestrictionType.VEHICLE_FULFILLS_EMISSION_STANDARD_EURO5);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITH_PETROL_ENGINE, RestrictionType.WITH_PETROL_ENGINE);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITH_DIESEL_ENGINE, RestrictionType.WITH_DIESEL_ENGINE);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITH_LPG_ENGINE, RestrictionType.WITH_LPG_ENGINE);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.THROUGH_TRAFFIC, RestrictionType.THROUGH_TRAFFIC);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.RESIDENTS_TRAFFIC, RestrictionType.RESIDENTS_TRAFFIC);
+ restrictionTypeMap.put(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.WITH_DESTINATION_IN_GIVEN_AREA, RestrictionType.WITH_DESTINATION_IN_GIVEN_AREA);
+ }
+
+ private static void fillAdviceCodeMap() {
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.AVOID_THE_AREA, AdviceCode.AVOID_THE_AREA);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.DO_NOT_DIVERT, AdviceCode.DO_NOT_DIVERT);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.DO_NOT_LEAVE_YOUR_VEHICLE, AdviceCode.DO_NOT_LEAVE_YOUR_VEHICLE);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.DRIVE_CAREFULLY, AdviceCode.DRIVE_CAREFULLY);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE, AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.DRIVING_NOT_ALLOWED, AdviceCode.DRIVING_NOT_ALLOWED);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.FOLLOW_DIVERSION, AdviceCode.FOLLOW_DIVERSION);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.FOLLOW_POLICE_INSTRUCTIONS, AdviceCode.FOLLOW_POLICE_INSTRUCTIONS);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.GIVING_PATH_VEHICLES_COMING_FROM_BEHIND, AdviceCode.GIVING_PATH_VEHICLES_COMING_FROM_BEHIND);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.NO_DIVERSION_TO_RECOMMEND, AdviceCode.NO_DIVERSION_TO_RECOMMEND);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.OVERTAKING_NOT_ALLOWED, AdviceCode.OVERTAKING_NOT_ALLOWED);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.SWITCH_ON_RADIO, AdviceCode.SWITCH_ON_RADIO);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.USE_HARD_SHOULDER_AS_LANE, AdviceCode.USE_HARD_SHOULDER_AS_LANE);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.USE_TOLL_LANES, AdviceCode.USE_TOLL_LANES);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.WAIT_FOR_CONVOI, AdviceCode.WAIT_FOR_CONVOI);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.WAIT_FOR_IMPROVED_WEATHER, AdviceCode.WAIT_FOR_IMPROVED_WEATHER);
+ adviceCodeMap.put(org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.WAIT_FOR_POLICE_PATROL, AdviceCode.WAIT_FOR_POLICE_PATROL);
+ }
+
+ private static void fillOvertakingNotAllowedMap() {
+ overtakingNotAllowedMap.put(org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed.DO_NOT_USE_OVERTAKING_LANES, OvertakingNotAllowed.DO_NOT_USE_OVERTAKING_LANES);
+ overtakingNotAllowedMap.put(org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE);
+ overtakingNotAllowedMap.put(org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE);
+ overtakingNotAllowedMap.put(org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE);
+ }
+
+ private static void fillDrivingNotAllowedMap() {
+ drivingNotAllowedMap.put(org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed.DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE, DrivingNotAllowed.DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE);
+ }
+
+ private static void fillGivingPathVehiclesFromBehindMap() {
+ givingPathVehiclesFromBehindMap.put(org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind.GIVING_PATH_FOR_RESCUE_VEHICLE, GivingPathVehiclesFromBehind.GIVING_PATH_FOR_RESCUE_VEHICLE);
+ givingPathVehiclesFromBehindMap.put(org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind.GIVING_PATH_FOR_SERVICE_VEHICLES, GivingPathVehiclesFromBehind.GIVING_PATH_FOR_SERVICE_VEHICLES);
+ }
+
+ private static void fillFollowDiversionMap() {
+ followDiversionMap.put(org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion.FOLLOW_DIVERSION_SIGNS, FollowDiversion.FOLLOW_DIVERSION_SIGNS);
+ }
+
+ private static void fillDriveCarefullyMap() {
+ driveCarefullyMap.put(org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD, DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD);
+ driveCarefullyMap.put(org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD, DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD);
+ driveCarefullyMap.put(org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully.DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE, DriveCarefully.DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE);
+ }
+
+ private static void fillDoNotLeaveYourVehicleMap() {
+ doNotLeaveYourVehicleMap.put(org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE, DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE);
+ doNotLeaveYourVehicleMap.put(org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS, DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS);
+ }
+
+ private static void fillUseTollLanesMap() {
+ useTollLanesMap.put(org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes.USE_AUTOMATIC_PAYMENT_TOLL_LANES, UseTollLanes.USE_AUTOMATIC_PAYMENT_TOLL_LANES);
+ useTollLanesMap.put(org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes.USE_MANUAL_PAYMENT_TOLL_LANES, UseTollLanes.USE_MANUAL_PAYMENT_TOLL_LANES);
+ }
+
+ private static void fillLanguageMap() {
+ // TODO PRIO9: FULL_IMPL Add all languages to be supported within GENIVI.
+ languageMap.put(LanguageCode.DUTCH.getCode(), "nld");
+ languageMap.put(LanguageCode.ENGLISH.getCode(), "eng");
+ languageMap.put(LanguageCode.FRENCH.getCode(), "fra");
+ languageMap.put(LanguageCode.GERMAN.getCode(), "deu");
+ }
+
+ private static void fillLanguageCountryMap() {
+ // TODO PRIO9: FULL_IMPL For all languages to be supported within GENIVI, add country code if applicable.
+ languageCountryMap.put(LanguageCode.DUTCH.getCode(), "nld");
+ languageCountryMap.put(LanguageCode.ENGLISH.getCode(), "gbr");
+ languageCountryMap.put(LanguageCode.FRENCH.getCode(), "fra");
+ languageCountryMap.put(LanguageCode.GERMAN.getCode(), "deu");
+ }
+
+ private static void handleEffectCode(Event event, TrafficIncident trafficIncident) {
+ // effectCode is mandatory, and all codes are mapped, so no check needed.
+ org.genivi.trafficinfo.tpeg.tec.event.EffectCode tecEffectCode = event.getEffectCode();
+ EffectCode tiEffectCode = effectCodeMap.get(tecEffectCode);
+ trafficIncident.setEffectCode(tiEffectCode);
+ }
+
+ private static void handleStartTime(Event event, TrafficIncident trafficIncident) {
+ // currently start time is a Java Date in both models, so no conversion needed.
+ if (event.getStartTime() != null) {
+ trafficIncident.setStartTime(event.getStartTime());
+ }
+ }
+
+ private static void handleStopTime(Event event, TrafficIncident trafficIncident) {
+ // currently stop time is a Java Date in both models, so no conversion needed.
+ if (event.getStopTime() != null) {
+ trafficIncident.setStopTime(event.getStopTime());
+ }
+ }
+
+ private static void handleTendency(Event event, TrafficIncident trafficIncident) {
+ if (event.isSetTendency()) {
+ org.genivi.trafficinfo.tpeg.tec.event.Tendency tecTendency = event.getTendency();
+ Tendency tiTendency = tendencyMap.get(tecTendency);
+ trafficIncident.setTendency(tiTendency);
+ }
+ }
+
+ private static void handleLengthAffected(Event event, TrafficIncident trafficIncident) {
+ if (event.getLengthAffected() != null) {
+ trafficIncident.setLengthAffected(event.getLengthAffected());
+ }
+ }
+
+ private static void handleAverageSpeedAbsolute(Event event, TrafficIncident trafficIncident) {
+ if (event.getAverageSpeedAbsolute() != null) {
+ trafficIncident.setAverageSpeedAbsolute(event.getAverageSpeedAbsolute());
+ }
+ }
+
+ private static void handleDelay(Event event, TrafficIncident trafficIncident) {
+ if (event.getDelay() != null) {
+ trafficIncident.setDelay(event.getDelay());
+ }
+ }
+
+ private static void handleSegmentSpeedLimit(Event event, TrafficIncident trafficIncident) {
+ if (event.getSegmentSpeedLimit() != null) {
+ trafficIncident.setSegmentSpeedLimit(event.getSegmentSpeedLimit());
+ }
+ }
+
+ private static void handleExpectedSpeedAbsolute(Event event, TrafficIncident trafficIncident) {
+ if (event.getExpectedSpeedAbsolute() != null) {
+ trafficIncident.setExpectedSpeedAbsolute(event.getExpectedSpeedAbsolute());
+ }
+ }
+
+ private void handleCause(org.genivi.trafficinfo.tpeg.tec.event.Cause cause, TrafficIncident trafficIncident) {
+ CauseCode tiMainCause = convertMainCause(cause);
+
+ if (tiMainCause != null) {
+ Cause tiCause = null;
+
+ if (cause instanceof org.genivi.trafficinfo.tpeg.tec.event.DirectCause) {
+ org.genivi.trafficinfo.tpeg.tec.event.DirectCause tecDirectCause = (org.genivi.trafficinfo.tpeg.tec.event.DirectCause) cause;
+ DirectCause tiDirectCause = TI_FACTORY.createDirectCause();
+ handleWarningLevel(tecDirectCause.getWarningLevel(), tiDirectCause);
+ tiDirectCause.setUnverifiedInformation(tecDirectCause.isUnverifiedInformation());
+ handleSubCause(tecDirectCause, tiDirectCause);
+ if (tecDirectCause.getLengthAffected() != null) {
+ tiDirectCause.setLengthAffected(tecDirectCause.getLengthAffected());
+ }
+ handleLaneRestrictionType(tecDirectCause, tiDirectCause);
+ handleCauseFreeText(tecDirectCause, tiDirectCause);
+ if (tecDirectCause.getCauseOffset() != null) {
+ tiDirectCause.setCauseOffset(tecDirectCause.getLengthAffected());
+ }
+
+ tiCause = tiDirectCause;
+ } else {
+ // has to be LinkedCause
+ org.genivi.trafficinfo.tpeg.tec.event.LinkedCause tecLinkedCause = (org.genivi.trafficinfo.tpeg.tec.event.LinkedCause) cause;
+ String trafficIncidentManagementId = TecUtil.createMessageId(tecLinkedCause.getOriginatorSID(), tecLinkedCause.getCOID(), tecLinkedCause.getLinkedMessage());
+ LinkedCause tiManagedLinkedCause = TI_FACTORY.createLinkedCause();
+ tiManagedLinkedCause.setCauseTrafficIncidentId(trafficIncidentManagementId);
+ tiCause = tiManagedLinkedCause;
+ }
+
+ if (tiCause != null) {
+ List<Cause> tiCauses = trafficIncident.getCauses();
+ tiCause.setMainCause(tiMainCause);
+ tiCauses.add(tiCause);
+ }
+
+ }
+ }
+
+ private static CauseCode convertMainCause(org.genivi.trafficinfo.tpeg.tec.event.Cause cause) {
+ org.genivi.trafficinfo.tpeg.tec.event.CauseCode tecCauseCode = cause.getMainCause();
+
+ if (tecCauseCode == null) {
+ return null;
+ }
+
+ if (tecCauseCode == org.genivi.trafficinfo.tpeg.tec.event.CauseCode.TEST_MESSAGE ||
+ tecCauseCode == org.genivi.trafficinfo.tpeg.tec.event.CauseCode.UNDECODABLE_CAUSE) {
+ reportMappingProblem("CauseCode " + tecCauseCode.getName() + " received (ignored).", true);
+ return null;
+ }
+
+ CauseCode tiCauseCode = causeCodeMap.get(tecCauseCode);
+
+ if (tiCauseCode == null) {
+ reportMappingProblem("CauseCode " + tecCauseCode.getName() + " cannot be handled.", false);
+ }
+
+ return tiCauseCode;
+ }
+
+ private static void handleWarningLevel(org.genivi.trafficinfo.tpeg.tec.event.WarningLevel warningLevel, DirectCause tiDirectCause) {
+ if (warningLevel != null) {
+ // All values are mapped, so no further check needed.
+ tiDirectCause.setWarningLevel(warningLevelMap.get(warningLevel));
+ }
+ }
+
+ private static void handleSubCause(org.genivi.trafficinfo.tpeg.tec.event.DirectCause tecDirectCause, DirectCause tiDirectCause) {
+ tiDirectCause.setSubCause(null);
+ org.genivi.trafficinfo.tpeg.tec.event.CauseCode tecMainCause = tecDirectCause.getMainCause();
+ Object tiSubCause = null;
+
+ if (tecDirectCause.isSetSubCause()) {
+ Object tecSubCause = tecDirectCause.getSubCause();
+ switch (tecMainCause) {
+ case TRAFFIC_CONGESTION:
+ tiSubCause = convertSubCauseTrafficCongestion((org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion) tecSubCause);
+ break;
+
+ case ACCIDENT:
+ tiSubCause = convertSubCauseAccident((org.genivi.trafficinfo.tpeg.tec.event.Accident) tecSubCause);
+ break;
+
+ case ROADWORKS:
+ tiSubCause = convertSubCauseRoadWorks((org.genivi.trafficinfo.tpeg.tec.event.RoadWorks) tecSubCause);
+ break;
+
+ case NARROW_LANES:
+ tiSubCause = convertSubCauseNarrowLanes((org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes) tecSubCause);
+ break;
+
+ case IMPASSIBILITY:
+ tiSubCause = convertSubCauseImpassibility((org.genivi.trafficinfo.tpeg.tec.event.Impassibility) tecSubCause);
+ break;
+
+ case SLIPPERY_ROAD:
+ tiSubCause = convertSubCauseSlipperyRoad((org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad) tecSubCause);
+ break;
+
+ case AQUAPLANING:
+ // No SubCause
+ break;
+
+ case FIRE:
+ tiSubCause = convertSubCauseFire((org.genivi.trafficinfo.tpeg.tec.event.Fire) tecSubCause);
+ break;
+
+ case HAZARDOUS_DRIVING_CONDITIONS:
+ tiSubCause = convertSubCauseHazardousDrivingConditions((org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions) tecSubCause);
+ break;
+
+ case OBJECTS_ON_THE_ROAD:
+ tiSubCause = convertSubCauseObjectsOnTheRoad((org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad) tecSubCause);
+ break;
+
+ case ANIMALS_ON_ROADWAY:
+ tiSubCause = convertSubCauseAnimalsOnRoadway((org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway) tecSubCause);
+ break;
+
+ case PEOPLE_ON_ROADWAY:
+ tiSubCause = convertSubCausePeopleOnRoadway((org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway) tecSubCause);
+ break;
+
+ case BROKEN_DOWN_VEHICLES:
+ tiSubCause = convertSubCauseBrokenDownVehicles((org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles) tecSubCause);
+ break;
+
+ case VEHICLE_ON_WRONG_CARRIAGEWAY:
+ // No SubCause
+ break;
+
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ tiSubCause = convertSubCauseRescueAndRecoveryWorkInProgress((org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress) tecSubCause);
+ break;
+
+ case REGULATORY_MEASURE:
+ tiSubCause = convertSubCauseRegulatoryMeasure((org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure) tecSubCause);
+ break;
+
+ case EXTREME_WEATHER_CONDITIONS:
+ tiSubCause = convertSubCauseExtremeWeatherConditions((org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions) tecSubCause);
+ break;
+
+ case VISIBILITY_REDUCED:
+ tiSubCause = convertSubCauseVisibilityReduced((org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced) tecSubCause);
+ break;
+
+ case PRECIPITATION:
+ tiSubCause = convertSubCausePrecipitation((org.genivi.trafficinfo.tpeg.tec.event.Precipitation) tecSubCause);
+ break;
+
+ case RECKLESS_PERSONS:
+ tiSubCause = convertSubCauseRecklessPersons((org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons) tecSubCause);
+ break;
+
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED:
+ // No SubCause
+ break;
+
+ case TRAFFIC_REGULATIONS_CHANGED:
+ // No SubCause
+ break;
+
+ case MAJOR_EVENT:
+ tiSubCause = convertSubCauseMajorEvent((org.genivi.trafficinfo.tpeg.tec.event.MajorEvent) tecSubCause);
+ break;
+
+ case SERVICE_NOT_OPERATING:
+ tiSubCause = convertSubCauseServiceNotOperating((org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating) tecSubCause);
+ break;
+
+ case SERVICE_NOT_USEABLE:
+ tiSubCause = convertSubCauseServiceNotUsable((org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable) tecSubCause);
+ break;
+
+ case SLOW_MOVING_VEHICLES:
+ tiSubCause = convertSubCauseSlowMovingVehicles((org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles) tecSubCause);
+ break;
+
+ case DANGEROUS_END_OF_QUEUE:
+ tiSubCause = convertSubCauseDangerousEndOfQueue((org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue) tecSubCause);
+ break;
+
+ case RISK_OF_FIRE:
+ tiSubCause = convertSubCauseRiskOfFire((org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire) tecSubCause);
+ break;
+
+ case TIME_DELAY:
+ tiSubCause = convertSubCauseTimeDelay((org.genivi.trafficinfo.tpeg.tec.event.TimeDelay) tecSubCause);
+ break;
+
+ case POLICE_CHECKPOINT:
+ tiSubCause = convertSubCausePoliceCheckpoint((org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint) tecSubCause);
+ break;
+
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ tiSubCause = convertSubCauseMalfunctioningRoadsideEquipment((org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment) tecSubCause);
+ break;
+
+ case TEST_MESSAGE:
+ case UNDECODABLE_CAUSE:
+ // No subCause
+ break;
+ }
+ }
+
+ if (tiSubCause != null) {
+ tiDirectCause.setSubCause(tiSubCause);
+ }
+ }
+
+ private static TrafficCongestion convertSubCauseTrafficCongestion(org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion tecTrafficCongestion) {
+ TrafficCongestion tiTrafficCongestion = trafficCongestionMap.get(tecTrafficCongestion);
+
+ if (tiTrafficCongestion == null) {
+ reportMappingProblem("TrafficCongestion sub cause " + tecTrafficCongestion.getName() + " cannot be handled.", false);
+ }
+
+ return tiTrafficCongestion;
+ }
+
+ private static Accident convertSubCauseAccident(org.genivi.trafficinfo.tpeg.tec.event.Accident tecAccident) {
+ Accident tiAccident = accidentMap.get(tecAccident);
+
+ if (tiAccident == null) {
+ reportMappingProblem("Accident sub cause " + tecAccident.getName() + " cannot be handled.", false);
+ }
+
+ return tiAccident;
+ }
+
+ private static RoadWorks convertSubCauseRoadWorks(org.genivi.trafficinfo.tpeg.tec.event.RoadWorks tecRoadWorks) {
+ RoadWorks tiRoadWorks = roadWorksMap.get(tecRoadWorks);
+
+ if (tiRoadWorks == null) {
+ reportMappingProblem("RoadWorks sub cause " + tecRoadWorks.getName() + " cannot be handled.", false);
+ }
+
+ return tiRoadWorks;
+ }
+
+ private static NarrowLanes convertSubCauseNarrowLanes(org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes tecNarrowLanes) {
+ NarrowLanes tiNarrowLanes = narrowLanesMap.get(tecNarrowLanes);
+
+ if (tiNarrowLanes == null) {
+ reportMappingProblem("NarrowLanes sub cause " + tecNarrowLanes.getName() + " cannot be handled.", false);
+ }
+
+ return tiNarrowLanes;
+ }
+
+ private static Impassibility convertSubCauseImpassibility(org.genivi.trafficinfo.tpeg.tec.event.Impassibility tecImpassibility) {
+ Impassibility tiImpassibility = impassibilityMap.get(tecImpassibility);
+
+ if (tiImpassibility == null) {
+ reportMappingProblem("Impassibility sub cause " + tecImpassibility.getName() + " cannot be handled.", false);
+ }
+
+ return tiImpassibility;
+ }
+
+ private static SlipperyRoad convertSubCauseSlipperyRoad(org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad tecSlipperyRoad) {
+ SlipperyRoad tiSlipperyRoad = slipperyRoadMap.get(tecSlipperyRoad);
+
+ if (tiSlipperyRoad == null) {
+ reportMappingProblem("SlipperyRoad sub cause " + tecSlipperyRoad.getName() + " cannot be handled.", false);
+ }
+
+ return tiSlipperyRoad;
+ }
+
+ private static Fire convertSubCauseFire(org.genivi.trafficinfo.tpeg.tec.event.Fire tecFire) {
+ Fire tiFire = fireMap.get(tecFire);
+
+ if (tiFire == null) {
+ reportMappingProblem("Fire sub cause " + tecFire.getName() + " cannot be handled.", false);
+ }
+
+ return tiFire;
+ }
+
+ private static HazardousDrivingConditions convertSubCauseHazardousDrivingConditions(org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions tecHazardousDrivingConditions) {
+ HazardousDrivingConditions tiHazardousDrivingConditions = hazardousDrivingConditionsMap.get(tecHazardousDrivingConditions);
+
+ if (tiHazardousDrivingConditions == null) {
+ reportMappingProblem("HazardousDrivingConditions sub cause " + tecHazardousDrivingConditions.getName() + " cannot be handled.", false);
+ }
+
+ return tiHazardousDrivingConditions;
+ }
+
+ private static ObjectsOnTheRoad convertSubCauseObjectsOnTheRoad(org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad tecObjectsOnTheRoad) {
+ ObjectsOnTheRoad tiObstructionsOnTheRoad = objectsOnTheRoadMap.get(tecObjectsOnTheRoad);
+
+ if (tiObstructionsOnTheRoad == null) {
+ reportMappingProblem("ObjectsOnTheRoad sub cause " + tecObjectsOnTheRoad.getName() + " cannot be handled.", false);
+ }
+
+ return tiObstructionsOnTheRoad;
+ }
+
+ private static AnimalsOnRoadway convertSubCauseAnimalsOnRoadway(org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway tecAnimalsOnRoadway) {
+ AnimalsOnRoadway tiAnimalsOnRoadway = animalsOnRoadwayMap.get(tecAnimalsOnRoadway);
+
+ if (tiAnimalsOnRoadway == null) {
+ reportMappingProblem("AnimalsOnRoadway sub cause " + tecAnimalsOnRoadway.getName() + " cannot be handled.", false);
+ }
+
+ return tiAnimalsOnRoadway;
+ }
+
+ private static PeopleOnRoadway convertSubCausePeopleOnRoadway(org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway tecPeopleOnRoadway) {
+ PeopleOnRoadway tiPeopleOnRoadway = peopleOnRoadwayMap.get(tecPeopleOnRoadway);
+
+ if (tiPeopleOnRoadway == null) {
+ reportMappingProblem("PeopleOnRoadway sub cause " + tecPeopleOnRoadway.getName() + " cannot be handled.", false);
+ }
+
+ return tiPeopleOnRoadway;
+ }
+
+ private static BrokenDownVehicles convertSubCauseBrokenDownVehicles(org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles tecBrokenDownVehicles) {
+ BrokenDownVehicles tiBrokenDownVehicles = brokenDownVehiclesMap.get(tecBrokenDownVehicles);
+
+ if (tiBrokenDownVehicles == null) {
+ reportMappingProblem("BrokenDownVehicles sub cause " + tecBrokenDownVehicles.getName() + " cannot be handled.", false);
+ }
+
+ return tiBrokenDownVehicles;
+ }
+
+ private static RescueAndRecoveryWorkInProgress convertSubCauseRescueAndRecoveryWorkInProgress(org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress tecRescueAndRecoveryWorkInProgress) {
+ RescueAndRecoveryWorkInProgress tiRescueAndRecoveryWorkInProgress = rescueAndRecoveryWorkInProgressMap.get(tecRescueAndRecoveryWorkInProgress);
+
+ if (tiRescueAndRecoveryWorkInProgress == null) {
+ reportMappingProblem("RescueAndRecoveryWorkInProgress sub cause " + tecRescueAndRecoveryWorkInProgress.getName() + " cannot be handled.", false);
+ }
+
+ return tiRescueAndRecoveryWorkInProgress;
+ }
+
+ private static RegulatoryMeasure convertSubCauseRegulatoryMeasure(org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure tecRegulatoryMeasure) {
+ RegulatoryMeasure tiRegulatoryMeasure = regulatoryMeasureMap.get(tecRegulatoryMeasure);
+
+ if (tiRegulatoryMeasure == null) {
+ reportMappingProblem("RegulatoryMeasure sub cause " + tecRegulatoryMeasure.getName() + " cannot be handled.", false);
+ }
+
+ return tiRegulatoryMeasure;
+ }
+
+ private static ExtremeWeatherConditions convertSubCauseExtremeWeatherConditions(org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions tecExtremeWeatherConditions) {
+ ExtremeWeatherConditions tiExtremeWeatherConditions = extremeWeatherConditionsMap.get(tecExtremeWeatherConditions);
+
+ if (tiExtremeWeatherConditions == null) {
+ reportMappingProblem("ExtremeWeatherConditions sub cause " + tecExtremeWeatherConditions.getName() + " cannot be handled.", false);
+ }
+
+ return tiExtremeWeatherConditions;
+ }
+
+ private static VisibilityReduced convertSubCauseVisibilityReduced(org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced tecVisibilityReduced) {
+ VisibilityReduced tiVisibilityReduced = visibilityReducedMap.get(tecVisibilityReduced);
+
+ if (tiVisibilityReduced == null) {
+ reportMappingProblem("VisibilityReduced sub cause " + tecVisibilityReduced.getName() + " cannot be handled.", false);
+ }
+
+ return tiVisibilityReduced;
+ }
+
+ private static Precipitation convertSubCausePrecipitation(org.genivi.trafficinfo.tpeg.tec.event.Precipitation tecPrecipitation) {
+ Precipitation tiPrecipitation = precipitationMap.get(tecPrecipitation);
+
+ if (tiPrecipitation == null) {
+ reportMappingProblem("Precipitation sub cause " + tecPrecipitation.getName() + " cannot be handled.", false);
+ }
+
+ return tiPrecipitation;
+ }
+
+ private static RecklessPersons convertSubCauseRecklessPersons(org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons tecRecklessPersons) {
+ RecklessPersons tiRecklessPersons = recklessPersonsMap.get(tecRecklessPersons);
+
+ if (tiRecklessPersons == null) {
+ reportMappingProblem("RecklessPersons sub cause " + tecRecklessPersons.getName() + " cannot be handled.", false);
+ }
+
+ return tiRecklessPersons;
+ }
+
+ private static MajorEvent convertSubCauseMajorEvent(org.genivi.trafficinfo.tpeg.tec.event.MajorEvent tecMajorEvent) {
+ MajorEvent tiMajorEvent = majorEventMap.get(tecMajorEvent);
+
+ if (tiMajorEvent == null) {
+ reportMappingProblem("MajorEvent sub cause " + tecMajorEvent.getName() + " cannot be handled.", false);
+ }
+
+ return tiMajorEvent;
+ }
+
+ private static ServiceNotOperating convertSubCauseServiceNotOperating(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating tecServiceNotOperating) {
+ ServiceNotOperating tiServiceNotOperating = serviceNotOperatingMap.get(tecServiceNotOperating);
+
+ if (tiServiceNotOperating == null) {
+ reportMappingProblem("ServiceNotOperating sub cause " + tecServiceNotOperating.getName() + " cannot be handled.", false);
+ }
+
+ return tiServiceNotOperating;
+ }
+
+ private static ServiceNotUsable convertSubCauseServiceNotUsable(org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable tecServiceNotUsable) {
+ ServiceNotUsable tiServiceNotUsable = serviceNotUsableMap.get(tecServiceNotUsable);
+
+ if (tiServiceNotUsable == null) {
+ reportMappingProblem("ServiceNotUsable sub cause " + tecServiceNotUsable.getName() + " cannot be handled.", false);
+ }
+
+ return tiServiceNotUsable;
+ }
+
+ private static SlowMovingVehicles convertSubCauseSlowMovingVehicles(org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles tecSlowMovingVehicles) {
+ SlowMovingVehicles tiSlowMovingVehicles = slowMovingVehiclesMap.get(tecSlowMovingVehicles);
+
+ if (tiSlowMovingVehicles == null) {
+ reportMappingProblem("SlowMovingVehicles sub cause " + tecSlowMovingVehicles.getName() + " cannot be handled.", false);
+ }
+
+ return tiSlowMovingVehicles;
+ }
+
+ private static DangerousEndOfQueue convertSubCauseDangerousEndOfQueue(org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue tecDangerousEndOfQueue) {
+ DangerousEndOfQueue tiDangerousEndOfQueue = dangerousEndOfQueueMap.get(tecDangerousEndOfQueue);
+
+ if (tiDangerousEndOfQueue == null) {
+ reportMappingProblem("DangerousEndOfQueue sub cause " + tecDangerousEndOfQueue.getName() + " cannot be handled.", false);
+ }
+
+ return tiDangerousEndOfQueue;
+ }
+
+ private static RiskOfFire convertSubCauseRiskOfFire(org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire tecRiskOfFire) {
+ RiskOfFire tiDangerOfFire = riskOfFireMap.get(tecRiskOfFire);
+
+ if (tiDangerOfFire == null) {
+ reportMappingProblem("RiskOfFire sub cause " + tecRiskOfFire.getName() + " cannot be handled.", false);
+ }
+
+ return tiDangerOfFire;
+ }
+
+ private static TimeDelay convertSubCauseTimeDelay(org.genivi.trafficinfo.tpeg.tec.event.TimeDelay tecTimeDelay) {
+ TimeDelay tiTimeDelay = timeDelayMap.get(tecTimeDelay);
+
+ if (tiTimeDelay == null) {
+ reportMappingProblem("TimeDelay sub cause " + tecTimeDelay.getName() + " cannot be handled.", false);
+ }
+
+ return tiTimeDelay;
+ }
+
+ private static PoliceCheckpoint convertSubCausePoliceCheckpoint(org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint tecPoliceCheckpoint) {
+ PoliceCheckpoint tiPoliceCheckpoint = policeCheckpointMap.get(tecPoliceCheckpoint);
+
+ if (tiPoliceCheckpoint == null) {
+ reportMappingProblem("PoliceCheckpoint sub cause " + tecPoliceCheckpoint.getName() + " cannot be handled.", false);
+ }
+
+ return tiPoliceCheckpoint;
+ }
+
+ private static MalfunctioningRoadsideEquipment convertSubCauseMalfunctioningRoadsideEquipment(org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment tecMalfunctioningRoadsideEquipment) {
+ MalfunctioningRoadsideEquipment tiMalfunctioningRoadsideEquipment = malfunctioningRoadsideEquipmentMap.get(tecMalfunctioningRoadsideEquipment);
+
+ if (tiMalfunctioningRoadsideEquipment == null) {
+ reportMappingProblem("MalfunctioningRoadsideEquipment sub cause " + tecMalfunctioningRoadsideEquipment.getName() + " cannot be handled.", false);
+ }
+
+ return tiMalfunctioningRoadsideEquipment;
+ }
+
+ private static void handleLaneRestrictionType(org.genivi.trafficinfo.tpeg.tec.event.DirectCause tecDirectCause, DirectCause tiDirectCause) {
+ if (!tecDirectCause.isSetLaneRestrictionType()) {
+ return;
+ }
+
+ LaneRestrictionType tiLaneRestrictionType = convertLaneRestrictionType(tecDirectCause.getLaneRestrictionType());
+
+ if (tiLaneRestrictionType != null) {
+ LaneRestrictions laneRestrictions = TI_FACTORY.createLaneRestrictions();
+ laneRestrictions.setLaneRestrictionType(tiLaneRestrictionType);
+ laneRestrictions.setNumberOfLanes(tecDirectCause.getNumberOfLanes());
+
+ tiDirectCause.setLaneRestrictions(laneRestrictions);
+ }
+ }
+
+ private void handleCauseFreeText(org.genivi.trafficinfo.tpeg.tec.event.DirectCause tecDirectCause, DirectCause tiDirectCause) {
+ LOGGER.info("=>");
+
+ for (LocalisedShortString tecLocalisedShortString: tecDirectCause.getFreeText()) {
+ LocalizedString tiLocalisedString = COMMON_FACTORY.createLocalizedString();
+ String geniviLanguageCode = languageMap.get(tecLocalisedShortString.getLanguageCode());
+ if (geniviLanguageCode != null) {
+ tiLocalisedString.setLanguageCode(geniviLanguageCode);
+ tiLocalisedString.setCountryCode(languageCountryMap.get(tecLocalisedShortString.getLanguageCode()));
+ tiLocalisedString.setString(tecLocalisedShortString.getString());
+ tiDirectCause.getFreeText().add(tiLocalisedString);
+ } else {
+ throw new IllegalArgumentException("TEC LanguageCode " + tecLocalisedShortString.getLanguageCode() + " not supported");
+ }
+ }
+ }
+
+ private static LaneRestrictionType convertLaneRestrictionType(org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType tecLaneRestrictionType) {
+ LaneRestrictionType tiLaneRestrictionType = laneRestrictionTypeMap.get(tecLaneRestrictionType);
+
+ if (tiLaneRestrictionType == null) {
+ reportMappingProblem("LaneRestrictionType " + tecLaneRestrictionType.getName() + " cannot be handled.", false);
+ }
+
+ return tiLaneRestrictionType;
+ }
+
+
+ private void handleAdvice(org.genivi.trafficinfo.tpeg.tec.event.Advice advice, TrafficIncident trafficIncident) {
+ Advice tiAdvice = TI_FACTORY.createAdvice();
+
+ AdviceCode tiAdviceCode = convertAdviceCode(advice);
+ tiAdvice.setMainAdvice(tiAdviceCode);
+ handleSubAdviceCode(advice, tiAdvice);
+
+ handleAdviceFreeText(advice, tiAdvice);
+
+ trafficIncident.getAdvices().add(tiAdvice);
+ }
+
+ private static AdviceCode convertAdviceCode(org.genivi.trafficinfo.tpeg.tec.event.Advice advice) {
+ org.genivi.trafficinfo.tpeg.tec.event.AdviceCode tecAdviceCode = advice.getAdviceCode();
+
+ if (tecAdviceCode == null) {
+ return null;
+ }
+
+ if (tecAdviceCode == org.genivi.trafficinfo.tpeg.tec.event.AdviceCode.UNDECODABLE_ADVICE) {
+ reportMappingProblem("AdviceCode " + tecAdviceCode.getName() + " received (ignored).", true);
+ return null;
+ }
+
+ AdviceCode tiAdviceCode = adviceCodeMap.get(tecAdviceCode);
+
+ if (tiAdviceCode == null) {
+ reportMappingProblem("AdviceCode " + tecAdviceCode.getName() + " cannot be handled.", false);
+ }
+
+ return tiAdviceCode;
+ }
+
+ private static void handleSubAdviceCode(org.genivi.trafficinfo.tpeg.tec.event.Advice tecAdvice, Advice tiAdvice) {
+ org.genivi.trafficinfo.tpeg.tec.event.AdviceCode tecAdviceCode = tecAdvice.getAdviceCode();
+ Object tiSubAdviceCode = null;
+ Object tecSubAdviceCode = tecAdvice.getSubAdviceCode();
+
+ if (tecSubAdviceCode != null) {
+ switch (tecAdviceCode) {
+ case AVOID_THE_AREA:
+ case DO_NOT_DIVERT:
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE:
+ case FOLLOW_POLICE_INSTRUCTIONS:
+ case NO_DIVERSION_TO_RECOMMEND:
+ case SWITCH_ON_RADIO:
+ case UNDECODABLE_ADVICE:
+ case USE_HARD_SHOULDER_AS_LANE:
+ case WAIT_FOR_CONVOI:
+ case WAIT_FOR_IMPROVED_WEATHER:
+ case WAIT_FOR_POLICE_PATROL:
+ // No SubAdviceCode
+ break;
+
+ case DO_NOT_LEAVE_YOUR_VEHICLE:
+ tiSubAdviceCode = convertSubAdviceCodeDoNotLeaveYourVehicle((org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle) tecSubAdviceCode);
+ break;
+
+ case DRIVE_CAREFULLY:
+ tiSubAdviceCode = convertSubAdviceCodeDriveCarefully((org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully) tecSubAdviceCode);
+ break;
+
+ case DRIVING_NOT_ALLOWED:
+ tiSubAdviceCode = convertSubAdviceCodeDrivingNotAllowed((org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed) tecSubAdviceCode);
+ break;
+
+ case FOLLOW_DIVERSION:
+ tiSubAdviceCode = convertSubAdviceCodeFollowDiversion((org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion) tecSubAdviceCode);
+ break;
+
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND:
+ tiSubAdviceCode = convertSubAdviceCodeGivingPathVehiclesComingFromBehind((org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind) tecSubAdviceCode);
+ break;
+
+ case OVERTAKING_NOT_ALLOWED:
+ tiSubAdviceCode = convertSubAdviceCodeOvertakingNotAllowed((org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed) tecSubAdviceCode);
+ break;
+
+ case USE_TOLL_LANES:
+ tiSubAdviceCode = convertSubAdviceCodeUseTollLanes((org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes) tecSubAdviceCode);
+ break;
+
+ }
+ }
+
+ if (tiSubAdviceCode != null) {
+ tiAdvice.setSubAdvice(tiSubAdviceCode);
+ }
+ }
+
+ private static DoNotLeaveYourVehicle convertSubAdviceCodeDoNotLeaveYourVehicle(org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle tecDoNotLeaveYourVehicle) {
+ DoNotLeaveYourVehicle tiDoNotLeaveYourVehicle = doNotLeaveYourVehicleMap.get(tecDoNotLeaveYourVehicle);
+
+ if (tiDoNotLeaveYourVehicle == null) {
+ reportMappingProblem("DoNotLeaveYourVehicle sub cause " + tecDoNotLeaveYourVehicle.getName() + " cannot be handled.", false);
+ }
+
+ return tiDoNotLeaveYourVehicle;
+ }
+
+ private static DriveCarefully convertSubAdviceCodeDriveCarefully(org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully tecDriveCarefully) {
+ DriveCarefully tiDriveCarefully = driveCarefullyMap.get(tecDriveCarefully);
+
+ if (tiDriveCarefully == null) {
+ reportMappingProblem("DriveCarefully sub cause " + tecDriveCarefully.getName() + " cannot be handled.", false);
+ }
+
+ return tiDriveCarefully;
+ }
+
+ private static DrivingNotAllowed convertSubAdviceCodeDrivingNotAllowed(org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed tecDrivingNotAllowed) {
+ DrivingNotAllowed tiDrivingNotAllowed = drivingNotAllowedMap.get(tecDrivingNotAllowed);
+
+ if (tiDrivingNotAllowed == null) {
+ reportMappingProblem("DrivingNotAllowed sub cause " + tecDrivingNotAllowed.getName() + " cannot be handled.", false);
+ }
+
+ return tiDrivingNotAllowed;
+ }
+
+ private static FollowDiversion convertSubAdviceCodeFollowDiversion(org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion tecFollowDiversion) {
+ FollowDiversion tiFollowDiversion = followDiversionMap.get(tecFollowDiversion);
+
+ if (tiFollowDiversion == null) {
+ reportMappingProblem("FollowDiversion sub cause " + tecFollowDiversion.getName() + " cannot be handled.", false);
+ }
+
+ return tiFollowDiversion;
+ }
+
+ private static GivingPathVehiclesFromBehind convertSubAdviceCodeGivingPathVehiclesComingFromBehind(org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind tecGivingPathVehiclesFromBehind) {
+ GivingPathVehiclesFromBehind tiGivingPathVehiclesFromBehind = givingPathVehiclesFromBehindMap.get(tecGivingPathVehiclesFromBehind);
+
+ if (tiGivingPathVehiclesFromBehind == null) {
+ reportMappingProblem("GivingPathVehiclesFromBehind sub cause " + tecGivingPathVehiclesFromBehind.getName() + " cannot be handled.", false);
+ }
+
+ return tiGivingPathVehiclesFromBehind;
+ }
+
+ private static OvertakingNotAllowed convertSubAdviceCodeOvertakingNotAllowed(org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed tecOvertakingNotAllowed) {
+ OvertakingNotAllowed tiOvertakingNotAllowed = overtakingNotAllowedMap.get(tecOvertakingNotAllowed);
+
+ if (tiOvertakingNotAllowed == null) {
+ reportMappingProblem("OvertakingNotAllowed sub cause " + tecOvertakingNotAllowed.getName() + " cannot be handled.", false);
+ }
+
+ return tiOvertakingNotAllowed;
+ }
+
+ private static UseTollLanes convertSubAdviceCodeUseTollLanes(org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes tecUseTollLanes) {
+ UseTollLanes tiUseTollLanes = useTollLanesMap.get(tecUseTollLanes);
+
+ if (tiUseTollLanes == null) {
+ reportMappingProblem("UseTollLanes sub cause " + tecUseTollLanes.getName() + " cannot be handled.", false);
+ }
+
+ return tiUseTollLanes;
+ }
+
+ private void handleAdviceFreeText(org.genivi.trafficinfo.tpeg.tec.event.Advice tecAdvice, Advice tiAdvice) {
+ LOGGER.info("=>");
+
+ for (LocalisedShortString tecLocalisedShortString: tecAdvice.getFreeText()) {
+ LocalizedString tiLocalisedString = COMMON_FACTORY.createLocalizedString();
+ String geniviLanguageCode = languageMap.get(tecLocalisedShortString.getLanguageCode());
+ if (geniviLanguageCode != null) {
+ tiLocalisedString.setLanguageCode(geniviLanguageCode);
+ tiLocalisedString.setCountryCode(languageCountryMap.get(tecLocalisedShortString.getLanguageCode()));
+ tiLocalisedString.setString(tecLocalisedShortString.getString());
+ tiAdvice.getFreeText().add(tiLocalisedString);
+ } else {
+ throw new IllegalArgumentException("TEC LanguageCode " + tecLocalisedShortString.getLanguageCode() + " not supported");
+ }
+ }
+ }
+
+
+ private static void handleVehicleRestriction(org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction tecVehicleRestriction, TrafficIncident trafficIncident) {
+ VehicleType tiVehicleType = convertVehicleType(tecVehicleRestriction.getVehicleType());
+
+ if (tiVehicleType != null) {
+ Applicability applicability = TI_FACTORY.createApplicability();
+ applicability.setVehicleType(tiVehicleType);
+
+ for (org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction tecVehicleRelatedRestriction: tecVehicleRestriction.getRestriction()) {
+ handleVehicleRelatedRestriction(tecVehicleRelatedRestriction, applicability.getVehicleRelatedRestrictions());
+ }
+
+ trafficIncident.getApplicability().add(applicability);
+ }
+ }
+
+ private static void handleVehicleRelatedRestriction(org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction tecVehicleRelatedRestriction,
+ EList<org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.VehicleRelatedRestriction> vehicleRelatedRestrictions) {
+ RestrictionType tiRestrictionType = convertRestrictionType(tecVehicleRelatedRestriction.getRestrictionType());
+
+ if (tiRestrictionType != null) {
+ VehicleRelatedRestriction tiVehicleRelatedRestriction = TI_FACTORY.createVehicleRelatedRestriction();
+ tiVehicleRelatedRestriction.setRestrictionType(tiRestrictionType);
+ tiVehicleRelatedRestriction.setRestrictionValue(tecVehicleRelatedRestriction.getRestrictionValue());
+
+ LocationReferencingContainer locationReferencingContainer = tecVehicleRelatedRestriction.getRestrictionLocation();
+
+ if (locationReferencingContainer != null) {
+ for (Method method :locationReferencingContainer.getMethod()) {
+ LocationReference locationReference = createLocationReferenceForMethod(method);
+ if (locationReference != null) {
+ tiVehicleRelatedRestriction.setRestrictionLocationReference(locationReference);
+ }
+ }
+ }
+
+ vehicleRelatedRestrictions.add(tiVehicleRelatedRestriction);
+ }
+ }
+
+ private static VehicleType convertVehicleType(org.genivi.trafficinfo.tpeg.tec.event.VehicleType tecVehicleType) {
+ if (tecVehicleType == org.genivi.trafficinfo.tpeg.tec.event.VehicleType.UNDECODABLE_VEHICLE_TYPE) {
+ reportMappingProblem("VehicleType " + tecVehicleType.getName() + " received (ignored).", true);
+ return null;
+ }
+
+ VehicleType tiVehicleType = vehicleTypeMap.get(tecVehicleType);
+
+ if (tiVehicleType == null) {
+ reportMappingProblem("VehicleType " + tecVehicleType.getName() + " cannot be handled.", false);
+ }
+
+ return tiVehicleType;
+ }
+
+ private static RestrictionType convertRestrictionType(org.genivi.trafficinfo.tpeg.tec.event.RestrictionType tecRestrictionType) {
+ if (tecRestrictionType == org.genivi.trafficinfo.tpeg.tec.event.RestrictionType.UNDECODABLE_RESTRICTION) {
+ reportMappingProblem("RestrictionType " + tecRestrictionType.getName() + " received (ignored).", true);
+ return null;
+ }
+
+ RestrictionType tiRestrictionType = restrictionTypeMap.get(tecRestrictionType);
+
+ if (tiRestrictionType == null) {
+ reportMappingProblem("RestrictionType " + tecRestrictionType.getName() + " cannot be handled.", false);
+ }
+
+ return tiRestrictionType;
+ }
+
+ private static void reportMappingProblem(String message, boolean info) {
+ if (info) {
+ System.out.println("TecEventToTrafficIncidentConversion: " + message);
+ } else {
+ System.err.println("TecEventToTrafficIncidentConversion: " + message);
+ }
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecUtil.java b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecUtil.java
new file mode 100755
index 0000000..e4e5674
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TecUtil.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.tpegtecfeed.refimpl;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+public class TecUtil {
+ public static String createMessageId(ServiceIdentifier originatorSID, byte COID, int messageId) {
+ StringBuilder buf = new StringBuilder();
+ buf.append(String.valueOf(originatorSID.getSidA()));
+ buf.append(".");
+ buf.append(String.valueOf(originatorSID.getSidB()));
+ buf.append(".");
+ buf.append(String.valueOf(originatorSID.getSidC()));
+ buf.append(":");
+ buf.append(String.valueOf(COID));
+ buf.append(":");
+ buf.append(String.valueOf(messageId));
+
+ return buf.toString();
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecDecodingUnit.java b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecDecodingUnit.java
new file mode 100755
index 0000000..5b7e015
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecDecodingUnit.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.tpegtecfeed.refimpl;
+
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegDecodingUnit;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+public class TpegTecDecodingUnit implements TpegDecodingUnit {
+ private final static Logger LOGGER = Logger.getLogger(TpegTecDecodingUnit.class.getName());
+
+ private TpegTecMessageHandler tpegTecMessageHandler;
+
+
+ public TpegTecDecodingUnit(TpegTecMessageHandler tpegTecMessageHandler) {
+ LOGGER.setLevel(Level.SEVERE);
+
+ this.tpegTecMessageHandler = tpegTecMessageHandler;
+ }
+
+ @Override
+ public void handleServiceComponentFrame(long channelId, String communicationChannelName, ServiceIdentifier originatorSID, byte COID, Object object) {
+ LOGGER.info("Received Service Component Frame");
+
+ ServCompFramePrioritisedCountedProtected serviceComponentFrame = (ServCompFramePrioritisedCountedProtected) object;
+ serviceComponentFrame.getDataCRC(); // NOTE nothing done with data CRC
+ serviceComponentFrame.getFieldLength(); // NOTE nothing done with fieldLength
+ serviceComponentFrame.getGroupPriority(); // NOTE nothing done with groupPriority
+ serviceComponentFrame.getMessageCount(); // NOTE nothing done with messageCount
+ serviceComponentFrame.getScHeaderCRC(); // NOTE nothing done with header CRC
+ serviceComponentFrame.getSCID(); // NOTE nothing done with SCID
+ @SuppressWarnings("unchecked")
+ List<TECMessage> tecMessages = (List<TECMessage>) serviceComponentFrame.getApplicationContent();
+ tpegTecMessageHandler.handleMessagesStart(channelId, communicationChannelName, originatorSID, COID);
+
+ for (TECMessage tecMessage: tecMessages) {
+ tpegTecMessageHandler.handleMessage(tecMessage);
+ }
+
+ tpegTecMessageHandler.handleMessagesEnd();
+
+ LOGGER.info("<=");
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecFeedRefImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecFeedRefImpl.java
new file mode 100755
index 0000000..cd91741
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecFeedRefImpl.java
@@ -0,0 +1,140 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.tpegtecfeed.refimpl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.common.Version;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsUpdatesListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegDecodingUnit;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegSfwClients;
+import org.genivi.trafficinfo.tpeg.registeredvalues.ApplicationId;
+
+
+public class TpegTecFeedRefImpl extends EObjectImpl {
+ // Version information
+ private static final int REQUIRED_TIS_MAJOR_VERSION_NUMBER = 1;
+ private static final int REQUIRED_TIS_MINOR_VERSION_NUMBER = 0;
+ private static String COMMUNICATION_CHANNEL_NAME = "some tuner";
+
+ private final static Logger LOGGER = Logger.getLogger(TpegTecFeedRefImpl.class.getName());
+
+
+ private TrafficIncidentFeed trafficIncidentFeed;
+ private TpegSfwClients tpegSfwClients;
+ private TpegTecMessageHandler tpegTecMessageHandler;
+ private TpegDecodingUnit tpegTecDecodingUnit;
+ private boolean registeredToSfw = false;
+
+ public TpegTecFeedRefImpl(TpegSfwClients tpegSfwClients, TrafficIncidentFeed trafficIncidentFeed) {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating TpegTecFeed");
+
+ this.trafficIncidentFeed = trafficIncidentFeed;
+ this.tpegSfwClients = tpegSfwClients;
+
+ sendTrafficIncidentsUpdatesVersionRequest();
+
+ }
+
+ private void sendTrafficIncidentsUpdatesVersionRequest() {
+ LOGGER.info("Step 1: Get the version of the Traffic Incidents Service");
+ TrafficIncidentFeedListener listener = new VersionListener();
+ trafficIncidentFeed.getVersion(listener);
+ }
+
+ private void handleTrafficIncidentsUpdatesVersionReply(Version version) {
+ LOGGER.info("Step 1a: Version received: version = " + version);
+ if (version.getMajor() != REQUIRED_TIS_MAJOR_VERSION_NUMBER ||
+ version.getMinor() != REQUIRED_TIS_MINOR_VERSION_NUMBER) {
+ LOGGER.severe("Step 1b: Unsupported version");
+ throw new RuntimeException("Incompatible version of TrafficIncidentFeed");
+ }
+ // TODO extend the interface to the service framework:
+ // - first register there as Decoding Unit
+ // - register there as channel listener
+ // - when a channel is received, register as feed to the service
+ // - then register for that specific channel at the framework
+ // - only then data for that channel will be recieved.
+ // For now we use a fixed channel name.
+ LOGGER.info("Step 1c: Supported version, continue with next step");
+ registerToTrafficIncidentsService(COMMUNICATION_CHANNEL_NAME);
+ }
+
+ private void registerToTrafficIncidentsService(String communicationChannelName) {
+ LOGGER.info("Step 2: Register as a Feed to the Traffic Incidents Service");
+ TrafficIncidentFeedListener listener = new RegisterFeedReplyListener();
+ trafficIncidentFeed.registerFeed(listener, "TomTom", "TPEG-TEC", communicationChannelName);
+ }
+
+ private void handleTrafficIncidentsUpdatesRegisterFeedReply(int feedId) {
+ LOGGER.info("Step 2a: feedId received, feedId = " + feedId);
+
+ tpegTecMessageHandler = new TpegTecMessageHandlerRefImpl(trafficIncidentFeed, COMMUNICATION_CHANNEL_NAME, feedId);
+ tpegTecDecodingUnit = new TpegTecDecodingUnit(tpegTecMessageHandler);
+
+
+ tpegSfwClients.registerApplication(ApplicationId.TEC.getAid(), tpegTecDecodingUnit);
+ registeredToSfw = true;
+
+ registerLanguageListener();
+ }
+
+ private void registerLanguageListener() {
+ LOGGER.info("Step 3: Register as a Language Listener to the Traffic Incidents Service");
+ TrafficIncidentFeedListener listener = new GetLanguageReplyListener();
+ trafficIncidentFeed.addLanguageListener(listener, listener);
+ }
+
+ private void handleLanguageChanged(String languageCode, String countryCode) {
+ LOGGER.info("Step 3a: language received: languageCode = " + languageCode + ", countryCode = " + countryCode);
+ tpegTecMessageHandler.languageChanged(languageCode, countryCode);
+
+ LOGGER.info("Step 4: Ready to handle data, register as application to the Sfw");
+ if (!registeredToSfw) {
+ tpegSfwClients.registerApplication(ApplicationId.TEC.getAid(), tpegTecDecodingUnit);
+ registeredToSfw = true;
+ }
+ }
+
+ private class VersionListener extends DefaultTrafficIncidentsUpdatesListener {
+
+ @Override
+ public void getVersionReply(Version version) {
+ handleTrafficIncidentsUpdatesVersionReply(version);
+ }
+ }
+
+ private class RegisterFeedReplyListener extends DefaultTrafficIncidentsUpdatesListener {
+
+ @Override
+ public void registerFeedReply(int feedId) {
+ LOGGER.info("registerFeedReply() called, feedId = " + feedId);
+ handleTrafficIncidentsUpdatesRegisterFeedReply(feedId);
+ }
+ }
+
+ private class GetLanguageReplyListener extends DefaultTrafficIncidentsUpdatesListener {
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ LOGGER.info("getLanguageReply: " + languageCode + ", " + countryCode);
+ handleLanguageChanged(languageCode, countryCode);
+ }
+
+ @Override
+ public void addLanguageListenerReply() {
+ // No action.
+ LOGGER.info("Call to addLanguageListenerReply ignored!");
+ }
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandler.java b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandler.java
new file mode 100755
index 0000000..4b89a64
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandler.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.tpegtecfeed.refimpl;
+
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+public interface TpegTecMessageHandler {
+
+ public void languageChanged(String languageCode, String countryCode);
+
+ public void handleMessagesStart(long channelId, String communicationChannelName, ServiceIdentifier originatorSID, byte COID);
+
+ public void handleMessage(TECMessage tecMessage);
+
+ public void handleMessagesEnd();
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandlerRefImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandlerRefImpl.java
new file mode 100755
index 0000000..0f3f792
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficincidentsfeed.tpegtec/src/main/java/org/genivi/tpegtecfeed/refimpl/TpegTecMessageHandlerRefImpl.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.tpegtecfeed.refimpl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.trafficincident.XTrafficIncidentFactory;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+public class TpegTecMessageHandlerRefImpl extends EObjectImpl implements TpegTecMessageHandler {
+ private final static Logger LOGGER = Logger.getLogger(TpegTecMessageHandlerRefImpl.class.getName());
+ private final static XTrafficIncidentFactory factory = XTrafficIncidentFactory.eINSTANCE;
+
+ private int feedId;
+ private String communicationChannelName;
+ TrafficIncidentsStatus trafficIncidentsStatus = TrafficIncidentsStatus.UNAVAILABLE;
+ private TrafficIncidentFeed trafficIncidentFeed;
+ private TecEventToTrafficIncidentConversion tecEventToTrafficIncidentConversion;
+ private ServiceIdentifier originatorSID;
+ private byte COID;
+ private EList<String> cancels;
+ private EList<TrafficIncident> updates;
+
+ public TpegTecMessageHandlerRefImpl(TrafficIncidentFeed trafficIncidentFeed, String communicationChannelName, int feedId) {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("=> trafficIncidentFeed = " + trafficIncidentFeed +
+ ", communicationChannelName = " + communicationChannelName + ", feedId = " + feedId);
+
+ this.trafficIncidentFeed = trafficIncidentFeed;
+ this.feedId = feedId;
+ this.communicationChannelName = communicationChannelName;
+ tecEventToTrafficIncidentConversion = new TecEventToTrafficIncidentConversion();
+ }
+
+ public void languageChanged(String languageCode, String countryCode) {
+ LOGGER.info("=> languageCode = " + languageCode + ", countryCode = " + countryCode);
+ tecEventToTrafficIncidentConversion.setLanguage(languageCode, countryCode);
+ }
+
+ @Override
+ public void handleMessagesStart(long channelId, String communicationChannelName, ServiceIdentifier originatorSID, byte COID) {
+ LOGGER.info("handleMessagesStart => communicationChannelName = " + communicationChannelName);
+ if (!communicationChannelName.equals(this.communicationChannelName)) {
+ LOGGER.severe("Unexpected communicationChannelName: " + communicationChannelName);
+ }
+
+ updateStatus();
+
+ this.originatorSID = originatorSID;
+ this.COID = COID;
+ cancels = new BasicEList<String>();
+ updates = new BasicEList<TrafficIncident>();
+ }
+
+ private void updateStatus() {
+ LOGGER.info("=>");
+ if (trafficIncidentsStatus == TrafficIncidentsStatus.UNAVAILABLE) {
+ trafficIncidentsStatus = TrafficIncidentsStatus.PARTLY_AVAILABLE;
+ LOGGER.info("Switching to PARTLY_AVAILABLE.");
+ } else {
+ trafficIncidentsStatus = TrafficIncidentsStatus.AVAILABLE;
+ LOGGER.info("Switching to AVAILABLE.");
+ }
+
+ trafficIncidentFeed.updateStatus(feedId, TrafficIncidentFeedStatus.CONNECTED, trafficIncidentsStatus);
+ LOGGER.info("<=");
+ }
+
+ @Override
+ public void handleMessage(TECMessage tecMessage) {
+ LOGGER.info("Going to handle TECMessage.");
+
+ MMCSwitch mmcSwitch = tecMessage.getMmt();
+ String trafficIncidentManagementId = TecUtil.createMessageId(originatorSID, COID, mmcSwitch.getMessageID());
+ MessageManagementContainer messageManagementContainer = (MessageManagementContainer) mmcSwitch;
+ if (messageManagementContainer.isCancelFlag()) {
+ cancels.add(trafficIncidentManagementId);
+ } else {
+ TrafficIncident managedTrafficIncident = factory.createTrafficIncident();
+
+ managedTrafficIncident.setTrafficIncidentId(trafficIncidentManagementId);
+ managedTrafficIncident.setExpirationTime(mmcSwitch.getMessageExpiryTime());
+
+ tecEventToTrafficIncidentConversion.convertTecMessageToManagedTrafficIncident(managedTrafficIncident, tecMessage);
+
+ updates.add(managedTrafficIncident);
+ }
+ }
+
+ @Override
+ public void handleMessagesEnd() {
+ LOGGER.info("=> feedId = " + feedId);
+ if (!cancels.isEmpty() || !updates.isEmpty()) {
+ trafficIncidentFeed.updateIncidents(feedId, cancels, updates);
+ }
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.classpath
new file mode 100755
index 0000000..ec12b45
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.project
new file mode 100755
index 0000000..3c740dc
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.tpeg.sni-model</name>
+ <comment>This project contains the model for TPEG SNI. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/META-INF/MANIFEST.MF b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..53b7d34
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.trafficinfo.tpeg-sni-model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.trafficinfo.tpeg.snitypes,
+ org.genivi.trafficinfo.tpeg.snitypes.impl,
+ org.genivi.trafficinfo.tpeg.snitypes.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.trafficinfo.tpegfwktypes-model;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/ReadMe.confluence
new file mode 100755
index 0000000..2c553cf
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains the data model of the TPEG-SNI application. \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/build.properties b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecore b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecore
new file mode 100755
index 0000000..2ebd7ad
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecore
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="snitypes" nsURI="http://org.genivi.tpeg.snitypes" nsPrefix="snitypes">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="SniComponent">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Component identifier"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="n" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Length of component data in bytes."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SniComponentFastTuning" eSuperTypes="#//SniComponent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="id = 0x01"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableIncrementalVersionNumber"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="charTab" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Character table identifier."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="linesOfTable1" upperBound="-1"
+ eType="#//LineOfTable1" unsettable="true" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LineOfTable1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="serviceComponentId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="selector" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte" unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Component elements supplied"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="originatorServiceIdentifier"
+ eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier"
+ unsettable="true" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Present only, when different from Carrier ServiceID. Indicated by selector = xxxxxxx1."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="applicationId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operatingTime" eType="#//OperatingTime"
+ unsettable="true" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Present if selector = xxxxx1xx."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="encryptionIndicator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Present if selector = xxxx1xxx."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OperatingTime"/>
+</ecore:EPackage>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecorediag b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecorediag
new file mode 100755
index 0000000..bd6dbb0
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.ecorediag
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_n0DlwPKtEeGBd-38wg_g5A" type="EcoreTools" name="TpegSniTypes.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_oRaWgPK1EeGBd-38wg_g5A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_oRaWg_K1EeGBd-38wg_g5A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_oRaWhPK1EeGBd-38wg_g5A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_ZMes0PK3EeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//SniComponent/id"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZMes0fK3EeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kaTQIPK3EeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//SniComponent/n"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kaTQIfK3EeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oRaWhfK1EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oRaWhvK1EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oRaWh_K1EeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oRaWiPK1EeGBd-38wg_g5A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oRaWifK1EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oRaWivK1EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oRaWi_K1EeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_oRaWgfK1EeGBd-38wg_g5A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegSniTypes.ecore#//SniComponent"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oRaWgvK1EeGBd-38wg_g5A" x="192" y="72"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yEr8gPK3EeGBd-38wg_g5A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_yEr8g_K3EeGBd-38wg_g5A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_yEr8hPK3EeGBd-38wg_g5A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_Gx5LYPK4EeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//SniComponentFastTuning/tableIncrementalVersionNumber"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Gx5LYfK4EeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_f8GxEPK4EeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//SniComponentFastTuning/charTab"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8GxEfK4EeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yEr8hfK3EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yEr8hvK3EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yEr8h_K3EeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yE1tgPK3EeGBd-38wg_g5A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yE1tgfK3EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yE1tgvK3EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yE1tg_K3EeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_yEr8gfK3EeGBd-38wg_g5A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegSniTypes.ecore#//SniComponentFastTuning"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yEr8gvK3EeGBd-38wg_g5A" x="84" y="216"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qf9KUPK4EeGBd-38wg_g5A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_qf9KU_K4EeGBd-38wg_g5A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_qf9KVPK4EeGBd-38wg_g5A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_JsFuYPWnEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//LineOfTable1/serviceComponentId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JsFuYfWnEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Q0IIEPWnEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//LineOfTable1/selector"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q0IIEfWnEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_pagWAPWpEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//LineOfTable1/contentId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pagWAfWpEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tPjU8PWpEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//LineOfTable1/applicationId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tPjU8fWpEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iSMaEPWqEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegSniTypes.ecore#//LineOfTable1/encryptionIndicator"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iSMaEfWqEeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_qf9KVfK4EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qf9KVvK4EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qf9KV_K4EeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qf9KWPK4EeGBd-38wg_g5A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_qf9KWfK4EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qf9KWvK4EeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qf9KW_K4EeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_qf9KUfK4EeGBd-38wg_g5A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegSniTypes.ecore#//LineOfTable1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qf9KUvK4EeGBd-38wg_g5A" x="105" y="361"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GtDfgPWpEeGBd-38wg_g5A" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gtp8cPWpEeGBd-38wg_g5A" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gtp8cfWpEeGBd-38wg_g5A" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_GtNQgPWpEeGBd-38wg_g5A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_GtNQgfWpEeGBd-38wg_g5A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_GtNQifWpEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier/sidA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GtNQivWpEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GtNQi_WpEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier/sidB"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GtNQjPWpEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GtNQjfWpEeGBd-38wg_g5A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier/sidC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GtNQjvWpEeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_GtNQgvWpEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GtNQg_WpEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GtNQhPWpEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GtNQhfWpEeGBd-38wg_g5A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_GtNQhvWpEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GtNQh_WpEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GtNQiPWpEeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_GtDfgfWpEeGBd-38wg_g5A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GtDfgvWpEeGBd-38wg_g5A" x="456" y="288"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_O3HhcPWqEeGBd-38wg_g5A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_O3Hhc_WqEeGBd-38wg_g5A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_O3HhdPWqEeGBd-38wg_g5A" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_O3HhdfWqEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O3HhdvWqEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O3Hhd_WqEeGBd-38wg_g5A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_O3HhePWqEeGBd-38wg_g5A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_O3HhefWqEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O3HhevWqEeGBd-38wg_g5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O3Hhe_WqEeGBd-38wg_g5A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_O3HhcfWqEeGBd-38wg_g5A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegSniTypes.ecore#//OperatingTime"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O3HhcvWqEeGBd-38wg_g5A" x="477" y="475"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_n0DlwfKtEeGBd-38wg_g5A"/>
+ <element xmi:type="ecore:EPackage" href="TpegSniTypes.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_0gEZ0PK3EeGBd-38wg_g5A" type="3003" source="_yEr8gPK3EeGBd-38wg_g5A" target="_oRaWgPK1EeGBd-38wg_g5A">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_0gEZ0fK3EeGBd-38wg_g5A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0gEZ0vK3EeGBd-38wg_g5A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0gEZ0_K3EeGBd-38wg_g5A" points="[11, -20, -65, 113]$[77, -164, 1, -31]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_sYziUPK4EeGBd-38wg_g5A" type="3002" source="_yEr8gPK3EeGBd-38wg_g5A" target="_qf9KUPK4EeGBd-38wg_g5A">
+ <children xmi:type="notation:Node" xmi:id="_sYziVPK4EeGBd-38wg_g5A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sYziVfK4EeGBd-38wg_g5A" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sYziVvK4EeGBd-38wg_g5A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sYziV_K4EeGBd-38wg_g5A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_sYziUfK4EeGBd-38wg_g5A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sYziUvK4EeGBd-38wg_g5A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegSniTypes.ecore#//SniComponentFastTuning/linesOfTable1"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sYziU_K4EeGBd-38wg_g5A" points="[-17, 32, 40, -102]$[-107, 128, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_T3VIcPWpEeGBd-38wg_g5A" type="3002" source="_qf9KUPK4EeGBd-38wg_g5A" target="_GtDfgPWpEeGBd-38wg_g5A">
+ <children xmi:type="notation:Node" xmi:id="_T3VIdPWpEeGBd-38wg_g5A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T3VIdfWpEeGBd-38wg_g5A" x="-74" y="8"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T3VIdvWpEeGBd-38wg_g5A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T3VId_WpEeGBd-38wg_g5A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_T3VIcfWpEeGBd-38wg_g5A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T3VIcvWpEeGBd-38wg_g5A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegSniTypes.ecore#//LineOfTable1/originatorServiceIdentifier"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T3VIc_WpEeGBd-38wg_g5A" points="[58, 32, -166, -89]$[225, 160, 1, 39]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3VIePWpEeGBd-38wg_g5A" id="(0.15254237288135594,0.5979381443298969)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Q2y6MPWqEeGBd-38wg_g5A" type="3002" source="_qf9KUPK4EeGBd-38wg_g5A" target="_O3HhcPWqEeGBd-38wg_g5A">
+ <children xmi:type="notation:Node" xmi:id="_Q2y6NPWqEeGBd-38wg_g5A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q2y6NfWqEeGBd-38wg_g5A" x="-42" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Q2y6NvWqEeGBd-38wg_g5A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q2y6N_WqEeGBd-38wg_g5A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Q2y6MfWqEeGBd-38wg_g5A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q2y6MvWqEeGBd-38wg_g5A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegSniTypes.ecore#//LineOfTable1/operatingTime"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q2y6M_WqEeGBd-38wg_g5A" points="[46, 13, -271, -78]$[319, 98, 2, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q2y6OPWqEeGBd-38wg_g5A" id="(0.7591623036649214,0.5979381443298969)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q2y6OfWqEeGBd-38wg_g5A" id="(0.8490566037735849,0.8333333333333334)"/>
+ </edges>
+</notation:Diagram>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.genmodel b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.genmodel
new file mode 100755
index 0000000..42df0d2
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/model/TpegSniTypes.genmodel
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficinfo.tpeg.sni-model/src" editDirectory="/org.genivi.trafficinfo.tpeg.sni-model.edit/src"
+ editorDirectory="/org.genivi.trafficinfo.tpeg.sni-model.editor/src" modelPluginID="org.genivi.trafficinfo.tpeg-sni-model"
+ modelName="TpegSniTypes" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+ copyrightFields="false" usedGenPackages="../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.genmodel#//tpegfwktypes">
+ <foreignModel>TpegSniTypes.ecore</foreignModel>
+ <genPackages prefix="Snitypes" basePackage="org.genivi.trafficinfo.tpeg" disposableProviderFactory="true"
+ ecorePackage="TpegSniTypes.ecore#/">
+ <genClasses ecoreClass="TpegSniTypes.ecore#//SniComponent">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//SniComponent/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//SniComponent/n"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegSniTypes.ecore#//SniComponentFastTuning">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//SniComponentFastTuning/tableIncrementalVersionNumber"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//SniComponentFastTuning/charTab"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegSniTypes.ecore#//SniComponentFastTuning/linesOfTable1"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegSniTypes.ecore#//LineOfTable1">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//LineOfTable1/serviceComponentId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//LineOfTable1/selector"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegSniTypes.ecore#//LineOfTable1/originatorServiceIdentifier"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//LineOfTable1/contentId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//LineOfTable1/applicationId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegSniTypes.ecore#//LineOfTable1/operatingTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegSniTypes.ecore#//LineOfTable1/encryptionIndicator"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegSniTypes.ecore#//OperatingTime"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.properties b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.properties
new file mode 100755
index 0000000..ba90535
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = TpegSniTypes Model
+providerName = www.example.org
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.xml
new file mode 100755
index 0000000..eaf9429
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://org.genivi.tpeg.snitypes"
+ class="org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage"
+ genModel="model/TpegSniTypes.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/pom.xml
new file mode 100755
index 0000000..47ed30a
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>sni-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>TPEG SNI model</name>
+ <description>This project contains the model for TPEG SNI.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/LineOfTable1.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/LineOfTable1.java
new file mode 100755
index 0000000..a6612d1
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/LineOfTable1.java
@@ -0,0 +1,404 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Line Of Table1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getServiceComponentId <em>Service Component Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getSelector <em>Selector</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOriginatorServiceIdentifier <em>Originator Service Identifier</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getContentId <em>Content Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getApplicationId <em>Application Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOperatingTime <em>Operating Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getEncryptionIndicator <em>Encryption Indicator</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1()
+ * @model
+ * @generated
+ */
+public interface LineOfTable1 extends EObject {
+ /**
+ * Returns the value of the '<em><b>Service Component Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Service Component Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Service Component Id</em>' attribute.
+ * @see #isSetServiceComponentId()
+ * @see #unsetServiceComponentId()
+ * @see #setServiceComponentId(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_ServiceComponentId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getServiceComponentId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getServiceComponentId <em>Service Component Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Service Component Id</em>' attribute.
+ * @see #isSetServiceComponentId()
+ * @see #unsetServiceComponentId()
+ * @see #getServiceComponentId()
+ * @generated
+ */
+ void setServiceComponentId(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getServiceComponentId <em>Service Component Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetServiceComponentId()
+ * @see #getServiceComponentId()
+ * @see #setServiceComponentId(byte)
+ * @generated
+ */
+ void unsetServiceComponentId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getServiceComponentId <em>Service Component Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Service Component Id</em>' attribute is set.
+ * @see #unsetServiceComponentId()
+ * @see #getServiceComponentId()
+ * @see #setServiceComponentId(byte)
+ * @generated
+ */
+ boolean isSetServiceComponentId();
+
+ /**
+ * Returns the value of the '<em><b>Selector</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Component elements supplied
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Selector</em>' attribute.
+ * @see #isSetSelector()
+ * @see #unsetSelector()
+ * @see #setSelector(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_Selector()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getSelector();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getSelector <em>Selector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Selector</em>' attribute.
+ * @see #isSetSelector()
+ * @see #unsetSelector()
+ * @see #getSelector()
+ * @generated
+ */
+ void setSelector(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getSelector <em>Selector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSelector()
+ * @see #getSelector()
+ * @see #setSelector(byte)
+ * @generated
+ */
+ void unsetSelector();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getSelector <em>Selector</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Selector</em>' attribute is set.
+ * @see #unsetSelector()
+ * @see #getSelector()
+ * @see #setSelector(byte)
+ * @generated
+ */
+ boolean isSetSelector();
+
+ /**
+ * Returns the value of the '<em><b>Originator Service Identifier</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Present only, when different from Carrier ServiceID. Indicated by selector = xxxxxxx1.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Originator Service Identifier</em>' containment reference.
+ * @see #isSetOriginatorServiceIdentifier()
+ * @see #unsetOriginatorServiceIdentifier()
+ * @see #setOriginatorServiceIdentifier(ServiceIdentifier)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_OriginatorServiceIdentifier()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ ServiceIdentifier getOriginatorServiceIdentifier();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOriginatorServiceIdentifier <em>Originator Service Identifier</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Originator Service Identifier</em>' containment reference.
+ * @see #isSetOriginatorServiceIdentifier()
+ * @see #unsetOriginatorServiceIdentifier()
+ * @see #getOriginatorServiceIdentifier()
+ * @generated
+ */
+ void setOriginatorServiceIdentifier(ServiceIdentifier value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOriginatorServiceIdentifier <em>Originator Service Identifier</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOriginatorServiceIdentifier()
+ * @see #getOriginatorServiceIdentifier()
+ * @see #setOriginatorServiceIdentifier(ServiceIdentifier)
+ * @generated
+ */
+ void unsetOriginatorServiceIdentifier();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOriginatorServiceIdentifier <em>Originator Service Identifier</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Originator Service Identifier</em>' containment reference is set.
+ * @see #unsetOriginatorServiceIdentifier()
+ * @see #getOriginatorServiceIdentifier()
+ * @see #setOriginatorServiceIdentifier(ServiceIdentifier)
+ * @generated
+ */
+ boolean isSetOriginatorServiceIdentifier();
+
+ /**
+ * Returns the value of the '<em><b>Content Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Content Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Content Id</em>' attribute.
+ * @see #isSetContentId()
+ * @see #unsetContentId()
+ * @see #setContentId(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_ContentId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getContentId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getContentId <em>Content Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Content Id</em>' attribute.
+ * @see #isSetContentId()
+ * @see #unsetContentId()
+ * @see #getContentId()
+ * @generated
+ */
+ void setContentId(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getContentId <em>Content Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetContentId()
+ * @see #getContentId()
+ * @see #setContentId(byte)
+ * @generated
+ */
+ void unsetContentId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getContentId <em>Content Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Content Id</em>' attribute is set.
+ * @see #unsetContentId()
+ * @see #getContentId()
+ * @see #setContentId(byte)
+ * @generated
+ */
+ boolean isSetContentId();
+
+ /**
+ * Returns the value of the '<em><b>Application Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Application Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Application Id</em>' attribute.
+ * @see #isSetApplicationId()
+ * @see #unsetApplicationId()
+ * @see #setApplicationId(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_ApplicationId()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getApplicationId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getApplicationId <em>Application Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Application Id</em>' attribute.
+ * @see #isSetApplicationId()
+ * @see #unsetApplicationId()
+ * @see #getApplicationId()
+ * @generated
+ */
+ void setApplicationId(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getApplicationId <em>Application Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetApplicationId()
+ * @see #getApplicationId()
+ * @see #setApplicationId(byte)
+ * @generated
+ */
+ void unsetApplicationId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getApplicationId <em>Application Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Application Id</em>' attribute is set.
+ * @see #unsetApplicationId()
+ * @see #getApplicationId()
+ * @see #setApplicationId(byte)
+ * @generated
+ */
+ boolean isSetApplicationId();
+
+ /**
+ * Returns the value of the '<em><b>Operating Time</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Present if selector = xxxxx1xx.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Operating Time</em>' containment reference.
+ * @see #isSetOperatingTime()
+ * @see #unsetOperatingTime()
+ * @see #setOperatingTime(OperatingTime)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_OperatingTime()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ OperatingTime getOperatingTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOperatingTime <em>Operating Time</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operating Time</em>' containment reference.
+ * @see #isSetOperatingTime()
+ * @see #unsetOperatingTime()
+ * @see #getOperatingTime()
+ * @generated
+ */
+ void setOperatingTime(OperatingTime value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOperatingTime <em>Operating Time</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOperatingTime()
+ * @see #getOperatingTime()
+ * @see #setOperatingTime(OperatingTime)
+ * @generated
+ */
+ void unsetOperatingTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOperatingTime <em>Operating Time</em>}' containment reference is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Operating Time</em>' containment reference is set.
+ * @see #unsetOperatingTime()
+ * @see #getOperatingTime()
+ * @see #setOperatingTime(OperatingTime)
+ * @generated
+ */
+ boolean isSetOperatingTime();
+
+ /**
+ * Returns the value of the '<em><b>Encryption Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Present if selector = xxxx1xxx.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Encryption Indicator</em>' attribute.
+ * @see #isSetEncryptionIndicator()
+ * @see #unsetEncryptionIndicator()
+ * @see #setEncryptionIndicator(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getLineOfTable1_EncryptionIndicator()
+ * @model unsettable="true"
+ * @generated
+ */
+ byte getEncryptionIndicator();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getEncryptionIndicator <em>Encryption Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Encryption Indicator</em>' attribute.
+ * @see #isSetEncryptionIndicator()
+ * @see #unsetEncryptionIndicator()
+ * @see #getEncryptionIndicator()
+ * @generated
+ */
+ void setEncryptionIndicator(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getEncryptionIndicator <em>Encryption Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetEncryptionIndicator()
+ * @see #getEncryptionIndicator()
+ * @see #setEncryptionIndicator(byte)
+ * @generated
+ */
+ void unsetEncryptionIndicator();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getEncryptionIndicator <em>Encryption Indicator</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Encryption Indicator</em>' attribute is set.
+ * @see #unsetEncryptionIndicator()
+ * @see #getEncryptionIndicator()
+ * @see #setEncryptionIndicator(byte)
+ * @generated
+ */
+ boolean isSetEncryptionIndicator();
+
+} // LineOfTable1
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/OperatingTime.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/OperatingTime.java
new file mode 100755
index 0000000..6a5517c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/OperatingTime.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Operating Time</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getOperatingTime()
+ * @model
+ * @generated
+ */
+public interface OperatingTime extends EObject {
+} // OperatingTime
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponent.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponent.java
new file mode 100755
index 0000000..e30955c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponent.java
@@ -0,0 +1,134 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sni Component</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getId <em>Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getN <em>N</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponent()
+ * @model
+ * @generated
+ */
+public interface SniComponent extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Component identifier
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #isSetId()
+ * @see #unsetId()
+ * @see #setId(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponent_Id()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getId();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #isSetId()
+ * @see #unsetId()
+ * @see #getId()
+ * @generated
+ */
+ void setId(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetId()
+ * @see #getId()
+ * @see #setId(byte)
+ * @generated
+ */
+ void unsetId();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getId <em>Id</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Id</em>' attribute is set.
+ * @see #unsetId()
+ * @see #getId()
+ * @see #setId(byte)
+ * @generated
+ */
+ boolean isSetId();
+
+ /**
+ * Returns the value of the '<em><b>N</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Length of component data in bytes.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>N</em>' attribute.
+ * @see #isSetN()
+ * @see #unsetN()
+ * @see #setN(int)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponent_N()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getN();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getN <em>N</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>N</em>' attribute.
+ * @see #isSetN()
+ * @see #unsetN()
+ * @see #getN()
+ * @generated
+ */
+ void setN(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getN <em>N</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetN()
+ * @see #getN()
+ * @see #setN(int)
+ * @generated
+ */
+ void unsetN();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getN <em>N</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>N</em>' attribute is set.
+ * @see #unsetN()
+ * @see #getN()
+ * @see #setN(int)
+ * @generated
+ */
+ boolean isSetN();
+} // SniComponent
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponentFastTuning.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponentFastTuning.java
new file mode 100755
index 0000000..3bb0f3e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SniComponentFastTuning.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sni Component Fast Tuning</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * id = 0x01
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getTableIncrementalVersionNumber <em>Table Incremental Version Number</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getCharTab <em>Char Tab</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getLinesOfTable1 <em>Lines Of Table1</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponentFastTuning()
+ * @model
+ * @generated
+ */
+public interface SniComponentFastTuning extends SniComponent {
+ /**
+ * Returns the value of the '<em><b>Table Incremental Version Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Incremental Version Number</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Incremental Version Number</em>' attribute.
+ * @see #isSetTableIncrementalVersionNumber()
+ * @see #unsetTableIncrementalVersionNumber()
+ * @see #setTableIncrementalVersionNumber(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponentFastTuning_TableIncrementalVersionNumber()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getTableIncrementalVersionNumber();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getTableIncrementalVersionNumber <em>Table Incremental Version Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table Incremental Version Number</em>' attribute.
+ * @see #isSetTableIncrementalVersionNumber()
+ * @see #unsetTableIncrementalVersionNumber()
+ * @see #getTableIncrementalVersionNumber()
+ * @generated
+ */
+ void setTableIncrementalVersionNumber(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getTableIncrementalVersionNumber <em>Table Incremental Version Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTableIncrementalVersionNumber()
+ * @see #getTableIncrementalVersionNumber()
+ * @see #setTableIncrementalVersionNumber(byte)
+ * @generated
+ */
+ void unsetTableIncrementalVersionNumber();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getTableIncrementalVersionNumber <em>Table Incremental Version Number</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Table Incremental Version Number</em>' attribute is set.
+ * @see #unsetTableIncrementalVersionNumber()
+ * @see #getTableIncrementalVersionNumber()
+ * @see #setTableIncrementalVersionNumber(byte)
+ * @generated
+ */
+ boolean isSetTableIncrementalVersionNumber();
+
+ /**
+ * Returns the value of the '<em><b>Char Tab</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Character table identifier.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Char Tab</em>' attribute.
+ * @see #isSetCharTab()
+ * @see #unsetCharTab()
+ * @see #setCharTab(byte)
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponentFastTuning_CharTab()
+ * @model unsettable="true"
+ * @generated
+ */
+ byte getCharTab();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getCharTab <em>Char Tab</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Char Tab</em>' attribute.
+ * @see #isSetCharTab()
+ * @see #unsetCharTab()
+ * @see #getCharTab()
+ * @generated
+ */
+ void setCharTab(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getCharTab <em>Char Tab</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCharTab()
+ * @see #getCharTab()
+ * @see #setCharTab(byte)
+ * @generated
+ */
+ void unsetCharTab();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getCharTab <em>Char Tab</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Char Tab</em>' attribute is set.
+ * @see #unsetCharTab()
+ * @see #getCharTab()
+ * @see #setCharTab(byte)
+ * @generated
+ */
+ boolean isSetCharTab();
+
+ /**
+ * Returns the value of the '<em><b>Lines Of Table1</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lines Of Table1</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lines Of Table1</em>' containment reference list.
+ * @see #isSetLinesOfTable1()
+ * @see #unsetLinesOfTable1()
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#getSniComponentFastTuning_LinesOfTable1()
+ * @model containment="true" unsettable="true"
+ * @generated
+ */
+ EList<LineOfTable1> getLinesOfTable1();
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getLinesOfTable1 <em>Lines Of Table1</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLinesOfTable1()
+ * @see #getLinesOfTable1()
+ * @generated
+ */
+ void unsetLinesOfTable1();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getLinesOfTable1 <em>Lines Of Table1</em>}' containment reference list is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Lines Of Table1</em>' containment reference list is set.
+ * @see #unsetLinesOfTable1()
+ * @see #getLinesOfTable1()
+ * @generated
+ */
+ boolean isSetLinesOfTable1();
+
+} // SniComponentFastTuning
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesFactory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesFactory.java
new file mode 100755
index 0000000..daa7225
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesFactory.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage
+ * @generated
+ */
+public interface SnitypesFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SnitypesFactory eINSTANCE = org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Sni Component</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sni Component</em>'.
+ * @generated
+ */
+ SniComponent createSniComponent();
+
+ /**
+ * Returns a new object of class '<em>Sni Component Fast Tuning</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sni Component Fast Tuning</em>'.
+ * @generated
+ */
+ SniComponentFastTuning createSniComponentFastTuning();
+
+ /**
+ * Returns a new object of class '<em>Line Of Table1</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Line Of Table1</em>'.
+ * @generated
+ */
+ LineOfTable1 createLineOfTable1();
+
+ /**
+ * Returns a new object of class '<em>Operating Time</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Operating Time</em>'.
+ * @generated
+ */
+ OperatingTime createOperatingTime();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ SnitypesPackage getSnitypesPackage();
+
+} //SnitypesFactory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesPackage.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesPackage.java
new file mode 100755
index 0000000..179170e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/SnitypesPackage.java
@@ -0,0 +1,585 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface SnitypesPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "snitypes";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.tpeg.snitypes";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "snitypes";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SnitypesPackage eINSTANCE = org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentImpl <em>Sni Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentImpl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getSniComponent()
+ * @generated
+ */
+ int SNI_COMPONENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT__ID = 0;
+
+ /**
+ * The feature id for the '<em><b>N</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT__N = 1;
+
+ /**
+ * The number of structural features of the '<em>Sni Component</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FEATURE_COUNT = 2;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl <em>Sni Component Fast Tuning</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getSniComponentFastTuning()
+ * @generated
+ */
+ int SNI_COMPONENT_FAST_TUNING = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FAST_TUNING__ID = SNI_COMPONENT__ID;
+
+ /**
+ * The feature id for the '<em><b>N</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FAST_TUNING__N = SNI_COMPONENT__N;
+
+ /**
+ * The feature id for the '<em><b>Table Incremental Version Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER = SNI_COMPONENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Char Tab</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FAST_TUNING__CHAR_TAB = SNI_COMPONENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Lines Of Table1</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1 = SNI_COMPONENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Sni Component Fast Tuning</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SNI_COMPONENT_FAST_TUNING_FEATURE_COUNT = SNI_COMPONENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl <em>Line Of Table1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getLineOfTable1()
+ * @generated
+ */
+ int LINE_OF_TABLE1 = 2;
+
+ /**
+ * The feature id for the '<em><b>Service Component Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__SERVICE_COMPONENT_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Selector</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__SELECTOR = 1;
+
+ /**
+ * The feature id for the '<em><b>Originator Service Identifier</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER = 2;
+
+ /**
+ * The feature id for the '<em><b>Content Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__CONTENT_ID = 3;
+
+ /**
+ * The feature id for the '<em><b>Application Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__APPLICATION_ID = 4;
+
+ /**
+ * The feature id for the '<em><b>Operating Time</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__OPERATING_TIME = 5;
+
+ /**
+ * The feature id for the '<em><b>Encryption Indicator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1__ENCRYPTION_INDICATOR = 6;
+
+ /**
+ * The number of structural features of the '<em>Line Of Table1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINE_OF_TABLE1_FEATURE_COUNT = 7;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.OperatingTimeImpl <em>Operating Time</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.OperatingTimeImpl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getOperatingTime()
+ * @generated
+ */
+ int OPERATING_TIME = 3;
+
+ /**
+ * The number of structural features of the '<em>Operating Time</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPERATING_TIME_FEATURE_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent <em>Sni Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sni Component</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponent
+ * @generated
+ */
+ EClass getSniComponent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getId()
+ * @see #getSniComponent()
+ * @generated
+ */
+ EAttribute getSniComponent_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getN <em>N</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>N</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponent#getN()
+ * @see #getSniComponent()
+ * @generated
+ */
+ EAttribute getSniComponent_N();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning <em>Sni Component Fast Tuning</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sni Component Fast Tuning</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning
+ * @generated
+ */
+ EClass getSniComponentFastTuning();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getTableIncrementalVersionNumber <em>Table Incremental Version Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Table Incremental Version Number</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getTableIncrementalVersionNumber()
+ * @see #getSniComponentFastTuning()
+ * @generated
+ */
+ EAttribute getSniComponentFastTuning_TableIncrementalVersionNumber();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getCharTab <em>Char Tab</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Char Tab</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getCharTab()
+ * @see #getSniComponentFastTuning()
+ * @generated
+ */
+ EAttribute getSniComponentFastTuning_CharTab();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getLinesOfTable1 <em>Lines Of Table1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Lines Of Table1</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning#getLinesOfTable1()
+ * @see #getSniComponentFastTuning()
+ * @generated
+ */
+ EReference getSniComponentFastTuning_LinesOfTable1();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1 <em>Line Of Table1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Line Of Table1</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1
+ * @generated
+ */
+ EClass getLineOfTable1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getServiceComponentId <em>Service Component Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Service Component Id</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getServiceComponentId()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EAttribute getLineOfTable1_ServiceComponentId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getSelector <em>Selector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Selector</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getSelector()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EAttribute getLineOfTable1_Selector();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOriginatorServiceIdentifier <em>Originator Service Identifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Originator Service Identifier</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOriginatorServiceIdentifier()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EReference getLineOfTable1_OriginatorServiceIdentifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getContentId <em>Content Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Content Id</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getContentId()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EAttribute getLineOfTable1_ContentId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getApplicationId <em>Application Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Application Id</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getApplicationId()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EAttribute getLineOfTable1_ApplicationId();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOperatingTime <em>Operating Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Operating Time</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getOperatingTime()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EReference getLineOfTable1_OperatingTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getEncryptionIndicator <em>Encryption Indicator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Encryption Indicator</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1#getEncryptionIndicator()
+ * @see #getLineOfTable1()
+ * @generated
+ */
+ EAttribute getLineOfTable1_EncryptionIndicator();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.snitypes.OperatingTime <em>Operating Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Operating Time</em>'.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.OperatingTime
+ * @generated
+ */
+ EClass getOperatingTime();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ SnitypesFactory getSnitypesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentImpl <em>Sni Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentImpl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getSniComponent()
+ * @generated
+ */
+ EClass SNI_COMPONENT = eINSTANCE.getSniComponent();
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SNI_COMPONENT__ID = eINSTANCE.getSniComponent_Id();
+ /**
+ * The meta object literal for the '<em><b>N</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SNI_COMPONENT__N = eINSTANCE.getSniComponent_N();
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl <em>Sni Component Fast Tuning</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getSniComponentFastTuning()
+ * @generated
+ */
+ EClass SNI_COMPONENT_FAST_TUNING = eINSTANCE.getSniComponentFastTuning();
+ /**
+ * The meta object literal for the '<em><b>Table Incremental Version Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER = eINSTANCE.getSniComponentFastTuning_TableIncrementalVersionNumber();
+ /**
+ * The meta object literal for the '<em><b>Char Tab</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SNI_COMPONENT_FAST_TUNING__CHAR_TAB = eINSTANCE.getSniComponentFastTuning_CharTab();
+ /**
+ * The meta object literal for the '<em><b>Lines Of Table1</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1 = eINSTANCE.getSniComponentFastTuning_LinesOfTable1();
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl <em>Line Of Table1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getLineOfTable1()
+ * @generated
+ */
+ EClass LINE_OF_TABLE1 = eINSTANCE.getLineOfTable1();
+ /**
+ * The meta object literal for the '<em><b>Service Component Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINE_OF_TABLE1__SERVICE_COMPONENT_ID = eINSTANCE.getLineOfTable1_ServiceComponentId();
+ /**
+ * The meta object literal for the '<em><b>Selector</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINE_OF_TABLE1__SELECTOR = eINSTANCE.getLineOfTable1_Selector();
+ /**
+ * The meta object literal for the '<em><b>Originator Service Identifier</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER = eINSTANCE.getLineOfTable1_OriginatorServiceIdentifier();
+ /**
+ * The meta object literal for the '<em><b>Content Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINE_OF_TABLE1__CONTENT_ID = eINSTANCE.getLineOfTable1_ContentId();
+ /**
+ * The meta object literal for the '<em><b>Application Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINE_OF_TABLE1__APPLICATION_ID = eINSTANCE.getLineOfTable1_ApplicationId();
+ /**
+ * The meta object literal for the '<em><b>Operating Time</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINE_OF_TABLE1__OPERATING_TIME = eINSTANCE.getLineOfTable1_OperatingTime();
+ /**
+ * The meta object literal for the '<em><b>Encryption Indicator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINE_OF_TABLE1__ENCRYPTION_INDICATOR = eINSTANCE.getLineOfTable1_EncryptionIndicator();
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.snitypes.impl.OperatingTimeImpl <em>Operating Time</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.OperatingTimeImpl
+ * @see org.genivi.trafficinfo.tpeg.snitypes.impl.SnitypesPackageImpl#getOperatingTime()
+ * @generated
+ */
+ EClass OPERATING_TIME = eINSTANCE.getOperatingTime();
+
+ }
+
+} //SnitypesPackage
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/LineOfTable1Impl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/LineOfTable1Impl.java
new file mode 100755
index 0000000..934f858
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/LineOfTable1Impl.java
@@ -0,0 +1,825 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1;
+import org.genivi.trafficinfo.tpeg.snitypes.OperatingTime;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Line Of Table1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getServiceComponentId <em>Service Component Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getSelector <em>Selector</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getOriginatorServiceIdentifier <em>Originator Service Identifier</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getContentId <em>Content Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getApplicationId <em>Application Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getOperatingTime <em>Operating Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.LineOfTable1Impl#getEncryptionIndicator <em>Encryption Indicator</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LineOfTable1Impl extends EObjectImpl implements LineOfTable1 {
+ /**
+ * The default value of the '{@link #getServiceComponentId() <em>Service Component Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServiceComponentId()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SERVICE_COMPONENT_ID_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getServiceComponentId() <em>Service Component Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServiceComponentId()
+ * @generated
+ * @ordered
+ */
+ protected byte serviceComponentId = SERVICE_COMPONENT_ID_EDEFAULT;
+
+ /**
+ * This is true if the Service Component Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean serviceComponentIdESet;
+
+ /**
+ * The default value of the '{@link #getSelector() <em>Selector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelector()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SELECTOR_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSelector() <em>Selector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelector()
+ * @generated
+ * @ordered
+ */
+ protected byte selector = SELECTOR_EDEFAULT;
+
+ /**
+ * This is true if the Selector attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean selectorESet;
+
+ /**
+ * The cached value of the '{@link #getOriginatorServiceIdentifier() <em>Originator Service Identifier</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOriginatorServiceIdentifier()
+ * @generated
+ * @ordered
+ */
+ protected ServiceIdentifier originatorServiceIdentifier;
+
+ /**
+ * This is true if the Originator Service Identifier containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean originatorServiceIdentifierESet;
+
+ /**
+ * The default value of the '{@link #getContentId() <em>Content Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContentId()
+ * @generated
+ * @ordered
+ */
+ protected static final byte CONTENT_ID_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getContentId() <em>Content Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContentId()
+ * @generated
+ * @ordered
+ */
+ protected byte contentId = CONTENT_ID_EDEFAULT;
+
+ /**
+ * This is true if the Content Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean contentIdESet;
+
+ /**
+ * The default value of the '{@link #getApplicationId() <em>Application Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationId()
+ * @generated
+ * @ordered
+ */
+ protected static final byte APPLICATION_ID_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getApplicationId() <em>Application Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationId()
+ * @generated
+ * @ordered
+ */
+ protected byte applicationId = APPLICATION_ID_EDEFAULT;
+
+ /**
+ * This is true if the Application Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean applicationIdESet;
+
+ /**
+ * The cached value of the '{@link #getOperatingTime() <em>Operating Time</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperatingTime()
+ * @generated
+ * @ordered
+ */
+ protected OperatingTime operatingTime;
+
+ /**
+ * This is true if the Operating Time containment reference has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean operatingTimeESet;
+
+ /**
+ * The default value of the '{@link #getEncryptionIndicator() <em>Encryption Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEncryptionIndicator()
+ * @generated
+ * @ordered
+ */
+ protected static final byte ENCRYPTION_INDICATOR_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getEncryptionIndicator() <em>Encryption Indicator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEncryptionIndicator()
+ * @generated
+ * @ordered
+ */
+ protected byte encryptionIndicator = ENCRYPTION_INDICATOR_EDEFAULT;
+
+ /**
+ * This is true if the Encryption Indicator attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean encryptionIndicatorESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LineOfTable1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SnitypesPackage.Literals.LINE_OF_TABLE1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getServiceComponentId() {
+ return serviceComponentId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServiceComponentId(byte newServiceComponentId) {
+ byte oldServiceComponentId = serviceComponentId;
+ serviceComponentId = newServiceComponentId;
+ boolean oldServiceComponentIdESet = serviceComponentIdESet;
+ serviceComponentIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__SERVICE_COMPONENT_ID, oldServiceComponentId, serviceComponentId, !oldServiceComponentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetServiceComponentId() {
+ byte oldServiceComponentId = serviceComponentId;
+ boolean oldServiceComponentIdESet = serviceComponentIdESet;
+ serviceComponentId = SERVICE_COMPONENT_ID_EDEFAULT;
+ serviceComponentIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__SERVICE_COMPONENT_ID, oldServiceComponentId, SERVICE_COMPONENT_ID_EDEFAULT, oldServiceComponentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetServiceComponentId() {
+ return serviceComponentIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSelector() {
+ return selector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelector(byte newSelector) {
+ byte oldSelector = selector;
+ selector = newSelector;
+ boolean oldSelectorESet = selectorESet;
+ selectorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__SELECTOR, oldSelector, selector, !oldSelectorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSelector() {
+ byte oldSelector = selector;
+ boolean oldSelectorESet = selectorESet;
+ selector = SELECTOR_EDEFAULT;
+ selectorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__SELECTOR, oldSelector, SELECTOR_EDEFAULT, oldSelectorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSelector() {
+ return selectorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceIdentifier getOriginatorServiceIdentifier() {
+ return originatorServiceIdentifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOriginatorServiceIdentifier(ServiceIdentifier newOriginatorServiceIdentifier, NotificationChain msgs) {
+ ServiceIdentifier oldOriginatorServiceIdentifier = originatorServiceIdentifier;
+ originatorServiceIdentifier = newOriginatorServiceIdentifier;
+ boolean oldOriginatorServiceIdentifierESet = originatorServiceIdentifierESet;
+ originatorServiceIdentifierESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, oldOriginatorServiceIdentifier, newOriginatorServiceIdentifier, !oldOriginatorServiceIdentifierESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOriginatorServiceIdentifier(ServiceIdentifier newOriginatorServiceIdentifier) {
+ if (newOriginatorServiceIdentifier != originatorServiceIdentifier) {
+ NotificationChain msgs = null;
+ if (originatorServiceIdentifier != null)
+ msgs = ((InternalEObject)originatorServiceIdentifier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, null, msgs);
+ if (newOriginatorServiceIdentifier != null)
+ msgs = ((InternalEObject)newOriginatorServiceIdentifier).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, null, msgs);
+ msgs = basicSetOriginatorServiceIdentifier(newOriginatorServiceIdentifier, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldOriginatorServiceIdentifierESet = originatorServiceIdentifierESet;
+ originatorServiceIdentifierESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, newOriginatorServiceIdentifier, newOriginatorServiceIdentifier, !oldOriginatorServiceIdentifierESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetOriginatorServiceIdentifier(NotificationChain msgs) {
+ ServiceIdentifier oldOriginatorServiceIdentifier = originatorServiceIdentifier;
+ originatorServiceIdentifier = null;
+ boolean oldOriginatorServiceIdentifierESet = originatorServiceIdentifierESet;
+ originatorServiceIdentifierESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, oldOriginatorServiceIdentifier, null, oldOriginatorServiceIdentifierESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOriginatorServiceIdentifier() {
+ if (originatorServiceIdentifier != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)originatorServiceIdentifier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, null, msgs);
+ msgs = basicUnsetOriginatorServiceIdentifier(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldOriginatorServiceIdentifierESet = originatorServiceIdentifierESet;
+ originatorServiceIdentifierESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER, null, null, oldOriginatorServiceIdentifierESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOriginatorServiceIdentifier() {
+ return originatorServiceIdentifierESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getContentId() {
+ return contentId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContentId(byte newContentId) {
+ byte oldContentId = contentId;
+ contentId = newContentId;
+ boolean oldContentIdESet = contentIdESet;
+ contentIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__CONTENT_ID, oldContentId, contentId, !oldContentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetContentId() {
+ byte oldContentId = contentId;
+ boolean oldContentIdESet = contentIdESet;
+ contentId = CONTENT_ID_EDEFAULT;
+ contentIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__CONTENT_ID, oldContentId, CONTENT_ID_EDEFAULT, oldContentIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetContentId() {
+ return contentIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getApplicationId() {
+ return applicationId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicationId(byte newApplicationId) {
+ byte oldApplicationId = applicationId;
+ applicationId = newApplicationId;
+ boolean oldApplicationIdESet = applicationIdESet;
+ applicationIdESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__APPLICATION_ID, oldApplicationId, applicationId, !oldApplicationIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetApplicationId() {
+ byte oldApplicationId = applicationId;
+ boolean oldApplicationIdESet = applicationIdESet;
+ applicationId = APPLICATION_ID_EDEFAULT;
+ applicationIdESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__APPLICATION_ID, oldApplicationId, APPLICATION_ID_EDEFAULT, oldApplicationIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetApplicationId() {
+ return applicationIdESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OperatingTime getOperatingTime() {
+ return operatingTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOperatingTime(OperatingTime newOperatingTime, NotificationChain msgs) {
+ OperatingTime oldOperatingTime = operatingTime;
+ operatingTime = newOperatingTime;
+ boolean oldOperatingTimeESet = operatingTimeESet;
+ operatingTimeESet = true;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, oldOperatingTime, newOperatingTime, !oldOperatingTimeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperatingTime(OperatingTime newOperatingTime) {
+ if (newOperatingTime != operatingTime) {
+ NotificationChain msgs = null;
+ if (operatingTime != null)
+ msgs = ((InternalEObject)operatingTime).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, null, msgs);
+ if (newOperatingTime != null)
+ msgs = ((InternalEObject)newOperatingTime).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, null, msgs);
+ msgs = basicSetOperatingTime(newOperatingTime, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldOperatingTimeESet = operatingTimeESet;
+ operatingTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, newOperatingTime, newOperatingTime, !oldOperatingTimeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicUnsetOperatingTime(NotificationChain msgs) {
+ OperatingTime oldOperatingTime = operatingTime;
+ operatingTime = null;
+ boolean oldOperatingTimeESet = operatingTimeESet;
+ operatingTimeESet = false;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, oldOperatingTime, null, oldOperatingTimeESet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOperatingTime() {
+ if (operatingTime != null) {
+ NotificationChain msgs = null;
+ msgs = ((InternalEObject)operatingTime).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, null, msgs);
+ msgs = basicUnsetOperatingTime(msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else {
+ boolean oldOperatingTimeESet = operatingTimeESet;
+ operatingTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME, null, null, oldOperatingTimeESet));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOperatingTime() {
+ return operatingTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getEncryptionIndicator() {
+ return encryptionIndicator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEncryptionIndicator(byte newEncryptionIndicator) {
+ byte oldEncryptionIndicator = encryptionIndicator;
+ encryptionIndicator = newEncryptionIndicator;
+ boolean oldEncryptionIndicatorESet = encryptionIndicatorESet;
+ encryptionIndicatorESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.LINE_OF_TABLE1__ENCRYPTION_INDICATOR, oldEncryptionIndicator, encryptionIndicator, !oldEncryptionIndicatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetEncryptionIndicator() {
+ byte oldEncryptionIndicator = encryptionIndicator;
+ boolean oldEncryptionIndicatorESet = encryptionIndicatorESet;
+ encryptionIndicator = ENCRYPTION_INDICATOR_EDEFAULT;
+ encryptionIndicatorESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.LINE_OF_TABLE1__ENCRYPTION_INDICATOR, oldEncryptionIndicator, ENCRYPTION_INDICATOR_EDEFAULT, oldEncryptionIndicatorESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEncryptionIndicator() {
+ return encryptionIndicatorESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER:
+ return basicUnsetOriginatorServiceIdentifier(msgs);
+ case SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME:
+ return basicUnsetOperatingTime(msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SnitypesPackage.LINE_OF_TABLE1__SERVICE_COMPONENT_ID:
+ return getServiceComponentId();
+ case SnitypesPackage.LINE_OF_TABLE1__SELECTOR:
+ return getSelector();
+ case SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER:
+ return getOriginatorServiceIdentifier();
+ case SnitypesPackage.LINE_OF_TABLE1__CONTENT_ID:
+ return getContentId();
+ case SnitypesPackage.LINE_OF_TABLE1__APPLICATION_ID:
+ return getApplicationId();
+ case SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME:
+ return getOperatingTime();
+ case SnitypesPackage.LINE_OF_TABLE1__ENCRYPTION_INDICATOR:
+ return getEncryptionIndicator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SnitypesPackage.LINE_OF_TABLE1__SERVICE_COMPONENT_ID:
+ setServiceComponentId((Byte)newValue);
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__SELECTOR:
+ setSelector((Byte)newValue);
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER:
+ setOriginatorServiceIdentifier((ServiceIdentifier)newValue);
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__CONTENT_ID:
+ setContentId((Byte)newValue);
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__APPLICATION_ID:
+ setApplicationId((Byte)newValue);
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME:
+ setOperatingTime((OperatingTime)newValue);
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__ENCRYPTION_INDICATOR:
+ setEncryptionIndicator((Byte)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SnitypesPackage.LINE_OF_TABLE1__SERVICE_COMPONENT_ID:
+ unsetServiceComponentId();
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__SELECTOR:
+ unsetSelector();
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER:
+ unsetOriginatorServiceIdentifier();
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__CONTENT_ID:
+ unsetContentId();
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__APPLICATION_ID:
+ unsetApplicationId();
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME:
+ unsetOperatingTime();
+ return;
+ case SnitypesPackage.LINE_OF_TABLE1__ENCRYPTION_INDICATOR:
+ unsetEncryptionIndicator();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SnitypesPackage.LINE_OF_TABLE1__SERVICE_COMPONENT_ID:
+ return isSetServiceComponentId();
+ case SnitypesPackage.LINE_OF_TABLE1__SELECTOR:
+ return isSetSelector();
+ case SnitypesPackage.LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER:
+ return isSetOriginatorServiceIdentifier();
+ case SnitypesPackage.LINE_OF_TABLE1__CONTENT_ID:
+ return isSetContentId();
+ case SnitypesPackage.LINE_OF_TABLE1__APPLICATION_ID:
+ return isSetApplicationId();
+ case SnitypesPackage.LINE_OF_TABLE1__OPERATING_TIME:
+ return isSetOperatingTime();
+ case SnitypesPackage.LINE_OF_TABLE1__ENCRYPTION_INDICATOR:
+ return isSetEncryptionIndicator();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (serviceComponentId: ");
+ if (serviceComponentIdESet) result.append(serviceComponentId); else result.append("<unset>");
+ result.append(", selector: ");
+ if (selectorESet) result.append(selector); else result.append("<unset>");
+ result.append(", contentId: ");
+ if (contentIdESet) result.append(contentId); else result.append("<unset>");
+ result.append(", applicationId: ");
+ if (applicationIdESet) result.append(applicationId); else result.append("<unset>");
+ result.append(", encryptionIndicator: ");
+ if (encryptionIndicatorESet) result.append(encryptionIndicator); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LineOfTable1Impl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/OperatingTimeImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/OperatingTimeImpl.java
new file mode 100755
index 0000000..bd44e89
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/OperatingTimeImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficinfo.tpeg.snitypes.OperatingTime;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operating Time</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class OperatingTimeImpl extends EObjectImpl implements OperatingTime {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperatingTimeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SnitypesPackage.Literals.OPERATING_TIME;
+ }
+
+} //OperatingTimeImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentFastTuningImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentFastTuningImpl.java
new file mode 100755
index 0000000..0093661
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentFastTuningImpl.java
@@ -0,0 +1,363 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.impl;
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sni Component Fast Tuning</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl#getTableIncrementalVersionNumber <em>Table Incremental Version Number</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl#getCharTab <em>Char Tab</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentFastTuningImpl#getLinesOfTable1 <em>Lines Of Table1</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SniComponentFastTuningImpl extends SniComponentImpl implements SniComponentFastTuning {
+ /**
+ * The default value of the '{@link #getTableIncrementalVersionNumber() <em>Table Incremental Version Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTableIncrementalVersionNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final byte TABLE_INCREMENTAL_VERSION_NUMBER_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getTableIncrementalVersionNumber() <em>Table Incremental Version Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTableIncrementalVersionNumber()
+ * @generated
+ * @ordered
+ */
+ protected byte tableIncrementalVersionNumber = TABLE_INCREMENTAL_VERSION_NUMBER_EDEFAULT;
+
+ /**
+ * This is true if the Table Incremental Version Number attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean tableIncrementalVersionNumberESet;
+
+ /**
+ * The default value of the '{@link #getCharTab() <em>Char Tab</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCharTab()
+ * @generated
+ * @ordered
+ */
+ protected static final byte CHAR_TAB_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getCharTab() <em>Char Tab</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCharTab()
+ * @generated
+ * @ordered
+ */
+ protected byte charTab = CHAR_TAB_EDEFAULT;
+
+ /**
+ * This is true if the Char Tab attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean charTabESet;
+
+ /**
+ * The cached value of the '{@link #getLinesOfTable1() <em>Lines Of Table1</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinesOfTable1()
+ * @generated
+ * @ordered
+ */
+ protected EList<LineOfTable1> linesOfTable1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SniComponentFastTuningImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SnitypesPackage.Literals.SNI_COMPONENT_FAST_TUNING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getTableIncrementalVersionNumber() {
+ return tableIncrementalVersionNumber;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTableIncrementalVersionNumber(byte newTableIncrementalVersionNumber) {
+ byte oldTableIncrementalVersionNumber = tableIncrementalVersionNumber;
+ tableIncrementalVersionNumber = newTableIncrementalVersionNumber;
+ boolean oldTableIncrementalVersionNumberESet = tableIncrementalVersionNumberESet;
+ tableIncrementalVersionNumberESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER, oldTableIncrementalVersionNumber, tableIncrementalVersionNumber, !oldTableIncrementalVersionNumberESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTableIncrementalVersionNumber() {
+ byte oldTableIncrementalVersionNumber = tableIncrementalVersionNumber;
+ boolean oldTableIncrementalVersionNumberESet = tableIncrementalVersionNumberESet;
+ tableIncrementalVersionNumber = TABLE_INCREMENTAL_VERSION_NUMBER_EDEFAULT;
+ tableIncrementalVersionNumberESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER, oldTableIncrementalVersionNumber, TABLE_INCREMENTAL_VERSION_NUMBER_EDEFAULT, oldTableIncrementalVersionNumberESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTableIncrementalVersionNumber() {
+ return tableIncrementalVersionNumberESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getCharTab() {
+ return charTab;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCharTab(byte newCharTab) {
+ byte oldCharTab = charTab;
+ charTab = newCharTab;
+ boolean oldCharTabESet = charTabESet;
+ charTabESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.SNI_COMPONENT_FAST_TUNING__CHAR_TAB, oldCharTab, charTab, !oldCharTabESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCharTab() {
+ byte oldCharTab = charTab;
+ boolean oldCharTabESet = charTabESet;
+ charTab = CHAR_TAB_EDEFAULT;
+ charTabESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.SNI_COMPONENT_FAST_TUNING__CHAR_TAB, oldCharTab, CHAR_TAB_EDEFAULT, oldCharTabESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCharTab() {
+ return charTabESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LineOfTable1> getLinesOfTable1() {
+ if (linesOfTable1 == null) {
+ linesOfTable1 = new EObjectContainmentEList.Unsettable<LineOfTable1>(LineOfTable1.class, this, SnitypesPackage.SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1);
+ }
+ return linesOfTable1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLinesOfTable1() {
+ if (linesOfTable1 != null) ((InternalEList.Unsettable<?>)linesOfTable1).unset();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLinesOfTable1() {
+ return linesOfTable1 != null && ((InternalEList.Unsettable<?>)linesOfTable1).isSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1:
+ return ((InternalEList<?>)getLinesOfTable1()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER:
+ return getTableIncrementalVersionNumber();
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__CHAR_TAB:
+ return getCharTab();
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1:
+ return getLinesOfTable1();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER:
+ setTableIncrementalVersionNumber((Byte)newValue);
+ return;
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__CHAR_TAB:
+ setCharTab((Byte)newValue);
+ return;
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1:
+ getLinesOfTable1().clear();
+ getLinesOfTable1().addAll((Collection<? extends LineOfTable1>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER:
+ unsetTableIncrementalVersionNumber();
+ return;
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__CHAR_TAB:
+ unsetCharTab();
+ return;
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1:
+ unsetLinesOfTable1();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER:
+ return isSetTableIncrementalVersionNumber();
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__CHAR_TAB:
+ return isSetCharTab();
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1:
+ return isSetLinesOfTable1();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (tableIncrementalVersionNumber: ");
+ if (tableIncrementalVersionNumberESet) result.append(tableIncrementalVersionNumber); else result.append("<unset>");
+ result.append(", charTab: ");
+ if (charTabESet) result.append(charTab); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //SniComponentFastTuningImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentImpl.java
new file mode 100755
index 0000000..7861ed5
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SniComponentImpl.java
@@ -0,0 +1,285 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponent;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sni Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.snitypes.impl.SniComponentImpl#getN <em>N</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SniComponentImpl extends EObjectImpl implements SniComponent {
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final byte ID_EDEFAULT = 0x00;
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected byte id = ID_EDEFAULT;
+ /**
+ * This is true if the Id attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean idESet;
+ /**
+ * The default value of the '{@link #getN() <em>N</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getN()
+ * @generated
+ * @ordered
+ */
+ protected static final int N_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getN() <em>N</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getN()
+ * @generated
+ * @ordered
+ */
+ protected int n = N_EDEFAULT;
+
+ /**
+ * This is true if the N attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean nESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SniComponentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SnitypesPackage.Literals.SNI_COMPONENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(byte newId) {
+ byte oldId = id;
+ id = newId;
+ boolean oldIdESet = idESet;
+ idESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.SNI_COMPONENT__ID, oldId, id, !oldIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetId() {
+ byte oldId = id;
+ boolean oldIdESet = idESet;
+ id = ID_EDEFAULT;
+ idESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.SNI_COMPONENT__ID, oldId, ID_EDEFAULT, oldIdESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetId() {
+ return idESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getN() {
+ return n;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setN(int newN) {
+ int oldN = n;
+ n = newN;
+ boolean oldNESet = nESet;
+ nESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SnitypesPackage.SNI_COMPONENT__N, oldN, n, !oldNESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetN() {
+ int oldN = n;
+ boolean oldNESet = nESet;
+ n = N_EDEFAULT;
+ nESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SnitypesPackage.SNI_COMPONENT__N, oldN, N_EDEFAULT, oldNESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetN() {
+ return nESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT__ID:
+ return getId();
+ case SnitypesPackage.SNI_COMPONENT__N:
+ return getN();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT__ID:
+ setId((Byte)newValue);
+ return;
+ case SnitypesPackage.SNI_COMPONENT__N:
+ setN((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT__ID:
+ unsetId();
+ return;
+ case SnitypesPackage.SNI_COMPONENT__N:
+ unsetN();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SnitypesPackage.SNI_COMPONENT__ID:
+ return isSetId();
+ case SnitypesPackage.SNI_COMPONENT__N:
+ return isSetN();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: ");
+ if (idESet) result.append(id); else result.append("<unset>");
+ result.append(", n: ");
+ if (nESet) result.append(n); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //SniComponentImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesFactoryImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesFactoryImpl.java
new file mode 100755
index 0000000..d8a7280
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesFactoryImpl.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.genivi.trafficinfo.tpeg.snitypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SnitypesFactoryImpl extends EFactoryImpl implements SnitypesFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SnitypesFactory init() {
+ try {
+ SnitypesFactory theSnitypesFactory = (SnitypesFactory)EPackage.Registry.INSTANCE.getEFactory(SnitypesPackage.eNS_URI);
+ if (theSnitypesFactory != null) {
+ return theSnitypesFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new SnitypesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SnitypesFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case SnitypesPackage.SNI_COMPONENT: return createSniComponent();
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING: return createSniComponentFastTuning();
+ case SnitypesPackage.LINE_OF_TABLE1: return createLineOfTable1();
+ case SnitypesPackage.OPERATING_TIME: return createOperatingTime();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SniComponent createSniComponent() {
+ SniComponentImpl sniComponent = new SniComponentImpl();
+ return sniComponent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SniComponentFastTuning createSniComponentFastTuning() {
+ SniComponentFastTuningImpl sniComponentFastTuning = new SniComponentFastTuningImpl();
+ return sniComponentFastTuning;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LineOfTable1 createLineOfTable1() {
+ LineOfTable1Impl lineOfTable1 = new LineOfTable1Impl();
+ return lineOfTable1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OperatingTime createOperatingTime() {
+ OperatingTimeImpl operatingTime = new OperatingTimeImpl();
+ return operatingTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SnitypesPackage getSnitypesPackage() {
+ return (SnitypesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static SnitypesPackage getPackage() {
+ return SnitypesPackage.eINSTANCE;
+ }
+
+} //SnitypesFactoryImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesPackageImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesPackageImpl.java
new file mode 100755
index 0000000..6d9264e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/impl/SnitypesPackageImpl.java
@@ -0,0 +1,393 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1;
+import org.genivi.trafficinfo.tpeg.snitypes.OperatingTime;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponent;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesFactory;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SnitypesPackageImpl extends EPackageImpl implements SnitypesPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sniComponentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sniComponentFastTuningEClass = null;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lineOfTable1EClass = null;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operatingTimeEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private SnitypesPackageImpl() {
+ super(eNS_URI, SnitypesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link SnitypesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static SnitypesPackage init() {
+ if (isInited) return (SnitypesPackage)EPackage.Registry.INSTANCE.getEPackage(SnitypesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ SnitypesPackageImpl theSnitypesPackage = (SnitypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SnitypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SnitypesPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ TpegfwktypesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theSnitypesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theSnitypesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSnitypesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(SnitypesPackage.eNS_URI, theSnitypesPackage);
+ return theSnitypesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSniComponent() {
+ return sniComponentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSniComponent_Id() {
+ return (EAttribute)sniComponentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSniComponent_N() {
+ return (EAttribute)sniComponentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSniComponentFastTuning() {
+ return sniComponentFastTuningEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSniComponentFastTuning_TableIncrementalVersionNumber() {
+ return (EAttribute)sniComponentFastTuningEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSniComponentFastTuning_CharTab() {
+ return (EAttribute)sniComponentFastTuningEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSniComponentFastTuning_LinesOfTable1() {
+ return (EReference)sniComponentFastTuningEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLineOfTable1() {
+ return lineOfTable1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLineOfTable1_ServiceComponentId() {
+ return (EAttribute)lineOfTable1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLineOfTable1_Selector() {
+ return (EAttribute)lineOfTable1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLineOfTable1_OriginatorServiceIdentifier() {
+ return (EReference)lineOfTable1EClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLineOfTable1_ContentId() {
+ return (EAttribute)lineOfTable1EClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLineOfTable1_ApplicationId() {
+ return (EAttribute)lineOfTable1EClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLineOfTable1_OperatingTime() {
+ return (EReference)lineOfTable1EClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLineOfTable1_EncryptionIndicator() {
+ return (EAttribute)lineOfTable1EClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOperatingTime() {
+ return operatingTimeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SnitypesFactory getSnitypesFactory() {
+ return (SnitypesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ sniComponentEClass = createEClass(SNI_COMPONENT);
+ createEAttribute(sniComponentEClass, SNI_COMPONENT__ID);
+ createEAttribute(sniComponentEClass, SNI_COMPONENT__N);
+
+ sniComponentFastTuningEClass = createEClass(SNI_COMPONENT_FAST_TUNING);
+ createEAttribute(sniComponentFastTuningEClass, SNI_COMPONENT_FAST_TUNING__TABLE_INCREMENTAL_VERSION_NUMBER);
+ createEAttribute(sniComponentFastTuningEClass, SNI_COMPONENT_FAST_TUNING__CHAR_TAB);
+ createEReference(sniComponentFastTuningEClass, SNI_COMPONENT_FAST_TUNING__LINES_OF_TABLE1);
+
+ lineOfTable1EClass = createEClass(LINE_OF_TABLE1);
+ createEAttribute(lineOfTable1EClass, LINE_OF_TABLE1__SERVICE_COMPONENT_ID);
+ createEAttribute(lineOfTable1EClass, LINE_OF_TABLE1__SELECTOR);
+ createEReference(lineOfTable1EClass, LINE_OF_TABLE1__ORIGINATOR_SERVICE_IDENTIFIER);
+ createEAttribute(lineOfTable1EClass, LINE_OF_TABLE1__CONTENT_ID);
+ createEAttribute(lineOfTable1EClass, LINE_OF_TABLE1__APPLICATION_ID);
+ createEReference(lineOfTable1EClass, LINE_OF_TABLE1__OPERATING_TIME);
+ createEAttribute(lineOfTable1EClass, LINE_OF_TABLE1__ENCRYPTION_INDICATOR);
+
+ operatingTimeEClass = createEClass(OPERATING_TIME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TpegfwktypesPackage theTpegfwktypesPackage = (TpegfwktypesPackage)EPackage.Registry.INSTANCE.getEPackage(TpegfwktypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ sniComponentFastTuningEClass.getESuperTypes().add(this.getSniComponent());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(sniComponentEClass, SniComponent.class, "SniComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSniComponent_Id(), ecorePackage.getEByte(), "id", null, 1, 1, SniComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSniComponent_N(), ecorePackage.getEInt(), "n", null, 1, 1, SniComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sniComponentFastTuningEClass, SniComponentFastTuning.class, "SniComponentFastTuning", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSniComponentFastTuning_TableIncrementalVersionNumber(), ecorePackage.getEByte(), "tableIncrementalVersionNumber", null, 1, 1, SniComponentFastTuning.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSniComponentFastTuning_CharTab(), ecorePackage.getEByte(), "charTab", null, 0, 1, SniComponentFastTuning.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSniComponentFastTuning_LinesOfTable1(), this.getLineOfTable1(), null, "linesOfTable1", null, 0, -1, SniComponentFastTuning.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(lineOfTable1EClass, LineOfTable1.class, "LineOfTable1", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLineOfTable1_ServiceComponentId(), ecorePackage.getEByte(), "serviceComponentId", null, 1, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLineOfTable1_Selector(), ecorePackage.getEByte(), "selector", null, 1, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLineOfTable1_OriginatorServiceIdentifier(), theTpegfwktypesPackage.getServiceIdentifier(), null, "originatorServiceIdentifier", null, 0, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLineOfTable1_ContentId(), ecorePackage.getEByte(), "contentId", null, 1, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLineOfTable1_ApplicationId(), ecorePackage.getEByte(), "applicationId", null, 1, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLineOfTable1_OperatingTime(), this.getOperatingTime(), null, "operatingTime", null, 0, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLineOfTable1_EncryptionIndicator(), ecorePackage.getEByte(), "encryptionIndicator", null, 0, 1, LineOfTable1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(operatingTimeEClass, OperatingTime.class, "OperatingTime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //SnitypesPackageImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesAdapterFactory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesAdapterFactory.java
new file mode 100755
index 0000000..1ab194c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesAdapterFactory.java
@@ -0,0 +1,179 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.genivi.trafficinfo.tpeg.snitypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage
+ * @generated
+ */
+public class SnitypesAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static SnitypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SnitypesAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = SnitypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SnitypesSwitch<Adapter> modelSwitch =
+ new SnitypesSwitch<Adapter>() {
+ @Override
+ public Adapter caseSniComponent(SniComponent object) {
+ return createSniComponentAdapter();
+ }
+ @Override
+ public Adapter caseSniComponentFastTuning(SniComponentFastTuning object) {
+ return createSniComponentFastTuningAdapter();
+ }
+ @Override
+ public Adapter caseLineOfTable1(LineOfTable1 object) {
+ return createLineOfTable1Adapter();
+ }
+ @Override
+ public Adapter caseOperatingTime(OperatingTime object) {
+ return createOperatingTimeAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponent <em>Sni Component</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponent
+ * @generated
+ */
+ public Adapter createSniComponentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning <em>Sni Component Fast Tuning</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning
+ * @generated
+ */
+ public Adapter createSniComponentFastTuningAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1 <em>Line Of Table1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1
+ * @generated
+ */
+ public Adapter createLineOfTable1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.snitypes.OperatingTime <em>Operating Time</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.snitypes.OperatingTime
+ * @generated
+ */
+ public Adapter createOperatingTimeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //SnitypesAdapterFactory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesSwitch.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesSwitch.java
new file mode 100755
index 0000000..a5f52f6
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.sni-model/src/org/genivi/trafficinfo/tpeg/snitypes/util/SnitypesSwitch.java
@@ -0,0 +1,179 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.snitypes.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.genivi.trafficinfo.tpeg.snitypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.snitypes.SnitypesPackage
+ * @generated
+ */
+public class SnitypesSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static SnitypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SnitypesSwitch() {
+ if (modelPackage == null) {
+ modelPackage = SnitypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case SnitypesPackage.SNI_COMPONENT: {
+ SniComponent sniComponent = (SniComponent)theEObject;
+ T result = caseSniComponent(sniComponent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SnitypesPackage.SNI_COMPONENT_FAST_TUNING: {
+ SniComponentFastTuning sniComponentFastTuning = (SniComponentFastTuning)theEObject;
+ T result = caseSniComponentFastTuning(sniComponentFastTuning);
+ if (result == null) result = caseSniComponent(sniComponentFastTuning);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SnitypesPackage.LINE_OF_TABLE1: {
+ LineOfTable1 lineOfTable1 = (LineOfTable1)theEObject;
+ T result = caseLineOfTable1(lineOfTable1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SnitypesPackage.OPERATING_TIME: {
+ OperatingTime operatingTime = (OperatingTime)theEObject;
+ T result = caseOperatingTime(operatingTime);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sni Component</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sni Component</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSniComponent(SniComponent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sni Component Fast Tuning</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sni Component Fast Tuning</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSniComponentFastTuning(SniComponentFastTuning object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Line Of Table1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Line Of Table1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLineOfTable1(LineOfTable1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Operating Time</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Operating Time</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOperatingTime(OperatingTime object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //SnitypesSwitch
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.classpath
new file mode 100755
index 0000000..7998283
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.classpath
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.project
new file mode 100755
index 0000000..b373008
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.tpeg.tec.event-model</name>
+ <comment>Contains the TEC data model. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/META-INF/MANIFEST.MF b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..4a91681
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: tec-model;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.genivi.trafficinfo.tpeg.tec.event,
+ org.genivi.trafficinfo.tpeg.tec.event.impl,
+ org.genivi.trafficinfo.tpeg.tec.event.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.genivi.trafficinfo.tpegfwktypes-model;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/ReadMe.confluence
new file mode 100755
index 0000000..ce6e491
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/ReadMe.confluence
@@ -0,0 +1,7 @@
+This project defines the TPEG-TEC data model.
+This model is only used to inject test messages into the TrafficIncidentsService PoC.
+Information on TPEG-TEC can be found in the following document (only available for TISA members):
+Intelligent Transport Systems (ITS) — Traffic and Travel Information (TTI) via Transport Protocol Experts Group, Generation 2 (TPEG2) - Part 15: Traffic Event Compact (TPEG2-TEC_3.1/001)
+
+
+tec-events.ecorediag, in de model folder, provides a good overview of the structure of a TEC Message. \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/build.properties b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecore b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecore
new file mode 100755
index 0000000..822b042
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecore
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="event" nsURI="http://org.genivi.trafficinfo.tec" nsPrefix="model">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="Event">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="effectCode" lowerBound="1"
+ eType="#//EffectCode" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="startTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO: TEC MODEL change type to TPEG DateTime"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stopTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO: TEC MODEL change type to TPEG DateTime"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tendency" eType="#//Tendency"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthAffected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="averageSpeedAbsolute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="delay" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="segmentSpeedLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cause" upperBound="-1"
+ eType="#//Cause" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="advice" upperBound="-1"
+ eType="#//Advice" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="vehicleRestriction" upperBound="-1"
+ eType="#//VehicleRestriction" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expectedSpeedAbsolute"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="temporarySpeedLimit" upperBound="-1"
+ eType="#//TemporarySpeedLimit" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="EffectCode">
+ <eLiterals name="TRAFFIC_FLOW_UNKNOWN" value="1"/>
+ <eLiterals name="FREE_TRAFFIC_FLOW" value="2"/>
+ <eLiterals name="HEAVY_TRAFFIC" value="3" literal="HEAVY_TRAFFIC"/>
+ <eLiterals name="SLOW_TRAFFIC" value="4"/>
+ <eLiterals name="QUEUING_TRAFFIC" value="5"/>
+ <eLiterals name="STATIONARY_TRAFFIC" value="6"/>
+ <eLiterals name="NO_TRAFFIC_FLOW" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Tendency">
+ <eLiterals name="SLIGHTLY_INCREASING" value="1"/>
+ <eLiterals name="INCREASING" value="2"/>
+ <eLiterals name="STRONGLY_INCREASING" value="3"/>
+ <eLiterals name="SLIGHTLY_DECREASING" value="4"/>
+ <eLiterals name="DECREASING" value="5"/>
+ <eLiterals name="STRONGLY_DECREASING" value="6"/>
+ <eLiterals name="CONSTANT" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mainCause" eType="#//CauseCode"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CauseCode">
+ <eLiterals name="TRAFFIC_CONGESTION" value="1"/>
+ <eLiterals name="ACCIDENT" value="2"/>
+ <eLiterals name="ROADWORKS" value="3"/>
+ <eLiterals name="NARROW_LANES" value="4"/>
+ <eLiterals name="IMPASSIBILITY" value="5"/>
+ <eLiterals name="SLIPPERY_ROAD" value="6"/>
+ <eLiterals name="AQUAPLANING" value="7"/>
+ <eLiterals name="FIRE" value="8"/>
+ <eLiterals name="HAZARDOUS_DRIVING_CONDITIONS" value="9"/>
+ <eLiterals name="OBJECTS_ON_THE_ROAD" value="10"/>
+ <eLiterals name="ANIMALS_ON_ROADWAY" value="11"/>
+ <eLiterals name="PEOPLE_ON_ROADWAY" value="12"/>
+ <eLiterals name="BROKEN_DOWN_VEHICLES" value="13"/>
+ <eLiterals name="VEHICLE_ON_WRONG_CARRIAGEWAY" value="14"/>
+ <eLiterals name="RESCUE_AND_RECOVERY_WORK_IN_PROGRESS" value="15"/>
+ <eLiterals name="REGULATORY_MEASURE" value="16"/>
+ <eLiterals name="EXTREME_WEATHER_CONDITIONS" value="17"/>
+ <eLiterals name="VISIBILITY_REDUCED" value="18"/>
+ <eLiterals name="PRECIPITATION" value="19"/>
+ <eLiterals name="RECKLESS_PERSONS" value="20"/>
+ <eLiterals name="OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED" value="21"/>
+ <eLiterals name="TRAFFIC_REGULATIONS_CHANGED" value="22"/>
+ <eLiterals name="MAJOR_EVENT" value="23"/>
+ <eLiterals name="SERVICE_NOT_OPERATING" value="24"/>
+ <eLiterals name="SERVICE_NOT_USEABLE" value="25"/>
+ <eLiterals name="SLOW_MOVING_VEHICLES" value="26"/>
+ <eLiterals name="DANGEROUS_END_OF_QUEUE" value="27"/>
+ <eLiterals name="RISK_OF_FIRE" value="28"/>
+ <eLiterals name="TIME_DELAY" value="29"/>
+ <eLiterals name="POLICE_CHECKPOINT" value="30"/>
+ <eLiterals name="MALFUNCTIONING_ROADSIDE_EQUIPMENT" value="31"/>
+ <eLiterals name="TEST_MESSAGE" value="100"/>
+ <eLiterals name="UNDECODABLE_CAUSE" value="255"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkedCause" eSuperTypes="#//Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkedMessage" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="COID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="originatorSID" eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DirectCause" eSuperTypes="#//Cause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="warningLevel" lowerBound="1"
+ eType="#//WarningLevel" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unverifiedInformation"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subCause" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthAffected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO: TEC change type to DistanceMetres"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="laneRestrictionType" eType="#//LaneRestrictionType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfLanes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="freeText" upperBound="-1"
+ eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//LocalisedShortString"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="causeOffset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="WarningLevel">
+ <eLiterals name="INFORMATIVE" value="1"/>
+ <eLiterals name="DANGER_LEVEL_1" value="2"/>
+ <eLiterals name="DANGER_LEVEL_2" value="3"/>
+ <eLiterals name="DANGER_LEVEL_3" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TrafficCongestion">
+ <eLiterals name="INCREASED_VOLUME_OF_TRAFFIC" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Accident">
+ <eLiterals name="MULTI_VEHICLE_ACCIDENT" value="1"/>
+ <eLiterals name="HEAVY_ACCIDENT" value="2"/>
+ <eLiterals name="ACCIDENT_INVOLVING_LORRY" value="3"/>
+ <eLiterals name="ACCIDENT_INVOLVING_BUS" value="4"/>
+ <eLiterals name="ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS" value="5"/>
+ <eLiterals name="ACCIDENT_ON_OPPOSITE_LANE" value="6"/>
+ <eLiterals name="UNSECURED_ACCIDENT" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RoadWorks">
+ <eLiterals name="MAJOR_ROADWORKS" value="1"/>
+ <eLiterals name="ROAD_MARKING_WORK" value="2"/>
+ <eLiterals name="SLOW_MOVING_ROAD_MAINTENANCE" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="NarrowLanes">
+ <eLiterals name="CONTRAFLOW" value="1"/>
+ <eLiterals name="HARD_SHOULDER_CLOSED" value="2"/>
+ <eLiterals name="SLIP_LANE_CLOSED" value="3"/>
+ <eLiterals name="CRAWLER_LANE_CLOSED" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Impassibility">
+ <eLiterals name="FLOODING" value="1"/>
+ <eLiterals name="DANGER_OF_AVALANCHES" value="2"/>
+ <eLiterals name="BLASTING_OF_AVALANCHES" value="3"/>
+ <eLiterals name="LANDSLIPS" value="4"/>
+ <eLiterals name="CHEMICAL_SPILLAGE" value="5"/>
+ <eLiterals name="WINTER_CLOSURE" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SlipperyRoad">
+ <eLiterals name="HEAVY_FROST_ON_ROAD" value="1"/>
+ <eLiterals name="FUEL_ON_ROAD" value="2"/>
+ <eLiterals name="MUD_ON_ROAD" value="3"/>
+ <eLiterals name="SNOW_ON_ROAD" value="4"/>
+ <eLiterals name="ICE_ON_ROAD" value="5"/>
+ <eLiterals name="BLACK_ICE_ON_ROAD" value="6"/>
+ <eLiterals name="OIL_ON_ROAD" value="7"/>
+ <eLiterals name="LOOSE_CHIPPINGS" value="8"/>
+ <eLiterals name="INSTANT_BLACK_ICE" value="9"/>
+ <eLiterals name="ROADS_SALTED" value="10"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Fire">
+ <eLiterals name="MAJOR_FIRE" value="1"/>
+ <eLiterals name="FOREST_FIRE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="HazardousDrivingConditions">
+ <eLiterals name="ROCKFALLS" value="1"/>
+ <eLiterals name="EARTHQUAKE_DAMAGE" value="2"/>
+ <eLiterals name="SEWER_COLLAPSE" value="3"/>
+ <eLiterals name="SUBSIDENCE" value="4"/>
+ <eLiterals name="SNOW_DRIFTS" value="5"/>
+ <eLiterals name="STORM_DAMAGE" value="6"/>
+ <eLiterals name="BURST_PIPE" value="7"/>
+ <eLiterals name="VOLCANO_ERUPTION" value="8"/>
+ <eLiterals name="FALLING_ICE" value="9"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ObjectsOnTheRoad">
+ <eLiterals name="SHED_LOAD" value="1"/>
+ <eLiterals name="PARTS_OF_VEHICLES" value="2"/>
+ <eLiterals name="PARTS_OF_TYRES" value="3"/>
+ <eLiterals name="BIG_OBJECTS" value="4"/>
+ <eLiterals name="FALLEN_TREES" value="5"/>
+ <eLiterals name="HUB_CAPS" value="6"/>
+ <eLiterals name="WAITING_VEHICLES" value="7"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AnimalsOnRoadway">
+ <eLiterals name="WILD_ANIMALS" value="1"/>
+ <eLiterals name="HERD_OF_ANIMALS" value="2"/>
+ <eLiterals name="SMALL_ANIMALS" value="3"/>
+ <eLiterals name="LARGE_ANIMALS" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="PeopleOnRoadway">
+ <eLiterals name="CHILDREN_ON_ROADWAY"/>
+ <eLiterals name="CYCLISTS_ON_ROADWAY" value="2"/>
+ <eLiterals name="MOTOR_CYCLIST_ON_ROADWAY" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="BrokenDownVehicles">
+ <eLiterals name="BROKEN_DOWN_VEHICLE_BURNING" value="1"/>
+ <eLiterals name="BROKEN_DOWN_UNLIT_VEHICLE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RescueAndRecoveryWorkInProgress">
+ <eLiterals name="EMERGENCY_VEHICLES" value="1"/>
+ <eLiterals name="RESCUE_HELICOPTER_LANDING" value="2"/>
+ <eLiterals name="POLICE_ACTIVITY_ONGOING" value="3"/>
+ <eLiterals name="MEDICAL_EMERGENCY_ONGOING" value="4"/>
+ <eLiterals name="CHILD_ABDUCTION_IN_PROGRESS" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RegulatoryMeasure">
+ <eLiterals name="SECURITY_ALERT" value="1"/>
+ <eLiterals name="CONTAGIOUS_DISEASE" value="2"/>
+ <eLiterals name="ENVIRONMENTAL" value="3"/>
+ <eLiterals name="SMOG_ALERT" value="4"/>
+ <eLiterals name="BATCH_SERVICE_IN_PROGRESS" value="5"/>
+ <eLiterals name="ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LaneRestrictionType">
+ <eLiterals name="LANES_CLOSED" value="1"/>
+ <eLiterals name="LANES_OPEN" value="2"/>
+ <eLiterals name="RIGHT_LANES_CLOSED" value="3"/>
+ <eLiterals name="LEFT_LANES_CLOSED" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AdviceCode">
+ <eLiterals name="DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE" value="1"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED" value="2"/>
+ <eLiterals name="DRIVING_NOT_ALLOWED" value="3"/>
+ <eLiterals name="USE_HARD_SHOULDER_AS_LANE" value="4"/>
+ <eLiterals name="WAIT_FOR_POLICE_PATROL" value="5"/>
+ <eLiterals name="WAIT_FOR_IMPROVED_WEATHER" value="6"/>
+ <eLiterals name="GIVING_PATH_VEHICLES_COMING_FROM_BEHIND" value="7"/>
+ <eLiterals name="FOLLOW_DIVERSION" value="8"/>
+ <eLiterals name="NO_DIVERSION_TO_RECOMMEND" value="9"/>
+ <eLiterals name="DO_NOT_DIVERT" value="10"/>
+ <eLiterals name="FOLLOW_POLICE_INSTRUCTIONS" value="11"/>
+ <eLiterals name="AVOID_THE_AREA" value="12"/>
+ <eLiterals name="DRIVE_CAREFULLY" value="13"/>
+ <eLiterals name="DO_NOT_LEAVE_YOUR_VEHICLE" value="14"/>
+ <eLiterals name="SWITCH_ON_RADIO" value="15"/>
+ <eLiterals name="USE_TOLL_LANES" value="16"/>
+ <eLiterals name="WAIT_FOR_CONVOI" value="17"/>
+ <eLiterals name="UNDECODABLE_ADVICE" value="255"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VehicleType">
+ <eLiterals name="CAR" value="1"/>
+ <eLiterals name="LORRY" value="2"/>
+ <eLiterals name="BUS" value="3"/>
+ <eLiterals name="TAXI" value="4"/>
+ <eLiterals name="TRAIN" value="5"/>
+ <eLiterals name="MOTOR_CYCLE" value="6"/>
+ <eLiterals name="VEHICLE_WITH_TRAILER" value="7"/>
+ <eLiterals name="MOTOR_VEHICLES" value="8"/>
+ <eLiterals name="HEAVY_VEHICLE" value="11"/>
+ <eLiterals name="TRANSPORT_OF_DANGEROUS_GOODS" value="9"/>
+ <eLiterals name="TRANSPORT_OF_ABNORMAL_LOAD" value="10"/>
+ <eLiterals name="UNDECODABLE_VEHICLE_TYPE" value="255"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RestrictionType">
+ <eLiterals name="WIDTH_LESS_THAN" value="1"/>
+ <eLiterals name="WIDTH_GREATER_THAN" value="2"/>
+ <eLiterals name="HEIGTH_LESS_THAN" value="3"/>
+ <eLiterals name="HEIGTH_GREATER_THAN" value="4"/>
+ <eLiterals name="WEIGHT_LESS_THAN" value="5"/>
+ <eLiterals name="WEIGHT_GREATER_THAN" value="6"/>
+ <eLiterals name="WITHOUT_WINTER_TYRE" value="7"/>
+ <eLiterals name="WITHOUT_SNOW_CHAIN" value="8"/>
+ <eLiterals name="WITH_TRAILER" value="9"/>
+ <eLiterals name="WITH_CARAVAN" value="10"/>
+ <eLiterals name="PERSONS_IN_VEHICLE_LESS_THAN" value="11"/>
+ <eLiterals name="PERSONS_IN_VEHICLE_MORE_THAN" value="12"/>
+ <eLiterals name="EVEN_NUMBER_PLATE" value="13"/>
+ <eLiterals name="ODD_NUMBER_PLATE" value="14"/>
+ <eLiterals name="LENGTH_LESS_THAN" value="15"/>
+ <eLiterals name="LENGTH_GREATER_THAN" value="16"/>
+ <eLiterals name="AXLE_LOAD_LESS_THAN" value="17"/>
+ <eLiterals name="AXLE_LOAD_GREATER_THAN" value="18"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3" value="19"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4" value="20"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4" value="21"/>
+ <eLiterals name="VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5" value="22"/>
+ <eLiterals name="WITH_PETROL_ENGINE" value="23"/>
+ <eLiterals name="WITH_LPG_ENGINE" value="25"/>
+ <eLiterals name="WITH_DIESEL_ENGINE" value="24"/>
+ <eLiterals name="THROUGH_TRAFFIC" value="26"/>
+ <eLiterals name="RESIDENTS_TRAFFIC" value="27"/>
+ <eLiterals name="WITH_DESTINATION_IN_GIVEN_AREA" value="28"/>
+ <eLiterals name="UNDECODABLE_RESTRICTION" value="255"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ExtremeWeatherConditions">
+ <eLiterals name="STRONG_WINDS" value="1"/>
+ <eLiterals name="DAMAGING_HAIL" value="2"/>
+ <eLiterals name="HURRICANE" value="3"/>
+ <eLiterals name="THUNDERSTORM" value="4"/>
+ <eLiterals name="TORNADO" value="5"/>
+ <eLiterals name="BLIZARD" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VisibilityReduced">
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_FOG" value="1"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_SMOKE" value="2"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL" value="3"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN" value="4"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL" value="5"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE" value="6"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_SANDSTORMS" value="7"/>
+ <eLiterals name="VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Precipitation">
+ <eLiterals name="HEAVY_RAIN" value="1"/>
+ <eLiterals name="HEAVY_SNOWFALL" value="2"/>
+ <eLiterals name="SOFT_HAIL" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RecklessPersons">
+ <eLiterals name="RECKLESS_DRIVER" value="1"/>
+ <eLiterals name="GUNFIRE_ON_ROAD" value="2"/>
+ <eLiterals name="STONE_THROWING_PERSONS" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MajorEvent">
+ <eLiterals name="SPORTS_EVENT" value="1"/>
+ <eLiterals name="DEMONSTRATION" value="2"/>
+ <eLiterals name="DEMONSTRATION_WITH_VEHICLES" value="3"/>
+ <eLiterals name="CONCERT" value="4"/>
+ <eLiterals name="FAIR" value="5"/>
+ <eLiterals name="MILITARY_TRAINING" value="6"/>
+ <eLiterals name="EMERGENCY_TRAINING" value="7"/>
+ <eLiterals name="FESTIVITY" value="8"/>
+ <eLiterals name="PROCESSION" value="9"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ServiceNotOperating">
+ <eLiterals name="FERRY_SERVICE_NOT_OPERATING" value="1"/>
+ <eLiterals name="PLANE_SERVICE_NOT_OPERATING" value="2"/>
+ <eLiterals name="TRAIN_SERVICE_NOT_OPERATING" value="3"/>
+ <eLiterals name="BUS_SERVICE_NOT_OPERATING" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ServiceNotUsable">
+ <eLiterals name="FUEL_STATION_CLOSED" value="1"/>
+ <eLiterals name="SERVICE_AREA_CLOSED" value="2"/>
+ <eLiterals name="SERVICE_AREA_BUSY" value="3"/>
+ <eLiterals name="PARKING_FULL" value="4"/>
+ <eLiterals name="CAR_PARK_CLOSED" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SlowMovingVehicles">
+ <eLiterals name="SLOW_MOVING_MAINTENANCE_VEHICLE" value="1"/>
+ <eLiterals name="VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT" value="2"/>
+ <eLiterals name="ABNORMAL_LOAD" value="3"/>
+ <eLiterals name="ABNORMAL_WIDE_LOAD" value="4"/>
+ <eLiterals name="CONVOY" value="5"/>
+ <eLiterals name="SNOWPLOUGH" value="6"/>
+ <eLiterals name="DEICING" value="7"/>
+ <eLiterals name="SALTING_VEHICLES" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DangerousEndOfQueue">
+ <eLiterals name="SUDDEN_END_OF_QUEUE" value="1"/>
+ <eLiterals name="QUEUE_OVER_HILL" value="2"/>
+ <eLiterals name="QUEUE_AROUND_BEND" value="3"/>
+ <eLiterals name="QUEUE_IN_TUNNEL" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="RiskOfFire">
+ <eLiterals name="LEAKAGE_OF_FUEL" value="1"/>
+ <eLiterals name="LEAKAGE_OF_GAS" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TimeDelay">
+ <eLiterals name="TIME_DELAY_AT_FRONTIER" value="1"/>
+ <eLiterals name="TIME_DELAY_AT_FERRY_PORT" value="2"/>
+ <eLiterals name="TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="PoliceCheckpoint">
+ <eLiterals name="PERMANENT_POLICE_CHECKPOINT" value="1"/>
+ <eLiterals name="TEMPORARY_POLICE_CHECKPOINT" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MalfunctioningRoadsideEquipment">
+ <eLiterals name="ROAD_RAIL_CROSSING_FAILURE" value="1"/>
+ <eLiterals name="TUNNEL_VENTILATION_NOT_WORKING" value="2"/>
+ <eLiterals name="TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY" value="3"/>
+ <eLiterals name="EMERGENCY_TELEPHONES_NOT_WORKING" value="4"/>
+ <eLiterals name="AUTOMATIC_PAYMENT_LANES_NOT_WORKING" value="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="OvertakingNotAllowed">
+ <eLiterals name="DO_NOT_USE_OVERTAKING_LANES" value="1"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE" value="2"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE" value="3"/>
+ <eLiterals name="OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DrivingNotAllowed">
+ <eLiterals name="DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE"
+ value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GivingPathVehiclesFromBehind">
+ <eLiterals name="GIVING_PATH_FOR_RESCUE_VEHICLE" value="1"/>
+ <eLiterals name="GIVING_PATH_FOR_SERVICE_VEHICLES" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FollowDiversion">
+ <eLiterals name="FOLLOW_DIVERSION_SIGNS" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DriveCarefully">
+ <eLiterals name="DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD" value="1"/>
+ <eLiterals name="DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD" value="2"/>
+ <eLiterals name="DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="DoNotLeaveYourVehicle">
+ <eLiterals name="DO_NOT_LEAVE_YOUR_VEHICLE" value="1"/>
+ <eLiterals name="DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="UseTollLanes">
+ <eLiterals name="USE_MANUAL_PAYMENT_TOLL_LANES" value="1"/>
+ <eLiterals name="USE_AUTOMATIC_PAYMENT_TOLL_LANES" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Advice">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="adviceCode" eType="#//AdviceCode"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subAdviceCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="freeText" upperBound="-1"
+ eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//LocalisedShortString"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="vehicleRestriction" upperBound="-1"
+ eType="#//VehicleRestriction" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VehicleRestriction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vehicleType" eType="#//VehicleType"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="restriction" upperBound="-1"
+ eType="#//VehicleRelatedRestriction" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VehicleRelatedRestriction">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="restrictionType" lowerBound="1"
+ eType="#//RestrictionType" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="restrictionValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="restrictionLocation" eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//LocationReferencingContainer"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TECMessage">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mmt" lowerBound="1" eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//MMCSwitch"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" eType="#//Event"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="loc" eType="ecore:EClass ../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//LocationReferencingContainer"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemporarySpeedLimitSection">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitValue" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitValueWet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="speedLimitLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemporarySpeedLimit">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="speedLimitSection" lowerBound="1"
+ upperBound="-1" eType="#//TemporarySpeedLimitSection" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unitsMPH" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="vehicleRestriction" upperBound="-1"
+ eType="#//VehicleRestriction" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecorediag b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecorediag
new file mode 100755
index 0000000..d0b6d5b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.ecorediag
@@ -0,0 +1,1746 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Mlnn8T8-EeCZw9yYN1vKNg" type="EcoreTools" name="tec-events.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_NkCp8VoXEeC3H6JlN9FMhA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_NkVk4FoXEeC3H6JlN9FMhA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_NkyQ0FoXEeC3H6JlN9FMhA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_LRiJ4FoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/effectCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LRiJ4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_S5FKEFoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/startTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_S5FKEVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ynal4FoZEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/stopTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ynal4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C9O78FoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/tendency"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_C9O78VoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JLaVcFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/lengthAffected"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JLaVcVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VD-e4FoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/averageSpeedAbsolute"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VD-e4VoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dvk9EFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/delay"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dvk9EVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iqHkcFoaEeC3H6JlN9FMhA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/segmentSpeedLimit"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iqHkcVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kRsroJ-UEeO2bPxtRJW0gw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Event/expectedSpeedAbsolute"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kRsroZ-UEeO2bPxtRJW0gw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NkyQ0VoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NkyQ0loXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NkyQ01oXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NkyQ1FoXEeC3H6JlN9FMhA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NkyQ1VoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NkyQ1loXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NkyQ11oXEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NkCp8loXEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//Event"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NkCp81oXEeC3H6JlN9FMhA" x="420" y="1608"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TAWhoFoXEeC3H6JlN9FMhA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_TAWho1oXEeC3H6JlN9FMhA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_TAWhpFoXEeC3H6JlN9FMhA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Vl61sFoXEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/TRAFFIC_FLOW_UNKNOWN"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vl61sVoXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_c5zTAFoXEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/FREE_TRAFFIC_FLOW"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c5zTAVoXEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_G6fGkFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/HEAVY_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G6fGkVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MUXVUFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/SLOW_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MUXVUVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QvTPkFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/QUEUING_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QvTPkVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-7A5IFoYEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/STATIONARY_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-7A5IVoYEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_D3Z6oFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//EffectCode/NO_TRAFFIC_FLOW"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D3Z6oVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_TAWhpVoXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TAWhploXEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TAWhp1oXEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_TAWhoVoXEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//EffectCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TAWholoXEeC3H6JlN9FMhA" x="24" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ehxrgFoZEeC3H6JlN9FMhA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_ehxrg1oZEeC3H6JlN9FMhA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_ehxrhFoZEeC3H6JlN9FMhA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_iR8xgFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/SLIGHTLY_INCREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iR8xgVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mw7eQFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/INCREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mw7eQVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sMRsoFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/STRONGLY_INCREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sMRsoVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wbAW4FoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/SLIGHTLY_DECREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wbAW4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1vqHYFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/DECREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1vqHYVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ac-IFoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/STRONGLY_DECREASING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ac-IVoZEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__hCh4FoZEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Tendency/CONSTANT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__hCh4VoZEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ehxrhVoZEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ehxrhloZEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ehxrh1oZEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ehxrgVoZEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//Tendency"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ehxrgloZEeC3H6JlN9FMhA" x="468" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tKvDgFoaEeC3H6JlN9FMhA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_tKvDg1oaEeC3H6JlN9FMhA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_tKvDhFoaEeC3H6JlN9FMhA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_1X1lYFqqEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Cause/mainCause"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1X1lYVqqEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tKvDhVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKvDhloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKvDh1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tKvDiFoaEeC3H6JlN9FMhA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tKvDiVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tKvDiloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tKvDi1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tKvDgVoaEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//Cause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tKvDgloaEeC3H6JlN9FMhA" x="144" y="1800"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4XKfsFoaEeC3H6JlN9FMhA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_4XKfs1oaEeC3H6JlN9FMhA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_4XKftFoaEeC3H6JlN9FMhA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_9erMEFoaEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/TRAFFIC_CONGESTION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9erMEVoaEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AwHusFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/ACCIDENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AwHusVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Cn-BIFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/ROADWORKS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cn-BIVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EtY1gFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/NARROW_LANES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EtY1gVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_H6XH0FobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/IMPASSIBILITY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H6XH0VobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Laj4IFobEeC3H6JlN9FMhA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/SLIPPERY_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj4IVobEeC3H6JlN9FMhA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_203rcVqnEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/AQUAPLANING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_203rclqnEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8iU9gFqnEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8iU9gVqnEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-y3cwFqnEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/HAZARDOUS_DRIVING_CONDITIONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-y3cwVqnEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EZcDsFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/OBJECTS_ON_THE_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EZcDsVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IoNxQFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/ANIMALS_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IoNxQVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L516EFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/PEOPLE_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L516EVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PSDMAFqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/BROKEN_DOWN_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSDMAVqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VkQJ4FqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/VEHICLE_ON_WRONG_CARRIAGEWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VkQJ4VqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bBrb4FqoEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/RESCUE_AND_RECOVERY_WORK_IN_PROGRESS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bBrb4VqoEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GU9fwFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/REGULATORY_MEASURE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GU9fwVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NNIRcFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/EXTREME_WEATHER_CONDITIONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NNIRcVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TbKhAFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/VISIBILITY_REDUCED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TbKhAVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZPpoIFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/PRECIPITATION"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZPpoIVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fWg4sFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/RECKLESS_PERSONS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fWg4sVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nwjFwFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nwjFwVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xdzOMFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/TRAFFIC_REGULATIONS_CHANGED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xdzOMVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3oenwFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/MAJOR_EVENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3oenwVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7O1DYFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/SERVICE_NOT_OPERATING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7O1DYVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__1RqEFqpEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/SERVICE_NOT_USEABLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__1RqEVqpEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_F7BgUFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/SLOW_MOVING_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F7BgUVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L7ZuYFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/DANGEROUS_END_OF_QUEUE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L7ZuYVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ts24gFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/RISK_OF_FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ts24gVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Z_6K8FqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/TIME_DELAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z_6K8VqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gR5tcFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/POLICE_CHECKPOINT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gR5tcVqqEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_q5RUwFqqEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//CauseCode/MALFUNCTIONING_ROADSIDE_EQUIPMENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q5RUwVqqEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4XKftVoaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4XKftloaEeC3H6JlN9FMhA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4XKft1oaEeC3H6JlN9FMhA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4XKfsVoaEeC3H6JlN9FMhA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//CauseCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4XKfsloaEeC3H6JlN9FMhA" x="24" y="444"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7PGeQFqrEeCUVO0erQdu-A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_7PGeQ1qrEeCUVO0erQdu-A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_7PGeRFqrEeCUVO0erQdu-A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_JjdbwGFHEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//LinkedCause/linkedMessage"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JjdbwWFHEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RzUZIGFHEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//LinkedCause/COID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RzUZIWFHEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7PGeRVqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7PGeRlqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7PGeR1qrEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7PGeSFqrEeCUVO0erQdu-A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7PGeSVqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7PGeSlqrEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7PGeS1qrEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7PGeQVqrEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//LinkedCause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7PGeQlqrEeCUVO0erQdu-A" x="12" y="1932"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFcFqsEeCUVO0erQdu-A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ZzAFc1qsEeCUVO0erQdu-A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFdFqsEeCUVO0erQdu-A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_G03yEFqtEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/warningLevel"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G03yEVqtEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RdQtEFqtEeCUVO0erQdu-A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/unverifiedInformation"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RdQtEVqtEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lHTyUGFHEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/subCause"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lHTyUWFHEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w_SF4GFHEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/lengthAffected"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w_SF4WFHEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7A-NQGFHEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/laneRestrictionType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7A-NQWFHEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AEHXAGFIEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/numberOfLanes"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AEHXAWFIEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_09rGMKK0EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//DirectCause/causeOffset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_09rGMaK0EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZzAFdVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZzAFdlqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZzAFd1qsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZzAFeFqsEeCUVO0erQdu-A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZzAFeVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZzAFelqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZzAFe1qsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZzAFcVqsEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//DirectCause"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZzAFclqsEeCUVO0erQdu-A" x="144" y="2028"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qWg7EFqsEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_qWg7E1qsEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_qWg7FFqsEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_t9vgcFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//WarningLevel/INFORMATIVE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t9vgcVqsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yiXiMFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//WarningLevel/DANGER_LEVEL_1"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yiXiMVqsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5ChcgFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//WarningLevel/DANGER_LEVEL_2"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ChcgVqsEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9D5AMFqsEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//WarningLevel/DANGER_LEVEL_3"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9D5AMVqsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_qWg7FVqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qWg7FlqsEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qWg7F1qsEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_qWg7EVqsEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//WarningLevel"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWg7ElqsEeCUVO0erQdu-A" x="672" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6n3XwFquEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_6n3Xw1quEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_6n3XxFquEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_92l9kFquEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//TrafficCongestion/INCREASED_VOLUME_OF_TRAFFIC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_92l9kVquEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6n3XxVquEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6n3XxlquEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6n3Xx1quEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6n3XwVquEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//TrafficCongestion"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6n3XwlquEeCUVO0erQdu-A" x="372" y="264"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IQfwoFqvEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_IQfwo1qvEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_IQfwpFqvEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_LIYjwFqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/MULTI_VEHICLE_ACCIDENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LIYjwVqvEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QNHo8FqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/HEAVY_ACCIDENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QNHo8VqvEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Vkq8cFqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/ACCIDENT_INVOLVING_LORRY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Vkq8cVqvEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_c2Rh0FqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/ACCIDENT_INVOLVING_BUS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c2Rh0VqvEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lVGIQFqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lVGIQVqvEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uvEIUFqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/ACCIDENT_ON_OPPOSITE_LANE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uvEIUVqvEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0jdI0FqvEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Accident/UNSECURED_ACCIDENT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0jdI0VqvEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_IQfwpVqvEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IQfwplqvEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IQfwp1qvEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_IQfwoVqvEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//Accident"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IQfwolqvEeCUVO0erQdu-A" x="372" y="336"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8ujiAFqvEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_8ujiA1qvEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_8ujiBFqvEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Ap9AkFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RoadWorks/MAJOR_ROADWORKS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ap9AkVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HPoUEFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RoadWorks/ROAD_MARKING_WORK"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HPoUEVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OVRhEFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RoadWorks/SLOW_MOVING_ROAD_MAINTENANCE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OVRhEVqwEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8ujiBVqvEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8ujiBlqvEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8ujiB1qvEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_8ujiAVqvEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//RoadWorks"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8ujiAlqvEeCUVO0erQdu-A" x="372" y="504"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZH2S0FqwEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_ZH2S01qwEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_ZH2S1FqwEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_bkJ9MFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//NarrowLanes/CONTRAFLOW"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bkJ9MVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iVwM0FqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//NarrowLanes/HARD_SHOULDER_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iVwM0VqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4TOJsFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//NarrowLanes/SLIP_LANE_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4TOJsVqwEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9_a3gFqwEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//NarrowLanes/CRAWLER_LANE_CLOSED"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9_a3gVqwEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZH2S1VqwEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZH2S1lqwEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZH2S11qwEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZH2S0VqwEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//NarrowLanes"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZH2S0lqwEeCUVO0erQdu-A" x="372" y="612"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HCQxAFqxEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_HCQxA1qxEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_HCQxBFqxEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_RnUrMFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Impassibility/FLOODING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RnUrMVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WREdgFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Impassibility/DANGER_OF_AVALANCHES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WREdgVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eVF-UFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Impassibility/BLASTING_OF_AVALANCHES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eVF-UVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jwZJYFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Impassibility/LANDSLIPS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jwZJYVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oleB8FqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Impassibility/CHEMICAL_SPILLAGE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oleB8VqxEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HCQxBVqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HCQxBlqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HCQxB1qxEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HCQxAVqxEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//Impassibility"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HCQxAlqxEeCUVO0erQdu-A" x="372" y="732"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0iueIFqxEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_0iueI1qxEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_0iueJFqxEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_39f74FqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/HEAVY_FROST_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_39f74VqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9rmuMFqxEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/FUEL_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9rmuMVqxEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ECeJoFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/MUD_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ECeJoVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JSobsFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/SNOW_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JSobsVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RNsNwFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/ICE_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RNsNwVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XPR8wFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/BLACK_ICE_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XPR8wVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_d9Ji8FqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/OIL_ON_ROAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d9Ji8VqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iY6joFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/LOOSE_CHIPPINGS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iY6joVqyEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_p_cQIFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//SlipperyRoad/INSTANT_BLACK_ICE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p_cQIVqyEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0iueJVqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0iueJlqxEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0iueJ1qxEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0iueIVqxEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//SlipperyRoad"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0iueIlqxEeCUVO0erQdu-A" x="372" y="876"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_z6-sMFqyEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_z8K_AFqyEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_z8K_AVqyEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_4YYEkFqyEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//Fire/MAJOR_FIRE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4YYEkVqyEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_z8K_AlqyEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z8K_A1qyEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z8K_BFqyEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_z6-sMVqyEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//Fire"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z6-sMlqyEeCUVO0erQdu-A" x="744" y="264"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CHM6UFqzEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_CHWrUFqzEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_CHWrUVqzEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_HyMHMFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/ROCKFALLS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HyMHMVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ns4kAFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/EARTHQUAKE_DAMAGE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ns4kAVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TlLNEFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/SEWER_COLLAPSE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TlLNEVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aOKTQFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/SUBSIDENCE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aOKTQVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fOv4QFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/SNOW_DRIFTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fOv4QVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kS6VsFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/STORM_DAMAGE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kS6VsVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ozwqsFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//HazardousDrivingConditions/BURST_PIPE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozwqsVqzEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_CHWrUlqzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CHWrU1qzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CHWrVFqzEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_CHM6UVqzEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//HazardousDrivingConditions"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CHM6UlqzEeCUVO0erQdu-A" x="732" y="348"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0IGFsFqzEeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_0IGFs1qzEeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_0IGFtFqzEeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_7TcSEFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//ObjectsOnTheRoad/SHED_LOAD"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7TcSEVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__j4zkFqzEeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//ObjectsOnTheRoad/PARTS_OF_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__j4zkVqzEeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EpwhMFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//ObjectsOnTheRoad/PARTS_OF_TYRES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EpwhMVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_J1KPEFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//ObjectsOnTheRoad/BIG_OBJECTS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J1KPEVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PDhxYFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//ObjectsOnTheRoad/FALLEN_TREES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PDhxYVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VvQCgFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//ObjectsOnTheRoad/HUB_CAPS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VvQCgVq0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0IGFtVqzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0IGFtlqzEeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0IGFt1qzEeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0IGFsVqzEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//ObjectsOnTheRoad"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0IGFslqzEeCUVO0erQdu-A" x="732" y="528"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lLfHAFq0EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_lMrZ0Fq0EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_lMrZ0Vq0EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_oDDKAFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//AnimalsOnRoadway/WILD_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oDDKAVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s7rs4Fq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//AnimalsOnRoadway/HERD_OF_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s7rs4Vq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w-y9AFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//AnimalsOnRoadway/SMALL_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w-y9AVq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1S2zMFq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//AnimalsOnRoadway/LARGE_ANIMALS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1S2zMVq0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lMrZ0lq0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lMrZ01q0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lMrZ1Fq0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_lLfHAVq0EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//AnimalsOnRoadway"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lLfHAlq0EeCUVO0erQdu-A" x="732" y="684"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7KKk0Fq0EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_7KKk01q0EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_7KKk1Fq0EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="__ATv8Fq0EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//PeopleOnRoadway/CHILDREN_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__ATv8Vq0EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E5PSMFq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//PeopleOnRoadway/CYCLISTS_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E5PSMVq1EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LkKSEFq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//PeopleOnRoadway/MOTOR_CYCLIST_ON_ROADWAY"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LkKSEVq1EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7KKk1Vq0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KKk1lq0EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KKk11q0EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7KKk0Vq0EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//PeopleOnRoadway"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KKk0lq0EeCUVO0erQdu-A" x="708" y="804"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W8uFwFq1EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_W8uFw1q1EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_W8uFxFq1EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Z8-xwFq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//BrokenDownVehicles/BROKEN_DOWN_VEHICLE_BURNING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z8-xwVq1EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_iAcR4Fq1EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//BrokenDownVehicles/BROKEN_DOWN_UNLIT_VEHICLE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iAcR4Vq1EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_W8uFxVq1EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W8uFxlq1EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W8uFx1q1EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_W8uFwVq1EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//BrokenDownVehicles"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W8uFwlq1EeCUVO0erQdu-A" x="708" y="912"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BJt3AFq2EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_BJt3A1q2EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_BJt3BFq2EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_FGhDwFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RescueAndRecoveryWorkInProgress/EMERGENCY_VEHICLES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGhDwVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KrnrEFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RescueAndRecoveryWorkInProgress/RESCUE_HELICOPTER_LANDING"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KrnrEVq2EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BJt3BVq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BJt3Blq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BJt3B1q2EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BJt3AVq2EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//RescueAndRecoveryWorkInProgress"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BJt3Alq2EeCUVO0erQdu-A" x="1056" y="264"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_T0XYQFq2EeCUVO0erQdu-A" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_T0XYQ1q2EeCUVO0erQdu-A" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_T0XYRFq2EeCUVO0erQdu-A" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_W4U4gFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RegulatoryMeasure/SECURITY_ALERT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W4U4gVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_dGCX8Fq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RegulatoryMeasure/CONTAGIOUS_DISEASE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dGCX8Vq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jhbHAFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RegulatoryMeasure/ENVIRONMENTAL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jhbHAVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qlbVQFq2EeCUVO0erQdu-A" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RegulatoryMeasure/SMOG_ALERT"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qlbVQVq2EeCUVO0erQdu-A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fnnkkJ8EEeO2bPxtRJW0gw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RegulatoryMeasure/BATCH_SERVICE_IN_PROGRESS"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fnnkkZ8EEeO2bPxtRJW0gw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kiwB0J8EEeO2bPxtRJW0gw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="tec-events.ecore#//RegulatoryMeasure/ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kiwB0Z8EEeO2bPxtRJW0gw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_T0XYRVq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T0XYRlq2EeCUVO0erQdu-A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T0XYR1q2EeCUVO0erQdu-A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_T0XYQVq2EeCUVO0erQdu-A" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//RegulatoryMeasure"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T0XYQlq2EeCUVO0erQdu-A" x="1080" y="408"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ffDV4GEyEeGKh95U6kQmbA" type="Note" description="Based on TISA version of TEC:&#xD;&#xA;TPEG2-TEC_3.1/001 2011-11-07" fillColor="8047085" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ffDV5GEyEeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ffMf0GEyEeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_ffDV4WEyEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_ffDV4mEyEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ffDV42EyEeGKh95U6kQmbA" x="240" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0_QH8GEyEeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_0_Z48GEyEeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_0_Z48WEyEeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0_Z48mEyEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0_Z482EyEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0_Z49GEyEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0_QH8WEyEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//LaneRestrictionType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_QH8mEyEeGKh95U6kQmbA" x="1152" y="12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GbVVkGE5EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_GbfGkGE5EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_GbfGkWE5EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_GbfGkmE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GbfGk2E5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GbfGlGE5EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_GbVVkWE5EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//VehicleType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GbVVkmE5EeGKh95U6kQmbA" x="840" y="12"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_poj4UGE5EeGKh95U6kQmbA" type="Note" description="Sub Causes" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_poj4VGE5EeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_poj4VWE5EeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_poj4UWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_poj4UmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_poj4U2E5EeGKh95U6kQmbA" x="972" y="564"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EHIo4GE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_EHIo42E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_EHIo5GE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_EHIo5WE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EHIo5mE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EHIo52E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_EHIo4WE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//MajorEvent"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EHIo4mE6EeGKh95U6kQmbA" x="1428" y="360"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JXE4gGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_JXE4g2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_JXE4hGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JXE4hWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JXE4hmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JXE4h2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JXE4gWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//ServiceNotOperating"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JXE4gmE6EeGKh95U6kQmbA" x="1440" y="576"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SpoB8GE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_SpoB82E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_SpoB9GE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_SpoB9WE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SpoB9mE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SpoB92E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_SpoB8WE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//ExtremeWeatherConditions"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SpoB8mE6EeGKh95U6kQmbA" x="1116" y="552"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YpkyMGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_YpkyM2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_YpkyNGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YpkyNWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YpkyNmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YpkyN2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_YpkyMWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//VisibilityReduced"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YpkyMmE6EeGKh95U6kQmbA" x="1068" y="708"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Zjp00GE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_Zjp002E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_Zjp01GE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Zjp01WE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Zjp01mE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Zjp012E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Zjp00WE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//Precipitation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zjp00mE6EeGKh95U6kQmbA" x="1140" y="912"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kKrd4GE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_kKrd42E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_kKrd5GE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kKrd5WE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kKrd5mE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kKrd52E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_kKrd4WE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//RecklessPersons"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kKrd4mE6EeGKh95U6kQmbA" x="1428" y="252"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ozAT4GE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_ozAT42E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_ozAT5GE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ozAT5WE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ozAT5mE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ozAT52E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ozAT4WE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//ServiceNotUsable"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ozAT4mE6EeGKh95U6kQmbA" x="1476" y="696"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_q85YkGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_q85Yk2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_q85YlGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_q85YlWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q85YlmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q85Yl2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_q85YkWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//SlowMovingVehicles"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q85YkmE6EeGKh95U6kQmbA" x="1452" y="840"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0fH8wGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_0fH8w2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_0fH8xGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_0fH8xWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0fH8xmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0fH8x2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_0fH8wWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//DangerousEndOfQueue"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0fH8wmE6EeGKh95U6kQmbA" x="1740" y="252"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3KhMAGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_3KhMA2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_3KhMBGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_3KhMBWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3KhMBmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3KhMB2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3KhMAWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//RiskOfFire"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3KhMAmE6EeGKh95U6kQmbA" x="1740" y="372"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4836cGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_4836c2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_4836dGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4836dWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4836dmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4836d2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4836cWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//TimeDelay"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4836cmE6EeGKh95U6kQmbA" x="1740" y="468"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6F1toGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_6F1to2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_6F1tpGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6F1tpWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6F1tpmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6F1tp2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6F1toWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//PoliceCheckpoint"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6F1tomE6EeGKh95U6kQmbA" x="1740" y="588"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8QxUIGE6EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_8QxUI2E6EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_8QxUJGE6EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8QxUJWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8QxUJmE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8QxUJ2E6EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_8QxUIWE6EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//MalfunctioningRoadsideEquipment"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8QxUImE6EeGKh95U6kQmbA" x="1752" y="696"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GvPeIGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_GvPeI2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_GvPeJGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_GvPeJWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GvPeJmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GvPeJ2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_GvPeIWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//AdviceCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GvPeImE7EeGKh95U6kQmbA" x="24" y="1152" width="327"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Mg7v8GE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_Mg7v82E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_Mg7v9GE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Mg7v9WE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mg7v9mE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mg7v92E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Mg7v8WE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//OvertakingNotAllowed"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mg7v8mE7EeGKh95U6kQmbA" x="372" y="1128"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_O7ZAMGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_O7ZAM2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_O7ZANGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_O7ZANWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ZANmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ZAN2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_O7ZAMWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//DrivingNotAllowed"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ZAMmE7EeGKh95U6kQmbA" x="372" y="1284"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RIJLoGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_RIJLo2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_RIJLpGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RIJLpWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RIJLpmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RIJLp2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RIJLoWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//GivingPathVehiclesFromBehind"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RIJLomE7EeGKh95U6kQmbA" x="372" y="1404"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TxWpkGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_TxWpk2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_TxWplGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_TxWplWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TxWplmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TxWpl2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_TxWpkWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//FollowDiversion"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TxWpkmE7EeGKh95U6kQmbA" x="924" y="1116"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VJPCgGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_VJPCg2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_VJPChGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_VJPChWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VJPChmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VJPCh2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_VJPCgWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//DriveCarefully"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VJPCgmE7EeGKh95U6kQmbA" x="852" y="1404"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Wr-noGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_Wr-no2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_Wr-npGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Wr-npWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Wr-npmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Wr-np2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Wr-noWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//DoNotLeaveYourVehicle"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wr-nomE7EeGKh95U6kQmbA" x="1308" y="1104"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_X6x9EGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_X6x9E2E7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_X6x9FGE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_X6x9FWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_X6x9FmE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_X6x9F2E7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_X6x9EWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//UseTollLanes"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X6x9EmE7EeGKh95U6kQmbA" x="1332" y="1272"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZEW0QGE7EeGKh95U6kQmbA" type="Note" description="Sub Advices" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ZEW0RGE7EeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_ZEW0RWE7EeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_ZEW0QWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_ZEW0QmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZEW0Q2E7EeGKh95U6kQmbA" x="985" y="1249"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k4kCIGE7EeGKh95U6kQmbA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_k4tzIGE7EeGKh95U6kQmbA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_k4tzIWE7EeGKh95U6kQmbA" type="5008">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_k4tzImE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k4tzI2E7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k4tzJGE7EeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_k4kCIWE7EeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="tec-events.ecore#//RestrictionType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k4kCImE7EeGKh95U6kQmbA" x="1248" y="1644"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wQx3kGE7EeGKh95U6kQmbA" type="Note" description="As there are no requirements related to the DiversionRoute, this is left out of the model." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_wQx3lGE7EeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_wQx3lWE7EeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_wQx3kWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_wQx3kmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wQx3k2E7EeGKh95U6kQmbA" x="881" y="1709" width="176" height="80"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sfD4cGFGEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_sfWzYGFGEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_sfWzYWFGEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_W2_38GFTEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Advice/adviceCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W2_38WFTEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cb98YGFTEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//Advice/subAdviceCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cb98YWFTEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_sfWzYmFGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sfWzY2FGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sfWzZGFGEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sfWzZWFGEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_sfWzZmFGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sfWzZ2FGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sfWzaGFGEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_sfD4cWFGEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//Advice"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sfD4cmFGEeGKh95U6kQmbA" x="396" y="1836"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zg2gMGFGEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_zg2gM2FGEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_zg2gNGFGEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="__hBakGFTEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//VehicleRestriction/vehicleType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__hBakWFTEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zg2gNWFGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zg2gNmFGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zg2gN2FGEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zg2gOGFGEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zg2gOWFGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zg2gOmFGEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zg2gO2FGEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zg2gMWFGEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//VehicleRestriction"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zg2gMmFGEeGKh95U6kQmbA" x="600" y="2016"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JpjJwGFUEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Jps6wGFUEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Jps6wWFUEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_MCjogGFUEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//VehicleRelatedRestriction/restrictionType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MCjogWFUEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Zaer4GFUEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//VehicleRelatedRestriction/restrictionValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Zaer4WFUEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Jps6wmFUEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Jps6w2FUEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Jps6xGFUEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Jps6xWFUEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Jps6xmFUEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Jps6x2FUEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Jps6yGFUEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JpjJwWFUEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//VehicleRelatedRestriction"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpjJwmFUEeGKh95U6kQmbA" x="588" y="2124"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O0hu8GFWEeGKh95U6kQmbA" type="Note" description="VehicleRelatedRestriction is actually called RestrictionType in TEC, but this causes a name clash in EMF." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_O0hu9GFWEeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_O0hu9WFWEeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_O0hu8WFWEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_O0hu8mFWEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O0hu82FWEeGKh95U6kQmbA" x="864" y="2112" width="197" height="83"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-y8IQGLiEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_-y8IQ2LiEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_-y8IRGLiEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-y8IRWLiEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-y8IRmLiEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-y8IR2LiEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-y8ISGLiEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-y8ISWLiEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-y8ISmLiEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-y8IS2LiEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_-y8IQWLiEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//TECMessage"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-y8IQmLiEeGKh95U6kQmbA" x="660" y="1500"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rcJAwGLkEeGKh95U6kQmbA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rcb7sGLkEeGKh95U6kQmbA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rcb7sWLkEeGKh95U6kQmbA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_rcJAw2LkEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_rcJAxGLkEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_rcJAxWLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rcJAxmLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rcJAx2LkEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rcJAyGLkEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_rcJAyWLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rcJAymLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rcJAy2LkEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_rcJAwWLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//MMCSwitch"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rcJAwmLkEeGKh95U6kQmbA" x="180" y="1560"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5bP_8GLkEeGKh95U6kQmbA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5b110GLkEeGKh95U6kQmbA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5b110WLkEeGKh95U6kQmbA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_5bP_82LkEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_5bP_9GLkEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5bP_9WLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5bP_9mLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5bP_92LkEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5bP_-GLkEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5bP_-WLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5bP_-mLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5bP_-2LkEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5bP_8WLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//LocationReferencingContainer"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5bP_8mLkEeGKh95U6kQmbA" x="756" y="2244"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IcbTMWeSEeGaKYndLiBH6g" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IeqH0GeSEeGaKYndLiBH6g" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IeqH0WeSEeGaKYndLiBH6g" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_Ic3YEGeSEeGaKYndLiBH6g" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Ic3YEWeSEeGaKYndLiBH6g" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Ic3YEmeSEeGaKYndLiBH6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ic3YE2eSEeGaKYndLiBH6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ic3YFGeSEeGaKYndLiBH6g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ic3YFWeSEeGaKYndLiBH6g" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Ic3YFmeSEeGaKYndLiBH6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ic3YF2eSEeGaKYndLiBH6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ic3YGGeSEeGaKYndLiBH6g"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_IcbTMmeSEeGaKYndLiBH6g" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//LocalisedShortString"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IcbTM2eSEeGaKYndLiBH6g" x="336" y="2232"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KWYJMDO7EeKmrrjF28z5iw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KXkcADO7EeKmrrjF28z5iw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KXkcATO7EeKmrrjF28z5iw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_KW01IDO7EeKmrrjF28z5iw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_KW01ITO7EeKmrrjF28z5iw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KW01IjO7EeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KW01IzO7EeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KW01JDO7EeKmrrjF28z5iw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KW01JTO7EeKmrrjF28z5iw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KW01JjO7EeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KW01JzO7EeKmrrjF28z5iw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KW01KDO7EeKmrrjF28z5iw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_KWYJMTO7EeKmrrjF28z5iw" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore#//ServiceIdentifier"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KWYJMjO7EeKmrrjF28z5iw" x="24" y="2184"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ukp7AKK1EeOqyayr_JFKKw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_UkrwMKK1EeOqyayr_JFKKw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_UksXQKK1EeOqyayr_JFKKw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_ah6joKK1EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//TemporarySpeedLimitSection/speedLimitValue"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ah6joaK1EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cHmIAKK1EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//TemporarySpeedLimitSection/speedLimitValueWet"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cHmIAaK1EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_emvrAKK1EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//TemporarySpeedLimitSection/speedLimitLength"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_emvrAaK1EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_UksXQaK1EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UksXQqK1EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Uks-UKK1EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_UktlYKK1EeOqyayr_JFKKw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_UktlYaK1EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UktlYqK1EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UktlY6K1EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Ukp7AaK1EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//TemporarySpeedLimitSection"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ukp7AqK1EeOqyayr_JFKKw" x="912" y="1920"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rpqSQKK2EeOqyayr_JFKKw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_rpq5UKK2EeOqyayr_JFKKw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_rpq5UaK2EeOqyayr_JFKKw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_fkBgsKK3EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//TemporarySpeedLimit/unitsMPH"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fkBgsaK3EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3d2ckKK3EeOqyayr_JFKKw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="tec-events.ecore#//TemporarySpeedLimit/offset"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3d2ckaK3EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_rpq5UqK2EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rpq5U6K2EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rpq5VKK2EeOqyayr_JFKKw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rpq5VaK2EeOqyayr_JFKKw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_rpq5VqK2EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rpq5V6K2EeOqyayr_JFKKw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rpq5WKK2EeOqyayr_JFKKw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_rpqSQaK2EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="tec-events.ecore#//TemporarySpeedLimit"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rpqSQqK2EeOqyayr_JFKKw" x="818" y="1819"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mlnn8j8-EeCZw9yYN1vKNg"/>
+ <element xmi:type="ecore:EPackage" href="tec-events.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_CF82wFqrEeCUVO0erQdu-A" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <children xmi:type="notation:Node" xmi:id="_CGjTsFqrEeCUVO0erQdu-A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGjTsVqrEeCUVO0erQdu-A" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_CGjTslqrEeCUVO0erQdu-A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CGjTs1qrEeCUVO0erQdu-A" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_CF82wVqrEeCUVO0erQdu-A" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CF82wlqrEeCUVO0erQdu-A" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//Event/cause"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CF82w1qrEeCUVO0erQdu-A" points="[-59, 3, 145, -8]$[-202, 35, 2, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CH5XgFqrEeCUVO0erQdu-A" id="(0.22988505747126436,0.453416149068323)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CH5XgVqrEeCUVO0erQdu-A" id="(0.7777777777777778,0.4897959183673469)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_RsFBoFqsEeCUVO0erQdu-A" type="3003" source="_7PGeQFqrEeCUVO0erQdu-A" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_RsFBoVqsEeCUVO0erQdu-A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RsFBolqsEeCUVO0erQdu-A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RsFBo1qsEeCUVO0erQdu-A" points="[-20, -20, 102, 85]$[-37, -102, 85, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_dAiYcFqsEeCUVO0erQdu-A" type="3003" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_tKvDgFoaEeC3H6JlN9FMhA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_dAiYcVqsEeCUVO0erQdu-A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dAiYclqsEeCUVO0erQdu-A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dAiYc1qsEeCUVO0erQdu-A" points="[-26, -63, 60, 205]$[-26, -244, 60, 24]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_s1Qd0GE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_6n3XwFquEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_s1Qd0WE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_s1Qd0mE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s1Qd02E5EeGKh95U6kQmbA" points="[-43, -28, 426, 280]$[-467, -328, 2, -20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s1ZnwGE5EeGKh95U6kQmbA" id="(0.7887931034482759,0.39622641509433965)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_tdVKcGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_IQfwoFqvEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_tdVKcWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_tdVKcmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tdVKc2E5EeGKh95U6kQmbA" points="[-50, -22, 361, 159]$[-409, -109, 2, 72]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tdVKdGE5EeGKh95U6kQmbA" id="(0.7699680511182109,0.5167785234899329)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t_JeEGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_8ujiAFqvEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_t_JeEWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_t_JeEmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t_JeE2E5EeGKh95U6kQmbA" points="[-50, -5, 375, 34]$[-423, -5, 2, 34]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t_JeFGE5EeGKh95U6kQmbA" id="(0.9007936507936508,0.6)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uhjnkGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_ZH2S0FqwEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_uhjnkWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_uhjnkmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uhjnk2E5EeGKh95U6kQmbA" points="[-50, 3, 495, -39]$[-543, 20, 2, -22]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uhjnlGE5EeGKh95U6kQmbA" id="(0.5752688172043011,0.22772277227722773)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vBJGkGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_HCQxAFqxEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_vBJGkWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_vBJGkmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vBJGk2E5EeGKh95U6kQmbA" points="[-50, 18, 442, -158]$[-490, 140, 2, -36]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBJGlGE5EeGKh95U6kQmbA" id="(0.8205128205128205,0.3162393162393162)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vk5T4GE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_0iueIFqxEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_vk5T4WE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_vk5T4mE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vk5T42E5EeGKh95U6kQmbA" points="[-43, 27, 475, -299]$[-516, 284, 2, -42]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vk5T5GE5EeGKh95U6kQmbA" id="(0.7403314917127072,0.23756906077348067)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xQTFwGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_z6-sMFqyEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_xQTFwWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_xQTFwmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xQTFw2E5EeGKh95U6kQmbA" points="[-19, -28, 192, 290]$[-209, -328, 2, -10]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xQTFxGE5EeGKh95U6kQmbA" id="(0.6216216216216216,0.20754716981132076)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xw7GkGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_CHM6UFqzEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_xw7GkWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_xw7GkmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xw7Gk2E5EeGKh95U6kQmbA" points="[-30, -28, 172, 143]$[-113, -132, 89, 39]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_yXglcGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_0IGFsFqzEeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_yXglcWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_yXglcmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yXglc2E5EeGKh95U6kQmbA" points="[-50, 6, 117, -15]$[-165, 67, 2, 46]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yXgldGE5EeGKh95U6kQmbA" id="(0.8012820512820513,0.6541353383458647)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y6hL4GE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_lLfHAFq0EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_y6hL4WE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_y6hL4mE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y6hL42E5EeGKh95U6kQmbA" points="[-38, 27, 181, -114]$[-148, 140, 71, -1]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zcfQgGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_7KKk0Fq0EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_zcfQgWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_zcfQgmE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zcfQg2E5EeGKh95U6kQmbA" points="[-14, 27, 117, -224]$[-129, 212, 2, -39]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zcfQhGE5EeGKh95U6kQmbA" id="(0.8295964125560538,0.47058823529411764)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0EaMIGE5EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_W8uFwFq1EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_0EaMIWE5EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_0EaMImE5EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0EaMI2E5EeGKh95U6kQmbA" points="[-11, 27, 126, -320]$[-135, 320, 2, -27]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0EaMJGE5EeGKh95U6kQmbA" id="(0.7617021276595745,0.4057971014492754)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_e-nBoGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_BJt3AFq2EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_e-nBoWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_e-nBomE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e-nBo2E6EeGKh95U6kQmbA" points="[8, -28, -78, 266]$[87, -261, 1, 33]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e-nBpGE6EeGKh95U6kQmbA" id="(0.23348017621145375,0.5217391304347826)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fZHMUGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_T0XYQFq2EeCUVO0erQdu-A" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_fZHMUWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_fZHMUmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fZHMU2E6EeGKh95U6kQmbA" points="[33, -28, -143, 95]$[94, -121, -82, 2]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fybrQGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_SpoB8GE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_fybrQWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_fybrQmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fybrQ2E6EeGKh95U6kQmbA" points="[49, 11, -132, -14]$[94, 62, -87, 37]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gMfKAGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_YpkyMGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_gMfKAWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_gMfKAmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gMfKA2E6EeGKh95U6kQmbA" points="[19, 27, -97, -136]$[117, 116, 1, -47]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gMfKBGE6EeGKh95U6kQmbA" id="(0.20402298850574713,0.2909090909090909)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gwE_QGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_Zjp00GE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_gwE_QWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_gwE_QmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gwE_Q2E6EeGKh95U6kQmbA" points="[10, 27, -133, -328]$[144, 320, 1, -35]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gwE_RGE6EeGKh95U6kQmbA" id="(0.18439716312056736,0.4235294117647059)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_u677cGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_kKrd4GE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_u677cWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_u677cmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u677c2E6EeGKh95U6kQmbA" points="[38, -27, -400, 279]$[439, -340, 1, -34]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u677dGE6EeGKh95U6kQmbA" id="(0.16097560975609757,0.4117647058823529)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vcvA8GE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_EHIo4GE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_vcvA8WE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_vcvA8mE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vcvA82E6EeGKh95U6kQmbA" points="[48, -17, -475, 126]$[406, -190, -117, -47]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_v9C4sGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_JXE4gGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_v9C4sWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_v9C4smE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v9C4s2E6EeGKh95U6kQmbA" points="[49, 3, -387, -27]$[437, -16, 1, -46]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v9C4tGE6EeGKh95U6kQmbA" id="(0.08189655172413793,0.46534653465346537)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wgC4EGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_ozAT4GE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_wgC4EWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_wgC4EmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wgC4E2E6EeGKh95U6kQmbA" points="[49, 15, -490, -146]$[476, 219, -63, 58]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xB_ukGE6EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_q85YkGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_xB_ukWE6EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_xB_ukmE6EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xB_uk2E6EeGKh95U6kQmbA" points="[45, 27, -534, -302]$[430, 266, -149, -63]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BwpdMGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_0fH8wGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_BwpdMWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_BwpdMmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BwpdM2E7EeGKh95U6kQmbA" points="[35, -14, -570, 204]$[539, -225, -66, -7]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CPLMQGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_3KhMAGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_CPLMQWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_CPLMQmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CPLMQ2E7EeGKh95U6kQmbA" points="[37, -9, -554, 131]$[539, -140, -52, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Cu51MGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_4836cGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_Cu51MWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_Cu51MmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Cu51M2E7EeGKh95U6kQmbA" points="[37, -4, -543, 60]$[581, -93, 1, -29]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cu51NGE7EeGKh95U6kQmbA" id="(0.18360655737704917,0.47058823529411764)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DNvGQGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_6F1toGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_DNvGQWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_DNvGQmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DNvGQ2E7EeGKh95U6kQmbA" points="[37, 1, -588, -21]$[539, 20, -86, -2]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DxLxkGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_poj4UGE5EeGKh95U6kQmbA" target="_8QxUIGE6EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_DxLxkWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_DxLxkmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DxLxk2E7EeGKh95U6kQmbA" points="[37, 6, -642, -115]$[548, 118, -131, -3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bz0EIGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_Mg7v8GE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_bz0EIWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_bz0EImE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bz0EI2E7EeGKh95U6kQmbA" points="[-38, -13, 215, 79]$[-251, -111, 2, -19]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bz0EJGE7EeGKh95U6kQmbA" id="(0.8431876606683805,0.25742574257425743)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cNSUEGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_O7ZAMGE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_cNSUEWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_cNSUEmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cNSUE2E7EeGKh95U6kQmbA" points="[-16, 3, 153, -26]$[-167, 49, 2, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cNSUFGE7EeGKh95U6kQmbA" id="(0.21,0.375)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cNSUFWE7EeGKh95U6kQmbA" id="(0.8649789029535865,0.49056603773584906)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_c0T30GE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_RIJLoGE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_c0T30WE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_c0T30mE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c0T302E7EeGKh95U6kQmbA" points="[-38, 14, 292, -105]$[-328, 96, 2, -23]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c0T31GE7EeGKh95U6kQmbA" id="(0.8653846153846154,0.463768115942029)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dNoWwGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_TxWpkGE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_dNoWwWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_dNoWwmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dNoWw2E7EeGKh95U6kQmbA" points="[-4, -21, 7, 80]$[-17, -120, -6, -19]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dsA74GE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_VJPCgGE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_dsA74WE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_dsA74mE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dsA742E7EeGKh95U6kQmbA" points="[-9, 21, -32, -106]$[-137, 119, -160, -8]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eHuAcGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_Wr-noGE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_eHuAcWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_eHuAcmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eHuAc2E7EeGKh95U6kQmbA" points="[35, -13, -223, 86]$[259, -79, 1, 20]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eHuAdGE7EeGKh95U6kQmbA" id="(0.21818181818181817,0.6086956521739131)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ejbFAGE7EeGKh95U6kQmbA" type="NoteAttachment" source="_ZEW0QGE7EeGKh95U6kQmbA" target="_X6x9EGE7EeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_ejbFAWE7EeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_ejbFAmE7EeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ejbFA2E7EeGKh95U6kQmbA" points="[37, 4, -288, -18]$[223, 29, -102, 7]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_wQaqMGFGEeGKh95U6kQmbA" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_sfD4cGFGEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_wQaqNGFGEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wQaqNWFGEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wQaqNmFGEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wQaqN2FGEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_wQaqMWFGEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wQaqMmFGEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//Event/advice"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wQaqM2FGEeGKh95U6kQmbA" points="[-6, 80, -11, -113]$[-45, 195, -50, 2]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_2lNpEGFGEeGKh95U6kQmbA" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_zg2gMGFGEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_2lNpFGFGEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2lNpFWFGEeGKh95U6kQmbA" x="-183" y="-8"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2lNpFmFGEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2lNpF2FGEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2lNpEWFGEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2lNpEmFGEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//Event/vehicleRestriction"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2lNpE2FGEeGKh95U6kQmbA" points="[33, 80, -114, -233]$[87, 318, -60, 5]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_0MDtcGFTEeGKh95U6kQmbA" type="3002" source="_sfD4cGFGEeGKh95U6kQmbA" target="_zg2gMGFGEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_0MDtdGFTEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0MDtdWFTEeGKh95U6kQmbA" x="-72" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0MDtdmFTEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0MDtd2FTEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_0MDtcWFTEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0MDtcmFTEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//Advice/vehicleRestriction"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0MDtc2FTEeGKh95U6kQmbA" points="[28, 33, -133, -137]$[101, 168, -60, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0MDteGFTEeGKh95U6kQmbA" id="(0.765,0.47692307692307695)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_UGyksGFUEeGKh95U6kQmbA" type="3002" source="_zg2gMGFGEeGKh95U6kQmbA" target="_JpjJwGFUEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_UGyktGFUEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UGyktWFUEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_UGyktmFUEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UGykt2FUEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_UGyksWFUEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UGyksmFUEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//VehicleRestriction/restriction"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UGyks2FUEeGKh95U6kQmbA" points="[8, 24, -34, -108]$[-65, 123, -107, -9]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cKNWoGFWEeGKh95U6kQmbA" type="NoteAttachment" source="_O0hu8GFWEeGKh95U6kQmbA" target="_JpjJwGFUEeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_cKNWoWFWEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_cKNWomFWEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cKNWo2FWEeGKh95U6kQmbA" points="[-98, -4, 92, 1]$[-188, -29, 2, -24]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cKNWpGFWEeGKh95U6kQmbA" id="(0.8493150684931506,0.38461538461538464)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_twAg0GLkEeGKh95U6kQmbA" type="3002" source="_-y8IQGLiEeGKh95U6kQmbA" target="_rcJAwGLkEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_twAg1GLkEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_twAg1WLkEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_twAg1mLkEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_twAg12LkEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_twAg0WLkEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_twAg0mLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//TECMessage/mmt"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_twAg02LkEeGKh95U6kQmbA" points="[-47, 20, 135, -57]$[-180, 68, 2, -9]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_twAg2GLkEeGKh95U6kQmbA" id="(0.5677966101694916,0.1724137931034483)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_12EpAGLkEeGKh95U6kQmbA" type="3002" source="_-y8IQGLiEeGKh95U6kQmbA" target="_NkCp8VoXEeC3H6JlN9FMhA">
+ <children xmi:type="notation:Node" xmi:id="_12EpBGLkEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_12EpBWLkEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_12EpBmLkEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_12EpB2LkEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_12EpAWLkEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_12EpAmLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//TECMessage/event"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_12EpA2LkEeGKh95U6kQmbA" points="[-2, 20, -57, -135]$[-74, 82, -129, -73]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5bsr4GLkEeGKh95U6kQmbA" type="3002" source="_JpjJwGFUEeGKh95U6kQmbA" target="_5bP_8GLkEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_5bsr5GLkEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5bsr5WLkEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5bsr5mLkEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5bsr52LkEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5bsr4WLkEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5bsr4mLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//VehicleRelatedRestriction/restrictionLocation"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5bsr42LkEeGKh95U6kQmbA" points="[-10, -31, 687, 2125]$[-697, -2155, 0, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_E2CoQGLlEeGKh95U6kQmbA" type="3002" source="_-y8IQGLiEeGKh95U6kQmbA" target="_5bP_8GLkEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_E2CoRGLlEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E2CoRWLlEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_E2CoRmLlEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E2CoR2LlEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_E2CoQWLlEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E2CoQmLlEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//TECMessage/loc"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E2CoQ2LlEeGKh95U6kQmbA" points="[3, 20, -137, -732]$[146, 724, 6, -28]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_IeDq4GeSEeGaKYndLiBH6g" type="3002" source="_ZzAFcFqsEeCUVO0erQdu-A" target="_IcbTMWeSEeGaKYndLiBH6g">
+ <children xmi:type="notation:Node" xmi:id="_IeDq5GeSEeGaKYndLiBH6g" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IeDq5WeSEeGaKYndLiBH6g" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IeDq5meSEeGaKYndLiBH6g" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IeDq52eSEeGaKYndLiBH6g" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_IeDq4WeSEeGaKYndLiBH6g" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IeDq4meSEeGaKYndLiBH6g" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//DirectCause/freeText"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IeDq42eSEeGaKYndLiBH6g" points="[-7, -63, 236, 2029]$[-243, -2091, 0, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_IeDq6GeSEeGaKYndLiBH6g" type="3002" source="_sfD4cGFGEeGKh95U6kQmbA" target="_IcbTMWeSEeGaKYndLiBH6g">
+ <children xmi:type="notation:Node" xmi:id="_IeDq7GeSEeGaKYndLiBH6g" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IeDq7WeSEeGaKYndLiBH6g" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IeDq7meSEeGaKYndLiBH6g" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IeDq72eSEeGaKYndLiBH6g" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_IeDq6WeSEeGaKYndLiBH6g" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IeDq6meSEeGaKYndLiBH6g" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//Advice/freeText"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IeDq62eSEeGaKYndLiBH6g" points="[-9, -31, 487, 1837]$[-496, -1867, 0, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_VAcfMDO7EeKmrrjF28z5iw" type="3002" source="_7PGeQFqrEeCUVO0erQdu-A" target="_KWYJMDO7EeKmrrjF28z5iw">
+ <children xmi:type="notation:Node" xmi:id="_VAwBMDO7EeKmrrjF28z5iw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VAwBMTO7EeKmrrjF28z5iw" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VAwBMjO7EeKmrrjF28z5iw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VAwBMzO7EeKmrrjF28z5iw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_VAcfMTO7EeKmrrjF28z5iw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VAcfMjO7EeKmrrjF28z5iw" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//LinkedCause/originatorSID"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VAcfMzO7EeKmrrjF28z5iw" points="[-7, 32, 28, -236]$[-93, 272, -58, 4]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Tx9A0KK3EeOqyayr_JFKKw" type="3002" source="_rpqSQKK2EeOqyayr_JFKKw" target="_Ukp7AKK1EeOqyayr_JFKKw">
+ <children xmi:type="notation:Node" xmi:id="_Tx9n4KK3EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Tx9n4aK3EeOqyayr_JFKKw" x="-33" y="-9"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Tx9n4qK3EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Tx9n46K3EeOqyayr_JFKKw" x="12" y="-20"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Tx9A0aK3EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Tx9A0qK3EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//TemporarySpeedLimit/speedLimitSection"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Tx9A06K3EeOqyayr_JFKKw" points="[19, 21, -115, -101]$[20, 81, -114, -41]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_EHVFkKK4EeOqyayr_JFKKw" type="3002" source="_rpqSQKK2EeOqyayr_JFKKw" target="_zg2gMGFGEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_EHVsoKK4EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EHVsoaK4EeOqyayr_JFKKw" x="-137" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EHVsoqK4EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EHVso6K4EeOqyayr_JFKKw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_EHVFkaK4EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EHVFkqK4EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//TemporarySpeedLimit/vehicleRestriction"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EHVFk6K4EeOqyayr_JFKKw" points="[-39, 33, 161, -137]$[-198, 164, 2, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EHYv8KK4EeOqyayr_JFKKw" id="(0.5555555555555556,0.14285714285714285)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_LaslgKK4EeOqyayr_JFKKw" type="3002" source="_NkCp8VoXEeC3H6JlN9FMhA" target="_rpqSQKK2EeOqyayr_JFKKw">
+ <children xmi:type="notation:Node" xmi:id="_LaslhKK4EeOqyayr_JFKKw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LaslhaK4EeOqyayr_JFKKw" x="-11" y="-19"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LatzoKK4EeOqyayr_JFKKw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LatzoaK4EeOqyayr_JFKKw" x="26" y="-11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_LaslgaK4EeOqyayr_JFKKw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LaslgqK4EeOqyayr_JFKKw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="tec-events.ecore#//Event/temporarySpeedLimit"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Laslg6K4EeOqyayr_JFKKw" points="[63, 33, -161, -84]$[225, 110, 1, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lavo0KK4EeOqyayr_JFKKw" id="(0.7631578947368421,0.5819209039548022)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lavo0aK4EeOqyayr_JFKKw" id="(0.1728395061728395,0.11764705882352941)"/>
+ </edges>
+</notation:Diagram>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.genmodel b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.genmodel
new file mode 100755
index 0000000..8101b9c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/model/tec-events.genmodel
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficinfo.tpeg.tec.event-model/src" modelPluginID="tec-model"
+ modelName="Tec-events" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+ copyrightFields="false" usedGenPackages="../../org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.genmodel#//tpegfwktypes">
+ <foreignModel>tec-events.ecore</foreignModel>
+ <genPackages prefix="Event" basePackage="org.genivi.trafficinfo.tpeg.tec" disposableProviderFactory="true"
+ ecorePackage="tec-events.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//EffectCode">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/TRAFFIC_FLOW_UNKNOWN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/FREE_TRAFFIC_FLOW"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/HEAVY_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/SLOW_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/QUEUING_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/STATIONARY_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//EffectCode/NO_TRAFFIC_FLOW"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//Tendency">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/SLIGHTLY_INCREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/INCREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/STRONGLY_INCREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/SLIGHTLY_DECREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/DECREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/STRONGLY_DECREASING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Tendency/CONSTANT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//CauseCode">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/TRAFFIC_CONGESTION"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/ROADWORKS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/NARROW_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/IMPASSIBILITY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/SLIPPERY_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/AQUAPLANING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/FIRE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/HAZARDOUS_DRIVING_CONDITIONS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/OBJECTS_ON_THE_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/ANIMALS_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/PEOPLE_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/BROKEN_DOWN_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/VEHICLE_ON_WRONG_CARRIAGEWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/RESCUE_AND_RECOVERY_WORK_IN_PROGRESS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/REGULATORY_MEASURE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/EXTREME_WEATHER_CONDITIONS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/VISIBILITY_REDUCED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/PRECIPITATION"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/RECKLESS_PERSONS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/TRAFFIC_REGULATIONS_CHANGED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/MAJOR_EVENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/SERVICE_NOT_USEABLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/SLOW_MOVING_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/DANGEROUS_END_OF_QUEUE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/RISK_OF_FIRE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/TIME_DELAY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/POLICE_CHECKPOINT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/MALFUNCTIONING_ROADSIDE_EQUIPMENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/TEST_MESSAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//CauseCode/UNDECODABLE_CAUSE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//WarningLevel">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//WarningLevel/INFORMATIVE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//WarningLevel/DANGER_LEVEL_1"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//WarningLevel/DANGER_LEVEL_2"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//WarningLevel/DANGER_LEVEL_3"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//TrafficCongestion">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//TrafficCongestion/INCREASED_VOLUME_OF_TRAFFIC"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//Accident">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/MULTI_VEHICLE_ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/HEAVY_ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/ACCIDENT_INVOLVING_LORRY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/ACCIDENT_INVOLVING_BUS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/ACCIDENT_ON_OPPOSITE_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Accident/UNSECURED_ACCIDENT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//RoadWorks">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RoadWorks/MAJOR_ROADWORKS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RoadWorks/ROAD_MARKING_WORK"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RoadWorks/SLOW_MOVING_ROAD_MAINTENANCE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//NarrowLanes">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//NarrowLanes/CONTRAFLOW"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//NarrowLanes/HARD_SHOULDER_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//NarrowLanes/SLIP_LANE_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//NarrowLanes/CRAWLER_LANE_CLOSED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//Impassibility">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Impassibility/FLOODING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Impassibility/DANGER_OF_AVALANCHES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Impassibility/BLASTING_OF_AVALANCHES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Impassibility/LANDSLIPS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Impassibility/CHEMICAL_SPILLAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Impassibility/WINTER_CLOSURE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//SlipperyRoad">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/HEAVY_FROST_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/FUEL_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/MUD_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/SNOW_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/ICE_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/BLACK_ICE_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/OIL_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/LOOSE_CHIPPINGS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/INSTANT_BLACK_ICE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlipperyRoad/ROADS_SALTED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//Fire">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Fire/MAJOR_FIRE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Fire/FOREST_FIRE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//HazardousDrivingConditions">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/ROCKFALLS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/EARTHQUAKE_DAMAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/SEWER_COLLAPSE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/SUBSIDENCE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/SNOW_DRIFTS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/STORM_DAMAGE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/BURST_PIPE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/VOLCANO_ERUPTION"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//HazardousDrivingConditions/FALLING_ICE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//ObjectsOnTheRoad">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/SHED_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/PARTS_OF_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/PARTS_OF_TYRES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/BIG_OBJECTS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/FALLEN_TREES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/HUB_CAPS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ObjectsOnTheRoad/WAITING_VEHICLES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//AnimalsOnRoadway">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AnimalsOnRoadway/WILD_ANIMALS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AnimalsOnRoadway/HERD_OF_ANIMALS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AnimalsOnRoadway/SMALL_ANIMALS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AnimalsOnRoadway/LARGE_ANIMALS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//PeopleOnRoadway">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//PeopleOnRoadway/CHILDREN_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//PeopleOnRoadway/CYCLISTS_ON_ROADWAY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//PeopleOnRoadway/MOTOR_CYCLIST_ON_ROADWAY"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//BrokenDownVehicles">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//BrokenDownVehicles/BROKEN_DOWN_VEHICLE_BURNING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//BrokenDownVehicles/BROKEN_DOWN_UNLIT_VEHICLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//RescueAndRecoveryWorkInProgress">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RescueAndRecoveryWorkInProgress/EMERGENCY_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RescueAndRecoveryWorkInProgress/RESCUE_HELICOPTER_LANDING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RescueAndRecoveryWorkInProgress/POLICE_ACTIVITY_ONGOING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RescueAndRecoveryWorkInProgress/MEDICAL_EMERGENCY_ONGOING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RescueAndRecoveryWorkInProgress/CHILD_ABDUCTION_IN_PROGRESS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//RegulatoryMeasure">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RegulatoryMeasure/SECURITY_ALERT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RegulatoryMeasure/CONTAGIOUS_DISEASE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RegulatoryMeasure/ENVIRONMENTAL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RegulatoryMeasure/SMOG_ALERT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RegulatoryMeasure/BATCH_SERVICE_IN_PROGRESS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RegulatoryMeasure/ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//LaneRestrictionType">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//LaneRestrictionType/LANES_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//LaneRestrictionType/LANES_OPEN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//LaneRestrictionType/RIGHT_LANES_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//LaneRestrictionType/LEFT_LANES_CLOSED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//AdviceCode">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/OVERTAKING_NOT_ALLOWED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/DRIVING_NOT_ALLOWED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/USE_HARD_SHOULDER_AS_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/WAIT_FOR_POLICE_PATROL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/WAIT_FOR_IMPROVED_WEATHER"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/GIVING_PATH_VEHICLES_COMING_FROM_BEHIND"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/FOLLOW_DIVERSION"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/NO_DIVERSION_TO_RECOMMEND"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/DO_NOT_DIVERT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/FOLLOW_POLICE_INSTRUCTIONS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/AVOID_THE_AREA"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/DRIVE_CAREFULLY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/DO_NOT_LEAVE_YOUR_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/SWITCH_ON_RADIO"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/USE_TOLL_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/WAIT_FOR_CONVOI"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//AdviceCode/UNDECODABLE_ADVICE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//VehicleType">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/CAR"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/LORRY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/BUS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/TAXI"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/TRAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/MOTOR_CYCLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/VEHICLE_WITH_TRAILER"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/MOTOR_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/HEAVY_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/TRANSPORT_OF_DANGEROUS_GOODS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/TRANSPORT_OF_ABNORMAL_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VehicleType/UNDECODABLE_VEHICLE_TYPE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//RestrictionType">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WIDTH_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WIDTH_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/HEIGTH_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/HEIGTH_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WEIGHT_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WEIGHT_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITHOUT_WINTER_TYRE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITHOUT_SNOW_CHAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITH_TRAILER"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITH_CARAVAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/PERSONS_IN_VEHICLE_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/PERSONS_IN_VEHICLE_MORE_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/EVEN_NUMBER_PLATE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/ODD_NUMBER_PLATE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/LENGTH_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/LENGTH_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/AXLE_LOAD_LESS_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/AXLE_LOAD_GREATER_THAN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITH_PETROL_ENGINE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITH_LPG_ENGINE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITH_DIESEL_ENGINE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/THROUGH_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/RESIDENTS_TRAFFIC"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/WITH_DESTINATION_IN_GIVEN_AREA"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RestrictionType/UNDECODABLE_RESTRICTION"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//ExtremeWeatherConditions">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ExtremeWeatherConditions/STRONG_WINDS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ExtremeWeatherConditions/DAMAGING_HAIL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ExtremeWeatherConditions/HURRICANE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ExtremeWeatherConditions/THUNDERSTORM"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ExtremeWeatherConditions/TORNADO"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ExtremeWeatherConditions/BLIZARD"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//VisibilityReduced">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_FOG"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SMOKE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SANDSTORMS"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//VisibilityReduced/VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//Precipitation">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Precipitation/HEAVY_RAIN"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Precipitation/HEAVY_SNOWFALL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//Precipitation/SOFT_HAIL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//RecklessPersons">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RecklessPersons/RECKLESS_DRIVER"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RecklessPersons/GUNFIRE_ON_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RecklessPersons/STONE_THROWING_PERSONS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//MajorEvent">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/SPORTS_EVENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/DEMONSTRATION"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/DEMONSTRATION_WITH_VEHICLES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/CONCERT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/FAIR"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/MILITARY_TRAINING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/EMERGENCY_TRAINING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/FESTIVITY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MajorEvent/PROCESSION"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//ServiceNotOperating">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotOperating/FERRY_SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotOperating/PLANE_SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotOperating/TRAIN_SERVICE_NOT_OPERATING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotOperating/BUS_SERVICE_NOT_OPERATING"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//ServiceNotUsable">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotUsable/FUEL_STATION_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotUsable/SERVICE_AREA_CLOSED"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotUsable/SERVICE_AREA_BUSY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotUsable/PARKING_FULL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//ServiceNotUsable/CAR_PARK_CLOSED"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//SlowMovingVehicles">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/SLOW_MOVING_MAINTENANCE_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/ABNORMAL_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/ABNORMAL_WIDE_LOAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/CONVOY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/SNOWPLOUGH"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/DEICING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//SlowMovingVehicles/SALTING_VEHICLES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//DangerousEndOfQueue">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DangerousEndOfQueue/SUDDEN_END_OF_QUEUE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DangerousEndOfQueue/QUEUE_OVER_HILL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DangerousEndOfQueue/QUEUE_AROUND_BEND"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DangerousEndOfQueue/QUEUE_IN_TUNNEL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//RiskOfFire">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RiskOfFire/LEAKAGE_OF_FUEL"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//RiskOfFire/LEAKAGE_OF_GAS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//TimeDelay">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//TimeDelay/TIME_DELAY_AT_FRONTIER"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//TimeDelay/TIME_DELAY_AT_FERRY_PORT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//TimeDelay/TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//PoliceCheckpoint">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//PoliceCheckpoint/PERMANENT_POLICE_CHECKPOINT"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//PoliceCheckpoint/TEMPORARY_POLICE_CHECKPOINT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//MalfunctioningRoadsideEquipment">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MalfunctioningRoadsideEquipment/ROAD_RAIL_CROSSING_FAILURE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MalfunctioningRoadsideEquipment/TUNNEL_VENTILATION_NOT_WORKING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MalfunctioningRoadsideEquipment/TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MalfunctioningRoadsideEquipment/EMERGENCY_TELEPHONES_NOT_WORKING"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//MalfunctioningRoadsideEquipment/AUTOMATIC_PAYMENT_LANES_NOT_WORKING"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//OvertakingNotAllowed">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//OvertakingNotAllowed/DO_NOT_USE_OVERTAKING_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//OvertakingNotAllowed/OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//DrivingNotAllowed">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DrivingNotAllowed/DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//GivingPathVehiclesFromBehind">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//GivingPathVehiclesFromBehind/GIVING_PATH_FOR_RESCUE_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//GivingPathVehiclesFromBehind/GIVING_PATH_FOR_SERVICE_VEHICLES"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//FollowDiversion">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//FollowDiversion/FOLLOW_DIVERSION_SIGNS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//DriveCarefully">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DriveCarefully/DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DriveCarefully/DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DriveCarefully/DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//DoNotLeaveYourVehicle">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DoNotLeaveYourVehicle/DO_NOT_LEAVE_YOUR_VEHICLE"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//DoNotLeaveYourVehicle/DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="tec-events.ecore#//UseTollLanes">
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//UseTollLanes/USE_MANUAL_PAYMENT_TOLL_LANES"/>
+ <genEnumLiterals ecoreEnumLiteral="tec-events.ecore#//UseTollLanes/USE_AUTOMATIC_PAYMENT_TOLL_LANES"/>
+ </genEnums>
+ <genClasses ecoreClass="tec-events.ecore#//Event">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/effectCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/startTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/stopTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/tendency"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/lengthAffected"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/averageSpeedAbsolute"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/delay"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Event/segmentSpeedLimit"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//Event/cause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//Event/advice"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//Event/vehicleRestriction"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//Cause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Cause/mainCause"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//LinkedCause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//LinkedCause/linkedMessage"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//LinkedCause/COID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EReference tec-events.ecore#//LinkedCause/originatorSID"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//DirectCause">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//DirectCause/warningLevel"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//DirectCause/unverifiedInformation"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//DirectCause/subCause"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//DirectCause/lengthAffected"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//DirectCause/laneRestrictionType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//DirectCause/numberOfLanes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//DirectCause/freeText"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//Advice">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Advice/adviceCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//Advice/subAdviceCode"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//Advice/freeText"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//Advice/vehicleRestriction"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//VehicleRestriction">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//VehicleRestriction/vehicleType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//VehicleRestriction/restriction"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//VehicleRelatedRestriction">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//VehicleRelatedRestriction/restrictionType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tec-events.ecore#//VehicleRelatedRestriction/restrictionValue"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//VehicleRelatedRestriction/restrictionLocation"/>
+ </genClasses>
+ <genClasses ecoreClass="tec-events.ecore#//TECMessage">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//TECMessage/mmt"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//TECMessage/event"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tec-events.ecore#//TECMessage/loc"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.properties b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.properties
new file mode 100755
index 0000000..8e48089
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Tec-events Model
+providerName = www.example.org
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.xml
new file mode 100755
index 0000000..726e9de
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated tec-events -->
+ <package
+ uri="http://org.genivi.trafficinfo.tec"
+ class="org.genivi.trafficinfo.tpeg.tec.event.EventPackage"
+ genModel="model/tec-events.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/pom.xml
new file mode 100755
index 0000000..de47e6b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo.tpeg.tec</groupId>
+ <artifactId>event-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>TEC data model</name>
+ <description>Contains the TEC data model.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Accident.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Accident.java
new file mode 100755
index 0000000..29c1206
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Accident.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Accident</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAccident()
+ * @model
+ * @generated
+ */
+public enum Accident implements Enumerator {
+ /**
+ * The '<em><b>MULTI VEHICLE ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MULTI_VEHICLE_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ MULTI_VEHICLE_ACCIDENT(1, "MULTI_VEHICLE_ACCIDENT", "MULTI_VEHICLE_ACCIDENT"),
+
+ /**
+ * The '<em><b>HEAVY ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_ACCIDENT(2, "HEAVY_ACCIDENT", "HEAVY_ACCIDENT"),
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING LORRY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_LORRY_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_INVOLVING_LORRY(3, "ACCIDENT_INVOLVING_LORRY", "ACCIDENT_INVOLVING_LORRY"),
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING BUS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_BUS_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_INVOLVING_BUS(4, "ACCIDENT_INVOLVING_BUS", "ACCIDENT_INVOLVING_BUS"),
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING HAZARDOUS MATERIALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS(5, "ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS", "ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS"),
+
+ /**
+ * The '<em><b>ACCIDENT ON OPPOSITE LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_ON_OPPOSITE_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT_ON_OPPOSITE_LANE(6, "ACCIDENT_ON_OPPOSITE_LANE", "ACCIDENT_ON_OPPOSITE_LANE"),
+
+ /**
+ * The '<em><b>UNSECURED ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSECURED_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ UNSECURED_ACCIDENT(7, "UNSECURED_ACCIDENT", "UNSECURED_ACCIDENT");
+
+ /**
+ * The '<em><b>MULTI VEHICLE ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MULTI VEHICLE ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MULTI_VEHICLE_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MULTI_VEHICLE_ACCIDENT_VALUE = 1;
+
+ /**
+ * The '<em><b>HEAVY ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_ACCIDENT_VALUE = 2;
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING LORRY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT INVOLVING LORRY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_LORRY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_INVOLVING_LORRY_VALUE = 3;
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING BUS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT INVOLVING BUS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_BUS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_INVOLVING_BUS_VALUE = 4;
+
+ /**
+ * The '<em><b>ACCIDENT INVOLVING HAZARDOUS MATERIALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT INVOLVING HAZARDOUS MATERIALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS_VALUE = 5;
+
+ /**
+ * The '<em><b>ACCIDENT ON OPPOSITE LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT ON OPPOSITE LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_ON_OPPOSITE_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_ON_OPPOSITE_LANE_VALUE = 6;
+
+ /**
+ * The '<em><b>UNSECURED ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSECURED ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSECURED_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNSECURED_ACCIDENT_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Accident</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Accident[] VALUES_ARRAY =
+ new Accident[] {
+ MULTI_VEHICLE_ACCIDENT,
+ HEAVY_ACCIDENT,
+ ACCIDENT_INVOLVING_LORRY,
+ ACCIDENT_INVOLVING_BUS,
+ ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS,
+ ACCIDENT_ON_OPPOSITE_LANE,
+ UNSECURED_ACCIDENT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Accident</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Accident> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Accident</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Accident get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Accident result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Accident</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Accident getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Accident result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Accident</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Accident get(int value) {
+ switch (value) {
+ case MULTI_VEHICLE_ACCIDENT_VALUE: return MULTI_VEHICLE_ACCIDENT;
+ case HEAVY_ACCIDENT_VALUE: return HEAVY_ACCIDENT;
+ case ACCIDENT_INVOLVING_LORRY_VALUE: return ACCIDENT_INVOLVING_LORRY;
+ case ACCIDENT_INVOLVING_BUS_VALUE: return ACCIDENT_INVOLVING_BUS;
+ case ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS_VALUE: return ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS;
+ case ACCIDENT_ON_OPPOSITE_LANE_VALUE: return ACCIDENT_ON_OPPOSITE_LANE;
+ case UNSECURED_ACCIDENT_VALUE: return UNSECURED_ACCIDENT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Accident(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Accident
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Advice.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Advice.java
new file mode 100755
index 0000000..3bcd130
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Advice.java
@@ -0,0 +1,177 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Advice</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getAdviceCode <em>Advice Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getSubAdviceCode <em>Sub Advice Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getVehicleRestriction <em>Vehicle Restriction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAdvice()
+ * @model
+ * @generated
+ */
+public interface Advice extends EObject {
+ /**
+ * Returns the value of the '<em><b>Advice Code</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.AdviceCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Advice Code</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AdviceCode
+ * @see #isSetAdviceCode()
+ * @see #unsetAdviceCode()
+ * @see #setAdviceCode(AdviceCode)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAdvice_AdviceCode()
+ * @model unsettable="true"
+ * @generated
+ */
+ AdviceCode getAdviceCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getAdviceCode <em>Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Advice Code</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AdviceCode
+ * @see #isSetAdviceCode()
+ * @see #unsetAdviceCode()
+ * @see #getAdviceCode()
+ * @generated
+ */
+ void setAdviceCode(AdviceCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getAdviceCode <em>Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAdviceCode()
+ * @see #getAdviceCode()
+ * @see #setAdviceCode(AdviceCode)
+ * @generated
+ */
+ void unsetAdviceCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getAdviceCode <em>Advice Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Advice Code</em>' attribute is set.
+ * @see #unsetAdviceCode()
+ * @see #getAdviceCode()
+ * @see #setAdviceCode(AdviceCode)
+ * @generated
+ */
+ boolean isSetAdviceCode();
+
+ /**
+ * Returns the value of the '<em><b>Sub Advice Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sub Advice Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sub Advice Code</em>' attribute.
+ * @see #isSetSubAdviceCode()
+ * @see #unsetSubAdviceCode()
+ * @see #setSubAdviceCode(Object)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAdvice_SubAdviceCode()
+ * @model unsettable="true"
+ * @generated
+ */
+ Object getSubAdviceCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getSubAdviceCode <em>Sub Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Advice Code</em>' attribute.
+ * @see #isSetSubAdviceCode()
+ * @see #unsetSubAdviceCode()
+ * @see #getSubAdviceCode()
+ * @generated
+ */
+ void setSubAdviceCode(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getSubAdviceCode <em>Sub Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubAdviceCode()
+ * @see #getSubAdviceCode()
+ * @see #setSubAdviceCode(Object)
+ * @generated
+ */
+ void unsetSubAdviceCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getSubAdviceCode <em>Sub Advice Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Advice Code</em>' attribute is set.
+ * @see #unsetSubAdviceCode()
+ * @see #getSubAdviceCode()
+ * @see #setSubAdviceCode(Object)
+ * @generated
+ */
+ boolean isSetSubAdviceCode();
+
+ /**
+ * Returns the value of the '<em><b>Free Text</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Free Text</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Free Text</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAdvice_FreeText()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LocalisedShortString> getFreeText();
+
+ /**
+ * Returns the value of the '<em><b>Vehicle Restriction</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Restriction</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Restriction</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAdvice_VehicleRestriction()
+ * @model containment="true"
+ * @generated
+ */
+ EList<VehicleRestriction> getVehicleRestriction();
+
+} // Advice
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AdviceCode.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AdviceCode.java
new file mode 100755
index 0000000..f10764f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AdviceCode.java
@@ -0,0 +1,645 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Advice Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAdviceCode()
+ * @model
+ * @generated
+ */
+public enum AdviceCode implements Enumerator {
+ /**
+ * The '<em><b>DRIVE TO NEXT AVAILABLE PARKING PLACE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE(1, "DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE", "DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED(2, "OVERTAKING_NOT_ALLOWED", "OVERTAKING_NOT_ALLOWED"),
+
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVING_NOT_ALLOWED(3, "DRIVING_NOT_ALLOWED", "DRIVING_NOT_ALLOWED"),
+
+ /**
+ * The '<em><b>USE HARD SHOULDER AS LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_HARD_SHOULDER_AS_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_HARD_SHOULDER_AS_LANE(4, "USE_HARD_SHOULDER_AS_LANE", "USE_HARD_SHOULDER_AS_LANE"),
+
+ /**
+ * The '<em><b>WAIT FOR POLICE PATROL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_POLICE_PATROL_VALUE
+ * @generated
+ * @ordered
+ */
+ WAIT_FOR_POLICE_PATROL(5, "WAIT_FOR_POLICE_PATROL", "WAIT_FOR_POLICE_PATROL"),
+
+ /**
+ * The '<em><b>WAIT FOR IMPROVED WEATHER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_IMPROVED_WEATHER_VALUE
+ * @generated
+ * @ordered
+ */
+ WAIT_FOR_IMPROVED_WEATHER(6, "WAIT_FOR_IMPROVED_WEATHER", "WAIT_FOR_IMPROVED_WEATHER"),
+
+ /**
+ * The '<em><b>GIVING PATH VEHICLES COMING FROM BEHIND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_VEHICLES_COMING_FROM_BEHIND_VALUE
+ * @generated
+ * @ordered
+ */
+ GIVING_PATH_VEHICLES_COMING_FROM_BEHIND(7, "GIVING_PATH_VEHICLES_COMING_FROM_BEHIND", "GIVING_PATH_VEHICLES_COMING_FROM_BEHIND"),
+
+ /**
+ * The '<em><b>FOLLOW DIVERSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION_VALUE
+ * @generated
+ * @ordered
+ */
+ FOLLOW_DIVERSION(8, "FOLLOW_DIVERSION", "FOLLOW_DIVERSION"),
+
+ /**
+ * The '<em><b>NO DIVERSION TO RECOMMEND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_DIVERSION_TO_RECOMMEND_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_DIVERSION_TO_RECOMMEND(9, "NO_DIVERSION_TO_RECOMMEND", "NO_DIVERSION_TO_RECOMMEND"),
+
+ /**
+ * The '<em><b>DO NOT DIVERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_DIVERT_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_DIVERT(10, "DO_NOT_DIVERT", "DO_NOT_DIVERT"),
+
+ /**
+ * The '<em><b>FOLLOW POLICE INSTRUCTIONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_POLICE_INSTRUCTIONS_VALUE
+ * @generated
+ * @ordered
+ */
+ FOLLOW_POLICE_INSTRUCTIONS(11, "FOLLOW_POLICE_INSTRUCTIONS", "FOLLOW_POLICE_INSTRUCTIONS"),
+
+ /**
+ * The '<em><b>AVOID THE AREA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AVOID_THE_AREA_VALUE
+ * @generated
+ * @ordered
+ */
+ AVOID_THE_AREA(12, "AVOID_THE_AREA", "AVOID_THE_AREA"),
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY(13, "DRIVE_CAREFULLY", "DRIVE_CAREFULLY"),
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_LEAVE_YOUR_VEHICLE(14, "DO_NOT_LEAVE_YOUR_VEHICLE", "DO_NOT_LEAVE_YOUR_VEHICLE"),
+
+ /**
+ * The '<em><b>SWITCH ON RADIO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SWITCH_ON_RADIO_VALUE
+ * @generated
+ * @ordered
+ */
+ SWITCH_ON_RADIO(15, "SWITCH_ON_RADIO", "SWITCH_ON_RADIO"),
+
+ /**
+ * The '<em><b>USE TOLL LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_TOLL_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_TOLL_LANES(16, "USE_TOLL_LANES", "USE_TOLL_LANES"),
+
+ /**
+ * The '<em><b>WAIT FOR CONVOI</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_CONVOI_VALUE
+ * @generated
+ * @ordered
+ */
+ WAIT_FOR_CONVOI(17, "WAIT_FOR_CONVOI", "WAIT_FOR_CONVOI"),
+
+ /**
+ * The '<em><b>UNDECODABLE ADVICE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_ADVICE_VALUE
+ * @generated
+ * @ordered
+ */
+ UNDECODABLE_ADVICE(255, "UNDECODABLE_ADVICE", "UNDECODABLE_ADVICE");
+
+ /**
+ * The '<em><b>DRIVE TO NEXT AVAILABLE PARKING PLACE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE TO NEXT AVAILABLE PARKING PLACE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE_VALUE = 1;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_VALUE = 2;
+
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVING NOT ALLOWED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVING_NOT_ALLOWED_VALUE = 3;
+
+ /**
+ * The '<em><b>USE HARD SHOULDER AS LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE HARD SHOULDER AS LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_HARD_SHOULDER_AS_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_HARD_SHOULDER_AS_LANE_VALUE = 4;
+
+ /**
+ * The '<em><b>WAIT FOR POLICE PATROL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAIT FOR POLICE PATROL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_POLICE_PATROL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAIT_FOR_POLICE_PATROL_VALUE = 5;
+
+ /**
+ * The '<em><b>WAIT FOR IMPROVED WEATHER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAIT FOR IMPROVED WEATHER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_IMPROVED_WEATHER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAIT_FOR_IMPROVED_WEATHER_VALUE = 6;
+
+ /**
+ * The '<em><b>GIVING PATH VEHICLES COMING FROM BEHIND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GIVING PATH VEHICLES COMING FROM BEHIND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_VEHICLES_COMING_FROM_BEHIND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GIVING_PATH_VEHICLES_COMING_FROM_BEHIND_VALUE = 7;
+
+ /**
+ * The '<em><b>FOLLOW DIVERSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOLLOW DIVERSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOLLOW_DIVERSION_VALUE = 8;
+
+ /**
+ * The '<em><b>NO DIVERSION TO RECOMMEND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO DIVERSION TO RECOMMEND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_DIVERSION_TO_RECOMMEND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_DIVERSION_TO_RECOMMEND_VALUE = 9;
+
+ /**
+ * The '<em><b>DO NOT DIVERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT DIVERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_DIVERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_DIVERT_VALUE = 10;
+
+ /**
+ * The '<em><b>FOLLOW POLICE INSTRUCTIONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOLLOW POLICE INSTRUCTIONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_POLICE_INSTRUCTIONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOLLOW_POLICE_INSTRUCTIONS_VALUE = 11;
+
+ /**
+ * The '<em><b>AVOID THE AREA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AVOID THE AREA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AVOID_THE_AREA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AVOID_THE_AREA_VALUE = 12;
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_VALUE = 13;
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_LEAVE_YOUR_VEHICLE_VALUE = 14;
+
+ /**
+ * The '<em><b>SWITCH ON RADIO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SWITCH ON RADIO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SWITCH_ON_RADIO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SWITCH_ON_RADIO_VALUE = 15;
+
+ /**
+ * The '<em><b>USE TOLL LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE TOLL LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_TOLL_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_TOLL_LANES_VALUE = 16;
+
+ /**
+ * The '<em><b>WAIT FOR CONVOI</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAIT FOR CONVOI</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAIT_FOR_CONVOI
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAIT_FOR_CONVOI_VALUE = 17;
+
+ /**
+ * The '<em><b>UNDECODABLE ADVICE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNDECODABLE ADVICE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_ADVICE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNDECODABLE_ADVICE_VALUE = 255;
+
+ /**
+ * An array of all the '<em><b>Advice Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AdviceCode[] VALUES_ARRAY =
+ new AdviceCode[] {
+ DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE,
+ OVERTAKING_NOT_ALLOWED,
+ DRIVING_NOT_ALLOWED,
+ USE_HARD_SHOULDER_AS_LANE,
+ WAIT_FOR_POLICE_PATROL,
+ WAIT_FOR_IMPROVED_WEATHER,
+ GIVING_PATH_VEHICLES_COMING_FROM_BEHIND,
+ FOLLOW_DIVERSION,
+ NO_DIVERSION_TO_RECOMMEND,
+ DO_NOT_DIVERT,
+ FOLLOW_POLICE_INSTRUCTIONS,
+ AVOID_THE_AREA,
+ DRIVE_CAREFULLY,
+ DO_NOT_LEAVE_YOUR_VEHICLE,
+ SWITCH_ON_RADIO,
+ USE_TOLL_LANES,
+ WAIT_FOR_CONVOI,
+ UNDECODABLE_ADVICE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Advice Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AdviceCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Advice Code</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AdviceCode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AdviceCode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Advice Code</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AdviceCode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AdviceCode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Advice Code</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AdviceCode get(int value) {
+ switch (value) {
+ case DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE_VALUE: return DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE;
+ case OVERTAKING_NOT_ALLOWED_VALUE: return OVERTAKING_NOT_ALLOWED;
+ case DRIVING_NOT_ALLOWED_VALUE: return DRIVING_NOT_ALLOWED;
+ case USE_HARD_SHOULDER_AS_LANE_VALUE: return USE_HARD_SHOULDER_AS_LANE;
+ case WAIT_FOR_POLICE_PATROL_VALUE: return WAIT_FOR_POLICE_PATROL;
+ case WAIT_FOR_IMPROVED_WEATHER_VALUE: return WAIT_FOR_IMPROVED_WEATHER;
+ case GIVING_PATH_VEHICLES_COMING_FROM_BEHIND_VALUE: return GIVING_PATH_VEHICLES_COMING_FROM_BEHIND;
+ case FOLLOW_DIVERSION_VALUE: return FOLLOW_DIVERSION;
+ case NO_DIVERSION_TO_RECOMMEND_VALUE: return NO_DIVERSION_TO_RECOMMEND;
+ case DO_NOT_DIVERT_VALUE: return DO_NOT_DIVERT;
+ case FOLLOW_POLICE_INSTRUCTIONS_VALUE: return FOLLOW_POLICE_INSTRUCTIONS;
+ case AVOID_THE_AREA_VALUE: return AVOID_THE_AREA;
+ case DRIVE_CAREFULLY_VALUE: return DRIVE_CAREFULLY;
+ case DO_NOT_LEAVE_YOUR_VEHICLE_VALUE: return DO_NOT_LEAVE_YOUR_VEHICLE;
+ case SWITCH_ON_RADIO_VALUE: return SWITCH_ON_RADIO;
+ case USE_TOLL_LANES_VALUE: return USE_TOLL_LANES;
+ case WAIT_FOR_CONVOI_VALUE: return WAIT_FOR_CONVOI;
+ case UNDECODABLE_ADVICE_VALUE: return UNDECODABLE_ADVICE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AdviceCode(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //AdviceCode
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AnimalsOnRoadway.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AnimalsOnRoadway.java
new file mode 100755
index 0000000..1d0bf3e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/AnimalsOnRoadway.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Animals On Roadway</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getAnimalsOnRoadway()
+ * @model
+ * @generated
+ */
+public enum AnimalsOnRoadway implements Enumerator {
+ /**
+ * The '<em><b>WILD ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WILD_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ WILD_ANIMALS(1, "WILD_ANIMALS", "WILD_ANIMALS"),
+
+ /**
+ * The '<em><b>HERD OF ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HERD_OF_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ HERD_OF_ANIMALS(2, "HERD_OF_ANIMALS", "HERD_OF_ANIMALS"),
+
+ /**
+ * The '<em><b>SMALL ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SMALL_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ SMALL_ANIMALS(3, "SMALL_ANIMALS", "SMALL_ANIMALS"),
+
+ /**
+ * The '<em><b>LARGE ANIMALS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LARGE_ANIMALS_VALUE
+ * @generated
+ * @ordered
+ */
+ LARGE_ANIMALS(4, "LARGE_ANIMALS", "LARGE_ANIMALS");
+
+ /**
+ * The '<em><b>WILD ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WILD ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WILD_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WILD_ANIMALS_VALUE = 1;
+
+ /**
+ * The '<em><b>HERD OF ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HERD OF ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HERD_OF_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HERD_OF_ANIMALS_VALUE = 2;
+
+ /**
+ * The '<em><b>SMALL ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SMALL ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SMALL_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SMALL_ANIMALS_VALUE = 3;
+
+ /**
+ * The '<em><b>LARGE ANIMALS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LARGE ANIMALS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LARGE_ANIMALS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LARGE_ANIMALS_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Animals On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AnimalsOnRoadway[] VALUES_ARRAY =
+ new AnimalsOnRoadway[] {
+ WILD_ANIMALS,
+ HERD_OF_ANIMALS,
+ SMALL_ANIMALS,
+ LARGE_ANIMALS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Animals On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<AnimalsOnRoadway> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Animals On Roadway</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimalsOnRoadway get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AnimalsOnRoadway result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Animals On Roadway</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimalsOnRoadway getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AnimalsOnRoadway result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Animals On Roadway</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AnimalsOnRoadway get(int value) {
+ switch (value) {
+ case WILD_ANIMALS_VALUE: return WILD_ANIMALS;
+ case HERD_OF_ANIMALS_VALUE: return HERD_OF_ANIMALS;
+ case SMALL_ANIMALS_VALUE: return SMALL_ANIMALS;
+ case LARGE_ANIMALS_VALUE: return LARGE_ANIMALS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AnimalsOnRoadway(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //AnimalsOnRoadway
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/BrokenDownVehicles.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/BrokenDownVehicles.java
new file mode 100755
index 0000000..6b99238
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/BrokenDownVehicles.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Broken Down Vehicles</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getBrokenDownVehicles()
+ * @model
+ * @generated
+ */
+public enum BrokenDownVehicles implements Enumerator {
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLE BURNING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLE_BURNING_VALUE
+ * @generated
+ * @ordered
+ */
+ BROKEN_DOWN_VEHICLE_BURNING(1, "BROKEN_DOWN_VEHICLE_BURNING", "BROKEN_DOWN_VEHICLE_BURNING"),
+
+ /**
+ * The '<em><b>BROKEN DOWN UNLIT VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_UNLIT_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ BROKEN_DOWN_UNLIT_VEHICLE(2, "BROKEN_DOWN_UNLIT_VEHICLE", "BROKEN_DOWN_UNLIT_VEHICLE");
+
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLE BURNING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BROKEN DOWN VEHICLE BURNING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLE_BURNING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BROKEN_DOWN_VEHICLE_BURNING_VALUE = 1;
+
+ /**
+ * The '<em><b>BROKEN DOWN UNLIT VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BROKEN DOWN UNLIT VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_UNLIT_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BROKEN_DOWN_UNLIT_VEHICLE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Broken Down Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BrokenDownVehicles[] VALUES_ARRAY =
+ new BrokenDownVehicles[] {
+ BROKEN_DOWN_VEHICLE_BURNING,
+ BROKEN_DOWN_UNLIT_VEHICLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Broken Down Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<BrokenDownVehicles> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Broken Down Vehicles</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BrokenDownVehicles get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BrokenDownVehicles result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Broken Down Vehicles</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BrokenDownVehicles getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BrokenDownVehicles result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Broken Down Vehicles</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BrokenDownVehicles get(int value) {
+ switch (value) {
+ case BROKEN_DOWN_VEHICLE_BURNING_VALUE: return BROKEN_DOWN_VEHICLE_BURNING;
+ case BROKEN_DOWN_UNLIT_VEHICLE_VALUE: return BROKEN_DOWN_UNLIT_VEHICLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private BrokenDownVehicles(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //BrokenDownVehicles
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Cause.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Cause.java
new file mode 100755
index 0000000..a26ed5b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Cause.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Cause#getMainCause <em>Main Cause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getCause()
+ * @model
+ * @generated
+ */
+public interface Cause extends EObject {
+ /**
+ * Returns the value of the '<em><b>Main Cause</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.CauseCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Cause</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Cause</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.CauseCode
+ * @see #isSetMainCause()
+ * @see #unsetMainCause()
+ * @see #setMainCause(CauseCode)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getCause_MainCause()
+ * @model unsettable="true"
+ * @generated
+ */
+ CauseCode getMainCause();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Cause#getMainCause <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Cause</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.CauseCode
+ * @see #isSetMainCause()
+ * @see #unsetMainCause()
+ * @see #getMainCause()
+ * @generated
+ */
+ void setMainCause(CauseCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Cause#getMainCause <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMainCause()
+ * @see #getMainCause()
+ * @see #setMainCause(CauseCode)
+ * @generated
+ */
+ void unsetMainCause();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Cause#getMainCause <em>Main Cause</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Main Cause</em>' attribute is set.
+ * @see #unsetMainCause()
+ * @see #getMainCause()
+ * @see #setMainCause(CauseCode)
+ * @generated
+ */
+ boolean isSetMainCause();
+
+} // Cause
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/CauseCode.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/CauseCode.java
new file mode 100755
index 0000000..00e6bff
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/CauseCode.java
@@ -0,0 +1,1046 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cause Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getCauseCode()
+ * @model
+ * @generated
+ */
+public enum CauseCode implements Enumerator {
+ /**
+ * The '<em><b>TRAFFIC CONGESTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONGESTION_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_CONGESTION(1, "TRAFFIC_CONGESTION", "TRAFFIC_CONGESTION"),
+
+ /**
+ * The '<em><b>ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ ACCIDENT(2, "ACCIDENT", "ACCIDENT"),
+
+ /**
+ * The '<em><b>ROADWORKS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROADWORKS_VALUE
+ * @generated
+ * @ordered
+ */
+ ROADWORKS(3, "ROADWORKS", "ROADWORKS"),
+
+ /**
+ * The '<em><b>NARROW LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NARROW_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ NARROW_LANES(4, "NARROW_LANES", "NARROW_LANES"),
+
+ /**
+ * The '<em><b>IMPASSIBILITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMPASSIBILITY_VALUE
+ * @generated
+ * @ordered
+ */
+ IMPASSIBILITY(5, "IMPASSIBILITY", "IMPASSIBILITY"),
+
+ /**
+ * The '<em><b>SLIPPERY ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIPPERY_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIPPERY_ROAD(6, "SLIPPERY_ROAD", "SLIPPERY_ROAD"),
+
+ /**
+ * The '<em><b>AQUAPLANING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AQUAPLANING_VALUE
+ * @generated
+ * @ordered
+ */
+ AQUAPLANING(7, "AQUAPLANING", "AQUAPLANING"),
+
+ /**
+ * The '<em><b>FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ FIRE(8, "FIRE", "FIRE"),
+
+ /**
+ * The '<em><b>HAZARDOUS DRIVING CONDITIONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HAZARDOUS_DRIVING_CONDITIONS_VALUE
+ * @generated
+ * @ordered
+ */
+ HAZARDOUS_DRIVING_CONDITIONS(9, "HAZARDOUS_DRIVING_CONDITIONS", "HAZARDOUS_DRIVING_CONDITIONS"),
+
+ /**
+ * The '<em><b>OBJECTS ON THE ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OBJECTS_ON_THE_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ OBJECTS_ON_THE_ROAD(10, "OBJECTS_ON_THE_ROAD", "OBJECTS_ON_THE_ROAD"),
+
+ /**
+ * The '<em><b>ANIMALS ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ANIMALS_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ ANIMALS_ON_ROADWAY(11, "ANIMALS_ON_ROADWAY", "ANIMALS_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>PEOPLE ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PEOPLE_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ PEOPLE_ON_ROADWAY(12, "PEOPLE_ON_ROADWAY", "PEOPLE_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ BROKEN_DOWN_VEHICLES(13, "BROKEN_DOWN_VEHICLES", "BROKEN_DOWN_VEHICLES"),
+
+ /**
+ * The '<em><b>VEHICLE ON WRONG CARRIAGEWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_ON_WRONG_CARRIAGEWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_ON_WRONG_CARRIAGEWAY(14, "VEHICLE_ON_WRONG_CARRIAGEWAY", "VEHICLE_ON_WRONG_CARRIAGEWAY"),
+
+ /**
+ * The '<em><b>RESCUE AND RECOVERY WORK IN PROGRESS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESCUE_AND_RECOVERY_WORK_IN_PROGRESS_VALUE
+ * @generated
+ * @ordered
+ */
+ RESCUE_AND_RECOVERY_WORK_IN_PROGRESS(15, "RESCUE_AND_RECOVERY_WORK_IN_PROGRESS", "RESCUE_AND_RECOVERY_WORK_IN_PROGRESS"),
+
+ /**
+ * The '<em><b>REGULATORY MEASURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REGULATORY_MEASURE_VALUE
+ * @generated
+ * @ordered
+ */
+ REGULATORY_MEASURE(16, "REGULATORY_MEASURE", "REGULATORY_MEASURE"),
+
+ /**
+ * The '<em><b>EXTREME WEATHER CONDITIONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EXTREME_WEATHER_CONDITIONS_VALUE
+ * @generated
+ * @ordered
+ */
+ EXTREME_WEATHER_CONDITIONS(17, "EXTREME_WEATHER_CONDITIONS", "EXTREME_WEATHER_CONDITIONS"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED(18, "VISIBILITY_REDUCED", "VISIBILITY_REDUCED"),
+
+ /**
+ * The '<em><b>PRECIPITATION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PRECIPITATION_VALUE
+ * @generated
+ * @ordered
+ */
+ PRECIPITATION(19, "PRECIPITATION", "PRECIPITATION"),
+
+ /**
+ * The '<em><b>RECKLESS PERSONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_PERSONS_VALUE
+ * @generated
+ * @ordered
+ */
+ RECKLESS_PERSONS(20, "RECKLESS_PERSONS", "RECKLESS_PERSONS"),
+
+ /**
+ * The '<em><b>OVER HEIGHT WARNING SYSTEM TRIGGERED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED_VALUE
+ * @generated
+ * @ordered
+ */
+ OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED(21, "OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED", "OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED"),
+
+ /**
+ * The '<em><b>TRAFFIC REGULATIONS CHANGED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_REGULATIONS_CHANGED_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_REGULATIONS_CHANGED(22, "TRAFFIC_REGULATIONS_CHANGED", "TRAFFIC_REGULATIONS_CHANGED"),
+
+ /**
+ * The '<em><b>MAJOR EVENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAJOR_EVENT_VALUE
+ * @generated
+ * @ordered
+ */
+ MAJOR_EVENT(23, "MAJOR_EVENT", "MAJOR_EVENT"),
+
+ /**
+ * The '<em><b>SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_NOT_OPERATING(24, "SERVICE_NOT_OPERATING", "SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>SERVICE NOT USEABLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_USEABLE_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_NOT_USEABLE(25, "SERVICE_NOT_USEABLE", "SERVICE_NOT_USEABLE"),
+
+ /**
+ * The '<em><b>SLOW MOVING VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_MOVING_VEHICLES(26, "SLOW_MOVING_VEHICLES", "SLOW_MOVING_VEHICLES"),
+
+ /**
+ * The '<em><b>DANGEROUS END OF QUEUE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGEROUS_END_OF_QUEUE_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGEROUS_END_OF_QUEUE(27, "DANGEROUS_END_OF_QUEUE", "DANGEROUS_END_OF_QUEUE"),
+
+ /**
+ * The '<em><b>RISK OF FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RISK_OF_FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ RISK_OF_FIRE(28, "RISK_OF_FIRE", "RISK_OF_FIRE"),
+
+ /**
+ * The '<em><b>TIME DELAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY(29, "TIME_DELAY", "TIME_DELAY"),
+
+ /**
+ * The '<em><b>POLICE CHECKPOINT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #POLICE_CHECKPOINT_VALUE
+ * @generated
+ * @ordered
+ */
+ POLICE_CHECKPOINT(30, "POLICE_CHECKPOINT", "POLICE_CHECKPOINT"),
+
+ /**
+ * The '<em><b>MALFUNCTIONING ROADSIDE EQUIPMENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MALFUNCTIONING_ROADSIDE_EQUIPMENT_VALUE
+ * @generated
+ * @ordered
+ */
+ MALFUNCTIONING_ROADSIDE_EQUIPMENT(31, "MALFUNCTIONING_ROADSIDE_EQUIPMENT", "MALFUNCTIONING_ROADSIDE_EQUIPMENT"), /**
+ * The '<em><b>TEST MESSAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TEST_MESSAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ TEST_MESSAGE(100, "TEST_MESSAGE", "TEST_MESSAGE"), /**
+ * The '<em><b>UNDECODABLE CAUSE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_CAUSE_VALUE
+ * @generated
+ * @ordered
+ */
+ UNDECODABLE_CAUSE(255, "UNDECODABLE_CAUSE", "UNDECODABLE_CAUSE");
+
+ /**
+ * The '<em><b>TRAFFIC CONGESTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC CONGESTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONGESTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_CONGESTION_VALUE = 1;
+
+ /**
+ * The '<em><b>ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ACCIDENT_VALUE = 2;
+
+ /**
+ * The '<em><b>ROADWORKS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROADWORKS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROADWORKS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROADWORKS_VALUE = 3;
+
+ /**
+ * The '<em><b>NARROW LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NARROW LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NARROW_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NARROW_LANES_VALUE = 4;
+
+ /**
+ * The '<em><b>IMPASSIBILITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IMPASSIBILITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IMPASSIBILITY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IMPASSIBILITY_VALUE = 5;
+
+ /**
+ * The '<em><b>SLIPPERY ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIPPERY ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIPPERY_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIPPERY_ROAD_VALUE = 6;
+
+ /**
+ * The '<em><b>AQUAPLANING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AQUAPLANING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AQUAPLANING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AQUAPLANING_VALUE = 7;
+
+ /**
+ * The '<em><b>FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FIRE_VALUE = 8;
+
+ /**
+ * The '<em><b>HAZARDOUS DRIVING CONDITIONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HAZARDOUS DRIVING CONDITIONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HAZARDOUS_DRIVING_CONDITIONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HAZARDOUS_DRIVING_CONDITIONS_VALUE = 9;
+
+ /**
+ * The '<em><b>OBJECTS ON THE ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OBJECTS ON THE ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OBJECTS_ON_THE_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OBJECTS_ON_THE_ROAD_VALUE = 10;
+
+ /**
+ * The '<em><b>ANIMALS ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ANIMALS ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ANIMALS_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ANIMALS_ON_ROADWAY_VALUE = 11;
+
+ /**
+ * The '<em><b>PEOPLE ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PEOPLE ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PEOPLE_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PEOPLE_ON_ROADWAY_VALUE = 12;
+
+ /**
+ * The '<em><b>BROKEN DOWN VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BROKEN DOWN VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BROKEN_DOWN_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BROKEN_DOWN_VEHICLES_VALUE = 13;
+
+ /**
+ * The '<em><b>VEHICLE ON WRONG CARRIAGEWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE ON WRONG CARRIAGEWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_ON_WRONG_CARRIAGEWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_ON_WRONG_CARRIAGEWAY_VALUE = 14;
+
+ /**
+ * The '<em><b>RESCUE AND RECOVERY WORK IN PROGRESS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESCUE AND RECOVERY WORK IN PROGRESS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESCUE_AND_RECOVERY_WORK_IN_PROGRESS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESCUE_AND_RECOVERY_WORK_IN_PROGRESS_VALUE = 15;
+
+ /**
+ * The '<em><b>REGULATORY MEASURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REGULATORY MEASURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REGULATORY_MEASURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REGULATORY_MEASURE_VALUE = 16;
+
+ /**
+ * The '<em><b>EXTREME WEATHER CONDITIONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EXTREME WEATHER CONDITIONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EXTREME_WEATHER_CONDITIONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EXTREME_WEATHER_CONDITIONS_VALUE = 17;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_VALUE = 18;
+
+ /**
+ * The '<em><b>PRECIPITATION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PRECIPITATION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PRECIPITATION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PRECIPITATION_VALUE = 19;
+
+ /**
+ * The '<em><b>RECKLESS PERSONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RECKLESS PERSONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_PERSONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RECKLESS_PERSONS_VALUE = 20;
+
+ /**
+ * The '<em><b>OVER HEIGHT WARNING SYSTEM TRIGGERED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVER HEIGHT WARNING SYSTEM TRIGGERED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED_VALUE = 21;
+
+ /**
+ * The '<em><b>TRAFFIC REGULATIONS CHANGED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC REGULATIONS CHANGED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_REGULATIONS_CHANGED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_REGULATIONS_CHANGED_VALUE = 22;
+
+ /**
+ * The '<em><b>MAJOR EVENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAJOR EVENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAJOR_EVENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MAJOR_EVENT_VALUE = 23;
+
+ /**
+ * The '<em><b>SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_NOT_OPERATING_VALUE = 24;
+
+ /**
+ * The '<em><b>SERVICE NOT USEABLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE NOT USEABLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_NOT_USEABLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_NOT_USEABLE_VALUE = 25;
+
+ /**
+ * The '<em><b>SLOW MOVING VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW MOVING VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_MOVING_VEHICLES_VALUE = 26;
+
+ /**
+ * The '<em><b>DANGEROUS END OF QUEUE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGEROUS END OF QUEUE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGEROUS_END_OF_QUEUE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGEROUS_END_OF_QUEUE_VALUE = 27;
+
+ /**
+ * The '<em><b>RISK OF FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RISK OF FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RISK_OF_FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RISK_OF_FIRE_VALUE = 28;
+
+ /**
+ * The '<em><b>TIME DELAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_VALUE = 29;
+
+ /**
+ * The '<em><b>POLICE CHECKPOINT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>POLICE CHECKPOINT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #POLICE_CHECKPOINT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int POLICE_CHECKPOINT_VALUE = 30;
+
+ /**
+ * The '<em><b>MALFUNCTIONING ROADSIDE EQUIPMENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MALFUNCTIONING ROADSIDE EQUIPMENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MALFUNCTIONING_ROADSIDE_EQUIPMENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MALFUNCTIONING_ROADSIDE_EQUIPMENT_VALUE = 31;
+
+ /**
+ * The '<em><b>TEST MESSAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TEST MESSAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TEST_MESSAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TEST_MESSAGE_VALUE = 100;
+
+ /**
+ * The '<em><b>UNDECODABLE CAUSE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNDECODABLE CAUSE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_CAUSE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNDECODABLE_CAUSE_VALUE = 255;
+
+ /**
+ * An array of all the '<em><b>Cause Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CauseCode[] VALUES_ARRAY =
+ new CauseCode[] {
+ TRAFFIC_CONGESTION,
+ ACCIDENT,
+ ROADWORKS,
+ NARROW_LANES,
+ IMPASSIBILITY,
+ SLIPPERY_ROAD,
+ AQUAPLANING,
+ FIRE,
+ HAZARDOUS_DRIVING_CONDITIONS,
+ OBJECTS_ON_THE_ROAD,
+ ANIMALS_ON_ROADWAY,
+ PEOPLE_ON_ROADWAY,
+ BROKEN_DOWN_VEHICLES,
+ VEHICLE_ON_WRONG_CARRIAGEWAY,
+ RESCUE_AND_RECOVERY_WORK_IN_PROGRESS,
+ REGULATORY_MEASURE,
+ EXTREME_WEATHER_CONDITIONS,
+ VISIBILITY_REDUCED,
+ PRECIPITATION,
+ RECKLESS_PERSONS,
+ OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED,
+ TRAFFIC_REGULATIONS_CHANGED,
+ MAJOR_EVENT,
+ SERVICE_NOT_OPERATING,
+ SERVICE_NOT_USEABLE,
+ SLOW_MOVING_VEHICLES,
+ DANGEROUS_END_OF_QUEUE,
+ RISK_OF_FIRE,
+ TIME_DELAY,
+ POLICE_CHECKPOINT,
+ MALFUNCTIONING_ROADSIDE_EQUIPMENT,
+ TEST_MESSAGE,
+ UNDECODABLE_CAUSE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Cause Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<CauseCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Cause Code</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CauseCode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CauseCode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cause Code</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CauseCode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CauseCode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cause Code</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CauseCode get(int value) {
+ switch (value) {
+ case TRAFFIC_CONGESTION_VALUE: return TRAFFIC_CONGESTION;
+ case ACCIDENT_VALUE: return ACCIDENT;
+ case ROADWORKS_VALUE: return ROADWORKS;
+ case NARROW_LANES_VALUE: return NARROW_LANES;
+ case IMPASSIBILITY_VALUE: return IMPASSIBILITY;
+ case SLIPPERY_ROAD_VALUE: return SLIPPERY_ROAD;
+ case AQUAPLANING_VALUE: return AQUAPLANING;
+ case FIRE_VALUE: return FIRE;
+ case HAZARDOUS_DRIVING_CONDITIONS_VALUE: return HAZARDOUS_DRIVING_CONDITIONS;
+ case OBJECTS_ON_THE_ROAD_VALUE: return OBJECTS_ON_THE_ROAD;
+ case ANIMALS_ON_ROADWAY_VALUE: return ANIMALS_ON_ROADWAY;
+ case PEOPLE_ON_ROADWAY_VALUE: return PEOPLE_ON_ROADWAY;
+ case BROKEN_DOWN_VEHICLES_VALUE: return BROKEN_DOWN_VEHICLES;
+ case VEHICLE_ON_WRONG_CARRIAGEWAY_VALUE: return VEHICLE_ON_WRONG_CARRIAGEWAY;
+ case RESCUE_AND_RECOVERY_WORK_IN_PROGRESS_VALUE: return RESCUE_AND_RECOVERY_WORK_IN_PROGRESS;
+ case REGULATORY_MEASURE_VALUE: return REGULATORY_MEASURE;
+ case EXTREME_WEATHER_CONDITIONS_VALUE: return EXTREME_WEATHER_CONDITIONS;
+ case VISIBILITY_REDUCED_VALUE: return VISIBILITY_REDUCED;
+ case PRECIPITATION_VALUE: return PRECIPITATION;
+ case RECKLESS_PERSONS_VALUE: return RECKLESS_PERSONS;
+ case OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED_VALUE: return OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED;
+ case TRAFFIC_REGULATIONS_CHANGED_VALUE: return TRAFFIC_REGULATIONS_CHANGED;
+ case MAJOR_EVENT_VALUE: return MAJOR_EVENT;
+ case SERVICE_NOT_OPERATING_VALUE: return SERVICE_NOT_OPERATING;
+ case SERVICE_NOT_USEABLE_VALUE: return SERVICE_NOT_USEABLE;
+ case SLOW_MOVING_VEHICLES_VALUE: return SLOW_MOVING_VEHICLES;
+ case DANGEROUS_END_OF_QUEUE_VALUE: return DANGEROUS_END_OF_QUEUE;
+ case RISK_OF_FIRE_VALUE: return RISK_OF_FIRE;
+ case TIME_DELAY_VALUE: return TIME_DELAY;
+ case POLICE_CHECKPOINT_VALUE: return POLICE_CHECKPOINT;
+ case MALFUNCTIONING_ROADSIDE_EQUIPMENT_VALUE: return MALFUNCTIONING_ROADSIDE_EQUIPMENT;
+ case TEST_MESSAGE_VALUE: return TEST_MESSAGE;
+ case UNDECODABLE_CAUSE_VALUE: return UNDECODABLE_CAUSE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private CauseCode(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //CauseCode
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DangerousEndOfQueue.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DangerousEndOfQueue.java
new file mode 100755
index 0000000..d05dfa3
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DangerousEndOfQueue.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Dangerous End Of Queue</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDangerousEndOfQueue()
+ * @model
+ * @generated
+ */
+public enum DangerousEndOfQueue implements Enumerator {
+ /**
+ * The '<em><b>SUDDEN END OF QUEUE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUDDEN_END_OF_QUEUE_VALUE
+ * @generated
+ * @ordered
+ */
+ SUDDEN_END_OF_QUEUE(1, "SUDDEN_END_OF_QUEUE", "SUDDEN_END_OF_QUEUE"),
+
+ /**
+ * The '<em><b>QUEUE OVER HILL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUE_OVER_HILL_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUE_OVER_HILL(2, "QUEUE_OVER_HILL", "QUEUE_OVER_HILL"),
+
+ /**
+ * The '<em><b>QUEUE AROUND BEND</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUE_AROUND_BEND_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUE_AROUND_BEND(3, "QUEUE_AROUND_BEND", "QUEUE_AROUND_BEND"),
+
+ /**
+ * The '<em><b>QUEUE IN TUNNEL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUE_IN_TUNNEL_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUE_IN_TUNNEL(4, "QUEUE_IN_TUNNEL", "QUEUE_IN_TUNNEL");
+
+ /**
+ * The '<em><b>SUDDEN END OF QUEUE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUDDEN END OF QUEUE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUDDEN_END_OF_QUEUE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SUDDEN_END_OF_QUEUE_VALUE = 1;
+
+ /**
+ * The '<em><b>QUEUE OVER HILL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUE OVER HILL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUE_OVER_HILL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUE_OVER_HILL_VALUE = 2;
+
+ /**
+ * The '<em><b>QUEUE AROUND BEND</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUE AROUND BEND</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUE_AROUND_BEND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUE_AROUND_BEND_VALUE = 3;
+
+ /**
+ * The '<em><b>QUEUE IN TUNNEL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUE IN TUNNEL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUE_IN_TUNNEL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUE_IN_TUNNEL_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Dangerous End Of Queue</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DangerousEndOfQueue[] VALUES_ARRAY =
+ new DangerousEndOfQueue[] {
+ SUDDEN_END_OF_QUEUE,
+ QUEUE_OVER_HILL,
+ QUEUE_AROUND_BEND,
+ QUEUE_IN_TUNNEL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Dangerous End Of Queue</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DangerousEndOfQueue> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Dangerous End Of Queue</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DangerousEndOfQueue get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DangerousEndOfQueue result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dangerous End Of Queue</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DangerousEndOfQueue getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DangerousEndOfQueue result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Dangerous End Of Queue</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DangerousEndOfQueue get(int value) {
+ switch (value) {
+ case SUDDEN_END_OF_QUEUE_VALUE: return SUDDEN_END_OF_QUEUE;
+ case QUEUE_OVER_HILL_VALUE: return QUEUE_OVER_HILL;
+ case QUEUE_AROUND_BEND_VALUE: return QUEUE_AROUND_BEND;
+ case QUEUE_IN_TUNNEL_VALUE: return QUEUE_IN_TUNNEL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DangerousEndOfQueue(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DangerousEndOfQueue
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DirectCause.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DirectCause.java
new file mode 100755
index 0000000..77082eb
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DirectCause.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Direct Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getWarningLevel <em>Warning Level</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getSubCause <em>Sub Cause</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLaneRestrictionType <em>Lane Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getNumberOfLanes <em>Number Of Lanes</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getCauseOffset <em>Cause Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause()
+ * @model
+ * @generated
+ */
+public interface DirectCause extends Cause {
+ /**
+ * Returns the value of the '<em><b>Warning Level</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.WarningLevel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Warning Level</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Warning Level</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.WarningLevel
+ * @see #isSetWarningLevel()
+ * @see #unsetWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_WarningLevel()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ WarningLevel getWarningLevel();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Warning Level</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.WarningLevel
+ * @see #isSetWarningLevel()
+ * @see #unsetWarningLevel()
+ * @see #getWarningLevel()
+ * @generated
+ */
+ void setWarningLevel(WarningLevel value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetWarningLevel()
+ * @see #getWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @generated
+ */
+ void unsetWarningLevel();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getWarningLevel <em>Warning Level</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Warning Level</em>' attribute is set.
+ * @see #unsetWarningLevel()
+ * @see #getWarningLevel()
+ * @see #setWarningLevel(WarningLevel)
+ * @generated
+ */
+ boolean isSetWarningLevel();
+
+ /**
+ * Returns the value of the '<em><b>Unverified Information</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unverified Information</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unverified Information</em>' attribute.
+ * @see #isSetUnverifiedInformation()
+ * @see #unsetUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_UnverifiedInformation()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ boolean isUnverifiedInformation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unverified Information</em>' attribute.
+ * @see #isSetUnverifiedInformation()
+ * @see #unsetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @generated
+ */
+ void setUnverifiedInformation(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @generated
+ */
+ void unsetUnverifiedInformation();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Unverified Information</em>' attribute is set.
+ * @see #unsetUnverifiedInformation()
+ * @see #isUnverifiedInformation()
+ * @see #setUnverifiedInformation(boolean)
+ * @generated
+ */
+ boolean isSetUnverifiedInformation();
+
+ /**
+ * Returns the value of the '<em><b>Sub Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sub Cause</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sub Cause</em>' attribute.
+ * @see #isSetSubCause()
+ * @see #unsetSubCause()
+ * @see #setSubCause(Object)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_SubCause()
+ * @model unsettable="true"
+ * @generated
+ */
+ Object getSubCause();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getSubCause <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sub Cause</em>' attribute.
+ * @see #isSetSubCause()
+ * @see #unsetSubCause()
+ * @see #getSubCause()
+ * @generated
+ */
+ void setSubCause(Object value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getSubCause <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSubCause()
+ * @see #getSubCause()
+ * @see #setSubCause(Object)
+ * @generated
+ */
+ void unsetSubCause();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getSubCause <em>Sub Cause</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sub Cause</em>' attribute is set.
+ * @see #unsetSubCause()
+ * @see #getSubCause()
+ * @see #setSubCause(Object)
+ * @generated
+ */
+ boolean isSetSubCause();
+
+ /**
+ * Returns the value of the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO: TEC change type to DistanceMetres
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_LengthAffected()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getLengthAffected();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @generated
+ */
+ void setLengthAffected(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ void unsetLengthAffected();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLengthAffected <em>Length Affected</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length Affected</em>' attribute is set.
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ boolean isSetLengthAffected();
+
+ /**
+ * Returns the value of the '<em><b>Lane Restriction Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lane Restriction Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lane Restriction Type</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType
+ * @see #isSetLaneRestrictionType()
+ * @see #unsetLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_LaneRestrictionType()
+ * @model unsettable="true"
+ * @generated
+ */
+ LaneRestrictionType getLaneRestrictionType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lane Restriction Type</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType
+ * @see #isSetLaneRestrictionType()
+ * @see #unsetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @generated
+ */
+ void setLaneRestrictionType(LaneRestrictionType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @generated
+ */
+ void unsetLaneRestrictionType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLaneRestrictionType <em>Lane Restriction Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Lane Restriction Type</em>' attribute is set.
+ * @see #unsetLaneRestrictionType()
+ * @see #getLaneRestrictionType()
+ * @see #setLaneRestrictionType(LaneRestrictionType)
+ * @generated
+ */
+ boolean isSetLaneRestrictionType();
+
+ /**
+ * Returns the value of the '<em><b>Number Of Lanes</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Lanes</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Lanes</em>' attribute.
+ * @see #isSetNumberOfLanes()
+ * @see #unsetNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_NumberOfLanes()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getNumberOfLanes();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getNumberOfLanes <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Lanes</em>' attribute.
+ * @see #isSetNumberOfLanes()
+ * @see #unsetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @generated
+ */
+ void setNumberOfLanes(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getNumberOfLanes <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @generated
+ */
+ void unsetNumberOfLanes();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getNumberOfLanes <em>Number Of Lanes</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Number Of Lanes</em>' attribute is set.
+ * @see #unsetNumberOfLanes()
+ * @see #getNumberOfLanes()
+ * @see #setNumberOfLanes(Integer)
+ * @generated
+ */
+ boolean isSetNumberOfLanes();
+
+ /**
+ * Returns the value of the '<em><b>Free Text</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Free Text</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Free Text</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_FreeText()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LocalisedShortString> getFreeText();
+
+ /**
+ * Returns the value of the '<em><b>Cause Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cause Offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cause Offset</em>' attribute.
+ * @see #isSetCauseOffset()
+ * @see #unsetCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDirectCause_CauseOffset()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getCauseOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cause Offset</em>' attribute.
+ * @see #isSetCauseOffset()
+ * @see #unsetCauseOffset()
+ * @see #getCauseOffset()
+ * @generated
+ */
+ void setCauseOffset(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCauseOffset()
+ * @see #getCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @generated
+ */
+ void unsetCauseOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getCauseOffset <em>Cause Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Cause Offset</em>' attribute is set.
+ * @see #unsetCauseOffset()
+ * @see #getCauseOffset()
+ * @see #setCauseOffset(Integer)
+ * @generated
+ */
+ boolean isSetCauseOffset();
+
+} // DirectCause
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DoNotLeaveYourVehicle.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DoNotLeaveYourVehicle.java
new file mode 100755
index 0000000..fbf40b1
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DoNotLeaveYourVehicle.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Do Not Leave Your Vehicle</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDoNotLeaveYourVehicle()
+ * @model
+ * @generated
+ */
+public enum DoNotLeaveYourVehicle implements Enumerator {
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_LEAVE_YOUR_VEHICLE(1, "DO_NOT_LEAVE_YOUR_VEHICLE", "DO_NOT_LEAVE_YOUR_VEHICLE"),
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE CLOSE WINDOWS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS(2, "DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS", "DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS");
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT LEAVE YOUR VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_LEAVE_YOUR_VEHICLE_VALUE = 1;
+
+ /**
+ * The '<em><b>DO NOT LEAVE YOUR VEHICLE CLOSE WINDOWS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT LEAVE YOUR VEHICLE CLOSE WINDOWS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Do Not Leave Your Vehicle</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DoNotLeaveYourVehicle[] VALUES_ARRAY =
+ new DoNotLeaveYourVehicle[] {
+ DO_NOT_LEAVE_YOUR_VEHICLE,
+ DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Do Not Leave Your Vehicle</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DoNotLeaveYourVehicle> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Do Not Leave Your Vehicle</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DoNotLeaveYourVehicle get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DoNotLeaveYourVehicle result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Do Not Leave Your Vehicle</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DoNotLeaveYourVehicle getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DoNotLeaveYourVehicle result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Do Not Leave Your Vehicle</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DoNotLeaveYourVehicle get(int value) {
+ switch (value) {
+ case DO_NOT_LEAVE_YOUR_VEHICLE_VALUE: return DO_NOT_LEAVE_YOUR_VEHICLE;
+ case DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS_VALUE: return DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DoNotLeaveYourVehicle(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DoNotLeaveYourVehicle
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DriveCarefully.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DriveCarefully.java
new file mode 100755
index 0000000..acfe825
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DriveCarefully.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Drive Carefully</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDriveCarefully()
+ * @model
+ * @generated
+ */
+public enum DriveCarefully implements Enumerator {
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON ENTRY SLIP ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD(1, "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD", "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD"),
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON EXIT SLIP ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD(2, "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD", "DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD"),
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY ICE BUILDUP ON CABLE STRUCTURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE(3, "DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE", "DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE");
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON ENTRY SLIP ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON ENTRY SLIP ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD_VALUE = 1;
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON EXIT SLIP ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY DANGEROUS SITUATION ON EXIT SLIP ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD_VALUE = 2;
+
+ /**
+ * The '<em><b>DRIVE CAREFULLY ICE BUILDUP ON CABLE STRUCTURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVE CAREFULLY ICE BUILDUP ON CABLE STRUCTURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Drive Carefully</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DriveCarefully[] VALUES_ARRAY =
+ new DriveCarefully[] {
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD,
+ DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD,
+ DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Drive Carefully</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DriveCarefully> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Drive Carefully</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DriveCarefully get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DriveCarefully result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Drive Carefully</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DriveCarefully getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DriveCarefully result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Drive Carefully</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DriveCarefully get(int value) {
+ switch (value) {
+ case DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD_VALUE: return DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD;
+ case DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD_VALUE: return DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD;
+ case DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE_VALUE: return DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DriveCarefully(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DriveCarefully
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DrivingNotAllowed.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DrivingNotAllowed.java
new file mode 100755
index 0000000..c5d0c7d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/DrivingNotAllowed.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Driving Not Allowed</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getDrivingNotAllowed()
+ * @model
+ * @generated
+ */
+public enum DrivingNotAllowed implements Enumerator {
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED TAKE NEXT POSSIBLE PLACE TO STOP VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE(1, "DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE", "DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE");
+
+ /**
+ * The '<em><b>DRIVING NOT ALLOWED TAKE NEXT POSSIBLE PLACE TO STOP VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DRIVING NOT ALLOWED TAKE NEXT POSSIBLE PLACE TO STOP VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Driving Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DrivingNotAllowed[] VALUES_ARRAY =
+ new DrivingNotAllowed[] {
+ DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Driving Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<DrivingNotAllowed> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Driving Not Allowed</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DrivingNotAllowed get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DrivingNotAllowed result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Driving Not Allowed</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DrivingNotAllowed getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DrivingNotAllowed result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Driving Not Allowed</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DrivingNotAllowed get(int value) {
+ switch (value) {
+ case DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE_VALUE: return DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DrivingNotAllowed(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //DrivingNotAllowed
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EffectCode.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EffectCode.java
new file mode 100755
index 0000000..19d395f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EffectCode.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Effect Code</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEffectCode()
+ * @model
+ * @generated
+ */
+public enum EffectCode implements Enumerator {
+ /**
+ * The '<em><b>TRAFFIC FLOW UNKNOWN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_FLOW_UNKNOWN_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_FLOW_UNKNOWN(1, "TRAFFIC_FLOW_UNKNOWN", "TRAFFIC_FLOW_UNKNOWN"),
+
+ /**
+ * The '<em><b>FREE TRAFFIC FLOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FREE_TRAFFIC_FLOW_VALUE
+ * @generated
+ * @ordered
+ */
+ FREE_TRAFFIC_FLOW(2, "FREE_TRAFFIC_FLOW", "FREE_TRAFFIC_FLOW"),
+
+ /**
+ * The '<em><b>HEAVY TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_TRAFFIC(3, "HEAVY_TRAFFIC", "HEAVY_TRAFFIC"),
+
+ /**
+ * The '<em><b>SLOW TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_TRAFFIC(4, "SLOW_TRAFFIC", "SLOW_TRAFFIC"),
+
+ /**
+ * The '<em><b>QUEUING TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #QUEUING_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ QUEUING_TRAFFIC(5, "QUEUING_TRAFFIC", "QUEUING_TRAFFIC"),
+
+ /**
+ * The '<em><b>STATIONARY TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STATIONARY_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ STATIONARY_TRAFFIC(6, "STATIONARY_TRAFFIC", "STATIONARY_TRAFFIC"),
+
+ /**
+ * The '<em><b>NO TRAFFIC FLOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_TRAFFIC_FLOW_VALUE
+ * @generated
+ * @ordered
+ */
+ NO_TRAFFIC_FLOW(7, "NO_TRAFFIC_FLOW", "NO_TRAFFIC_FLOW");
+
+ /**
+ * The '<em><b>TRAFFIC FLOW UNKNOWN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC FLOW UNKNOWN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_FLOW_UNKNOWN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_FLOW_UNKNOWN_VALUE = 1;
+
+ /**
+ * The '<em><b>FREE TRAFFIC FLOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FREE TRAFFIC FLOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FREE_TRAFFIC_FLOW
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FREE_TRAFFIC_FLOW_VALUE = 2;
+
+ /**
+ * The '<em><b>HEAVY TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_TRAFFIC_VALUE = 3;
+
+ /**
+ * The '<em><b>SLOW TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_TRAFFIC_VALUE = 4;
+
+ /**
+ * The '<em><b>QUEUING TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>QUEUING TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #QUEUING_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int QUEUING_TRAFFIC_VALUE = 5;
+
+ /**
+ * The '<em><b>STATIONARY TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STATIONARY TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STATIONARY_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STATIONARY_TRAFFIC_VALUE = 6;
+
+ /**
+ * The '<em><b>NO TRAFFIC FLOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO TRAFFIC FLOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_TRAFFIC_FLOW
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_TRAFFIC_FLOW_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Effect Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EffectCode[] VALUES_ARRAY =
+ new EffectCode[] {
+ TRAFFIC_FLOW_UNKNOWN,
+ FREE_TRAFFIC_FLOW,
+ HEAVY_TRAFFIC,
+ SLOW_TRAFFIC,
+ QUEUING_TRAFFIC,
+ STATIONARY_TRAFFIC,
+ NO_TRAFFIC_FLOW,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Effect Code</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<EffectCode> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Effect Code</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EffectCode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EffectCode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Effect Code</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EffectCode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EffectCode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Effect Code</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EffectCode get(int value) {
+ switch (value) {
+ case TRAFFIC_FLOW_UNKNOWN_VALUE: return TRAFFIC_FLOW_UNKNOWN;
+ case FREE_TRAFFIC_FLOW_VALUE: return FREE_TRAFFIC_FLOW;
+ case HEAVY_TRAFFIC_VALUE: return HEAVY_TRAFFIC;
+ case SLOW_TRAFFIC_VALUE: return SLOW_TRAFFIC;
+ case QUEUING_TRAFFIC_VALUE: return QUEUING_TRAFFIC;
+ case STATIONARY_TRAFFIC_VALUE: return STATIONARY_TRAFFIC;
+ case NO_TRAFFIC_FLOW_VALUE: return NO_TRAFFIC_FLOW;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EffectCode(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //EffectCode
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Event.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Event.java
new file mode 100755
index 0000000..5be2e49
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Event.java
@@ -0,0 +1,598 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Date;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getEffectCode <em>Effect Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStartTime <em>Start Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStopTime <em>Stop Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTendency <em>Tendency</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getDelay <em>Delay</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getSegmentSpeedLimit <em>Segment Speed Limit</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getCause <em>Cause</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAdvice <em>Advice</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getVehicleRestriction <em>Vehicle Restriction</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent()
+ * @model
+ * @generated
+ */
+public interface Event extends EObject {
+ /**
+ * Returns the value of the '<em><b>Effect Code</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.EffectCode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Effect Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Effect Code</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EffectCode
+ * @see #isSetEffectCode()
+ * @see #unsetEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_EffectCode()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ EffectCode getEffectCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getEffectCode <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Effect Code</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EffectCode
+ * @see #isSetEffectCode()
+ * @see #unsetEffectCode()
+ * @see #getEffectCode()
+ * @generated
+ */
+ void setEffectCode(EffectCode value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getEffectCode <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetEffectCode()
+ * @see #getEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @generated
+ */
+ void unsetEffectCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getEffectCode <em>Effect Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Effect Code</em>' attribute is set.
+ * @see #unsetEffectCode()
+ * @see #getEffectCode()
+ * @see #setEffectCode(EffectCode)
+ * @generated
+ */
+ boolean isSetEffectCode();
+
+ /**
+ * Returns the value of the '<em><b>Start Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Start Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO: TEC MODEL change type to TPEG DateTime
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Start Time</em>' attribute.
+ * @see #isSetStartTime()
+ * @see #unsetStartTime()
+ * @see #setStartTime(Date)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_StartTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getStartTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStartTime <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Start Time</em>' attribute.
+ * @see #isSetStartTime()
+ * @see #unsetStartTime()
+ * @see #getStartTime()
+ * @generated
+ */
+ void setStartTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStartTime <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStartTime()
+ * @see #getStartTime()
+ * @see #setStartTime(Date)
+ * @generated
+ */
+ void unsetStartTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStartTime <em>Start Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Start Time</em>' attribute is set.
+ * @see #unsetStartTime()
+ * @see #getStartTime()
+ * @see #setStartTime(Date)
+ * @generated
+ */
+ boolean isSetStartTime();
+
+ /**
+ * Returns the value of the '<em><b>Stop Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stop Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO: TEC MODEL change type to TPEG DateTime
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Stop Time</em>' attribute.
+ * @see #isSetStopTime()
+ * @see #unsetStopTime()
+ * @see #setStopTime(Date)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_StopTime()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getStopTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStopTime <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stop Time</em>' attribute.
+ * @see #isSetStopTime()
+ * @see #unsetStopTime()
+ * @see #getStopTime()
+ * @generated
+ */
+ void setStopTime(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStopTime <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetStopTime()
+ * @see #getStopTime()
+ * @see #setStopTime(Date)
+ * @generated
+ */
+ void unsetStopTime();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStopTime <em>Stop Time</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Stop Time</em>' attribute is set.
+ * @see #unsetStopTime()
+ * @see #getStopTime()
+ * @see #setStopTime(Date)
+ * @generated
+ */
+ boolean isSetStopTime();
+
+ /**
+ * Returns the value of the '<em><b>Tendency</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.Tendency}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tendency</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tendency</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Tendency
+ * @see #isSetTendency()
+ * @see #unsetTendency()
+ * @see #setTendency(Tendency)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_Tendency()
+ * @model unsettable="true"
+ * @generated
+ */
+ Tendency getTendency();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTendency <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tendency</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Tendency
+ * @see #isSetTendency()
+ * @see #unsetTendency()
+ * @see #getTendency()
+ * @generated
+ */
+ void setTendency(Tendency value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTendency <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetTendency()
+ * @see #getTendency()
+ * @see #setTendency(Tendency)
+ * @generated
+ */
+ void unsetTendency();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTendency <em>Tendency</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Tendency</em>' attribute is set.
+ * @see #unsetTendency()
+ * @see #getTendency()
+ * @see #setTendency(Tendency)
+ * @generated
+ */
+ boolean isSetTendency();
+
+ /**
+ * Returns the value of the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Length Affected</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_LengthAffected()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getLengthAffected();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Length Affected</em>' attribute.
+ * @see #isSetLengthAffected()
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @generated
+ */
+ void setLengthAffected(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getLengthAffected <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ void unsetLengthAffected();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getLengthAffected <em>Length Affected</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Length Affected</em>' attribute is set.
+ * @see #unsetLengthAffected()
+ * @see #getLengthAffected()
+ * @see #setLengthAffected(Integer)
+ * @generated
+ */
+ boolean isSetLengthAffected();
+
+ /**
+ * Returns the value of the '<em><b>Average Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Average Speed Absolute</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Average Speed Absolute</em>' attribute.
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_AverageSpeedAbsolute()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getAverageSpeedAbsolute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Average Speed Absolute</em>' attribute.
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ */
+ void setAverageSpeedAbsolute(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @generated
+ */
+ void unsetAverageSpeedAbsolute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Average Speed Absolute</em>' attribute is set.
+ * @see #unsetAverageSpeedAbsolute()
+ * @see #getAverageSpeedAbsolute()
+ * @see #setAverageSpeedAbsolute(Integer)
+ * @generated
+ */
+ boolean isSetAverageSpeedAbsolute();
+
+ /**
+ * Returns the value of the '<em><b>Delay</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Delay</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Delay</em>' attribute.
+ * @see #isSetDelay()
+ * @see #unsetDelay()
+ * @see #setDelay(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_Delay()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getDelay();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getDelay <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Delay</em>' attribute.
+ * @see #isSetDelay()
+ * @see #unsetDelay()
+ * @see #getDelay()
+ * @generated
+ */
+ void setDelay(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getDelay <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDelay()
+ * @see #getDelay()
+ * @see #setDelay(Integer)
+ * @generated
+ */
+ void unsetDelay();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getDelay <em>Delay</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Delay</em>' attribute is set.
+ * @see #unsetDelay()
+ * @see #getDelay()
+ * @see #setDelay(Integer)
+ * @generated
+ */
+ boolean isSetDelay();
+
+ /**
+ * Returns the value of the '<em><b>Segment Speed Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Segment Speed Limit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Segment Speed Limit</em>' attribute.
+ * @see #isSetSegmentSpeedLimit()
+ * @see #unsetSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_SegmentSpeedLimit()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getSegmentSpeedLimit();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Segment Speed Limit</em>' attribute.
+ * @see #isSetSegmentSpeedLimit()
+ * @see #unsetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ */
+ void setSegmentSpeedLimit(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @generated
+ */
+ void unsetSegmentSpeedLimit();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getSegmentSpeedLimit <em>Segment Speed Limit</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Segment Speed Limit</em>' attribute is set.
+ * @see #unsetSegmentSpeedLimit()
+ * @see #getSegmentSpeedLimit()
+ * @see #setSegmentSpeedLimit(Integer)
+ * @generated
+ */
+ boolean isSetSegmentSpeedLimit();
+
+ /**
+ * Returns the value of the '<em><b>Cause</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.Cause}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cause</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cause</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_Cause()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Cause> getCause();
+
+ /**
+ * Returns the value of the '<em><b>Advice</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.Advice}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Advice</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_Advice()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Advice> getAdvice();
+
+ /**
+ * Returns the value of the '<em><b>Vehicle Restriction</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Restriction</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Restriction</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_VehicleRestriction()
+ * @model containment="true"
+ * @generated
+ */
+ EList<VehicleRestriction> getVehicleRestriction();
+
+ /**
+ * Returns the value of the '<em><b>Expected Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expected Speed Absolute</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expected Speed Absolute</em>' attribute.
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_ExpectedSpeedAbsolute()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getExpectedSpeedAbsolute();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expected Speed Absolute</em>' attribute.
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ */
+ void setExpectedSpeedAbsolute(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @generated
+ */
+ void unsetExpectedSpeedAbsolute();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Expected Speed Absolute</em>' attribute is set.
+ * @see #unsetExpectedSpeedAbsolute()
+ * @see #getExpectedSpeedAbsolute()
+ * @see #setExpectedSpeedAbsolute(Integer)
+ * @generated
+ */
+ boolean isSetExpectedSpeedAbsolute();
+
+ /**
+ * Returns the value of the '<em><b>Temporary Speed Limit</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Speed Limit</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Speed Limit</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getEvent_TemporarySpeedLimit()
+ * @model containment="true"
+ * @generated
+ */
+ EList<TemporarySpeedLimit> getTemporarySpeedLimit();
+
+} // Event
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventFactory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventFactory.java
new file mode 100755
index 0000000..fd20b25
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventFactory.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage
+ * @generated
+ */
+public interface EventFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EventFactory eINSTANCE = org.genivi.trafficinfo.tpeg.tec.event.impl.EventFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Event</em>'.
+ * @generated
+ */
+ Event createEvent();
+
+ /**
+ * Returns a new object of class '<em>Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cause</em>'.
+ * @generated
+ */
+ Cause createCause();
+
+ /**
+ * Returns a new object of class '<em>Linked Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Linked Cause</em>'.
+ * @generated
+ */
+ LinkedCause createLinkedCause();
+
+ /**
+ * Returns a new object of class '<em>Direct Cause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Direct Cause</em>'.
+ * @generated
+ */
+ DirectCause createDirectCause();
+
+ /**
+ * Returns a new object of class '<em>Advice</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Advice</em>'.
+ * @generated
+ */
+ Advice createAdvice();
+
+ /**
+ * Returns a new object of class '<em>Vehicle Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Vehicle Restriction</em>'.
+ * @generated
+ */
+ VehicleRestriction createVehicleRestriction();
+
+ /**
+ * Returns a new object of class '<em>Vehicle Related Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Vehicle Related Restriction</em>'.
+ * @generated
+ */
+ VehicleRelatedRestriction createVehicleRelatedRestriction();
+
+ /**
+ * Returns a new object of class '<em>TEC Message</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>TEC Message</em>'.
+ * @generated
+ */
+ TECMessage createTECMessage();
+
+ /**
+ * Returns a new object of class '<em>Temporary Speed Limit Section</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Speed Limit Section</em>'.
+ * @generated
+ */
+ TemporarySpeedLimitSection createTemporarySpeedLimitSection();
+
+ /**
+ * Returns a new object of class '<em>Temporary Speed Limit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Speed Limit</em>'.
+ * @generated
+ */
+ TemporarySpeedLimit createTemporarySpeedLimit();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ EventPackage getEventPackage();
+
+} //EventFactory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventPackage.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventPackage.java
new file mode 100755
index 0000000..363cd20
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/EventPackage.java
@@ -0,0 +1,2991 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface EventPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "event";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.trafficinfo.tec";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "model";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EventPackage eINSTANCE = org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getEvent()
+ * @generated
+ */
+ int EVENT = 0;
+
+ /**
+ * The feature id for the '<em><b>Effect Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__EFFECT_CODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Start Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__START_TIME = 1;
+
+ /**
+ * The feature id for the '<em><b>Stop Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__STOP_TIME = 2;
+
+ /**
+ * The feature id for the '<em><b>Tendency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__TENDENCY = 3;
+
+ /**
+ * The feature id for the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__LENGTH_AFFECTED = 4;
+
+ /**
+ * The feature id for the '<em><b>Average Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__AVERAGE_SPEED_ABSOLUTE = 5;
+
+ /**
+ * The feature id for the '<em><b>Delay</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__DELAY = 6;
+
+ /**
+ * The feature id for the '<em><b>Segment Speed Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__SEGMENT_SPEED_LIMIT = 7;
+
+ /**
+ * The feature id for the '<em><b>Cause</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__CAUSE = 8;
+
+ /**
+ * The feature id for the '<em><b>Advice</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__ADVICE = 9;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Restriction</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__VEHICLE_RESTRICTION = 10;
+
+ /**
+ * The feature id for the '<em><b>Expected Speed Absolute</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__EXPECTED_SPEED_ABSOLUTE = 11;
+
+ /**
+ * The feature id for the '<em><b>Temporary Speed Limit</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__TEMPORARY_SPEED_LIMIT = 12;
+
+ /**
+ * The number of structural features of the '<em>Event</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT_FEATURE_COUNT = 13;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.CauseImpl <em>Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.CauseImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getCause()
+ * @generated
+ */
+ int CAUSE = 1;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAUSE__MAIN_CAUSE = 0;
+
+ /**
+ * The number of structural features of the '<em>Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl <em>Linked Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getLinkedCause()
+ * @generated
+ */
+ int LINKED_CAUSE = 2;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__MAIN_CAUSE = CAUSE__MAIN_CAUSE;
+
+ /**
+ * The feature id for the '<em><b>Linked Message</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__LINKED_MESSAGE = CAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>COID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__COID = CAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Originator SID</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE__ORIGINATOR_SID = CAUSE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Linked Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINKED_CAUSE_FEATURE_COUNT = CAUSE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl <em>Direct Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDirectCause()
+ * @generated
+ */
+ int DIRECT_CAUSE = 3;
+
+ /**
+ * The feature id for the '<em><b>Main Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__MAIN_CAUSE = CAUSE__MAIN_CAUSE;
+
+ /**
+ * The feature id for the '<em><b>Warning Level</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__WARNING_LEVEL = CAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Unverified Information</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__UNVERIFIED_INFORMATION = CAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Sub Cause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__SUB_CAUSE = CAUSE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Length Affected</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__LENGTH_AFFECTED = CAUSE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Lane Restriction Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__LANE_RESTRICTION_TYPE = CAUSE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Number Of Lanes</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__NUMBER_OF_LANES = CAUSE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Free Text</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__FREE_TEXT = CAUSE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Cause Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE__CAUSE_OFFSET = CAUSE_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Direct Cause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DIRECT_CAUSE_FEATURE_COUNT = CAUSE_FEATURE_COUNT + 8;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl <em>Advice</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAdvice()
+ * @generated
+ */
+ int ADVICE = 4;
+
+ /**
+ * The feature id for the '<em><b>Advice Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__ADVICE_CODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Sub Advice Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__SUB_ADVICE_CODE = 1;
+
+ /**
+ * The feature id for the '<em><b>Free Text</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__FREE_TEXT = 2;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Restriction</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE__VEHICLE_RESTRICTION = 3;
+
+ /**
+ * The number of structural features of the '<em>Advice</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADVICE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRestrictionImpl <em>Vehicle Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRestrictionImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVehicleRestriction()
+ * @generated
+ */
+ int VEHICLE_RESTRICTION = 5;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RESTRICTION__VEHICLE_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Restriction</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RESTRICTION__RESTRICTION = 1;
+
+ /**
+ * The number of structural features of the '<em>Vehicle Restriction</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RESTRICTION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl <em>Vehicle Related Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVehicleRelatedRestriction()
+ * @generated
+ */
+ int VEHICLE_RELATED_RESTRICTION = 6;
+
+ /**
+ * The feature id for the '<em><b>Restriction Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Restriction Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE = 1;
+
+ /**
+ * The feature id for the '<em><b>Restriction Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION = 2;
+
+ /**
+ * The number of structural features of the '<em>Vehicle Related Restriction</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VEHICLE_RELATED_RESTRICTION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl <em>TEC Message</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTECMessage()
+ * @generated
+ */
+ int TEC_MESSAGE = 7;
+
+ /**
+ * The feature id for the '<em><b>Mmt</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEC_MESSAGE__MMT = 0;
+
+ /**
+ * The feature id for the '<em><b>Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEC_MESSAGE__EVENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Loc</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEC_MESSAGE__LOC = 2;
+
+ /**
+ * The number of structural features of the '<em>TEC Message</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEC_MESSAGE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl <em>Temporary Speed Limit Section</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTemporarySpeedLimitSection()
+ * @generated
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION = 8;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Value Wet</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET = 1;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH = 2;
+
+ /**
+ * The number of structural features of the '<em>Temporary Speed Limit Section</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_SECTION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl <em>Temporary Speed Limit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTemporarySpeedLimit()
+ * @generated
+ */
+ int TEMPORARY_SPEED_LIMIT = 9;
+
+ /**
+ * The feature id for the '<em><b>Speed Limit Section</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Units MPH</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__UNITS_MPH = 1;
+
+ /**
+ * The feature id for the '<em><b>Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__OFFSET = 2;
+
+ /**
+ * The feature id for the '<em><b>Vehicle Restriction</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION = 3;
+
+ /**
+ * The number of structural features of the '<em>Temporary Speed Limit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEMPORARY_SPEED_LIMIT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.EffectCode <em>Effect Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EffectCode
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getEffectCode()
+ * @generated
+ */
+ int EFFECT_CODE = 10;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Tendency <em>Tendency</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Tendency
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTendency()
+ * @generated
+ */
+ int TENDENCY = 11;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.CauseCode <em>Cause Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.CauseCode
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getCauseCode()
+ * @generated
+ */
+ int CAUSE_CODE = 12;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.WarningLevel <em>Warning Level</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.WarningLevel
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getWarningLevel()
+ * @generated
+ */
+ int WARNING_LEVEL = 13;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion <em>Traffic Congestion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTrafficCongestion()
+ * @generated
+ */
+ int TRAFFIC_CONGESTION = 14;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Accident <em>Accident</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Accident
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAccident()
+ * @generated
+ */
+ int ACCIDENT = 15;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RoadWorks <em>Road Works</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RoadWorks
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRoadWorks()
+ * @generated
+ */
+ int ROAD_WORKS = 16;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes <em>Narrow Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getNarrowLanes()
+ * @generated
+ */
+ int NARROW_LANES = 17;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Impassibility <em>Impassibility</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Impassibility
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getImpassibility()
+ * @generated
+ */
+ int IMPASSIBILITY = 18;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad <em>Slippery Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getSlipperyRoad()
+ * @generated
+ */
+ int SLIPPERY_ROAD = 19;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Fire <em>Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Fire
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getFire()
+ * @generated
+ */
+ int FIRE = 20;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions <em>Hazardous Driving Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getHazardousDrivingConditions()
+ * @generated
+ */
+ int HAZARDOUS_DRIVING_CONDITIONS = 21;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad <em>Objects On The Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getObjectsOnTheRoad()
+ * @generated
+ */
+ int OBJECTS_ON_THE_ROAD = 22;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway <em>Animals On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAnimalsOnRoadway()
+ * @generated
+ */
+ int ANIMALS_ON_ROADWAY = 23;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway <em>People On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getPeopleOnRoadway()
+ * @generated
+ */
+ int PEOPLE_ON_ROADWAY = 24;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles <em>Broken Down Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getBrokenDownVehicles()
+ * @generated
+ */
+ int BROKEN_DOWN_VEHICLES = 25;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress <em>Rescue And Recovery Work In Progress</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRescueAndRecoveryWorkInProgress()
+ * @generated
+ */
+ int RESCUE_AND_RECOVERY_WORK_IN_PROGRESS = 26;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure <em>Regulatory Measure</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRegulatoryMeasure()
+ * @generated
+ */
+ int REGULATORY_MEASURE = 27;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType <em>Lane Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getLaneRestrictionType()
+ * @generated
+ */
+ int LANE_RESTRICTION_TYPE = 28;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.AdviceCode <em>Advice Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AdviceCode
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAdviceCode()
+ * @generated
+ */
+ int ADVICE_CODE = 29;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleType <em>Vehicle Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleType
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVehicleType()
+ * @generated
+ */
+ int VEHICLE_TYPE = 30;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RestrictionType <em>Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RestrictionType
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRestrictionType()
+ * @generated
+ */
+ int RESTRICTION_TYPE = 31;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions <em>Extreme Weather Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getExtremeWeatherConditions()
+ * @generated
+ */
+ int EXTREME_WEATHER_CONDITIONS = 32;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced <em>Visibility Reduced</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVisibilityReduced()
+ * @generated
+ */
+ int VISIBILITY_REDUCED = 33;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Precipitation <em>Precipitation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Precipitation
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getPrecipitation()
+ * @generated
+ */
+ int PRECIPITATION = 34;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons <em>Reckless Persons</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRecklessPersons()
+ * @generated
+ */
+ int RECKLESS_PERSONS = 35;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.MajorEvent <em>Major Event</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.MajorEvent
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getMajorEvent()
+ * @generated
+ */
+ int MAJOR_EVENT = 36;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating <em>Service Not Operating</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getServiceNotOperating()
+ * @generated
+ */
+ int SERVICE_NOT_OPERATING = 37;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable <em>Service Not Usable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getServiceNotUsable()
+ * @generated
+ */
+ int SERVICE_NOT_USABLE = 38;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles <em>Slow Moving Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getSlowMovingVehicles()
+ * @generated
+ */
+ int SLOW_MOVING_VEHICLES = 39;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue <em>Dangerous End Of Queue</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDangerousEndOfQueue()
+ * @generated
+ */
+ int DANGEROUS_END_OF_QUEUE = 40;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire <em>Risk Of Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRiskOfFire()
+ * @generated
+ */
+ int RISK_OF_FIRE = 41;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.TimeDelay <em>Time Delay</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TimeDelay
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTimeDelay()
+ * @generated
+ */
+ int TIME_DELAY = 42;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint <em>Police Checkpoint</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getPoliceCheckpoint()
+ * @generated
+ */
+ int POLICE_CHECKPOINT = 43;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment <em>Malfunctioning Roadside Equipment</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getMalfunctioningRoadsideEquipment()
+ * @generated
+ */
+ int MALFUNCTIONING_ROADSIDE_EQUIPMENT = 44;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed <em>Overtaking Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getOvertakingNotAllowed()
+ * @generated
+ */
+ int OVERTAKING_NOT_ALLOWED = 45;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed <em>Driving Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDrivingNotAllowed()
+ * @generated
+ */
+ int DRIVING_NOT_ALLOWED = 46;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind <em>Giving Path Vehicles From Behind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getGivingPathVehiclesFromBehind()
+ * @generated
+ */
+ int GIVING_PATH_VEHICLES_FROM_BEHIND = 47;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion <em>Follow Diversion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getFollowDiversion()
+ * @generated
+ */
+ int FOLLOW_DIVERSION = 48;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully <em>Drive Carefully</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDriveCarefully()
+ * @generated
+ */
+ int DRIVE_CAREFULLY = 49;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle <em>Do Not Leave Your Vehicle</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDoNotLeaveYourVehicle()
+ * @generated
+ */
+ int DO_NOT_LEAVE_YOUR_VEHICLE = 50;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes <em>Use Toll Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getUseTollLanes()
+ * @generated
+ */
+ int USE_TOLL_LANES = 51;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Event</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event
+ * @generated
+ */
+ EClass getEvent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getEffectCode <em>Effect Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Effect Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getEffectCode()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_EffectCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStartTime <em>Start Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Start Time</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getStartTime()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_StartTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getStopTime <em>Stop Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Stop Time</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getStopTime()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_StopTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTendency <em>Tendency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tendency</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getTendency()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_Tendency();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getLengthAffected <em>Length Affected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Length Affected</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getLengthAffected()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_LengthAffected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Average Speed Absolute</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getAverageSpeedAbsolute()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_AverageSpeedAbsolute();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getDelay <em>Delay</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Delay</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getDelay()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_Delay();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getSegmentSpeedLimit <em>Segment Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Segment Speed Limit</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getSegmentSpeedLimit()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_SegmentSpeedLimit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getCause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Cause</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getCause()
+ * @see #getEvent()
+ * @generated
+ */
+ EReference getEvent_Cause();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getAdvice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Advice</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getAdvice()
+ * @see #getEvent()
+ * @generated
+ */
+ EReference getEvent_Advice();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getVehicleRestriction <em>Vehicle Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Vehicle Restriction</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getVehicleRestriction()
+ * @see #getEvent()
+ * @generated
+ */
+ EReference getEvent_VehicleRestriction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Expected Speed Absolute</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getExpectedSpeedAbsolute()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_ExpectedSpeedAbsolute();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.Event#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Temporary Speed Limit</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event#getTemporarySpeedLimit()
+ * @see #getEvent()
+ * @generated
+ */
+ EReference getEvent_TemporarySpeedLimit();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.Cause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cause</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Cause
+ * @generated
+ */
+ EClass getCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Cause#getMainCause <em>Main Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Main Cause</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Cause#getMainCause()
+ * @see #getCause()
+ * @generated
+ */
+ EAttribute getCause_MainCause();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause <em>Linked Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linked Cause</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LinkedCause
+ * @generated
+ */
+ EClass getLinkedCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getLinkedMessage <em>Linked Message</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Linked Message</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getLinkedMessage()
+ * @see #getLinkedCause()
+ * @generated
+ */
+ EAttribute getLinkedCause_LinkedMessage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getCOID <em>COID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>COID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getCOID()
+ * @see #getLinkedCause()
+ * @generated
+ */
+ EAttribute getLinkedCause_COID();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getOriginatorSID <em>Originator SID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Originator SID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getOriginatorSID()
+ * @see #getLinkedCause()
+ * @generated
+ */
+ EReference getLinkedCause_OriginatorSID();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause <em>Direct Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Direct Cause</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause
+ * @generated
+ */
+ EClass getDirectCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getWarningLevel <em>Warning Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Warning Level</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getWarningLevel()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_WarningLevel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#isUnverifiedInformation <em>Unverified Information</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unverified Information</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#isUnverifiedInformation()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_UnverifiedInformation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getSubCause <em>Sub Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sub Cause</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getSubCause()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_SubCause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLengthAffected <em>Length Affected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Length Affected</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLengthAffected()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_LengthAffected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLaneRestrictionType <em>Lane Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lane Restriction Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getLaneRestrictionType()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_LaneRestrictionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getNumberOfLanes <em>Number Of Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Lanes</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getNumberOfLanes()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_NumberOfLanes();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getFreeText <em>Free Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Free Text</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getFreeText()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EReference getDirectCause_FreeText();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getCauseOffset <em>Cause Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cause Offset</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause#getCauseOffset()
+ * @see #getDirectCause()
+ * @generated
+ */
+ EAttribute getDirectCause_CauseOffset();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Advice</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Advice
+ * @generated
+ */
+ EClass getAdvice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getAdviceCode <em>Advice Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Advice Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Advice#getAdviceCode()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_AdviceCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getSubAdviceCode <em>Sub Advice Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sub Advice Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Advice#getSubAdviceCode()
+ * @see #getAdvice()
+ * @generated
+ */
+ EAttribute getAdvice_SubAdviceCode();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getFreeText <em>Free Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Free Text</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Advice#getFreeText()
+ * @see #getAdvice()
+ * @generated
+ */
+ EReference getAdvice_FreeText();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice#getVehicleRestriction <em>Vehicle Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Vehicle Restriction</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Advice#getVehicleRestriction()
+ * @see #getAdvice()
+ * @generated
+ */
+ EReference getAdvice_VehicleRestriction();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction <em>Vehicle Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vehicle Restriction</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction
+ * @generated
+ */
+ EClass getVehicleRestriction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getVehicleType <em>Vehicle Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vehicle Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getVehicleType()
+ * @see #getVehicleRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRestriction_VehicleType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getRestriction <em>Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Restriction</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getRestriction()
+ * @see #getVehicleRestriction()
+ * @generated
+ */
+ EReference getVehicleRestriction_Restriction();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction <em>Vehicle Related Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vehicle Related Restriction</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction
+ * @generated
+ */
+ EClass getVehicleRelatedRestriction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restriction Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionType()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRelatedRestriction_RestrictionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restriction Value</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionValue()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EAttribute getVehicleRelatedRestriction_RestrictionValue();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Restriction Location</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionLocation()
+ * @see #getVehicleRelatedRestriction()
+ * @generated
+ */
+ EReference getVehicleRelatedRestriction_RestrictionLocation();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage <em>TEC Message</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>TEC Message</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TECMessage
+ * @generated
+ */
+ EClass getTECMessage();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getMmt <em>Mmt</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Mmt</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getMmt()
+ * @see #getTECMessage()
+ * @generated
+ */
+ EReference getTECMessage_Mmt();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getEvent <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Event</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getEvent()
+ * @see #getTECMessage()
+ * @generated
+ */
+ EReference getTECMessage_Event();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getLoc <em>Loc</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Loc</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getLoc()
+ * @see #getTECMessage()
+ * @generated
+ */
+ EReference getTECMessage_Loc();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection <em>Temporary Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Speed Limit Section</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection
+ * @generated
+ */
+ EClass getTemporarySpeedLimitSection();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Value</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValue()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Value Wet</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValueWet()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitValueWet();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Speed Limit Length</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitLength()
+ * @see #getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimitSection_SpeedLimitLength();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Speed Limit</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit
+ * @generated
+ */
+ EClass getTemporarySpeedLimit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getSpeedLimitSection <em>Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Speed Limit Section</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getSpeedLimitSection()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EReference getTemporarySpeedLimit_SpeedLimitSection();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Units MPH</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#isUnitsMPH()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimit_UnitsMPH();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getOffset <em>Offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Offset</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getOffset()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EAttribute getTemporarySpeedLimit_Offset();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getVehicleRestriction <em>Vehicle Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Vehicle Restriction</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getVehicleRestriction()
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ */
+ EReference getTemporarySpeedLimit_VehicleRestriction();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.EffectCode <em>Effect Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Effect Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EffectCode
+ * @generated
+ */
+ EEnum getEffectCode();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.Tendency <em>Tendency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Tendency</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Tendency
+ * @generated
+ */
+ EEnum getTendency();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.CauseCode <em>Cause Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cause Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.CauseCode
+ * @generated
+ */
+ EEnum getCauseCode();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.WarningLevel <em>Warning Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Warning Level</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.WarningLevel
+ * @generated
+ */
+ EEnum getWarningLevel();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion <em>Traffic Congestion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Traffic Congestion</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion
+ * @generated
+ */
+ EEnum getTrafficCongestion();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.Accident <em>Accident</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Accident</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Accident
+ * @generated
+ */
+ EEnum getAccident();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.RoadWorks <em>Road Works</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Road Works</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RoadWorks
+ * @generated
+ */
+ EEnum getRoadWorks();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes <em>Narrow Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Narrow Lanes</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes
+ * @generated
+ */
+ EEnum getNarrowLanes();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.Impassibility <em>Impassibility</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Impassibility</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Impassibility
+ * @generated
+ */
+ EEnum getImpassibility();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad <em>Slippery Road</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Slippery Road</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad
+ * @generated
+ */
+ EEnum getSlipperyRoad();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.Fire <em>Fire</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Fire</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Fire
+ * @generated
+ */
+ EEnum getFire();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions <em>Hazardous Driving Conditions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Hazardous Driving Conditions</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions
+ * @generated
+ */
+ EEnum getHazardousDrivingConditions();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad <em>Objects On The Road</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Objects On The Road</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad
+ * @generated
+ */
+ EEnum getObjectsOnTheRoad();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway <em>Animals On Roadway</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Animals On Roadway</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway
+ * @generated
+ */
+ EEnum getAnimalsOnRoadway();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway <em>People On Roadway</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>People On Roadway</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway
+ * @generated
+ */
+ EEnum getPeopleOnRoadway();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles <em>Broken Down Vehicles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Broken Down Vehicles</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles
+ * @generated
+ */
+ EEnum getBrokenDownVehicles();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress <em>Rescue And Recovery Work In Progress</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Rescue And Recovery Work In Progress</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress
+ * @generated
+ */
+ EEnum getRescueAndRecoveryWorkInProgress();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure <em>Regulatory Measure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Regulatory Measure</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure
+ * @generated
+ */
+ EEnum getRegulatoryMeasure();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType <em>Lane Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Lane Restriction Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType
+ * @generated
+ */
+ EEnum getLaneRestrictionType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.AdviceCode <em>Advice Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Advice Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AdviceCode
+ * @generated
+ */
+ EEnum getAdviceCode();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleType <em>Vehicle Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Vehicle Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleType
+ * @generated
+ */
+ EEnum getVehicleType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.RestrictionType <em>Restriction Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Restriction Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RestrictionType
+ * @generated
+ */
+ EEnum getRestrictionType();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions <em>Extreme Weather Conditions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Extreme Weather Conditions</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions
+ * @generated
+ */
+ EEnum getExtremeWeatherConditions();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced <em>Visibility Reduced</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Visibility Reduced</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced
+ * @generated
+ */
+ EEnum getVisibilityReduced();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.Precipitation <em>Precipitation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Precipitation</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Precipitation
+ * @generated
+ */
+ EEnum getPrecipitation();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons <em>Reckless Persons</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Reckless Persons</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons
+ * @generated
+ */
+ EEnum getRecklessPersons();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.MajorEvent <em>Major Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Major Event</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.MajorEvent
+ * @generated
+ */
+ EEnum getMajorEvent();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating <em>Service Not Operating</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Service Not Operating</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating
+ * @generated
+ */
+ EEnum getServiceNotOperating();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable <em>Service Not Usable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Service Not Usable</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable
+ * @generated
+ */
+ EEnum getServiceNotUsable();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles <em>Slow Moving Vehicles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Slow Moving Vehicles</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles
+ * @generated
+ */
+ EEnum getSlowMovingVehicles();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue <em>Dangerous End Of Queue</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Dangerous End Of Queue</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue
+ * @generated
+ */
+ EEnum getDangerousEndOfQueue();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire <em>Risk Of Fire</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Risk Of Fire</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire
+ * @generated
+ */
+ EEnum getRiskOfFire();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.TimeDelay <em>Time Delay</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Time Delay</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TimeDelay
+ * @generated
+ */
+ EEnum getTimeDelay();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint <em>Police Checkpoint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Police Checkpoint</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint
+ * @generated
+ */
+ EEnum getPoliceCheckpoint();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment <em>Malfunctioning Roadside Equipment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Malfunctioning Roadside Equipment</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment
+ * @generated
+ */
+ EEnum getMalfunctioningRoadsideEquipment();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed <em>Overtaking Not Allowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Overtaking Not Allowed</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed
+ * @generated
+ */
+ EEnum getOvertakingNotAllowed();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed <em>Driving Not Allowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Driving Not Allowed</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed
+ * @generated
+ */
+ EEnum getDrivingNotAllowed();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind <em>Giving Path Vehicles From Behind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Giving Path Vehicles From Behind</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind
+ * @generated
+ */
+ EEnum getGivingPathVehiclesFromBehind();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion <em>Follow Diversion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Follow Diversion</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion
+ * @generated
+ */
+ EEnum getFollowDiversion();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully <em>Drive Carefully</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Drive Carefully</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully
+ * @generated
+ */
+ EEnum getDriveCarefully();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle <em>Do Not Leave Your Vehicle</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Do Not Leave Your Vehicle</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle
+ * @generated
+ */
+ EEnum getDoNotLeaveYourVehicle();
+
+ /**
+ * Returns the meta object for enum '{@link org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes <em>Use Toll Lanes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Use Toll Lanes</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes
+ * @generated
+ */
+ EEnum getUseTollLanes();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ EventFactory getEventFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getEvent()
+ * @generated
+ */
+ EClass EVENT = eINSTANCE.getEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Effect Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__EFFECT_CODE = eINSTANCE.getEvent_EffectCode();
+
+ /**
+ * The meta object literal for the '<em><b>Start Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__START_TIME = eINSTANCE.getEvent_StartTime();
+
+ /**
+ * The meta object literal for the '<em><b>Stop Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__STOP_TIME = eINSTANCE.getEvent_StopTime();
+
+ /**
+ * The meta object literal for the '<em><b>Tendency</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__TENDENCY = eINSTANCE.getEvent_Tendency();
+
+ /**
+ * The meta object literal for the '<em><b>Length Affected</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__LENGTH_AFFECTED = eINSTANCE.getEvent_LengthAffected();
+
+ /**
+ * The meta object literal for the '<em><b>Average Speed Absolute</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__AVERAGE_SPEED_ABSOLUTE = eINSTANCE.getEvent_AverageSpeedAbsolute();
+
+ /**
+ * The meta object literal for the '<em><b>Delay</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__DELAY = eINSTANCE.getEvent_Delay();
+
+ /**
+ * The meta object literal for the '<em><b>Segment Speed Limit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__SEGMENT_SPEED_LIMIT = eINSTANCE.getEvent_SegmentSpeedLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Cause</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVENT__CAUSE = eINSTANCE.getEvent_Cause();
+
+ /**
+ * The meta object literal for the '<em><b>Advice</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVENT__ADVICE = eINSTANCE.getEvent_Advice();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Restriction</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVENT__VEHICLE_RESTRICTION = eINSTANCE.getEvent_VehicleRestriction();
+
+ /**
+ * The meta object literal for the '<em><b>Expected Speed Absolute</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__EXPECTED_SPEED_ABSOLUTE = eINSTANCE.getEvent_ExpectedSpeedAbsolute();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Speed Limit</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVENT__TEMPORARY_SPEED_LIMIT = eINSTANCE.getEvent_TemporarySpeedLimit();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.CauseImpl <em>Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.CauseImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getCause()
+ * @generated
+ */
+ EClass CAUSE = eINSTANCE.getCause();
+
+ /**
+ * The meta object literal for the '<em><b>Main Cause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CAUSE__MAIN_CAUSE = eINSTANCE.getCause_MainCause();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl <em>Linked Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getLinkedCause()
+ * @generated
+ */
+ EClass LINKED_CAUSE = eINSTANCE.getLinkedCause();
+
+ /**
+ * The meta object literal for the '<em><b>Linked Message</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINKED_CAUSE__LINKED_MESSAGE = eINSTANCE.getLinkedCause_LinkedMessage();
+
+ /**
+ * The meta object literal for the '<em><b>COID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINKED_CAUSE__COID = eINSTANCE.getLinkedCause_COID();
+
+ /**
+ * The meta object literal for the '<em><b>Originator SID</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LINKED_CAUSE__ORIGINATOR_SID = eINSTANCE.getLinkedCause_OriginatorSID();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl <em>Direct Cause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDirectCause()
+ * @generated
+ */
+ EClass DIRECT_CAUSE = eINSTANCE.getDirectCause();
+
+ /**
+ * The meta object literal for the '<em><b>Warning Level</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__WARNING_LEVEL = eINSTANCE.getDirectCause_WarningLevel();
+
+ /**
+ * The meta object literal for the '<em><b>Unverified Information</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__UNVERIFIED_INFORMATION = eINSTANCE.getDirectCause_UnverifiedInformation();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Cause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__SUB_CAUSE = eINSTANCE.getDirectCause_SubCause();
+
+ /**
+ * The meta object literal for the '<em><b>Length Affected</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__LENGTH_AFFECTED = eINSTANCE.getDirectCause_LengthAffected();
+
+ /**
+ * The meta object literal for the '<em><b>Lane Restriction Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__LANE_RESTRICTION_TYPE = eINSTANCE.getDirectCause_LaneRestrictionType();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Lanes</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__NUMBER_OF_LANES = eINSTANCE.getDirectCause_NumberOfLanes();
+
+ /**
+ * The meta object literal for the '<em><b>Free Text</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DIRECT_CAUSE__FREE_TEXT = eINSTANCE.getDirectCause_FreeText();
+
+ /**
+ * The meta object literal for the '<em><b>Cause Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DIRECT_CAUSE__CAUSE_OFFSET = eINSTANCE.getDirectCause_CauseOffset();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl <em>Advice</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAdvice()
+ * @generated
+ */
+ EClass ADVICE = eINSTANCE.getAdvice();
+
+ /**
+ * The meta object literal for the '<em><b>Advice Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__ADVICE_CODE = eINSTANCE.getAdvice_AdviceCode();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Advice Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADVICE__SUB_ADVICE_CODE = eINSTANCE.getAdvice_SubAdviceCode();
+
+ /**
+ * The meta object literal for the '<em><b>Free Text</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ADVICE__FREE_TEXT = eINSTANCE.getAdvice_FreeText();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Restriction</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ADVICE__VEHICLE_RESTRICTION = eINSTANCE.getAdvice_VehicleRestriction();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRestrictionImpl <em>Vehicle Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRestrictionImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVehicleRestriction()
+ * @generated
+ */
+ EClass VEHICLE_RESTRICTION = eINSTANCE.getVehicleRestriction();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RESTRICTION__VEHICLE_TYPE = eINSTANCE.getVehicleRestriction_VehicleType();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VEHICLE_RESTRICTION__RESTRICTION = eINSTANCE.getVehicleRestriction_Restriction();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl <em>Vehicle Related Restriction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVehicleRelatedRestriction()
+ * @generated
+ */
+ EClass VEHICLE_RELATED_RESTRICTION = eINSTANCE.getVehicleRelatedRestriction();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE = eINSTANCE.getVehicleRelatedRestriction_RestrictionType();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE = eINSTANCE.getVehicleRelatedRestriction_RestrictionValue();
+
+ /**
+ * The meta object literal for the '<em><b>Restriction Location</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION = eINSTANCE.getVehicleRelatedRestriction_RestrictionLocation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl <em>TEC Message</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTECMessage()
+ * @generated
+ */
+ EClass TEC_MESSAGE = eINSTANCE.getTECMessage();
+
+ /**
+ * The meta object literal for the '<em><b>Mmt</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEC_MESSAGE__MMT = eINSTANCE.getTECMessage_Mmt();
+
+ /**
+ * The meta object literal for the '<em><b>Event</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEC_MESSAGE__EVENT = eINSTANCE.getTECMessage_Event();
+
+ /**
+ * The meta object literal for the '<em><b>Loc</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEC_MESSAGE__LOC = eINSTANCE.getTECMessage_Loc();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl <em>Temporary Speed Limit Section</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTemporarySpeedLimitSection()
+ * @generated
+ */
+ EClass TEMPORARY_SPEED_LIMIT_SECTION = eINSTANCE.getTemporarySpeedLimitSection();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitValue();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Value Wet</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitValueWet();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH = eINSTANCE.getTemporarySpeedLimitSection_SpeedLimitLength();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl <em>Temporary Speed Limit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTemporarySpeedLimit()
+ * @generated
+ */
+ EClass TEMPORARY_SPEED_LIMIT = eINSTANCE.getTemporarySpeedLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Speed Limit Section</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION = eINSTANCE.getTemporarySpeedLimit_SpeedLimitSection();
+
+ /**
+ * The meta object literal for the '<em><b>Units MPH</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT__UNITS_MPH = eINSTANCE.getTemporarySpeedLimit_UnitsMPH();
+
+ /**
+ * The meta object literal for the '<em><b>Offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEMPORARY_SPEED_LIMIT__OFFSET = eINSTANCE.getTemporarySpeedLimit_Offset();
+
+ /**
+ * The meta object literal for the '<em><b>Vehicle Restriction</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION = eINSTANCE.getTemporarySpeedLimit_VehicleRestriction();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.EffectCode <em>Effect Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EffectCode
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getEffectCode()
+ * @generated
+ */
+ EEnum EFFECT_CODE = eINSTANCE.getEffectCode();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Tendency <em>Tendency</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Tendency
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTendency()
+ * @generated
+ */
+ EEnum TENDENCY = eINSTANCE.getTendency();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.CauseCode <em>Cause Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.CauseCode
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getCauseCode()
+ * @generated
+ */
+ EEnum CAUSE_CODE = eINSTANCE.getCauseCode();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.WarningLevel <em>Warning Level</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.WarningLevel
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getWarningLevel()
+ * @generated
+ */
+ EEnum WARNING_LEVEL = eINSTANCE.getWarningLevel();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion <em>Traffic Congestion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTrafficCongestion()
+ * @generated
+ */
+ EEnum TRAFFIC_CONGESTION = eINSTANCE.getTrafficCongestion();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Accident <em>Accident</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Accident
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAccident()
+ * @generated
+ */
+ EEnum ACCIDENT = eINSTANCE.getAccident();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RoadWorks <em>Road Works</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RoadWorks
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRoadWorks()
+ * @generated
+ */
+ EEnum ROAD_WORKS = eINSTANCE.getRoadWorks();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes <em>Narrow Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getNarrowLanes()
+ * @generated
+ */
+ EEnum NARROW_LANES = eINSTANCE.getNarrowLanes();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Impassibility <em>Impassibility</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Impassibility
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getImpassibility()
+ * @generated
+ */
+ EEnum IMPASSIBILITY = eINSTANCE.getImpassibility();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad <em>Slippery Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getSlipperyRoad()
+ * @generated
+ */
+ EEnum SLIPPERY_ROAD = eINSTANCE.getSlipperyRoad();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Fire <em>Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Fire
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getFire()
+ * @generated
+ */
+ EEnum FIRE = eINSTANCE.getFire();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions <em>Hazardous Driving Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getHazardousDrivingConditions()
+ * @generated
+ */
+ EEnum HAZARDOUS_DRIVING_CONDITIONS = eINSTANCE.getHazardousDrivingConditions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad <em>Objects On The Road</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getObjectsOnTheRoad()
+ * @generated
+ */
+ EEnum OBJECTS_ON_THE_ROAD = eINSTANCE.getObjectsOnTheRoad();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway <em>Animals On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAnimalsOnRoadway()
+ * @generated
+ */
+ EEnum ANIMALS_ON_ROADWAY = eINSTANCE.getAnimalsOnRoadway();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway <em>People On Roadway</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getPeopleOnRoadway()
+ * @generated
+ */
+ EEnum PEOPLE_ON_ROADWAY = eINSTANCE.getPeopleOnRoadway();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles <em>Broken Down Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getBrokenDownVehicles()
+ * @generated
+ */
+ EEnum BROKEN_DOWN_VEHICLES = eINSTANCE.getBrokenDownVehicles();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress <em>Rescue And Recovery Work In Progress</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRescueAndRecoveryWorkInProgress()
+ * @generated
+ */
+ EEnum RESCUE_AND_RECOVERY_WORK_IN_PROGRESS = eINSTANCE.getRescueAndRecoveryWorkInProgress();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure <em>Regulatory Measure</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRegulatoryMeasure()
+ * @generated
+ */
+ EEnum REGULATORY_MEASURE = eINSTANCE.getRegulatoryMeasure();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType <em>Lane Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getLaneRestrictionType()
+ * @generated
+ */
+ EEnum LANE_RESTRICTION_TYPE = eINSTANCE.getLaneRestrictionType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.AdviceCode <em>Advice Code</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.AdviceCode
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getAdviceCode()
+ * @generated
+ */
+ EEnum ADVICE_CODE = eINSTANCE.getAdviceCode();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleType <em>Vehicle Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleType
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVehicleType()
+ * @generated
+ */
+ EEnum VEHICLE_TYPE = eINSTANCE.getVehicleType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RestrictionType <em>Restriction Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RestrictionType
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRestrictionType()
+ * @generated
+ */
+ EEnum RESTRICTION_TYPE = eINSTANCE.getRestrictionType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions <em>Extreme Weather Conditions</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getExtremeWeatherConditions()
+ * @generated
+ */
+ EEnum EXTREME_WEATHER_CONDITIONS = eINSTANCE.getExtremeWeatherConditions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced <em>Visibility Reduced</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getVisibilityReduced()
+ * @generated
+ */
+ EEnum VISIBILITY_REDUCED = eINSTANCE.getVisibilityReduced();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.Precipitation <em>Precipitation</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Precipitation
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getPrecipitation()
+ * @generated
+ */
+ EEnum PRECIPITATION = eINSTANCE.getPrecipitation();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons <em>Reckless Persons</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRecklessPersons()
+ * @generated
+ */
+ EEnum RECKLESS_PERSONS = eINSTANCE.getRecklessPersons();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.MajorEvent <em>Major Event</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.MajorEvent
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getMajorEvent()
+ * @generated
+ */
+ EEnum MAJOR_EVENT = eINSTANCE.getMajorEvent();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating <em>Service Not Operating</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getServiceNotOperating()
+ * @generated
+ */
+ EEnum SERVICE_NOT_OPERATING = eINSTANCE.getServiceNotOperating();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable <em>Service Not Usable</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getServiceNotUsable()
+ * @generated
+ */
+ EEnum SERVICE_NOT_USABLE = eINSTANCE.getServiceNotUsable();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles <em>Slow Moving Vehicles</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getSlowMovingVehicles()
+ * @generated
+ */
+ EEnum SLOW_MOVING_VEHICLES = eINSTANCE.getSlowMovingVehicles();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue <em>Dangerous End Of Queue</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDangerousEndOfQueue()
+ * @generated
+ */
+ EEnum DANGEROUS_END_OF_QUEUE = eINSTANCE.getDangerousEndOfQueue();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire <em>Risk Of Fire</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getRiskOfFire()
+ * @generated
+ */
+ EEnum RISK_OF_FIRE = eINSTANCE.getRiskOfFire();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.TimeDelay <em>Time Delay</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TimeDelay
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getTimeDelay()
+ * @generated
+ */
+ EEnum TIME_DELAY = eINSTANCE.getTimeDelay();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint <em>Police Checkpoint</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getPoliceCheckpoint()
+ * @generated
+ */
+ EEnum POLICE_CHECKPOINT = eINSTANCE.getPoliceCheckpoint();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment <em>Malfunctioning Roadside Equipment</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getMalfunctioningRoadsideEquipment()
+ * @generated
+ */
+ EEnum MALFUNCTIONING_ROADSIDE_EQUIPMENT = eINSTANCE.getMalfunctioningRoadsideEquipment();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed <em>Overtaking Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getOvertakingNotAllowed()
+ * @generated
+ */
+ EEnum OVERTAKING_NOT_ALLOWED = eINSTANCE.getOvertakingNotAllowed();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed <em>Driving Not Allowed</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDrivingNotAllowed()
+ * @generated
+ */
+ EEnum DRIVING_NOT_ALLOWED = eINSTANCE.getDrivingNotAllowed();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind <em>Giving Path Vehicles From Behind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getGivingPathVehiclesFromBehind()
+ * @generated
+ */
+ EEnum GIVING_PATH_VEHICLES_FROM_BEHIND = eINSTANCE.getGivingPathVehiclesFromBehind();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion <em>Follow Diversion</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getFollowDiversion()
+ * @generated
+ */
+ EEnum FOLLOW_DIVERSION = eINSTANCE.getFollowDiversion();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully <em>Drive Carefully</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDriveCarefully()
+ * @generated
+ */
+ EEnum DRIVE_CAREFULLY = eINSTANCE.getDriveCarefully();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle <em>Do Not Leave Your Vehicle</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getDoNotLeaveYourVehicle()
+ * @generated
+ */
+ EEnum DO_NOT_LEAVE_YOUR_VEHICLE = eINSTANCE.getDoNotLeaveYourVehicle();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes <em>Use Toll Lanes</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes
+ * @see org.genivi.trafficinfo.tpeg.tec.event.impl.EventPackageImpl#getUseTollLanes()
+ * @generated
+ */
+ EEnum USE_TOLL_LANES = eINSTANCE.getUseTollLanes();
+
+ }
+
+} //EventPackage
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ExtremeWeatherConditions.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ExtremeWeatherConditions.java
new file mode 100755
index 0000000..1783fcf
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ExtremeWeatherConditions.java
@@ -0,0 +1,321 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Extreme Weather Conditions</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getExtremeWeatherConditions()
+ * @model
+ * @generated
+ */
+public enum ExtremeWeatherConditions implements Enumerator {
+ /**
+ * The '<em><b>STRONG WINDS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRONG_WINDS_VALUE
+ * @generated
+ * @ordered
+ */
+ STRONG_WINDS(1, "STRONG_WINDS", "STRONG_WINDS"),
+
+ /**
+ * The '<em><b>DAMAGING HAIL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DAMAGING_HAIL_VALUE
+ * @generated
+ * @ordered
+ */
+ DAMAGING_HAIL(2, "DAMAGING_HAIL", "DAMAGING_HAIL"),
+
+ /**
+ * The '<em><b>HURRICANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HURRICANE_VALUE
+ * @generated
+ * @ordered
+ */
+ HURRICANE(3, "HURRICANE", "HURRICANE"),
+
+ /**
+ * The '<em><b>THUNDERSTORM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #THUNDERSTORM_VALUE
+ * @generated
+ * @ordered
+ */
+ THUNDERSTORM(4, "THUNDERSTORM", "THUNDERSTORM"),
+
+ /**
+ * The '<em><b>TORNADO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TORNADO_VALUE
+ * @generated
+ * @ordered
+ */
+ TORNADO(5, "TORNADO", "TORNADO"),
+
+ /**
+ * The '<em><b>BLIZARD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLIZARD_VALUE
+ * @generated
+ * @ordered
+ */
+ BLIZARD(6, "BLIZARD", "BLIZARD");
+
+ /**
+ * The '<em><b>STRONG WINDS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRONG WINDS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRONG_WINDS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRONG_WINDS_VALUE = 1;
+
+ /**
+ * The '<em><b>DAMAGING HAIL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DAMAGING HAIL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DAMAGING_HAIL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DAMAGING_HAIL_VALUE = 2;
+
+ /**
+ * The '<em><b>HURRICANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HURRICANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HURRICANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HURRICANE_VALUE = 3;
+
+ /**
+ * The '<em><b>THUNDERSTORM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>THUNDERSTORM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #THUNDERSTORM
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int THUNDERSTORM_VALUE = 4;
+
+ /**
+ * The '<em><b>TORNADO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TORNADO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TORNADO
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TORNADO_VALUE = 5;
+
+ /**
+ * The '<em><b>BLIZARD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLIZARD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLIZARD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLIZARD_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Extreme Weather Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ExtremeWeatherConditions[] VALUES_ARRAY =
+ new ExtremeWeatherConditions[] {
+ STRONG_WINDS,
+ DAMAGING_HAIL,
+ HURRICANE,
+ THUNDERSTORM,
+ TORNADO,
+ BLIZARD,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Extreme Weather Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ExtremeWeatherConditions> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Extreme Weather Conditions</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExtremeWeatherConditions get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExtremeWeatherConditions result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Extreme Weather Conditions</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExtremeWeatherConditions getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExtremeWeatherConditions result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Extreme Weather Conditions</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExtremeWeatherConditions get(int value) {
+ switch (value) {
+ case STRONG_WINDS_VALUE: return STRONG_WINDS;
+ case DAMAGING_HAIL_VALUE: return DAMAGING_HAIL;
+ case HURRICANE_VALUE: return HURRICANE;
+ case THUNDERSTORM_VALUE: return THUNDERSTORM;
+ case TORNADO_VALUE: return TORNADO;
+ case BLIZARD_VALUE: return BLIZARD;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ExtremeWeatherConditions(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ExtremeWeatherConditions
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Fire.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Fire.java
new file mode 100755
index 0000000..f7ae2bb
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Fire.java
@@ -0,0 +1,211 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Fire</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getFire()
+ * @model
+ * @generated
+ */
+public enum Fire implements Enumerator {
+ /**
+ * The '<em><b>MAJOR FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAJOR_FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ MAJOR_FIRE(1, "MAJOR_FIRE", "MAJOR_FIRE"), /**
+ * The '<em><b>FOREST FIRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOREST_FIRE_VALUE
+ * @generated
+ * @ordered
+ */
+ FOREST_FIRE(2, "FOREST_FIRE", "FOREST_FIRE");
+
+ /**
+ * The '<em><b>MAJOR FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAJOR FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAJOR_FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MAJOR_FIRE_VALUE = 1;
+
+ /**
+ * The '<em><b>FOREST FIRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOREST FIRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOREST_FIRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOREST_FIRE_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Fire[] VALUES_ARRAY =
+ new Fire[] {
+ MAJOR_FIRE,
+ FOREST_FIRE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Fire> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Fire</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Fire get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Fire result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Fire</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Fire getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Fire result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Fire</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Fire get(int value) {
+ switch (value) {
+ case MAJOR_FIRE_VALUE: return MAJOR_FIRE;
+ case FOREST_FIRE_VALUE: return FOREST_FIRE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Fire(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Fire
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/FollowDiversion.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/FollowDiversion.java
new file mode 100755
index 0000000..d5fc7f5
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/FollowDiversion.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Follow Diversion</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getFollowDiversion()
+ * @model
+ * @generated
+ */
+public enum FollowDiversion implements Enumerator {
+ /**
+ * The '<em><b>FOLLOW DIVERSION SIGNS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION_SIGNS_VALUE
+ * @generated
+ * @ordered
+ */
+ FOLLOW_DIVERSION_SIGNS(1, "FOLLOW_DIVERSION_SIGNS", "FOLLOW_DIVERSION_SIGNS");
+
+ /**
+ * The '<em><b>FOLLOW DIVERSION SIGNS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOLLOW DIVERSION SIGNS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOLLOW_DIVERSION_SIGNS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOLLOW_DIVERSION_SIGNS_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Follow Diversion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final FollowDiversion[] VALUES_ARRAY =
+ new FollowDiversion[] {
+ FOLLOW_DIVERSION_SIGNS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Follow Diversion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<FollowDiversion> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Follow Diversion</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FollowDiversion get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FollowDiversion result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Follow Diversion</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FollowDiversion getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FollowDiversion result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Follow Diversion</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FollowDiversion get(int value) {
+ switch (value) {
+ case FOLLOW_DIVERSION_SIGNS_VALUE: return FOLLOW_DIVERSION_SIGNS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private FollowDiversion(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //FollowDiversion
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/GivingPathVehiclesFromBehind.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/GivingPathVehiclesFromBehind.java
new file mode 100755
index 0000000..7306476
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/GivingPathVehiclesFromBehind.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Giving Path Vehicles From Behind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getGivingPathVehiclesFromBehind()
+ * @model
+ * @generated
+ */
+public enum GivingPathVehiclesFromBehind implements Enumerator {
+ /**
+ * The '<em><b>GIVING PATH FOR RESCUE VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_RESCUE_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ GIVING_PATH_FOR_RESCUE_VEHICLE(1, "GIVING_PATH_FOR_RESCUE_VEHICLE", "GIVING_PATH_FOR_RESCUE_VEHICLE"),
+
+ /**
+ * The '<em><b>GIVING PATH FOR SERVICE VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_SERVICE_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ GIVING_PATH_FOR_SERVICE_VEHICLES(2, "GIVING_PATH_FOR_SERVICE_VEHICLES", "GIVING_PATH_FOR_SERVICE_VEHICLES");
+
+ /**
+ * The '<em><b>GIVING PATH FOR RESCUE VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GIVING PATH FOR RESCUE VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_RESCUE_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GIVING_PATH_FOR_RESCUE_VEHICLE_VALUE = 1;
+
+ /**
+ * The '<em><b>GIVING PATH FOR SERVICE VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GIVING PATH FOR SERVICE VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GIVING_PATH_FOR_SERVICE_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GIVING_PATH_FOR_SERVICE_VEHICLES_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Giving Path Vehicles From Behind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final GivingPathVehiclesFromBehind[] VALUES_ARRAY =
+ new GivingPathVehiclesFromBehind[] {
+ GIVING_PATH_FOR_RESCUE_VEHICLE,
+ GIVING_PATH_FOR_SERVICE_VEHICLES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Giving Path Vehicles From Behind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<GivingPathVehiclesFromBehind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Giving Path Vehicles From Behind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GivingPathVehiclesFromBehind get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GivingPathVehiclesFromBehind result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Giving Path Vehicles From Behind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GivingPathVehiclesFromBehind getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GivingPathVehiclesFromBehind result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Giving Path Vehicles From Behind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GivingPathVehiclesFromBehind get(int value) {
+ switch (value) {
+ case GIVING_PATH_FOR_RESCUE_VEHICLE_VALUE: return GIVING_PATH_FOR_RESCUE_VEHICLE;
+ case GIVING_PATH_FOR_SERVICE_VEHICLES_VALUE: return GIVING_PATH_FOR_SERVICE_VEHICLES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private GivingPathVehiclesFromBehind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //GivingPathVehiclesFromBehind
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/HazardousDrivingConditions.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/HazardousDrivingConditions.java
new file mode 100755
index 0000000..a39b7c1
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/HazardousDrivingConditions.java
@@ -0,0 +1,398 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Hazardous Driving Conditions</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getHazardousDrivingConditions()
+ * @model
+ * @generated
+ */
+public enum HazardousDrivingConditions implements Enumerator {
+ /**
+ * The '<em><b>ROCKFALLS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROCKFALLS_VALUE
+ * @generated
+ * @ordered
+ */
+ ROCKFALLS(1, "ROCKFALLS", "ROCKFALLS"),
+
+ /**
+ * The '<em><b>EARTHQUAKE DAMAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EARTHQUAKE_DAMAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ EARTHQUAKE_DAMAGE(2, "EARTHQUAKE_DAMAGE", "EARTHQUAKE_DAMAGE"),
+
+ /**
+ * The '<em><b>SEWER COLLAPSE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SEWER_COLLAPSE_VALUE
+ * @generated
+ * @ordered
+ */
+ SEWER_COLLAPSE(3, "SEWER_COLLAPSE", "SEWER_COLLAPSE"),
+
+ /**
+ * The '<em><b>SUBSIDENCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SUBSIDENCE_VALUE
+ * @generated
+ * @ordered
+ */
+ SUBSIDENCE(4, "SUBSIDENCE", "SUBSIDENCE"),
+
+ /**
+ * The '<em><b>SNOW DRIFTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SNOW_DRIFTS_VALUE
+ * @generated
+ * @ordered
+ */
+ SNOW_DRIFTS(5, "SNOW_DRIFTS", "SNOW_DRIFTS"),
+
+ /**
+ * The '<em><b>STORM DAMAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STORM_DAMAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ STORM_DAMAGE(6, "STORM_DAMAGE", "STORM_DAMAGE"),
+
+ /**
+ * The '<em><b>BURST PIPE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BURST_PIPE_VALUE
+ * @generated
+ * @ordered
+ */
+ BURST_PIPE(7, "BURST_PIPE", "BURST_PIPE"), /**
+ * The '<em><b>VOLCANO ERUPTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VOLCANO_ERUPTION_VALUE
+ * @generated
+ * @ordered
+ */
+ VOLCANO_ERUPTION(8, "VOLCANO_ERUPTION", "VOLCANO_ERUPTION"), /**
+ * The '<em><b>FALLING ICE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FALLING_ICE_VALUE
+ * @generated
+ * @ordered
+ */
+ FALLING_ICE(9, "FALLING_ICE", "FALLING_ICE");
+
+ /**
+ * The '<em><b>ROCKFALLS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROCKFALLS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROCKFALLS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROCKFALLS_VALUE = 1;
+
+ /**
+ * The '<em><b>EARTHQUAKE DAMAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EARTHQUAKE DAMAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EARTHQUAKE_DAMAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EARTHQUAKE_DAMAGE_VALUE = 2;
+
+ /**
+ * The '<em><b>SEWER COLLAPSE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SEWER COLLAPSE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SEWER_COLLAPSE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SEWER_COLLAPSE_VALUE = 3;
+
+ /**
+ * The '<em><b>SUBSIDENCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SUBSIDENCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SUBSIDENCE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SUBSIDENCE_VALUE = 4;
+
+ /**
+ * The '<em><b>SNOW DRIFTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SNOW DRIFTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SNOW_DRIFTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SNOW_DRIFTS_VALUE = 5;
+
+ /**
+ * The '<em><b>STORM DAMAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STORM DAMAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STORM_DAMAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STORM_DAMAGE_VALUE = 6;
+
+ /**
+ * The '<em><b>BURST PIPE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BURST PIPE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BURST_PIPE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BURST_PIPE_VALUE = 7;
+
+ /**
+ * The '<em><b>VOLCANO ERUPTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VOLCANO ERUPTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VOLCANO_ERUPTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VOLCANO_ERUPTION_VALUE = 8;
+
+ /**
+ * The '<em><b>FALLING ICE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FALLING ICE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FALLING_ICE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FALLING_ICE_VALUE = 9;
+
+ /**
+ * An array of all the '<em><b>Hazardous Driving Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final HazardousDrivingConditions[] VALUES_ARRAY =
+ new HazardousDrivingConditions[] {
+ ROCKFALLS,
+ EARTHQUAKE_DAMAGE,
+ SEWER_COLLAPSE,
+ SUBSIDENCE,
+ SNOW_DRIFTS,
+ STORM_DAMAGE,
+ BURST_PIPE,
+ VOLCANO_ERUPTION,
+ FALLING_ICE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Hazardous Driving Conditions</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<HazardousDrivingConditions> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Hazardous Driving Conditions</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HazardousDrivingConditions get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HazardousDrivingConditions result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Hazardous Driving Conditions</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HazardousDrivingConditions getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ HazardousDrivingConditions result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Hazardous Driving Conditions</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static HazardousDrivingConditions get(int value) {
+ switch (value) {
+ case ROCKFALLS_VALUE: return ROCKFALLS;
+ case EARTHQUAKE_DAMAGE_VALUE: return EARTHQUAKE_DAMAGE;
+ case SEWER_COLLAPSE_VALUE: return SEWER_COLLAPSE;
+ case SUBSIDENCE_VALUE: return SUBSIDENCE;
+ case SNOW_DRIFTS_VALUE: return SNOW_DRIFTS;
+ case STORM_DAMAGE_VALUE: return STORM_DAMAGE;
+ case BURST_PIPE_VALUE: return BURST_PIPE;
+ case VOLCANO_ERUPTION_VALUE: return VOLCANO_ERUPTION;
+ case FALLING_ICE_VALUE: return FALLING_ICE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private HazardousDrivingConditions(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //HazardousDrivingConditions
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Impassibility.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Impassibility.java
new file mode 100755
index 0000000..e5e3eae
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Impassibility.java
@@ -0,0 +1,319 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Impassibility</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getImpassibility()
+ * @model
+ * @generated
+ */
+public enum Impassibility implements Enumerator {
+ /**
+ * The '<em><b>FLOODING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOODING_VALUE
+ * @generated
+ * @ordered
+ */
+ FLOODING(1, "FLOODING", "FLOODING"),
+
+ /**
+ * The '<em><b>DANGER OF AVALANCHES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_OF_AVALANCHES_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_OF_AVALANCHES(2, "DANGER_OF_AVALANCHES", "DANGER_OF_AVALANCHES"),
+
+ /**
+ * The '<em><b>BLASTING OF AVALANCHES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLASTING_OF_AVALANCHES_VALUE
+ * @generated
+ * @ordered
+ */
+ BLASTING_OF_AVALANCHES(3, "BLASTING_OF_AVALANCHES", "BLASTING_OF_AVALANCHES"),
+
+ /**
+ * The '<em><b>LANDSLIPS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LANDSLIPS_VALUE
+ * @generated
+ * @ordered
+ */
+ LANDSLIPS(4, "LANDSLIPS", "LANDSLIPS"),
+
+ /**
+ * The '<em><b>CHEMICAL SPILLAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHEMICAL_SPILLAGE_VALUE
+ * @generated
+ * @ordered
+ */
+ CHEMICAL_SPILLAGE(5, "CHEMICAL_SPILLAGE", "CHEMICAL_SPILLAGE"), /**
+ * The '<em><b>WINTER CLOSURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WINTER_CLOSURE_VALUE
+ * @generated
+ * @ordered
+ */
+ WINTER_CLOSURE(6, "WINTER_CLOSURE", "WINTER_CLOSURE");
+
+ /**
+ * The '<em><b>FLOODING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FLOODING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FLOODING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FLOODING_VALUE = 1;
+
+ /**
+ * The '<em><b>DANGER OF AVALANCHES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER OF AVALANCHES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_OF_AVALANCHES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_OF_AVALANCHES_VALUE = 2;
+
+ /**
+ * The '<em><b>BLASTING OF AVALANCHES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLASTING OF AVALANCHES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLASTING_OF_AVALANCHES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLASTING_OF_AVALANCHES_VALUE = 3;
+
+ /**
+ * The '<em><b>LANDSLIPS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LANDSLIPS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LANDSLIPS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LANDSLIPS_VALUE = 4;
+
+ /**
+ * The '<em><b>CHEMICAL SPILLAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHEMICAL SPILLAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHEMICAL_SPILLAGE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHEMICAL_SPILLAGE_VALUE = 5;
+
+ /**
+ * The '<em><b>WINTER CLOSURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WINTER CLOSURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WINTER_CLOSURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WINTER_CLOSURE_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Impassibility</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Impassibility[] VALUES_ARRAY =
+ new Impassibility[] {
+ FLOODING,
+ DANGER_OF_AVALANCHES,
+ BLASTING_OF_AVALANCHES,
+ LANDSLIPS,
+ CHEMICAL_SPILLAGE,
+ WINTER_CLOSURE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Impassibility</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Impassibility> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Impassibility</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Impassibility get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Impassibility result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Impassibility</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Impassibility getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Impassibility result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Impassibility</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Impassibility get(int value) {
+ switch (value) {
+ case FLOODING_VALUE: return FLOODING;
+ case DANGER_OF_AVALANCHES_VALUE: return DANGER_OF_AVALANCHES;
+ case BLASTING_OF_AVALANCHES_VALUE: return BLASTING_OF_AVALANCHES;
+ case LANDSLIPS_VALUE: return LANDSLIPS;
+ case CHEMICAL_SPILLAGE_VALUE: return CHEMICAL_SPILLAGE;
+ case WINTER_CLOSURE_VALUE: return WINTER_CLOSURE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Impassibility(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Impassibility
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LaneRestrictionType.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LaneRestrictionType.java
new file mode 100755
index 0000000..59bcedf
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LaneRestrictionType.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Lane Restriction Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getLaneRestrictionType()
+ * @model
+ * @generated
+ */
+public enum LaneRestrictionType implements Enumerator {
+ /**
+ * The '<em><b>LANES CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LANES_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ LANES_CLOSED(1, "LANES_CLOSED", "LANES_CLOSED"),
+
+ /**
+ * The '<em><b>LANES OPEN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LANES_OPEN_VALUE
+ * @generated
+ * @ordered
+ */
+ LANES_OPEN(2, "LANES_OPEN", "LANES_OPEN"),
+
+ /**
+ * The '<em><b>RIGHT LANES CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RIGHT_LANES_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ RIGHT_LANES_CLOSED(3, "RIGHT_LANES_CLOSED", "RIGHT_LANES_CLOSED"),
+
+ /**
+ * The '<em><b>LEFT LANES CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEFT_LANES_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ LEFT_LANES_CLOSED(4, "LEFT_LANES_CLOSED", "LEFT_LANES_CLOSED");
+
+ /**
+ * The '<em><b>LANES CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LANES CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LANES_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LANES_CLOSED_VALUE = 1;
+
+ /**
+ * The '<em><b>LANES OPEN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LANES OPEN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LANES_OPEN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LANES_OPEN_VALUE = 2;
+
+ /**
+ * The '<em><b>RIGHT LANES CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RIGHT LANES CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RIGHT_LANES_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RIGHT_LANES_CLOSED_VALUE = 3;
+
+ /**
+ * The '<em><b>LEFT LANES CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEFT LANES CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEFT_LANES_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEFT_LANES_CLOSED_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Lane Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LaneRestrictionType[] VALUES_ARRAY =
+ new LaneRestrictionType[] {
+ LANES_CLOSED,
+ LANES_OPEN,
+ RIGHT_LANES_CLOSED,
+ LEFT_LANES_CLOSED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Lane Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<LaneRestrictionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Lane Restriction Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LaneRestrictionType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LaneRestrictionType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Lane Restriction Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LaneRestrictionType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LaneRestrictionType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Lane Restriction Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LaneRestrictionType get(int value) {
+ switch (value) {
+ case LANES_CLOSED_VALUE: return LANES_CLOSED;
+ case LANES_OPEN_VALUE: return LANES_OPEN;
+ case RIGHT_LANES_CLOSED_VALUE: return RIGHT_LANES_CLOSED;
+ case LEFT_LANES_CLOSED_VALUE: return LEFT_LANES_CLOSED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LaneRestrictionType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //LaneRestrictionType
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LinkedCause.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LinkedCause.java
new file mode 100755
index 0000000..c2cbaf9
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/LinkedCause.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linked Cause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getLinkedMessage <em>Linked Message</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getCOID <em>COID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getOriginatorSID <em>Originator SID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getLinkedCause()
+ * @model
+ * @generated
+ */
+public interface LinkedCause extends Cause {
+ /**
+ * Returns the value of the '<em><b>Linked Message</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Linked Message</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Linked Message</em>' attribute.
+ * @see #isSetLinkedMessage()
+ * @see #unsetLinkedMessage()
+ * @see #setLinkedMessage(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getLinkedCause_LinkedMessage()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ Integer getLinkedMessage();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getLinkedMessage <em>Linked Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Linked Message</em>' attribute.
+ * @see #isSetLinkedMessage()
+ * @see #unsetLinkedMessage()
+ * @see #getLinkedMessage()
+ * @generated
+ */
+ void setLinkedMessage(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getLinkedMessage <em>Linked Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLinkedMessage()
+ * @see #getLinkedMessage()
+ * @see #setLinkedMessage(Integer)
+ * @generated
+ */
+ void unsetLinkedMessage();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getLinkedMessage <em>Linked Message</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Linked Message</em>' attribute is set.
+ * @see #unsetLinkedMessage()
+ * @see #getLinkedMessage()
+ * @see #setLinkedMessage(Integer)
+ * @generated
+ */
+ boolean isSetLinkedMessage();
+
+ /**
+ * Returns the value of the '<em><b>COID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>COID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>COID</em>' attribute.
+ * @see #isSetCOID()
+ * @see #unsetCOID()
+ * @see #setCOID(byte)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getLinkedCause_COID()
+ * @model unsettable="true"
+ * @generated
+ */
+ byte getCOID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getCOID <em>COID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>COID</em>' attribute.
+ * @see #isSetCOID()
+ * @see #unsetCOID()
+ * @see #getCOID()
+ * @generated
+ */
+ void setCOID(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getCOID <em>COID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCOID()
+ * @see #getCOID()
+ * @see #setCOID(byte)
+ * @generated
+ */
+ void unsetCOID();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getCOID <em>COID</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>COID</em>' attribute is set.
+ * @see #unsetCOID()
+ * @see #getCOID()
+ * @see #setCOID(byte)
+ * @generated
+ */
+ boolean isSetCOID();
+
+ /**
+ * Returns the value of the '<em><b>Originator SID</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Originator SID</em>' containment reference.
+ * @see #setOriginatorSID(ServiceIdentifier)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getLinkedCause_OriginatorSID()
+ * @model containment="true"
+ * @generated
+ */
+ ServiceIdentifier getOriginatorSID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause#getOriginatorSID <em>Originator SID</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Originator SID</em>' containment reference.
+ * @see #getOriginatorSID()
+ * @generated
+ */
+ void setOriginatorSID(ServiceIdentifier value);
+
+} // LinkedCause
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MajorEvent.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MajorEvent.java
new file mode 100755
index 0000000..67232ad
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MajorEvent.java
@@ -0,0 +1,402 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Major Event</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getMajorEvent()
+ * @model
+ * @generated
+ */
+public enum MajorEvent implements Enumerator {
+ /**
+ * The '<em><b>SPORTS EVENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SPORTS_EVENT_VALUE
+ * @generated
+ * @ordered
+ */
+ SPORTS_EVENT(1, "SPORTS_EVENT", "SPORTS_EVENT"),
+
+ /**
+ * The '<em><b>DEMONSTRATION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION_VALUE
+ * @generated
+ * @ordered
+ */
+ DEMONSTRATION(2, "DEMONSTRATION", "DEMONSTRATION"),
+
+ /**
+ * The '<em><b>DEMONSTRATION WITH VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION_WITH_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ DEMONSTRATION_WITH_VEHICLES(3, "DEMONSTRATION_WITH_VEHICLES", "DEMONSTRATION_WITH_VEHICLES"),
+
+ /**
+ * The '<em><b>CONCERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONCERT_VALUE
+ * @generated
+ * @ordered
+ */
+ CONCERT(4, "CONCERT", "CONCERT"),
+
+ /**
+ * The '<em><b>FAIR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FAIR_VALUE
+ * @generated
+ * @ordered
+ */
+ FAIR(5, "FAIR", "FAIR"),
+
+ /**
+ * The '<em><b>MILITARY TRAINING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MILITARY_TRAINING_VALUE
+ * @generated
+ * @ordered
+ */
+ MILITARY_TRAINING(6, "MILITARY_TRAINING", "MILITARY_TRAINING"),
+
+ /**
+ * The '<em><b>EMERGENCY TRAINING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TRAINING_VALUE
+ * @generated
+ * @ordered
+ */
+ EMERGENCY_TRAINING(7, "EMERGENCY_TRAINING", "EMERGENCY_TRAINING"),
+
+ /**
+ * The '<em><b>FESTIVITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FESTIVITY_VALUE
+ * @generated
+ * @ordered
+ */
+ FESTIVITY(8, "FESTIVITY", "FESTIVITY"),
+
+ /**
+ * The '<em><b>PROCESSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROCESSION_VALUE
+ * @generated
+ * @ordered
+ */
+ PROCESSION(9, "PROCESSION", "PROCESSION");
+
+ /**
+ * The '<em><b>SPORTS EVENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SPORTS EVENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SPORTS_EVENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SPORTS_EVENT_VALUE = 1;
+
+ /**
+ * The '<em><b>DEMONSTRATION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEMONSTRATION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEMONSTRATION_VALUE = 2;
+
+ /**
+ * The '<em><b>DEMONSTRATION WITH VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEMONSTRATION WITH VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEMONSTRATION_WITH_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEMONSTRATION_WITH_VEHICLES_VALUE = 3;
+
+ /**
+ * The '<em><b>CONCERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONCERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONCERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONCERT_VALUE = 4;
+
+ /**
+ * The '<em><b>FAIR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FAIR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FAIR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FAIR_VALUE = 5;
+
+ /**
+ * The '<em><b>MILITARY TRAINING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MILITARY TRAINING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MILITARY_TRAINING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MILITARY_TRAINING_VALUE = 6;
+
+ /**
+ * The '<em><b>EMERGENCY TRAINING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EMERGENCY TRAINING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TRAINING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EMERGENCY_TRAINING_VALUE = 7;
+
+ /**
+ * The '<em><b>FESTIVITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FESTIVITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FESTIVITY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FESTIVITY_VALUE = 8;
+
+ /**
+ * The '<em><b>PROCESSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PROCESSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROCESSION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PROCESSION_VALUE = 9;
+
+ /**
+ * An array of all the '<em><b>Major Event</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MajorEvent[] VALUES_ARRAY =
+ new MajorEvent[] {
+ SPORTS_EVENT,
+ DEMONSTRATION,
+ DEMONSTRATION_WITH_VEHICLES,
+ CONCERT,
+ FAIR,
+ MILITARY_TRAINING,
+ EMERGENCY_TRAINING,
+ FESTIVITY,
+ PROCESSION,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Major Event</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<MajorEvent> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Major Event</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MajorEvent get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MajorEvent result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Major Event</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MajorEvent getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MajorEvent result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Major Event</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MajorEvent get(int value) {
+ switch (value) {
+ case SPORTS_EVENT_VALUE: return SPORTS_EVENT;
+ case DEMONSTRATION_VALUE: return DEMONSTRATION;
+ case DEMONSTRATION_WITH_VEHICLES_VALUE: return DEMONSTRATION_WITH_VEHICLES;
+ case CONCERT_VALUE: return CONCERT;
+ case FAIR_VALUE: return FAIR;
+ case MILITARY_TRAINING_VALUE: return MILITARY_TRAINING;
+ case EMERGENCY_TRAINING_VALUE: return EMERGENCY_TRAINING;
+ case FESTIVITY_VALUE: return FESTIVITY;
+ case PROCESSION_VALUE: return PROCESSION;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MajorEvent(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //MajorEvent
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MalfunctioningRoadsideEquipment.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MalfunctioningRoadsideEquipment.java
new file mode 100755
index 0000000..b06b591
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/MalfunctioningRoadsideEquipment.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Malfunctioning Roadside Equipment</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getMalfunctioningRoadsideEquipment()
+ * @model
+ * @generated
+ */
+public enum MalfunctioningRoadsideEquipment implements Enumerator {
+ /**
+ * The '<em><b>ROAD RAIL CROSSING FAILURE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROAD_RAIL_CROSSING_FAILURE_VALUE
+ * @generated
+ * @ordered
+ */
+ ROAD_RAIL_CROSSING_FAILURE(1, "ROAD_RAIL_CROSSING_FAILURE", "ROAD_RAIL_CROSSING_FAILURE"),
+
+ /**
+ * The '<em><b>TUNNEL VENTILATION NOT WORKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TUNNEL_VENTILATION_NOT_WORKING_VALUE
+ * @generated
+ * @ordered
+ */
+ TUNNEL_VENTILATION_NOT_WORKING(2, "TUNNEL_VENTILATION_NOT_WORKING", "TUNNEL_VENTILATION_NOT_WORKING"),
+
+ /**
+ * The '<em><b>TRAFFIC CONTROL SIGNALS WORKING INCORRECTLY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY(3, "TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY", "TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY"),
+
+ /**
+ * The '<em><b>EMERGENCY TELEPHONES NOT WORKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TELEPHONES_NOT_WORKING_VALUE
+ * @generated
+ * @ordered
+ */
+ EMERGENCY_TELEPHONES_NOT_WORKING(4, "EMERGENCY_TELEPHONES_NOT_WORKING", "EMERGENCY_TELEPHONES_NOT_WORKING"),
+
+ /**
+ * The '<em><b>AUTOMATIC PAYMENT LANES NOT WORKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AUTOMATIC_PAYMENT_LANES_NOT_WORKING_VALUE
+ * @generated
+ * @ordered
+ */
+ AUTOMATIC_PAYMENT_LANES_NOT_WORKING(5, "AUTOMATIC_PAYMENT_LANES_NOT_WORKING", "AUTOMATIC_PAYMENT_LANES_NOT_WORKING");
+
+ /**
+ * The '<em><b>ROAD RAIL CROSSING FAILURE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROAD RAIL CROSSING FAILURE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROAD_RAIL_CROSSING_FAILURE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROAD_RAIL_CROSSING_FAILURE_VALUE = 1;
+
+ /**
+ * The '<em><b>TUNNEL VENTILATION NOT WORKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TUNNEL VENTILATION NOT WORKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TUNNEL_VENTILATION_NOT_WORKING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TUNNEL_VENTILATION_NOT_WORKING_VALUE = 2;
+
+ /**
+ * The '<em><b>TRAFFIC CONTROL SIGNALS WORKING INCORRECTLY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAFFIC CONTROL SIGNALS WORKING INCORRECTLY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY_VALUE = 3;
+
+ /**
+ * The '<em><b>EMERGENCY TELEPHONES NOT WORKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EMERGENCY TELEPHONES NOT WORKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_TELEPHONES_NOT_WORKING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EMERGENCY_TELEPHONES_NOT_WORKING_VALUE = 4;
+
+ /**
+ * The '<em><b>AUTOMATIC PAYMENT LANES NOT WORKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AUTOMATIC PAYMENT LANES NOT WORKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AUTOMATIC_PAYMENT_LANES_NOT_WORKING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AUTOMATIC_PAYMENT_LANES_NOT_WORKING_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Malfunctioning Roadside Equipment</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MalfunctioningRoadsideEquipment[] VALUES_ARRAY =
+ new MalfunctioningRoadsideEquipment[] {
+ ROAD_RAIL_CROSSING_FAILURE,
+ TUNNEL_VENTILATION_NOT_WORKING,
+ TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY,
+ EMERGENCY_TELEPHONES_NOT_WORKING,
+ AUTOMATIC_PAYMENT_LANES_NOT_WORKING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Malfunctioning Roadside Equipment</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<MalfunctioningRoadsideEquipment> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Malfunctioning Roadside Equipment</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MalfunctioningRoadsideEquipment get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MalfunctioningRoadsideEquipment result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Malfunctioning Roadside Equipment</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MalfunctioningRoadsideEquipment getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MalfunctioningRoadsideEquipment result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Malfunctioning Roadside Equipment</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MalfunctioningRoadsideEquipment get(int value) {
+ switch (value) {
+ case ROAD_RAIL_CROSSING_FAILURE_VALUE: return ROAD_RAIL_CROSSING_FAILURE;
+ case TUNNEL_VENTILATION_NOT_WORKING_VALUE: return TUNNEL_VENTILATION_NOT_WORKING;
+ case TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY_VALUE: return TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY;
+ case EMERGENCY_TELEPHONES_NOT_WORKING_VALUE: return EMERGENCY_TELEPHONES_NOT_WORKING;
+ case AUTOMATIC_PAYMENT_LANES_NOT_WORKING_VALUE: return AUTOMATIC_PAYMENT_LANES_NOT_WORKING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MalfunctioningRoadsideEquipment(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //MalfunctioningRoadsideEquipment
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/NarrowLanes.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/NarrowLanes.java
new file mode 100755
index 0000000..9ff1631
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/NarrowLanes.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Narrow Lanes</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getNarrowLanes()
+ * @model
+ * @generated
+ */
+public enum NarrowLanes implements Enumerator {
+ /**
+ * The '<em><b>CONTRAFLOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONTRAFLOW_VALUE
+ * @generated
+ * @ordered
+ */
+ CONTRAFLOW(1, "CONTRAFLOW", "CONTRAFLOW"),
+
+ /**
+ * The '<em><b>HARD SHOULDER CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HARD_SHOULDER_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ HARD_SHOULDER_CLOSED(2, "HARD_SHOULDER_CLOSED", "HARD_SHOULDER_CLOSED"),
+
+ /**
+ * The '<em><b>SLIP LANE CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIP_LANE_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIP_LANE_CLOSED(3, "SLIP_LANE_CLOSED", "SLIP_LANE_CLOSED"),
+
+ /**
+ * The '<em><b>CRAWLER LANE CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CRAWLER_LANE_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ CRAWLER_LANE_CLOSED(4, "CRAWLER_LANE_CLOSED", "CRAWLER_LANE_CLOSED");
+
+ /**
+ * The '<em><b>CONTRAFLOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONTRAFLOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONTRAFLOW
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONTRAFLOW_VALUE = 1;
+
+ /**
+ * The '<em><b>HARD SHOULDER CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HARD SHOULDER CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HARD_SHOULDER_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HARD_SHOULDER_CLOSED_VALUE = 2;
+
+ /**
+ * The '<em><b>SLIP LANE CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIP LANE CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIP_LANE_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIP_LANE_CLOSED_VALUE = 3;
+
+ /**
+ * The '<em><b>CRAWLER LANE CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CRAWLER LANE CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CRAWLER_LANE_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CRAWLER_LANE_CLOSED_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Narrow Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final NarrowLanes[] VALUES_ARRAY =
+ new NarrowLanes[] {
+ CONTRAFLOW,
+ HARD_SHOULDER_CLOSED,
+ SLIP_LANE_CLOSED,
+ CRAWLER_LANE_CLOSED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Narrow Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<NarrowLanes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Narrow Lanes</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NarrowLanes get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ NarrowLanes result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Narrow Lanes</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NarrowLanes getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ NarrowLanes result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Narrow Lanes</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NarrowLanes get(int value) {
+ switch (value) {
+ case CONTRAFLOW_VALUE: return CONTRAFLOW;
+ case HARD_SHOULDER_CLOSED_VALUE: return HARD_SHOULDER_CLOSED;
+ case SLIP_LANE_CLOSED_VALUE: return SLIP_LANE_CLOSED;
+ case CRAWLER_LANE_CLOSED_VALUE: return CRAWLER_LANE_CLOSED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private NarrowLanes(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //NarrowLanes
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ObjectsOnTheRoad.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ObjectsOnTheRoad.java
new file mode 100755
index 0000000..2bf3314
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ObjectsOnTheRoad.java
@@ -0,0 +1,346 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Objects On The Road</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getObjectsOnTheRoad()
+ * @model
+ * @generated
+ */
+public enum ObjectsOnTheRoad implements Enumerator {
+ /**
+ * The '<em><b>SHED LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SHED_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ SHED_LOAD(1, "SHED_LOAD", "SHED_LOAD"),
+
+ /**
+ * The '<em><b>PARTS OF VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ PARTS_OF_VEHICLES(2, "PARTS_OF_VEHICLES", "PARTS_OF_VEHICLES"),
+
+ /**
+ * The '<em><b>PARTS OF TYRES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_TYRES_VALUE
+ * @generated
+ * @ordered
+ */
+ PARTS_OF_TYRES(3, "PARTS_OF_TYRES", "PARTS_OF_TYRES"),
+
+ /**
+ * The '<em><b>BIG OBJECTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BIG_OBJECTS_VALUE
+ * @generated
+ * @ordered
+ */
+ BIG_OBJECTS(4, "BIG_OBJECTS", "BIG_OBJECTS"),
+
+ /**
+ * The '<em><b>FALLEN TREES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FALLEN_TREES_VALUE
+ * @generated
+ * @ordered
+ */
+ FALLEN_TREES(5, "FALLEN_TREES", "FALLEN_TREES"),
+
+ /**
+ * The '<em><b>HUB CAPS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HUB_CAPS_VALUE
+ * @generated
+ * @ordered
+ */
+ HUB_CAPS(6, "HUB_CAPS", "HUB_CAPS"), /**
+ * The '<em><b>WAITING VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAITING_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ WAITING_VEHICLES(7, "WAITING_VEHICLES", "WAITING_VEHICLES");
+
+ /**
+ * The '<em><b>SHED LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SHED LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SHED_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SHED_LOAD_VALUE = 1;
+
+ /**
+ * The '<em><b>PARTS OF VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARTS OF VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARTS_OF_VEHICLES_VALUE = 2;
+
+ /**
+ * The '<em><b>PARTS OF TYRES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARTS OF TYRES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARTS_OF_TYRES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARTS_OF_TYRES_VALUE = 3;
+
+ /**
+ * The '<em><b>BIG OBJECTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BIG OBJECTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BIG_OBJECTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BIG_OBJECTS_VALUE = 4;
+
+ /**
+ * The '<em><b>FALLEN TREES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FALLEN TREES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FALLEN_TREES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FALLEN_TREES_VALUE = 5;
+
+ /**
+ * The '<em><b>HUB CAPS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HUB CAPS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HUB_CAPS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HUB_CAPS_VALUE = 6;
+
+ /**
+ * The '<em><b>WAITING VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAITING VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAITING_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAITING_VEHICLES_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Objects On The Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ObjectsOnTheRoad[] VALUES_ARRAY =
+ new ObjectsOnTheRoad[] {
+ SHED_LOAD,
+ PARTS_OF_VEHICLES,
+ PARTS_OF_TYRES,
+ BIG_OBJECTS,
+ FALLEN_TREES,
+ HUB_CAPS,
+ WAITING_VEHICLES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Objects On The Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ObjectsOnTheRoad> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Objects On The Road</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ObjectsOnTheRoad get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ObjectsOnTheRoad result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Objects On The Road</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ObjectsOnTheRoad getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ObjectsOnTheRoad result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Objects On The Road</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ObjectsOnTheRoad get(int value) {
+ switch (value) {
+ case SHED_LOAD_VALUE: return SHED_LOAD;
+ case PARTS_OF_VEHICLES_VALUE: return PARTS_OF_VEHICLES;
+ case PARTS_OF_TYRES_VALUE: return PARTS_OF_TYRES;
+ case BIG_OBJECTS_VALUE: return BIG_OBJECTS;
+ case FALLEN_TREES_VALUE: return FALLEN_TREES;
+ case HUB_CAPS_VALUE: return HUB_CAPS;
+ case WAITING_VEHICLES_VALUE: return WAITING_VEHICLES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ObjectsOnTheRoad(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ObjectsOnTheRoad
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/OvertakingNotAllowed.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/OvertakingNotAllowed.java
new file mode 100755
index 0000000..cf0e146
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/OvertakingNotAllowed.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Overtaking Not Allowed</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getOvertakingNotAllowed()
+ * @model
+ * @generated
+ */
+public enum OvertakingNotAllowed implements Enumerator {
+ /**
+ * The '<em><b>DO NOT USE OVERTAKING LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_USE_OVERTAKING_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ DO_NOT_USE_OVERTAKING_LANES(1, "DO_NOT_USE_OVERTAKING_LANES", "DO_NOT_USE_OVERTAKING_LANES"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON CRAWLER LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE(2, "OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE", "OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON LEFT MOST LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE(3, "OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE", "OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE"),
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON RIGHT MOST LANE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE_VALUE
+ * @generated
+ * @ordered
+ */
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE(4, "OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE", "OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE");
+
+ /**
+ * The '<em><b>DO NOT USE OVERTAKING LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DO NOT USE OVERTAKING LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DO_NOT_USE_OVERTAKING_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DO_NOT_USE_OVERTAKING_LANES_VALUE = 1;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON CRAWLER LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED DRIVE ON CRAWLER LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE_VALUE = 2;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON LEFT MOST LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED DRIVE ON LEFT MOST LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE_VALUE = 3;
+
+ /**
+ * The '<em><b>OVERTAKING NOT ALLOWED DRIVE ON RIGHT MOST LANE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERTAKING NOT ALLOWED DRIVE ON RIGHT MOST LANE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Overtaking Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final OvertakingNotAllowed[] VALUES_ARRAY =
+ new OvertakingNotAllowed[] {
+ DO_NOT_USE_OVERTAKING_LANES,
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE,
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE,
+ OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Overtaking Not Allowed</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<OvertakingNotAllowed> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Overtaking Not Allowed</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OvertakingNotAllowed get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OvertakingNotAllowed result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Overtaking Not Allowed</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OvertakingNotAllowed getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OvertakingNotAllowed result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Overtaking Not Allowed</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OvertakingNotAllowed get(int value) {
+ switch (value) {
+ case DO_NOT_USE_OVERTAKING_LANES_VALUE: return DO_NOT_USE_OVERTAKING_LANES;
+ case OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE_VALUE: return OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE;
+ case OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE_VALUE: return OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE;
+ case OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE_VALUE: return OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private OvertakingNotAllowed(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //OvertakingNotAllowed
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PeopleOnRoadway.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PeopleOnRoadway.java
new file mode 100755
index 0000000..89869df
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PeopleOnRoadway.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>People On Roadway</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getPeopleOnRoadway()
+ * @model
+ * @generated
+ */
+public enum PeopleOnRoadway implements Enumerator {
+ /**
+ * The '<em><b>CHILDREN ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHILDREN_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ CHILDREN_ON_ROADWAY(0, "CHILDREN_ON_ROADWAY", "CHILDREN_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>CYCLISTS ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CYCLISTS_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ CYCLISTS_ON_ROADWAY(2, "CYCLISTS_ON_ROADWAY", "CYCLISTS_ON_ROADWAY"),
+
+ /**
+ * The '<em><b>MOTOR CYCLIST ON ROADWAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLIST_ON_ROADWAY_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTOR_CYCLIST_ON_ROADWAY(3, "MOTOR_CYCLIST_ON_ROADWAY", "MOTOR_CYCLIST_ON_ROADWAY");
+
+ /**
+ * The '<em><b>CHILDREN ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHILDREN ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHILDREN_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHILDREN_ON_ROADWAY_VALUE = 0;
+
+ /**
+ * The '<em><b>CYCLISTS ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CYCLISTS ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CYCLISTS_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CYCLISTS_ON_ROADWAY_VALUE = 2;
+
+ /**
+ * The '<em><b>MOTOR CYCLIST ON ROADWAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTOR CYCLIST ON ROADWAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLIST_ON_ROADWAY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTOR_CYCLIST_ON_ROADWAY_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>People On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PeopleOnRoadway[] VALUES_ARRAY =
+ new PeopleOnRoadway[] {
+ CHILDREN_ON_ROADWAY,
+ CYCLISTS_ON_ROADWAY,
+ MOTOR_CYCLIST_ON_ROADWAY,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>People On Roadway</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PeopleOnRoadway> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>People On Roadway</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PeopleOnRoadway get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PeopleOnRoadway result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>People On Roadway</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PeopleOnRoadway getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PeopleOnRoadway result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>People On Roadway</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PeopleOnRoadway get(int value) {
+ switch (value) {
+ case CHILDREN_ON_ROADWAY_VALUE: return CHILDREN_ON_ROADWAY;
+ case CYCLISTS_ON_ROADWAY_VALUE: return CYCLISTS_ON_ROADWAY;
+ case MOTOR_CYCLIST_ON_ROADWAY_VALUE: return MOTOR_CYCLIST_ON_ROADWAY;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PeopleOnRoadway(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //PeopleOnRoadway
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PoliceCheckpoint.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PoliceCheckpoint.java
new file mode 100755
index 0000000..c6cebd2
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/PoliceCheckpoint.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Police Checkpoint</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getPoliceCheckpoint()
+ * @model
+ * @generated
+ */
+public enum PoliceCheckpoint implements Enumerator {
+ /**
+ * The '<em><b>PERMANENT POLICE CHECKPOINT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERMANENT_POLICE_CHECKPOINT_VALUE
+ * @generated
+ * @ordered
+ */
+ PERMANENT_POLICE_CHECKPOINT(1, "PERMANENT_POLICE_CHECKPOINT", "PERMANENT_POLICE_CHECKPOINT"),
+
+ /**
+ * The '<em><b>TEMPORARY POLICE CHECKPOINT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TEMPORARY_POLICE_CHECKPOINT_VALUE
+ * @generated
+ * @ordered
+ */
+ TEMPORARY_POLICE_CHECKPOINT(2, "TEMPORARY_POLICE_CHECKPOINT", "TEMPORARY_POLICE_CHECKPOINT");
+
+ /**
+ * The '<em><b>PERMANENT POLICE CHECKPOINT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERMANENT POLICE CHECKPOINT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERMANENT_POLICE_CHECKPOINT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERMANENT_POLICE_CHECKPOINT_VALUE = 1;
+
+ /**
+ * The '<em><b>TEMPORARY POLICE CHECKPOINT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TEMPORARY POLICE CHECKPOINT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TEMPORARY_POLICE_CHECKPOINT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TEMPORARY_POLICE_CHECKPOINT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Police Checkpoint</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PoliceCheckpoint[] VALUES_ARRAY =
+ new PoliceCheckpoint[] {
+ PERMANENT_POLICE_CHECKPOINT,
+ TEMPORARY_POLICE_CHECKPOINT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Police Checkpoint</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<PoliceCheckpoint> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Police Checkpoint</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PoliceCheckpoint get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PoliceCheckpoint result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Police Checkpoint</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PoliceCheckpoint getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PoliceCheckpoint result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Police Checkpoint</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PoliceCheckpoint get(int value) {
+ switch (value) {
+ case PERMANENT_POLICE_CHECKPOINT_VALUE: return PERMANENT_POLICE_CHECKPOINT;
+ case TEMPORARY_POLICE_CHECKPOINT_VALUE: return TEMPORARY_POLICE_CHECKPOINT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PoliceCheckpoint(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //PoliceCheckpoint
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Precipitation.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Precipitation.java
new file mode 100755
index 0000000..8e5323f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Precipitation.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Precipitation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getPrecipitation()
+ * @model
+ * @generated
+ */
+public enum Precipitation implements Enumerator {
+ /**
+ * The '<em><b>HEAVY RAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_RAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_RAIN(1, "HEAVY_RAIN", "HEAVY_RAIN"),
+
+ /**
+ * The '<em><b>HEAVY SNOWFALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_SNOWFALL_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_SNOWFALL(2, "HEAVY_SNOWFALL", "HEAVY_SNOWFALL"),
+
+ /**
+ * The '<em><b>SOFT HAIL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SOFT_HAIL_VALUE
+ * @generated
+ * @ordered
+ */
+ SOFT_HAIL(3, "SOFT_HAIL", "SOFT_HAIL");
+
+ /**
+ * The '<em><b>HEAVY RAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY RAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_RAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_RAIN_VALUE = 1;
+
+ /**
+ * The '<em><b>HEAVY SNOWFALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY SNOWFALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_SNOWFALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_SNOWFALL_VALUE = 2;
+
+ /**
+ * The '<em><b>SOFT HAIL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SOFT HAIL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SOFT_HAIL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SOFT_HAIL_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Precipitation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Precipitation[] VALUES_ARRAY =
+ new Precipitation[] {
+ HEAVY_RAIN,
+ HEAVY_SNOWFALL,
+ SOFT_HAIL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Precipitation</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Precipitation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Precipitation</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Precipitation get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Precipitation result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Precipitation</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Precipitation getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Precipitation result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Precipitation</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Precipitation get(int value) {
+ switch (value) {
+ case HEAVY_RAIN_VALUE: return HEAVY_RAIN;
+ case HEAVY_SNOWFALL_VALUE: return HEAVY_SNOWFALL;
+ case SOFT_HAIL_VALUE: return SOFT_HAIL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Precipitation(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Precipitation
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RecklessPersons.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RecklessPersons.java
new file mode 100755
index 0000000..cd7ce0c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RecklessPersons.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Reckless Persons</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getRecklessPersons()
+ * @model
+ * @generated
+ */
+public enum RecklessPersons implements Enumerator {
+ /**
+ * The '<em><b>RECKLESS DRIVER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_DRIVER_VALUE
+ * @generated
+ * @ordered
+ */
+ RECKLESS_DRIVER(1, "RECKLESS_DRIVER", "RECKLESS_DRIVER"),
+
+ /**
+ * The '<em><b>GUNFIRE ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GUNFIRE_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ GUNFIRE_ON_ROAD(2, "GUNFIRE_ON_ROAD", "GUNFIRE_ON_ROAD"),
+
+ /**
+ * The '<em><b>STONE THROWING PERSONS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STONE_THROWING_PERSONS_VALUE
+ * @generated
+ * @ordered
+ */
+ STONE_THROWING_PERSONS(3, "STONE_THROWING_PERSONS", "STONE_THROWING_PERSONS");
+
+ /**
+ * The '<em><b>RECKLESS DRIVER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RECKLESS DRIVER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RECKLESS_DRIVER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RECKLESS_DRIVER_VALUE = 1;
+
+ /**
+ * The '<em><b>GUNFIRE ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GUNFIRE ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GUNFIRE_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GUNFIRE_ON_ROAD_VALUE = 2;
+
+ /**
+ * The '<em><b>STONE THROWING PERSONS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STONE THROWING PERSONS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STONE_THROWING_PERSONS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STONE_THROWING_PERSONS_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Reckless Persons</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RecklessPersons[] VALUES_ARRAY =
+ new RecklessPersons[] {
+ RECKLESS_DRIVER,
+ GUNFIRE_ON_ROAD,
+ STONE_THROWING_PERSONS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Reckless Persons</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RecklessPersons> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Reckless Persons</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RecklessPersons get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RecklessPersons result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Reckless Persons</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RecklessPersons getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RecklessPersons result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Reckless Persons</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RecklessPersons get(int value) {
+ switch (value) {
+ case RECKLESS_DRIVER_VALUE: return RECKLESS_DRIVER;
+ case GUNFIRE_ON_ROAD_VALUE: return GUNFIRE_ON_ROAD;
+ case STONE_THROWING_PERSONS_VALUE: return STONE_THROWING_PERSONS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RecklessPersons(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RecklessPersons
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RegulatoryMeasure.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RegulatoryMeasure.java
new file mode 100755
index 0000000..17bc6c2
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RegulatoryMeasure.java
@@ -0,0 +1,317 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Regulatory Measure</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getRegulatoryMeasure()
+ * @model
+ * @generated
+ */
+public enum RegulatoryMeasure implements Enumerator {
+ /**
+ * The '<em><b>SECURITY ALERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SECURITY_ALERT_VALUE
+ * @generated
+ * @ordered
+ */
+ SECURITY_ALERT(1, "SECURITY_ALERT", "SECURITY_ALERT"),
+
+ /**
+ * The '<em><b>CONTAGIOUS DISEASE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONTAGIOUS_DISEASE_VALUE
+ * @generated
+ * @ordered
+ */
+ CONTAGIOUS_DISEASE(2, "CONTAGIOUS_DISEASE", "CONTAGIOUS_DISEASE"),
+
+ /**
+ * The '<em><b>ENVIRONMENTAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ENVIRONMENTAL_VALUE
+ * @generated
+ * @ordered
+ */
+ ENVIRONMENTAL(3, "ENVIRONMENTAL", "ENVIRONMENTAL"),
+
+ /**
+ * The '<em><b>SMOG ALERT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SMOG_ALERT_VALUE
+ * @generated
+ * @ordered
+ */
+ SMOG_ALERT(4, "SMOG_ALERT", "SMOG_ALERT"), /**
+ * The '<em><b>BATCH SERVICE IN PROGRESS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BATCH_SERVICE_IN_PROGRESS_VALUE
+ * @generated
+ * @ordered
+ */
+ BATCH_SERVICE_IN_PROGRESS(5, "BATCH_SERVICE_IN_PROGRESS", "BATCH_SERVICE_IN_PROGRESS"), /**
+ * The '<em><b>ROAD CLOSED BY THE REGULATORY AUTHORITIES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES_VALUE
+ * @generated
+ * @ordered
+ */
+ ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES(6, "ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES", "ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES");
+
+ /**
+ * The '<em><b>SECURITY ALERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SECURITY ALERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SECURITY_ALERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SECURITY_ALERT_VALUE = 1;
+
+ /**
+ * The '<em><b>CONTAGIOUS DISEASE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONTAGIOUS DISEASE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONTAGIOUS_DISEASE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONTAGIOUS_DISEASE_VALUE = 2;
+
+ /**
+ * The '<em><b>ENVIRONMENTAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ENVIRONMENTAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ENVIRONMENTAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ENVIRONMENTAL_VALUE = 3;
+
+ /**
+ * The '<em><b>SMOG ALERT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SMOG ALERT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SMOG_ALERT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SMOG_ALERT_VALUE = 4;
+
+ /**
+ * The '<em><b>BATCH SERVICE IN PROGRESS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BATCH SERVICE IN PROGRESS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BATCH_SERVICE_IN_PROGRESS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BATCH_SERVICE_IN_PROGRESS_VALUE = 5;
+
+ /**
+ * The '<em><b>ROAD CLOSED BY THE REGULATORY AUTHORITIES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROAD CLOSED BY THE REGULATORY AUTHORITIES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES_VALUE = 6;
+
+ /**
+ * An array of all the '<em><b>Regulatory Measure</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RegulatoryMeasure[] VALUES_ARRAY =
+ new RegulatoryMeasure[] {
+ SECURITY_ALERT,
+ CONTAGIOUS_DISEASE,
+ ENVIRONMENTAL,
+ SMOG_ALERT,
+ BATCH_SERVICE_IN_PROGRESS,
+ ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Regulatory Measure</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RegulatoryMeasure> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Regulatory Measure</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RegulatoryMeasure get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RegulatoryMeasure result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Regulatory Measure</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RegulatoryMeasure getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RegulatoryMeasure result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Regulatory Measure</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RegulatoryMeasure get(int value) {
+ switch (value) {
+ case SECURITY_ALERT_VALUE: return SECURITY_ALERT;
+ case CONTAGIOUS_DISEASE_VALUE: return CONTAGIOUS_DISEASE;
+ case ENVIRONMENTAL_VALUE: return ENVIRONMENTAL;
+ case SMOG_ALERT_VALUE: return SMOG_ALERT;
+ case BATCH_SERVICE_IN_PROGRESS_VALUE: return BATCH_SERVICE_IN_PROGRESS;
+ case ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES_VALUE: return ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RegulatoryMeasure(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RegulatoryMeasure
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RescueAndRecoveryWorkInProgress.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RescueAndRecoveryWorkInProgress.java
new file mode 100755
index 0000000..f656ca8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RescueAndRecoveryWorkInProgress.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Rescue And Recovery Work In Progress</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getRescueAndRecoveryWorkInProgress()
+ * @model
+ * @generated
+ */
+public enum RescueAndRecoveryWorkInProgress implements Enumerator {
+ /**
+ * The '<em><b>EMERGENCY VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ EMERGENCY_VEHICLES(1, "EMERGENCY_VEHICLES", "EMERGENCY_VEHICLES"),
+
+ /**
+ * The '<em><b>RESCUE HELICOPTER LANDING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESCUE_HELICOPTER_LANDING_VALUE
+ * @generated
+ * @ordered
+ */
+ RESCUE_HELICOPTER_LANDING(2, "RESCUE_HELICOPTER_LANDING", "RESCUE_HELICOPTER_LANDING"), /**
+ * The '<em><b>POLICE ACTIVITY ONGOING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #POLICE_ACTIVITY_ONGOING_VALUE
+ * @generated
+ * @ordered
+ */
+ POLICE_ACTIVITY_ONGOING(3, "POLICE_ACTIVITY_ONGOING", "POLICE_ACTIVITY_ONGOING"), /**
+ * The '<em><b>MEDICAL EMERGENCY ONGOING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MEDICAL_EMERGENCY_ONGOING_VALUE
+ * @generated
+ * @ordered
+ */
+ MEDICAL_EMERGENCY_ONGOING(4, "MEDICAL_EMERGENCY_ONGOING", "MEDICAL_EMERGENCY_ONGOING"), /**
+ * The '<em><b>CHILD ABDUCTION IN PROGRESS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHILD_ABDUCTION_IN_PROGRESS_VALUE
+ * @generated
+ * @ordered
+ */
+ CHILD_ABDUCTION_IN_PROGRESS(5, "CHILD_ABDUCTION_IN_PROGRESS", "CHILD_ABDUCTION_IN_PROGRESS");
+
+ /**
+ * The '<em><b>EMERGENCY VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EMERGENCY VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EMERGENCY_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EMERGENCY_VEHICLES_VALUE = 1;
+
+ /**
+ * The '<em><b>RESCUE HELICOPTER LANDING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESCUE HELICOPTER LANDING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESCUE_HELICOPTER_LANDING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESCUE_HELICOPTER_LANDING_VALUE = 2;
+
+ /**
+ * The '<em><b>POLICE ACTIVITY ONGOING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>POLICE ACTIVITY ONGOING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #POLICE_ACTIVITY_ONGOING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int POLICE_ACTIVITY_ONGOING_VALUE = 3;
+
+ /**
+ * The '<em><b>MEDICAL EMERGENCY ONGOING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MEDICAL EMERGENCY ONGOING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MEDICAL_EMERGENCY_ONGOING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MEDICAL_EMERGENCY_ONGOING_VALUE = 4;
+
+ /**
+ * The '<em><b>CHILD ABDUCTION IN PROGRESS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHILD ABDUCTION IN PROGRESS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHILD_ABDUCTION_IN_PROGRESS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHILD_ABDUCTION_IN_PROGRESS_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Rescue And Recovery Work In Progress</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RescueAndRecoveryWorkInProgress[] VALUES_ARRAY =
+ new RescueAndRecoveryWorkInProgress[] {
+ EMERGENCY_VEHICLES,
+ RESCUE_HELICOPTER_LANDING,
+ POLICE_ACTIVITY_ONGOING,
+ MEDICAL_EMERGENCY_ONGOING,
+ CHILD_ABDUCTION_IN_PROGRESS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Rescue And Recovery Work In Progress</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RescueAndRecoveryWorkInProgress> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Rescue And Recovery Work In Progress</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RescueAndRecoveryWorkInProgress get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RescueAndRecoveryWorkInProgress result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Rescue And Recovery Work In Progress</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RescueAndRecoveryWorkInProgress getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RescueAndRecoveryWorkInProgress result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Rescue And Recovery Work In Progress</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RescueAndRecoveryWorkInProgress get(int value) {
+ switch (value) {
+ case EMERGENCY_VEHICLES_VALUE: return EMERGENCY_VEHICLES;
+ case RESCUE_HELICOPTER_LANDING_VALUE: return RESCUE_HELICOPTER_LANDING;
+ case POLICE_ACTIVITY_ONGOING_VALUE: return POLICE_ACTIVITY_ONGOING;
+ case MEDICAL_EMERGENCY_ONGOING_VALUE: return MEDICAL_EMERGENCY_ONGOING;
+ case CHILD_ABDUCTION_IN_PROGRESS_VALUE: return CHILD_ABDUCTION_IN_PROGRESS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RescueAndRecoveryWorkInProgress(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RescueAndRecoveryWorkInProgress
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RestrictionType.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RestrictionType.java
new file mode 100755
index 0000000..eec0fd7
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RestrictionType.java
@@ -0,0 +1,942 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Restriction Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getRestrictionType()
+ * @model
+ * @generated
+ */
+public enum RestrictionType implements Enumerator {
+ /**
+ * The '<em><b>WIDTH LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WIDTH_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WIDTH_LESS_THAN(1, "WIDTH_LESS_THAN", "WIDTH_LESS_THAN"),
+
+ /**
+ * The '<em><b>WIDTH GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WIDTH_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WIDTH_GREATER_THAN(2, "WIDTH_GREATER_THAN", "WIDTH_GREATER_THAN"),
+
+ /**
+ * The '<em><b>HEIGTH LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ HEIGTH_LESS_THAN(3, "HEIGTH_LESS_THAN", "HEIGTH_LESS_THAN"),
+
+ /**
+ * The '<em><b>HEIGTH GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ HEIGTH_GREATER_THAN(4, "HEIGTH_GREATER_THAN", "HEIGTH_GREATER_THAN"),
+
+ /**
+ * The '<em><b>WEIGHT LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WEIGHT_LESS_THAN(5, "WEIGHT_LESS_THAN", "WEIGHT_LESS_THAN"),
+
+ /**
+ * The '<em><b>WEIGHT GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WEIGHT_GREATER_THAN(6, "WEIGHT_GREATER_THAN", "WEIGHT_GREATER_THAN"),
+
+ /**
+ * The '<em><b>WITHOUT WINTER TYRE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_WINTER_TYRE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITHOUT_WINTER_TYRE(7, "WITHOUT_WINTER_TYRE", "WITHOUT_WINTER_TYRE"),
+
+ /**
+ * The '<em><b>WITHOUT SNOW CHAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_SNOW_CHAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ WITHOUT_SNOW_CHAIN(8, "WITHOUT_SNOW_CHAIN", "WITHOUT_SNOW_CHAIN"),
+
+ /**
+ * The '<em><b>WITH TRAILER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_TRAILER_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_TRAILER(9, "WITH_TRAILER", "WITH_TRAILER"),
+
+ /**
+ * The '<em><b>WITH CARAVAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_CARAVAN_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_CARAVAN(10, "WITH_CARAVAN", "WITH_CARAVAN"),
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ PERSONS_IN_VEHICLE_LESS_THAN(11, "PERSONS_IN_VEHICLE_LESS_THAN", "PERSONS_IN_VEHICLE_LESS_THAN"),
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE MORE THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_MORE_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ PERSONS_IN_VEHICLE_MORE_THAN(12, "PERSONS_IN_VEHICLE_MORE_THAN", "PERSONS_IN_VEHICLE_MORE_THAN"),
+
+ /**
+ * The '<em><b>EVEN NUMBER PLATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EVEN_NUMBER_PLATE_VALUE
+ * @generated
+ * @ordered
+ */
+ EVEN_NUMBER_PLATE(13, "EVEN_NUMBER_PLATE", "EVEN_NUMBER_PLATE"),
+
+ /**
+ * The '<em><b>ODD NUMBER PLATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ODD_NUMBER_PLATE_VALUE
+ * @generated
+ * @ordered
+ */
+ ODD_NUMBER_PLATE(14, "ODD_NUMBER_PLATE", "ODD_NUMBER_PLATE"),
+
+ /**
+ * The '<em><b>LENGTH LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LENGTH_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ LENGTH_LESS_THAN(15, "LENGTH_LESS_THAN", "LENGTH_LESS_THAN"),
+
+ /**
+ * The '<em><b>LENGTH GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LENGTH_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ LENGTH_GREATER_THAN(16, "LENGTH_GREATER_THAN", "LENGTH_GREATER_THAN"),
+
+ /**
+ * The '<em><b>AXLE LOAD LESS THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_LESS_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ AXLE_LOAD_LESS_THAN(17, "AXLE_LOAD_LESS_THAN", "AXLE_LOAD_LESS_THAN"),
+
+ /**
+ * The '<em><b>AXLE LOAD GREATER THAN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_GREATER_THAN_VALUE
+ * @generated
+ * @ordered
+ */
+ AXLE_LOAD_GREATER_THAN(18, "AXLE_LOAD_GREATER_THAN", "AXLE_LOAD_GREATER_THAN"),
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO3</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3(19, "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3", "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3"),
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO3D4</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4(20, "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4", "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4"),
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO4</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4(21, "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4", "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4"),
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO5</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5(22, "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5", "VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5"),
+
+ /**
+ * The '<em><b>WITH PETROL ENGINE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_PETROL_ENGINE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_PETROL_ENGINE(23, "WITH_PETROL_ENGINE", "WITH_PETROL_ENGINE"),
+
+ /**
+ * The '<em><b>WITH LPG ENGINE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_LPG_ENGINE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_LPG_ENGINE(25, "WITH_LPG_ENGINE", "WITH_LPG_ENGINE"),
+
+ /**
+ * The '<em><b>WITH DIESEL ENGINE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_DIESEL_ENGINE_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_DIESEL_ENGINE(24, "WITH_DIESEL_ENGINE", "WITH_DIESEL_ENGINE"),
+
+ /**
+ * The '<em><b>THROUGH TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #THROUGH_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ THROUGH_TRAFFIC(26, "THROUGH_TRAFFIC", "THROUGH_TRAFFIC"),
+
+ /**
+ * The '<em><b>RESIDENTS TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESIDENTS_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ RESIDENTS_TRAFFIC(27, "RESIDENTS_TRAFFIC", "RESIDENTS_TRAFFIC"),
+
+ /**
+ * The '<em><b>WITH DESTINATION IN GIVEN AREA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WITH_DESTINATION_IN_GIVEN_AREA_VALUE
+ * @generated
+ * @ordered
+ */
+ WITH_DESTINATION_IN_GIVEN_AREA(28, "WITH_DESTINATION_IN_GIVEN_AREA", "WITH_DESTINATION_IN_GIVEN_AREA"),
+
+ /**
+ * The '<em><b>UNDECODABLE RESTRICTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_RESTRICTION_VALUE
+ * @generated
+ * @ordered
+ */
+ UNDECODABLE_RESTRICTION(255, "UNDECODABLE_RESTRICTION", "UNDECODABLE_RESTRICTION");
+
+ /**
+ * The '<em><b>WIDTH LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WIDTH LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WIDTH_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WIDTH_LESS_THAN_VALUE = 1;
+
+ /**
+ * The '<em><b>WIDTH GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WIDTH GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WIDTH_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WIDTH_GREATER_THAN_VALUE = 2;
+
+ /**
+ * The '<em><b>HEIGTH LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEIGTH LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEIGTH_LESS_THAN_VALUE = 3;
+
+ /**
+ * The '<em><b>HEIGTH GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEIGTH GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEIGTH_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEIGTH_GREATER_THAN_VALUE = 4;
+
+ /**
+ * The '<em><b>WEIGHT LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WEIGHT LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WEIGHT_LESS_THAN_VALUE = 5;
+
+ /**
+ * The '<em><b>WEIGHT GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WEIGHT GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WEIGHT_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WEIGHT_GREATER_THAN_VALUE = 6;
+
+ /**
+ * The '<em><b>WITHOUT WINTER TYRE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITHOUT WINTER TYRE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_WINTER_TYRE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITHOUT_WINTER_TYRE_VALUE = 7;
+
+ /**
+ * The '<em><b>WITHOUT SNOW CHAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITHOUT SNOW CHAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITHOUT_SNOW_CHAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITHOUT_SNOW_CHAIN_VALUE = 8;
+
+ /**
+ * The '<em><b>WITH TRAILER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH TRAILER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_TRAILER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_TRAILER_VALUE = 9;
+
+ /**
+ * The '<em><b>WITH CARAVAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH CARAVAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_CARAVAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_CARAVAN_VALUE = 10;
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERSONS IN VEHICLE LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERSONS_IN_VEHICLE_LESS_THAN_VALUE = 11;
+
+ /**
+ * The '<em><b>PERSONS IN VEHICLE MORE THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PERSONS IN VEHICLE MORE THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PERSONS_IN_VEHICLE_MORE_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PERSONS_IN_VEHICLE_MORE_THAN_VALUE = 12;
+
+ /**
+ * The '<em><b>EVEN NUMBER PLATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EVEN NUMBER PLATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EVEN_NUMBER_PLATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EVEN_NUMBER_PLATE_VALUE = 13;
+
+ /**
+ * The '<em><b>ODD NUMBER PLATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ODD NUMBER PLATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ODD_NUMBER_PLATE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ODD_NUMBER_PLATE_VALUE = 14;
+
+ /**
+ * The '<em><b>LENGTH LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LENGTH LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LENGTH_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LENGTH_LESS_THAN_VALUE = 15;
+
+ /**
+ * The '<em><b>LENGTH GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LENGTH GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LENGTH_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LENGTH_GREATER_THAN_VALUE = 16;
+
+ /**
+ * The '<em><b>AXLE LOAD LESS THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AXLE LOAD LESS THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_LESS_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AXLE_LOAD_LESS_THAN_VALUE = 17;
+
+ /**
+ * The '<em><b>AXLE LOAD GREATER THAN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AXLE LOAD GREATER THAN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AXLE_LOAD_GREATER_THAN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AXLE_LOAD_GREATER_THAN_VALUE = 18;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO3</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO3</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3_VALUE = 19;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO3D4</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO3D4</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4_VALUE = 20;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO4</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO4</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4_VALUE = 21;
+
+ /**
+ * The '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO5</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE FULFILLS EMMISSION STANDARD EURO5</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5_VALUE = 22;
+
+ /**
+ * The '<em><b>WITH PETROL ENGINE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH PETROL ENGINE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_PETROL_ENGINE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_PETROL_ENGINE_VALUE = 23;
+
+ /**
+ * The '<em><b>WITH LPG ENGINE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH LPG ENGINE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_LPG_ENGINE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_LPG_ENGINE_VALUE = 25;
+
+ /**
+ * The '<em><b>WITH DIESEL ENGINE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH DIESEL ENGINE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_DIESEL_ENGINE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_DIESEL_ENGINE_VALUE = 24;
+
+ /**
+ * The '<em><b>THROUGH TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>THROUGH TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #THROUGH_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int THROUGH_TRAFFIC_VALUE = 26;
+
+ /**
+ * The '<em><b>RESIDENTS TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESIDENTS TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESIDENTS_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESIDENTS_TRAFFIC_VALUE = 27;
+
+ /**
+ * The '<em><b>WITH DESTINATION IN GIVEN AREA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WITH DESTINATION IN GIVEN AREA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WITH_DESTINATION_IN_GIVEN_AREA
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WITH_DESTINATION_IN_GIVEN_AREA_VALUE = 28;
+
+ /**
+ * The '<em><b>UNDECODABLE RESTRICTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNDECODABLE RESTRICTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_RESTRICTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNDECODABLE_RESTRICTION_VALUE = 255;
+
+ /**
+ * An array of all the '<em><b>Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RestrictionType[] VALUES_ARRAY =
+ new RestrictionType[] {
+ WIDTH_LESS_THAN,
+ WIDTH_GREATER_THAN,
+ HEIGTH_LESS_THAN,
+ HEIGTH_GREATER_THAN,
+ WEIGHT_LESS_THAN,
+ WEIGHT_GREATER_THAN,
+ WITHOUT_WINTER_TYRE,
+ WITHOUT_SNOW_CHAIN,
+ WITH_TRAILER,
+ WITH_CARAVAN,
+ PERSONS_IN_VEHICLE_LESS_THAN,
+ PERSONS_IN_VEHICLE_MORE_THAN,
+ EVEN_NUMBER_PLATE,
+ ODD_NUMBER_PLATE,
+ LENGTH_LESS_THAN,
+ LENGTH_GREATER_THAN,
+ AXLE_LOAD_LESS_THAN,
+ AXLE_LOAD_GREATER_THAN,
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3,
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4,
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4,
+ VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5,
+ WITH_PETROL_ENGINE,
+ WITH_LPG_ENGINE,
+ WITH_DIESEL_ENGINE,
+ THROUGH_TRAFFIC,
+ RESIDENTS_TRAFFIC,
+ WITH_DESTINATION_IN_GIVEN_AREA,
+ UNDECODABLE_RESTRICTION,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Restriction Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RestrictionType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Restriction Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RestrictionType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RestrictionType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Restriction Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RestrictionType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RestrictionType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Restriction Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RestrictionType get(int value) {
+ switch (value) {
+ case WIDTH_LESS_THAN_VALUE: return WIDTH_LESS_THAN;
+ case WIDTH_GREATER_THAN_VALUE: return WIDTH_GREATER_THAN;
+ case HEIGTH_LESS_THAN_VALUE: return HEIGTH_LESS_THAN;
+ case HEIGTH_GREATER_THAN_VALUE: return HEIGTH_GREATER_THAN;
+ case WEIGHT_LESS_THAN_VALUE: return WEIGHT_LESS_THAN;
+ case WEIGHT_GREATER_THAN_VALUE: return WEIGHT_GREATER_THAN;
+ case WITHOUT_WINTER_TYRE_VALUE: return WITHOUT_WINTER_TYRE;
+ case WITHOUT_SNOW_CHAIN_VALUE: return WITHOUT_SNOW_CHAIN;
+ case WITH_TRAILER_VALUE: return WITH_TRAILER;
+ case WITH_CARAVAN_VALUE: return WITH_CARAVAN;
+ case PERSONS_IN_VEHICLE_LESS_THAN_VALUE: return PERSONS_IN_VEHICLE_LESS_THAN;
+ case PERSONS_IN_VEHICLE_MORE_THAN_VALUE: return PERSONS_IN_VEHICLE_MORE_THAN;
+ case EVEN_NUMBER_PLATE_VALUE: return EVEN_NUMBER_PLATE;
+ case ODD_NUMBER_PLATE_VALUE: return ODD_NUMBER_PLATE;
+ case LENGTH_LESS_THAN_VALUE: return LENGTH_LESS_THAN;
+ case LENGTH_GREATER_THAN_VALUE: return LENGTH_GREATER_THAN;
+ case AXLE_LOAD_LESS_THAN_VALUE: return AXLE_LOAD_LESS_THAN;
+ case AXLE_LOAD_GREATER_THAN_VALUE: return AXLE_LOAD_GREATER_THAN;
+ case VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3_VALUE: return VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3;
+ case VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4_VALUE: return VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4;
+ case VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4_VALUE: return VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4;
+ case VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5_VALUE: return VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5;
+ case WITH_PETROL_ENGINE_VALUE: return WITH_PETROL_ENGINE;
+ case WITH_LPG_ENGINE_VALUE: return WITH_LPG_ENGINE;
+ case WITH_DIESEL_ENGINE_VALUE: return WITH_DIESEL_ENGINE;
+ case THROUGH_TRAFFIC_VALUE: return THROUGH_TRAFFIC;
+ case RESIDENTS_TRAFFIC_VALUE: return RESIDENTS_TRAFFIC;
+ case WITH_DESTINATION_IN_GIVEN_AREA_VALUE: return WITH_DESTINATION_IN_GIVEN_AREA;
+ case UNDECODABLE_RESTRICTION_VALUE: return UNDECODABLE_RESTRICTION;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RestrictionType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RestrictionType
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RiskOfFire.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RiskOfFire.java
new file mode 100755
index 0000000..d93982d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RiskOfFire.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Risk Of Fire</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getRiskOfFire()
+ * @model
+ * @generated
+ */
+public enum RiskOfFire implements Enumerator {
+ /**
+ * The '<em><b>LEAKAGE OF FUEL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_FUEL_VALUE
+ * @generated
+ * @ordered
+ */
+ LEAKAGE_OF_FUEL(1, "LEAKAGE_OF_FUEL", "LEAKAGE_OF_FUEL"),
+
+ /**
+ * The '<em><b>LEAKAGE OF GAS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_GAS_VALUE
+ * @generated
+ * @ordered
+ */
+ LEAKAGE_OF_GAS(2, "LEAKAGE_OF_GAS", "LEAKAGE_OF_GAS");
+
+ /**
+ * The '<em><b>LEAKAGE OF FUEL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEAKAGE OF FUEL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_FUEL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEAKAGE_OF_FUEL_VALUE = 1;
+
+ /**
+ * The '<em><b>LEAKAGE OF GAS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEAKAGE OF GAS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEAKAGE_OF_GAS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEAKAGE_OF_GAS_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Risk Of Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RiskOfFire[] VALUES_ARRAY =
+ new RiskOfFire[] {
+ LEAKAGE_OF_FUEL,
+ LEAKAGE_OF_GAS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Risk Of Fire</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RiskOfFire> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Risk Of Fire</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RiskOfFire get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RiskOfFire result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Risk Of Fire</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RiskOfFire getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RiskOfFire result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Risk Of Fire</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RiskOfFire get(int value) {
+ switch (value) {
+ case LEAKAGE_OF_FUEL_VALUE: return LEAKAGE_OF_FUEL;
+ case LEAKAGE_OF_GAS_VALUE: return LEAKAGE_OF_GAS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RiskOfFire(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RiskOfFire
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RoadWorks.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RoadWorks.java
new file mode 100755
index 0000000..41b9126
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/RoadWorks.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Road Works</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getRoadWorks()
+ * @model
+ * @generated
+ */
+public enum RoadWorks implements Enumerator {
+ /**
+ * The '<em><b>MAJOR ROADWORKS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MAJOR_ROADWORKS_VALUE
+ * @generated
+ * @ordered
+ */
+ MAJOR_ROADWORKS(1, "MAJOR_ROADWORKS", "MAJOR_ROADWORKS"),
+
+ /**
+ * The '<em><b>ROAD MARKING WORK</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROAD_MARKING_WORK_VALUE
+ * @generated
+ * @ordered
+ */
+ ROAD_MARKING_WORK(2, "ROAD_MARKING_WORK", "ROAD_MARKING_WORK"),
+
+ /**
+ * The '<em><b>SLOW MOVING ROAD MAINTENANCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_ROAD_MAINTENANCE_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_MOVING_ROAD_MAINTENANCE(3, "SLOW_MOVING_ROAD_MAINTENANCE", "SLOW_MOVING_ROAD_MAINTENANCE");
+
+ /**
+ * The '<em><b>MAJOR ROADWORKS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MAJOR ROADWORKS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MAJOR_ROADWORKS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MAJOR_ROADWORKS_VALUE = 1;
+
+ /**
+ * The '<em><b>ROAD MARKING WORK</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROAD MARKING WORK</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROAD_MARKING_WORK
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROAD_MARKING_WORK_VALUE = 2;
+
+ /**
+ * The '<em><b>SLOW MOVING ROAD MAINTENANCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW MOVING ROAD MAINTENANCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_ROAD_MAINTENANCE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_MOVING_ROAD_MAINTENANCE_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Road Works</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RoadWorks[] VALUES_ARRAY =
+ new RoadWorks[] {
+ MAJOR_ROADWORKS,
+ ROAD_MARKING_WORK,
+ SLOW_MOVING_ROAD_MAINTENANCE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Road Works</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<RoadWorks> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Road Works</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RoadWorks get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RoadWorks result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Road Works</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RoadWorks getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RoadWorks result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Road Works</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RoadWorks get(int value) {
+ switch (value) {
+ case MAJOR_ROADWORKS_VALUE: return MAJOR_ROADWORKS;
+ case ROAD_MARKING_WORK_VALUE: return ROAD_MARKING_WORK;
+ case SLOW_MOVING_ROAD_MAINTENANCE_VALUE: return SLOW_MOVING_ROAD_MAINTENANCE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RoadWorks(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //RoadWorks
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotOperating.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotOperating.java
new file mode 100755
index 0000000..c607234
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotOperating.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Service Not Operating</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getServiceNotOperating()
+ * @model
+ * @generated
+ */
+public enum ServiceNotOperating implements Enumerator {
+ /**
+ * The '<em><b>FERRY SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FERRY_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ FERRY_SERVICE_NOT_OPERATING(1, "FERRY_SERVICE_NOT_OPERATING", "FERRY_SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>PLANE SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PLANE_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ PLANE_SERVICE_NOT_OPERATING(2, "PLANE_SERVICE_NOT_OPERATING", "PLANE_SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>TRAIN SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAIN_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAIN_SERVICE_NOT_OPERATING(3, "TRAIN_SERVICE_NOT_OPERATING", "TRAIN_SERVICE_NOT_OPERATING"),
+
+ /**
+ * The '<em><b>BUS SERVICE NOT OPERATING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BUS_SERVICE_NOT_OPERATING_VALUE
+ * @generated
+ * @ordered
+ */
+ BUS_SERVICE_NOT_OPERATING(4, "BUS_SERVICE_NOT_OPERATING", "BUS_SERVICE_NOT_OPERATING");
+
+ /**
+ * The '<em><b>FERRY SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FERRY SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FERRY_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FERRY_SERVICE_NOT_OPERATING_VALUE = 1;
+
+ /**
+ * The '<em><b>PLANE SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PLANE SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PLANE_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PLANE_SERVICE_NOT_OPERATING_VALUE = 2;
+
+ /**
+ * The '<em><b>TRAIN SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAIN SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAIN_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAIN_SERVICE_NOT_OPERATING_VALUE = 3;
+
+ /**
+ * The '<em><b>BUS SERVICE NOT OPERATING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BUS SERVICE NOT OPERATING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BUS_SERVICE_NOT_OPERATING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BUS_SERVICE_NOT_OPERATING_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Service Not Operating</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ServiceNotOperating[] VALUES_ARRAY =
+ new ServiceNotOperating[] {
+ FERRY_SERVICE_NOT_OPERATING,
+ PLANE_SERVICE_NOT_OPERATING,
+ TRAIN_SERVICE_NOT_OPERATING,
+ BUS_SERVICE_NOT_OPERATING,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Service Not Operating</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ServiceNotOperating> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Service Not Operating</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotOperating get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotOperating result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Operating</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotOperating getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotOperating result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Operating</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotOperating get(int value) {
+ switch (value) {
+ case FERRY_SERVICE_NOT_OPERATING_VALUE: return FERRY_SERVICE_NOT_OPERATING;
+ case PLANE_SERVICE_NOT_OPERATING_VALUE: return PLANE_SERVICE_NOT_OPERATING;
+ case TRAIN_SERVICE_NOT_OPERATING_VALUE: return TRAIN_SERVICE_NOT_OPERATING;
+ case BUS_SERVICE_NOT_OPERATING_VALUE: return BUS_SERVICE_NOT_OPERATING;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ServiceNotOperating(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ServiceNotOperating
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotUsable.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotUsable.java
new file mode 100755
index 0000000..131dfb8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/ServiceNotUsable.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Service Not Usable</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getServiceNotUsable()
+ * @model
+ * @generated
+ */
+public enum ServiceNotUsable implements Enumerator {
+ /**
+ * The '<em><b>FUEL STATION CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FUEL_STATION_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ FUEL_STATION_CLOSED(1, "FUEL_STATION_CLOSED", "FUEL_STATION_CLOSED"),
+
+ /**
+ * The '<em><b>SERVICE AREA CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_AREA_CLOSED(2, "SERVICE_AREA_CLOSED", "SERVICE_AREA_CLOSED"),
+
+ /**
+ * The '<em><b>SERVICE AREA BUSY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_BUSY_VALUE
+ * @generated
+ * @ordered
+ */
+ SERVICE_AREA_BUSY(3, "SERVICE_AREA_BUSY", "SERVICE_AREA_BUSY"),
+
+ /**
+ * The '<em><b>PARKING FULL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PARKING_FULL_VALUE
+ * @generated
+ * @ordered
+ */
+ PARKING_FULL(4, "PARKING_FULL", "PARKING_FULL"),
+
+ /**
+ * The '<em><b>CAR PARK CLOSED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CAR_PARK_CLOSED_VALUE
+ * @generated
+ * @ordered
+ */
+ CAR_PARK_CLOSED(5, "CAR_PARK_CLOSED", "CAR_PARK_CLOSED");
+
+ /**
+ * The '<em><b>FUEL STATION CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FUEL STATION CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FUEL_STATION_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FUEL_STATION_CLOSED_VALUE = 1;
+
+ /**
+ * The '<em><b>SERVICE AREA CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE AREA CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_AREA_CLOSED_VALUE = 2;
+
+ /**
+ * The '<em><b>SERVICE AREA BUSY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SERVICE AREA BUSY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SERVICE_AREA_BUSY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SERVICE_AREA_BUSY_VALUE = 3;
+
+ /**
+ * The '<em><b>PARKING FULL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PARKING FULL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PARKING_FULL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PARKING_FULL_VALUE = 4;
+
+ /**
+ * The '<em><b>CAR PARK CLOSED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CAR PARK CLOSED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CAR_PARK_CLOSED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CAR_PARK_CLOSED_VALUE = 5;
+
+ /**
+ * An array of all the '<em><b>Service Not Usable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ServiceNotUsable[] VALUES_ARRAY =
+ new ServiceNotUsable[] {
+ FUEL_STATION_CLOSED,
+ SERVICE_AREA_CLOSED,
+ SERVICE_AREA_BUSY,
+ PARKING_FULL,
+ CAR_PARK_CLOSED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Service Not Usable</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ServiceNotUsable> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Service Not Usable</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotUsable get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotUsable result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Usable</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotUsable getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ServiceNotUsable result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Service Not Usable</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ServiceNotUsable get(int value) {
+ switch (value) {
+ case FUEL_STATION_CLOSED_VALUE: return FUEL_STATION_CLOSED;
+ case SERVICE_AREA_CLOSED_VALUE: return SERVICE_AREA_CLOSED;
+ case SERVICE_AREA_BUSY_VALUE: return SERVICE_AREA_BUSY;
+ case PARKING_FULL_VALUE: return PARKING_FULL;
+ case CAR_PARK_CLOSED_VALUE: return CAR_PARK_CLOSED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ServiceNotUsable(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ServiceNotUsable
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlipperyRoad.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlipperyRoad.java
new file mode 100755
index 0000000..621249d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlipperyRoad.java
@@ -0,0 +1,427 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Slippery Road</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getSlipperyRoad()
+ * @model
+ * @generated
+ */
+public enum SlipperyRoad implements Enumerator {
+ /**
+ * The '<em><b>HEAVY FROST ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_FROST_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_FROST_ON_ROAD(1, "HEAVY_FROST_ON_ROAD", "HEAVY_FROST_ON_ROAD"),
+
+ /**
+ * The '<em><b>FUEL ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FUEL_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ FUEL_ON_ROAD(2, "FUEL_ON_ROAD", "FUEL_ON_ROAD"),
+
+ /**
+ * The '<em><b>MUD ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MUD_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ MUD_ON_ROAD(3, "MUD_ON_ROAD", "MUD_ON_ROAD"),
+
+ /**
+ * The '<em><b>SNOW ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SNOW_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ SNOW_ON_ROAD(4, "SNOW_ON_ROAD", "SNOW_ON_ROAD"),
+
+ /**
+ * The '<em><b>ICE ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ICE_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ ICE_ON_ROAD(5, "ICE_ON_ROAD", "ICE_ON_ROAD"),
+
+ /**
+ * The '<em><b>BLACK ICE ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLACK_ICE_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ BLACK_ICE_ON_ROAD(6, "BLACK_ICE_ON_ROAD", "BLACK_ICE_ON_ROAD"),
+
+ /**
+ * The '<em><b>OIL ON ROAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OIL_ON_ROAD_VALUE
+ * @generated
+ * @ordered
+ */
+ OIL_ON_ROAD(7, "OIL_ON_ROAD", "OIL_ON_ROAD"),
+
+ /**
+ * The '<em><b>LOOSE CHIPPINGS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOOSE_CHIPPINGS_VALUE
+ * @generated
+ * @ordered
+ */
+ LOOSE_CHIPPINGS(8, "LOOSE_CHIPPINGS", "LOOSE_CHIPPINGS"),
+
+ /**
+ * The '<em><b>INSTANT BLACK ICE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INSTANT_BLACK_ICE_VALUE
+ * @generated
+ * @ordered
+ */
+ INSTANT_BLACK_ICE(9, "INSTANT_BLACK_ICE", "INSTANT_BLACK_ICE"), /**
+ * The '<em><b>ROADS SALTED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROADS_SALTED_VALUE
+ * @generated
+ * @ordered
+ */
+ ROADS_SALTED(10, "ROADS_SALTED", "ROADS_SALTED");
+
+ /**
+ * The '<em><b>HEAVY FROST ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY FROST ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_FROST_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_FROST_ON_ROAD_VALUE = 1;
+
+ /**
+ * The '<em><b>FUEL ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FUEL ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FUEL_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FUEL_ON_ROAD_VALUE = 2;
+
+ /**
+ * The '<em><b>MUD ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MUD ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MUD_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MUD_ON_ROAD_VALUE = 3;
+
+ /**
+ * The '<em><b>SNOW ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SNOW ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SNOW_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SNOW_ON_ROAD_VALUE = 4;
+
+ /**
+ * The '<em><b>ICE ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ICE ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ICE_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ICE_ON_ROAD_VALUE = 5;
+
+ /**
+ * The '<em><b>BLACK ICE ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLACK ICE ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLACK_ICE_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLACK_ICE_ON_ROAD_VALUE = 6;
+
+ /**
+ * The '<em><b>OIL ON ROAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OIL ON ROAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OIL_ON_ROAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OIL_ON_ROAD_VALUE = 7;
+
+ /**
+ * The '<em><b>LOOSE CHIPPINGS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOOSE CHIPPINGS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOOSE_CHIPPINGS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOOSE_CHIPPINGS_VALUE = 8;
+
+ /**
+ * The '<em><b>INSTANT BLACK ICE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INSTANT BLACK ICE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INSTANT_BLACK_ICE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INSTANT_BLACK_ICE_VALUE = 9;
+
+ /**
+ * The '<em><b>ROADS SALTED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROADS SALTED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROADS_SALTED
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROADS_SALTED_VALUE = 10;
+
+ /**
+ * An array of all the '<em><b>Slippery Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SlipperyRoad[] VALUES_ARRAY =
+ new SlipperyRoad[] {
+ HEAVY_FROST_ON_ROAD,
+ FUEL_ON_ROAD,
+ MUD_ON_ROAD,
+ SNOW_ON_ROAD,
+ ICE_ON_ROAD,
+ BLACK_ICE_ON_ROAD,
+ OIL_ON_ROAD,
+ LOOSE_CHIPPINGS,
+ INSTANT_BLACK_ICE,
+ ROADS_SALTED,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Slippery Road</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SlipperyRoad> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Slippery Road</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlipperyRoad get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlipperyRoad result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slippery Road</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlipperyRoad getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlipperyRoad result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slippery Road</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlipperyRoad get(int value) {
+ switch (value) {
+ case HEAVY_FROST_ON_ROAD_VALUE: return HEAVY_FROST_ON_ROAD;
+ case FUEL_ON_ROAD_VALUE: return FUEL_ON_ROAD;
+ case MUD_ON_ROAD_VALUE: return MUD_ON_ROAD;
+ case SNOW_ON_ROAD_VALUE: return SNOW_ON_ROAD;
+ case ICE_ON_ROAD_VALUE: return ICE_ON_ROAD;
+ case BLACK_ICE_ON_ROAD_VALUE: return BLACK_ICE_ON_ROAD;
+ case OIL_ON_ROAD_VALUE: return OIL_ON_ROAD;
+ case LOOSE_CHIPPINGS_VALUE: return LOOSE_CHIPPINGS;
+ case INSTANT_BLACK_ICE_VALUE: return INSTANT_BLACK_ICE;
+ case ROADS_SALTED_VALUE: return ROADS_SALTED;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SlipperyRoad(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //SlipperyRoad
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlowMovingVehicles.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlowMovingVehicles.java
new file mode 100755
index 0000000..17d7553
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/SlowMovingVehicles.java
@@ -0,0 +1,375 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Slow Moving Vehicles</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getSlowMovingVehicles()
+ * @model
+ * @generated
+ */
+public enum SlowMovingVehicles implements Enumerator {
+ /**
+ * The '<em><b>SLOW MOVING MAINTENANCE VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_MAINTENANCE_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ SLOW_MOVING_MAINTENANCE_VEHICLE(1, "SLOW_MOVING_MAINTENANCE_VEHICLE", "SLOW_MOVING_MAINTENANCE_VEHICLE"),
+
+ /**
+ * The '<em><b>VEHICLES SLOWING TO LOOK AT ACCIDENT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT(2, "VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT", "VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT"),
+
+ /**
+ * The '<em><b>ABNORMAL LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ ABNORMAL_LOAD(3, "ABNORMAL_LOAD", "ABNORMAL_LOAD"),
+
+ /**
+ * The '<em><b>ABNORMAL WIDE LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_WIDE_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ ABNORMAL_WIDE_LOAD(4, "ABNORMAL_WIDE_LOAD", "ABNORMAL_WIDE_LOAD"),
+
+ /**
+ * The '<em><b>CONVOY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONVOY_VALUE
+ * @generated
+ * @ordered
+ */
+ CONVOY(5, "CONVOY", "CONVOY"),
+
+ /**
+ * The '<em><b>SNOWPLOUGH</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SNOWPLOUGH_VALUE
+ * @generated
+ * @ordered
+ */
+ SNOWPLOUGH(6, "SNOWPLOUGH", "SNOWPLOUGH"),
+
+ /**
+ * The '<em><b>DEICING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEICING_VALUE
+ * @generated
+ * @ordered
+ */
+ DEICING(7, "DEICING", "DEICING"),
+
+ /**
+ * The '<em><b>SALTING VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SALTING_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ SALTING_VEHICLES(8, "SALTING_VEHICLES", "SALTING_VEHICLES");
+
+ /**
+ * The '<em><b>SLOW MOVING MAINTENANCE VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLOW MOVING MAINTENANCE VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLOW_MOVING_MAINTENANCE_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLOW_MOVING_MAINTENANCE_VEHICLE_VALUE = 1;
+
+ /**
+ * The '<em><b>VEHICLES SLOWING TO LOOK AT ACCIDENT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLES SLOWING TO LOOK AT ACCIDENT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT_VALUE = 2;
+
+ /**
+ * The '<em><b>ABNORMAL LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ABNORMAL LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ABNORMAL_LOAD_VALUE = 3;
+
+ /**
+ * The '<em><b>ABNORMAL WIDE LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ABNORMAL WIDE LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ABNORMAL_WIDE_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ABNORMAL_WIDE_LOAD_VALUE = 4;
+
+ /**
+ * The '<em><b>CONVOY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONVOY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONVOY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONVOY_VALUE = 5;
+
+ /**
+ * The '<em><b>SNOWPLOUGH</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SNOWPLOUGH</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SNOWPLOUGH
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SNOWPLOUGH_VALUE = 6;
+
+ /**
+ * The '<em><b>DEICING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEICING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEICING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEICING_VALUE = 7;
+
+ /**
+ * The '<em><b>SALTING VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SALTING VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SALTING_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SALTING_VEHICLES_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>Slow Moving Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SlowMovingVehicles[] VALUES_ARRAY =
+ new SlowMovingVehicles[] {
+ SLOW_MOVING_MAINTENANCE_VEHICLE,
+ VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT,
+ ABNORMAL_LOAD,
+ ABNORMAL_WIDE_LOAD,
+ CONVOY,
+ SNOWPLOUGH,
+ DEICING,
+ SALTING_VEHICLES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Slow Moving Vehicles</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SlowMovingVehicles> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Slow Moving Vehicles</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlowMovingVehicles get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlowMovingVehicles result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slow Moving Vehicles</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlowMovingVehicles getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SlowMovingVehicles result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Slow Moving Vehicles</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SlowMovingVehicles get(int value) {
+ switch (value) {
+ case SLOW_MOVING_MAINTENANCE_VEHICLE_VALUE: return SLOW_MOVING_MAINTENANCE_VEHICLE;
+ case VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT_VALUE: return VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT;
+ case ABNORMAL_LOAD_VALUE: return ABNORMAL_LOAD;
+ case ABNORMAL_WIDE_LOAD_VALUE: return ABNORMAL_WIDE_LOAD;
+ case CONVOY_VALUE: return CONVOY;
+ case SNOWPLOUGH_VALUE: return SNOWPLOUGH;
+ case DEICING_VALUE: return DEICING;
+ case SALTING_VEHICLES_VALUE: return SALTING_VEHICLES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SlowMovingVehicles(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //SlowMovingVehicles
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TECMessage.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TECMessage.java
new file mode 100755
index 0000000..0ebaaae
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TECMessage.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TEC Message</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getMmt <em>Mmt</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getEvent <em>Event</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getLoc <em>Loc</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTECMessage()
+ * @model
+ * @generated
+ */
+public interface TECMessage extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Mmt</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mmt</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mmt</em>' containment reference.
+ * @see #setMmt(MMCSwitch)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTECMessage_Mmt()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ MMCSwitch getMmt();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getMmt <em>Mmt</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mmt</em>' containment reference.
+ * @see #getMmt()
+ * @generated
+ */
+ void setMmt(MMCSwitch value);
+
+ /**
+ * Returns the value of the '<em><b>Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Event</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Event</em>' containment reference.
+ * @see #setEvent(Event)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTECMessage_Event()
+ * @model containment="true"
+ * @generated
+ */
+ Event getEvent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getEvent <em>Event</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Event</em>' containment reference.
+ * @see #getEvent()
+ * @generated
+ */
+ void setEvent(Event value);
+
+ /**
+ * Returns the value of the '<em><b>Loc</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loc</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Loc</em>' containment reference.
+ * @see #setLoc(LocationReferencingContainer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTECMessage_Loc()
+ * @model containment="true"
+ * @generated
+ */
+ LocationReferencingContainer getLoc();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage#getLoc <em>Loc</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Loc</em>' containment reference.
+ * @see #getLoc()
+ * @generated
+ */
+ void setLoc(LocationReferencingContainer value);
+} // TECMessage
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimit.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimit.java
new file mode 100755
index 0000000..4eb57a6
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimit.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Speed Limit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getSpeedLimitSection <em>Speed Limit Section</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getOffset <em>Offset</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getVehicleRestriction <em>Vehicle Restriction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimit()
+ * @model
+ * @generated
+ */
+public interface TemporarySpeedLimit extends EObject {
+ /**
+ * Returns the value of the '<em><b>Speed Limit Section</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Section</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Section</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimit_SpeedLimitSection()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<TemporarySpeedLimitSection> getSpeedLimitSection();
+
+ /**
+ * Returns the value of the '<em><b>Units MPH</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Units MPH</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Units MPH</em>' attribute.
+ * @see #setUnitsMPH(boolean)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimit_UnitsMPH()
+ * @model required="true"
+ * @generated
+ */
+ boolean isUnitsMPH();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#isUnitsMPH <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Units MPH</em>' attribute.
+ * @see #isUnitsMPH()
+ * @generated
+ */
+ void setUnitsMPH(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Offset</em>' attribute.
+ * @see #isSetOffset()
+ * @see #unsetOffset()
+ * @see #setOffset(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimit_Offset()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getOffset();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Offset</em>' attribute.
+ * @see #isSetOffset()
+ * @see #unsetOffset()
+ * @see #getOffset()
+ * @generated
+ */
+ void setOffset(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOffset()
+ * @see #getOffset()
+ * @see #setOffset(Integer)
+ * @generated
+ */
+ void unsetOffset();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit#getOffset <em>Offset</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Offset</em>' attribute is set.
+ * @see #unsetOffset()
+ * @see #getOffset()
+ * @see #setOffset(Integer)
+ * @generated
+ */
+ boolean isSetOffset();
+
+ /**
+ * Returns the value of the '<em><b>Vehicle Restriction</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Restriction</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Restriction</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimit_VehicleRestriction()
+ * @model containment="true"
+ * @generated
+ */
+ EList<VehicleRestriction> getVehicleRestriction();
+
+} // TemporarySpeedLimit
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimitSection.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimitSection.java
new file mode 100755
index 0000000..c86dac4
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TemporarySpeedLimitSection.java
@@ -0,0 +1,190 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Speed Limit Section</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimitSection()
+ * @model
+ * @generated
+ */
+public interface TemporarySpeedLimitSection extends EObject {
+ /**
+ * Returns the value of the '<em><b>Speed Limit Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Value</em>' attribute.
+ * @see #isSetSpeedLimitValue()
+ * @see #unsetSpeedLimitValue()
+ * @see #setSpeedLimitValue(byte)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimitSection_SpeedLimitValue()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ byte getSpeedLimitValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Value</em>' attribute.
+ * @see #isSetSpeedLimitValue()
+ * @see #unsetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @generated
+ */
+ void setSpeedLimitValue(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @see #setSpeedLimitValue(byte)
+ * @generated
+ */
+ void unsetSpeedLimitValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValue <em>Speed Limit Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Value</em>' attribute is set.
+ * @see #unsetSpeedLimitValue()
+ * @see #getSpeedLimitValue()
+ * @see #setSpeedLimitValue(byte)
+ * @generated
+ */
+ boolean isSetSpeedLimitValue();
+
+ /**
+ * Returns the value of the '<em><b>Speed Limit Value Wet</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Value Wet</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Value Wet</em>' attribute.
+ * @see #isSetSpeedLimitValueWet()
+ * @see #unsetSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(byte)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimitSection_SpeedLimitValueWet()
+ * @model unsettable="true"
+ * @generated
+ */
+ byte getSpeedLimitValueWet();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Value Wet</em>' attribute.
+ * @see #isSetSpeedLimitValueWet()
+ * @see #unsetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ */
+ void setSpeedLimitValueWet(byte value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(byte)
+ * @generated
+ */
+ void unsetSpeedLimitValueWet();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Value Wet</em>' attribute is set.
+ * @see #unsetSpeedLimitValueWet()
+ * @see #getSpeedLimitValueWet()
+ * @see #setSpeedLimitValueWet(byte)
+ * @generated
+ */
+ boolean isSetSpeedLimitValueWet();
+
+ /**
+ * Returns the value of the '<em><b>Speed Limit Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Speed Limit Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Speed Limit Length</em>' attribute.
+ * @see #isSetSpeedLimitLength()
+ * @see #unsetSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTemporarySpeedLimitSection_SpeedLimitLength()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getSpeedLimitLength();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Speed Limit Length</em>' attribute.
+ * @see #isSetSpeedLimitLength()
+ * @see #unsetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @generated
+ */
+ void setSpeedLimitLength(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @generated
+ */
+ void unsetSpeedLimitLength();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection#getSpeedLimitLength <em>Speed Limit Length</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Speed Limit Length</em>' attribute is set.
+ * @see #unsetSpeedLimitLength()
+ * @see #getSpeedLimitLength()
+ * @see #setSpeedLimitLength(Integer)
+ * @generated
+ */
+ boolean isSetSpeedLimitLength();
+
+} // TemporarySpeedLimitSection
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Tendency.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Tendency.java
new file mode 100755
index 0000000..457463c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/Tendency.java
@@ -0,0 +1,348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Tendency</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTendency()
+ * @model
+ * @generated
+ */
+public enum Tendency implements Enumerator {
+ /**
+ * The '<em><b>SLIGHTLY INCREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_INCREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIGHTLY_INCREASING(1, "SLIGHTLY_INCREASING", "SLIGHTLY_INCREASING"),
+
+ /**
+ * The '<em><b>INCREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ INCREASING(2, "INCREASING", "INCREASING"),
+
+ /**
+ * The '<em><b>STRONGLY INCREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_INCREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ STRONGLY_INCREASING(3, "STRONGLY_INCREASING", "STRONGLY_INCREASING"),
+
+ /**
+ * The '<em><b>SLIGHTLY DECREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_DECREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ SLIGHTLY_DECREASING(4, "SLIGHTLY_DECREASING", "SLIGHTLY_DECREASING"),
+
+ /**
+ * The '<em><b>DECREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DECREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ DECREASING(5, "DECREASING", "DECREASING"),
+
+ /**
+ * The '<em><b>STRONGLY DECREASING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_DECREASING_VALUE
+ * @generated
+ * @ordered
+ */
+ STRONGLY_DECREASING(6, "STRONGLY_DECREASING", "STRONGLY_DECREASING"),
+
+ /**
+ * The '<em><b>CONSTANT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONSTANT_VALUE
+ * @generated
+ * @ordered
+ */
+ CONSTANT(7, "CONSTANT", "CONSTANT");
+
+ /**
+ * The '<em><b>SLIGHTLY INCREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIGHTLY INCREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_INCREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIGHTLY_INCREASING_VALUE = 1;
+
+ /**
+ * The '<em><b>INCREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INCREASING_VALUE = 2;
+
+ /**
+ * The '<em><b>STRONGLY INCREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRONGLY INCREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_INCREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRONGLY_INCREASING_VALUE = 3;
+
+ /**
+ * The '<em><b>SLIGHTLY DECREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SLIGHTLY DECREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SLIGHTLY_DECREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SLIGHTLY_DECREASING_VALUE = 4;
+
+ /**
+ * The '<em><b>DECREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DECREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DECREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DECREASING_VALUE = 5;
+
+ /**
+ * The '<em><b>STRONGLY DECREASING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STRONGLY DECREASING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STRONGLY_DECREASING
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STRONGLY_DECREASING_VALUE = 6;
+
+ /**
+ * The '<em><b>CONSTANT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CONSTANT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONSTANT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CONSTANT_VALUE = 7;
+
+ /**
+ * An array of all the '<em><b>Tendency</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Tendency[] VALUES_ARRAY =
+ new Tendency[] {
+ SLIGHTLY_INCREASING,
+ INCREASING,
+ STRONGLY_INCREASING,
+ SLIGHTLY_DECREASING,
+ DECREASING,
+ STRONGLY_DECREASING,
+ CONSTANT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Tendency</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Tendency> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Tendency</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Tendency get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Tendency result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Tendency</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Tendency getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Tendency result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Tendency</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Tendency get(int value) {
+ switch (value) {
+ case SLIGHTLY_INCREASING_VALUE: return SLIGHTLY_INCREASING;
+ case INCREASING_VALUE: return INCREASING;
+ case STRONGLY_INCREASING_VALUE: return STRONGLY_INCREASING;
+ case SLIGHTLY_DECREASING_VALUE: return SLIGHTLY_DECREASING;
+ case DECREASING_VALUE: return DECREASING;
+ case STRONGLY_DECREASING_VALUE: return STRONGLY_DECREASING;
+ case CONSTANT_VALUE: return CONSTANT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Tendency(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Tendency
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TimeDelay.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TimeDelay.java
new file mode 100755
index 0000000..9c7ea68
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TimeDelay.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Time Delay</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTimeDelay()
+ * @model
+ * @generated
+ */
+public enum TimeDelay implements Enumerator {
+ /**
+ * The '<em><b>TIME DELAY AT FRONTIER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FRONTIER_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY_AT_FRONTIER(1, "TIME_DELAY_AT_FRONTIER", "TIME_DELAY_AT_FRONTIER"),
+
+ /**
+ * The '<em><b>TIME DELAY AT FERRY PORT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FERRY_PORT_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY_AT_FERRY_PORT(2, "TIME_DELAY_AT_FERRY_PORT", "TIME_DELAY_AT_FERRY_PORT"),
+
+ /**
+ * The '<em><b>TIME DELAY AT VEHICLE ON RAIL TERMINAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL_VALUE
+ * @generated
+ * @ordered
+ */
+ TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL(3, "TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL", "TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL");
+
+ /**
+ * The '<em><b>TIME DELAY AT FRONTIER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY AT FRONTIER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FRONTIER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_AT_FRONTIER_VALUE = 1;
+
+ /**
+ * The '<em><b>TIME DELAY AT FERRY PORT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY AT FERRY PORT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_FERRY_PORT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_AT_FERRY_PORT_VALUE = 2;
+
+ /**
+ * The '<em><b>TIME DELAY AT VEHICLE ON RAIL TERMINAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TIME DELAY AT VEHICLE ON RAIL TERMINAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL_VALUE = 3;
+
+ /**
+ * An array of all the '<em><b>Time Delay</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TimeDelay[] VALUES_ARRAY =
+ new TimeDelay[] {
+ TIME_DELAY_AT_FRONTIER,
+ TIME_DELAY_AT_FERRY_PORT,
+ TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Time Delay</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TimeDelay> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Time Delay</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TimeDelay get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TimeDelay result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Time Delay</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TimeDelay getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TimeDelay result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Time Delay</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TimeDelay get(int value) {
+ switch (value) {
+ case TIME_DELAY_AT_FRONTIER_VALUE: return TIME_DELAY_AT_FRONTIER;
+ case TIME_DELAY_AT_FERRY_PORT_VALUE: return TIME_DELAY_AT_FERRY_PORT;
+ case TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL_VALUE: return TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TimeDelay(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TimeDelay
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TrafficCongestion.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TrafficCongestion.java
new file mode 100755
index 0000000..a787789
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/TrafficCongestion.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Traffic Congestion</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getTrafficCongestion()
+ * @model
+ * @generated
+ */
+public enum TrafficCongestion implements Enumerator {
+ /**
+ * The '<em><b>INCREASED VOLUME OF TRAFFIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCREASED_VOLUME_OF_TRAFFIC_VALUE
+ * @generated
+ * @ordered
+ */
+ INCREASED_VOLUME_OF_TRAFFIC(1, "INCREASED_VOLUME_OF_TRAFFIC", "INCREASED_VOLUME_OF_TRAFFIC");
+
+ /**
+ * The '<em><b>INCREASED VOLUME OF TRAFFIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCREASED VOLUME OF TRAFFIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCREASED_VOLUME_OF_TRAFFIC
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INCREASED_VOLUME_OF_TRAFFIC_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Traffic Congestion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TrafficCongestion[] VALUES_ARRAY =
+ new TrafficCongestion[] {
+ INCREASED_VOLUME_OF_TRAFFIC,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Traffic Congestion</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<TrafficCongestion> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Traffic Congestion</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficCongestion get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficCongestion result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Congestion</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficCongestion getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TrafficCongestion result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Traffic Congestion</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TrafficCongestion get(int value) {
+ switch (value) {
+ case INCREASED_VOLUME_OF_TRAFFIC_VALUE: return INCREASED_VOLUME_OF_TRAFFIC;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TrafficCongestion(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //TrafficCongestion
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/UseTollLanes.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/UseTollLanes.java
new file mode 100755
index 0000000..59b8c96
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/UseTollLanes.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Use Toll Lanes</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getUseTollLanes()
+ * @model
+ * @generated
+ */
+public enum UseTollLanes implements Enumerator {
+ /**
+ * The '<em><b>USE MANUAL PAYMENT TOLL LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_MANUAL_PAYMENT_TOLL_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_MANUAL_PAYMENT_TOLL_LANES(1, "USE_MANUAL_PAYMENT_TOLL_LANES", "USE_MANUAL_PAYMENT_TOLL_LANES"),
+
+ /**
+ * The '<em><b>USE AUTOMATIC PAYMENT TOLL LANES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USE_AUTOMATIC_PAYMENT_TOLL_LANES_VALUE
+ * @generated
+ * @ordered
+ */
+ USE_AUTOMATIC_PAYMENT_TOLL_LANES(2, "USE_AUTOMATIC_PAYMENT_TOLL_LANES", "USE_AUTOMATIC_PAYMENT_TOLL_LANES");
+
+ /**
+ * The '<em><b>USE MANUAL PAYMENT TOLL LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE MANUAL PAYMENT TOLL LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_MANUAL_PAYMENT_TOLL_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_MANUAL_PAYMENT_TOLL_LANES_VALUE = 1;
+
+ /**
+ * The '<em><b>USE AUTOMATIC PAYMENT TOLL LANES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USE AUTOMATIC PAYMENT TOLL LANES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USE_AUTOMATIC_PAYMENT_TOLL_LANES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USE_AUTOMATIC_PAYMENT_TOLL_LANES_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Use Toll Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final UseTollLanes[] VALUES_ARRAY =
+ new UseTollLanes[] {
+ USE_MANUAL_PAYMENT_TOLL_LANES,
+ USE_AUTOMATIC_PAYMENT_TOLL_LANES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Use Toll Lanes</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<UseTollLanes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Use Toll Lanes</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UseTollLanes get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UseTollLanes result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Use Toll Lanes</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UseTollLanes getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UseTollLanes result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Use Toll Lanes</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UseTollLanes get(int value) {
+ switch (value) {
+ case USE_MANUAL_PAYMENT_TOLL_LANES_VALUE: return USE_MANUAL_PAYMENT_TOLL_LANES;
+ case USE_AUTOMATIC_PAYMENT_TOLL_LANES_VALUE: return USE_AUTOMATIC_PAYMENT_TOLL_LANES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private UseTollLanes(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //UseTollLanes
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRelatedRestriction.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRelatedRestriction.java
new file mode 100755
index 0000000..616fad6
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRelatedRestriction.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vehicle Related Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRelatedRestriction()
+ * @model
+ * @generated
+ */
+public interface VehicleRelatedRestriction extends EObject {
+ /**
+ * Returns the value of the '<em><b>Restriction Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.RestrictionType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Type</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RestrictionType
+ * @see #isSetRestrictionType()
+ * @see #unsetRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRelatedRestriction_RestrictionType()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ RestrictionType getRestrictionType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Type</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.RestrictionType
+ * @see #isSetRestrictionType()
+ * @see #unsetRestrictionType()
+ * @see #getRestrictionType()
+ * @generated
+ */
+ void setRestrictionType(RestrictionType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionType()
+ * @see #getRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @generated
+ */
+ void unsetRestrictionType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionType <em>Restriction Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Type</em>' attribute is set.
+ * @see #unsetRestrictionType()
+ * @see #getRestrictionType()
+ * @see #setRestrictionType(RestrictionType)
+ * @generated
+ */
+ boolean isSetRestrictionType();
+
+ /**
+ * Returns the value of the '<em><b>Restriction Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Value</em>' attribute.
+ * @see #isSetRestrictionValue()
+ * @see #unsetRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRelatedRestriction_RestrictionValue()
+ * @model unsettable="true"
+ * @generated
+ */
+ Integer getRestrictionValue();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Value</em>' attribute.
+ * @see #isSetRestrictionValue()
+ * @see #unsetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @generated
+ */
+ void setRestrictionValue(Integer value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @generated
+ */
+ void unsetRestrictionValue();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionValue <em>Restriction Value</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Restriction Value</em>' attribute is set.
+ * @see #unsetRestrictionValue()
+ * @see #getRestrictionValue()
+ * @see #setRestrictionValue(Integer)
+ * @generated
+ */
+ boolean isSetRestrictionValue();
+
+ /**
+ * Returns the value of the '<em><b>Restriction Location</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction Location</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction Location</em>' containment reference.
+ * @see #setRestrictionLocation(LocationReferencingContainer)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRelatedRestriction_RestrictionLocation()
+ * @model containment="true"
+ * @generated
+ */
+ LocationReferencingContainer getRestrictionLocation();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction#getRestrictionLocation <em>Restriction Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restriction Location</em>' containment reference.
+ * @see #getRestrictionLocation()
+ * @generated
+ */
+ void setRestrictionLocation(LocationReferencingContainer value);
+
+} // VehicleRelatedRestriction
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRestriction.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRestriction.java
new file mode 100755
index 0000000..08f1c8c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleRestriction.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vehicle Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getVehicleType <em>Vehicle Type</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getRestriction <em>Restriction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRestriction()
+ * @model
+ * @generated
+ */
+public interface VehicleRestriction extends EObject {
+ /**
+ * Returns the value of the '<em><b>Vehicle Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.genivi.trafficinfo.tpeg.tec.event.VehicleType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vehicle Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vehicle Type</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleType
+ * @see #isSetVehicleType()
+ * @see #unsetVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRestriction_VehicleType()
+ * @model unsettable="true"
+ * @generated
+ */
+ VehicleType getVehicleType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getVehicleType <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vehicle Type</em>' attribute.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleType
+ * @see #isSetVehicleType()
+ * @see #unsetVehicleType()
+ * @see #getVehicleType()
+ * @generated
+ */
+ void setVehicleType(VehicleType value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getVehicleType <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVehicleType()
+ * @see #getVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @generated
+ */
+ void unsetVehicleType();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction#getVehicleType <em>Vehicle Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Vehicle Type</em>' attribute is set.
+ * @see #unsetVehicleType()
+ * @see #getVehicleType()
+ * @see #setVehicleType(VehicleType)
+ * @generated
+ */
+ boolean isSetVehicleType();
+
+ /**
+ * Returns the value of the '<em><b>Restriction</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restriction</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restriction</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleRestriction_Restriction()
+ * @model containment="true"
+ * @generated
+ */
+ EList<VehicleRelatedRestriction> getRestriction();
+
+} // VehicleRestriction
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleType.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleType.java
new file mode 100755
index 0000000..36ecc4f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VehicleType.java
@@ -0,0 +1,483 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Vehicle Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVehicleType()
+ * @model
+ * @generated
+ */
+public enum VehicleType implements Enumerator {
+ /**
+ * The '<em><b>CAR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CAR_VALUE
+ * @generated
+ * @ordered
+ */
+ CAR(1, "CAR", "CAR"),
+
+ /**
+ * The '<em><b>LORRY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LORRY_VALUE
+ * @generated
+ * @ordered
+ */
+ LORRY(2, "LORRY", "LORRY"),
+
+ /**
+ * The '<em><b>BUS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BUS_VALUE
+ * @generated
+ * @ordered
+ */
+ BUS(3, "BUS", "BUS"),
+
+ /**
+ * The '<em><b>TAXI</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TAXI_VALUE
+ * @generated
+ * @ordered
+ */
+ TAXI(4, "TAXI", "TAXI"),
+
+ /**
+ * The '<em><b>TRAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ TRAIN(5, "TRAIN", "TRAIN"),
+
+ /**
+ * The '<em><b>MOTOR CYCLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLE_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTOR_CYCLE(6, "MOTOR_CYCLE", "MOTOR_CYCLE"),
+
+ /**
+ * The '<em><b>VEHICLE WITH TRAILER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_WITH_TRAILER_VALUE
+ * @generated
+ * @ordered
+ */
+ VEHICLE_WITH_TRAILER(7, "VEHICLE_WITH_TRAILER", "VEHICLE_WITH_TRAILER"),
+
+ /**
+ * The '<em><b>MOTOR VEHICLES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MOTOR_VEHICLES_VALUE
+ * @generated
+ * @ordered
+ */
+ MOTOR_VEHICLES(8, "MOTOR_VEHICLES", "MOTOR_VEHICLES"),
+
+ /**
+ * The '<em><b>HEAVY VEHICLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HEAVY_VEHICLE_VALUE
+ * @generated
+ * @ordered
+ */
+ HEAVY_VEHICLE(11, "HEAVY_VEHICLE", "HEAVY_VEHICLE"),
+
+ /**
+ * The '<em><b>TRANSPORT OF DANGEROUS GOODS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_DANGEROUS_GOODS_VALUE
+ * @generated
+ * @ordered
+ */
+ TRANSPORT_OF_DANGEROUS_GOODS(9, "TRANSPORT_OF_DANGEROUS_GOODS", "TRANSPORT_OF_DANGEROUS_GOODS"),
+
+ /**
+ * The '<em><b>TRANSPORT OF ABNORMAL LOAD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_ABNORMAL_LOAD_VALUE
+ * @generated
+ * @ordered
+ */
+ TRANSPORT_OF_ABNORMAL_LOAD(10, "TRANSPORT_OF_ABNORMAL_LOAD", "TRANSPORT_OF_ABNORMAL_LOAD"),
+
+ /**
+ * The '<em><b>UNDECODABLE VEHICLE TYPE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_VEHICLE_TYPE_VALUE
+ * @generated
+ * @ordered
+ */
+ UNDECODABLE_VEHICLE_TYPE(255, "UNDECODABLE_VEHICLE_TYPE", "UNDECODABLE_VEHICLE_TYPE");
+
+ /**
+ * The '<em><b>CAR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CAR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CAR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CAR_VALUE = 1;
+
+ /**
+ * The '<em><b>LORRY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LORRY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LORRY
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LORRY_VALUE = 2;
+
+ /**
+ * The '<em><b>BUS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BUS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BUS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BUS_VALUE = 3;
+
+ /**
+ * The '<em><b>TAXI</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TAXI</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TAXI
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TAXI_VALUE = 4;
+
+ /**
+ * The '<em><b>TRAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRAIN_VALUE = 5;
+
+ /**
+ * The '<em><b>MOTOR CYCLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTOR CYCLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTOR_CYCLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTOR_CYCLE_VALUE = 6;
+
+ /**
+ * The '<em><b>VEHICLE WITH TRAILER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VEHICLE WITH TRAILER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VEHICLE_WITH_TRAILER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VEHICLE_WITH_TRAILER_VALUE = 7;
+
+ /**
+ * The '<em><b>MOTOR VEHICLES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MOTOR VEHICLES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MOTOR_VEHICLES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MOTOR_VEHICLES_VALUE = 8;
+
+ /**
+ * The '<em><b>HEAVY VEHICLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HEAVY VEHICLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HEAVY_VEHICLE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HEAVY_VEHICLE_VALUE = 11;
+
+ /**
+ * The '<em><b>TRANSPORT OF DANGEROUS GOODS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRANSPORT OF DANGEROUS GOODS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_DANGEROUS_GOODS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRANSPORT_OF_DANGEROUS_GOODS_VALUE = 9;
+
+ /**
+ * The '<em><b>TRANSPORT OF ABNORMAL LOAD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TRANSPORT OF ABNORMAL LOAD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TRANSPORT_OF_ABNORMAL_LOAD
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TRANSPORT_OF_ABNORMAL_LOAD_VALUE = 10;
+
+ /**
+ * The '<em><b>UNDECODABLE VEHICLE TYPE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNDECODABLE VEHICLE TYPE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNDECODABLE_VEHICLE_TYPE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNDECODABLE_VEHICLE_TYPE_VALUE = 255;
+
+ /**
+ * An array of all the '<em><b>Vehicle Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final VehicleType[] VALUES_ARRAY =
+ new VehicleType[] {
+ CAR,
+ LORRY,
+ BUS,
+ TAXI,
+ TRAIN,
+ MOTOR_CYCLE,
+ VEHICLE_WITH_TRAILER,
+ MOTOR_VEHICLES,
+ HEAVY_VEHICLE,
+ TRANSPORT_OF_DANGEROUS_GOODS,
+ TRANSPORT_OF_ABNORMAL_LOAD,
+ UNDECODABLE_VEHICLE_TYPE,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Vehicle Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<VehicleType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Vehicle Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VehicleType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VehicleType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Vehicle Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VehicleType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VehicleType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Vehicle Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VehicleType get(int value) {
+ switch (value) {
+ case CAR_VALUE: return CAR;
+ case LORRY_VALUE: return LORRY;
+ case BUS_VALUE: return BUS;
+ case TAXI_VALUE: return TAXI;
+ case TRAIN_VALUE: return TRAIN;
+ case MOTOR_CYCLE_VALUE: return MOTOR_CYCLE;
+ case VEHICLE_WITH_TRAILER_VALUE: return VEHICLE_WITH_TRAILER;
+ case MOTOR_VEHICLES_VALUE: return MOTOR_VEHICLES;
+ case HEAVY_VEHICLE_VALUE: return HEAVY_VEHICLE;
+ case TRANSPORT_OF_DANGEROUS_GOODS_VALUE: return TRANSPORT_OF_DANGEROUS_GOODS;
+ case TRANSPORT_OF_ABNORMAL_LOAD_VALUE: return TRANSPORT_OF_ABNORMAL_LOAD;
+ case UNDECODABLE_VEHICLE_TYPE_VALUE: return UNDECODABLE_VEHICLE_TYPE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private VehicleType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //VehicleType
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VisibilityReduced.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VisibilityReduced.java
new file mode 100755
index 0000000..4daf2a8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/VisibilityReduced.java
@@ -0,0 +1,375 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Visibility Reduced</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getVisibilityReduced()
+ * @model
+ * @generated
+ */
+public enum VisibilityReduced implements Enumerator {
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO FOG</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_FOG_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_FOG(1, "VISIBILITY_REDUCED_DUE_TO_FOG", "VISIBILITY_REDUCED_DUE_TO_FOG"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SMOKE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SMOKE_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_SMOKE(2, "VISIBILITY_REDUCED_DUE_TO_SMOKE", "VISIBILITY_REDUCED_DUE_TO_SMOKE"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY SNOWFALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL(3, "VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL", "VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY RAIN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN(4, "VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN", "VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY HAIL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL(5, "VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL", "VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO LOW SUN GLARE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE(6, "VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE", "VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SANDSTORMS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SANDSTORMS_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_SANDSTORMS(7, "VISIBILITY_REDUCED_DUE_TO_SANDSTORMS", "VISIBILITY_REDUCED_DUE_TO_SANDSTORMS"),
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SWARMS OF INSECTS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS_VALUE
+ * @generated
+ * @ordered
+ */
+ VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS(8, "VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS", "VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS");
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO FOG</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO FOG</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_FOG
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_FOG_VALUE = 1;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SMOKE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO SMOKE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SMOKE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_SMOKE_VALUE = 2;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY SNOWFALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO HEAVY SNOWFALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL_VALUE = 3;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY RAIN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO HEAVY RAIN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN_VALUE = 4;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO HEAVY HAIL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO HEAVY HAIL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL_VALUE = 5;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO LOW SUN GLARE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO LOW SUN GLARE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE_VALUE = 6;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SANDSTORMS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO SANDSTORMS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SANDSTORMS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_SANDSTORMS_VALUE = 7;
+
+ /**
+ * The '<em><b>VISIBILITY REDUCED DUE TO SWARMS OF INSECTS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>VISIBILITY REDUCED DUE TO SWARMS OF INSECTS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>Visibility Reduced</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final VisibilityReduced[] VALUES_ARRAY =
+ new VisibilityReduced[] {
+ VISIBILITY_REDUCED_DUE_TO_FOG,
+ VISIBILITY_REDUCED_DUE_TO_SMOKE,
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL,
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN,
+ VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL,
+ VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE,
+ VISIBILITY_REDUCED_DUE_TO_SANDSTORMS,
+ VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Visibility Reduced</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<VisibilityReduced> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Visibility Reduced</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VisibilityReduced get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityReduced result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Reduced</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VisibilityReduced getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ VisibilityReduced result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Visibility Reduced</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static VisibilityReduced get(int value) {
+ switch (value) {
+ case VISIBILITY_REDUCED_DUE_TO_FOG_VALUE: return VISIBILITY_REDUCED_DUE_TO_FOG;
+ case VISIBILITY_REDUCED_DUE_TO_SMOKE_VALUE: return VISIBILITY_REDUCED_DUE_TO_SMOKE;
+ case VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL_VALUE: return VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL;
+ case VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN_VALUE: return VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN;
+ case VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL_VALUE: return VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL;
+ case VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE_VALUE: return VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE;
+ case VISIBILITY_REDUCED_DUE_TO_SANDSTORMS_VALUE: return VISIBILITY_REDUCED_DUE_TO_SANDSTORMS;
+ case VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS_VALUE: return VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private VisibilityReduced(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //VisibilityReduced
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/WarningLevel.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/WarningLevel.java
new file mode 100755
index 0000000..41da4ff
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/WarningLevel.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Warning Level</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#getWarningLevel()
+ * @model
+ * @generated
+ */
+public enum WarningLevel implements Enumerator {
+ /**
+ * The '<em><b>INFORMATIVE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INFORMATIVE_VALUE
+ * @generated
+ * @ordered
+ */
+ INFORMATIVE(1, "INFORMATIVE", "INFORMATIVE"),
+
+ /**
+ * The '<em><b>DANGER LEVEL 1</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_1_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_LEVEL_1(2, "DANGER_LEVEL_1", "DANGER_LEVEL_1"),
+
+ /**
+ * The '<em><b>DANGER LEVEL 2</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_2_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_LEVEL_2(3, "DANGER_LEVEL_2", "DANGER_LEVEL_2"),
+
+ /**
+ * The '<em><b>DANGER LEVEL 3</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_3_VALUE
+ * @generated
+ * @ordered
+ */
+ DANGER_LEVEL_3(4, "DANGER_LEVEL_3", "DANGER_LEVEL_3");
+
+ /**
+ * The '<em><b>INFORMATIVE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INFORMATIVE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INFORMATIVE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INFORMATIVE_VALUE = 1;
+
+ /**
+ * The '<em><b>DANGER LEVEL 1</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER LEVEL 1</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_1
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_LEVEL_1_VALUE = 2;
+
+ /**
+ * The '<em><b>DANGER LEVEL 2</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER LEVEL 2</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_2
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_LEVEL_2_VALUE = 3;
+
+ /**
+ * The '<em><b>DANGER LEVEL 3</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DANGER LEVEL 3</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DANGER_LEVEL_3
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DANGER_LEVEL_3_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Warning Level</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final WarningLevel[] VALUES_ARRAY =
+ new WarningLevel[] {
+ INFORMATIVE,
+ DANGER_LEVEL_1,
+ DANGER_LEVEL_2,
+ DANGER_LEVEL_3,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Warning Level</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<WarningLevel> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Warning Level</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WarningLevel get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WarningLevel result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Warning Level</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WarningLevel getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WarningLevel result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Warning Level</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WarningLevel get(int value) {
+ switch (value) {
+ case INFORMATIVE_VALUE: return INFORMATIVE;
+ case DANGER_LEVEL_1_VALUE: return DANGER_LEVEL_1;
+ case DANGER_LEVEL_2_VALUE: return DANGER_LEVEL_2;
+ case DANGER_LEVEL_3_VALUE: return DANGER_LEVEL_3;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private WarningLevel(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //WarningLevel
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/AdviceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/AdviceImpl.java
new file mode 100755
index 0000000..f45869a
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/AdviceImpl.java
@@ -0,0 +1,388 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tec.event.Advice;
+import org.genivi.trafficinfo.tpeg.tec.event.AdviceCode;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Advice</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl#getAdviceCode <em>Advice Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl#getSubAdviceCode <em>Sub Advice Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.AdviceImpl#getVehicleRestriction <em>Vehicle Restriction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AdviceImpl extends EObjectImpl implements Advice {
+ /**
+ * The default value of the '{@link #getAdviceCode() <em>Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAdviceCode()
+ * @generated
+ * @ordered
+ */
+ protected static final AdviceCode ADVICE_CODE_EDEFAULT = AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE;
+
+ /**
+ * The cached value of the '{@link #getAdviceCode() <em>Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAdviceCode()
+ * @generated
+ * @ordered
+ */
+ protected AdviceCode adviceCode = ADVICE_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Advice Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean adviceCodeESet;
+
+ /**
+ * The default value of the '{@link #getSubAdviceCode() <em>Sub Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubAdviceCode()
+ * @generated
+ * @ordered
+ */
+ protected static final Object SUB_ADVICE_CODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubAdviceCode() <em>Sub Advice Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubAdviceCode()
+ * @generated
+ * @ordered
+ */
+ protected Object subAdviceCode = SUB_ADVICE_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Sub Advice Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subAdviceCodeESet;
+
+ /**
+ * The cached value of the '{@link #getFreeText() <em>Free Text</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected EList<LocalisedShortString> freeText;
+
+ /**
+ * The cached value of the '{@link #getVehicleRestriction() <em>Vehicle Restriction</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleRestriction()
+ * @generated
+ * @ordered
+ */
+ protected EList<VehicleRestriction> vehicleRestriction;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdviceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.ADVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdviceCode getAdviceCode() {
+ return adviceCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAdviceCode(AdviceCode newAdviceCode) {
+ AdviceCode oldAdviceCode = adviceCode;
+ adviceCode = newAdviceCode == null ? ADVICE_CODE_EDEFAULT : newAdviceCode;
+ boolean oldAdviceCodeESet = adviceCodeESet;
+ adviceCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.ADVICE__ADVICE_CODE, oldAdviceCode, adviceCode, !oldAdviceCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAdviceCode() {
+ AdviceCode oldAdviceCode = adviceCode;
+ boolean oldAdviceCodeESet = adviceCodeESet;
+ adviceCode = ADVICE_CODE_EDEFAULT;
+ adviceCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.ADVICE__ADVICE_CODE, oldAdviceCode, ADVICE_CODE_EDEFAULT, oldAdviceCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAdviceCode() {
+ return adviceCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getSubAdviceCode() {
+ return subAdviceCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubAdviceCode(Object newSubAdviceCode) {
+ Object oldSubAdviceCode = subAdviceCode;
+ subAdviceCode = newSubAdviceCode;
+ boolean oldSubAdviceCodeESet = subAdviceCodeESet;
+ subAdviceCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.ADVICE__SUB_ADVICE_CODE, oldSubAdviceCode, subAdviceCode, !oldSubAdviceCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubAdviceCode() {
+ Object oldSubAdviceCode = subAdviceCode;
+ boolean oldSubAdviceCodeESet = subAdviceCodeESet;
+ subAdviceCode = SUB_ADVICE_CODE_EDEFAULT;
+ subAdviceCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.ADVICE__SUB_ADVICE_CODE, oldSubAdviceCode, SUB_ADVICE_CODE_EDEFAULT, oldSubAdviceCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubAdviceCode() {
+ return subAdviceCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LocalisedShortString> getFreeText() {
+ if (freeText == null) {
+ freeText = new EObjectContainmentEList<LocalisedShortString>(LocalisedShortString.class, this, EventPackage.ADVICE__FREE_TEXT);
+ }
+ return freeText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VehicleRestriction> getVehicleRestriction() {
+ if (vehicleRestriction == null) {
+ vehicleRestriction = new EObjectContainmentEList<VehicleRestriction>(VehicleRestriction.class, this, EventPackage.ADVICE__VEHICLE_RESTRICTION);
+ }
+ return vehicleRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.ADVICE__FREE_TEXT:
+ return ((InternalEList<?>)getFreeText()).basicRemove(otherEnd, msgs);
+ case EventPackage.ADVICE__VEHICLE_RESTRICTION:
+ return ((InternalEList<?>)getVehicleRestriction()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.ADVICE__ADVICE_CODE:
+ return getAdviceCode();
+ case EventPackage.ADVICE__SUB_ADVICE_CODE:
+ return getSubAdviceCode();
+ case EventPackage.ADVICE__FREE_TEXT:
+ return getFreeText();
+ case EventPackage.ADVICE__VEHICLE_RESTRICTION:
+ return getVehicleRestriction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.ADVICE__ADVICE_CODE:
+ setAdviceCode((AdviceCode)newValue);
+ return;
+ case EventPackage.ADVICE__SUB_ADVICE_CODE:
+ setSubAdviceCode(newValue);
+ return;
+ case EventPackage.ADVICE__FREE_TEXT:
+ getFreeText().clear();
+ getFreeText().addAll((Collection<? extends LocalisedShortString>)newValue);
+ return;
+ case EventPackage.ADVICE__VEHICLE_RESTRICTION:
+ getVehicleRestriction().clear();
+ getVehicleRestriction().addAll((Collection<? extends VehicleRestriction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.ADVICE__ADVICE_CODE:
+ unsetAdviceCode();
+ return;
+ case EventPackage.ADVICE__SUB_ADVICE_CODE:
+ unsetSubAdviceCode();
+ return;
+ case EventPackage.ADVICE__FREE_TEXT:
+ getFreeText().clear();
+ return;
+ case EventPackage.ADVICE__VEHICLE_RESTRICTION:
+ getVehicleRestriction().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.ADVICE__ADVICE_CODE:
+ return isSetAdviceCode();
+ case EventPackage.ADVICE__SUB_ADVICE_CODE:
+ return isSetSubAdviceCode();
+ case EventPackage.ADVICE__FREE_TEXT:
+ return freeText != null && !freeText.isEmpty();
+ case EventPackage.ADVICE__VEHICLE_RESTRICTION:
+ return vehicleRestriction != null && !vehicleRestriction.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (adviceCode: ");
+ if (adviceCodeESet) result.append(adviceCode); else result.append("<unset>");
+ result.append(", subAdviceCode: ");
+ if (subAdviceCodeESet) result.append(subAdviceCode); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdviceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/CauseImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/CauseImpl.java
new file mode 100755
index 0000000..4b8c29f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/CauseImpl.java
@@ -0,0 +1,203 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tec.event.Cause;
+import org.genivi.trafficinfo.tpeg.tec.event.CauseCode;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.CauseImpl#getMainCause <em>Main Cause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CauseImpl extends EObjectImpl implements Cause {
+ /**
+ * The default value of the '{@link #getMainCause() <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainCause()
+ * @generated
+ * @ordered
+ */
+ protected static final CauseCode MAIN_CAUSE_EDEFAULT = CauseCode.TRAFFIC_CONGESTION;
+
+ /**
+ * The cached value of the '{@link #getMainCause() <em>Main Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainCause()
+ * @generated
+ * @ordered
+ */
+ protected CauseCode mainCause = MAIN_CAUSE_EDEFAULT;
+
+ /**
+ * This is true if the Main Cause attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean mainCauseESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CauseCode getMainCause() {
+ return mainCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainCause(CauseCode newMainCause) {
+ CauseCode oldMainCause = mainCause;
+ mainCause = newMainCause == null ? MAIN_CAUSE_EDEFAULT : newMainCause;
+ boolean oldMainCauseESet = mainCauseESet;
+ mainCauseESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.CAUSE__MAIN_CAUSE, oldMainCause, mainCause, !oldMainCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMainCause() {
+ CauseCode oldMainCause = mainCause;
+ boolean oldMainCauseESet = mainCauseESet;
+ mainCause = MAIN_CAUSE_EDEFAULT;
+ mainCauseESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.CAUSE__MAIN_CAUSE, oldMainCause, MAIN_CAUSE_EDEFAULT, oldMainCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMainCause() {
+ return mainCauseESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.CAUSE__MAIN_CAUSE:
+ return getMainCause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.CAUSE__MAIN_CAUSE:
+ setMainCause((CauseCode)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.CAUSE__MAIN_CAUSE:
+ unsetMainCause();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.CAUSE__MAIN_CAUSE:
+ return isSetMainCause();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mainCause: ");
+ if (mainCauseESet) result.append(mainCause); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //CauseImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/DirectCauseImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/DirectCauseImpl.java
new file mode 100755
index 0000000..6e3d186
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/DirectCauseImpl.java
@@ -0,0 +1,787 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tec.event.DirectCause;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType;
+import org.genivi.trafficinfo.tpeg.tec.event.WarningLevel;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Direct Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getWarningLevel <em>Warning Level</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#isUnverifiedInformation <em>Unverified Information</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getSubCause <em>Sub Cause</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getLaneRestrictionType <em>Lane Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getNumberOfLanes <em>Number Of Lanes</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getFreeText <em>Free Text</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.DirectCauseImpl#getCauseOffset <em>Cause Offset</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DirectCauseImpl extends CauseImpl implements DirectCause {
+ /**
+ * The default value of the '{@link #getWarningLevel() <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWarningLevel()
+ * @generated
+ * @ordered
+ */
+ protected static final WarningLevel WARNING_LEVEL_EDEFAULT = WarningLevel.INFORMATIVE;
+
+ /**
+ * The cached value of the '{@link #getWarningLevel() <em>Warning Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWarningLevel()
+ * @generated
+ * @ordered
+ */
+ protected WarningLevel warningLevel = WARNING_LEVEL_EDEFAULT;
+
+ /**
+ * This is true if the Warning Level attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean warningLevelESet;
+
+ /**
+ * The default value of the '{@link #isUnverifiedInformation() <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnverifiedInformation()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UNVERIFIED_INFORMATION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUnverifiedInformation() <em>Unverified Information</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnverifiedInformation()
+ * @generated
+ * @ordered
+ */
+ protected boolean unverifiedInformation = UNVERIFIED_INFORMATION_EDEFAULT;
+
+ /**
+ * This is true if the Unverified Information attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean unverifiedInformationESet;
+
+ /**
+ * The default value of the '{@link #getSubCause() <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubCause()
+ * @generated
+ * @ordered
+ */
+ protected static final Object SUB_CAUSE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubCause() <em>Sub Cause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubCause()
+ * @generated
+ * @ordered
+ */
+ protected Object subCause = SUB_CAUSE_EDEFAULT;
+
+ /**
+ * This is true if the Sub Cause attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean subCauseESet;
+
+ /**
+ * The default value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LENGTH_AFFECTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected Integer lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+
+ /**
+ * This is true if the Length Affected attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean lengthAffectedESet;
+
+ /**
+ * The default value of the '{@link #getLaneRestrictionType() <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected static final LaneRestrictionType LANE_RESTRICTION_TYPE_EDEFAULT = LaneRestrictionType.LANES_CLOSED;
+
+ /**
+ * The cached value of the '{@link #getLaneRestrictionType() <em>Lane Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLaneRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected LaneRestrictionType laneRestrictionType = LANE_RESTRICTION_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Lane Restriction Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean laneRestrictionTypeESet;
+
+ /**
+ * The default value of the '{@link #getNumberOfLanes() <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfLanes()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer NUMBER_OF_LANES_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNumberOfLanes() <em>Number Of Lanes</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfLanes()
+ * @generated
+ * @ordered
+ */
+ protected Integer numberOfLanes = NUMBER_OF_LANES_EDEFAULT;
+
+ /**
+ * This is true if the Number Of Lanes attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean numberOfLanesESet;
+
+ /**
+ * The cached value of the '{@link #getFreeText() <em>Free Text</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFreeText()
+ * @generated
+ * @ordered
+ */
+ protected EList<LocalisedShortString> freeText;
+
+ /**
+ * The default value of the '{@link #getCauseOffset() <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer CAUSE_OFFSET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCauseOffset() <em>Cause Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCauseOffset()
+ * @generated
+ * @ordered
+ */
+ protected Integer causeOffset = CAUSE_OFFSET_EDEFAULT;
+
+ /**
+ * This is true if the Cause Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean causeOffsetESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DirectCauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.DIRECT_CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WarningLevel getWarningLevel() {
+ return warningLevel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWarningLevel(WarningLevel newWarningLevel) {
+ WarningLevel oldWarningLevel = warningLevel;
+ warningLevel = newWarningLevel == null ? WARNING_LEVEL_EDEFAULT : newWarningLevel;
+ boolean oldWarningLevelESet = warningLevelESet;
+ warningLevelESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__WARNING_LEVEL, oldWarningLevel, warningLevel, !oldWarningLevelESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetWarningLevel() {
+ WarningLevel oldWarningLevel = warningLevel;
+ boolean oldWarningLevelESet = warningLevelESet;
+ warningLevel = WARNING_LEVEL_EDEFAULT;
+ warningLevelESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__WARNING_LEVEL, oldWarningLevel, WARNING_LEVEL_EDEFAULT, oldWarningLevelESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetWarningLevel() {
+ return warningLevelESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnverifiedInformation() {
+ return unverifiedInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnverifiedInformation(boolean newUnverifiedInformation) {
+ boolean oldUnverifiedInformation = unverifiedInformation;
+ unverifiedInformation = newUnverifiedInformation;
+ boolean oldUnverifiedInformationESet = unverifiedInformationESet;
+ unverifiedInformationESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION, oldUnverifiedInformation, unverifiedInformation, !oldUnverifiedInformationESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetUnverifiedInformation() {
+ boolean oldUnverifiedInformation = unverifiedInformation;
+ boolean oldUnverifiedInformationESet = unverifiedInformationESet;
+ unverifiedInformation = UNVERIFIED_INFORMATION_EDEFAULT;
+ unverifiedInformationESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION, oldUnverifiedInformation, UNVERIFIED_INFORMATION_EDEFAULT, oldUnverifiedInformationESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetUnverifiedInformation() {
+ return unverifiedInformationESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getSubCause() {
+ return subCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubCause(Object newSubCause) {
+ Object oldSubCause = subCause;
+ subCause = newSubCause;
+ boolean oldSubCauseESet = subCauseESet;
+ subCauseESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__SUB_CAUSE, oldSubCause, subCause, !oldSubCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSubCause() {
+ Object oldSubCause = subCause;
+ boolean oldSubCauseESet = subCauseESet;
+ subCause = SUB_CAUSE_EDEFAULT;
+ subCauseESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__SUB_CAUSE, oldSubCause, SUB_CAUSE_EDEFAULT, oldSubCauseESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubCause() {
+ return subCauseESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLengthAffected() {
+ return lengthAffected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthAffected(Integer newLengthAffected) {
+ Integer oldLengthAffected = lengthAffected;
+ lengthAffected = newLengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffectedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__LENGTH_AFFECTED, oldLengthAffected, lengthAffected, !oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLengthAffected() {
+ Integer oldLengthAffected = lengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+ lengthAffectedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__LENGTH_AFFECTED, oldLengthAffected, LENGTH_AFFECTED_EDEFAULT, oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLengthAffected() {
+ return lengthAffectedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictionType getLaneRestrictionType() {
+ return laneRestrictionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLaneRestrictionType(LaneRestrictionType newLaneRestrictionType) {
+ LaneRestrictionType oldLaneRestrictionType = laneRestrictionType;
+ laneRestrictionType = newLaneRestrictionType == null ? LANE_RESTRICTION_TYPE_EDEFAULT : newLaneRestrictionType;
+ boolean oldLaneRestrictionTypeESet = laneRestrictionTypeESet;
+ laneRestrictionTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__LANE_RESTRICTION_TYPE, oldLaneRestrictionType, laneRestrictionType, !oldLaneRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLaneRestrictionType() {
+ LaneRestrictionType oldLaneRestrictionType = laneRestrictionType;
+ boolean oldLaneRestrictionTypeESet = laneRestrictionTypeESet;
+ laneRestrictionType = LANE_RESTRICTION_TYPE_EDEFAULT;
+ laneRestrictionTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__LANE_RESTRICTION_TYPE, oldLaneRestrictionType, LANE_RESTRICTION_TYPE_EDEFAULT, oldLaneRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLaneRestrictionType() {
+ return laneRestrictionTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getNumberOfLanes() {
+ return numberOfLanes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfLanes(Integer newNumberOfLanes) {
+ Integer oldNumberOfLanes = numberOfLanes;
+ numberOfLanes = newNumberOfLanes;
+ boolean oldNumberOfLanesESet = numberOfLanesESet;
+ numberOfLanesESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__NUMBER_OF_LANES, oldNumberOfLanes, numberOfLanes, !oldNumberOfLanesESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetNumberOfLanes() {
+ Integer oldNumberOfLanes = numberOfLanes;
+ boolean oldNumberOfLanesESet = numberOfLanesESet;
+ numberOfLanes = NUMBER_OF_LANES_EDEFAULT;
+ numberOfLanesESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__NUMBER_OF_LANES, oldNumberOfLanes, NUMBER_OF_LANES_EDEFAULT, oldNumberOfLanesESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNumberOfLanes() {
+ return numberOfLanesESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LocalisedShortString> getFreeText() {
+ if (freeText == null) {
+ freeText = new EObjectContainmentEList<LocalisedShortString>(LocalisedShortString.class, this, EventPackage.DIRECT_CAUSE__FREE_TEXT);
+ }
+ return freeText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getCauseOffset() {
+ return causeOffset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCauseOffset(Integer newCauseOffset) {
+ Integer oldCauseOffset = causeOffset;
+ causeOffset = newCauseOffset;
+ boolean oldCauseOffsetESet = causeOffsetESet;
+ causeOffsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.DIRECT_CAUSE__CAUSE_OFFSET, oldCauseOffset, causeOffset, !oldCauseOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCauseOffset() {
+ Integer oldCauseOffset = causeOffset;
+ boolean oldCauseOffsetESet = causeOffsetESet;
+ causeOffset = CAUSE_OFFSET_EDEFAULT;
+ causeOffsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.DIRECT_CAUSE__CAUSE_OFFSET, oldCauseOffset, CAUSE_OFFSET_EDEFAULT, oldCauseOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCauseOffset() {
+ return causeOffsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.DIRECT_CAUSE__FREE_TEXT:
+ return ((InternalEList<?>)getFreeText()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ return getWarningLevel();
+ case EventPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ return isUnverifiedInformation();
+ case EventPackage.DIRECT_CAUSE__SUB_CAUSE:
+ return getSubCause();
+ case EventPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ return getLengthAffected();
+ case EventPackage.DIRECT_CAUSE__LANE_RESTRICTION_TYPE:
+ return getLaneRestrictionType();
+ case EventPackage.DIRECT_CAUSE__NUMBER_OF_LANES:
+ return getNumberOfLanes();
+ case EventPackage.DIRECT_CAUSE__FREE_TEXT:
+ return getFreeText();
+ case EventPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ return getCauseOffset();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ setWarningLevel((WarningLevel)newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ setUnverifiedInformation((Boolean)newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__SUB_CAUSE:
+ setSubCause(newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ setLengthAffected((Integer)newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__LANE_RESTRICTION_TYPE:
+ setLaneRestrictionType((LaneRestrictionType)newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__NUMBER_OF_LANES:
+ setNumberOfLanes((Integer)newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__FREE_TEXT:
+ getFreeText().clear();
+ getFreeText().addAll((Collection<? extends LocalisedShortString>)newValue);
+ return;
+ case EventPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ setCauseOffset((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ unsetWarningLevel();
+ return;
+ case EventPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ unsetUnverifiedInformation();
+ return;
+ case EventPackage.DIRECT_CAUSE__SUB_CAUSE:
+ unsetSubCause();
+ return;
+ case EventPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ unsetLengthAffected();
+ return;
+ case EventPackage.DIRECT_CAUSE__LANE_RESTRICTION_TYPE:
+ unsetLaneRestrictionType();
+ return;
+ case EventPackage.DIRECT_CAUSE__NUMBER_OF_LANES:
+ unsetNumberOfLanes();
+ return;
+ case EventPackage.DIRECT_CAUSE__FREE_TEXT:
+ getFreeText().clear();
+ return;
+ case EventPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ unsetCauseOffset();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.DIRECT_CAUSE__WARNING_LEVEL:
+ return isSetWarningLevel();
+ case EventPackage.DIRECT_CAUSE__UNVERIFIED_INFORMATION:
+ return isSetUnverifiedInformation();
+ case EventPackage.DIRECT_CAUSE__SUB_CAUSE:
+ return isSetSubCause();
+ case EventPackage.DIRECT_CAUSE__LENGTH_AFFECTED:
+ return isSetLengthAffected();
+ case EventPackage.DIRECT_CAUSE__LANE_RESTRICTION_TYPE:
+ return isSetLaneRestrictionType();
+ case EventPackage.DIRECT_CAUSE__NUMBER_OF_LANES:
+ return isSetNumberOfLanes();
+ case EventPackage.DIRECT_CAUSE__FREE_TEXT:
+ return freeText != null && !freeText.isEmpty();
+ case EventPackage.DIRECT_CAUSE__CAUSE_OFFSET:
+ return isSetCauseOffset();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (warningLevel: ");
+ if (warningLevelESet) result.append(warningLevel); else result.append("<unset>");
+ result.append(", unverifiedInformation: ");
+ if (unverifiedInformationESet) result.append(unverifiedInformation); else result.append("<unset>");
+ result.append(", subCause: ");
+ if (subCauseESet) result.append(subCause); else result.append("<unset>");
+ result.append(", lengthAffected: ");
+ if (lengthAffectedESet) result.append(lengthAffected); else result.append("<unset>");
+ result.append(", laneRestrictionType: ");
+ if (laneRestrictionTypeESet) result.append(laneRestrictionType); else result.append("<unset>");
+ result.append(", numberOfLanes: ");
+ if (numberOfLanesESet) result.append(numberOfLanes); else result.append("<unset>");
+ result.append(", causeOffset: ");
+ if (causeOffsetESet) result.append(causeOffset); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //DirectCauseImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventFactoryImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventFactoryImpl.java
new file mode 100755
index 0000000..ac56267
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventFactoryImpl.java
@@ -0,0 +1,1234 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.genivi.trafficinfo.tpeg.tec.event.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EventFactoryImpl extends EFactoryImpl implements EventFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EventFactory init() {
+ try {
+ EventFactory theEventFactory = (EventFactory)EPackage.Registry.INSTANCE.getEFactory(EventPackage.eNS_URI);
+ if (theEventFactory != null) {
+ return theEventFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new EventFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EventFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case EventPackage.EVENT: return createEvent();
+ case EventPackage.CAUSE: return createCause();
+ case EventPackage.LINKED_CAUSE: return createLinkedCause();
+ case EventPackage.DIRECT_CAUSE: return createDirectCause();
+ case EventPackage.ADVICE: return createAdvice();
+ case EventPackage.VEHICLE_RESTRICTION: return createVehicleRestriction();
+ case EventPackage.VEHICLE_RELATED_RESTRICTION: return createVehicleRelatedRestriction();
+ case EventPackage.TEC_MESSAGE: return createTECMessage();
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION: return createTemporarySpeedLimitSection();
+ case EventPackage.TEMPORARY_SPEED_LIMIT: return createTemporarySpeedLimit();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case EventPackage.EFFECT_CODE:
+ return createEffectCodeFromString(eDataType, initialValue);
+ case EventPackage.TENDENCY:
+ return createTendencyFromString(eDataType, initialValue);
+ case EventPackage.CAUSE_CODE:
+ return createCauseCodeFromString(eDataType, initialValue);
+ case EventPackage.WARNING_LEVEL:
+ return createWarningLevelFromString(eDataType, initialValue);
+ case EventPackage.TRAFFIC_CONGESTION:
+ return createTrafficCongestionFromString(eDataType, initialValue);
+ case EventPackage.ACCIDENT:
+ return createAccidentFromString(eDataType, initialValue);
+ case EventPackage.ROAD_WORKS:
+ return createRoadWorksFromString(eDataType, initialValue);
+ case EventPackage.NARROW_LANES:
+ return createNarrowLanesFromString(eDataType, initialValue);
+ case EventPackage.IMPASSIBILITY:
+ return createImpassibilityFromString(eDataType, initialValue);
+ case EventPackage.SLIPPERY_ROAD:
+ return createSlipperyRoadFromString(eDataType, initialValue);
+ case EventPackage.FIRE:
+ return createFireFromString(eDataType, initialValue);
+ case EventPackage.HAZARDOUS_DRIVING_CONDITIONS:
+ return createHazardousDrivingConditionsFromString(eDataType, initialValue);
+ case EventPackage.OBJECTS_ON_THE_ROAD:
+ return createObjectsOnTheRoadFromString(eDataType, initialValue);
+ case EventPackage.ANIMALS_ON_ROADWAY:
+ return createAnimalsOnRoadwayFromString(eDataType, initialValue);
+ case EventPackage.PEOPLE_ON_ROADWAY:
+ return createPeopleOnRoadwayFromString(eDataType, initialValue);
+ case EventPackage.BROKEN_DOWN_VEHICLES:
+ return createBrokenDownVehiclesFromString(eDataType, initialValue);
+ case EventPackage.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ return createRescueAndRecoveryWorkInProgressFromString(eDataType, initialValue);
+ case EventPackage.REGULATORY_MEASURE:
+ return createRegulatoryMeasureFromString(eDataType, initialValue);
+ case EventPackage.LANE_RESTRICTION_TYPE:
+ return createLaneRestrictionTypeFromString(eDataType, initialValue);
+ case EventPackage.ADVICE_CODE:
+ return createAdviceCodeFromString(eDataType, initialValue);
+ case EventPackage.VEHICLE_TYPE:
+ return createVehicleTypeFromString(eDataType, initialValue);
+ case EventPackage.RESTRICTION_TYPE:
+ return createRestrictionTypeFromString(eDataType, initialValue);
+ case EventPackage.EXTREME_WEATHER_CONDITIONS:
+ return createExtremeWeatherConditionsFromString(eDataType, initialValue);
+ case EventPackage.VISIBILITY_REDUCED:
+ return createVisibilityReducedFromString(eDataType, initialValue);
+ case EventPackage.PRECIPITATION:
+ return createPrecipitationFromString(eDataType, initialValue);
+ case EventPackage.RECKLESS_PERSONS:
+ return createRecklessPersonsFromString(eDataType, initialValue);
+ case EventPackage.MAJOR_EVENT:
+ return createMajorEventFromString(eDataType, initialValue);
+ case EventPackage.SERVICE_NOT_OPERATING:
+ return createServiceNotOperatingFromString(eDataType, initialValue);
+ case EventPackage.SERVICE_NOT_USABLE:
+ return createServiceNotUsableFromString(eDataType, initialValue);
+ case EventPackage.SLOW_MOVING_VEHICLES:
+ return createSlowMovingVehiclesFromString(eDataType, initialValue);
+ case EventPackage.DANGEROUS_END_OF_QUEUE:
+ return createDangerousEndOfQueueFromString(eDataType, initialValue);
+ case EventPackage.RISK_OF_FIRE:
+ return createRiskOfFireFromString(eDataType, initialValue);
+ case EventPackage.TIME_DELAY:
+ return createTimeDelayFromString(eDataType, initialValue);
+ case EventPackage.POLICE_CHECKPOINT:
+ return createPoliceCheckpointFromString(eDataType, initialValue);
+ case EventPackage.MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ return createMalfunctioningRoadsideEquipmentFromString(eDataType, initialValue);
+ case EventPackage.OVERTAKING_NOT_ALLOWED:
+ return createOvertakingNotAllowedFromString(eDataType, initialValue);
+ case EventPackage.DRIVING_NOT_ALLOWED:
+ return createDrivingNotAllowedFromString(eDataType, initialValue);
+ case EventPackage.GIVING_PATH_VEHICLES_FROM_BEHIND:
+ return createGivingPathVehiclesFromBehindFromString(eDataType, initialValue);
+ case EventPackage.FOLLOW_DIVERSION:
+ return createFollowDiversionFromString(eDataType, initialValue);
+ case EventPackage.DRIVE_CAREFULLY:
+ return createDriveCarefullyFromString(eDataType, initialValue);
+ case EventPackage.DO_NOT_LEAVE_YOUR_VEHICLE:
+ return createDoNotLeaveYourVehicleFromString(eDataType, initialValue);
+ case EventPackage.USE_TOLL_LANES:
+ return createUseTollLanesFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case EventPackage.EFFECT_CODE:
+ return convertEffectCodeToString(eDataType, instanceValue);
+ case EventPackage.TENDENCY:
+ return convertTendencyToString(eDataType, instanceValue);
+ case EventPackage.CAUSE_CODE:
+ return convertCauseCodeToString(eDataType, instanceValue);
+ case EventPackage.WARNING_LEVEL:
+ return convertWarningLevelToString(eDataType, instanceValue);
+ case EventPackage.TRAFFIC_CONGESTION:
+ return convertTrafficCongestionToString(eDataType, instanceValue);
+ case EventPackage.ACCIDENT:
+ return convertAccidentToString(eDataType, instanceValue);
+ case EventPackage.ROAD_WORKS:
+ return convertRoadWorksToString(eDataType, instanceValue);
+ case EventPackage.NARROW_LANES:
+ return convertNarrowLanesToString(eDataType, instanceValue);
+ case EventPackage.IMPASSIBILITY:
+ return convertImpassibilityToString(eDataType, instanceValue);
+ case EventPackage.SLIPPERY_ROAD:
+ return convertSlipperyRoadToString(eDataType, instanceValue);
+ case EventPackage.FIRE:
+ return convertFireToString(eDataType, instanceValue);
+ case EventPackage.HAZARDOUS_DRIVING_CONDITIONS:
+ return convertHazardousDrivingConditionsToString(eDataType, instanceValue);
+ case EventPackage.OBJECTS_ON_THE_ROAD:
+ return convertObjectsOnTheRoadToString(eDataType, instanceValue);
+ case EventPackage.ANIMALS_ON_ROADWAY:
+ return convertAnimalsOnRoadwayToString(eDataType, instanceValue);
+ case EventPackage.PEOPLE_ON_ROADWAY:
+ return convertPeopleOnRoadwayToString(eDataType, instanceValue);
+ case EventPackage.BROKEN_DOWN_VEHICLES:
+ return convertBrokenDownVehiclesToString(eDataType, instanceValue);
+ case EventPackage.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS:
+ return convertRescueAndRecoveryWorkInProgressToString(eDataType, instanceValue);
+ case EventPackage.REGULATORY_MEASURE:
+ return convertRegulatoryMeasureToString(eDataType, instanceValue);
+ case EventPackage.LANE_RESTRICTION_TYPE:
+ return convertLaneRestrictionTypeToString(eDataType, instanceValue);
+ case EventPackage.ADVICE_CODE:
+ return convertAdviceCodeToString(eDataType, instanceValue);
+ case EventPackage.VEHICLE_TYPE:
+ return convertVehicleTypeToString(eDataType, instanceValue);
+ case EventPackage.RESTRICTION_TYPE:
+ return convertRestrictionTypeToString(eDataType, instanceValue);
+ case EventPackage.EXTREME_WEATHER_CONDITIONS:
+ return convertExtremeWeatherConditionsToString(eDataType, instanceValue);
+ case EventPackage.VISIBILITY_REDUCED:
+ return convertVisibilityReducedToString(eDataType, instanceValue);
+ case EventPackage.PRECIPITATION:
+ return convertPrecipitationToString(eDataType, instanceValue);
+ case EventPackage.RECKLESS_PERSONS:
+ return convertRecklessPersonsToString(eDataType, instanceValue);
+ case EventPackage.MAJOR_EVENT:
+ return convertMajorEventToString(eDataType, instanceValue);
+ case EventPackage.SERVICE_NOT_OPERATING:
+ return convertServiceNotOperatingToString(eDataType, instanceValue);
+ case EventPackage.SERVICE_NOT_USABLE:
+ return convertServiceNotUsableToString(eDataType, instanceValue);
+ case EventPackage.SLOW_MOVING_VEHICLES:
+ return convertSlowMovingVehiclesToString(eDataType, instanceValue);
+ case EventPackage.DANGEROUS_END_OF_QUEUE:
+ return convertDangerousEndOfQueueToString(eDataType, instanceValue);
+ case EventPackage.RISK_OF_FIRE:
+ return convertRiskOfFireToString(eDataType, instanceValue);
+ case EventPackage.TIME_DELAY:
+ return convertTimeDelayToString(eDataType, instanceValue);
+ case EventPackage.POLICE_CHECKPOINT:
+ return convertPoliceCheckpointToString(eDataType, instanceValue);
+ case EventPackage.MALFUNCTIONING_ROADSIDE_EQUIPMENT:
+ return convertMalfunctioningRoadsideEquipmentToString(eDataType, instanceValue);
+ case EventPackage.OVERTAKING_NOT_ALLOWED:
+ return convertOvertakingNotAllowedToString(eDataType, instanceValue);
+ case EventPackage.DRIVING_NOT_ALLOWED:
+ return convertDrivingNotAllowedToString(eDataType, instanceValue);
+ case EventPackage.GIVING_PATH_VEHICLES_FROM_BEHIND:
+ return convertGivingPathVehiclesFromBehindToString(eDataType, instanceValue);
+ case EventPackage.FOLLOW_DIVERSION:
+ return convertFollowDiversionToString(eDataType, instanceValue);
+ case EventPackage.DRIVE_CAREFULLY:
+ return convertDriveCarefullyToString(eDataType, instanceValue);
+ case EventPackage.DO_NOT_LEAVE_YOUR_VEHICLE:
+ return convertDoNotLeaveYourVehicleToString(eDataType, instanceValue);
+ case EventPackage.USE_TOLL_LANES:
+ return convertUseTollLanesToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event createEvent() {
+ EventImpl event = new EventImpl();
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Cause createCause() {
+ CauseImpl cause = new CauseImpl();
+ return cause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkedCause createLinkedCause() {
+ LinkedCauseImpl linkedCause = new LinkedCauseImpl();
+ return linkedCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DirectCause createDirectCause() {
+ DirectCauseImpl directCause = new DirectCauseImpl();
+ return directCause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Advice createAdvice() {
+ AdviceImpl advice = new AdviceImpl();
+ return advice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleRestriction createVehicleRestriction() {
+ VehicleRestrictionImpl vehicleRestriction = new VehicleRestrictionImpl();
+ return vehicleRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleRelatedRestriction createVehicleRelatedRestriction() {
+ VehicleRelatedRestrictionImpl vehicleRelatedRestriction = new VehicleRelatedRestrictionImpl();
+ return vehicleRelatedRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TECMessage createTECMessage() {
+ TECMessageImpl tecMessage = new TECMessageImpl();
+ return tecMessage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemporarySpeedLimitSection createTemporarySpeedLimitSection() {
+ TemporarySpeedLimitSectionImpl temporarySpeedLimitSection = new TemporarySpeedLimitSectionImpl();
+ return temporarySpeedLimitSection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemporarySpeedLimit createTemporarySpeedLimit() {
+ TemporarySpeedLimitImpl temporarySpeedLimit = new TemporarySpeedLimitImpl();
+ return temporarySpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EffectCode createEffectCodeFromString(EDataType eDataType, String initialValue) {
+ EffectCode result = EffectCode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertEffectCodeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tendency createTendencyFromString(EDataType eDataType, String initialValue) {
+ Tendency result = Tendency.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTendencyToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CauseCode createCauseCodeFromString(EDataType eDataType, String initialValue) {
+ CauseCode result = CauseCode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCauseCodeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WarningLevel createWarningLevelFromString(EDataType eDataType, String initialValue) {
+ WarningLevel result = WarningLevel.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertWarningLevelToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TrafficCongestion createTrafficCongestionFromString(EDataType eDataType, String initialValue) {
+ TrafficCongestion result = TrafficCongestion.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTrafficCongestionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Accident createAccidentFromString(EDataType eDataType, String initialValue) {
+ Accident result = Accident.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAccidentToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RoadWorks createRoadWorksFromString(EDataType eDataType, String initialValue) {
+ RoadWorks result = RoadWorks.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRoadWorksToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NarrowLanes createNarrowLanesFromString(EDataType eDataType, String initialValue) {
+ NarrowLanes result = NarrowLanes.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertNarrowLanesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Impassibility createImpassibilityFromString(EDataType eDataType, String initialValue) {
+ Impassibility result = Impassibility.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertImpassibilityToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SlipperyRoad createSlipperyRoadFromString(EDataType eDataType, String initialValue) {
+ SlipperyRoad result = SlipperyRoad.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSlipperyRoadToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Fire createFireFromString(EDataType eDataType, String initialValue) {
+ Fire result = Fire.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFireToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HazardousDrivingConditions createHazardousDrivingConditionsFromString(EDataType eDataType, String initialValue) {
+ HazardousDrivingConditions result = HazardousDrivingConditions.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertHazardousDrivingConditionsToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectsOnTheRoad createObjectsOnTheRoadFromString(EDataType eDataType, String initialValue) {
+ ObjectsOnTheRoad result = ObjectsOnTheRoad.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertObjectsOnTheRoadToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnimalsOnRoadway createAnimalsOnRoadwayFromString(EDataType eDataType, String initialValue) {
+ AnimalsOnRoadway result = AnimalsOnRoadway.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAnimalsOnRoadwayToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PeopleOnRoadway createPeopleOnRoadwayFromString(EDataType eDataType, String initialValue) {
+ PeopleOnRoadway result = PeopleOnRoadway.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPeopleOnRoadwayToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BrokenDownVehicles createBrokenDownVehiclesFromString(EDataType eDataType, String initialValue) {
+ BrokenDownVehicles result = BrokenDownVehicles.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBrokenDownVehiclesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RescueAndRecoveryWorkInProgress createRescueAndRecoveryWorkInProgressFromString(EDataType eDataType, String initialValue) {
+ RescueAndRecoveryWorkInProgress result = RescueAndRecoveryWorkInProgress.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRescueAndRecoveryWorkInProgressToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RegulatoryMeasure createRegulatoryMeasureFromString(EDataType eDataType, String initialValue) {
+ RegulatoryMeasure result = RegulatoryMeasure.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRegulatoryMeasureToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaneRestrictionType createLaneRestrictionTypeFromString(EDataType eDataType, String initialValue) {
+ LaneRestrictionType result = LaneRestrictionType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLaneRestrictionTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdviceCode createAdviceCodeFromString(EDataType eDataType, String initialValue) {
+ AdviceCode result = AdviceCode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAdviceCodeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleType createVehicleTypeFromString(EDataType eDataType, String initialValue) {
+ VehicleType result = VehicleType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertVehicleTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RestrictionType createRestrictionTypeFromString(EDataType eDataType, String initialValue) {
+ RestrictionType result = RestrictionType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRestrictionTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtremeWeatherConditions createExtremeWeatherConditionsFromString(EDataType eDataType, String initialValue) {
+ ExtremeWeatherConditions result = ExtremeWeatherConditions.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertExtremeWeatherConditionsToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityReduced createVisibilityReducedFromString(EDataType eDataType, String initialValue) {
+ VisibilityReduced result = VisibilityReduced.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertVisibilityReducedToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Precipitation createPrecipitationFromString(EDataType eDataType, String initialValue) {
+ Precipitation result = Precipitation.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPrecipitationToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RecklessPersons createRecklessPersonsFromString(EDataType eDataType, String initialValue) {
+ RecklessPersons result = RecklessPersons.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRecklessPersonsToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MajorEvent createMajorEventFromString(EDataType eDataType, String initialValue) {
+ MajorEvent result = MajorEvent.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMajorEventToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceNotOperating createServiceNotOperatingFromString(EDataType eDataType, String initialValue) {
+ ServiceNotOperating result = ServiceNotOperating.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertServiceNotOperatingToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceNotUsable createServiceNotUsableFromString(EDataType eDataType, String initialValue) {
+ ServiceNotUsable result = ServiceNotUsable.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertServiceNotUsableToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SlowMovingVehicles createSlowMovingVehiclesFromString(EDataType eDataType, String initialValue) {
+ SlowMovingVehicles result = SlowMovingVehicles.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSlowMovingVehiclesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DangerousEndOfQueue createDangerousEndOfQueueFromString(EDataType eDataType, String initialValue) {
+ DangerousEndOfQueue result = DangerousEndOfQueue.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDangerousEndOfQueueToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RiskOfFire createRiskOfFireFromString(EDataType eDataType, String initialValue) {
+ RiskOfFire result = RiskOfFire.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRiskOfFireToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeDelay createTimeDelayFromString(EDataType eDataType, String initialValue) {
+ TimeDelay result = TimeDelay.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTimeDelayToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PoliceCheckpoint createPoliceCheckpointFromString(EDataType eDataType, String initialValue) {
+ PoliceCheckpoint result = PoliceCheckpoint.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPoliceCheckpointToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MalfunctioningRoadsideEquipment createMalfunctioningRoadsideEquipmentFromString(EDataType eDataType, String initialValue) {
+ MalfunctioningRoadsideEquipment result = MalfunctioningRoadsideEquipment.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMalfunctioningRoadsideEquipmentToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OvertakingNotAllowed createOvertakingNotAllowedFromString(EDataType eDataType, String initialValue) {
+ OvertakingNotAllowed result = OvertakingNotAllowed.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertOvertakingNotAllowedToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DrivingNotAllowed createDrivingNotAllowedFromString(EDataType eDataType, String initialValue) {
+ DrivingNotAllowed result = DrivingNotAllowed.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDrivingNotAllowedToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GivingPathVehiclesFromBehind createGivingPathVehiclesFromBehindFromString(EDataType eDataType, String initialValue) {
+ GivingPathVehiclesFromBehind result = GivingPathVehiclesFromBehind.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertGivingPathVehiclesFromBehindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FollowDiversion createFollowDiversionFromString(EDataType eDataType, String initialValue) {
+ FollowDiversion result = FollowDiversion.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFollowDiversionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DriveCarefully createDriveCarefullyFromString(EDataType eDataType, String initialValue) {
+ DriveCarefully result = DriveCarefully.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDriveCarefullyToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DoNotLeaveYourVehicle createDoNotLeaveYourVehicleFromString(EDataType eDataType, String initialValue) {
+ DoNotLeaveYourVehicle result = DoNotLeaveYourVehicle.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDoNotLeaveYourVehicleToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseTollLanes createUseTollLanesFromString(EDataType eDataType, String initialValue) {
+ UseTollLanes result = UseTollLanes.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertUseTollLanesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EventPackage getEventPackage() {
+ return (EventPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static EventPackage getPackage() {
+ return EventPackage.eINSTANCE;
+ }
+
+} //EventFactoryImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventImpl.java
new file mode 100755
index 0000000..e69ffa9
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventImpl.java
@@ -0,0 +1,1079 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import java.util.Collection;
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tec.event.Advice;
+import org.genivi.trafficinfo.tpeg.tec.event.Cause;
+import org.genivi.trafficinfo.tpeg.tec.event.EffectCode;
+import org.genivi.trafficinfo.tpeg.tec.event.Event;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit;
+import org.genivi.trafficinfo.tpeg.tec.event.Tendency;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getEffectCode <em>Effect Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getStartTime <em>Start Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getStopTime <em>Stop Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getTendency <em>Tendency</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getLengthAffected <em>Length Affected</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getAverageSpeedAbsolute <em>Average Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getDelay <em>Delay</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getSegmentSpeedLimit <em>Segment Speed Limit</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getCause <em>Cause</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getAdvice <em>Advice</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getVehicleRestriction <em>Vehicle Restriction</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getExpectedSpeedAbsolute <em>Expected Speed Absolute</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.EventImpl#getTemporarySpeedLimit <em>Temporary Speed Limit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EventImpl extends EObjectImpl implements Event {
+ /**
+ * The default value of the '{@link #getEffectCode() <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectCode()
+ * @generated
+ * @ordered
+ */
+ protected static final EffectCode EFFECT_CODE_EDEFAULT = EffectCode.TRAFFIC_FLOW_UNKNOWN;
+
+ /**
+ * The cached value of the '{@link #getEffectCode() <em>Effect Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffectCode()
+ * @generated
+ * @ordered
+ */
+ protected EffectCode effectCode = EFFECT_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Effect Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean effectCodeESet;
+
+ /**
+ * The default value of the '{@link #getStartTime() <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStartTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date START_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStartTime() <em>Start Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStartTime()
+ * @generated
+ * @ordered
+ */
+ protected Date startTime = START_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Start Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean startTimeESet;
+
+ /**
+ * The default value of the '{@link #getStopTime() <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStopTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date STOP_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStopTime() <em>Stop Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStopTime()
+ * @generated
+ * @ordered
+ */
+ protected Date stopTime = STOP_TIME_EDEFAULT;
+
+ /**
+ * This is true if the Stop Time attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean stopTimeESet;
+
+ /**
+ * The default value of the '{@link #getTendency() <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendency()
+ * @generated
+ * @ordered
+ */
+ protected static final Tendency TENDENCY_EDEFAULT = Tendency.SLIGHTLY_INCREASING;
+
+ /**
+ * The cached value of the '{@link #getTendency() <em>Tendency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTendency()
+ * @generated
+ * @ordered
+ */
+ protected Tendency tendency = TENDENCY_EDEFAULT;
+
+ /**
+ * This is true if the Tendency attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean tendencyESet;
+
+ /**
+ * The default value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LENGTH_AFFECTED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLengthAffected() <em>Length Affected</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLengthAffected()
+ * @generated
+ * @ordered
+ */
+ protected Integer lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+
+ /**
+ * This is true if the Length Affected attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean lengthAffectedESet;
+
+ /**
+ * The default value of the '{@link #getAverageSpeedAbsolute() <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer AVERAGE_SPEED_ABSOLUTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAverageSpeedAbsolute() <em>Average Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected Integer averageSpeedAbsolute = AVERAGE_SPEED_ABSOLUTE_EDEFAULT;
+
+ /**
+ * This is true if the Average Speed Absolute attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean averageSpeedAbsoluteESet;
+
+ /**
+ * The default value of the '{@link #getDelay() <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelay()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer DELAY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDelay() <em>Delay</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelay()
+ * @generated
+ * @ordered
+ */
+ protected Integer delay = DELAY_EDEFAULT;
+
+ /**
+ * This is true if the Delay attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean delayESet;
+
+ /**
+ * The default value of the '{@link #getSegmentSpeedLimit() <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer SEGMENT_SPEED_LIMIT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSegmentSpeedLimit() <em>Segment Speed Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSegmentSpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected Integer segmentSpeedLimit = SEGMENT_SPEED_LIMIT_EDEFAULT;
+
+ /**
+ * This is true if the Segment Speed Limit attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean segmentSpeedLimitESet;
+
+ /**
+ * The cached value of the '{@link #getCause() <em>Cause</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCause()
+ * @generated
+ * @ordered
+ */
+ protected EList<Cause> cause;
+
+ /**
+ * The cached value of the '{@link #getAdvice() <em>Advice</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAdvice()
+ * @generated
+ * @ordered
+ */
+ protected EList<Advice> advice;
+
+ /**
+ * The cached value of the '{@link #getVehicleRestriction() <em>Vehicle Restriction</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleRestriction()
+ * @generated
+ * @ordered
+ */
+ protected EList<VehicleRestriction> vehicleRestriction;
+
+ /**
+ * The default value of the '{@link #getExpectedSpeedAbsolute() <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer EXPECTED_SPEED_ABSOLUTE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExpectedSpeedAbsolute() <em>Expected Speed Absolute</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpectedSpeedAbsolute()
+ * @generated
+ * @ordered
+ */
+ protected Integer expectedSpeedAbsolute = EXPECTED_SPEED_ABSOLUTE_EDEFAULT;
+
+ /**
+ * This is true if the Expected Speed Absolute attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean expectedSpeedAbsoluteESet;
+
+ /**
+ * The cached value of the '{@link #getTemporarySpeedLimit() <em>Temporary Speed Limit</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporarySpeedLimit()
+ * @generated
+ * @ordered
+ */
+ protected EList<TemporarySpeedLimit> temporarySpeedLimit;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.EVENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EffectCode getEffectCode() {
+ return effectCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEffectCode(EffectCode newEffectCode) {
+ EffectCode oldEffectCode = effectCode;
+ effectCode = newEffectCode == null ? EFFECT_CODE_EDEFAULT : newEffectCode;
+ boolean oldEffectCodeESet = effectCodeESet;
+ effectCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__EFFECT_CODE, oldEffectCode, effectCode, !oldEffectCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetEffectCode() {
+ EffectCode oldEffectCode = effectCode;
+ boolean oldEffectCodeESet = effectCodeESet;
+ effectCode = EFFECT_CODE_EDEFAULT;
+ effectCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__EFFECT_CODE, oldEffectCode, EFFECT_CODE_EDEFAULT, oldEffectCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEffectCode() {
+ return effectCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStartTime(Date newStartTime) {
+ Date oldStartTime = startTime;
+ startTime = newStartTime;
+ boolean oldStartTimeESet = startTimeESet;
+ startTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__START_TIME, oldStartTime, startTime, !oldStartTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStartTime() {
+ Date oldStartTime = startTime;
+ boolean oldStartTimeESet = startTimeESet;
+ startTime = START_TIME_EDEFAULT;
+ startTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__START_TIME, oldStartTime, START_TIME_EDEFAULT, oldStartTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStartTime() {
+ return startTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getStopTime() {
+ return stopTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStopTime(Date newStopTime) {
+ Date oldStopTime = stopTime;
+ stopTime = newStopTime;
+ boolean oldStopTimeESet = stopTimeESet;
+ stopTimeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__STOP_TIME, oldStopTime, stopTime, !oldStopTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetStopTime() {
+ Date oldStopTime = stopTime;
+ boolean oldStopTimeESet = stopTimeESet;
+ stopTime = STOP_TIME_EDEFAULT;
+ stopTimeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__STOP_TIME, oldStopTime, STOP_TIME_EDEFAULT, oldStopTimeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetStopTime() {
+ return stopTimeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tendency getTendency() {
+ return tendency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTendency(Tendency newTendency) {
+ Tendency oldTendency = tendency;
+ tendency = newTendency == null ? TENDENCY_EDEFAULT : newTendency;
+ boolean oldTendencyESet = tendencyESet;
+ tendencyESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__TENDENCY, oldTendency, tendency, !oldTendencyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetTendency() {
+ Tendency oldTendency = tendency;
+ boolean oldTendencyESet = tendencyESet;
+ tendency = TENDENCY_EDEFAULT;
+ tendencyESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__TENDENCY, oldTendency, TENDENCY_EDEFAULT, oldTendencyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTendency() {
+ return tendencyESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLengthAffected() {
+ return lengthAffected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLengthAffected(Integer newLengthAffected) {
+ Integer oldLengthAffected = lengthAffected;
+ lengthAffected = newLengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffectedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__LENGTH_AFFECTED, oldLengthAffected, lengthAffected, !oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLengthAffected() {
+ Integer oldLengthAffected = lengthAffected;
+ boolean oldLengthAffectedESet = lengthAffectedESet;
+ lengthAffected = LENGTH_AFFECTED_EDEFAULT;
+ lengthAffectedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__LENGTH_AFFECTED, oldLengthAffected, LENGTH_AFFECTED_EDEFAULT, oldLengthAffectedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLengthAffected() {
+ return lengthAffectedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getAverageSpeedAbsolute() {
+ return averageSpeedAbsolute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAverageSpeedAbsolute(Integer newAverageSpeedAbsolute) {
+ Integer oldAverageSpeedAbsolute = averageSpeedAbsolute;
+ averageSpeedAbsolute = newAverageSpeedAbsolute;
+ boolean oldAverageSpeedAbsoluteESet = averageSpeedAbsoluteESet;
+ averageSpeedAbsoluteESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__AVERAGE_SPEED_ABSOLUTE, oldAverageSpeedAbsolute, averageSpeedAbsolute, !oldAverageSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAverageSpeedAbsolute() {
+ Integer oldAverageSpeedAbsolute = averageSpeedAbsolute;
+ boolean oldAverageSpeedAbsoluteESet = averageSpeedAbsoluteESet;
+ averageSpeedAbsolute = AVERAGE_SPEED_ABSOLUTE_EDEFAULT;
+ averageSpeedAbsoluteESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__AVERAGE_SPEED_ABSOLUTE, oldAverageSpeedAbsolute, AVERAGE_SPEED_ABSOLUTE_EDEFAULT, oldAverageSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAverageSpeedAbsolute() {
+ return averageSpeedAbsoluteESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getDelay() {
+ return delay;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDelay(Integer newDelay) {
+ Integer oldDelay = delay;
+ delay = newDelay;
+ boolean oldDelayESet = delayESet;
+ delayESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__DELAY, oldDelay, delay, !oldDelayESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDelay() {
+ Integer oldDelay = delay;
+ boolean oldDelayESet = delayESet;
+ delay = DELAY_EDEFAULT;
+ delayESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__DELAY, oldDelay, DELAY_EDEFAULT, oldDelayESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDelay() {
+ return delayESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getSegmentSpeedLimit() {
+ return segmentSpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSegmentSpeedLimit(Integer newSegmentSpeedLimit) {
+ Integer oldSegmentSpeedLimit = segmentSpeedLimit;
+ segmentSpeedLimit = newSegmentSpeedLimit;
+ boolean oldSegmentSpeedLimitESet = segmentSpeedLimitESet;
+ segmentSpeedLimitESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__SEGMENT_SPEED_LIMIT, oldSegmentSpeedLimit, segmentSpeedLimit, !oldSegmentSpeedLimitESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSegmentSpeedLimit() {
+ Integer oldSegmentSpeedLimit = segmentSpeedLimit;
+ boolean oldSegmentSpeedLimitESet = segmentSpeedLimitESet;
+ segmentSpeedLimit = SEGMENT_SPEED_LIMIT_EDEFAULT;
+ segmentSpeedLimitESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__SEGMENT_SPEED_LIMIT, oldSegmentSpeedLimit, SEGMENT_SPEED_LIMIT_EDEFAULT, oldSegmentSpeedLimitESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSegmentSpeedLimit() {
+ return segmentSpeedLimitESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Cause> getCause() {
+ if (cause == null) {
+ cause = new EObjectContainmentEList<Cause>(Cause.class, this, EventPackage.EVENT__CAUSE);
+ }
+ return cause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Advice> getAdvice() {
+ if (advice == null) {
+ advice = new EObjectContainmentEList<Advice>(Advice.class, this, EventPackage.EVENT__ADVICE);
+ }
+ return advice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VehicleRestriction> getVehicleRestriction() {
+ if (vehicleRestriction == null) {
+ vehicleRestriction = new EObjectContainmentEList<VehicleRestriction>(VehicleRestriction.class, this, EventPackage.EVENT__VEHICLE_RESTRICTION);
+ }
+ return vehicleRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getExpectedSpeedAbsolute() {
+ return expectedSpeedAbsolute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpectedSpeedAbsolute(Integer newExpectedSpeedAbsolute) {
+ Integer oldExpectedSpeedAbsolute = expectedSpeedAbsolute;
+ expectedSpeedAbsolute = newExpectedSpeedAbsolute;
+ boolean oldExpectedSpeedAbsoluteESet = expectedSpeedAbsoluteESet;
+ expectedSpeedAbsoluteESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.EVENT__EXPECTED_SPEED_ABSOLUTE, oldExpectedSpeedAbsolute, expectedSpeedAbsolute, !oldExpectedSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExpectedSpeedAbsolute() {
+ Integer oldExpectedSpeedAbsolute = expectedSpeedAbsolute;
+ boolean oldExpectedSpeedAbsoluteESet = expectedSpeedAbsoluteESet;
+ expectedSpeedAbsolute = EXPECTED_SPEED_ABSOLUTE_EDEFAULT;
+ expectedSpeedAbsoluteESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.EVENT__EXPECTED_SPEED_ABSOLUTE, oldExpectedSpeedAbsolute, EXPECTED_SPEED_ABSOLUTE_EDEFAULT, oldExpectedSpeedAbsoluteESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExpectedSpeedAbsolute() {
+ return expectedSpeedAbsoluteESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TemporarySpeedLimit> getTemporarySpeedLimit() {
+ if (temporarySpeedLimit == null) {
+ temporarySpeedLimit = new EObjectContainmentEList<TemporarySpeedLimit>(TemporarySpeedLimit.class, this, EventPackage.EVENT__TEMPORARY_SPEED_LIMIT);
+ }
+ return temporarySpeedLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.EVENT__CAUSE:
+ return ((InternalEList<?>)getCause()).basicRemove(otherEnd, msgs);
+ case EventPackage.EVENT__ADVICE:
+ return ((InternalEList<?>)getAdvice()).basicRemove(otherEnd, msgs);
+ case EventPackage.EVENT__VEHICLE_RESTRICTION:
+ return ((InternalEList<?>)getVehicleRestriction()).basicRemove(otherEnd, msgs);
+ case EventPackage.EVENT__TEMPORARY_SPEED_LIMIT:
+ return ((InternalEList<?>)getTemporarySpeedLimit()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.EVENT__EFFECT_CODE:
+ return getEffectCode();
+ case EventPackage.EVENT__START_TIME:
+ return getStartTime();
+ case EventPackage.EVENT__STOP_TIME:
+ return getStopTime();
+ case EventPackage.EVENT__TENDENCY:
+ return getTendency();
+ case EventPackage.EVENT__LENGTH_AFFECTED:
+ return getLengthAffected();
+ case EventPackage.EVENT__AVERAGE_SPEED_ABSOLUTE:
+ return getAverageSpeedAbsolute();
+ case EventPackage.EVENT__DELAY:
+ return getDelay();
+ case EventPackage.EVENT__SEGMENT_SPEED_LIMIT:
+ return getSegmentSpeedLimit();
+ case EventPackage.EVENT__CAUSE:
+ return getCause();
+ case EventPackage.EVENT__ADVICE:
+ return getAdvice();
+ case EventPackage.EVENT__VEHICLE_RESTRICTION:
+ return getVehicleRestriction();
+ case EventPackage.EVENT__EXPECTED_SPEED_ABSOLUTE:
+ return getExpectedSpeedAbsolute();
+ case EventPackage.EVENT__TEMPORARY_SPEED_LIMIT:
+ return getTemporarySpeedLimit();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.EVENT__EFFECT_CODE:
+ setEffectCode((EffectCode)newValue);
+ return;
+ case EventPackage.EVENT__START_TIME:
+ setStartTime((Date)newValue);
+ return;
+ case EventPackage.EVENT__STOP_TIME:
+ setStopTime((Date)newValue);
+ return;
+ case EventPackage.EVENT__TENDENCY:
+ setTendency((Tendency)newValue);
+ return;
+ case EventPackage.EVENT__LENGTH_AFFECTED:
+ setLengthAffected((Integer)newValue);
+ return;
+ case EventPackage.EVENT__AVERAGE_SPEED_ABSOLUTE:
+ setAverageSpeedAbsolute((Integer)newValue);
+ return;
+ case EventPackage.EVENT__DELAY:
+ setDelay((Integer)newValue);
+ return;
+ case EventPackage.EVENT__SEGMENT_SPEED_LIMIT:
+ setSegmentSpeedLimit((Integer)newValue);
+ return;
+ case EventPackage.EVENT__CAUSE:
+ getCause().clear();
+ getCause().addAll((Collection<? extends Cause>)newValue);
+ return;
+ case EventPackage.EVENT__ADVICE:
+ getAdvice().clear();
+ getAdvice().addAll((Collection<? extends Advice>)newValue);
+ return;
+ case EventPackage.EVENT__VEHICLE_RESTRICTION:
+ getVehicleRestriction().clear();
+ getVehicleRestriction().addAll((Collection<? extends VehicleRestriction>)newValue);
+ return;
+ case EventPackage.EVENT__EXPECTED_SPEED_ABSOLUTE:
+ setExpectedSpeedAbsolute((Integer)newValue);
+ return;
+ case EventPackage.EVENT__TEMPORARY_SPEED_LIMIT:
+ getTemporarySpeedLimit().clear();
+ getTemporarySpeedLimit().addAll((Collection<? extends TemporarySpeedLimit>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.EVENT__EFFECT_CODE:
+ unsetEffectCode();
+ return;
+ case EventPackage.EVENT__START_TIME:
+ unsetStartTime();
+ return;
+ case EventPackage.EVENT__STOP_TIME:
+ unsetStopTime();
+ return;
+ case EventPackage.EVENT__TENDENCY:
+ unsetTendency();
+ return;
+ case EventPackage.EVENT__LENGTH_AFFECTED:
+ unsetLengthAffected();
+ return;
+ case EventPackage.EVENT__AVERAGE_SPEED_ABSOLUTE:
+ unsetAverageSpeedAbsolute();
+ return;
+ case EventPackage.EVENT__DELAY:
+ unsetDelay();
+ return;
+ case EventPackage.EVENT__SEGMENT_SPEED_LIMIT:
+ unsetSegmentSpeedLimit();
+ return;
+ case EventPackage.EVENT__CAUSE:
+ getCause().clear();
+ return;
+ case EventPackage.EVENT__ADVICE:
+ getAdvice().clear();
+ return;
+ case EventPackage.EVENT__VEHICLE_RESTRICTION:
+ getVehicleRestriction().clear();
+ return;
+ case EventPackage.EVENT__EXPECTED_SPEED_ABSOLUTE:
+ unsetExpectedSpeedAbsolute();
+ return;
+ case EventPackage.EVENT__TEMPORARY_SPEED_LIMIT:
+ getTemporarySpeedLimit().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.EVENT__EFFECT_CODE:
+ return isSetEffectCode();
+ case EventPackage.EVENT__START_TIME:
+ return isSetStartTime();
+ case EventPackage.EVENT__STOP_TIME:
+ return isSetStopTime();
+ case EventPackage.EVENT__TENDENCY:
+ return isSetTendency();
+ case EventPackage.EVENT__LENGTH_AFFECTED:
+ return isSetLengthAffected();
+ case EventPackage.EVENT__AVERAGE_SPEED_ABSOLUTE:
+ return isSetAverageSpeedAbsolute();
+ case EventPackage.EVENT__DELAY:
+ return isSetDelay();
+ case EventPackage.EVENT__SEGMENT_SPEED_LIMIT:
+ return isSetSegmentSpeedLimit();
+ case EventPackage.EVENT__CAUSE:
+ return cause != null && !cause.isEmpty();
+ case EventPackage.EVENT__ADVICE:
+ return advice != null && !advice.isEmpty();
+ case EventPackage.EVENT__VEHICLE_RESTRICTION:
+ return vehicleRestriction != null && !vehicleRestriction.isEmpty();
+ case EventPackage.EVENT__EXPECTED_SPEED_ABSOLUTE:
+ return isSetExpectedSpeedAbsolute();
+ case EventPackage.EVENT__TEMPORARY_SPEED_LIMIT:
+ return temporarySpeedLimit != null && !temporarySpeedLimit.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (effectCode: ");
+ if (effectCodeESet) result.append(effectCode); else result.append("<unset>");
+ result.append(", startTime: ");
+ if (startTimeESet) result.append(startTime); else result.append("<unset>");
+ result.append(", stopTime: ");
+ if (stopTimeESet) result.append(stopTime); else result.append("<unset>");
+ result.append(", tendency: ");
+ if (tendencyESet) result.append(tendency); else result.append("<unset>");
+ result.append(", lengthAffected: ");
+ if (lengthAffectedESet) result.append(lengthAffected); else result.append("<unset>");
+ result.append(", averageSpeedAbsolute: ");
+ if (averageSpeedAbsoluteESet) result.append(averageSpeedAbsolute); else result.append("<unset>");
+ result.append(", delay: ");
+ if (delayESet) result.append(delay); else result.append("<unset>");
+ result.append(", segmentSpeedLimit: ");
+ if (segmentSpeedLimitESet) result.append(segmentSpeedLimit); else result.append("<unset>");
+ result.append(", expectedSpeedAbsolute: ");
+ if (expectedSpeedAbsoluteESet) result.append(expectedSpeedAbsolute); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //EventImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventPackageImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventPackageImpl.java
new file mode 100755
index 0000000..eb1107f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/EventPackageImpl.java
@@ -0,0 +1,1978 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.genivi.trafficinfo.tpeg.tec.event.Accident;
+import org.genivi.trafficinfo.tpeg.tec.event.Advice;
+import org.genivi.trafficinfo.tpeg.tec.event.AdviceCode;
+import org.genivi.trafficinfo.tpeg.tec.event.AnimalsOnRoadway;
+import org.genivi.trafficinfo.tpeg.tec.event.BrokenDownVehicles;
+import org.genivi.trafficinfo.tpeg.tec.event.Cause;
+import org.genivi.trafficinfo.tpeg.tec.event.CauseCode;
+import org.genivi.trafficinfo.tpeg.tec.event.DangerousEndOfQueue;
+import org.genivi.trafficinfo.tpeg.tec.event.DirectCause;
+import org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle;
+import org.genivi.trafficinfo.tpeg.tec.event.DriveCarefully;
+import org.genivi.trafficinfo.tpeg.tec.event.DrivingNotAllowed;
+import org.genivi.trafficinfo.tpeg.tec.event.EffectCode;
+import org.genivi.trafficinfo.tpeg.tec.event.Event;
+import org.genivi.trafficinfo.tpeg.tec.event.EventFactory;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.ExtremeWeatherConditions;
+import org.genivi.trafficinfo.tpeg.tec.event.Fire;
+import org.genivi.trafficinfo.tpeg.tec.event.FollowDiversion;
+import org.genivi.trafficinfo.tpeg.tec.event.GivingPathVehiclesFromBehind;
+import org.genivi.trafficinfo.tpeg.tec.event.HazardousDrivingConditions;
+import org.genivi.trafficinfo.tpeg.tec.event.Impassibility;
+import org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType;
+import org.genivi.trafficinfo.tpeg.tec.event.LinkedCause;
+import org.genivi.trafficinfo.tpeg.tec.event.MajorEvent;
+import org.genivi.trafficinfo.tpeg.tec.event.MalfunctioningRoadsideEquipment;
+import org.genivi.trafficinfo.tpeg.tec.event.NarrowLanes;
+import org.genivi.trafficinfo.tpeg.tec.event.ObjectsOnTheRoad;
+import org.genivi.trafficinfo.tpeg.tec.event.OvertakingNotAllowed;
+import org.genivi.trafficinfo.tpeg.tec.event.PeopleOnRoadway;
+import org.genivi.trafficinfo.tpeg.tec.event.PoliceCheckpoint;
+import org.genivi.trafficinfo.tpeg.tec.event.Precipitation;
+import org.genivi.trafficinfo.tpeg.tec.event.RecklessPersons;
+import org.genivi.trafficinfo.tpeg.tec.event.RegulatoryMeasure;
+import org.genivi.trafficinfo.tpeg.tec.event.RescueAndRecoveryWorkInProgress;
+import org.genivi.trafficinfo.tpeg.tec.event.RestrictionType;
+import org.genivi.trafficinfo.tpeg.tec.event.RiskOfFire;
+import org.genivi.trafficinfo.tpeg.tec.event.RoadWorks;
+import org.genivi.trafficinfo.tpeg.tec.event.ServiceNotOperating;
+import org.genivi.trafficinfo.tpeg.tec.event.ServiceNotUsable;
+import org.genivi.trafficinfo.tpeg.tec.event.SlipperyRoad;
+import org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit;
+import org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection;
+import org.genivi.trafficinfo.tpeg.tec.event.Tendency;
+import org.genivi.trafficinfo.tpeg.tec.event.TimeDelay;
+import org.genivi.trafficinfo.tpeg.tec.event.TrafficCongestion;
+import org.genivi.trafficinfo.tpeg.tec.event.UseTollLanes;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleType;
+import org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced;
+import org.genivi.trafficinfo.tpeg.tec.event.WarningLevel;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EventPackageImpl extends EPackageImpl implements EventPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass causeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkedCauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass directCauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adviceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vehicleRestrictionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vehicleRelatedRestrictionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tecMessageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass temporarySpeedLimitSectionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass temporarySpeedLimitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum effectCodeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum tendencyEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum causeCodeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum warningLevelEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum trafficCongestionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum accidentEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum roadWorksEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum narrowLanesEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum impassibilityEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum slipperyRoadEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum fireEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum hazardousDrivingConditionsEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum objectsOnTheRoadEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum animalsOnRoadwayEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum peopleOnRoadwayEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum brokenDownVehiclesEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum rescueAndRecoveryWorkInProgressEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum regulatoryMeasureEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum laneRestrictionTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum adviceCodeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum vehicleTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum restrictionTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum extremeWeatherConditionsEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum visibilityReducedEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum precipitationEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum recklessPersonsEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum majorEventEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum serviceNotOperatingEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum serviceNotUsableEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum slowMovingVehiclesEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dangerousEndOfQueueEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum riskOfFireEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum timeDelayEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum policeCheckpointEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum malfunctioningRoadsideEquipmentEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum overtakingNotAllowedEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum drivingNotAllowedEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum givingPathVehiclesFromBehindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum followDiversionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum driveCarefullyEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum doNotLeaveYourVehicleEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum useTollLanesEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private EventPackageImpl() {
+ super(eNS_URI, EventFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link EventPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static EventPackage init() {
+ if (isInited) return (EventPackage)EPackage.Registry.INSTANCE.getEPackage(EventPackage.eNS_URI);
+
+ // Obtain or create and register package
+ EventPackageImpl theEventPackage = (EventPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EventPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EventPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ TpegfwktypesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theEventPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theEventPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theEventPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(EventPackage.eNS_URI, theEventPackage);
+ return theEventPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvent() {
+ return eventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_EffectCode() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_StartTime() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_StopTime() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_Tendency() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_LengthAffected() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_AverageSpeedAbsolute() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_Delay() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_SegmentSpeedLimit() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvent_Cause() {
+ return (EReference)eventEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvent_Advice() {
+ return (EReference)eventEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvent_VehicleRestriction() {
+ return (EReference)eventEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_ExpectedSpeedAbsolute() {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvent_TemporarySpeedLimit() {
+ return (EReference)eventEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCause() {
+ return causeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCause_MainCause() {
+ return (EAttribute)causeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkedCause() {
+ return linkedCauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkedCause_LinkedMessage() {
+ return (EAttribute)linkedCauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkedCause_COID() {
+ return (EAttribute)linkedCauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkedCause_OriginatorSID() {
+ return (EReference)linkedCauseEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDirectCause() {
+ return directCauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_WarningLevel() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_UnverifiedInformation() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_SubCause() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_LengthAffected() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_LaneRestrictionType() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_NumberOfLanes() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDirectCause_FreeText() {
+ return (EReference)directCauseEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDirectCause_CauseOffset() {
+ return (EAttribute)directCauseEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAdvice() {
+ return adviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_AdviceCode() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdvice_SubAdviceCode() {
+ return (EAttribute)adviceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAdvice_FreeText() {
+ return (EReference)adviceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAdvice_VehicleRestriction() {
+ return (EReference)adviceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVehicleRestriction() {
+ return vehicleRestrictionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRestriction_VehicleType() {
+ return (EAttribute)vehicleRestrictionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVehicleRestriction_Restriction() {
+ return (EReference)vehicleRestrictionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVehicleRelatedRestriction() {
+ return vehicleRelatedRestrictionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRelatedRestriction_RestrictionType() {
+ return (EAttribute)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVehicleRelatedRestriction_RestrictionValue() {
+ return (EAttribute)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVehicleRelatedRestriction_RestrictionLocation() {
+ return (EReference)vehicleRelatedRestrictionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTECMessage() {
+ return tecMessageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTECMessage_Mmt() {
+ return (EReference)tecMessageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTECMessage_Event() {
+ return (EReference)tecMessageEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTECMessage_Loc() {
+ return (EReference)tecMessageEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemporarySpeedLimitSection() {
+ return temporarySpeedLimitSectionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitValue() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitValueWet() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimitSection_SpeedLimitLength() {
+ return (EAttribute)temporarySpeedLimitSectionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemporarySpeedLimit() {
+ return temporarySpeedLimitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemporarySpeedLimit_SpeedLimitSection() {
+ return (EReference)temporarySpeedLimitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimit_UnitsMPH() {
+ return (EAttribute)temporarySpeedLimitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTemporarySpeedLimit_Offset() {
+ return (EAttribute)temporarySpeedLimitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemporarySpeedLimit_VehicleRestriction() {
+ return (EReference)temporarySpeedLimitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getEffectCode() {
+ return effectCodeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTendency() {
+ return tendencyEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCauseCode() {
+ return causeCodeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getWarningLevel() {
+ return warningLevelEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTrafficCongestion() {
+ return trafficCongestionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAccident() {
+ return accidentEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRoadWorks() {
+ return roadWorksEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getNarrowLanes() {
+ return narrowLanesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getImpassibility() {
+ return impassibilityEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSlipperyRoad() {
+ return slipperyRoadEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFire() {
+ return fireEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getHazardousDrivingConditions() {
+ return hazardousDrivingConditionsEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getObjectsOnTheRoad() {
+ return objectsOnTheRoadEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAnimalsOnRoadway() {
+ return animalsOnRoadwayEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPeopleOnRoadway() {
+ return peopleOnRoadwayEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBrokenDownVehicles() {
+ return brokenDownVehiclesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRescueAndRecoveryWorkInProgress() {
+ return rescueAndRecoveryWorkInProgressEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRegulatoryMeasure() {
+ return regulatoryMeasureEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLaneRestrictionType() {
+ return laneRestrictionTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAdviceCode() {
+ return adviceCodeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getVehicleType() {
+ return vehicleTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRestrictionType() {
+ return restrictionTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getExtremeWeatherConditions() {
+ return extremeWeatherConditionsEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getVisibilityReduced() {
+ return visibilityReducedEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPrecipitation() {
+ return precipitationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRecklessPersons() {
+ return recklessPersonsEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMajorEvent() {
+ return majorEventEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getServiceNotOperating() {
+ return serviceNotOperatingEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getServiceNotUsable() {
+ return serviceNotUsableEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSlowMovingVehicles() {
+ return slowMovingVehiclesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDangerousEndOfQueue() {
+ return dangerousEndOfQueueEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRiskOfFire() {
+ return riskOfFireEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTimeDelay() {
+ return timeDelayEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPoliceCheckpoint() {
+ return policeCheckpointEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMalfunctioningRoadsideEquipment() {
+ return malfunctioningRoadsideEquipmentEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getOvertakingNotAllowed() {
+ return overtakingNotAllowedEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDrivingNotAllowed() {
+ return drivingNotAllowedEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getGivingPathVehiclesFromBehind() {
+ return givingPathVehiclesFromBehindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFollowDiversion() {
+ return followDiversionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDriveCarefully() {
+ return driveCarefullyEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDoNotLeaveYourVehicle() {
+ return doNotLeaveYourVehicleEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getUseTollLanes() {
+ return useTollLanesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EventFactory getEventFactory() {
+ return (EventFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ eventEClass = createEClass(EVENT);
+ createEAttribute(eventEClass, EVENT__EFFECT_CODE);
+ createEAttribute(eventEClass, EVENT__START_TIME);
+ createEAttribute(eventEClass, EVENT__STOP_TIME);
+ createEAttribute(eventEClass, EVENT__TENDENCY);
+ createEAttribute(eventEClass, EVENT__LENGTH_AFFECTED);
+ createEAttribute(eventEClass, EVENT__AVERAGE_SPEED_ABSOLUTE);
+ createEAttribute(eventEClass, EVENT__DELAY);
+ createEAttribute(eventEClass, EVENT__SEGMENT_SPEED_LIMIT);
+ createEReference(eventEClass, EVENT__CAUSE);
+ createEReference(eventEClass, EVENT__ADVICE);
+ createEReference(eventEClass, EVENT__VEHICLE_RESTRICTION);
+ createEAttribute(eventEClass, EVENT__EXPECTED_SPEED_ABSOLUTE);
+ createEReference(eventEClass, EVENT__TEMPORARY_SPEED_LIMIT);
+
+ causeEClass = createEClass(CAUSE);
+ createEAttribute(causeEClass, CAUSE__MAIN_CAUSE);
+
+ linkedCauseEClass = createEClass(LINKED_CAUSE);
+ createEAttribute(linkedCauseEClass, LINKED_CAUSE__LINKED_MESSAGE);
+ createEAttribute(linkedCauseEClass, LINKED_CAUSE__COID);
+ createEReference(linkedCauseEClass, LINKED_CAUSE__ORIGINATOR_SID);
+
+ directCauseEClass = createEClass(DIRECT_CAUSE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__WARNING_LEVEL);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__UNVERIFIED_INFORMATION);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__SUB_CAUSE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__LENGTH_AFFECTED);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__LANE_RESTRICTION_TYPE);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__NUMBER_OF_LANES);
+ createEReference(directCauseEClass, DIRECT_CAUSE__FREE_TEXT);
+ createEAttribute(directCauseEClass, DIRECT_CAUSE__CAUSE_OFFSET);
+
+ adviceEClass = createEClass(ADVICE);
+ createEAttribute(adviceEClass, ADVICE__ADVICE_CODE);
+ createEAttribute(adviceEClass, ADVICE__SUB_ADVICE_CODE);
+ createEReference(adviceEClass, ADVICE__FREE_TEXT);
+ createEReference(adviceEClass, ADVICE__VEHICLE_RESTRICTION);
+
+ vehicleRestrictionEClass = createEClass(VEHICLE_RESTRICTION);
+ createEAttribute(vehicleRestrictionEClass, VEHICLE_RESTRICTION__VEHICLE_TYPE);
+ createEReference(vehicleRestrictionEClass, VEHICLE_RESTRICTION__RESTRICTION);
+
+ vehicleRelatedRestrictionEClass = createEClass(VEHICLE_RELATED_RESTRICTION);
+ createEAttribute(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE);
+ createEAttribute(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE);
+ createEReference(vehicleRelatedRestrictionEClass, VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION);
+
+ tecMessageEClass = createEClass(TEC_MESSAGE);
+ createEReference(tecMessageEClass, TEC_MESSAGE__MMT);
+ createEReference(tecMessageEClass, TEC_MESSAGE__EVENT);
+ createEReference(tecMessageEClass, TEC_MESSAGE__LOC);
+
+ temporarySpeedLimitSectionEClass = createEClass(TEMPORARY_SPEED_LIMIT_SECTION);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET);
+ createEAttribute(temporarySpeedLimitSectionEClass, TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH);
+
+ temporarySpeedLimitEClass = createEClass(TEMPORARY_SPEED_LIMIT);
+ createEReference(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION);
+ createEAttribute(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__UNITS_MPH);
+ createEAttribute(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__OFFSET);
+ createEReference(temporarySpeedLimitEClass, TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION);
+
+ // Create enums
+ effectCodeEEnum = createEEnum(EFFECT_CODE);
+ tendencyEEnum = createEEnum(TENDENCY);
+ causeCodeEEnum = createEEnum(CAUSE_CODE);
+ warningLevelEEnum = createEEnum(WARNING_LEVEL);
+ trafficCongestionEEnum = createEEnum(TRAFFIC_CONGESTION);
+ accidentEEnum = createEEnum(ACCIDENT);
+ roadWorksEEnum = createEEnum(ROAD_WORKS);
+ narrowLanesEEnum = createEEnum(NARROW_LANES);
+ impassibilityEEnum = createEEnum(IMPASSIBILITY);
+ slipperyRoadEEnum = createEEnum(SLIPPERY_ROAD);
+ fireEEnum = createEEnum(FIRE);
+ hazardousDrivingConditionsEEnum = createEEnum(HAZARDOUS_DRIVING_CONDITIONS);
+ objectsOnTheRoadEEnum = createEEnum(OBJECTS_ON_THE_ROAD);
+ animalsOnRoadwayEEnum = createEEnum(ANIMALS_ON_ROADWAY);
+ peopleOnRoadwayEEnum = createEEnum(PEOPLE_ON_ROADWAY);
+ brokenDownVehiclesEEnum = createEEnum(BROKEN_DOWN_VEHICLES);
+ rescueAndRecoveryWorkInProgressEEnum = createEEnum(RESCUE_AND_RECOVERY_WORK_IN_PROGRESS);
+ regulatoryMeasureEEnum = createEEnum(REGULATORY_MEASURE);
+ laneRestrictionTypeEEnum = createEEnum(LANE_RESTRICTION_TYPE);
+ adviceCodeEEnum = createEEnum(ADVICE_CODE);
+ vehicleTypeEEnum = createEEnum(VEHICLE_TYPE);
+ restrictionTypeEEnum = createEEnum(RESTRICTION_TYPE);
+ extremeWeatherConditionsEEnum = createEEnum(EXTREME_WEATHER_CONDITIONS);
+ visibilityReducedEEnum = createEEnum(VISIBILITY_REDUCED);
+ precipitationEEnum = createEEnum(PRECIPITATION);
+ recklessPersonsEEnum = createEEnum(RECKLESS_PERSONS);
+ majorEventEEnum = createEEnum(MAJOR_EVENT);
+ serviceNotOperatingEEnum = createEEnum(SERVICE_NOT_OPERATING);
+ serviceNotUsableEEnum = createEEnum(SERVICE_NOT_USABLE);
+ slowMovingVehiclesEEnum = createEEnum(SLOW_MOVING_VEHICLES);
+ dangerousEndOfQueueEEnum = createEEnum(DANGEROUS_END_OF_QUEUE);
+ riskOfFireEEnum = createEEnum(RISK_OF_FIRE);
+ timeDelayEEnum = createEEnum(TIME_DELAY);
+ policeCheckpointEEnum = createEEnum(POLICE_CHECKPOINT);
+ malfunctioningRoadsideEquipmentEEnum = createEEnum(MALFUNCTIONING_ROADSIDE_EQUIPMENT);
+ overtakingNotAllowedEEnum = createEEnum(OVERTAKING_NOT_ALLOWED);
+ drivingNotAllowedEEnum = createEEnum(DRIVING_NOT_ALLOWED);
+ givingPathVehiclesFromBehindEEnum = createEEnum(GIVING_PATH_VEHICLES_FROM_BEHIND);
+ followDiversionEEnum = createEEnum(FOLLOW_DIVERSION);
+ driveCarefullyEEnum = createEEnum(DRIVE_CAREFULLY);
+ doNotLeaveYourVehicleEEnum = createEEnum(DO_NOT_LEAVE_YOUR_VEHICLE);
+ useTollLanesEEnum = createEEnum(USE_TOLL_LANES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TpegfwktypesPackage theTpegfwktypesPackage = (TpegfwktypesPackage)EPackage.Registry.INSTANCE.getEPackage(TpegfwktypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ linkedCauseEClass.getESuperTypes().add(this.getCause());
+ directCauseEClass.getESuperTypes().add(this.getCause());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvent_EffectCode(), this.getEffectCode(), "effectCode", null, 1, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_StartTime(), ecorePackage.getEDate(), "startTime", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_StopTime(), ecorePackage.getEDate(), "stopTime", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_Tendency(), this.getTendency(), "tendency", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_LengthAffected(), ecorePackage.getEIntegerObject(), "lengthAffected", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_AverageSpeedAbsolute(), ecorePackage.getEIntegerObject(), "averageSpeedAbsolute", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_Delay(), ecorePackage.getEIntegerObject(), "delay", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_SegmentSpeedLimit(), ecorePackage.getEIntegerObject(), "segmentSpeedLimit", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvent_Cause(), this.getCause(), null, "cause", null, 0, -1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvent_Advice(), this.getAdvice(), null, "advice", null, 0, -1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvent_VehicleRestriction(), this.getVehicleRestriction(), null, "vehicleRestriction", null, 0, -1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_ExpectedSpeedAbsolute(), ecorePackage.getEIntegerObject(), "expectedSpeedAbsolute", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvent_TemporarySpeedLimit(), this.getTemporarySpeedLimit(), null, "temporarySpeedLimit", null, 0, -1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(causeEClass, Cause.class, "Cause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCause_MainCause(), this.getCauseCode(), "mainCause", null, 0, 1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkedCauseEClass, LinkedCause.class, "LinkedCause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinkedCause_LinkedMessage(), ecorePackage.getEIntegerObject(), "linkedMessage", null, 1, 1, LinkedCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinkedCause_COID(), ecorePackage.getEByte(), "COID", null, 0, 1, LinkedCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLinkedCause_OriginatorSID(), theTpegfwktypesPackage.getServiceIdentifier(), null, "originatorSID", null, 0, 1, LinkedCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(directCauseEClass, DirectCause.class, "DirectCause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDirectCause_WarningLevel(), this.getWarningLevel(), "warningLevel", null, 1, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_UnverifiedInformation(), ecorePackage.getEBoolean(), "unverifiedInformation", null, 1, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_SubCause(), ecorePackage.getEJavaObject(), "subCause", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_LengthAffected(), ecorePackage.getEIntegerObject(), "lengthAffected", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_LaneRestrictionType(), this.getLaneRestrictionType(), "laneRestrictionType", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_NumberOfLanes(), ecorePackage.getEIntegerObject(), "numberOfLanes", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDirectCause_FreeText(), theTpegfwktypesPackage.getLocalisedShortString(), null, "freeText", null, 0, -1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDirectCause_CauseOffset(), ecorePackage.getEIntegerObject(), "causeOffset", null, 0, 1, DirectCause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(adviceEClass, Advice.class, "Advice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAdvice_AdviceCode(), this.getAdviceCode(), "adviceCode", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdvice_SubAdviceCode(), ecorePackage.getEJavaObject(), "subAdviceCode", null, 0, 1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAdvice_FreeText(), theTpegfwktypesPackage.getLocalisedShortString(), null, "freeText", null, 0, -1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAdvice_VehicleRestriction(), this.getVehicleRestriction(), null, "vehicleRestriction", null, 0, -1, Advice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(vehicleRestrictionEClass, VehicleRestriction.class, "VehicleRestriction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVehicleRestriction_VehicleType(), this.getVehicleType(), "vehicleType", null, 0, 1, VehicleRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVehicleRestriction_Restriction(), this.getVehicleRelatedRestriction(), null, "restriction", null, 0, -1, VehicleRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(vehicleRelatedRestrictionEClass, VehicleRelatedRestriction.class, "VehicleRelatedRestriction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getVehicleRelatedRestriction_RestrictionType(), this.getRestrictionType(), "restrictionType", null, 1, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVehicleRelatedRestriction_RestrictionValue(), ecorePackage.getEIntegerObject(), "restrictionValue", null, 0, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVehicleRelatedRestriction_RestrictionLocation(), theTpegfwktypesPackage.getLocationReferencingContainer(), null, "restrictionLocation", null, 0, 1, VehicleRelatedRestriction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tecMessageEClass, TECMessage.class, "TECMessage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTECMessage_Mmt(), theTpegfwktypesPackage.getMMCSwitch(), null, "mmt", null, 1, 1, TECMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTECMessage_Event(), this.getEvent(), null, "event", null, 0, 1, TECMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTECMessage_Loc(), theTpegfwktypesPackage.getLocationReferencingContainer(), null, "loc", null, 0, 1, TECMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(temporarySpeedLimitSectionEClass, TemporarySpeedLimitSection.class, "TemporarySpeedLimitSection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitValue(), ecorePackage.getEByte(), "speedLimitValue", null, 1, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitValueWet(), ecorePackage.getEByte(), "speedLimitValueWet", null, 0, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimitSection_SpeedLimitLength(), ecorePackage.getEIntegerObject(), "speedLimitLength", null, 0, 1, TemporarySpeedLimitSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(temporarySpeedLimitEClass, TemporarySpeedLimit.class, "TemporarySpeedLimit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTemporarySpeedLimit_SpeedLimitSection(), this.getTemporarySpeedLimitSection(), null, "speedLimitSection", null, 1, -1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimit_UnitsMPH(), ecorePackage.getEBoolean(), "unitsMPH", null, 1, 1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTemporarySpeedLimit_Offset(), ecorePackage.getEIntegerObject(), "offset", null, 0, 1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTemporarySpeedLimit_VehicleRestriction(), this.getVehicleRestriction(), null, "vehicleRestriction", null, 0, -1, TemporarySpeedLimit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(effectCodeEEnum, EffectCode.class, "EffectCode");
+ addEEnumLiteral(effectCodeEEnum, EffectCode.TRAFFIC_FLOW_UNKNOWN);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.FREE_TRAFFIC_FLOW);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.HEAVY_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.SLOW_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.QUEUING_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.STATIONARY_TRAFFIC);
+ addEEnumLiteral(effectCodeEEnum, EffectCode.NO_TRAFFIC_FLOW);
+
+ initEEnum(tendencyEEnum, Tendency.class, "Tendency");
+ addEEnumLiteral(tendencyEEnum, Tendency.SLIGHTLY_INCREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.INCREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.STRONGLY_INCREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.SLIGHTLY_DECREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.DECREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.STRONGLY_DECREASING);
+ addEEnumLiteral(tendencyEEnum, Tendency.CONSTANT);
+
+ initEEnum(causeCodeEEnum, CauseCode.class, "CauseCode");
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TRAFFIC_CONGESTION);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.ACCIDENT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.ROADWORKS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.NARROW_LANES);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.IMPASSIBILITY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SLIPPERY_ROAD);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.AQUAPLANING);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.FIRE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.HAZARDOUS_DRIVING_CONDITIONS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.OBJECTS_ON_THE_ROAD);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.ANIMALS_ON_ROADWAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.PEOPLE_ON_ROADWAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.BROKEN_DOWN_VEHICLES);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.VEHICLE_ON_WRONG_CARRIAGEWAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.RESCUE_AND_RECOVERY_WORK_IN_PROGRESS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.REGULATORY_MEASURE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.EXTREME_WEATHER_CONDITIONS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.VISIBILITY_REDUCED);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.PRECIPITATION);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.RECKLESS_PERSONS);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.OVER_HEIGHT_WARNING_SYSTEM_TRIGGERED);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TRAFFIC_REGULATIONS_CHANGED);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.MAJOR_EVENT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SERVICE_NOT_OPERATING);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SERVICE_NOT_USEABLE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.SLOW_MOVING_VEHICLES);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.DANGEROUS_END_OF_QUEUE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.RISK_OF_FIRE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TIME_DELAY);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.POLICE_CHECKPOINT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.MALFUNCTIONING_ROADSIDE_EQUIPMENT);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.TEST_MESSAGE);
+ addEEnumLiteral(causeCodeEEnum, CauseCode.UNDECODABLE_CAUSE);
+
+ initEEnum(warningLevelEEnum, WarningLevel.class, "WarningLevel");
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.INFORMATIVE);
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.DANGER_LEVEL_1);
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.DANGER_LEVEL_2);
+ addEEnumLiteral(warningLevelEEnum, WarningLevel.DANGER_LEVEL_3);
+
+ initEEnum(trafficCongestionEEnum, TrafficCongestion.class, "TrafficCongestion");
+ addEEnumLiteral(trafficCongestionEEnum, TrafficCongestion.INCREASED_VOLUME_OF_TRAFFIC);
+
+ initEEnum(accidentEEnum, Accident.class, "Accident");
+ addEEnumLiteral(accidentEEnum, Accident.MULTI_VEHICLE_ACCIDENT);
+ addEEnumLiteral(accidentEEnum, Accident.HEAVY_ACCIDENT);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_INVOLVING_LORRY);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_INVOLVING_BUS);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS);
+ addEEnumLiteral(accidentEEnum, Accident.ACCIDENT_ON_OPPOSITE_LANE);
+ addEEnumLiteral(accidentEEnum, Accident.UNSECURED_ACCIDENT);
+
+ initEEnum(roadWorksEEnum, RoadWorks.class, "RoadWorks");
+ addEEnumLiteral(roadWorksEEnum, RoadWorks.MAJOR_ROADWORKS);
+ addEEnumLiteral(roadWorksEEnum, RoadWorks.ROAD_MARKING_WORK);
+ addEEnumLiteral(roadWorksEEnum, RoadWorks.SLOW_MOVING_ROAD_MAINTENANCE);
+
+ initEEnum(narrowLanesEEnum, NarrowLanes.class, "NarrowLanes");
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.CONTRAFLOW);
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.HARD_SHOULDER_CLOSED);
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.SLIP_LANE_CLOSED);
+ addEEnumLiteral(narrowLanesEEnum, NarrowLanes.CRAWLER_LANE_CLOSED);
+
+ initEEnum(impassibilityEEnum, Impassibility.class, "Impassibility");
+ addEEnumLiteral(impassibilityEEnum, Impassibility.FLOODING);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.DANGER_OF_AVALANCHES);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.BLASTING_OF_AVALANCHES);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.LANDSLIPS);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.CHEMICAL_SPILLAGE);
+ addEEnumLiteral(impassibilityEEnum, Impassibility.WINTER_CLOSURE);
+
+ initEEnum(slipperyRoadEEnum, SlipperyRoad.class, "SlipperyRoad");
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.HEAVY_FROST_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.FUEL_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.MUD_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.SNOW_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.ICE_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.BLACK_ICE_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.OIL_ON_ROAD);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.LOOSE_CHIPPINGS);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.INSTANT_BLACK_ICE);
+ addEEnumLiteral(slipperyRoadEEnum, SlipperyRoad.ROADS_SALTED);
+
+ initEEnum(fireEEnum, Fire.class, "Fire");
+ addEEnumLiteral(fireEEnum, Fire.MAJOR_FIRE);
+ addEEnumLiteral(fireEEnum, Fire.FOREST_FIRE);
+
+ initEEnum(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.class, "HazardousDrivingConditions");
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.ROCKFALLS);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.EARTHQUAKE_DAMAGE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.SEWER_COLLAPSE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.SUBSIDENCE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.SNOW_DRIFTS);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.STORM_DAMAGE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.BURST_PIPE);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.VOLCANO_ERUPTION);
+ addEEnumLiteral(hazardousDrivingConditionsEEnum, HazardousDrivingConditions.FALLING_ICE);
+
+ initEEnum(objectsOnTheRoadEEnum, ObjectsOnTheRoad.class, "ObjectsOnTheRoad");
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.SHED_LOAD);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.PARTS_OF_VEHICLES);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.PARTS_OF_TYRES);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.BIG_OBJECTS);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.FALLEN_TREES);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.HUB_CAPS);
+ addEEnumLiteral(objectsOnTheRoadEEnum, ObjectsOnTheRoad.WAITING_VEHICLES);
+
+ initEEnum(animalsOnRoadwayEEnum, AnimalsOnRoadway.class, "AnimalsOnRoadway");
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.WILD_ANIMALS);
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.HERD_OF_ANIMALS);
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.SMALL_ANIMALS);
+ addEEnumLiteral(animalsOnRoadwayEEnum, AnimalsOnRoadway.LARGE_ANIMALS);
+
+ initEEnum(peopleOnRoadwayEEnum, PeopleOnRoadway.class, "PeopleOnRoadway");
+ addEEnumLiteral(peopleOnRoadwayEEnum, PeopleOnRoadway.CHILDREN_ON_ROADWAY);
+ addEEnumLiteral(peopleOnRoadwayEEnum, PeopleOnRoadway.CYCLISTS_ON_ROADWAY);
+ addEEnumLiteral(peopleOnRoadwayEEnum, PeopleOnRoadway.MOTOR_CYCLIST_ON_ROADWAY);
+
+ initEEnum(brokenDownVehiclesEEnum, BrokenDownVehicles.class, "BrokenDownVehicles");
+ addEEnumLiteral(brokenDownVehiclesEEnum, BrokenDownVehicles.BROKEN_DOWN_VEHICLE_BURNING);
+ addEEnumLiteral(brokenDownVehiclesEEnum, BrokenDownVehicles.BROKEN_DOWN_UNLIT_VEHICLE);
+
+ initEEnum(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.class, "RescueAndRecoveryWorkInProgress");
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.EMERGENCY_VEHICLES);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.RESCUE_HELICOPTER_LANDING);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.POLICE_ACTIVITY_ONGOING);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.MEDICAL_EMERGENCY_ONGOING);
+ addEEnumLiteral(rescueAndRecoveryWorkInProgressEEnum, RescueAndRecoveryWorkInProgress.CHILD_ABDUCTION_IN_PROGRESS);
+
+ initEEnum(regulatoryMeasureEEnum, RegulatoryMeasure.class, "RegulatoryMeasure");
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.SECURITY_ALERT);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.CONTAGIOUS_DISEASE);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.ENVIRONMENTAL);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.SMOG_ALERT);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.BATCH_SERVICE_IN_PROGRESS);
+ addEEnumLiteral(regulatoryMeasureEEnum, RegulatoryMeasure.ROAD_CLOSED_BY_THE_REGULATORY_AUTHORITIES);
+
+ initEEnum(laneRestrictionTypeEEnum, LaneRestrictionType.class, "LaneRestrictionType");
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.LANES_CLOSED);
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.LANES_OPEN);
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.RIGHT_LANES_CLOSED);
+ addEEnumLiteral(laneRestrictionTypeEEnum, LaneRestrictionType.LEFT_LANES_CLOSED);
+
+ initEEnum(adviceCodeEEnum, AdviceCode.class, "AdviceCode");
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DRIVE_TO_NEXT_AVAILABLE_PARKING_PLACE);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.OVERTAKING_NOT_ALLOWED);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DRIVING_NOT_ALLOWED);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.USE_HARD_SHOULDER_AS_LANE);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.WAIT_FOR_POLICE_PATROL);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.WAIT_FOR_IMPROVED_WEATHER);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.GIVING_PATH_VEHICLES_COMING_FROM_BEHIND);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.FOLLOW_DIVERSION);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.NO_DIVERSION_TO_RECOMMEND);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DO_NOT_DIVERT);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.FOLLOW_POLICE_INSTRUCTIONS);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.AVOID_THE_AREA);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DRIVE_CAREFULLY);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.DO_NOT_LEAVE_YOUR_VEHICLE);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.SWITCH_ON_RADIO);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.USE_TOLL_LANES);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.WAIT_FOR_CONVOI);
+ addEEnumLiteral(adviceCodeEEnum, AdviceCode.UNDECODABLE_ADVICE);
+
+ initEEnum(vehicleTypeEEnum, VehicleType.class, "VehicleType");
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.CAR);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.LORRY);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.BUS);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TAXI);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TRAIN);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.MOTOR_CYCLE);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.VEHICLE_WITH_TRAILER);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.MOTOR_VEHICLES);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.HEAVY_VEHICLE);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TRANSPORT_OF_DANGEROUS_GOODS);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.TRANSPORT_OF_ABNORMAL_LOAD);
+ addEEnumLiteral(vehicleTypeEEnum, VehicleType.UNDECODABLE_VEHICLE_TYPE);
+
+ initEEnum(restrictionTypeEEnum, RestrictionType.class, "RestrictionType");
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WIDTH_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WIDTH_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.HEIGTH_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.HEIGTH_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WEIGHT_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WEIGHT_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITHOUT_WINTER_TYRE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITHOUT_SNOW_CHAIN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_TRAILER);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_CARAVAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.PERSONS_IN_VEHICLE_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.PERSONS_IN_VEHICLE_MORE_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.EVEN_NUMBER_PLATE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.ODD_NUMBER_PLATE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.LENGTH_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.LENGTH_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.AXLE_LOAD_LESS_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.AXLE_LOAD_GREATER_THAN);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO3D4);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO4);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.VEHICLE_FULFILLS_EMMISSION_STANDARD_EURO5);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_PETROL_ENGINE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_LPG_ENGINE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_DIESEL_ENGINE);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.THROUGH_TRAFFIC);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.RESIDENTS_TRAFFIC);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.WITH_DESTINATION_IN_GIVEN_AREA);
+ addEEnumLiteral(restrictionTypeEEnum, RestrictionType.UNDECODABLE_RESTRICTION);
+
+ initEEnum(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.class, "ExtremeWeatherConditions");
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.STRONG_WINDS);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.DAMAGING_HAIL);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.HURRICANE);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.THUNDERSTORM);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.TORNADO);
+ addEEnumLiteral(extremeWeatherConditionsEEnum, ExtremeWeatherConditions.BLIZARD);
+
+ initEEnum(visibilityReducedEEnum, VisibilityReduced.class, "VisibilityReduced");
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_FOG);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SMOKE);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_SNOWFALL);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_RAIN);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_HEAVY_HAIL);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SANDSTORMS);
+ addEEnumLiteral(visibilityReducedEEnum, VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_SWARMS_OF_INSECTS);
+
+ initEEnum(precipitationEEnum, Precipitation.class, "Precipitation");
+ addEEnumLiteral(precipitationEEnum, Precipitation.HEAVY_RAIN);
+ addEEnumLiteral(precipitationEEnum, Precipitation.HEAVY_SNOWFALL);
+ addEEnumLiteral(precipitationEEnum, Precipitation.SOFT_HAIL);
+
+ initEEnum(recklessPersonsEEnum, RecklessPersons.class, "RecklessPersons");
+ addEEnumLiteral(recklessPersonsEEnum, RecklessPersons.RECKLESS_DRIVER);
+ addEEnumLiteral(recklessPersonsEEnum, RecklessPersons.GUNFIRE_ON_ROAD);
+ addEEnumLiteral(recklessPersonsEEnum, RecklessPersons.STONE_THROWING_PERSONS);
+
+ initEEnum(majorEventEEnum, MajorEvent.class, "MajorEvent");
+ addEEnumLiteral(majorEventEEnum, MajorEvent.SPORTS_EVENT);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.DEMONSTRATION);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.DEMONSTRATION_WITH_VEHICLES);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.CONCERT);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.FAIR);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.MILITARY_TRAINING);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.EMERGENCY_TRAINING);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.FESTIVITY);
+ addEEnumLiteral(majorEventEEnum, MajorEvent.PROCESSION);
+
+ initEEnum(serviceNotOperatingEEnum, ServiceNotOperating.class, "ServiceNotOperating");
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.FERRY_SERVICE_NOT_OPERATING);
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.PLANE_SERVICE_NOT_OPERATING);
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.TRAIN_SERVICE_NOT_OPERATING);
+ addEEnumLiteral(serviceNotOperatingEEnum, ServiceNotOperating.BUS_SERVICE_NOT_OPERATING);
+
+ initEEnum(serviceNotUsableEEnum, ServiceNotUsable.class, "ServiceNotUsable");
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.FUEL_STATION_CLOSED);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.SERVICE_AREA_CLOSED);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.SERVICE_AREA_BUSY);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.PARKING_FULL);
+ addEEnumLiteral(serviceNotUsableEEnum, ServiceNotUsable.CAR_PARK_CLOSED);
+
+ initEEnum(slowMovingVehiclesEEnum, SlowMovingVehicles.class, "SlowMovingVehicles");
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.SLOW_MOVING_MAINTENANCE_VEHICLE);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.VEHICLES_SLOWING_TO_LOOK_AT_ACCIDENT);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.ABNORMAL_LOAD);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.ABNORMAL_WIDE_LOAD);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.CONVOY);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.SNOWPLOUGH);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.DEICING);
+ addEEnumLiteral(slowMovingVehiclesEEnum, SlowMovingVehicles.SALTING_VEHICLES);
+
+ initEEnum(dangerousEndOfQueueEEnum, DangerousEndOfQueue.class, "DangerousEndOfQueue");
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.SUDDEN_END_OF_QUEUE);
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.QUEUE_OVER_HILL);
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.QUEUE_AROUND_BEND);
+ addEEnumLiteral(dangerousEndOfQueueEEnum, DangerousEndOfQueue.QUEUE_IN_TUNNEL);
+
+ initEEnum(riskOfFireEEnum, RiskOfFire.class, "RiskOfFire");
+ addEEnumLiteral(riskOfFireEEnum, RiskOfFire.LEAKAGE_OF_FUEL);
+ addEEnumLiteral(riskOfFireEEnum, RiskOfFire.LEAKAGE_OF_GAS);
+
+ initEEnum(timeDelayEEnum, TimeDelay.class, "TimeDelay");
+ addEEnumLiteral(timeDelayEEnum, TimeDelay.TIME_DELAY_AT_FRONTIER);
+ addEEnumLiteral(timeDelayEEnum, TimeDelay.TIME_DELAY_AT_FERRY_PORT);
+ addEEnumLiteral(timeDelayEEnum, TimeDelay.TIME_DELAY_AT_VEHICLE_ON_RAIL_TERMINAL);
+
+ initEEnum(policeCheckpointEEnum, PoliceCheckpoint.class, "PoliceCheckpoint");
+ addEEnumLiteral(policeCheckpointEEnum, PoliceCheckpoint.PERMANENT_POLICE_CHECKPOINT);
+ addEEnumLiteral(policeCheckpointEEnum, PoliceCheckpoint.TEMPORARY_POLICE_CHECKPOINT);
+
+ initEEnum(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.class, "MalfunctioningRoadsideEquipment");
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.ROAD_RAIL_CROSSING_FAILURE);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.TUNNEL_VENTILATION_NOT_WORKING);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.TRAFFIC_CONTROL_SIGNALS_WORKING_INCORRECTLY);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.EMERGENCY_TELEPHONES_NOT_WORKING);
+ addEEnumLiteral(malfunctioningRoadsideEquipmentEEnum, MalfunctioningRoadsideEquipment.AUTOMATIC_PAYMENT_LANES_NOT_WORKING);
+
+ initEEnum(overtakingNotAllowedEEnum, OvertakingNotAllowed.class, "OvertakingNotAllowed");
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.DO_NOT_USE_OVERTAKING_LANES);
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_CRAWLER_LANE);
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_LEFT_MOST_LANE);
+ addEEnumLiteral(overtakingNotAllowedEEnum, OvertakingNotAllowed.OVERTAKING_NOT_ALLOWED_DRIVE_ON_RIGHT_MOST_LANE);
+
+ initEEnum(drivingNotAllowedEEnum, DrivingNotAllowed.class, "DrivingNotAllowed");
+ addEEnumLiteral(drivingNotAllowedEEnum, DrivingNotAllowed.DRIVING_NOT_ALLOWED_TAKE_NEXT_POSSIBLE_PLACE_TO_STOP_VEHICLE);
+
+ initEEnum(givingPathVehiclesFromBehindEEnum, GivingPathVehiclesFromBehind.class, "GivingPathVehiclesFromBehind");
+ addEEnumLiteral(givingPathVehiclesFromBehindEEnum, GivingPathVehiclesFromBehind.GIVING_PATH_FOR_RESCUE_VEHICLE);
+ addEEnumLiteral(givingPathVehiclesFromBehindEEnum, GivingPathVehiclesFromBehind.GIVING_PATH_FOR_SERVICE_VEHICLES);
+
+ initEEnum(followDiversionEEnum, FollowDiversion.class, "FollowDiversion");
+ addEEnumLiteral(followDiversionEEnum, FollowDiversion.FOLLOW_DIVERSION_SIGNS);
+
+ initEEnum(driveCarefullyEEnum, DriveCarefully.class, "DriveCarefully");
+ addEEnumLiteral(driveCarefullyEEnum, DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_ENTRY_SLIP_ROAD);
+ addEEnumLiteral(driveCarefullyEEnum, DriveCarefully.DRIVE_CAREFULLY_DANGEROUS_SITUATION_ON_EXIT_SLIP_ROAD);
+ addEEnumLiteral(driveCarefullyEEnum, DriveCarefully.DRIVE_CAREFULLY_ICE_BUILDUP_ON_CABLE_STRUCTURE);
+
+ initEEnum(doNotLeaveYourVehicleEEnum, DoNotLeaveYourVehicle.class, "DoNotLeaveYourVehicle");
+ addEEnumLiteral(doNotLeaveYourVehicleEEnum, DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE);
+ addEEnumLiteral(doNotLeaveYourVehicleEEnum, DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS);
+
+ initEEnum(useTollLanesEEnum, UseTollLanes.class, "UseTollLanes");
+ addEEnumLiteral(useTollLanesEEnum, UseTollLanes.USE_MANUAL_PAYMENT_TOLL_LANES);
+ addEEnumLiteral(useTollLanesEEnum, UseTollLanes.USE_AUTOMATIC_PAYMENT_TOLL_LANES);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //EventPackageImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/LinkedCauseImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/LinkedCauseImpl.java
new file mode 100755
index 0000000..14ee786
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/LinkedCauseImpl.java
@@ -0,0 +1,361 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.LinkedCause;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linked Cause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl#getLinkedMessage <em>Linked Message</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl#getCOID <em>COID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.LinkedCauseImpl#getOriginatorSID <em>Originator SID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkedCauseImpl extends CauseImpl implements LinkedCause {
+ /**
+ * The default value of the '{@link #getLinkedMessage() <em>Linked Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkedMessage()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer LINKED_MESSAGE_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getLinkedMessage() <em>Linked Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkedMessage()
+ * @generated
+ * @ordered
+ */
+ protected Integer linkedMessage = LINKED_MESSAGE_EDEFAULT;
+ /**
+ * This is true if the Linked Message attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean linkedMessageESet;
+ /**
+ * The default value of the '{@link #getCOID() <em>COID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCOID()
+ * @generated
+ * @ordered
+ */
+ protected static final byte COID_EDEFAULT = 0x00;
+ /**
+ * The cached value of the '{@link #getCOID() <em>COID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCOID()
+ * @generated
+ * @ordered
+ */
+ protected byte coid = COID_EDEFAULT;
+ /**
+ * This is true if the COID attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean coidESet;
+ /**
+ * The cached value of the '{@link #getOriginatorSID() <em>Originator SID</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOriginatorSID()
+ * @generated
+ * @ordered
+ */
+ protected ServiceIdentifier originatorSID;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkedCauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.LINKED_CAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getLinkedMessage() {
+ return linkedMessage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLinkedMessage(Integer newLinkedMessage) {
+ Integer oldLinkedMessage = linkedMessage;
+ linkedMessage = newLinkedMessage;
+ boolean oldLinkedMessageESet = linkedMessageESet;
+ linkedMessageESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.LINKED_CAUSE__LINKED_MESSAGE, oldLinkedMessage, linkedMessage, !oldLinkedMessageESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLinkedMessage() {
+ Integer oldLinkedMessage = linkedMessage;
+ boolean oldLinkedMessageESet = linkedMessageESet;
+ linkedMessage = LINKED_MESSAGE_EDEFAULT;
+ linkedMessageESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.LINKED_CAUSE__LINKED_MESSAGE, oldLinkedMessage, LINKED_MESSAGE_EDEFAULT, oldLinkedMessageESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLinkedMessage() {
+ return linkedMessageESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getCOID() {
+ return coid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCOID(byte newCOID) {
+ byte oldCOID = coid;
+ coid = newCOID;
+ boolean oldCOIDESet = coidESet;
+ coidESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.LINKED_CAUSE__COID, oldCOID, coid, !oldCOIDESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCOID() {
+ byte oldCOID = coid;
+ boolean oldCOIDESet = coidESet;
+ coid = COID_EDEFAULT;
+ coidESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.LINKED_CAUSE__COID, oldCOID, COID_EDEFAULT, oldCOIDESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCOID() {
+ return coidESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceIdentifier getOriginatorSID() {
+ return originatorSID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOriginatorSID(ServiceIdentifier newOriginatorSID, NotificationChain msgs) {
+ ServiceIdentifier oldOriginatorSID = originatorSID;
+ originatorSID = newOriginatorSID;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EventPackage.LINKED_CAUSE__ORIGINATOR_SID, oldOriginatorSID, newOriginatorSID);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOriginatorSID(ServiceIdentifier newOriginatorSID) {
+ if (newOriginatorSID != originatorSID) {
+ NotificationChain msgs = null;
+ if (originatorSID != null)
+ msgs = ((InternalEObject)originatorSID).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EventPackage.LINKED_CAUSE__ORIGINATOR_SID, null, msgs);
+ if (newOriginatorSID != null)
+ msgs = ((InternalEObject)newOriginatorSID).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EventPackage.LINKED_CAUSE__ORIGINATOR_SID, null, msgs);
+ msgs = basicSetOriginatorSID(newOriginatorSID, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.LINKED_CAUSE__ORIGINATOR_SID, newOriginatorSID, newOriginatorSID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.LINKED_CAUSE__ORIGINATOR_SID:
+ return basicSetOriginatorSID(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.LINKED_CAUSE__LINKED_MESSAGE:
+ return getLinkedMessage();
+ case EventPackage.LINKED_CAUSE__COID:
+ return getCOID();
+ case EventPackage.LINKED_CAUSE__ORIGINATOR_SID:
+ return getOriginatorSID();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.LINKED_CAUSE__LINKED_MESSAGE:
+ setLinkedMessage((Integer)newValue);
+ return;
+ case EventPackage.LINKED_CAUSE__COID:
+ setCOID((Byte)newValue);
+ return;
+ case EventPackage.LINKED_CAUSE__ORIGINATOR_SID:
+ setOriginatorSID((ServiceIdentifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.LINKED_CAUSE__LINKED_MESSAGE:
+ unsetLinkedMessage();
+ return;
+ case EventPackage.LINKED_CAUSE__COID:
+ unsetCOID();
+ return;
+ case EventPackage.LINKED_CAUSE__ORIGINATOR_SID:
+ setOriginatorSID((ServiceIdentifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.LINKED_CAUSE__LINKED_MESSAGE:
+ return isSetLinkedMessage();
+ case EventPackage.LINKED_CAUSE__COID:
+ return isSetCOID();
+ case EventPackage.LINKED_CAUSE__ORIGINATOR_SID:
+ return originatorSID != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (linkedMessage: ");
+ if (linkedMessageESet) result.append(linkedMessage); else result.append("<unset>");
+ result.append(", COID: ");
+ if (coidESet) result.append(coid); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinkedCauseImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TECMessageImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TECMessageImpl.java
new file mode 100755
index 0000000..fe12f56
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TECMessageImpl.java
@@ -0,0 +1,312 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tec.event.Event;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TEC Message</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl#getMmt <em>Mmt</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl#getEvent <em>Event</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TECMessageImpl#getLoc <em>Loc</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TECMessageImpl extends EObjectImpl implements TECMessage {
+ /**
+ * The cached value of the '{@link #getMmt() <em>Mmt</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMmt()
+ * @generated
+ * @ordered
+ */
+ protected MMCSwitch mmt;
+ /**
+ * The cached value of the '{@link #getEvent() <em>Event</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvent()
+ * @generated
+ * @ordered
+ */
+ protected Event event;
+ /**
+ * The cached value of the '{@link #getLoc() <em>Loc</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLoc()
+ * @generated
+ * @ordered
+ */
+ protected LocationReferencingContainer loc;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TECMessageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.TEC_MESSAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MMCSwitch getMmt() {
+ return mmt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMmt(MMCSwitch newMmt, NotificationChain msgs) {
+ MMCSwitch oldMmt = mmt;
+ mmt = newMmt;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EventPackage.TEC_MESSAGE__MMT, oldMmt, newMmt);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMmt(MMCSwitch newMmt) {
+ if (newMmt != mmt) {
+ NotificationChain msgs = null;
+ if (mmt != null)
+ msgs = ((InternalEObject)mmt).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EventPackage.TEC_MESSAGE__MMT, null, msgs);
+ if (newMmt != null)
+ msgs = ((InternalEObject)newMmt).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EventPackage.TEC_MESSAGE__MMT, null, msgs);
+ msgs = basicSetMmt(newMmt, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEC_MESSAGE__MMT, newMmt, newMmt));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event getEvent() {
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetEvent(Event newEvent, NotificationChain msgs) {
+ Event oldEvent = event;
+ event = newEvent;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EventPackage.TEC_MESSAGE__EVENT, oldEvent, newEvent);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvent(Event newEvent) {
+ if (newEvent != event) {
+ NotificationChain msgs = null;
+ if (event != null)
+ msgs = ((InternalEObject)event).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EventPackage.TEC_MESSAGE__EVENT, null, msgs);
+ if (newEvent != null)
+ msgs = ((InternalEObject)newEvent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EventPackage.TEC_MESSAGE__EVENT, null, msgs);
+ msgs = basicSetEvent(newEvent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEC_MESSAGE__EVENT, newEvent, newEvent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReferencingContainer getLoc() {
+ return loc;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLoc(LocationReferencingContainer newLoc, NotificationChain msgs) {
+ LocationReferencingContainer oldLoc = loc;
+ loc = newLoc;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EventPackage.TEC_MESSAGE__LOC, oldLoc, newLoc);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLoc(LocationReferencingContainer newLoc) {
+ if (newLoc != loc) {
+ NotificationChain msgs = null;
+ if (loc != null)
+ msgs = ((InternalEObject)loc).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EventPackage.TEC_MESSAGE__LOC, null, msgs);
+ if (newLoc != null)
+ msgs = ((InternalEObject)newLoc).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EventPackage.TEC_MESSAGE__LOC, null, msgs);
+ msgs = basicSetLoc(newLoc, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEC_MESSAGE__LOC, newLoc, newLoc));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.TEC_MESSAGE__MMT:
+ return basicSetMmt(null, msgs);
+ case EventPackage.TEC_MESSAGE__EVENT:
+ return basicSetEvent(null, msgs);
+ case EventPackage.TEC_MESSAGE__LOC:
+ return basicSetLoc(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.TEC_MESSAGE__MMT:
+ return getMmt();
+ case EventPackage.TEC_MESSAGE__EVENT:
+ return getEvent();
+ case EventPackage.TEC_MESSAGE__LOC:
+ return getLoc();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.TEC_MESSAGE__MMT:
+ setMmt((MMCSwitch)newValue);
+ return;
+ case EventPackage.TEC_MESSAGE__EVENT:
+ setEvent((Event)newValue);
+ return;
+ case EventPackage.TEC_MESSAGE__LOC:
+ setLoc((LocationReferencingContainer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.TEC_MESSAGE__MMT:
+ setMmt((MMCSwitch)null);
+ return;
+ case EventPackage.TEC_MESSAGE__EVENT:
+ setEvent((Event)null);
+ return;
+ case EventPackage.TEC_MESSAGE__LOC:
+ setLoc((LocationReferencingContainer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.TEC_MESSAGE__MMT:
+ return mmt != null;
+ case EventPackage.TEC_MESSAGE__EVENT:
+ return event != null;
+ case EventPackage.TEC_MESSAGE__LOC:
+ return loc != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TECMessageImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitImpl.java
new file mode 100755
index 0000000..9df80d8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitImpl.java
@@ -0,0 +1,352 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit;
+import org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Speed Limit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl#getSpeedLimitSection <em>Speed Limit Section</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl#isUnitsMPH <em>Units MPH</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl#getOffset <em>Offset</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitImpl#getVehicleRestriction <em>Vehicle Restriction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporarySpeedLimitImpl extends EObjectImpl implements TemporarySpeedLimit {
+ /**
+ * The cached value of the '{@link #getSpeedLimitSection() <em>Speed Limit Section</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitSection()
+ * @generated
+ * @ordered
+ */
+ protected EList<TemporarySpeedLimitSection> speedLimitSection;
+
+ /**
+ * The default value of the '{@link #isUnitsMPH() <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnitsMPH()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean UNITS_MPH_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUnitsMPH() <em>Units MPH</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnitsMPH()
+ * @generated
+ * @ordered
+ */
+ protected boolean unitsMPH = UNITS_MPH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer OFFSET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOffset() <em>Offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOffset()
+ * @generated
+ * @ordered
+ */
+ protected Integer offset = OFFSET_EDEFAULT;
+
+ /**
+ * This is true if the Offset attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean offsetESet;
+
+ /**
+ * The cached value of the '{@link #getVehicleRestriction() <em>Vehicle Restriction</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleRestriction()
+ * @generated
+ * @ordered
+ */
+ protected EList<VehicleRestriction> vehicleRestriction;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemporarySpeedLimitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.TEMPORARY_SPEED_LIMIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TemporarySpeedLimitSection> getSpeedLimitSection() {
+ if (speedLimitSection == null) {
+ speedLimitSection = new EObjectContainmentEList<TemporarySpeedLimitSection>(TemporarySpeedLimitSection.class, this, EventPackage.TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION);
+ }
+ return speedLimitSection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnitsMPH() {
+ return unitsMPH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnitsMPH(boolean newUnitsMPH) {
+ boolean oldUnitsMPH = unitsMPH;
+ unitsMPH = newUnitsMPH;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH, oldUnitsMPH, unitsMPH));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getOffset() {
+ return offset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOffset(Integer newOffset) {
+ Integer oldOffset = offset;
+ offset = newOffset;
+ boolean oldOffsetESet = offsetESet;
+ offsetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEMPORARY_SPEED_LIMIT__OFFSET, oldOffset, offset, !oldOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOffset() {
+ Integer oldOffset = offset;
+ boolean oldOffsetESet = offsetESet;
+ offset = OFFSET_EDEFAULT;
+ offsetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.TEMPORARY_SPEED_LIMIT__OFFSET, oldOffset, OFFSET_EDEFAULT, oldOffsetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOffset() {
+ return offsetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VehicleRestriction> getVehicleRestriction() {
+ if (vehicleRestriction == null) {
+ vehicleRestriction = new EObjectContainmentEList<VehicleRestriction>(VehicleRestriction.class, this, EventPackage.TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION);
+ }
+ return vehicleRestriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION:
+ return ((InternalEList<?>)getSpeedLimitSection()).basicRemove(otherEnd, msgs);
+ case EventPackage.TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION:
+ return ((InternalEList<?>)getVehicleRestriction()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION:
+ return getSpeedLimitSection();
+ case EventPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ return isUnitsMPH();
+ case EventPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ return getOffset();
+ case EventPackage.TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION:
+ return getVehicleRestriction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION:
+ getSpeedLimitSection().clear();
+ getSpeedLimitSection().addAll((Collection<? extends TemporarySpeedLimitSection>)newValue);
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ setUnitsMPH((Boolean)newValue);
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ setOffset((Integer)newValue);
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION:
+ getVehicleRestriction().clear();
+ getVehicleRestriction().addAll((Collection<? extends VehicleRestriction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION:
+ getSpeedLimitSection().clear();
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ setUnitsMPH(UNITS_MPH_EDEFAULT);
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ unsetOffset();
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION:
+ getVehicleRestriction().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT__SPEED_LIMIT_SECTION:
+ return speedLimitSection != null && !speedLimitSection.isEmpty();
+ case EventPackage.TEMPORARY_SPEED_LIMIT__UNITS_MPH:
+ return unitsMPH != UNITS_MPH_EDEFAULT;
+ case EventPackage.TEMPORARY_SPEED_LIMIT__OFFSET:
+ return isSetOffset();
+ case EventPackage.TEMPORARY_SPEED_LIMIT__VEHICLE_RESTRICTION:
+ return vehicleRestriction != null && !vehicleRestriction.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (unitsMPH: ");
+ result.append(unitsMPH);
+ result.append(", offset: ");
+ if (offsetESet) result.append(offset); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TemporarySpeedLimitImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitSectionImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitSectionImpl.java
new file mode 100755
index 0000000..8dede81
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/TemporarySpeedLimitSectionImpl.java
@@ -0,0 +1,378 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Speed Limit Section</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitValue <em>Speed Limit Value</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitValueWet <em>Speed Limit Value Wet</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.TemporarySpeedLimitSectionImpl#getSpeedLimitLength <em>Speed Limit Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporarySpeedLimitSectionImpl extends EObjectImpl implements TemporarySpeedLimitSection {
+ /**
+ * The default value of the '{@link #getSpeedLimitValue() <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValue()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SPEED_LIMIT_VALUE_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitValue() <em>Speed Limit Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValue()
+ * @generated
+ * @ordered
+ */
+ protected byte speedLimitValue = SPEED_LIMIT_VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitValueESet;
+
+ /**
+ * The default value of the '{@link #getSpeedLimitValueWet() <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SPEED_LIMIT_VALUE_WET_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitValueWet() <em>Speed Limit Value Wet</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitValueWet()
+ * @generated
+ * @ordered
+ */
+ protected byte speedLimitValueWet = SPEED_LIMIT_VALUE_WET_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Value Wet attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitValueWetESet;
+
+ /**
+ * The default value of the '{@link #getSpeedLimitLength() <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitLength()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer SPEED_LIMIT_LENGTH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpeedLimitLength() <em>Speed Limit Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpeedLimitLength()
+ * @generated
+ * @ordered
+ */
+ protected Integer speedLimitLength = SPEED_LIMIT_LENGTH_EDEFAULT;
+
+ /**
+ * This is true if the Speed Limit Length attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean speedLimitLengthESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemporarySpeedLimitSectionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.TEMPORARY_SPEED_LIMIT_SECTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSpeedLimitValue() {
+ return speedLimitValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitValue(byte newSpeedLimitValue) {
+ byte oldSpeedLimitValue = speedLimitValue;
+ speedLimitValue = newSpeedLimitValue;
+ boolean oldSpeedLimitValueESet = speedLimitValueESet;
+ speedLimitValueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE, oldSpeedLimitValue, speedLimitValue, !oldSpeedLimitValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitValue() {
+ byte oldSpeedLimitValue = speedLimitValue;
+ boolean oldSpeedLimitValueESet = speedLimitValueESet;
+ speedLimitValue = SPEED_LIMIT_VALUE_EDEFAULT;
+ speedLimitValueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE, oldSpeedLimitValue, SPEED_LIMIT_VALUE_EDEFAULT, oldSpeedLimitValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitValue() {
+ return speedLimitValueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSpeedLimitValueWet() {
+ return speedLimitValueWet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitValueWet(byte newSpeedLimitValueWet) {
+ byte oldSpeedLimitValueWet = speedLimitValueWet;
+ speedLimitValueWet = newSpeedLimitValueWet;
+ boolean oldSpeedLimitValueWetESet = speedLimitValueWetESet;
+ speedLimitValueWetESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET, oldSpeedLimitValueWet, speedLimitValueWet, !oldSpeedLimitValueWetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitValueWet() {
+ byte oldSpeedLimitValueWet = speedLimitValueWet;
+ boolean oldSpeedLimitValueWetESet = speedLimitValueWetESet;
+ speedLimitValueWet = SPEED_LIMIT_VALUE_WET_EDEFAULT;
+ speedLimitValueWetESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET, oldSpeedLimitValueWet, SPEED_LIMIT_VALUE_WET_EDEFAULT, oldSpeedLimitValueWetESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitValueWet() {
+ return speedLimitValueWetESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getSpeedLimitLength() {
+ return speedLimitLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpeedLimitLength(Integer newSpeedLimitLength) {
+ Integer oldSpeedLimitLength = speedLimitLength;
+ speedLimitLength = newSpeedLimitLength;
+ boolean oldSpeedLimitLengthESet = speedLimitLengthESet;
+ speedLimitLengthESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH, oldSpeedLimitLength, speedLimitLength, !oldSpeedLimitLengthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSpeedLimitLength() {
+ Integer oldSpeedLimitLength = speedLimitLength;
+ boolean oldSpeedLimitLengthESet = speedLimitLengthESet;
+ speedLimitLength = SPEED_LIMIT_LENGTH_EDEFAULT;
+ speedLimitLengthESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH, oldSpeedLimitLength, SPEED_LIMIT_LENGTH_EDEFAULT, oldSpeedLimitLengthESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpeedLimitLength() {
+ return speedLimitLengthESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ return getSpeedLimitValue();
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ return getSpeedLimitValueWet();
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ return getSpeedLimitLength();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ setSpeedLimitValue((Byte)newValue);
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ setSpeedLimitValueWet((Byte)newValue);
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ setSpeedLimitLength((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ unsetSpeedLimitValue();
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ unsetSpeedLimitValueWet();
+ return;
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ unsetSpeedLimitLength();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE:
+ return isSetSpeedLimitValue();
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_VALUE_WET:
+ return isSetSpeedLimitValueWet();
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION__SPEED_LIMIT_LENGTH:
+ return isSetSpeedLimitLength();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (speedLimitValue: ");
+ if (speedLimitValueESet) result.append(speedLimitValue); else result.append("<unset>");
+ result.append(", speedLimitValueWet: ");
+ if (speedLimitValueWetESet) result.append(speedLimitValueWet); else result.append("<unset>");
+ result.append(", speedLimitLength: ");
+ if (speedLimitLengthESet) result.append(speedLimitLength); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TemporarySpeedLimitSectionImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRelatedRestrictionImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRelatedRestrictionImpl.java
new file mode 100755
index 0000000..db18c50
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRelatedRestrictionImpl.java
@@ -0,0 +1,373 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.RestrictionType;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vehicle Related Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl#getRestrictionType <em>Restriction Type</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl#getRestrictionValue <em>Restriction Value</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRelatedRestrictionImpl#getRestrictionLocation <em>Restriction Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VehicleRelatedRestrictionImpl extends EObjectImpl implements VehicleRelatedRestriction {
+ /**
+ * The default value of the '{@link #getRestrictionType() <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected static final RestrictionType RESTRICTION_TYPE_EDEFAULT = RestrictionType.WIDTH_LESS_THAN;
+
+ /**
+ * The cached value of the '{@link #getRestrictionType() <em>Restriction Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionType()
+ * @generated
+ * @ordered
+ */
+ protected RestrictionType restrictionType = RESTRICTION_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Restriction Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionTypeESet;
+
+ /**
+ * The default value of the '{@link #getRestrictionValue() <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer RESTRICTION_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRestrictionValue() <em>Restriction Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionValue()
+ * @generated
+ * @ordered
+ */
+ protected Integer restrictionValue = RESTRICTION_VALUE_EDEFAULT;
+
+ /**
+ * This is true if the Restriction Value attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictionValueESet;
+
+ /**
+ * The cached value of the '{@link #getRestrictionLocation() <em>Restriction Location</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictionLocation()
+ * @generated
+ * @ordered
+ */
+ protected LocationReferencingContainer restrictionLocation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VehicleRelatedRestrictionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.VEHICLE_RELATED_RESTRICTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RestrictionType getRestrictionType() {
+ return restrictionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionType(RestrictionType newRestrictionType) {
+ RestrictionType oldRestrictionType = restrictionType;
+ restrictionType = newRestrictionType == null ? RESTRICTION_TYPE_EDEFAULT : newRestrictionType;
+ boolean oldRestrictionTypeESet = restrictionTypeESet;
+ restrictionTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE, oldRestrictionType, restrictionType, !oldRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionType() {
+ RestrictionType oldRestrictionType = restrictionType;
+ boolean oldRestrictionTypeESet = restrictionTypeESet;
+ restrictionType = RESTRICTION_TYPE_EDEFAULT;
+ restrictionTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE, oldRestrictionType, RESTRICTION_TYPE_EDEFAULT, oldRestrictionTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionType() {
+ return restrictionTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Integer getRestrictionValue() {
+ return restrictionValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionValue(Integer newRestrictionValue) {
+ Integer oldRestrictionValue = restrictionValue;
+ restrictionValue = newRestrictionValue;
+ boolean oldRestrictionValueESet = restrictionValueESet;
+ restrictionValueESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE, oldRestrictionValue, restrictionValue, !oldRestrictionValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetRestrictionValue() {
+ Integer oldRestrictionValue = restrictionValue;
+ boolean oldRestrictionValueESet = restrictionValueESet;
+ restrictionValue = RESTRICTION_VALUE_EDEFAULT;
+ restrictionValueESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE, oldRestrictionValue, RESTRICTION_VALUE_EDEFAULT, oldRestrictionValueESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRestrictionValue() {
+ return restrictionValueESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReferencingContainer getRestrictionLocation() {
+ return restrictionLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRestrictionLocation(LocationReferencingContainer newRestrictionLocation, NotificationChain msgs) {
+ LocationReferencingContainer oldRestrictionLocation = restrictionLocation;
+ restrictionLocation = newRestrictionLocation;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, oldRestrictionLocation, newRestrictionLocation);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictionLocation(LocationReferencingContainer newRestrictionLocation) {
+ if (newRestrictionLocation != restrictionLocation) {
+ NotificationChain msgs = null;
+ if (restrictionLocation != null)
+ msgs = ((InternalEObject)restrictionLocation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, null, msgs);
+ if (newRestrictionLocation != null)
+ msgs = ((InternalEObject)newRestrictionLocation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, null, msgs);
+ msgs = basicSetRestrictionLocation(newRestrictionLocation, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION, newRestrictionLocation, newRestrictionLocation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ return basicSetRestrictionLocation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ return getRestrictionType();
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ return getRestrictionValue();
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ return getRestrictionLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ setRestrictionType((RestrictionType)newValue);
+ return;
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ setRestrictionValue((Integer)newValue);
+ return;
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ setRestrictionLocation((LocationReferencingContainer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ unsetRestrictionType();
+ return;
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ unsetRestrictionValue();
+ return;
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ setRestrictionLocation((LocationReferencingContainer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_TYPE:
+ return isSetRestrictionType();
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_VALUE:
+ return isSetRestrictionValue();
+ case EventPackage.VEHICLE_RELATED_RESTRICTION__RESTRICTION_LOCATION:
+ return restrictionLocation != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (restrictionType: ");
+ if (restrictionTypeESet) result.append(restrictionType); else result.append("<unset>");
+ result.append(", restrictionValue: ");
+ if (restrictionValueESet) result.append(restrictionValue); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //VehicleRelatedRestrictionImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRestrictionImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRestrictionImpl.java
new file mode 100755
index 0000000..011e446
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/impl/VehicleRestrictionImpl.java
@@ -0,0 +1,262 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vehicle Restriction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRestrictionImpl#getVehicleType <em>Vehicle Type</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tec.event.impl.VehicleRestrictionImpl#getRestriction <em>Restriction</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VehicleRestrictionImpl extends EObjectImpl implements VehicleRestriction {
+ /**
+ * The default value of the '{@link #getVehicleType() <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleType()
+ * @generated
+ * @ordered
+ */
+ protected static final VehicleType VEHICLE_TYPE_EDEFAULT = VehicleType.CAR;
+
+ /**
+ * The cached value of the '{@link #getVehicleType() <em>Vehicle Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVehicleType()
+ * @generated
+ * @ordered
+ */
+ protected VehicleType vehicleType = VEHICLE_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Vehicle Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean vehicleTypeESet;
+
+ /**
+ * The cached value of the '{@link #getRestriction() <em>Restriction</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestriction()
+ * @generated
+ * @ordered
+ */
+ protected EList<VehicleRelatedRestriction> restriction;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VehicleRestrictionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EventPackage.Literals.VEHICLE_RESTRICTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VehicleType getVehicleType() {
+ return vehicleType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVehicleType(VehicleType newVehicleType) {
+ VehicleType oldVehicleType = vehicleType;
+ vehicleType = newVehicleType == null ? VEHICLE_TYPE_EDEFAULT : newVehicleType;
+ boolean oldVehicleTypeESet = vehicleTypeESet;
+ vehicleTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EventPackage.VEHICLE_RESTRICTION__VEHICLE_TYPE, oldVehicleType, vehicleType, !oldVehicleTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVehicleType() {
+ VehicleType oldVehicleType = vehicleType;
+ boolean oldVehicleTypeESet = vehicleTypeESet;
+ vehicleType = VEHICLE_TYPE_EDEFAULT;
+ vehicleTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EventPackage.VEHICLE_RESTRICTION__VEHICLE_TYPE, oldVehicleType, VEHICLE_TYPE_EDEFAULT, oldVehicleTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVehicleType() {
+ return vehicleTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VehicleRelatedRestriction> getRestriction() {
+ if (restriction == null) {
+ restriction = new EObjectContainmentEList<VehicleRelatedRestriction>(VehicleRelatedRestriction.class, this, EventPackage.VEHICLE_RESTRICTION__RESTRICTION);
+ }
+ return restriction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RESTRICTION__RESTRICTION:
+ return ((InternalEList<?>)getRestriction()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RESTRICTION__VEHICLE_TYPE:
+ return getVehicleType();
+ case EventPackage.VEHICLE_RESTRICTION__RESTRICTION:
+ return getRestriction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RESTRICTION__VEHICLE_TYPE:
+ setVehicleType((VehicleType)newValue);
+ return;
+ case EventPackage.VEHICLE_RESTRICTION__RESTRICTION:
+ getRestriction().clear();
+ getRestriction().addAll((Collection<? extends VehicleRelatedRestriction>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RESTRICTION__VEHICLE_TYPE:
+ unsetVehicleType();
+ return;
+ case EventPackage.VEHICLE_RESTRICTION__RESTRICTION:
+ getRestriction().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EventPackage.VEHICLE_RESTRICTION__VEHICLE_TYPE:
+ return isSetVehicleType();
+ case EventPackage.VEHICLE_RESTRICTION__RESTRICTION:
+ return restriction != null && !restriction.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (vehicleType: ");
+ if (vehicleTypeESet) result.append(vehicleType); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //VehicleRestrictionImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventAdapterFactory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventAdapterFactory.java
new file mode 100755
index 0000000..67d7a98
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventAdapterFactory.java
@@ -0,0 +1,287 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.util;
+
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficinfo.tpeg.tec.event.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage
+ * @generated
+ */
+public class EventAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EventPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EventAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = EventPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EventSwitch<Adapter> modelSwitch =
+ new EventSwitch<Adapter>() {
+ @Override
+ public Adapter caseEvent(Event object) {
+ return createEventAdapter();
+ }
+ @Override
+ public Adapter caseCause(Cause object) {
+ return createCauseAdapter();
+ }
+ @Override
+ public Adapter caseLinkedCause(LinkedCause object) {
+ return createLinkedCauseAdapter();
+ }
+ @Override
+ public Adapter caseDirectCause(DirectCause object) {
+ return createDirectCauseAdapter();
+ }
+ @Override
+ public Adapter caseAdvice(Advice object) {
+ return createAdviceAdapter();
+ }
+ @Override
+ public Adapter caseVehicleRestriction(VehicleRestriction object) {
+ return createVehicleRestrictionAdapter();
+ }
+ @Override
+ public Adapter caseVehicleRelatedRestriction(VehicleRelatedRestriction object) {
+ return createVehicleRelatedRestrictionAdapter();
+ }
+ @Override
+ public Adapter caseTECMessage(TECMessage object) {
+ return createTECMessageAdapter();
+ }
+ @Override
+ public Adapter caseTemporarySpeedLimitSection(TemporarySpeedLimitSection object) {
+ return createTemporarySpeedLimitSectionAdapter();
+ }
+ @Override
+ public Adapter caseTemporarySpeedLimit(TemporarySpeedLimit object) {
+ return createTemporarySpeedLimitAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Event
+ * @generated
+ */
+ public Adapter createEventAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.Cause <em>Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Cause
+ * @generated
+ */
+ public Adapter createCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.LinkedCause <em>Linked Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.LinkedCause
+ * @generated
+ */
+ public Adapter createLinkedCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.DirectCause <em>Direct Cause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.DirectCause
+ * @generated
+ */
+ public Adapter createDirectCauseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.Advice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.Advice
+ * @generated
+ */
+ public Adapter createAdviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction <em>Vehicle Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction
+ * @generated
+ */
+ public Adapter createVehicleRestrictionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction <em>Vehicle Related Restriction</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction
+ * @generated
+ */
+ public Adapter createVehicleRelatedRestrictionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.TECMessage <em>TEC Message</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TECMessage
+ * @generated
+ */
+ public Adapter createTECMessageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection <em>Temporary Speed Limit Section</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimitSection
+ * @generated
+ */
+ public Adapter createTemporarySpeedLimitSectionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit <em>Temporary Speed Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tec.event.TemporarySpeedLimit
+ * @generated
+ */
+ public Adapter createTemporarySpeedLimitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //EventAdapterFactory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventSwitch.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventSwitch.java
new file mode 100755
index 0000000..b81e8a1
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tec.event-model/src/org/genivi/trafficinfo/tpeg/tec/event/util/EventSwitch.java
@@ -0,0 +1,314 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tec.event.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.genivi.trafficinfo.tpeg.tec.event.*;
+import org.genivi.trafficinfo.tpeg.tec.event.Advice;
+import org.genivi.trafficinfo.tpeg.tec.event.Cause;
+import org.genivi.trafficinfo.tpeg.tec.event.DirectCause;
+import org.genivi.trafficinfo.tpeg.tec.event.Event;
+import org.genivi.trafficinfo.tpeg.tec.event.EventPackage;
+import org.genivi.trafficinfo.tpeg.tec.event.LinkedCause;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tec.event.EventPackage
+ * @generated
+ */
+public class EventSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EventPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EventSwitch() {
+ if (modelPackage == null) {
+ modelPackage = EventPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case EventPackage.EVENT: {
+ Event event = (Event)theEObject;
+ T result = caseEvent(event);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.CAUSE: {
+ Cause cause = (Cause)theEObject;
+ T result = caseCause(cause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.LINKED_CAUSE: {
+ LinkedCause linkedCause = (LinkedCause)theEObject;
+ T result = caseLinkedCause(linkedCause);
+ if (result == null) result = caseCause(linkedCause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.DIRECT_CAUSE: {
+ DirectCause directCause = (DirectCause)theEObject;
+ T result = caseDirectCause(directCause);
+ if (result == null) result = caseCause(directCause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.ADVICE: {
+ Advice advice = (Advice)theEObject;
+ T result = caseAdvice(advice);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.VEHICLE_RESTRICTION: {
+ VehicleRestriction vehicleRestriction = (VehicleRestriction)theEObject;
+ T result = caseVehicleRestriction(vehicleRestriction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.VEHICLE_RELATED_RESTRICTION: {
+ VehicleRelatedRestriction vehicleRelatedRestriction = (VehicleRelatedRestriction)theEObject;
+ T result = caseVehicleRelatedRestriction(vehicleRelatedRestriction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.TEC_MESSAGE: {
+ TECMessage tecMessage = (TECMessage)theEObject;
+ T result = caseTECMessage(tecMessage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.TEMPORARY_SPEED_LIMIT_SECTION: {
+ TemporarySpeedLimitSection temporarySpeedLimitSection = (TemporarySpeedLimitSection)theEObject;
+ T result = caseTemporarySpeedLimitSection(temporarySpeedLimitSection);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EventPackage.TEMPORARY_SPEED_LIMIT: {
+ TemporarySpeedLimit temporarySpeedLimit = (TemporarySpeedLimit)theEObject;
+ T result = caseTemporarySpeedLimit(temporarySpeedLimit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Event</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEvent(Event object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCause(Cause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linked Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linked Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkedCause(LinkedCause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Direct Cause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Direct Cause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDirectCause(DirectCause object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Advice</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Advice</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdvice(Advice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vehicle Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Vehicle Restriction</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVehicleRestriction(VehicleRestriction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vehicle Related Restriction</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Vehicle Related Restriction</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVehicleRelatedRestriction(VehicleRelatedRestriction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>TEC Message</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>TEC Message</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTECMessage(TECMessage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Speed Limit Section</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Speed Limit Section</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemporarySpeedLimitSection(TemporarySpeedLimitSection object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Speed Limit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Speed Limit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTemporarySpeedLimit(TemporarySpeedLimit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //EventSwitch
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.classpath
new file mode 100755
index 0000000..87ae6bc
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.classpath
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.project
new file mode 100755
index 0000000..b247a0f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/.project
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.tpeg.tecservice</name>
+ <comment>This project contains a TPEG-TEC service. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/ReadMe.confluence
new file mode 100755
index 0000000..e3e5481
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/ReadMe.confluence
@@ -0,0 +1,2 @@
+This project contains a TPEG TEC service implementation for testing purposes.
+The TestPlayerTecService cycles through a small set of TEC messages. \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/pom.xml
new file mode 100755
index 0000000..be73e3d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>tecservice</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>TPEG-TEC Service</name>
+ <description>This project contains a TPEG-TEC service.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwk</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegtables</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg.tec</groupId>
+ <artifactId>event-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message1234.png b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message1234.png
new file mode 100755
index 0000000..a1d2f84
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message1234.png
Binary files differ
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 A Overview.png b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 A Overview.png
new file mode 100755
index 0000000..0bae845
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 A Overview.png
Binary files differ
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 B Causes.png b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 B Causes.png
new file mode 100755
index 0000000..5b6e4b9
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 B Causes.png
Binary files differ
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 C VehicleRestrictions.png b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 C VehicleRestrictions.png
new file mode 100755
index 0000000..5e1b3eb
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message4567 C VehicleRestrictions.png
Binary files differ
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message7878.png b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message7878.png
new file mode 100755
index 0000000..31be0f9
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/doc/TestPlayerTecService/message7878.png
Binary files differ
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/java/org/genivi/trafficinfo/tpeg/tecservice/testsetplayer/TestPlayerTecService.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/java/org/genivi/trafficinfo/tpeg/tecservice/testsetplayer/TestPlayerTecService.java
new file mode 100755
index 0000000..f4a5b7e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpeg.tecservice/src/main/java/org/genivi/trafficinfo/tpeg/tecservice/testsetplayer/TestPlayerTecService.java
@@ -0,0 +1,415 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tecservice.testsetplayer;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.trafficinfo.tpeg.registeredvalues.ApplicationId;
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.app.fwk.ApplicationServer;
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.impl.BroadcastFrameworkImplementation;
+import org.genivi.trafficinfo.tpeg.tec.event.Advice;
+import org.genivi.trafficinfo.tpeg.tec.event.AdviceCode;
+import org.genivi.trafficinfo.tpeg.tec.event.CauseCode;
+import org.genivi.trafficinfo.tpeg.tec.event.DirectCause;
+import org.genivi.trafficinfo.tpeg.tec.event.DoNotLeaveYourVehicle;
+import org.genivi.trafficinfo.tpeg.tec.event.EffectCode;
+import org.genivi.trafficinfo.tpeg.tec.event.Event;
+import org.genivi.trafficinfo.tpeg.tec.event.EventFactory;
+import org.genivi.trafficinfo.tpeg.tec.event.LaneRestrictionType;
+import org.genivi.trafficinfo.tpeg.tec.event.RestrictionType;
+import org.genivi.trafficinfo.tpeg.tec.event.SlowMovingVehicles;
+import org.genivi.trafficinfo.tpeg.tec.event.TECMessage;
+import org.genivi.trafficinfo.tpeg.tec.event.Tendency;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRelatedRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleRestriction;
+import org.genivi.trafficinfo.tpeg.tec.event.VehicleType;
+import org.genivi.trafficinfo.tpeg.tec.event.VisibilityReduced;
+import org.genivi.trafficinfo.tpeg.tec.event.WarningLevel;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesFactory;
+import org.genivi.trafficinfo.tpeg.tpegtables.LanguageCode;
+
+
+/**
+ * This TEC service repeatedly plays a fixed set of test messages.
+ * In this description the messages are referred to by their name,
+ * which has the format message<messageId>.
+ * There are 3 messages:
+ * message1234
+ * message4567
+ * message7878
+ *
+ * Message sequence:
+ * The method getApplicationData() repeatedly returns the following sequence:
+ * Call 1
+ * new message: message1234
+ * Call 2
+ * cancel message: message1234
+ * new message: message4567
+ * Call 3
+ * new message: message7878
+ * Call 4
+ * cancel messages: message7878, message4567
+ */
+public class TestPlayerTecService implements ApplicationServer {
+ private final static Logger LOGGER = Logger.getLogger(TestPlayerTecService.class.getName());
+ private final static byte CONTENT_ID = (byte) 13;
+
+ private static final EventFactory EVENT_FACTORY = EventFactory.eINSTANCE;
+ private static final TpegfwktypesFactory FACTORY = TpegfwktypesFactory.eINSTANCE;
+ private static OLRLocationReference olrLocationReference1;
+ private static OLRLocationReference olrLocationReference1b;
+ private static OLRLocationReference olrLocationReference2;
+ private static TECMessage message1234;
+ private static TECMessage cancelMessage1234;
+ private static TECMessage message4567;
+ private static TECMessage cancelMessage4567;
+ private static TECMessage message7878;
+ private static TECMessage cancelMessage7878;
+
+ private static List<TECMessage> fixedSet;
+ private static List<List<TECMessage>> testSets;
+
+ private BroadcastFrameworkImplementation broadcastFramework;
+ private byte myServiceComponentId;
+ private int callNumber = 0; // Used to cycle through test Sets.
+
+ static {
+ olrLocationReference1 = createOlrLocationReference1();
+ olrLocationReference1b = createOlrLocationReference1b();
+ olrLocationReference2 = createOlrLocationReference2();
+
+ message1234 = createTecMessage1234();
+ cancelMessage1234 = createTecCancelMessage1234();
+ message4567 = createTecMessage4567();
+ cancelMessage4567 = createTecCancelMessage4567();
+ message7878 = createTecMessage7878();
+ cancelMessage7878 = createTecCancelMessage7878();
+
+ testSets = new ArrayList<List<TECMessage>>();
+
+ fixedSet = new ArrayList<TECMessage>();
+ fixedSet.add(message1234);
+ fixedSet.add(message4567);
+ fixedSet.add(message7878);
+
+ createTestSet1(testSets);
+ createTestSet2(testSets);
+ createTestSet3(testSets);
+ createTestSet4(testSets);
+ }
+
+ public TestPlayerTecService(BroadcastFrameworkImplementation broadcastFramework) {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating TestPlayerTecService");
+ this.broadcastFramework = broadcastFramework;
+ if (broadcastFramework != null) {
+ myServiceComponentId = broadcastFramework.registerApplicationServer(ApplicationId.TEC.getAid(), CONTENT_ID, null, this);
+ }
+ }
+
+ public void stopServer() {
+ broadcastFramework.unregisterApplicationServer(myServiceComponentId);
+ }
+
+ private static OLRLocationReference createOlrLocationReference1() {
+ // create OpenLR location reference.
+ byte[] locationData = {
+ (byte) 0x0a, (byte) 0x03, (byte) 0xa2, (byte) 0x60,
+ (byte) 0x25, (byte) 0x0c, (byte) 0xa0, (byte) 0x13,
+ (byte) 0x56, (byte) 0x02, (byte) 0xff, (byte) 0x4f,
+ (byte) 0xff, (byte) 0xe3, (byte) 0x12, (byte) 0x06};
+ OLRLocationReference olrLocationReference = FACTORY.createOLRLocationReference();
+ olrLocationReference.setLocationData(locationData);
+
+ return olrLocationReference;
+ }
+
+ private static OLRLocationReference createOlrLocationReference1b() {
+ // create OpenLR location reference.
+ byte[] locationData = {
+ (byte) 0x0a, (byte) 0x03, (byte) 0xa2, (byte) 0x60,
+ (byte) 0x25, (byte) 0x0c, (byte) 0xa0, (byte) 0x13,
+ (byte) 0x56, (byte) 0x02, (byte) 0xff, (byte) 0x4f,
+ (byte) 0xff, (byte) 0xe3, (byte) 0x12, (byte) 0x06};
+ OLRLocationReference olrLocationReference = FACTORY.createOLRLocationReference();
+ olrLocationReference.setLocationData(locationData);
+
+ return olrLocationReference;
+ }
+
+ private static OLRLocationReference createOlrLocationReference2() {
+ // create OpenLR location reference.
+ byte[] locationData = {
+ (byte) 0x0b, (byte) 0x03, (byte) 0x9b, (byte) 0x37,
+ (byte) 0x25, (byte) 0x0a, (byte) 0x87, (byte) 0x1b,
+ (byte) 0x82, (byte) 0x16, (byte) 0xfd, (byte) 0xc6,
+ (byte) 0x03, (byte) 0xf6, (byte) 0x23, (byte) 0x6e,
+ (byte) 0x58, (byte) 0x11};
+ OLRLocationReference olrLocationReference = FACTORY.createOLRLocationReference();
+ olrLocationReference.setLocationData(locationData);
+
+ return olrLocationReference;
+ }
+
+ @Override
+ public ServiceComponentFrame getApplicationData() {
+ ServCompFramePrioritisedCountedProtected serviceComponentFrame = FACTORY.createServCompFramePrioritisedCountedProtected();
+// List<TECMessage> testEvents = fixedSet;
+ List<TECMessage> testEvents = testSets.get(callNumber);
+
+ callNumber++;
+ if (callNumber >= testSets.size()) {
+ callNumber = 0;
+ }
+
+ serviceComponentFrame.setApplicationContent(testEvents);
+ serviceComponentFrame.setDataCRC(0); // NOTE Data CRC not filled in.
+ serviceComponentFrame.setGroupPriority(0); // NOTE Group priority not filled in.
+ serviceComponentFrame.setMessageCount(testEvents.size());
+
+ StringBuilder buf = new StringBuilder();
+ boolean first = true;
+ buf.append("(");
+ for (TECMessage tecMessage: testEvents) {
+ if (!first) {
+ buf.append(", ");
+ first = true;
+ }
+ MMCSwitch mmcSwitch = tecMessage.getMmt();
+ buf.append(mmcSwitch.getMessageID());
+ if (mmcSwitch.isCancelFlag()) {
+ buf.append(" (cancelled)");
+ }
+ }
+ buf.append(")");
+ LOGGER.info("TestPlayerTecService providing TEC events: " + buf.toString());
+ return serviceComponentFrame;
+ }
+
+
+ private static TECMessage createTecMessage1234() {
+ TECMessage tecMessage;
+ MessageManagementContainer messageManagementContainer;
+ Event event;
+
+ tecMessage = EVENT_FACTORY.createTECMessage();
+
+ messageManagementContainer = FACTORY.createMessageManagementContainer();
+ messageManagementContainer.setMessageID(1234);
+ tecMessage.setMmt(messageManagementContainer);
+
+ event = EVENT_FACTORY.createEvent();
+ event.setEffectCode(EffectCode.STATIONARY_TRAFFIC);
+ tecMessage.setEvent(event);
+
+ LocationReferencingContainer locationReferencingContainer = FACTORY.createLocationReferencingContainer();
+ locationReferencingContainer.getMethod().add(olrLocationReference1);
+ tecMessage.setLoc(locationReferencingContainer);
+
+ return tecMessage;
+ }
+
+ private static TECMessage createTecCancelMessage1234() {
+ TECMessage tecMessage;
+ MessageManagementContainer messageManagementContainer;
+
+ tecMessage = EVENT_FACTORY.createTECMessage();
+
+ messageManagementContainer = FACTORY.createMessageManagementContainer();
+ messageManagementContainer.setMessageID(1234);
+ messageManagementContainer.setCancelFlag(true);
+ tecMessage.setMmt(messageManagementContainer);
+
+ return tecMessage;
+ }
+
+ private static TECMessage createTecMessage4567() {
+ TECMessage tecMessage;
+ MessageManagementContainer messageManagementContainer;
+ Event event;
+ DirectCause directCause;
+ LocalisedShortString freeText;
+ VehicleRestriction vehicleRestriction;
+ VehicleRelatedRestriction vehicleRelatedRestriction;
+ LocationReferencingContainer locationReferencingContainer;
+
+ tecMessage = EVENT_FACTORY.createTECMessage();
+
+ messageManagementContainer = FACTORY.createMessageManagementContainer();
+ messageManagementContainer.setMessageID(4567);
+ tecMessage.setMmt(messageManagementContainer);
+
+ event = EVENT_FACTORY.createEvent();
+ event.setEffectCode(EffectCode.HEAVY_TRAFFIC);
+ Calendar calendar = new GregorianCalendar();
+ calendar.add(Calendar.DATE, 3);
+ calendar.add(Calendar.HOUR, 1);
+ event.setStartTime(calendar.getTime());
+ calendar.add(Calendar.HOUR, 2);
+ event.setStopTime(calendar.getTime());
+ event.setTendency(Tendency.SLIGHTLY_INCREASING);
+ event.setLengthAffected(3400);
+ event.setAverageSpeedAbsolute(10);
+ event.setSegmentSpeedLimit(22);
+ event.setExpectedSpeedAbsolute(12);
+ directCause = EVENT_FACTORY.createDirectCause();
+ directCause.setWarningLevel(WarningLevel.DANGER_LEVEL_2);
+ directCause.setUnverifiedInformation(true);
+ directCause.setMainCause(CauseCode.SLOW_MOVING_VEHICLES);
+ directCause.setSubCause(SlowMovingVehicles.SLOW_MOVING_MAINTENANCE_VEHICLE);
+ directCause.setLengthAffected(5000);
+ directCause.setLaneRestrictionType(LaneRestrictionType.LEFT_LANES_CLOSED);
+ directCause.setNumberOfLanes(2);
+ freeText = FACTORY.createLocalisedShortString();
+ freeText.setLanguageCode(LanguageCode.FRENCH.getCode());
+ freeText.setString("ces véhicules sont de couleur rouge");
+ directCause.getFreeText().add(freeText);
+ freeText = FACTORY.createLocalisedShortString();
+ freeText.setLanguageCode(LanguageCode.ENGLISH.getCode());
+ freeText.setString("The vehicles are red");
+ directCause.getFreeText().add(freeText);
+ freeText = FACTORY.createLocalisedShortString();
+ freeText.setLanguageCode(LanguageCode.GERMAN.getCode());
+ freeText.setString("Die Fahrzeuge sind rot");
+ directCause.getFreeText().add(freeText);
+ event.getCause().add(directCause);
+ directCause = EVENT_FACTORY.createDirectCause();
+ directCause.setWarningLevel(WarningLevel.DANGER_LEVEL_1);
+ directCause.setMainCause(CauseCode.VISIBILITY_REDUCED);
+ directCause.setSubCause(VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE);
+ event.getCause().add(directCause);
+ vehicleRestriction = EVENT_FACTORY.createVehicleRestriction();
+ vehicleRestriction.setVehicleType(VehicleType.LORRY);
+ vehicleRelatedRestriction = EVENT_FACTORY.createVehicleRelatedRestriction();
+ vehicleRelatedRestriction.setRestrictionType(RestrictionType.AXLE_LOAD_GREATER_THAN);
+ vehicleRelatedRestriction.setRestrictionValue(5000);
+ vehicleRestriction.getRestriction().add(vehicleRelatedRestriction);
+ vehicleRelatedRestriction = EVENT_FACTORY.createVehicleRelatedRestriction();
+ vehicleRelatedRestriction.setRestrictionType(RestrictionType.WIDTH_GREATER_THAN);
+ vehicleRelatedRestriction.setRestrictionValue(260);
+ vehicleRestriction.getRestriction().add(vehicleRelatedRestriction);
+ event.getVehicleRestriction().add(vehicleRestriction);
+ vehicleRestriction = EVENT_FACTORY.createVehicleRestriction();
+ vehicleRestriction.setVehicleType(VehicleType.VEHICLE_WITH_TRAILER);
+ event.getVehicleRestriction().add(vehicleRestriction);
+ tecMessage.setEvent(event);
+
+ locationReferencingContainer = FACTORY.createLocationReferencingContainer();
+ locationReferencingContainer.getMethod().add(olrLocationReference2);
+ tecMessage.setLoc(locationReferencingContainer);
+
+ return tecMessage;
+ }
+
+ private static TECMessage createTecCancelMessage4567() {
+ TECMessage tecMessage;
+ MessageManagementContainer messageManagementContainer;
+
+ tecMessage = EVENT_FACTORY.createTECMessage();
+
+ messageManagementContainer = FACTORY.createMessageManagementContainer();
+ messageManagementContainer.setMessageID(4567);
+ messageManagementContainer.setCancelFlag(true);
+ tecMessage.setMmt(messageManagementContainer);
+
+ return tecMessage;
+ }
+
+ private static TECMessage createTecMessage7878() {
+ TECMessage tecMessage;
+ MessageManagementContainer messageManagementContainer;
+ Event event;
+ DirectCause directCause;
+ Advice advice;
+ LocationReferencingContainer locationReferencingContainer;
+
+ tecMessage = EVENT_FACTORY.createTECMessage();
+
+ messageManagementContainer = FACTORY.createMessageManagementContainer();
+ messageManagementContainer.setMessageID(7878);
+ tecMessage.setMmt(messageManagementContainer);
+
+ event = EVENT_FACTORY.createEvent();
+ event.setEffectCode(EffectCode.NO_TRAFFIC_FLOW);
+ tecMessage.setEvent(event);
+ directCause = EVENT_FACTORY.createDirectCause();
+ directCause.setWarningLevel(WarningLevel.DANGER_LEVEL_3);
+ directCause.setMainCause(CauseCode.FIRE);
+ directCause.setLengthAffected(9000);
+ event.getCause().add(directCause);
+ advice = EVENT_FACTORY.createAdvice();
+ advice.setAdviceCode(AdviceCode.DO_NOT_LEAVE_YOUR_VEHICLE);
+ advice.setSubAdviceCode(DoNotLeaveYourVehicle.DO_NOT_LEAVE_YOUR_VEHICLE_CLOSE_WINDOWS);
+ event.getAdvice().add(advice);
+ advice = EVENT_FACTORY.createAdvice();
+ advice.setAdviceCode(AdviceCode.DRIVING_NOT_ALLOWED);
+ event.getAdvice().add(advice);
+ advice = EVENT_FACTORY.createAdvice();
+ advice.setAdviceCode(AdviceCode.SWITCH_ON_RADIO);
+ event.getAdvice().add(advice);
+
+ locationReferencingContainer = FACTORY.createLocationReferencingContainer();
+ locationReferencingContainer.getMethod().add(olrLocationReference1b);
+ tecMessage.setLoc(locationReferencingContainer);
+
+ return tecMessage;
+ }
+
+ private static TECMessage createTecCancelMessage7878() {
+ TECMessage tecMessage;
+ MessageManagementContainer messageManagementContainer;
+
+ tecMessage = EVENT_FACTORY.createTECMessage();
+
+ messageManagementContainer = FACTORY.createMessageManagementContainer();
+ messageManagementContainer.setMessageID(7878);
+ messageManagementContainer.setCancelFlag(true);
+ tecMessage.setMmt(messageManagementContainer);
+
+ return tecMessage;
+ }
+
+ private static void createTestSet1(List<List<TECMessage>> testSets) {
+ List<TECMessage> testEvents = new ArrayList<TECMessage>();
+ testEvents.add(message1234);
+ testSets.add(testEvents);
+ }
+
+ private static void createTestSet2(List<List<TECMessage>> testSets) {
+ List<TECMessage> testEvents = new ArrayList<TECMessage>();
+ testEvents.add(cancelMessage1234);
+ testEvents.add(message4567);
+ testSets.add(testEvents);
+ }
+
+ private static void createTestSet3(List<List<TECMessage>> testSets) {
+ List<TECMessage> testEvents = new ArrayList<TECMessage>();
+ testEvents.add(message7878);
+ testSets.add(testEvents);
+ }
+
+ private static void createTestSet4(List<List<TECMessage>> testSets) {
+ List<TECMessage> testEvents = new ArrayList<TECMessage>();
+ testEvents.add(cancelMessage4567);
+ testEvents.add(cancelMessage7878);
+ testSets.add(testEvents);
+ }
+
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.classpath
new file mode 100755
index 0000000..31e2542
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.project
new file mode 100755
index 0000000..740a211
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/.project
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.tpegfwk</name>
+ <comment>This project contains TPEG Framework classes. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/ReadMe.confluence
new file mode 100755
index 0000000..d0f42e6
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/ReadMe.confluence
@@ -0,0 +1,22 @@
+This project contains TPEG related classes.
+
+*org.genivi.tpeg.clientside.broadcast.fwk*
+TPEG framework interfaces for the client side.
+
+*org.genivi.tpeg.clientside.broadcast.fwk.impl*
+Mininal implementation of the client side service framework.
+
+*org.genivi.tpeg.clientside.broadcastadaptationlayer.refimpl*
+Reference implementation for a client side Broadcast adaptation layer.
+
+*org.genivi.tpeg.registeredvalues*
+Contains TPEG services related values registered with TISA. For now it contains the registered Application Ids (for testing only).
+
+*org.genivi.tpeg.serverside.broadcast.app.fwk*
+Interface for a TPEG application on the server side, in a broadcast framework.
+
+*org.genivi.tpeg.serverside.broadcast.fwk*
+Interface for a TPEG framework on the server side, in a broadcast framework.
+
+*org.genivi.tpeg.serverside.broadcast.fwk.impl*
+Minimal implementation of the server side service framework.
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/pom.xml
new file mode 100755
index 0000000..4623860
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/pom.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwk</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>TPEG Framework</name>
+ <description>This project contains TPEG Framework classes.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>demo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>sni-model</artifactId>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegDecodingUnit.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegDecodingUnit.java
new file mode 100755
index 0000000..fabc306
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegDecodingUnit.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+public interface TpegDecodingUnit {
+ public void handleServiceComponentFrame(long channelId, String communicationChannelName, ServiceIdentifier originatorSID, byte COID, Object data);
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwAdaptationLayers.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwAdaptationLayers.java
new file mode 100755
index 0000000..017b4dc
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwAdaptationLayers.java
@@ -0,0 +1,16 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk;
+
+public interface TpegSfwAdaptationLayers {
+ public long registerAdaptationLayer(Object adaptationLayer, String communicationChannelName);
+
+ public void unregisterAdaptationLayer(long channelId);
+
+ public void transportFrameReceived(long channelId, Object data);
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwClients.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwClients.java
new file mode 100755
index 0000000..3a6f4c3
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/TpegSfwClients.java
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk;
+
+
+public interface TpegSfwClients {
+ public void registerApplication(int applicationId, TpegDecodingUnit decodingUnit);
+
+ public void unregisterApplication(int applicationId);
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1.java
new file mode 100755
index 0000000..309d5de
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.impl;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesFactory;
+
+
+
+@SuppressWarnings("serial")
+public class GuideToServiceTable1 extends LinkedList<GuideToServiceTable1Entry> {
+ private static final TpegfwktypesFactory FACTORY = TpegfwktypesFactory.eINSTANCE;
+
+ public GuideToServiceTable1Entry getEntryForServiceComponentId(byte serviceComponentId) {
+ Iterator<GuideToServiceTable1Entry> iterator = iterator();
+ while (iterator.hasNext()) {
+ GuideToServiceTable1Entry entry = iterator.next();
+ if (entry.getServiceComponentId() == serviceComponentId) {
+ return entry;
+ }
+ }
+
+ return null;
+ }
+
+ public static void main(String[] args) {
+ GuideToServiceTable1 serviceTable = new GuideToServiceTable1();
+ GuideToServiceTable1Entry entry;
+ ServiceIdentifier serviceId;
+
+ serviceId = FACTORY.createServiceIdentifier();
+ serviceId.setSidA((byte) 9);
+ serviceId.setSidB((byte) 10);
+ serviceId.setSidC((byte) 11);
+ entry = new GuideToServiceTable1Entry((byte) 100, (byte) 200, serviceId, (byte) 10);
+
+ serviceTable.add(entry);
+
+ serviceId = FACTORY.createServiceIdentifier();
+ serviceId.setSidA((byte) 20);
+ serviceId.setSidB((byte) 21);
+ serviceId.setSidC((byte) 22);
+ entry = new GuideToServiceTable1Entry((byte) 101, (byte) 201, serviceId, (byte) 11);
+
+ serviceTable.add(entry);
+
+ entry = serviceTable.getEntryForServiceComponentId((byte) 10);
+
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1Entry.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1Entry.java
new file mode 100755
index 0000000..f14172f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/GuideToServiceTable1Entry.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.impl;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+public class GuideToServiceTable1Entry {
+ private byte applicationId; // AID
+ private byte contentId; // COID
+ private ServiceIdentifier serviceId; // SID
+ private byte serviceComponentId; // SCID
+
+
+ public GuideToServiceTable1Entry(byte applicationId, byte contentId,
+ ServiceIdentifier serviceId, byte serviceComponentId) {
+ super();
+ this.applicationId = applicationId;
+ this.contentId = contentId;
+ this.serviceId = serviceId;
+ this.serviceComponentId = serviceComponentId;
+ }
+
+ public byte getApplicationId() {
+ return applicationId;
+ }
+
+
+ public byte getContentId() {
+ return contentId;
+ }
+
+
+ public ServiceIdentifier getServiceId() {
+ return serviceId;
+ }
+
+
+ public byte getServiceComponentId() {
+ return serviceComponentId;
+ }
+
+
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/TpegSfwRefImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/TpegSfwRefImpl.java
new file mode 100755
index 0000000..788d13c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcast/fwk/impl/TpegSfwRefImpl.java
@@ -0,0 +1,195 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.impl;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegDecodingUnit;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegSfwAdaptationLayers;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegSfwClients;
+import org.genivi.trafficinfo.tpeg.registeredvalues.ApplicationId;
+import org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponent;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1;
+
+
+
+
+public class TpegSfwRefImpl implements TpegSfwClients, TpegSfwAdaptationLayers {
+ private final static Logger LOGGER = Logger.getLogger(TpegSfwRefImpl.class.getName());
+
+ private long nextChannelId = 1;
+
+ // The adaptation layers via which data is received.
+// private List<Object> adaptersBroadcast = new ArrayList<Object>();
+ private Map<Long, String> adaptationLayerNames = new HashMap<Long, String>();
+
+ GuideToServiceTable1 guideToServiceTable1 = null;
+
+ // The decoding units per TPEG application.
+ private Map<Integer, TpegDecodingUnit> decodingUnits = new HashMap<Integer, TpegDecodingUnit>();
+
+ public TpegSfwRefImpl() {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating TpegSfw.");
+ // this.use2WayCommunication = use2WayCommunication;
+
+ // TODO PRIO 1 create controller when adapter registers
+ // if (use2WayCommunication) {
+ // clientTpegFrameworkController = new ClientTpegFrameworkController(this);
+ // clientTpegFrameworkController.start();
+ // } else {
+ // broadcastReception = DummyBroadcastChannel.getInstance();
+ // broadcastReception.addBroadcastReceptionListener(this);
+ // }
+ }
+
+ @Override
+ public void registerApplication(int applicationId, TpegDecodingUnit decodingUnit) {
+ StringBuilder buf = new StringBuilder();
+ buf.append("registering application Id: ");
+ buf.append(applicationId);
+ if (decodingUnit != null) {
+ buf.append(", decodingUnit = ");
+ buf.append(decodingUnit.getClass().getName());
+ }
+ LOGGER.info(buf.toString());
+
+ decodingUnits.put(applicationId, decodingUnit);
+ }
+
+ @Override
+ public void unregisterApplication(int applicationId) {
+ decodingUnits.remove(applicationId);
+ }
+
+ @Override
+ public void transportFrameReceived(long channelId, Object data) {
+ LOGGER.info("Received TransportFrame");
+ TransportFrameTemplate transportFrameTemplate = (TransportFrameTemplate) data;
+
+ if (transportFrameTemplate instanceof TransportFrameType1) {
+ handleTransportFrameType1(channelId, (TransportFrameType1) transportFrameTemplate);
+ }
+ }
+
+ private void handleTransportFrameType1(long channelId, TransportFrameType1 transportFrameType1) {
+ ServiceFrame serviceFrame = transportFrameType1.getTransportFrameContent();
+ ServCompMultiplex servCompMultiplex = serviceFrame.getServiceFrameContent();
+ for (ServiceComponentFrame serviceData: servCompMultiplex.getMultiplexContent()) {
+ LOGGER.info("Handling ServiceComponentFrame for ServiceComponentId: " + serviceData.getSCID());
+ String communicationChannelName = adaptationLayerNames.get(channelId);
+ if (serviceData.getSCID() == ApplicationId.SNI.getAid()) {
+ handleSniServiceComponentFrame(channelId, communicationChannelName, serviceData);
+ } else {
+ handleNonSniServiceComponentFrame(channelId, communicationChannelName, serviceFrame.getSID(), serviceData);
+ }
+ }
+ }
+
+ private void handleSniServiceComponentFrame(long channelId, String communicationChannelName, ServiceComponentFrame serviceComponentFrame) {
+ if (serviceComponentFrame instanceof ServCompFrameCountedProtected) {
+ ServCompFrameCountedProtected serviceComponentFrameCountedProtected = (ServCompFrameCountedProtected) serviceComponentFrame;
+ @SuppressWarnings("unchecked")
+ List<SniComponent> sniComponents = (List<SniComponent>) serviceComponentFrameCountedProtected.getApplicationContent();
+ for (SniComponent sniComponent: sniComponents) {
+ if (sniComponent instanceof SniComponentFastTuning) {
+ handleFastTuningComponent((SniComponentFastTuning) sniComponent);
+ } else {
+ new RuntimeException("Unexpected SNI component");
+ }
+ }
+ } else {
+ throw new RuntimeException("Wrong frametype for SNI frame");
+ }
+ }
+
+ private void handleFastTuningComponent(SniComponentFastTuning sniComponent) {
+ guideToServiceTable1 = new GuideToServiceTable1();
+
+ for (LineOfTable1 lineOfTable1: sniComponent.getLinesOfTable1()) {
+ addEntryToGuideToServiceTable1(lineOfTable1);
+ }
+
+ LOGGER.info("New content of the Guide To The Service Table");
+ Iterator<GuideToServiceTable1Entry> iterator = guideToServiceTable1.iterator();
+ while(iterator.hasNext()) {
+ GuideToServiceTable1Entry entry = iterator.next();
+ LOGGER.info("ServiceComponentId: " + entry.getServiceComponentId() +
+ ", Originator service ID: " + entry.getServiceId() +
+ ", ContentId: " + entry.getContentId() +
+ ", ApplicationId: " + entry.getApplicationId());
+ }
+ }
+
+ private void addEntryToGuideToServiceTable1(LineOfTable1 lineOfTable1) {
+ GuideToServiceTable1Entry entry = new GuideToServiceTable1Entry(
+ lineOfTable1.getApplicationId(),
+ lineOfTable1.getContentId(),
+ lineOfTable1.getOriginatorServiceIdentifier(),
+ lineOfTable1.getServiceComponentId());
+
+ guideToServiceTable1.add(entry);
+ }
+
+ private void handleNonSniServiceComponentFrame(long channelId, String communicationChannelName, ServiceIdentifier sid, ServiceComponentFrame serviceData) {
+ GuideToServiceTable1Entry entry = guideToServiceTable1.getEntryForServiceComponentId(serviceData.getSCID());
+ if (entry == null) {
+ LOGGER.info("No entry in Guide To The Service Table for ServiceComponentId " +
+ serviceData.getSCID());
+ return;
+ }
+ int applicationId = entry.getApplicationId();
+ LOGGER.info("ApplicationId = " + applicationId);
+
+ TpegDecodingUnit tpegDecodingUnit = decodingUnits.get(applicationId);
+ if (tpegDecodingUnit != null) {
+ ServiceIdentifier sidToUse = entry.getServiceId();
+ if (sidToUse == null) {
+ sidToUse = sid;
+ }
+ tpegDecodingUnit.handleServiceComponentFrame(channelId, communicationChannelName, sidToUse, entry.getContentId(), serviceData);
+ } else {
+ LOGGER.info("No decoding unit for applicationId " +
+ applicationId + " (" + ApplicationId.getApplicationIdForId(applicationId).name() + ")");
+ }
+ }
+
+ @Override
+ public long registerAdaptationLayer(Object adaptationLayer, String communicationChannelName) {
+ LOGGER.info("Registrating adaptation layer (" + adaptationLayer.getClass().getName() + ")");
+// adaptersBroadcast.add(adaptationLayer);
+ long channelId = generateChannelId();
+ adaptationLayerNames.put(channelId, communicationChannelName);
+
+ return channelId;
+ }
+
+ @Override
+ public void unregisterAdaptationLayer(long channelId) {
+// adaptersBroadcast.remove(adaptationLayer);
+ adaptationLayerNames.remove(channelId);
+ }
+
+ public long generateChannelId() {
+ return nextChannelId++;
+ }
+
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcastadaptionlayer/refimpl/BroadcastAdaptationLayerImplementation.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcastadaptionlayer/refimpl/BroadcastAdaptationLayerImplementation.java
new file mode 100755
index 0000000..8d21f7d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/clientside/broadcastadaptionlayer/refimpl/BroadcastAdaptationLayerImplementation.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.clientside.broadcastadaptionlayer.refimpl;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.genivi.trafficinfo.demo.communicationchannel.DataReceptionListener;
+import org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.BroadcastReception;
+import org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.impl.DummyBroadcastChannel;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.TpegSfwAdaptationLayers;
+
+public class BroadcastAdaptationLayerImplementation implements DataReceptionListener {
+ private final static Logger LOGGER = Logger.getLogger(BroadcastAdaptationLayerImplementation.class.getName());
+
+ private TpegSfwAdaptationLayers tpegSfwAdaptationLayers;
+ private long channelId;
+
+ // Broadcast specific attributes.
+ private BroadcastReception broadcastReception;
+
+
+ public BroadcastAdaptationLayerImplementation(String communicationChannelName, TpegSfwAdaptationLayers tpegSfwAdaptationLayers) {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating BroadcastAdaptationLayer");
+ this.tpegSfwAdaptationLayers = tpegSfwAdaptationLayers;
+
+ channelId = tpegSfwAdaptationLayers.registerAdaptationLayer(this, communicationChannelName);
+
+ broadcastReception = DummyBroadcastChannel.getInstance();
+ broadcastReception.addBroadcastReceptionListener(this);
+ }
+
+
+ @Override
+ public void dataReceived(Object data) {
+ LOGGER.info("Data received.");
+
+ tpegSfwAdaptationLayers.transportFrameReceived(channelId, data);
+ }
+
+
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/registeredvalues/ApplicationId.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/registeredvalues/ApplicationId.java
new file mode 100755
index 0000000..f05ffe1
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/registeredvalues/ApplicationId.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.registeredvalues;
+
+public enum ApplicationId {
+ SNI((byte) 0x0000, "Service and Network Information application", "SNI", true),
+ RTM((byte) 0x0001, "Road Traffic Message application", "RTM", false),
+ PTI((byte) 0x0002, "Public Transport Information application", "PTI", true),
+ PKI((byte) 0x0003, "Parking Information application", "PKI", true),
+ CTT((byte) 0x0004, "Congestion and Travel Time application", "CTT", false),
+ TEC((byte) 0x0005, "Traffic Event Compact application", "TEC", true),
+ CAI((byte) 0x0006, "Conditional Access Information application", "CAI", true),
+ TFP((byte) 0x0007, "Traffic Flow and Prediction", "TFP", true),
+ FPI((byte) 0x0008, "Fuel Price Information and availability", "FPI", true),
+ RTM_TEST((byte) 0x8001, "TEST: RTM application", null, false),
+ PTI_TEST((byte) 0x8002, "TEST: PTI application", null, false),
+ PKI_TEST((byte) 0x8003, "TEST: PKI application", null, false),
+ CTT_TEST((byte) 0x8004, "TEST: CTT application", null, false),
+ TEC_TEST((byte) 0x8005, "TEST: TEC application", null, false),
+ CAI_TEST((byte) 0x8006, "TEST: CAI application", null, false),
+ TFP_TEST((byte) 0x8007, "TEST: TFP application", null, false),
+ FPI_TEST((byte) 0x8008, "TEST: FPI application", null, false),
+ TIME((byte) 0x8043, "My Time test application", null, false);
+
+ private byte aid; // Application Identification number. Test applications start at 0x8000.
+ private String applicationName; // Name of the (Test) Application
+ private String abbreviation; // Abbreviation for the Appication. For Test applications there's no abbreviation.
+ private boolean definedInTpeg2Series; // If true, this is (planned to be) part of TPEG2
+
+ ApplicationId(byte aid, String applicationName, String abbreviation,
+ boolean definedInTpeg2Series) {
+ this.aid = aid;
+ this.applicationName = applicationName;
+ this.abbreviation = abbreviation;
+ this.definedInTpeg2Series = definedInTpeg2Series;
+ }
+
+ public byte getAid() {
+ return aid;
+ }
+
+ public String getApplicationName() {
+ return applicationName;
+ }
+
+ public String getAbbreviation() {
+ return abbreviation;
+ }
+
+ public boolean isDefinedInTpeg2Series() {
+ return definedInTpeg2Series;
+ }
+
+ public boolean isTestApplication() {
+ return aid >= 0x8000;
+ }
+
+ public static ApplicationId getApplicationIdForId(int id) {
+ for (ApplicationId applicationId: values()) {
+ if (applicationId.aid == id) {
+ return applicationId;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/app/fwk/ApplicationServer.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/app/fwk/ApplicationServer.java
new file mode 100755
index 0000000..c8ee190
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/app/fwk/ApplicationServer.java
@@ -0,0 +1,17 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.serverside.broadcast.app.fwk;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+
+
+public interface ApplicationServer {
+ public ServiceComponentFrame getApplicationData();
+
+ public void stopServer();
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/BroadcastFramework.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/BroadcastFramework.java
new file mode 100755
index 0000000..081ba27
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/BroadcastFramework.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk;
+
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.app.fwk.ApplicationServer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+
+
+/**
+ * This interface is used by the server side applications.
+ */
+public interface BroadcastFramework {
+
+ /**
+ * Register an application server
+ * @param applicationId The kind of application
+ * @param contentId The content identifier (unclear what this is)
+ * @param serviceId An optional service identifier.
+ * @param applicationServer The implementing class.
+ * @return The serviceComponentId assigned to this application server.
+ */
+ public abstract byte registerApplicationServer(byte applicationId, byte contentId, ServiceIdentifier serviceId, ApplicationServer applicationServer);
+
+ /**
+ * Unregister an application server.
+ * @param serviceComponentId The serviceComponentId that was assigned during registration.
+ */
+ public abstract void unregisterApplicationServer(byte serviceComponentId);
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/BroadcastFrameworkImplementation.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/BroadcastFrameworkImplementation.java
new file mode 100755
index 0000000..b262950
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/BroadcastFrameworkImplementation.java
@@ -0,0 +1,187 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.Broadcast;
+import org.genivi.trafficinfo.demo.communicationchannel.broadcastchannel.impl.DummyBroadcastChannel;
+import org.genivi.trafficinfo.tpeg.registeredvalues.ApplicationId;
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.app.fwk.ApplicationServer;
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.BroadcastFramework;
+import org.genivi.trafficinfo.tpeg.snitypes.LineOfTable1;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponent;
+import org.genivi.trafficinfo.tpeg.snitypes.SniComponentFastTuning;
+import org.genivi.trafficinfo.tpeg.snitypes.SnitypesFactory;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesFactory;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1;
+
+
+
+public class BroadcastFrameworkImplementation extends Thread implements BroadcastFramework {
+ private static final Logger LOGGER = Logger.getLogger(BroadcastFrameworkImplementation.class.getName());
+ private static final TpegfwktypesFactory FACTORY = TpegfwktypesFactory.eINSTANCE;
+ private static final SnitypesFactory SNI_FACTORY = SnitypesFactory.eINSTANCE;
+ private static final ServiceIdentifier MY_SID = FACTORY.createServiceIdentifier();
+ private static final byte GUIDE_TO_SERVICE_TABLE1_INC_VERSION_NUMBER = 1;
+
+ private byte nextServiceComponentId = (byte) 1;
+ private Map<GuideToServiceTable1Entry, ApplicationServer> applicationServers = new HashMap<GuideToServiceTable1Entry, ApplicationServer>();
+ private Broadcast broadcast = DummyBroadcastChannel.getInstance();
+
+ static {
+ MY_SID.setSidA((byte) 99);
+ MY_SID.setSidB((byte) 66);
+ MY_SID.setSidC((byte) 33);
+ }
+
+ public BroadcastFrameworkImplementation() {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating broadcast framework");
+ }
+
+ public void run() {
+ while(true) {
+ // create a TransportFrame
+ // TODO handle situation where more than 1 frame is needed.
+ TransportFrameType1 transportFrame = FACTORY.createTransportFrameType1();
+ boolean broadcastNeeded = false;
+ ServiceFrame serviceFrame = FACTORY.createServiceFrame();
+ serviceFrame.setServEncID(0); // No encryption
+ serviceFrame.setSID(MY_SID);
+ ServCompMultiplex servCompMultiplex = FACTORY.createServCompMultiplex();
+ List<ServiceComponentFrame> serviceComponentFrames = servCompMultiplex.getMultiplexContent();
+ serviceFrame.setServiceFrameContent(servCompMultiplex);
+ transportFrame.setTransportFrameContent(serviceFrame);
+
+ // start with SNI service component frame
+ ServiceComponentFrame sniServiceComponentFrame = getSniServiceComponentFrame();
+ if (sniServiceComponentFrame != null) {
+ serviceComponentFrames.add(sniServiceComponentFrame);
+ broadcastNeeded = true;
+ }
+
+ // get latest information from all registered services.
+ for (GuideToServiceTable1Entry entry: applicationServers.keySet()) {
+ byte applicationId = entry.getApplicationId();
+ // TODO pass on driveId, so service specific access can be checked.
+ ApplicationServer applicationServer = applicationServers.get(entry);
+ ServiceComponentFrame serviceComponentFrame = applicationServer.getApplicationData();
+ LOGGER.info("Obtained data for service - " +
+ applicationId + " (" + ApplicationId.getApplicationIdForId(applicationId).name() + ")");
+ if (serviceComponentFrame != null) {
+ serviceComponentFrame.setSCID(entry.getServiceComponentId());
+ serviceComponentFrame.setFieldLength(0); // NOTE dummy fieldlength.
+ serviceComponentFrame.setScHeaderCRC(0); // NOTE dummy Service Component Header CRC.
+ serviceComponentFrames.add(serviceComponentFrame);
+ broadcastNeeded = true;
+ }
+ }
+
+ // broadcast the TransportFrame
+ if (broadcastNeeded) {
+ LOGGER.info("Going to broadcast data");
+ broadcast.broadcast(transportFrame);
+ } else {
+ LOGGER.info("Nothing to broadcast");
+ }
+
+ try {
+ sleep(1000 * 5);
+ } catch (InterruptedException e) {
+ // no action.
+ }
+ }
+ }
+
+ @Override
+ public byte registerApplicationServer(byte applicationId, byte contentId, ServiceIdentifier serviceId, ApplicationServer applicationServer) {
+ StringBuilder buf = new StringBuilder();
+ buf.append("registering application Id: ");
+ buf.append(applicationId);
+ buf.append(", applicationServer = ");
+ buf.append(applicationServer.getClass().getName());
+ LOGGER.info(buf.toString());
+
+ byte serviceComponentId = createServiceComponentId();
+ if ((serviceId != null) && serviceId.equals(MY_SID)) {
+ // Only story serviceId's different than the 'Carrier ServiceID'.
+ serviceId = null;
+ }
+ GuideToServiceTable1Entry entry = new GuideToServiceTable1Entry(applicationId, contentId, serviceId, serviceComponentId);
+ applicationServers.put(entry, applicationServer);
+
+ return serviceComponentId;
+ }
+
+ @Override
+ public void unregisterApplicationServer(byte serviceComponentId) {
+ for (GuideToServiceTable1Entry entry: applicationServers.keySet()) {
+ if (entry.getServiceComponentId() == serviceComponentId) {
+ applicationServers.remove(entry);
+ break;
+ }
+ }
+ }
+
+ private ServiceComponentFrame getSniServiceComponentFrame() {
+ ServCompFrameCountedProtected serviceComponentFrame = FACTORY.createServCompFrameCountedProtected();
+
+ List<SniComponent> sniComponents = new BasicEList<SniComponent>();
+
+ /*
+ * Guide to the service table 1 (Fast Tuning)
+ */
+ SniComponentFastTuning sniComponentFastTuning = SNI_FACTORY.createSniComponentFastTuning();
+ sniComponentFastTuning.setId((byte) 0x01);
+ sniComponentFastTuning.setN(0); // NOTE Length not filled in.
+ sniComponentFastTuning.setTableIncrementalVersionNumber(GUIDE_TO_SERVICE_TABLE1_INC_VERSION_NUMBER);
+ sniComponentFastTuning.setCharTab((byte) 0); // NOTE No idea what this is.
+ for (GuideToServiceTable1Entry entry: applicationServers.keySet()) {
+ LineOfTable1 lineOfTable1 = SNI_FACTORY.createLineOfTable1();
+ lineOfTable1.setServiceComponentId(entry.getServiceComponentId());
+ byte selector = (byte) 0;
+ if (entry.getServiceId() != null) {
+ selector |= (byte) 0x01;
+ lineOfTable1.setOriginatorServiceIdentifier(entry.getServiceId());
+ }
+ lineOfTable1.setContentId(entry.getContentId());
+ lineOfTable1.setApplicationId(entry.getApplicationId());
+ lineOfTable1.setSelector(selector);
+
+ sniComponentFastTuning.getLinesOfTable1().add(lineOfTable1);
+ }
+ sniComponents.add(sniComponentFastTuning);
+
+ serviceComponentFrame.setApplicationContent(sniComponents);
+
+ serviceComponentFrame.setSCID(ApplicationId.SNI.getAid());
+ serviceComponentFrame.setFieldLength(0); // NOTE Field Length not filled in.
+ serviceComponentFrame.setScHeaderCRC(0); // NOTE Service component Header CRC not filled in.
+ serviceComponentFrame.setMessageCount(sniComponents.size());
+ serviceComponentFrame.setApplicationContent(sniComponents);
+ serviceComponentFrame.setDataCRC(0); // NOTE Data CRC not filled in.
+
+ LOGGER.info(serviceComponentFrame.toString());
+ return serviceComponentFrame;
+ }
+
+ private byte createServiceComponentId() {
+ return nextServiceComponentId++;
+ }
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/GuideToServiceTable1Entry.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/GuideToServiceTable1Entry.java
new file mode 100755
index 0000000..51f2d8f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwk/src/main/java/org/genivi/trafficinfo/tpeg/serverside/broadcast/fwk/impl/GuideToServiceTable1Entry.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.impl;
+
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+
+public class GuideToServiceTable1Entry {
+ private byte applicationId; // AID
+ private byte contentId; // COID
+ private ServiceIdentifier serviceId; // SID
+ private byte serviceComponentId; // SCID
+
+
+ public GuideToServiceTable1Entry(byte applicationId, byte contentId,
+ ServiceIdentifier serviceId, byte serviceComponentId) {
+ super();
+ this.applicationId = applicationId;
+ this.contentId = contentId;
+ this.serviceId = serviceId;
+ this.serviceComponentId = serviceComponentId;
+ }
+
+ public byte getApplicationId() {
+ return applicationId;
+ }
+
+
+ public byte getContentId() {
+ return contentId;
+ }
+
+
+ public ServiceIdentifier getServiceId() {
+ return serviceId;
+ }
+
+
+ public byte getServiceComponentId() {
+ return serviceComponentId;
+ }
+
+
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.classpath
new file mode 100755
index 0000000..620677c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.project
new file mode 100755
index 0000000..4dc8933
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/.project
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.tpegfwktypes-model</name>
+ <comment>This project contains the model for the classes of the TPEG Framework. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/META-INF/MANIFEST.MF b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..f26aed0
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.genivi.trafficinfo.tpegfwktypes-model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: org.genivi.trafficinfo.tpeg.tpegfwktypes,
+ org.genivi.trafficinfo.tpeg.tpegfwktypes.impl,
+ org.genivi.trafficinfo.tpeg.tpegfwktypes.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/ReadMe.confluence
new file mode 100755
index 0000000..023a203
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/ReadMe.confluence
@@ -0,0 +1,3 @@
+This project defines datatypes related to the TPEG framework.
+
+TpegFwkTypes.ecorediag, in de model folder, provides a good overview of the structure of the data types. \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/build.properties b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/build.properties
new file mode 100755
index 0000000..1a3a48b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore
new file mode 100755
index 0000000..57081de
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecore
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="tpegfwktypes" nsURI="http://org.genivi.trafficinfo.tpegfwktypes"
+ nsPrefix="com.tomtom.ti">
+ <eAnnotations source="GenModel">
+ <details key="documentation" value="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="LocalisedShortString">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="languageCode" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="string" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocationReferencingContainer">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="method" lowerBound="1"
+ upperBound="-1" eType="#//Method" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransportFrameTemplate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metaInformationTODO" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="syncWord" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldLength" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="headerCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="frameType" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransportFrameType0" eSuperTypes="#//TransportFrameTemplate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transportFrameContent"
+ lowerBound="1" eType="#//StreamDirectoryFrame" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransportFrameType1" eSuperTypes="#//TransportFrameTemplate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transportFrameContent"
+ lowerBound="1" eType="#//ServiceFrame" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceComponentFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="SCID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldLength" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="scHeaderCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="servEncID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="serviceFrameContent" lowerBound="1"
+ eType="#//ServCompMultiplex" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SID" lowerBound="1" eType="#//ServiceIdentifier"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StreamDirectoryFrame">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SID" lowerBound="1" upperBound="-1"
+ eType="#//ServiceIdentifier" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfServices" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="headerCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServCompMultiplex">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiplexContent" lowerBound="1"
+ upperBound="-1" eType="#//ServiceComponentFrame" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceIdentifier">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sidA" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sidB" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sidC" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServCompFrameProtected" eSuperTypes="#//ServiceComponentFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="applicationContent" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServCompFrameCountedProtected" eSuperTypes="#//ServiceComponentFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageCount" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="applicationContent" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServCompFramePrioritisedProtected" eSuperTypes="#//ServiceComponentFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="groupPriority" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="applicationContent" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServCompFramePrioritisedCountedProtected"
+ eSuperTypes="#//ServiceComponentFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="groupPriority" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageCount" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="applicationContent" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataCRC" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MMCSwitch">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="versionID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageExpiryTime" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO: Change type to TPEG DateTime"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cancelFlag" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageGenerationTime"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO Change to TPEG DateTime."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO Change to TPEG type Priority"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageManagementContainer" eSuperTypes="#//MMCSwitch"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MMCMasterMessage" eSuperTypes="#//MMCSwitch">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiPartMessageDirectory"
+ lowerBound="1" upperBound="255" eType="#//MultiPartMessageDirectory" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiPartMessageDirectory">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="partID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="partType" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO: change type to TPEG PartType"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MMCMessagePart" eSuperTypes="#//MMCSwitch">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="partID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="updateMode" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TODO: change type to TPEG type UpdateMode"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="masterMessageVersions"
+ upperBound="255" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="TPEGLocationReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DLR1LocationReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="TMCLocationReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="VICSLinkReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="KoreanNodeLinkLocationReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="TETLocationReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GLRLocationReference" eSuperTypes="#//Method"/>
+ <eClassifiers xsi:type="ecore:EClass" name="OLRLocationReference" eSuperTypes="#//Method">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="locationData" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByteArray"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TimeServiceComponentFrame" eSuperTypes="#//ServiceComponentFrame">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="formattedDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ unsettable="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecorediag b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecorediag
new file mode 100755
index 0000000..981d5d2
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.ecorediag
@@ -0,0 +1,891 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_tKSxAfmvEeCM5f47uzbiCQ" type="EcoreTools" name="TpegFwkTypes.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_PWUvYEKUEeG4t-V4B-hwNA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_PWd5UEKUEeG4t-V4B-hwNA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_PWd5UUKUEeG4t-V4B-hwNA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_eqnWcGIdEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TransportFrameTemplate/syncWord"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eqnWcWIdEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i5II0GIeEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TransportFrameTemplate/fieldLength"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i5II0WIeEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uS1zEGIeEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TransportFrameTemplate/headerCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uS1zEWIeEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0E-w0GIeEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TransportFrameTemplate/frameType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0E-w0WIeEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_G5OysWFeEeG9ierRRZXRzg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TransportFrameTemplate/metaInformationTODO"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_G5OysmFeEeG9ierRRZXRzg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PWd5UkKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PWd5U0KUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PWd5VEKUEeG4t-V4B-hwNA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PWd5VUKUEeG4t-V4B-hwNA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PWd5VkKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PWd5V0KUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PWd5WEKUEeG4t-V4B-hwNA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_PWUvYUKUEeG4t-V4B-hwNA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TransportFrameTemplate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PWUvYkKUEeG4t-V4B-hwNA" x="60" y="36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YwVywEKUEeG4t-V4B-hwNA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_YwVyw0KUEeG4t-V4B-hwNA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_YwVyxEKUEeG4t-V4B-hwNA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YwVyxUKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YwVyxkKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YwVyx0KUEeG4t-V4B-hwNA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YwVyyEKUEeG4t-V4B-hwNA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YwVyyUKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YwVyykKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YwVyy0KUEeG4t-V4B-hwNA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_YwVywUKUEeG4t-V4B-hwNA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TransportFrameType0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YwVywkKUEeG4t-V4B-hwNA" x="-24" y="192"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bkwbIEKUEeG4t-V4B-hwNA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_bkwbI0KUEeG4t-V4B-hwNA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_bkwbJEKUEeG4t-V4B-hwNA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bkwbJUKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bkwbJkKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bkwbJ0KUEeG4t-V4B-hwNA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bkwbKEKUEeG4t-V4B-hwNA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bkwbKUKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bkwbKkKUEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bkwbK0KUEeG4t-V4B-hwNA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_bkwbIUKUEeG4t-V4B-hwNA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TransportFrameType1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bkwbIkKUEeG4t-V4B-hwNA" x="156" y="192"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XPj_sEKYEeG4t-V4B-hwNA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_XPj_s0KYEeG4t-V4B-hwNA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_XPj_tEKYEeG4t-V4B-hwNA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_AwqLgGIaEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceComponentFrame/SCID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AwqLgWIaEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xuTzYGIpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceComponentFrame/fieldLength"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xuTzYWIpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2wNnAGIpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceComponentFrame/scHeaderCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2wNnAWIpEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_XPj_tUKYEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XPj_tkKYEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XPj_t0KYEeG4t-V4B-hwNA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XPtwsEKYEeG4t-V4B-hwNA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_XPtwsUKYEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XPtwskKYEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XPtws0KYEeG4t-V4B-hwNA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_XPj_sUKYEeG4t-V4B-hwNA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServiceComponentFrame"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XPj_skKYEeG4t-V4B-hwNA" x="168" y="540"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HioFYEKbEeG4t-V4B-hwNA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_HioFY0KbEeG4t-V4B-hwNA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_HioFZEKbEeG4t-V4B-hwNA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_oW7cEGFfEeG9ierRRZXRzg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceFrame/servEncID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oW7cEWFfEeG9ierRRZXRzg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HioFZUKbEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HioFZkKbEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HioFZ0KbEeG4t-V4B-hwNA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HioFaEKbEeG4t-V4B-hwNA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HioFaUKbEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HioFakKbEeG4t-V4B-hwNA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HioFa0KbEeG4t-V4B-hwNA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HioFYUKbEeG4t-V4B-hwNA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServiceFrame"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HioFYkKbEeG4t-V4B-hwNA" x="192" y="288"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TnMTEGFeEeG9ierRRZXRzg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_TnMTE2FeEeG9ierRRZXRzg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_TnMTFGFeEeG9ierRRZXRzg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="__Zf8kGIfEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//StreamDirectoryFrame/numberOfServices"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__Zf8kWIfEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NoWA4GIgEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//StreamDirectoryFrame/headerCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NoWA4WIgEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_TnMTFWFeEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TnMTFmFeEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TnMTF2FeEeG9ierRRZXRzg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TnVdAGFeEeG9ierRRZXRzg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_TnVdAWFeEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TnVdAmFeEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TnVdA2FeEeG9ierRRZXRzg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_TnMTEWFeEeG9ierRRZXRzg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//StreamDirectoryFrame"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TnMTEmFeEeG9ierRRZXRzg" x="-84" y="288"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_e6U-wGFfEeG9ierRRZXRzg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_e6U-w2FfEeG9ierRRZXRzg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_e6U-xGFfEeG9ierRRZXRzg" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_e6U-xWFfEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e6U-xmFfEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e6U-x2FfEeG9ierRRZXRzg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_e6U-yGFfEeG9ierRRZXRzg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_e6U-yWFfEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e6U-ymFfEeG9ierRRZXRzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e6U-y2FfEeG9ierRRZXRzg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_e6U-wWFfEeG9ierRRZXRzg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServCompMultiplex"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e6U-wmFfEeG9ierRRZXRzg" x="192" y="420"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i-O-MGIREeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_i-O-M2IREeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_i-O-NGIREeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_U_IIQX5bEeGn_Jj80trzEA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//LocalisedShortString/languageCode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U_IIQn5bEeGn_Jj80trzEA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WpA3MH5bEeGn_Jj80trzEA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//LocalisedShortString/string"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WpA3MX5bEeGn_Jj80trzEA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_i-O-NWIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i-O-NmIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i-O-N2IREeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i-YIIGIREeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_i-YIIWIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i-YIImIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i-YII2IREeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_i-O-MWIREeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//LocalisedShortString"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i-O-MmIREeGKh95U6kQmbA" x="-60" y="900"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jpbQQGIREeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_jpbQQ2IREeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_jpbQRGIREeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jpbQRWIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jpbQRmIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jpbQR2IREeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jpbQSGIREeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jpbQSWIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jpbQSmIREeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jpbQS2IREeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_jpbQQWIREeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//LocationReferencingContainer"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jpbQQmIREeGKh95U6kQmbA" x="960" y="660"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eLvtUGIWEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_eLvtU2IWEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_eLvtVGIWEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_OqxdUGIXEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceIdentifier/sidA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OqxdUWIXEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Rv1JwGIXEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceIdentifier/sidB"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rv1JwWIXEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TCpcgGIXEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServiceIdentifier/sidC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TCpcgWIXEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eLvtVWIWEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eLvtVmIWEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eLvtV2IWEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eLvtWGIWEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eLvtWWIWEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eLvtWmIWEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eLvtW2IWEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_eLvtUWIWEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServiceIdentifier"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eLvtUmIWEeGKh95U6kQmbA" x="-12" y="492"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_30ho4GIXEeGKh95U6kQmbA" type="Note" description="Encryption over complete ServCompMultiplex." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_30ho5GIXEeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_30ho5WIXEeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_30ho4WIXEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_30ho4mIXEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_30ho42IXEeGKh95U6kQmbA" x="348" y="384" width="181" height="49"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vPyeEGLPEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_vPyeE2LPEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_vPyeFGLPEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_DmEjYGFfEeG9ierRRZXRzg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFrameProtected/applicationContent"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DmEjYWFfEeG9ierRRZXRzg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yvB-oGIrEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFrameProtected/dataCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yvB-oWIrEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vPyeFWLPEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vPyeFmLPEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vPyeF2LPEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vPyeGGLPEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vPyeGWLPEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vPyeGmLPEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vPyeG2LPEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_vPyeEWLPEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServCompFrameProtected"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vPyeEmLPEeGKh95U6kQmbA" x="-60" y="708"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FNiHwGLQEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_FNiHw2LQEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_FNiHxGLQEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_oz_44GIrEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFrameCountedProtected/messageCount"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oz_44WIrEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_K7YbYGLQEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFrameCountedProtected/applicationContent"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K7YbYWLQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_R8-O0GLQEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFrameCountedProtected/dataCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8-O0WLQEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_FNiHxWLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FNiHxmLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FNiHx2LQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FNiHyGLQEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_FNiHyWLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FNiHymLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FNiHy2LQEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FNiHwWLQEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServCompFrameCountedProtected"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FNiHwmLQEeGKh95U6kQmbA" x="144" y="792"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oRv4cGLQEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_oRv4c2LQEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_oRv4dGLQEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_jwwBcGIrEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected/groupPriority"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jwwBcWIrEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sBsU8GLQEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected/applicationContent"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sBsU8WLQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w9A_cGLQEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected/dataCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w9A_cWLQEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oRv4dWLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oRv4dmLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oRv4d2LQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_oRv4eGLQEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_oRv4eWLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oRv4emLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oRv4e2LQEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_oRv4cWLQEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oRv4cmLQEeGKh95U6kQmbA" x="384" y="792"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3vCs4GLQEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_3vCs42LQEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_3vCs5GLQEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_6mTN4GLQEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/groupPriority"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6mTN4WLQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-G9RMGLQEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/messageCount"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-G9RMWLQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BH22YGLREeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/applicationContent"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BH22YWLREeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EEm7YGLREeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/dataCRC"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EEm7YWLREeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_3vCs5WLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3vCs5mLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3vCs52LQEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3vCs6GLQEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_3vCs6WLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3vCs6mLQEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3vCs62LQEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3vCs4WLQEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3vCs4mLQEeGKh95U6kQmbA" x="432" y="648"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Mu4pQGLkEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Mu4pQ2LkEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Mu4pRGLkEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_xTmcAGLnEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCSwitch/messageID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xTmcAWLnEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5VWr8GLnEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCSwitch/versionID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5VWr8WLnEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-twUAGLnEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCSwitch/messageExpiryTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-twUAWLnEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_K_mgIGLoEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCSwitch/cancelFlag"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_K_mgIWLoEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Rt3u8GLoEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCSwitch/messageGenerationTime"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rt3u8WLoEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_w-TsAGLoEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCSwitch/priority"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w-TsAWLoEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Mu4pRWLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mu4pRmLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mu4pR2LkEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Mu4pSGLkEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Mu4pSWLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mu4pSmLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mu4pS2LkEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Mu4pQWLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//MMCSwitch"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mu4pQmLkEeGKh95U6kQmbA" x="528" y="72"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QiuHQGLkEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_QiuHQ2LkEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_QiuHRGLkEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QiuHRWLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QiuHRmLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QiuHR2LkEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QiuHSGLkEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QiuHSWLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QiuHSmLkEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QiuHS2LkEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QiuHQWLkEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//MessageManagementContainer"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QiuHQmLkEeGKh95U6kQmbA" x="384" y="252"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lo4hUGLnEeGKh95U6kQmbA" type="Note" description="I hope this is the same as MMCTemplate" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_lo4hVGLnEeGKh95U6kQmbA" type="DiagramName">
+ <element xsi:nil="true"/>
+ </children>
+ <children xmi:type="notation:BasicDecorationNode" xmi:id="_lo4hVWLnEeGKh95U6kQmbA" type="Description">
+ <element xsi:nil="true"/>
+ </children>
+ <styles xmi:type="notation:TextStyle" xmi:id="_lo4hUWLnEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_lo4hUmLnEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lo4hU2LnEeGKh95U6kQmbA" x="360" y="60" width="125" height="59"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Cc97QGLpEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Cc97Q2LpEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Cc97RGLpEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Cc97RWLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cc97RmLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cc97R2LpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Cc97SGLpEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Cc97SWLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cc97SmLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cc97S2LpEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Cc97QWLpEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//MMCMasterMessage"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cc97QmLpEeGKh95U6kQmbA" x="600" y="336"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NQ9CQGLpEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_NQ9CQ2LpEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_NQ9CRGLpEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_XvUekGLpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MultiPartMessageDirectory/partID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XvUekWLpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bXW8QGLpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MultiPartMessageDirectory/partType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bXW8QWLpEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NQ9CRWLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NQ9CRmLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NQ9CR2LpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NQ9CSGLpEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NQ9CSWLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NQ9CSmLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NQ9CS2LpEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NQ9CQWLpEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//MultiPartMessageDirectory"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NQ9CQmLpEeGKh95U6kQmbA" x="588" y="468"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lhnJwGLpEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_lhnJw2LpEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_lhnJxGLpEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_n-v6kGLpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCMessagePart/partID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n-v6kWLpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rOXRMGLpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCMessagePart/updateMode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rOXRMWLpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ypm6wGLpEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//MMCMessagePart/masterMessageVersions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ypm6wWLpEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lhnJxWLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lhnJxmLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lhnJx2LpEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lhnJyGLpEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_lhnJyWLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lhnJymLpEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lhnJy2LpEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_lhnJwWLpEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//MMCMessagePart"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lhnJwmLpEeGKh95U6kQmbA" x="772" y="256"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Rr8qEGLtEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Rr8qE2LtEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Rr8qFGLtEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Rr8qFWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Rr8qFmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Rr8qF2LtEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Rr8qGGLtEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Rr8qGWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Rr8qGmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Rr8qG2LtEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Rr8qEWLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//Method"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rr8qEmLtEeGKh95U6kQmbA" x="1020" y="768"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aR2I4GLtEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_aR2I42LtEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_aR2I5GLtEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aR2I5WLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aR2I5mLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aR2I52LtEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aR2I6GLtEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aR2I6WLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aR2I6mLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aR2I62LtEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aR2I4WLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TPEGLocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aR2I4mLtEeGKh95U6kQmbA" x="696" y="828"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ewCygGLtEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ewCyg2LtEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ewCyhGLtEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ewCyhWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ewCyhmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ewCyh2LtEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ewCyiGLtEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ewCyiWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ewCyimLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ewCyi2LtEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ewCygWLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//DLR1LocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ewCygmLtEeGKh95U6kQmbA" x="732" y="899"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hsWyoGLtEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_hsWyo2LtEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_hsWypGLtEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hsWypWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hsWypmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hsWyp2LtEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hsWyqGLtEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hsWyqWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hsWyqmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hsWyq2LtEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hsWyoWLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TMCLocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hsWyomLtEeGKh95U6kQmbA" x="792" y="948"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mbYtkGLtEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_mbYtk2LtEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_mbYtlGLtEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mbYtlWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mbYtlmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mbYtl2LtEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mbYtmGLtEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mbYtmWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mbYtmmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mbYtm2LtEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mbYtkWLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//VICSLinkReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mbYtkmLtEeGKh95U6kQmbA" x="960" y="948"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vLaYwGLtEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_vLaYw2LtEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_vLaYxGLtEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vLaYxWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vLaYxmLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vLaYx2LtEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vLaYyGLtEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vLaYyWLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vLaYymLtEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vLaYy2LtEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_vLaYwWLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//KoreanNodeLinkLocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vLaYwmLtEeGKh95U6kQmbA" x="1128" y="948"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EOLA4GLuEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_EOLA42LuEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_EOLA5GLuEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_EOLA5WLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EOLA5mLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EOLA52LuEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EOLA6GLuEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_EOLA6WLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EOLA6mLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EOLA62LuEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_EOLA4WLuEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TETLocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EOLA4mLuEeGKh95U6kQmbA" x="1212" y="900"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JMVkAGLuEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_JMVkA2LuEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_JMVkBGLuEeGKh95U6kQmbA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JMVkBWLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JMVkBmLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JMVkB2LuEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JMVkCGLuEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JMVkCWLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JMVkCmLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JMVkC2LuEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JMVkAWLuEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//GLRLocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JMVkAmLuEeGKh95U6kQmbA" x="1269" y="832"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NvPugGLuEeGKh95U6kQmbA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_NvPug2LuEeGKh95U6kQmbA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_NvPuhGLuEeGKh95U6kQmbA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_skN3kGLuEeGKh95U6kQmbA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//OLRLocationReference/locationData"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_skN3kWLuEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NvPuhWLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NvPuhmLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NvPuh2LuEeGKh95U6kQmbA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NvPuiGLuEeGKh95U6kQmbA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NvPuiWLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NvPuimLuEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NvPui2LuEeGKh95U6kQmbA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NvPugWLuEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//OLRLocationReference"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NvPugmLuEeGKh95U6kQmbA" x="1044" y="1008"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_f5fdkdyhEeGE2PLoeiokxg" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_f5ongNyhEeGE2PLoeiokxg" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_f5ongdyhEeGE2PLoeiokxg" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_jfyO0NyhEeGE2PLoeiokxg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TimeServiceComponentFrame/date"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jfyO0dyhEeGE2PLoeiokxg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ppzhENyhEeGE2PLoeiokxg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="TpegFwkTypes.ecore#//TimeServiceComponentFrame/formattedDate"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ppzhEdyhEeGE2PLoeiokxg"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_f5ongtyhEeGE2PLoeiokxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f5ong9yhEeGE2PLoeiokxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f5onhNyhEeGE2PLoeiokxg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_f5onhdyhEeGE2PLoeiokxg" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_f5onhtyhEeGE2PLoeiokxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f5onh9yhEeGE2PLoeiokxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f5oniNyhEeGE2PLoeiokxg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_f5fdktyhEeGE2PLoeiokxg" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="TpegFwkTypes.ecore#//TimeServiceComponentFrame"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f5fdk9yhEeGE2PLoeiokxg" x="180" y="912"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_tKSxAvmvEeCM5f47uzbiCQ"/>
+ <element xmi:type="ecore:EPackage" href="TpegFwkTypes.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_fqEDoEKUEeG4t-V4B-hwNA" type="3003" source="_YwVywEKUEeG4t-V4B-hwNA" target="_PWUvYEKUEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_fqEDoUKUEeG4t-V4B-hwNA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_fqEDokKUEeG4t-V4B-hwNA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fqEDo0KUEeG4t-V4B-hwNA" points="[2, -20, -55, 136]$[-26, -159, -83, -3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_gHHzEEKUEeG4t-V4B-hwNA" type="3003" source="_bkwbIEKUEeG4t-V4B-hwNA" target="_PWUvYEKUEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_gHHzEUKUEeG4t-V4B-hwNA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gHHzEkKUEeG4t-V4B-hwNA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gHHzE0KUEeG4t-V4B-hwNA" points="[-7, -20, 43, 131]$[-48, -136, 2, 15]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gHHzFEKUEeG4t-V4B-hwNA" id="(0.7976190476190477,0.6428571428571429)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_VM9HYEKbEeG4t-V4B-hwNA" type="3002" source="_bkwbIEKUEeG4t-V4B-hwNA" target="_HioFYEKbEeG4t-V4B-hwNA">
+ <children xmi:type="notation:Node" xmi:id="_VM9HZEKbEeG4t-V4B-hwNA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VM9HZUKbEeG4t-V4B-hwNA" x="-26" y="-8"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VM9HZkKbEeG4t-V4B-hwNA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VM9HZ0KbEeG4t-V4B-hwNA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_VM9HYUKbEeG4t-V4B-hwNA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VM9HYkKbEeG4t-V4B-hwNA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//TransportFrameType1/transportFrameContent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VM9HY0KbEeG4t-V4B-hwNA" points="[-13, 20, 43, -79]$[-63, 76, -7, -23]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ZDY2AGFeEeG9ierRRZXRzg" type="3002" source="_YwVywEKUEeG4t-V4B-hwNA" target="_TnMTEGFeEeG9ierRRZXRzg">
+ <children xmi:type="notation:Node" xmi:id="_ZDY2BGFeEeG9ierRRZXRzg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZDY2BWFeEeG9ierRRZXRzg" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZDY2BmFeEeG9ierRRZXRzg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZDY2B2FeEeG9ierRRZXRzg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZDY2AWFeEeG9ierRRZXRzg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZDY2AmFeEeG9ierRRZXRzg" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//TransportFrameType0/transportFrameContent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZDY2A2FeEeG9ierRRZXRzg" points="[-7, 20, -7, -52]$[-7, 52, -7, -20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_svL1wGFfEeG9ierRRZXRzg" type="3002" source="_HioFYEKbEeG4t-V4B-hwNA" target="_e6U-wGFfEeG9ierRRZXRzg">
+ <children xmi:type="notation:Node" xmi:id="_svL1xGFfEeG9ierRRZXRzg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_svL1xWFfEeG9ierRRZXRzg" x="-22" y="-1"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_svL1xmFfEeG9ierRRZXRzg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_svL1x2FfEeG9ierRRZXRzg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_svL1wWFfEeG9ierRRZXRzg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_svL1wmFfEeG9ierRRZXRzg" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//ServiceFrame/serviceFrameContent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_svL1w2FfEeG9ierRRZXRzg" points="[-23, 32, 58, -89]$[-145, 126, -64, 5]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_0FQEYGFfEeG9ierRRZXRzg" type="3002" source="_e6U-wGFfEeG9ierRRZXRzg" target="_XPj_sEKYEeG4t-V4B-hwNA">
+ <children xmi:type="notation:Node" xmi:id="_0FQEZGFfEeG9ierRRZXRzg" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FQEZWFfEeG9ierRRZXRzg" x="-28" y="-4"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_0FQEZmFfEeG9ierRRZXRzg" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FQEZ2FfEeG9ierRRZXRzg" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_0FQEYWFfEeG9ierRRZXRzg" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0FQEYmFfEeG9ierRRZXRzg" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//ServCompMultiplex/multiplexContent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0FQEY2FfEeG9ierRRZXRzg" points="[-2, 20, -6, -119]$[-88, 132, -92, -7]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_non3cGIWEeGKh95U6kQmbA" type="3002" source="_HioFYEKbEeG4t-V4B-hwNA" target="_eLvtUGIWEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_non3dGIWEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_non3dWIWEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_non3dmIWEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_non3d2IWEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_non3cWIWEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_non3cmIWEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//ServiceFrame/SID"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_non3c2IWEeGKh95U6kQmbA" points="[29, 24, -210, -165]$[240, 209, 1, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DvQVgGIYEeGKh95U6kQmbA" type="NoteAttachment" source="_30ho4GIXEeGKh95U6kQmbA" target="_HioFYEKbEeG4t-V4B-hwNA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_DvQVgWIYEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_DvQVgmIYEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DvQVg2IYEeGKh95U6kQmbA" points="[54, -40, -169, 128]$[224, -149, 1, 19]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DvQVhGIYEeGKh95U6kQmbA" id="(0.14705882352941177,0.6122448979591837)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EHtRwGIYEeGKh95U6kQmbA" type="NoteAttachment" source="_30ho4GIXEeGKh95U6kQmbA" target="_e6U-wGFfEeG9ierRRZXRzg" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_EHtRwWIYEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_EHtRwmIYEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EHtRw2IYEeGKh95U6kQmbA" points="[103, -17, -134, 27]$[302, -42, 65, 2]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_yB5GcGIYEeGKh95U6kQmbA" type="3002" source="_TnMTEGFeEeG9ierRRZXRzg" target="_eLvtUGIWEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_yB5GdGIYEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yB5GdWIYEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yB5GdmIYEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yB5Gd2IYEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_yB5GcWIYEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_yB5GcmIYEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//StreamDirectoryFrame/SID"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yB5Gc2IYEeGKh95U6kQmbA" points="[7, 32, -47, -180]$[48, 252, -6, 40]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_OOpGcGLREeGKh95U6kQmbA" type="3003" source="_vPyeEGLPEeGKh95U6kQmbA" target="_XPj_sEKYEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_OOpGcWLREeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OOpGcmLREeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OOpGc2LREeGKh95U6kQmbA" points="[43, -31, -158, 129]$[203, -120, 2, 40]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_O2TjYGLREeGKh95U6kQmbA" type="3003" source="_FNiHwGLQEeGKh95U6kQmbA" target="_XPj_sEKYEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_O2TjYWLREeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O2TjYmLREeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O2TjY2LREeGKh95U6kQmbA" points="[-2, -39, 9, 189]$[-10, -212, 1, 16]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O2TjZGLREeGKh95U6kQmbA" id="(0.4484848484848485,0.8024691358024691)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_PP2r0GLREeGKh95U6kQmbA" type="3003" source="_oRv4cGLQEeGKh95U6kQmbA" target="_XPj_sEKYEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_PP2r0WLREeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PP2r0mLREeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PP2r02LREeGKh95U6kQmbA" points="[-39, -39, 209, 213]$[-210, -212, 38, 40]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_PyKusGLREeGKh95U6kQmbA" type="3003" source="_3vCs4GLQEeGKh95U6kQmbA" target="_XPj_sEKYEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_PyKusWLREeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PyKusmLREeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PyKus2LREeGKh95U6kQmbA" points="[-58, -33, 130, 73]$[-186, -87, 2, 19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PyKutGLREeGKh95U6kQmbA" id="(0.213768115942029,0.6185567010309279)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PyKutWLREeGKh95U6kQmbA" id="(0.8242424242424242,0.7654320987654321)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_USBqkGLkEeGKh95U6kQmbA" type="3003" source="_QiuHQGLkEeGKh95U6kQmbA" target="_Mu4pQGLkEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_USBqkWLkEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_USBqkmLkEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_USBqk2LkEeGKh95U6kQmbA" points="[-1, -20, 0, 136]$[-1, -176, 0, -20]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qUulYGLnEeGKh95U6kQmbA" type="NoteAttachment" source="_Mu4pQGLkEeGKh95U6kQmbA" target="_lo4hUGLnEeGKh95U6kQmbA" lineWidth="1">
+ <styles xmi:type="notation:ArrowStyle" xmi:id="_qUulYWLnEeGKh95U6kQmbA"/>
+ <styles xmi:type="notation:LineTypeStyle" xmi:id="_qUulYmLnEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qUulY2LnEeGKh95U6kQmbA" points="[-23, -4, 106, -4]$[-67, -4, 62, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qUulZGLnEeGKh95U6kQmbA" id="(0.23529411764705882,0.42857142857142855)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_RMNW4GLpEeGKh95U6kQmbA" type="3002" source="_Cc97QGLpEeGKh95U6kQmbA" target="_NQ9CQGLpEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_RMNW5GLpEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RMNW5WLpEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RMNW5mLpEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RMNW52LpEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_RMNW4WLpEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RMNW4mLpEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//MMCMasterMessage/multiPartMessageDirectory"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RMNW42LpEeGKh95U6kQmbA" points="[29, 20, -157, -80]$[101, 100, -85, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ib1EkGLpEeGKh95U6kQmbA" type="3003" source="_Cc97QGLpEeGKh95U6kQmbA" target="_Mu4pQGLkEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ib1EkWLpEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ib1EkmLpEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ib1Ek2LpEeGKh95U6kQmbA" points="[-3, -20, 20, 167]$[-21, -157, 2, 30]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ib1ElGLpEeGKh95U6kQmbA" id="(0.54337899543379,0.7674418604651163)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_6e3m0GLpEeGKh95U6kQmbA" type="3003" source="_lhnJwGLpEeGKh95U6kQmbA" target="_Mu4pQGLkEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_6e3m0WLpEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6e3m0mLpEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6e3m02LpEeGKh95U6kQmbA" points="[-61, -39, 177, 121]$[-158, -96, 80, 64]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_UR6mwGLtEeGKh95U6kQmbA" type="3002" source="_jpbQQGIREeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <children xmi:type="notation:Node" xmi:id="_UR6mxGLtEeGKh95U6kQmbA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UR6mxWLtEeGKh95U6kQmbA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_UR6mxmLtEeGKh95U6kQmbA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UR6mx2LtEeGKh95U6kQmbA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_UR6mwWLtEeGKh95U6kQmbA" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UR6mwmLtEeGKh95U6kQmbA" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="TpegFwkTypes.ecore#//LocationReferencingContainer/method"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UR6mw2LtEeGKh95U6kQmbA" points="[4, 20, -12, -88]$[23, 88, 7, -20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_c7ivAGLtEeGKh95U6kQmbA" type="3003" source="_aR2I4GLtEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_c7ivAWLtEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_c7ivAmLtEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c7ivA2LtEeGKh95U6kQmbA" points="[77, -18, -196, 42]$[266, -40, -7, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_gNdLsGLtEeGKh95U6kQmbA" type="3003" source="_ewCygGLtEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_gNdLsWLtEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gNdLsmLtEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gNdLs2LtEeGKh95U6kQmbA" points="[57, -20, -182, 111]$[57, -55, -182, 76]$[194, -55, -45, 76]$[194, -111, -45, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_leAfUGLtEeGKh95U6kQmbA" type="3003" source="_hsWyoGLtEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_leAfUWLtEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_leAfUmLtEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_leAfU2LtEeGKh95U6kQmbA" points="[20, -20, -159, 160]$[176, -160, -3, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_uAe2sGLtEeGKh95U6kQmbA" type="3003" source="_mbYtkGLtEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_uAe2sWLtEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uAe2smLtEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uAe2s2LtEeGKh95U6kQmbA" points="[3, -20, -20, 160]$[30, -200, 7, -20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_73b_cGLtEeGKh95U6kQmbA" type="3003" source="_vLaYwGLtEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_73b_cWLtEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_73b_cmLtEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_73b_c2LtEeGKh95U6kQmbA" points="[-95, -20, 70, 160]$[-95, -80, 70, 100]$[-144, -80, 21, 100]$[-144, -160, 21, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_IHOWEGLuEeGKh95U6kQmbA" type="3003" source="_EOLA4GLuEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_IHOWEWLuEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IHOWEmLuEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IHOWE2LuEeGKh95U6kQmbA" points="[-25, -20, 190, 112]$[-25, -44, 190, 88]$[-176, -44, 39, 88]$[-176, -112, 39, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_LkREsGLuEeGKh95U6kQmbA" type="3003" source="_JMVkAGLuEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_LkREsWLuEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LkREsmLuEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LkREs2LuEeGKh95U6kQmbA" points="[-73, -18, 168, 41]$[-239, -44, 2, 15]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LkREtGLuEeGKh95U6kQmbA" id="(0.8137254901960784,0.6428571428571429)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_UuZR8GLuEeGKh95U6kQmbA" type="3003" source="_NvPugGLuEeGKh95U6kQmbA" target="_Rr8qEGLtEeGKh95U6kQmbA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_UuZR8WLuEeGKh95U6kQmbA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UuZR8mLuEeGKh95U6kQmbA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UuZR82LuEeGKh95U6kQmbA" points="[-1, -20, 22, 220]$[-14, -220, 9, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_tq6mENyhEeGE2PLoeiokxg" type="3003" source="_f5fdkdyhEeGE2PLoeiokxg" target="_XPj_sEKYEeG4t-V4B-hwNA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_tq6mEdyhEeGE2PLoeiokxg" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tq6mEtyhEeGE2PLoeiokxg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tq6mE9yhEeGE2PLoeiokxg" points="[1, -31, 28, 333]$[55, -358, 82, 6]"/>
+ </edges>
+</notation:Diagram>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.genmodel b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.genmodel
new file mode 100755
index 0000000..224c475
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/model/TpegFwkTypes.genmodel
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (C) 2013 TomTom International B.V.&#xD;&#xA;&#xD;&#xA;This Source Code Form is subject to the terms of the Mozilla Public&#xD;&#xA;License, v. 2.0. If a copy of the MPL was not distributed with this&#xD;&#xA;file, You can obtain one at http://mozilla.org/MPL/2.0/."
+ modelDirectory="/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java" modelPluginID="org.genivi.trafficinfo.tpegfwktypes-model"
+ modelName="TpegFwkTypes" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
+ copyrightFields="false">
+ <foreignModel>TpegFwkTypes.ecore</foreignModel>
+ <genPackages prefix="Tpegfwktypes" basePackage="org.genivi.trafficinfo.tpeg" disposableProviderFactory="true"
+ ecorePackage="TpegFwkTypes.ecore#/">
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//LocalisedShortString">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//LocalisedShortString/languageCode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//LocalisedShortString/string"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//LocationReferencingContainer">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//LocationReferencingContainer/method"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TransportFrameTemplate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TransportFrameTemplate/metaInformationTODO"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TransportFrameTemplate/syncWord"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TransportFrameTemplate/fieldLength"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TransportFrameTemplate/headerCRC"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TransportFrameTemplate/frameType"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TransportFrameType0">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//TransportFrameType0/transportFrameContent"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TransportFrameType1">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//TransportFrameType1/transportFrameContent"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServiceComponentFrame">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceComponentFrame/SCID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceComponentFrame/fieldLength"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceComponentFrame/scHeaderCRC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServiceFrame">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceFrame/servEncID"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//ServiceFrame/serviceFrameContent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//ServiceFrame/SID"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//StreamDirectoryFrame">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//StreamDirectoryFrame/SID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//StreamDirectoryFrame/numberOfServices"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//StreamDirectoryFrame/headerCRC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServCompMultiplex">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//ServCompMultiplex/multiplexContent"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServiceIdentifier">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceIdentifier/sidA"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceIdentifier/sidB"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServiceIdentifier/sidC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServCompFrameProtected">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFrameProtected/applicationContent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFrameProtected/dataCRC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServCompFrameCountedProtected">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFrameCountedProtected/messageCount"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFrameCountedProtected/applicationContent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFrameCountedProtected/dataCRC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected/groupPriority"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected/applicationContent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedProtected/dataCRC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/groupPriority"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/messageCount"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/applicationContent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//ServCompFramePrioritisedCountedProtected/dataCRC"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//MMCSwitch">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCSwitch/messageID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCSwitch/versionID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCSwitch/messageExpiryTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCSwitch/cancelFlag"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCSwitch/messageGenerationTime"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCSwitch/priority"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//MessageManagementContainer"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//MMCMasterMessage">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TpegFwkTypes.ecore#//MMCMasterMessage/multiPartMessageDirectory"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//MultiPartMessageDirectory">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MultiPartMessageDirectory/partID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MultiPartMessageDirectory/partType"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//MMCMessagePart">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCMessagePart/partID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCMessagePart/updateMode"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//MMCMessagePart/masterMessageVersions"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//Method"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TPEGLocationReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//DLR1LocationReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TMCLocationReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//VICSLinkReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//KoreanNodeLinkLocationReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TETLocationReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//GLRLocationReference"/>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//OLRLocationReference">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//OLRLocationReference/locationData"/>
+ </genClasses>
+ <genClasses ecoreClass="TpegFwkTypes.ecore#//TimeServiceComponentFrame">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TimeServiceComponentFrame/date"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TpegFwkTypes.ecore#//TimeServiceComponentFrame/formattedDate"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.properties b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.properties
new file mode 100755
index 0000000..2418089
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = TpegFwkTypes Model
+providerName = www.example.org
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.xml
new file mode 100755
index 0000000..b73a28b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated TpegFwkTypes -->
+ <package
+ uri="http://org.genivi.trafficinfo.tpegfwktypes"
+ class="org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage"
+ genModel="model/TpegFwkTypes.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/pom.xml
new file mode 100755
index 0000000..5c72eb7
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/pom.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>TPEG Framework Types model</name>
+ <description>This project contains the model for the classes of the TPEG Framework.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/DLR1LocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/DLR1LocationReference.java
new file mode 100755
index 0000000..33ac808
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/DLR1LocationReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DLR1 Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getDLR1LocationReference()
+ * @model
+ * @generated
+ */
+public interface DLR1LocationReference extends Method {
+} // DLR1LocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/GLRLocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/GLRLocationReference.java
new file mode 100755
index 0000000..65874fb
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/GLRLocationReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>GLR Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getGLRLocationReference()
+ * @model
+ * @generated
+ */
+public interface GLRLocationReference extends Method {
+} // GLRLocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/KoreanNodeLinkLocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/KoreanNodeLinkLocationReference.java
new file mode 100755
index 0000000..a43b607
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/KoreanNodeLinkLocationReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Korean Node Link Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getKoreanNodeLinkLocationReference()
+ * @model
+ * @generated
+ */
+public interface KoreanNodeLinkLocationReference extends Method {
+} // KoreanNodeLinkLocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocalisedShortString.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocalisedShortString.java
new file mode 100755
index 0000000..c360dca
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocalisedShortString.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Localised Short String</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getLanguageCode <em>Language Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getString <em>String</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getLocalisedShortString()
+ * @model
+ * @generated
+ */
+public interface LocalisedShortString extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Language Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Language Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Language Code</em>' attribute.
+ * @see #isSetLanguageCode()
+ * @see #unsetLanguageCode()
+ * @see #setLanguageCode(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getLocalisedShortString_LanguageCode()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ int getLanguageCode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getLanguageCode <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Language Code</em>' attribute.
+ * @see #isSetLanguageCode()
+ * @see #unsetLanguageCode()
+ * @see #getLanguageCode()
+ * @generated
+ */
+ void setLanguageCode(int value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getLanguageCode <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLanguageCode()
+ * @see #getLanguageCode()
+ * @see #setLanguageCode(int)
+ * @generated
+ */
+ void unsetLanguageCode();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getLanguageCode <em>Language Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Language Code</em>' attribute is set.
+ * @see #unsetLanguageCode()
+ * @see #getLanguageCode()
+ * @see #setLanguageCode(int)
+ * @generated
+ */
+ boolean isSetLanguageCode();
+
+ /**
+ * Returns the value of the '<em><b>String</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>String</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>String</em>' attribute.
+ * @see #isSetString()
+ * @see #unsetString()
+ * @see #setString(String)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getLocalisedShortString_String()
+ * @model unsettable="true" required="true"
+ * @generated
+ */
+ String getString();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getString <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>String</em>' attribute.
+ * @see #isSetString()
+ * @see #unsetString()
+ * @see #getString()
+ * @generated
+ */
+ void setString(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getString <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetString()
+ * @see #getString()
+ * @see #setString(String)
+ * @generated
+ */
+ void unsetString();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getString <em>String</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>String</em>' attribute is set.
+ * @see #unsetString()
+ * @see #getString()
+ * @see #setString(String)
+ * @generated
+ */
+ boolean isSetString();
+} // LocalisedShortString
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocationReferencingContainer.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocationReferencingContainer.java
new file mode 100755
index 0000000..8246c78
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/LocationReferencingContainer.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Location Referencing Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer#getMethod <em>Method</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getLocationReferencingContainer()
+ * @model
+ * @generated
+ */
+public interface LocationReferencingContainer extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Method</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tpegfwktypes.Method}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Method</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Method</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getLocationReferencingContainer_Method()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<Method> getMethod();
+} // LocationReferencingContainer
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMasterMessage.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMasterMessage.java
new file mode 100755
index 0000000..429143b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMasterMessage.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>MMC Master Message</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage#getMultiPartMessageDirectory <em>Multi Part Message Directory</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCMasterMessage()
+ * @model
+ * @generated
+ */
+public interface MMCMasterMessage extends MMCSwitch {
+ /**
+ * Returns the value of the '<em><b>Multi Part Message Directory</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multi Part Message Directory</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multi Part Message Directory</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCMasterMessage_MultiPartMessageDirectory()
+ * @model containment="true" required="true" upper="255"
+ * @generated
+ */
+ EList<MultiPartMessageDirectory> getMultiPartMessageDirectory();
+
+} // MMCMasterMessage
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMessagePart.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMessagePart.java
new file mode 100755
index 0000000..6aa3eb3
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCMessagePart.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>MMC Message Part</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getPartID <em>Part ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getUpdateMode <em>Update Mode</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getMasterMessageVersions <em>Master Message Versions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCMessagePart()
+ * @model
+ * @generated
+ */
+public interface MMCMessagePart extends MMCSwitch {
+ /**
+ * Returns the value of the '<em><b>Part ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Part ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Part ID</em>' attribute.
+ * @see #setPartID(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCMessagePart_PartID()
+ * @model required="true"
+ * @generated
+ */
+ int getPartID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getPartID <em>Part ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Part ID</em>' attribute.
+ * @see #getPartID()
+ * @generated
+ */
+ void setPartID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Update Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO: change type to TPEG type UpdateMode
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Update Mode</em>' attribute.
+ * @see #setUpdateMode(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCMessagePart_UpdateMode()
+ * @model required="true"
+ * @generated
+ */
+ int getUpdateMode();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getUpdateMode <em>Update Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Update Mode</em>' attribute.
+ * @see #getUpdateMode()
+ * @generated
+ */
+ void setUpdateMode(int value);
+
+ /**
+ * Returns the value of the '<em><b>Master Message Versions</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Master Message Versions</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Master Message Versions</em>' attribute list.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCMessagePart_MasterMessageVersions()
+ * @model upper="255"
+ * @generated
+ */
+ EList<Integer> getMasterMessageVersions();
+
+} // MMCMessagePart
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCSwitch.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCSwitch.java
new file mode 100755
index 0000000..fca09c6
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MMCSwitch.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import java.util.Date;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>MMC Switch</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageID <em>Message ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getVersionID <em>Version ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageExpiryTime <em>Message Expiry Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#isCancelFlag <em>Cancel Flag</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageGenerationTime <em>Message Generation Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getPriority <em>Priority</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch()
+ * @model
+ * @generated
+ */
+public interface MMCSwitch extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Message ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Message ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Message ID</em>' attribute.
+ * @see #setMessageID(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch_MessageID()
+ * @model required="true"
+ * @generated
+ */
+ int getMessageID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageID <em>Message ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Message ID</em>' attribute.
+ * @see #getMessageID()
+ * @generated
+ */
+ void setMessageID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version ID</em>' attribute.
+ * @see #setVersionID(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch_VersionID()
+ * @model required="true"
+ * @generated
+ */
+ int getVersionID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getVersionID <em>Version ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version ID</em>' attribute.
+ * @see #getVersionID()
+ * @generated
+ */
+ void setVersionID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Message Expiry Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO: Change type to TPEG DateTime
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Message Expiry Time</em>' attribute.
+ * @see #setMessageExpiryTime(Date)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch_MessageExpiryTime()
+ * @model required="true"
+ * @generated
+ */
+ Date getMessageExpiryTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageExpiryTime <em>Message Expiry Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Message Expiry Time</em>' attribute.
+ * @see #getMessageExpiryTime()
+ * @generated
+ */
+ void setMessageExpiryTime(Date value);
+
+ /**
+ * Returns the value of the '<em><b>Cancel Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cancel Flag</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cancel Flag</em>' attribute.
+ * @see #setCancelFlag(boolean)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch_CancelFlag()
+ * @model required="true"
+ * @generated
+ */
+ boolean isCancelFlag();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#isCancelFlag <em>Cancel Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cancel Flag</em>' attribute.
+ * @see #isCancelFlag()
+ * @generated
+ */
+ void setCancelFlag(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Message Generation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO Change to TPEG DateTime.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Message Generation Time</em>' attribute.
+ * @see #setMessageGenerationTime(Date)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch_MessageGenerationTime()
+ * @model
+ * @generated
+ */
+ Date getMessageGenerationTime();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageGenerationTime <em>Message Generation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Message Generation Time</em>' attribute.
+ * @see #getMessageGenerationTime()
+ * @generated
+ */
+ void setMessageGenerationTime(Date value);
+
+ /**
+ * Returns the value of the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO Change to TPEG type Priority
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Priority</em>' attribute.
+ * @see #setPriority(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMMCSwitch_Priority()
+ * @model
+ * @generated
+ */
+ int getPriority();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getPriority <em>Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Priority</em>' attribute.
+ * @see #getPriority()
+ * @generated
+ */
+ void setPriority(int value);
+} // MMCSwitch
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MessageManagementContainer.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MessageManagementContainer.java
new file mode 100755
index 0000000..067dd1b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MessageManagementContainer.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Message Management Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMessageManagementContainer()
+ * @model
+ * @generated
+ */
+public interface MessageManagementContainer extends MMCSwitch {
+} // MessageManagementContainer
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/Method.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/Method.java
new file mode 100755
index 0000000..c624497
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/Method.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMethod()
+ * @model
+ * @generated
+ */
+public interface Method extends EObject {
+} // Method
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MultiPartMessageDirectory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MultiPartMessageDirectory.java
new file mode 100755
index 0000000..6fe197d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/MultiPartMessageDirectory.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Part Message Directory</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartID <em>Part ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartType <em>Part Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMultiPartMessageDirectory()
+ * @model
+ * @generated
+ */
+public interface MultiPartMessageDirectory extends EObject {
+ /**
+ * Returns the value of the '<em><b>Part ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Part ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Part ID</em>' attribute.
+ * @see #setPartID(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMultiPartMessageDirectory_PartID()
+ * @model required="true"
+ * @generated
+ */
+ int getPartID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartID <em>Part ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Part ID</em>' attribute.
+ * @see #getPartID()
+ * @generated
+ */
+ void setPartID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Part Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * TODO: change type to TPEG PartType
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Part Type</em>' attribute.
+ * @see #setPartType(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getMultiPartMessageDirectory_PartType()
+ * @model required="true"
+ * @generated
+ */
+ int getPartType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartType <em>Part Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Part Type</em>' attribute.
+ * @see #getPartType()
+ * @generated
+ */
+ void setPartType(int value);
+
+} // MultiPartMessageDirectory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/OLRLocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/OLRLocationReference.java
new file mode 100755
index 0000000..163e13f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/OLRLocationReference.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>OLR Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference#getLocationData <em>Location Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getOLRLocationReference()
+ * @model
+ * @generated
+ */
+public interface OLRLocationReference extends Method {
+
+ /**
+ * Returns the value of the '<em><b>Location Data</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location Data</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location Data</em>' attribute.
+ * @see #setLocationData(byte[])
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getOLRLocationReference_LocationData()
+ * @model required="true"
+ * @generated
+ */
+ byte[] getLocationData();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference#getLocationData <em>Location Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location Data</em>' attribute.
+ * @see #getLocationData()
+ * @generated
+ */
+ void setLocationData(byte[] value);
+} // OLRLocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameCountedProtected.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameCountedProtected.java
new file mode 100755
index 0000000..7278e97
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameCountedProtected.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Serv Comp Frame Counted Protected</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getMessageCount <em>Message Count</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameCountedProtected()
+ * @model
+ * @generated
+ */
+public interface ServCompFrameCountedProtected extends ServiceComponentFrame {
+ /**
+ * Returns the value of the '<em><b>Message Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Message Count</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Message Count</em>' attribute.
+ * @see #setMessageCount(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameCountedProtected_MessageCount()
+ * @model required="true"
+ * @generated
+ */
+ int getMessageCount();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getMessageCount <em>Message Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Message Count</em>' attribute.
+ * @see #getMessageCount()
+ * @generated
+ */
+ void setMessageCount(int value);
+
+ /**
+ * Returns the value of the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Application Content</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Application Content</em>' attribute.
+ * @see #setApplicationContent(Object)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameCountedProtected_ApplicationContent()
+ * @model required="true"
+ * @generated
+ */
+ Object getApplicationContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getApplicationContent <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Application Content</em>' attribute.
+ * @see #getApplicationContent()
+ * @generated
+ */
+ void setApplicationContent(Object value);
+
+ /**
+ * Returns the value of the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data CRC</em>' attribute.
+ * @see #setDataCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameCountedProtected_DataCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getDataCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getDataCRC <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data CRC</em>' attribute.
+ * @see #getDataCRC()
+ * @generated
+ */
+ void setDataCRC(int value);
+
+} // ServCompFrameCountedProtected
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedCountedProtected.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedCountedProtected.java
new file mode 100755
index 0000000..4aef989
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedCountedProtected.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Serv Comp Frame Prioritised Counted Protected</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getGroupPriority <em>Group Priority</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getMessageCount <em>Message Count</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedCountedProtected()
+ * @model
+ * @generated
+ */
+public interface ServCompFramePrioritisedCountedProtected extends ServiceComponentFrame {
+ /**
+ * Returns the value of the '<em><b>Group Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group Priority</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group Priority</em>' attribute.
+ * @see #setGroupPriority(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedCountedProtected_GroupPriority()
+ * @model required="true"
+ * @generated
+ */
+ int getGroupPriority();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getGroupPriority <em>Group Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Group Priority</em>' attribute.
+ * @see #getGroupPriority()
+ * @generated
+ */
+ void setGroupPriority(int value);
+
+ /**
+ * Returns the value of the '<em><b>Message Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Message Count</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Message Count</em>' attribute.
+ * @see #setMessageCount(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedCountedProtected_MessageCount()
+ * @model required="true"
+ * @generated
+ */
+ int getMessageCount();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getMessageCount <em>Message Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Message Count</em>' attribute.
+ * @see #getMessageCount()
+ * @generated
+ */
+ void setMessageCount(int value);
+
+ /**
+ * Returns the value of the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Application Content</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Application Content</em>' attribute.
+ * @see #setApplicationContent(Object)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedCountedProtected_ApplicationContent()
+ * @model required="true"
+ * @generated
+ */
+ Object getApplicationContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getApplicationContent <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Application Content</em>' attribute.
+ * @see #getApplicationContent()
+ * @generated
+ */
+ void setApplicationContent(Object value);
+
+ /**
+ * Returns the value of the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data CRC</em>' attribute.
+ * @see #setDataCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedCountedProtected_DataCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getDataCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getDataCRC <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data CRC</em>' attribute.
+ * @see #getDataCRC()
+ * @generated
+ */
+ void setDataCRC(int value);
+
+} // ServCompFramePrioritisedCountedProtected
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedProtected.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedProtected.java
new file mode 100755
index 0000000..d16c945
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFramePrioritisedProtected.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Serv Comp Frame Prioritised Protected</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getGroupPriority <em>Group Priority</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedProtected()
+ * @model
+ * @generated
+ */
+public interface ServCompFramePrioritisedProtected extends ServiceComponentFrame {
+ /**
+ * Returns the value of the '<em><b>Group Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group Priority</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group Priority</em>' attribute.
+ * @see #setGroupPriority(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedProtected_GroupPriority()
+ * @model required="true"
+ * @generated
+ */
+ int getGroupPriority();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getGroupPriority <em>Group Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Group Priority</em>' attribute.
+ * @see #getGroupPriority()
+ * @generated
+ */
+ void setGroupPriority(int value);
+
+ /**
+ * Returns the value of the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Application Content</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Application Content</em>' attribute.
+ * @see #setApplicationContent(Object)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedProtected_ApplicationContent()
+ * @model required="true"
+ * @generated
+ */
+ Object getApplicationContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getApplicationContent <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Application Content</em>' attribute.
+ * @see #getApplicationContent()
+ * @generated
+ */
+ void setApplicationContent(Object value);
+
+ /**
+ * Returns the value of the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data CRC</em>' attribute.
+ * @see #setDataCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFramePrioritisedProtected_DataCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getDataCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getDataCRC <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data CRC</em>' attribute.
+ * @see #getDataCRC()
+ * @generated
+ */
+ void setDataCRC(int value);
+
+} // ServCompFramePrioritisedProtected
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameProtected.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameProtected.java
new file mode 100755
index 0000000..55a5393
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompFrameProtected.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Serv Comp Frame Protected</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameProtected()
+ * @model
+ * @generated
+ */
+public interface ServCompFrameProtected extends ServiceComponentFrame {
+ /**
+ * Returns the value of the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Application Content</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Application Content</em>' attribute.
+ * @see #setApplicationContent(Object)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameProtected_ApplicationContent()
+ * @model required="true"
+ * @generated
+ */
+ Object getApplicationContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getApplicationContent <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Application Content</em>' attribute.
+ * @see #getApplicationContent()
+ * @generated
+ */
+ void setApplicationContent(Object value);
+
+ /**
+ * Returns the value of the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data CRC</em>' attribute.
+ * @see #setDataCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompFrameProtected_DataCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getDataCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getDataCRC <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data CRC</em>' attribute.
+ * @see #getDataCRC()
+ * @generated
+ */
+ void setDataCRC(int value);
+
+} // ServCompFrameProtected
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompMultiplex.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompMultiplex.java
new file mode 100755
index 0000000..ea5caf4
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServCompMultiplex.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Serv Comp Multiplex</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex#getMultiplexContent <em>Multiplex Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompMultiplex()
+ * @model
+ * @generated
+ */
+public interface ServCompMultiplex extends EObject {
+ /**
+ * Returns the value of the '<em><b>Multiplex Content</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multiplex Content</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multiplex Content</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServCompMultiplex_MultiplexContent()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ServiceComponentFrame> getMultiplexContent();
+
+} // ServCompMultiplex
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceComponentFrame.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceComponentFrame.java
new file mode 100755
index 0000000..7f25cb8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceComponentFrame.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service Component Frame</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getSCID <em>SCID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getFieldLength <em>Field Length</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getScHeaderCRC <em>Sc Header CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceComponentFrame()
+ * @model
+ * @generated
+ */
+public interface ServiceComponentFrame extends EObject {
+ /**
+ * Returns the value of the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>SCID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>SCID</em>' attribute.
+ * @see #setSCID(byte)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceComponentFrame_SCID()
+ * @model required="true"
+ * @generated
+ */
+ byte getSCID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getSCID <em>SCID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>SCID</em>' attribute.
+ * @see #getSCID()
+ * @generated
+ */
+ void setSCID(byte value);
+
+ /**
+ * Returns the value of the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Field Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Field Length</em>' attribute.
+ * @see #setFieldLength(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceComponentFrame_FieldLength()
+ * @model required="true"
+ * @generated
+ */
+ int getFieldLength();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getFieldLength <em>Field Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Field Length</em>' attribute.
+ * @see #getFieldLength()
+ * @generated
+ */
+ void setFieldLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sc Header CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sc Header CRC</em>' attribute.
+ * @see #setScHeaderCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceComponentFrame_ScHeaderCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getScHeaderCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getScHeaderCRC <em>Sc Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sc Header CRC</em>' attribute.
+ * @see #getScHeaderCRC()
+ * @generated
+ */
+ void setScHeaderCRC(int value);
+
+} // ServiceComponentFrame
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceFrame.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceFrame.java
new file mode 100755
index 0000000..d9139cf
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceFrame.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service Frame</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServEncID <em>Serv Enc ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServiceFrameContent <em>Service Frame Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getSID <em>SID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceFrame()
+ * @model
+ * @generated
+ */
+public interface ServiceFrame extends EObject {
+ /**
+ * Returns the value of the '<em><b>Serv Enc ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Serv Enc ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Serv Enc ID</em>' attribute.
+ * @see #setServEncID(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceFrame_ServEncID()
+ * @model required="true"
+ * @generated
+ */
+ int getServEncID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServEncID <em>Serv Enc ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Serv Enc ID</em>' attribute.
+ * @see #getServEncID()
+ * @generated
+ */
+ void setServEncID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Service Frame Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Service Frame Content</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Service Frame Content</em>' containment reference.
+ * @see #setServiceFrameContent(ServCompMultiplex)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceFrame_ServiceFrameContent()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ ServCompMultiplex getServiceFrameContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServiceFrameContent <em>Service Frame Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Service Frame Content</em>' containment reference.
+ * @see #getServiceFrameContent()
+ * @generated
+ */
+ void setServiceFrameContent(ServCompMultiplex value);
+
+ /**
+ * Returns the value of the '<em><b>SID</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>SID</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>SID</em>' containment reference.
+ * @see #setSID(ServiceIdentifier)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceFrame_SID()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ ServiceIdentifier getSID();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getSID <em>SID</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>SID</em>' containment reference.
+ * @see #getSID()
+ * @generated
+ */
+ void setSID(ServiceIdentifier value);
+
+} // ServiceFrame
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceIdentifier.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceIdentifier.java
new file mode 100755
index 0000000..be15434
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/ServiceIdentifier.java
@@ -0,0 +1,109 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidA <em>Sid A</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidB <em>Sid B</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidC <em>Sid C</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceIdentifier()
+ * @model
+ * @generated
+ */
+public interface ServiceIdentifier extends EObject {
+ /**
+ * Returns the value of the '<em><b>Sid A</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sid A</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sid A</em>' attribute.
+ * @see #setSidA(byte)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceIdentifier_SidA()
+ * @model required="true"
+ * @generated
+ */
+ byte getSidA();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidA <em>Sid A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sid A</em>' attribute.
+ * @see #getSidA()
+ * @generated
+ */
+ void setSidA(byte value);
+
+ /**
+ * Returns the value of the '<em><b>Sid B</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sid B</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sid B</em>' attribute.
+ * @see #setSidB(byte)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceIdentifier_SidB()
+ * @model required="true"
+ * @generated
+ */
+ byte getSidB();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidB <em>Sid B</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sid B</em>' attribute.
+ * @see #getSidB()
+ * @generated
+ */
+ void setSidB(byte value);
+
+ /**
+ * Returns the value of the '<em><b>Sid C</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sid C</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sid C</em>' attribute.
+ * @see #setSidC(byte)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getServiceIdentifier_SidC()
+ * @model required="true"
+ * @generated
+ */
+ byte getSidC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidC <em>Sid C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sid C</em>' attribute.
+ * @see #getSidC()
+ * @generated
+ */
+ void setSidC(byte value);
+
+} // ServiceIdentifier
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/StreamDirectoryFrame.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/StreamDirectoryFrame.java
new file mode 100755
index 0000000..4663fdf
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/StreamDirectoryFrame.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stream Directory Frame</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getSID <em>SID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getNumberOfServices <em>Number Of Services</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getHeaderCRC <em>Header CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getStreamDirectoryFrame()
+ * @model
+ * @generated
+ */
+public interface StreamDirectoryFrame extends EObject {
+ /**
+ * Returns the value of the '<em><b>SID</b></em>' containment reference list.
+ * The list contents are of type {@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>SID</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>SID</em>' containment reference list.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getStreamDirectoryFrame_SID()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ServiceIdentifier> getSID();
+
+ /**
+ * Returns the value of the '<em><b>Number Of Services</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Services</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Services</em>' attribute.
+ * @see #setNumberOfServices(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getStreamDirectoryFrame_NumberOfServices()
+ * @model required="true"
+ * @generated
+ */
+ int getNumberOfServices();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getNumberOfServices <em>Number Of Services</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Services</em>' attribute.
+ * @see #getNumberOfServices()
+ * @generated
+ */
+ void setNumberOfServices(int value);
+
+ /**
+ * Returns the value of the '<em><b>Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Header CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Header CRC</em>' attribute.
+ * @see #setHeaderCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getStreamDirectoryFrame_HeaderCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getHeaderCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getHeaderCRC <em>Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Header CRC</em>' attribute.
+ * @see #getHeaderCRC()
+ * @generated
+ */
+ void setHeaderCRC(int value);
+
+} // StreamDirectoryFrame
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TETLocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TETLocationReference.java
new file mode 100755
index 0000000..9ed11a8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TETLocationReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TET Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTETLocationReference()
+ * @model
+ * @generated
+ */
+public interface TETLocationReference extends Method {
+} // TETLocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TMCLocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TMCLocationReference.java
new file mode 100755
index 0000000..d0c3e3e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TMCLocationReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TMC Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTMCLocationReference()
+ * @model
+ * @generated
+ */
+public interface TMCLocationReference extends Method {
+} // TMCLocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TPEGLocationReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TPEGLocationReference.java
new file mode 100755
index 0000000..c31d155
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TPEGLocationReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TPEG Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTPEGLocationReference()
+ * @model
+ * @generated
+ */
+public interface TPEGLocationReference extends Method {
+} // TPEGLocationReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TimeServiceComponentFrame.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TimeServiceComponentFrame.java
new file mode 100755
index 0000000..696f3af
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TimeServiceComponentFrame.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import java.util.Date;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Time Service Component Frame</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getDate <em>Date</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getFormattedDate <em>Formatted Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTimeServiceComponentFrame()
+ * @model
+ * @generated
+ */
+public interface TimeServiceComponentFrame extends ServiceComponentFrame {
+ /**
+ * Returns the value of the '<em><b>Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Date</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Date</em>' attribute.
+ * @see #isSetDate()
+ * @see #unsetDate()
+ * @see #setDate(Date)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTimeServiceComponentFrame_Date()
+ * @model unsettable="true"
+ * @generated
+ */
+ Date getDate();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getDate <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Date</em>' attribute.
+ * @see #isSetDate()
+ * @see #unsetDate()
+ * @see #getDate()
+ * @generated
+ */
+ void setDate(Date value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getDate <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDate()
+ * @see #getDate()
+ * @see #setDate(Date)
+ * @generated
+ */
+ void unsetDate();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getDate <em>Date</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Date</em>' attribute is set.
+ * @see #unsetDate()
+ * @see #getDate()
+ * @see #setDate(Date)
+ * @generated
+ */
+ boolean isSetDate();
+
+ /**
+ * Returns the value of the '<em><b>Formatted Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Formatted Date</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Formatted Date</em>' attribute.
+ * @see #isSetFormattedDate()
+ * @see #unsetFormattedDate()
+ * @see #setFormattedDate(String)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTimeServiceComponentFrame_FormattedDate()
+ * @model unsettable="true"
+ * @generated
+ */
+ String getFormattedDate();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getFormattedDate <em>Formatted Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Formatted Date</em>' attribute.
+ * @see #isSetFormattedDate()
+ * @see #unsetFormattedDate()
+ * @see #getFormattedDate()
+ * @generated
+ */
+ void setFormattedDate(String value);
+
+ /**
+ * Unsets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getFormattedDate <em>Formatted Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetFormattedDate()
+ * @see #getFormattedDate()
+ * @see #setFormattedDate(String)
+ * @generated
+ */
+ void unsetFormattedDate();
+
+ /**
+ * Returns whether the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getFormattedDate <em>Formatted Date</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Formatted Date</em>' attribute is set.
+ * @see #unsetFormattedDate()
+ * @see #getFormattedDate()
+ * @see #setFormattedDate(String)
+ * @generated
+ */
+ boolean isSetFormattedDate();
+
+} // TimeServiceComponentFrame
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesFactory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesFactory.java
new file mode 100755
index 0000000..e960601
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesFactory.java
@@ -0,0 +1,299 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage
+ * @generated
+ */
+public interface TpegfwktypesFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TpegfwktypesFactory eINSTANCE = org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Localised Short String</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Localised Short String</em>'.
+ * @generated
+ */
+ LocalisedShortString createLocalisedShortString();
+
+ /**
+ * Returns a new object of class '<em>Location Referencing Container</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Location Referencing Container</em>'.
+ * @generated
+ */
+ LocationReferencingContainer createLocationReferencingContainer();
+
+ /**
+ * Returns a new object of class '<em>Transport Frame Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transport Frame Template</em>'.
+ * @generated
+ */
+ TransportFrameTemplate createTransportFrameTemplate();
+
+ /**
+ * Returns a new object of class '<em>Transport Frame Type0</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transport Frame Type0</em>'.
+ * @generated
+ */
+ TransportFrameType0 createTransportFrameType0();
+
+ /**
+ * Returns a new object of class '<em>Transport Frame Type1</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transport Frame Type1</em>'.
+ * @generated
+ */
+ TransportFrameType1 createTransportFrameType1();
+
+ /**
+ * Returns a new object of class '<em>Service Component Frame</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Service Component Frame</em>'.
+ * @generated
+ */
+ ServiceComponentFrame createServiceComponentFrame();
+
+ /**
+ * Returns a new object of class '<em>Service Frame</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Service Frame</em>'.
+ * @generated
+ */
+ ServiceFrame createServiceFrame();
+
+ /**
+ * Returns a new object of class '<em>Stream Directory Frame</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stream Directory Frame</em>'.
+ * @generated
+ */
+ StreamDirectoryFrame createStreamDirectoryFrame();
+
+ /**
+ * Returns a new object of class '<em>Serv Comp Multiplex</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Serv Comp Multiplex</em>'.
+ * @generated
+ */
+ ServCompMultiplex createServCompMultiplex();
+
+ /**
+ * Returns a new object of class '<em>Service Identifier</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Service Identifier</em>'.
+ * @generated
+ */
+ ServiceIdentifier createServiceIdentifier();
+
+ /**
+ * Returns a new object of class '<em>Serv Comp Frame Protected</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Serv Comp Frame Protected</em>'.
+ * @generated
+ */
+ ServCompFrameProtected createServCompFrameProtected();
+
+ /**
+ * Returns a new object of class '<em>Serv Comp Frame Counted Protected</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Serv Comp Frame Counted Protected</em>'.
+ * @generated
+ */
+ ServCompFrameCountedProtected createServCompFrameCountedProtected();
+
+ /**
+ * Returns a new object of class '<em>Serv Comp Frame Prioritised Protected</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Serv Comp Frame Prioritised Protected</em>'.
+ * @generated
+ */
+ ServCompFramePrioritisedProtected createServCompFramePrioritisedProtected();
+
+ /**
+ * Returns a new object of class '<em>Serv Comp Frame Prioritised Counted Protected</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Serv Comp Frame Prioritised Counted Protected</em>'.
+ * @generated
+ */
+ ServCompFramePrioritisedCountedProtected createServCompFramePrioritisedCountedProtected();
+
+ /**
+ * Returns a new object of class '<em>MMC Switch</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>MMC Switch</em>'.
+ * @generated
+ */
+ MMCSwitch createMMCSwitch();
+
+ /**
+ * Returns a new object of class '<em>Message Management Container</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Message Management Container</em>'.
+ * @generated
+ */
+ MessageManagementContainer createMessageManagementContainer();
+
+ /**
+ * Returns a new object of class '<em>MMC Master Message</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>MMC Master Message</em>'.
+ * @generated
+ */
+ MMCMasterMessage createMMCMasterMessage();
+
+ /**
+ * Returns a new object of class '<em>Multi Part Message Directory</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Part Message Directory</em>'.
+ * @generated
+ */
+ MultiPartMessageDirectory createMultiPartMessageDirectory();
+
+ /**
+ * Returns a new object of class '<em>MMC Message Part</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>MMC Message Part</em>'.
+ * @generated
+ */
+ MMCMessagePart createMMCMessagePart();
+
+ /**
+ * Returns a new object of class '<em>Method</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Method</em>'.
+ * @generated
+ */
+ Method createMethod();
+
+ /**
+ * Returns a new object of class '<em>TPEG Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>TPEG Location Reference</em>'.
+ * @generated
+ */
+ TPEGLocationReference createTPEGLocationReference();
+
+ /**
+ * Returns a new object of class '<em>DLR1 Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DLR1 Location Reference</em>'.
+ * @generated
+ */
+ DLR1LocationReference createDLR1LocationReference();
+
+ /**
+ * Returns a new object of class '<em>TMC Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>TMC Location Reference</em>'.
+ * @generated
+ */
+ TMCLocationReference createTMCLocationReference();
+
+ /**
+ * Returns a new object of class '<em>VICS Link Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>VICS Link Reference</em>'.
+ * @generated
+ */
+ VICSLinkReference createVICSLinkReference();
+
+ /**
+ * Returns a new object of class '<em>Korean Node Link Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Korean Node Link Location Reference</em>'.
+ * @generated
+ */
+ KoreanNodeLinkLocationReference createKoreanNodeLinkLocationReference();
+
+ /**
+ * Returns a new object of class '<em>TET Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>TET Location Reference</em>'.
+ * @generated
+ */
+ TETLocationReference createTETLocationReference();
+
+ /**
+ * Returns a new object of class '<em>GLR Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>GLR Location Reference</em>'.
+ * @generated
+ */
+ GLRLocationReference createGLRLocationReference();
+
+ /**
+ * Returns a new object of class '<em>OLR Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>OLR Location Reference</em>'.
+ * @generated
+ */
+ OLRLocationReference createOLRLocationReference();
+
+ /**
+ * Returns a new object of class '<em>Time Service Component Frame</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Time Service Component Frame</em>'.
+ * @generated
+ */
+ TimeServiceComponentFrame createTimeServiceComponentFrame();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ TpegfwktypesPackage getTpegfwktypesPackage();
+
+} //TpegfwktypesFactory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesPackage.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesPackage.java
new file mode 100755
index 0000000..7b90f74
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TpegfwktypesPackage.java
@@ -0,0 +1,3012 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesFactory
+ * @model kind="package"
+ * annotation="GenModel documentation='Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/.'"
+ * @generated
+ */
+public interface TpegfwktypesPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "tpegfwktypes";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.genivi.trafficinfo.tpegfwktypes";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "com.tomtom.ti";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TpegfwktypesPackage eINSTANCE = org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocalisedShortStringImpl <em>Localised Short String</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocalisedShortStringImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getLocalisedShortString()
+ * @generated
+ */
+ int LOCALISED_SHORT_STRING = 0;
+
+ /**
+ * The feature id for the '<em><b>Language Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALISED_SHORT_STRING__LANGUAGE_CODE = 0;
+
+ /**
+ * The feature id for the '<em><b>String</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALISED_SHORT_STRING__STRING = 1;
+
+ /**
+ * The number of structural features of the '<em>Localised Short String</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCALISED_SHORT_STRING_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocationReferencingContainerImpl <em>Location Referencing Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocationReferencingContainerImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getLocationReferencingContainer()
+ * @generated
+ */
+ int LOCATION_REFERENCING_CONTAINER = 1;
+
+ /**
+ * The feature id for the '<em><b>Method</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCING_CONTAINER__METHOD = 0;
+
+ /**
+ * The number of structural features of the '<em>Location Referencing Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCATION_REFERENCING_CONTAINER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl <em>Transport Frame Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTransportFrameTemplate()
+ * @generated
+ */
+ int TRANSPORT_FRAME_TEMPLATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Meta Information TODO</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO = 0;
+
+ /**
+ * The feature id for the '<em><b>Sync Word</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TEMPLATE__SYNC_WORD = 1;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH = 2;
+
+ /**
+ * The feature id for the '<em><b>Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TEMPLATE__HEADER_CRC = 3;
+
+ /**
+ * The feature id for the '<em><b>Frame Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE = 4;
+
+ /**
+ * The number of structural features of the '<em>Transport Frame Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TEMPLATE_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType0Impl <em>Transport Frame Type0</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType0Impl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTransportFrameType0()
+ * @generated
+ */
+ int TRANSPORT_FRAME_TYPE0 = 3;
+
+ /**
+ * The feature id for the '<em><b>Meta Information TODO</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0__META_INFORMATION_TODO = TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO;
+
+ /**
+ * The feature id for the '<em><b>Sync Word</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0__SYNC_WORD = TRANSPORT_FRAME_TEMPLATE__SYNC_WORD;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0__FIELD_LENGTH = TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0__HEADER_CRC = TRANSPORT_FRAME_TEMPLATE__HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Frame Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0__FRAME_TYPE = TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Transport Frame Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT = TRANSPORT_FRAME_TEMPLATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Transport Frame Type0</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE0_FEATURE_COUNT = TRANSPORT_FRAME_TEMPLATE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType1Impl <em>Transport Frame Type1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType1Impl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTransportFrameType1()
+ * @generated
+ */
+ int TRANSPORT_FRAME_TYPE1 = 4;
+
+ /**
+ * The feature id for the '<em><b>Meta Information TODO</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1__META_INFORMATION_TODO = TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO;
+
+ /**
+ * The feature id for the '<em><b>Sync Word</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1__SYNC_WORD = TRANSPORT_FRAME_TEMPLATE__SYNC_WORD;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1__FIELD_LENGTH = TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1__HEADER_CRC = TRANSPORT_FRAME_TEMPLATE__HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Frame Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1__FRAME_TYPE = TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Transport Frame Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT = TRANSPORT_FRAME_TEMPLATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Transport Frame Type1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPORT_FRAME_TYPE1_FEATURE_COUNT = TRANSPORT_FRAME_TEMPLATE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl <em>Service Component Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServiceComponentFrame()
+ * @generated
+ */
+ int SERVICE_COMPONENT_FRAME = 5;
+
+ /**
+ * The feature id for the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_COMPONENT_FRAME__SCID = 0;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_COMPONENT_FRAME__FIELD_LENGTH = 1;
+
+ /**
+ * The feature id for the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_COMPONENT_FRAME__SC_HEADER_CRC = 2;
+
+ /**
+ * The number of structural features of the '<em>Service Component Frame</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_COMPONENT_FRAME_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl <em>Service Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServiceFrame()
+ * @generated
+ */
+ int SERVICE_FRAME = 6;
+
+ /**
+ * The feature id for the '<em><b>Serv Enc ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_FRAME__SERV_ENC_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Service Frame Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_FRAME__SERVICE_FRAME_CONTENT = 1;
+
+ /**
+ * The feature id for the '<em><b>SID</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_FRAME__SID = 2;
+
+ /**
+ * The number of structural features of the '<em>Service Frame</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_FRAME_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl <em>Stream Directory Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getStreamDirectoryFrame()
+ * @generated
+ */
+ int STREAM_DIRECTORY_FRAME = 7;
+
+ /**
+ * The feature id for the '<em><b>SID</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STREAM_DIRECTORY_FRAME__SID = 0;
+
+ /**
+ * The feature id for the '<em><b>Number Of Services</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES = 1;
+
+ /**
+ * The feature id for the '<em><b>Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STREAM_DIRECTORY_FRAME__HEADER_CRC = 2;
+
+ /**
+ * The number of structural features of the '<em>Stream Directory Frame</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STREAM_DIRECTORY_FRAME_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompMultiplexImpl <em>Serv Comp Multiplex</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompMultiplexImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompMultiplex()
+ * @generated
+ */
+ int SERV_COMP_MULTIPLEX = 8;
+
+ /**
+ * The feature id for the '<em><b>Multiplex Content</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Serv Comp Multiplex</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_MULTIPLEX_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl <em>Service Identifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServiceIdentifier()
+ * @generated
+ */
+ int SERVICE_IDENTIFIER = 9;
+
+ /**
+ * The feature id for the '<em><b>Sid A</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_IDENTIFIER__SID_A = 0;
+
+ /**
+ * The feature id for the '<em><b>Sid B</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_IDENTIFIER__SID_B = 1;
+
+ /**
+ * The feature id for the '<em><b>Sid C</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_IDENTIFIER__SID_C = 2;
+
+ /**
+ * The number of structural features of the '<em>Service Identifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVICE_IDENTIFIER_FEATURE_COUNT = 3;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameProtectedImpl <em>Serv Comp Frame Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFrameProtected()
+ * @generated
+ */
+ int SERV_COMP_FRAME_PROTECTED = 10;
+
+ /**
+ * The feature id for the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PROTECTED__SCID = SERVICE_COMPONENT_FRAME__SCID;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PROTECTED__FIELD_LENGTH = SERVICE_COMPONENT_FRAME__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PROTECTED__SC_HEADER_CRC = SERVICE_COMPONENT_FRAME__SC_HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PROTECTED__DATA_CRC = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Serv Comp Frame Protected</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PROTECTED_FEATURE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl <em>Serv Comp Frame Counted Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFrameCountedProtected()
+ * @generated
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED = 11;
+
+ /**
+ * The feature id for the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED__SCID = SERVICE_COMPONENT_FRAME__SCID;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED__FIELD_LENGTH = SERVICE_COMPONENT_FRAME__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED__SC_HEADER_CRC = SERVICE_COMPONENT_FRAME__SC_HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Message Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Serv Comp Frame Counted Protected</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_COUNTED_PROTECTED_FEATURE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl <em>Serv Comp Frame Prioritised Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFramePrioritisedProtected()
+ * @generated
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED = 12;
+
+ /**
+ * The feature id for the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED__SCID = SERVICE_COMPONENT_FRAME__SCID;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED__FIELD_LENGTH = SERVICE_COMPONENT_FRAME__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED__SC_HEADER_CRC = SERVICE_COMPONENT_FRAME__SC_HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Group Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Serv Comp Frame Prioritised Protected</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_PROTECTED_FEATURE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl <em>Serv Comp Frame Prioritised Counted Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFramePrioritisedCountedProtected()
+ * @generated
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED = 13;
+
+ /**
+ * The feature id for the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__SCID = SERVICE_COMPONENT_FRAME__SCID;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__FIELD_LENGTH = SERVICE_COMPONENT_FRAME__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__SC_HEADER_CRC = SERVICE_COMPONENT_FRAME__SC_HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Group Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Message Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Application Content</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Data CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Serv Comp Frame Prioritised Counted Protected</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED_FEATURE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 4;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl <em>MMC Switch</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMMCSwitch()
+ * @generated
+ */
+ int MMC_SWITCH = 14;
+
+ /**
+ * The feature id for the '<em><b>Message ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH__MESSAGE_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH__VERSION_ID = 1;
+
+ /**
+ * The feature id for the '<em><b>Message Expiry Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH__MESSAGE_EXPIRY_TIME = 2;
+
+ /**
+ * The feature id for the '<em><b>Cancel Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH__CANCEL_FLAG = 3;
+
+ /**
+ * The feature id for the '<em><b>Message Generation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH__MESSAGE_GENERATION_TIME = 4;
+
+ /**
+ * The feature id for the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH__PRIORITY = 5;
+
+ /**
+ * The number of structural features of the '<em>MMC Switch</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_SWITCH_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MessageManagementContainerImpl <em>Message Management Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MessageManagementContainerImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMessageManagementContainer()
+ * @generated
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER = 15;
+
+ /**
+ * The feature id for the '<em><b>Message ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER__MESSAGE_ID = MMC_SWITCH__MESSAGE_ID;
+
+ /**
+ * The feature id for the '<em><b>Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER__VERSION_ID = MMC_SWITCH__VERSION_ID;
+
+ /**
+ * The feature id for the '<em><b>Message Expiry Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER__MESSAGE_EXPIRY_TIME = MMC_SWITCH__MESSAGE_EXPIRY_TIME;
+
+ /**
+ * The feature id for the '<em><b>Cancel Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER__CANCEL_FLAG = MMC_SWITCH__CANCEL_FLAG;
+
+ /**
+ * The feature id for the '<em><b>Message Generation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER__MESSAGE_GENERATION_TIME = MMC_SWITCH__MESSAGE_GENERATION_TIME;
+
+ /**
+ * The feature id for the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER__PRIORITY = MMC_SWITCH__PRIORITY;
+
+ /**
+ * The number of structural features of the '<em>Message Management Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MESSAGE_MANAGEMENT_CONTAINER_FEATURE_COUNT = MMC_SWITCH_FEATURE_COUNT + 0;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMasterMessageImpl <em>MMC Master Message</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMasterMessageImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMMCMasterMessage()
+ * @generated
+ */
+ int MMC_MASTER_MESSAGE = 16;
+
+ /**
+ * The feature id for the '<em><b>Message ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__MESSAGE_ID = MMC_SWITCH__MESSAGE_ID;
+
+ /**
+ * The feature id for the '<em><b>Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__VERSION_ID = MMC_SWITCH__VERSION_ID;
+
+ /**
+ * The feature id for the '<em><b>Message Expiry Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__MESSAGE_EXPIRY_TIME = MMC_SWITCH__MESSAGE_EXPIRY_TIME;
+
+ /**
+ * The feature id for the '<em><b>Cancel Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__CANCEL_FLAG = MMC_SWITCH__CANCEL_FLAG;
+
+ /**
+ * The feature id for the '<em><b>Message Generation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__MESSAGE_GENERATION_TIME = MMC_SWITCH__MESSAGE_GENERATION_TIME;
+
+ /**
+ * The feature id for the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__PRIORITY = MMC_SWITCH__PRIORITY;
+
+ /**
+ * The feature id for the '<em><b>Multi Part Message Directory</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY = MMC_SWITCH_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>MMC Master Message</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MASTER_MESSAGE_FEATURE_COUNT = MMC_SWITCH_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MultiPartMessageDirectoryImpl <em>Multi Part Message Directory</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MultiPartMessageDirectoryImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMultiPartMessageDirectory()
+ * @generated
+ */
+ int MULTI_PART_MESSAGE_DIRECTORY = 17;
+
+ /**
+ * The feature id for the '<em><b>Part ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PART_MESSAGE_DIRECTORY__PART_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Part Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE = 1;
+
+ /**
+ * The number of structural features of the '<em>Multi Part Message Directory</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PART_MESSAGE_DIRECTORY_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl <em>MMC Message Part</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMMCMessagePart()
+ * @generated
+ */
+ int MMC_MESSAGE_PART = 18;
+
+ /**
+ * The feature id for the '<em><b>Message ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__MESSAGE_ID = MMC_SWITCH__MESSAGE_ID;
+
+ /**
+ * The feature id for the '<em><b>Version ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__VERSION_ID = MMC_SWITCH__VERSION_ID;
+
+ /**
+ * The feature id for the '<em><b>Message Expiry Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__MESSAGE_EXPIRY_TIME = MMC_SWITCH__MESSAGE_EXPIRY_TIME;
+
+ /**
+ * The feature id for the '<em><b>Cancel Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__CANCEL_FLAG = MMC_SWITCH__CANCEL_FLAG;
+
+ /**
+ * The feature id for the '<em><b>Message Generation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__MESSAGE_GENERATION_TIME = MMC_SWITCH__MESSAGE_GENERATION_TIME;
+
+ /**
+ * The feature id for the '<em><b>Priority</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__PRIORITY = MMC_SWITCH__PRIORITY;
+
+ /**
+ * The feature id for the '<em><b>Part ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__PART_ID = MMC_SWITCH_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Update Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__UPDATE_MODE = MMC_SWITCH_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Master Message Versions</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS = MMC_SWITCH_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>MMC Message Part</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MMC_MESSAGE_PART_FEATURE_COUNT = MMC_SWITCH_FEATURE_COUNT + 3;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MethodImpl <em>Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MethodImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMethod()
+ * @generated
+ */
+ int METHOD = 19;
+
+ /**
+ * The number of structural features of the '<em>Method</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int METHOD_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TPEGLocationReferenceImpl <em>TPEG Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TPEGLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTPEGLocationReference()
+ * @generated
+ */
+ int TPEG_LOCATION_REFERENCE = 20;
+
+ /**
+ * The number of structural features of the '<em>TPEG Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TPEG_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.DLR1LocationReferenceImpl <em>DLR1 Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.DLR1LocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getDLR1LocationReference()
+ * @generated
+ */
+ int DLR1_LOCATION_REFERENCE = 21;
+
+ /**
+ * The number of structural features of the '<em>DLR1 Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DLR1_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TMCLocationReferenceImpl <em>TMC Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TMCLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTMCLocationReference()
+ * @generated
+ */
+ int TMC_LOCATION_REFERENCE = 22;
+
+ /**
+ * The number of structural features of the '<em>TMC Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TMC_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.VICSLinkReferenceImpl <em>VICS Link Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.VICSLinkReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getVICSLinkReference()
+ * @generated
+ */
+ int VICS_LINK_REFERENCE = 23;
+
+ /**
+ * The number of structural features of the '<em>VICS Link Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VICS_LINK_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.KoreanNodeLinkLocationReferenceImpl <em>Korean Node Link Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.KoreanNodeLinkLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getKoreanNodeLinkLocationReference()
+ * @generated
+ */
+ int KOREAN_NODE_LINK_LOCATION_REFERENCE = 24;
+
+ /**
+ * The number of structural features of the '<em>Korean Node Link Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KOREAN_NODE_LINK_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TETLocationReferenceImpl <em>TET Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TETLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTETLocationReference()
+ * @generated
+ */
+ int TET_LOCATION_REFERENCE = 25;
+
+ /**
+ * The number of structural features of the '<em>TET Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TET_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.GLRLocationReferenceImpl <em>GLR Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.GLRLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getGLRLocationReference()
+ * @generated
+ */
+ int GLR_LOCATION_REFERENCE = 26;
+
+ /**
+ * The number of structural features of the '<em>GLR Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLR_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.OLRLocationReferenceImpl <em>OLR Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.OLRLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getOLRLocationReference()
+ * @generated
+ */
+ int OLR_LOCATION_REFERENCE = 27;
+
+ /**
+ * The feature id for the '<em><b>Location Data</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OLR_LOCATION_REFERENCE__LOCATION_DATA = METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>OLR Location Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OLR_LOCATION_REFERENCE_FEATURE_COUNT = METHOD_FEATURE_COUNT + 1;
+
+
+ /**
+ * The meta object id for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TimeServiceComponentFrameImpl <em>Time Service Component Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TimeServiceComponentFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTimeServiceComponentFrame()
+ * @generated
+ */
+ int TIME_SERVICE_COMPONENT_FRAME = 28;
+
+ /**
+ * The feature id for the '<em><b>SCID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TIME_SERVICE_COMPONENT_FRAME__SCID = SERVICE_COMPONENT_FRAME__SCID;
+
+ /**
+ * The feature id for the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TIME_SERVICE_COMPONENT_FRAME__FIELD_LENGTH = SERVICE_COMPONENT_FRAME__FIELD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Sc Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TIME_SERVICE_COMPONENT_FRAME__SC_HEADER_CRC = SERVICE_COMPONENT_FRAME__SC_HEADER_CRC;
+
+ /**
+ * The feature id for the '<em><b>Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TIME_SERVICE_COMPONENT_FRAME__DATE = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Formatted Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Time Service Component Frame</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TIME_SERVICE_COMPONENT_FRAME_FEATURE_COUNT = SERVICE_COMPONENT_FRAME_FEATURE_COUNT + 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString <em>Localised Short String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Localised Short String</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString
+ * @generated
+ */
+ EClass getLocalisedShortString();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getLanguageCode <em>Language Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Language Code</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getLanguageCode()
+ * @see #getLocalisedShortString()
+ * @generated
+ */
+ EAttribute getLocalisedShortString_LanguageCode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getString <em>String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>String</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString#getString()
+ * @see #getLocalisedShortString()
+ * @generated
+ */
+ EAttribute getLocalisedShortString_String();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer <em>Location Referencing Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Location Referencing Container</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer
+ * @generated
+ */
+ EClass getLocationReferencingContainer();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer#getMethod <em>Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Method</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer#getMethod()
+ * @see #getLocationReferencingContainer()
+ * @generated
+ */
+ EReference getLocationReferencingContainer_Method();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate <em>Transport Frame Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transport Frame Template</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate
+ * @generated
+ */
+ EClass getTransportFrameTemplate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getMetaInformationTODO <em>Meta Information TODO</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Meta Information TODO</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getMetaInformationTODO()
+ * @see #getTransportFrameTemplate()
+ * @generated
+ */
+ EAttribute getTransportFrameTemplate_MetaInformationTODO();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getSyncWord <em>Sync Word</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sync Word</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getSyncWord()
+ * @see #getTransportFrameTemplate()
+ * @generated
+ */
+ EAttribute getTransportFrameTemplate_SyncWord();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFieldLength <em>Field Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Field Length</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFieldLength()
+ * @see #getTransportFrameTemplate()
+ * @generated
+ */
+ EAttribute getTransportFrameTemplate_FieldLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getHeaderCRC <em>Header CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Header CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getHeaderCRC()
+ * @see #getTransportFrameTemplate()
+ * @generated
+ */
+ EAttribute getTransportFrameTemplate_HeaderCRC();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFrameType <em>Frame Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Frame Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFrameType()
+ * @see #getTransportFrameTemplate()
+ * @generated
+ */
+ EAttribute getTransportFrameTemplate_FrameType();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0 <em>Transport Frame Type0</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transport Frame Type0</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0
+ * @generated
+ */
+ EClass getTransportFrameType0();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0#getTransportFrameContent <em>Transport Frame Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Transport Frame Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0#getTransportFrameContent()
+ * @see #getTransportFrameType0()
+ * @generated
+ */
+ EReference getTransportFrameType0_TransportFrameContent();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1 <em>Transport Frame Type1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transport Frame Type1</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1
+ * @generated
+ */
+ EClass getTransportFrameType1();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1#getTransportFrameContent <em>Transport Frame Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Transport Frame Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1#getTransportFrameContent()
+ * @see #getTransportFrameType1()
+ * @generated
+ */
+ EReference getTransportFrameType1_TransportFrameContent();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame <em>Service Component Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Service Component Frame</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame
+ * @generated
+ */
+ EClass getServiceComponentFrame();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getSCID <em>SCID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>SCID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getSCID()
+ * @see #getServiceComponentFrame()
+ * @generated
+ */
+ EAttribute getServiceComponentFrame_SCID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getFieldLength <em>Field Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Field Length</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getFieldLength()
+ * @see #getServiceComponentFrame()
+ * @generated
+ */
+ EAttribute getServiceComponentFrame_FieldLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getScHeaderCRC <em>Sc Header CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sc Header CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame#getScHeaderCRC()
+ * @see #getServiceComponentFrame()
+ * @generated
+ */
+ EAttribute getServiceComponentFrame_ScHeaderCRC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame <em>Service Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Service Frame</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame
+ * @generated
+ */
+ EClass getServiceFrame();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServEncID <em>Serv Enc ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Serv Enc ID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServEncID()
+ * @see #getServiceFrame()
+ * @generated
+ */
+ EAttribute getServiceFrame_ServEncID();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServiceFrameContent <em>Service Frame Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Service Frame Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getServiceFrameContent()
+ * @see #getServiceFrame()
+ * @generated
+ */
+ EReference getServiceFrame_ServiceFrameContent();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getSID <em>SID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>SID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame#getSID()
+ * @see #getServiceFrame()
+ * @generated
+ */
+ EReference getServiceFrame_SID();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame <em>Stream Directory Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stream Directory Frame</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame
+ * @generated
+ */
+ EClass getStreamDirectoryFrame();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getSID <em>SID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>SID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getSID()
+ * @see #getStreamDirectoryFrame()
+ * @generated
+ */
+ EReference getStreamDirectoryFrame_SID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getNumberOfServices <em>Number Of Services</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Services</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getNumberOfServices()
+ * @see #getStreamDirectoryFrame()
+ * @generated
+ */
+ EAttribute getStreamDirectoryFrame_NumberOfServices();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getHeaderCRC <em>Header CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Header CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame#getHeaderCRC()
+ * @see #getStreamDirectoryFrame()
+ * @generated
+ */
+ EAttribute getStreamDirectoryFrame_HeaderCRC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex <em>Serv Comp Multiplex</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Serv Comp Multiplex</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex
+ * @generated
+ */
+ EClass getServCompMultiplex();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex#getMultiplexContent <em>Multiplex Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Multiplex Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex#getMultiplexContent()
+ * @see #getServCompMultiplex()
+ * @generated
+ */
+ EReference getServCompMultiplex_MultiplexContent();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier <em>Service Identifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Service Identifier</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier
+ * @generated
+ */
+ EClass getServiceIdentifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidA <em>Sid A</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sid A</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidA()
+ * @see #getServiceIdentifier()
+ * @generated
+ */
+ EAttribute getServiceIdentifier_SidA();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidB <em>Sid B</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sid B</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidB()
+ * @see #getServiceIdentifier()
+ * @generated
+ */
+ EAttribute getServiceIdentifier_SidB();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidC <em>Sid C</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sid C</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier#getSidC()
+ * @see #getServiceIdentifier()
+ * @generated
+ */
+ EAttribute getServiceIdentifier_SidC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected <em>Serv Comp Frame Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Serv Comp Frame Protected</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected
+ * @generated
+ */
+ EClass getServCompFrameProtected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getApplicationContent <em>Application Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Application Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getApplicationContent()
+ * @see #getServCompFrameProtected()
+ * @generated
+ */
+ EAttribute getServCompFrameProtected_ApplicationContent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getDataCRC <em>Data CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected#getDataCRC()
+ * @see #getServCompFrameProtected()
+ * @generated
+ */
+ EAttribute getServCompFrameProtected_DataCRC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected <em>Serv Comp Frame Counted Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Serv Comp Frame Counted Protected</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected
+ * @generated
+ */
+ EClass getServCompFrameCountedProtected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getMessageCount <em>Message Count</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Message Count</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getMessageCount()
+ * @see #getServCompFrameCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFrameCountedProtected_MessageCount();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getApplicationContent <em>Application Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Application Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getApplicationContent()
+ * @see #getServCompFrameCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFrameCountedProtected_ApplicationContent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getDataCRC <em>Data CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected#getDataCRC()
+ * @see #getServCompFrameCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFrameCountedProtected_DataCRC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected <em>Serv Comp Frame Prioritised Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Serv Comp Frame Prioritised Protected</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected
+ * @generated
+ */
+ EClass getServCompFramePrioritisedProtected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getGroupPriority <em>Group Priority</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Group Priority</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getGroupPriority()
+ * @see #getServCompFramePrioritisedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedProtected_GroupPriority();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getApplicationContent <em>Application Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Application Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getApplicationContent()
+ * @see #getServCompFramePrioritisedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedProtected_ApplicationContent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getDataCRC <em>Data CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected#getDataCRC()
+ * @see #getServCompFramePrioritisedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedProtected_DataCRC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected <em>Serv Comp Frame Prioritised Counted Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Serv Comp Frame Prioritised Counted Protected</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected
+ * @generated
+ */
+ EClass getServCompFramePrioritisedCountedProtected();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getGroupPriority <em>Group Priority</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Group Priority</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getGroupPriority()
+ * @see #getServCompFramePrioritisedCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedCountedProtected_GroupPriority();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getMessageCount <em>Message Count</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Message Count</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getMessageCount()
+ * @see #getServCompFramePrioritisedCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedCountedProtected_MessageCount();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getApplicationContent <em>Application Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Application Content</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getApplicationContent()
+ * @see #getServCompFramePrioritisedCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedCountedProtected_ApplicationContent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getDataCRC <em>Data CRC</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data CRC</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected#getDataCRC()
+ * @see #getServCompFramePrioritisedCountedProtected()
+ * @generated
+ */
+ EAttribute getServCompFramePrioritisedCountedProtected_DataCRC();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch <em>MMC Switch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>MMC Switch</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch
+ * @generated
+ */
+ EClass getMMCSwitch();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageID <em>Message ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Message ID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageID()
+ * @see #getMMCSwitch()
+ * @generated
+ */
+ EAttribute getMMCSwitch_MessageID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getVersionID <em>Version ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version ID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getVersionID()
+ * @see #getMMCSwitch()
+ * @generated
+ */
+ EAttribute getMMCSwitch_VersionID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageExpiryTime <em>Message Expiry Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Message Expiry Time</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageExpiryTime()
+ * @see #getMMCSwitch()
+ * @generated
+ */
+ EAttribute getMMCSwitch_MessageExpiryTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#isCancelFlag <em>Cancel Flag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cancel Flag</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#isCancelFlag()
+ * @see #getMMCSwitch()
+ * @generated
+ */
+ EAttribute getMMCSwitch_CancelFlag();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageGenerationTime <em>Message Generation Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Message Generation Time</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getMessageGenerationTime()
+ * @see #getMMCSwitch()
+ * @generated
+ */
+ EAttribute getMMCSwitch_MessageGenerationTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getPriority <em>Priority</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Priority</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch#getPriority()
+ * @see #getMMCSwitch()
+ * @generated
+ */
+ EAttribute getMMCSwitch_Priority();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer <em>Message Management Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Message Management Container</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer
+ * @generated
+ */
+ EClass getMessageManagementContainer();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage <em>MMC Master Message</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>MMC Master Message</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage
+ * @generated
+ */
+ EClass getMMCMasterMessage();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage#getMultiPartMessageDirectory <em>Multi Part Message Directory</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Multi Part Message Directory</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage#getMultiPartMessageDirectory()
+ * @see #getMMCMasterMessage()
+ * @generated
+ */
+ EReference getMMCMasterMessage_MultiPartMessageDirectory();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory <em>Multi Part Message Directory</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Part Message Directory</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory
+ * @generated
+ */
+ EClass getMultiPartMessageDirectory();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartID <em>Part ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Part ID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartID()
+ * @see #getMultiPartMessageDirectory()
+ * @generated
+ */
+ EAttribute getMultiPartMessageDirectory_PartID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartType <em>Part Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Part Type</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory#getPartType()
+ * @see #getMultiPartMessageDirectory()
+ * @generated
+ */
+ EAttribute getMultiPartMessageDirectory_PartType();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart <em>MMC Message Part</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>MMC Message Part</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart
+ * @generated
+ */
+ EClass getMMCMessagePart();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getPartID <em>Part ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Part ID</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getPartID()
+ * @see #getMMCMessagePart()
+ * @generated
+ */
+ EAttribute getMMCMessagePart_PartID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getUpdateMode <em>Update Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Update Mode</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getUpdateMode()
+ * @see #getMMCMessagePart()
+ * @generated
+ */
+ EAttribute getMMCMessagePart_UpdateMode();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getMasterMessageVersions <em>Master Message Versions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Master Message Versions</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart#getMasterMessageVersions()
+ * @see #getMMCMessagePart()
+ * @generated
+ */
+ EAttribute getMMCMessagePart_MasterMessageVersions();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.Method <em>Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Method</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.Method
+ * @generated
+ */
+ EClass getMethod();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TPEGLocationReference <em>TPEG Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>TPEG Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TPEGLocationReference
+ * @generated
+ */
+ EClass getTPEGLocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.DLR1LocationReference <em>DLR1 Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DLR1 Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.DLR1LocationReference
+ * @generated
+ */
+ EClass getDLR1LocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TMCLocationReference <em>TMC Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>TMC Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TMCLocationReference
+ * @generated
+ */
+ EClass getTMCLocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.VICSLinkReference <em>VICS Link Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>VICS Link Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.VICSLinkReference
+ * @generated
+ */
+ EClass getVICSLinkReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.KoreanNodeLinkLocationReference <em>Korean Node Link Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Korean Node Link Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.KoreanNodeLinkLocationReference
+ * @generated
+ */
+ EClass getKoreanNodeLinkLocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TETLocationReference <em>TET Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>TET Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TETLocationReference
+ * @generated
+ */
+ EClass getTETLocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.GLRLocationReference <em>GLR Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>GLR Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.GLRLocationReference
+ * @generated
+ */
+ EClass getGLRLocationReference();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference <em>OLR Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>OLR Location Reference</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference
+ * @generated
+ */
+ EClass getOLRLocationReference();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference#getLocationData <em>Location Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location Data</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference#getLocationData()
+ * @see #getOLRLocationReference()
+ * @generated
+ */
+ EAttribute getOLRLocationReference_LocationData();
+
+ /**
+ * Returns the meta object for class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame <em>Time Service Component Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Time Service Component Frame</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame
+ * @generated
+ */
+ EClass getTimeServiceComponentFrame();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getDate <em>Date</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Date</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getDate()
+ * @see #getTimeServiceComponentFrame()
+ * @generated
+ */
+ EAttribute getTimeServiceComponentFrame_Date();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getFormattedDate <em>Formatted Date</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Formatted Date</em>'.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame#getFormattedDate()
+ * @see #getTimeServiceComponentFrame()
+ * @generated
+ */
+ EAttribute getTimeServiceComponentFrame_FormattedDate();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ TpegfwktypesFactory getTpegfwktypesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocalisedShortStringImpl <em>Localised Short String</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocalisedShortStringImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getLocalisedShortString()
+ * @generated
+ */
+ EClass LOCALISED_SHORT_STRING = eINSTANCE.getLocalisedShortString();
+
+ /**
+ * The meta object literal for the '<em><b>Language Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCALISED_SHORT_STRING__LANGUAGE_CODE = eINSTANCE.getLocalisedShortString_LanguageCode();
+
+ /**
+ * The meta object literal for the '<em><b>String</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCALISED_SHORT_STRING__STRING = eINSTANCE.getLocalisedShortString_String();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocationReferencingContainerImpl <em>Location Referencing Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocationReferencingContainerImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getLocationReferencingContainer()
+ * @generated
+ */
+ EClass LOCATION_REFERENCING_CONTAINER = eINSTANCE.getLocationReferencingContainer();
+
+ /**
+ * The meta object literal for the '<em><b>Method</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOCATION_REFERENCING_CONTAINER__METHOD = eINSTANCE.getLocationReferencingContainer_Method();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl <em>Transport Frame Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTransportFrameTemplate()
+ * @generated
+ */
+ EClass TRANSPORT_FRAME_TEMPLATE = eINSTANCE.getTransportFrameTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Information TODO</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO = eINSTANCE.getTransportFrameTemplate_MetaInformationTODO();
+
+ /**
+ * The meta object literal for the '<em><b>Sync Word</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSPORT_FRAME_TEMPLATE__SYNC_WORD = eINSTANCE.getTransportFrameTemplate_SyncWord();
+
+ /**
+ * The meta object literal for the '<em><b>Field Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH = eINSTANCE.getTransportFrameTemplate_FieldLength();
+
+ /**
+ * The meta object literal for the '<em><b>Header CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSPORT_FRAME_TEMPLATE__HEADER_CRC = eINSTANCE.getTransportFrameTemplate_HeaderCRC();
+
+ /**
+ * The meta object literal for the '<em><b>Frame Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE = eINSTANCE.getTransportFrameTemplate_FrameType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType0Impl <em>Transport Frame Type0</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType0Impl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTransportFrameType0()
+ * @generated
+ */
+ EClass TRANSPORT_FRAME_TYPE0 = eINSTANCE.getTransportFrameType0();
+
+ /**
+ * The meta object literal for the '<em><b>Transport Frame Content</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT = eINSTANCE.getTransportFrameType0_TransportFrameContent();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType1Impl <em>Transport Frame Type1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType1Impl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTransportFrameType1()
+ * @generated
+ */
+ EClass TRANSPORT_FRAME_TYPE1 = eINSTANCE.getTransportFrameType1();
+
+ /**
+ * The meta object literal for the '<em><b>Transport Frame Content</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT = eINSTANCE.getTransportFrameType1_TransportFrameContent();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl <em>Service Component Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServiceComponentFrame()
+ * @generated
+ */
+ EClass SERVICE_COMPONENT_FRAME = eINSTANCE.getServiceComponentFrame();
+
+ /**
+ * The meta object literal for the '<em><b>SCID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_COMPONENT_FRAME__SCID = eINSTANCE.getServiceComponentFrame_SCID();
+
+ /**
+ * The meta object literal for the '<em><b>Field Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_COMPONENT_FRAME__FIELD_LENGTH = eINSTANCE.getServiceComponentFrame_FieldLength();
+
+ /**
+ * The meta object literal for the '<em><b>Sc Header CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_COMPONENT_FRAME__SC_HEADER_CRC = eINSTANCE.getServiceComponentFrame_ScHeaderCRC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl <em>Service Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServiceFrame()
+ * @generated
+ */
+ EClass SERVICE_FRAME = eINSTANCE.getServiceFrame();
+
+ /**
+ * The meta object literal for the '<em><b>Serv Enc ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_FRAME__SERV_ENC_ID = eINSTANCE.getServiceFrame_ServEncID();
+
+ /**
+ * The meta object literal for the '<em><b>Service Frame Content</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SERVICE_FRAME__SERVICE_FRAME_CONTENT = eINSTANCE.getServiceFrame_ServiceFrameContent();
+
+ /**
+ * The meta object literal for the '<em><b>SID</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SERVICE_FRAME__SID = eINSTANCE.getServiceFrame_SID();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl <em>Stream Directory Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getStreamDirectoryFrame()
+ * @generated
+ */
+ EClass STREAM_DIRECTORY_FRAME = eINSTANCE.getStreamDirectoryFrame();
+
+ /**
+ * The meta object literal for the '<em><b>SID</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STREAM_DIRECTORY_FRAME__SID = eINSTANCE.getStreamDirectoryFrame_SID();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Services</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES = eINSTANCE.getStreamDirectoryFrame_NumberOfServices();
+
+ /**
+ * The meta object literal for the '<em><b>Header CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STREAM_DIRECTORY_FRAME__HEADER_CRC = eINSTANCE.getStreamDirectoryFrame_HeaderCRC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompMultiplexImpl <em>Serv Comp Multiplex</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompMultiplexImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompMultiplex()
+ * @generated
+ */
+ EClass SERV_COMP_MULTIPLEX = eINSTANCE.getServCompMultiplex();
+
+ /**
+ * The meta object literal for the '<em><b>Multiplex Content</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT = eINSTANCE.getServCompMultiplex_MultiplexContent();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl <em>Service Identifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServiceIdentifier()
+ * @generated
+ */
+ EClass SERVICE_IDENTIFIER = eINSTANCE.getServiceIdentifier();
+
+ /**
+ * The meta object literal for the '<em><b>Sid A</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_IDENTIFIER__SID_A = eINSTANCE.getServiceIdentifier_SidA();
+
+ /**
+ * The meta object literal for the '<em><b>Sid B</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_IDENTIFIER__SID_B = eINSTANCE.getServiceIdentifier_SidB();
+
+ /**
+ * The meta object literal for the '<em><b>Sid C</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERVICE_IDENTIFIER__SID_C = eINSTANCE.getServiceIdentifier_SidC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameProtectedImpl <em>Serv Comp Frame Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFrameProtected()
+ * @generated
+ */
+ EClass SERV_COMP_FRAME_PROTECTED = eINSTANCE.getServCompFrameProtected();
+
+ /**
+ * The meta object literal for the '<em><b>Application Content</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT = eINSTANCE.getServCompFrameProtected_ApplicationContent();
+
+ /**
+ * The meta object literal for the '<em><b>Data CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PROTECTED__DATA_CRC = eINSTANCE.getServCompFrameProtected_DataCRC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl <em>Serv Comp Frame Counted Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFrameCountedProtected()
+ * @generated
+ */
+ EClass SERV_COMP_FRAME_COUNTED_PROTECTED = eINSTANCE.getServCompFrameCountedProtected();
+
+ /**
+ * The meta object literal for the '<em><b>Message Count</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT = eINSTANCE.getServCompFrameCountedProtected_MessageCount();
+
+ /**
+ * The meta object literal for the '<em><b>Application Content</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT = eINSTANCE.getServCompFrameCountedProtected_ApplicationContent();
+
+ /**
+ * The meta object literal for the '<em><b>Data CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC = eINSTANCE.getServCompFrameCountedProtected_DataCRC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl <em>Serv Comp Frame Prioritised Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFramePrioritisedProtected()
+ * @generated
+ */
+ EClass SERV_COMP_FRAME_PRIORITISED_PROTECTED = eINSTANCE.getServCompFramePrioritisedProtected();
+
+ /**
+ * The meta object literal for the '<em><b>Group Priority</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY = eINSTANCE.getServCompFramePrioritisedProtected_GroupPriority();
+
+ /**
+ * The meta object literal for the '<em><b>Application Content</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT = eINSTANCE.getServCompFramePrioritisedProtected_ApplicationContent();
+
+ /**
+ * The meta object literal for the '<em><b>Data CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC = eINSTANCE.getServCompFramePrioritisedProtected_DataCRC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl <em>Serv Comp Frame Prioritised Counted Protected</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getServCompFramePrioritisedCountedProtected()
+ * @generated
+ */
+ EClass SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED = eINSTANCE.getServCompFramePrioritisedCountedProtected();
+
+ /**
+ * The meta object literal for the '<em><b>Group Priority</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY = eINSTANCE.getServCompFramePrioritisedCountedProtected_GroupPriority();
+
+ /**
+ * The meta object literal for the '<em><b>Message Count</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT = eINSTANCE.getServCompFramePrioritisedCountedProtected_MessageCount();
+
+ /**
+ * The meta object literal for the '<em><b>Application Content</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT = eINSTANCE.getServCompFramePrioritisedCountedProtected_ApplicationContent();
+
+ /**
+ * The meta object literal for the '<em><b>Data CRC</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC = eINSTANCE.getServCompFramePrioritisedCountedProtected_DataCRC();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl <em>MMC Switch</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMMCSwitch()
+ * @generated
+ */
+ EClass MMC_SWITCH = eINSTANCE.getMMCSwitch();
+
+ /**
+ * The meta object literal for the '<em><b>Message ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_SWITCH__MESSAGE_ID = eINSTANCE.getMMCSwitch_MessageID();
+
+ /**
+ * The meta object literal for the '<em><b>Version ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_SWITCH__VERSION_ID = eINSTANCE.getMMCSwitch_VersionID();
+
+ /**
+ * The meta object literal for the '<em><b>Message Expiry Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_SWITCH__MESSAGE_EXPIRY_TIME = eINSTANCE.getMMCSwitch_MessageExpiryTime();
+
+ /**
+ * The meta object literal for the '<em><b>Cancel Flag</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_SWITCH__CANCEL_FLAG = eINSTANCE.getMMCSwitch_CancelFlag();
+
+ /**
+ * The meta object literal for the '<em><b>Message Generation Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_SWITCH__MESSAGE_GENERATION_TIME = eINSTANCE.getMMCSwitch_MessageGenerationTime();
+
+ /**
+ * The meta object literal for the '<em><b>Priority</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_SWITCH__PRIORITY = eINSTANCE.getMMCSwitch_Priority();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MessageManagementContainerImpl <em>Message Management Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MessageManagementContainerImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMessageManagementContainer()
+ * @generated
+ */
+ EClass MESSAGE_MANAGEMENT_CONTAINER = eINSTANCE.getMessageManagementContainer();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMasterMessageImpl <em>MMC Master Message</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMasterMessageImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMMCMasterMessage()
+ * @generated
+ */
+ EClass MMC_MASTER_MESSAGE = eINSTANCE.getMMCMasterMessage();
+
+ /**
+ * The meta object literal for the '<em><b>Multi Part Message Directory</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY = eINSTANCE.getMMCMasterMessage_MultiPartMessageDirectory();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MultiPartMessageDirectoryImpl <em>Multi Part Message Directory</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MultiPartMessageDirectoryImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMultiPartMessageDirectory()
+ * @generated
+ */
+ EClass MULTI_PART_MESSAGE_DIRECTORY = eINSTANCE.getMultiPartMessageDirectory();
+
+ /**
+ * The meta object literal for the '<em><b>Part ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTI_PART_MESSAGE_DIRECTORY__PART_ID = eINSTANCE.getMultiPartMessageDirectory_PartID();
+
+ /**
+ * The meta object literal for the '<em><b>Part Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE = eINSTANCE.getMultiPartMessageDirectory_PartType();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl <em>MMC Message Part</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMMCMessagePart()
+ * @generated
+ */
+ EClass MMC_MESSAGE_PART = eINSTANCE.getMMCMessagePart();
+
+ /**
+ * The meta object literal for the '<em><b>Part ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_MESSAGE_PART__PART_ID = eINSTANCE.getMMCMessagePart_PartID();
+
+ /**
+ * The meta object literal for the '<em><b>Update Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_MESSAGE_PART__UPDATE_MODE = eINSTANCE.getMMCMessagePart_UpdateMode();
+
+ /**
+ * The meta object literal for the '<em><b>Master Message Versions</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS = eINSTANCE.getMMCMessagePart_MasterMessageVersions();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MethodImpl <em>Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MethodImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getMethod()
+ * @generated
+ */
+ EClass METHOD = eINSTANCE.getMethod();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TPEGLocationReferenceImpl <em>TPEG Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TPEGLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTPEGLocationReference()
+ * @generated
+ */
+ EClass TPEG_LOCATION_REFERENCE = eINSTANCE.getTPEGLocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.DLR1LocationReferenceImpl <em>DLR1 Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.DLR1LocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getDLR1LocationReference()
+ * @generated
+ */
+ EClass DLR1_LOCATION_REFERENCE = eINSTANCE.getDLR1LocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TMCLocationReferenceImpl <em>TMC Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TMCLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTMCLocationReference()
+ * @generated
+ */
+ EClass TMC_LOCATION_REFERENCE = eINSTANCE.getTMCLocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.VICSLinkReferenceImpl <em>VICS Link Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.VICSLinkReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getVICSLinkReference()
+ * @generated
+ */
+ EClass VICS_LINK_REFERENCE = eINSTANCE.getVICSLinkReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.KoreanNodeLinkLocationReferenceImpl <em>Korean Node Link Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.KoreanNodeLinkLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getKoreanNodeLinkLocationReference()
+ * @generated
+ */
+ EClass KOREAN_NODE_LINK_LOCATION_REFERENCE = eINSTANCE.getKoreanNodeLinkLocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TETLocationReferenceImpl <em>TET Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TETLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTETLocationReference()
+ * @generated
+ */
+ EClass TET_LOCATION_REFERENCE = eINSTANCE.getTETLocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.GLRLocationReferenceImpl <em>GLR Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.GLRLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getGLRLocationReference()
+ * @generated
+ */
+ EClass GLR_LOCATION_REFERENCE = eINSTANCE.getGLRLocationReference();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.OLRLocationReferenceImpl <em>OLR Location Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.OLRLocationReferenceImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getOLRLocationReference()
+ * @generated
+ */
+ EClass OLR_LOCATION_REFERENCE = eINSTANCE.getOLRLocationReference();
+
+ /**
+ * The meta object literal for the '<em><b>Location Data</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OLR_LOCATION_REFERENCE__LOCATION_DATA = eINSTANCE.getOLRLocationReference_LocationData();
+
+ /**
+ * The meta object literal for the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TimeServiceComponentFrameImpl <em>Time Service Component Frame</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TimeServiceComponentFrameImpl
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TpegfwktypesPackageImpl#getTimeServiceComponentFrame()
+ * @generated
+ */
+ EClass TIME_SERVICE_COMPONENT_FRAME = eINSTANCE.getTimeServiceComponentFrame();
+
+ /**
+ * The meta object literal for the '<em><b>Date</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TIME_SERVICE_COMPONENT_FRAME__DATE = eINSTANCE.getTimeServiceComponentFrame_Date();
+
+ /**
+ * The meta object literal for the '<em><b>Formatted Date</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE = eINSTANCE.getTimeServiceComponentFrame_FormattedDate();
+
+ }
+
+} //TpegfwktypesPackage
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameTemplate.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameTemplate.java
new file mode 100755
index 0000000..4af089c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameTemplate.java
@@ -0,0 +1,164 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transport Frame Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getMetaInformationTODO <em>Meta Information TODO</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getSyncWord <em>Sync Word</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFieldLength <em>Field Length</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getHeaderCRC <em>Header CRC</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFrameType <em>Frame Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameTemplate()
+ * @model
+ * @generated
+ */
+public interface TransportFrameTemplate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Meta Information TODO</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta Information TODO</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Meta Information TODO</em>' attribute.
+ * @see #setMetaInformationTODO(String)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameTemplate_MetaInformationTODO()
+ * @model
+ * @generated
+ */
+ String getMetaInformationTODO();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getMetaInformationTODO <em>Meta Information TODO</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Meta Information TODO</em>' attribute.
+ * @see #getMetaInformationTODO()
+ * @generated
+ */
+ void setMetaInformationTODO(String value);
+
+ /**
+ * Returns the value of the '<em><b>Sync Word</b></em>' attribute.
+ * The default value is <code>"0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sync Word</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sync Word</em>' attribute.
+ * @see #setSyncWord(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameTemplate_SyncWord()
+ * @model default="0" required="true"
+ * @generated
+ */
+ int getSyncWord();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getSyncWord <em>Sync Word</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sync Word</em>' attribute.
+ * @see #getSyncWord()
+ * @generated
+ */
+ void setSyncWord(int value);
+
+ /**
+ * Returns the value of the '<em><b>Field Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Field Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Field Length</em>' attribute.
+ * @see #setFieldLength(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameTemplate_FieldLength()
+ * @model required="true"
+ * @generated
+ */
+ int getFieldLength();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFieldLength <em>Field Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Field Length</em>' attribute.
+ * @see #getFieldLength()
+ * @generated
+ */
+ void setFieldLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Header CRC</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Header CRC</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Header CRC</em>' attribute.
+ * @see #setHeaderCRC(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameTemplate_HeaderCRC()
+ * @model required="true"
+ * @generated
+ */
+ int getHeaderCRC();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getHeaderCRC <em>Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Header CRC</em>' attribute.
+ * @see #getHeaderCRC()
+ * @generated
+ */
+ void setHeaderCRC(int value);
+
+ /**
+ * Returns the value of the '<em><b>Frame Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Frame Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Frame Type</em>' attribute.
+ * @see #setFrameType(int)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameTemplate_FrameType()
+ * @model required="true"
+ * @generated
+ */
+ int getFrameType();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate#getFrameType <em>Frame Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Frame Type</em>' attribute.
+ * @see #getFrameType()
+ * @generated
+ */
+ void setFrameType(int value);
+
+} // TransportFrameTemplate
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType0.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType0.java
new file mode 100755
index 0000000..8dbd295
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType0.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transport Frame Type0</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0#getTransportFrameContent <em>Transport Frame Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameType0()
+ * @model
+ * @generated
+ */
+public interface TransportFrameType0 extends TransportFrameTemplate {
+ /**
+ * Returns the value of the '<em><b>Transport Frame Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transport Frame Content</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transport Frame Content</em>' containment reference.
+ * @see #setTransportFrameContent(StreamDirectoryFrame)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameType0_TransportFrameContent()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ StreamDirectoryFrame getTransportFrameContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0#getTransportFrameContent <em>Transport Frame Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transport Frame Content</em>' containment reference.
+ * @see #getTransportFrameContent()
+ * @generated
+ */
+ void setTransportFrameContent(StreamDirectoryFrame value);
+
+} // TransportFrameType0
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType1.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType1.java
new file mode 100755
index 0000000..fcc1b45
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/TransportFrameType1.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transport Frame Type1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1#getTransportFrameContent <em>Transport Frame Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameType1()
+ * @model
+ * @generated
+ */
+public interface TransportFrameType1 extends TransportFrameTemplate {
+ /**
+ * Returns the value of the '<em><b>Transport Frame Content</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transport Frame Content</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transport Frame Content</em>' containment reference.
+ * @see #setTransportFrameContent(ServiceFrame)
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getTransportFrameType1_TransportFrameContent()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ ServiceFrame getTransportFrameContent();
+
+ /**
+ * Sets the value of the '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1#getTransportFrameContent <em>Transport Frame Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transport Frame Content</em>' containment reference.
+ * @see #getTransportFrameContent()
+ * @generated
+ */
+ void setTransportFrameContent(ServiceFrame value);
+
+} // TransportFrameType1
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/VICSLinkReference.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/VICSLinkReference.java
new file mode 100755
index 0000000..af8ab9f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/VICSLinkReference.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>VICS Link Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#getVICSLinkReference()
+ * @model
+ * @generated
+ */
+public interface VICSLinkReference extends Method {
+} // VICSLinkReference
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/DLR1LocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/DLR1LocationReferenceImpl.java
new file mode 100755
index 0000000..851bf3d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/DLR1LocationReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.DLR1LocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DLR1 Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DLR1LocationReferenceImpl extends MethodImpl implements DLR1LocationReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DLR1LocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.DLR1_LOCATION_REFERENCE;
+ }
+
+} //DLR1LocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/GLRLocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/GLRLocationReferenceImpl.java
new file mode 100755
index 0000000..8244305
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/GLRLocationReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.GLRLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>GLR Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class GLRLocationReferenceImpl extends MethodImpl implements GLRLocationReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GLRLocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.GLR_LOCATION_REFERENCE;
+ }
+
+} //GLRLocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/KoreanNodeLinkLocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/KoreanNodeLinkLocationReferenceImpl.java
new file mode 100755
index 0000000..83b0afb
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/KoreanNodeLinkLocationReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.KoreanNodeLinkLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Korean Node Link Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class KoreanNodeLinkLocationReferenceImpl extends MethodImpl implements KoreanNodeLinkLocationReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected KoreanNodeLinkLocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.KOREAN_NODE_LINK_LOCATION_REFERENCE;
+ }
+
+} //KoreanNodeLinkLocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocalisedShortStringImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocalisedShortStringImpl.java
new file mode 100755
index 0000000..875ef79
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocalisedShortStringImpl.java
@@ -0,0 +1,284 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Localised Short String</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocalisedShortStringImpl#getLanguageCode <em>Language Code</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocalisedShortStringImpl#getString <em>String</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LocalisedShortStringImpl extends EObjectImpl implements LocalisedShortString {
+ /**
+ * The default value of the '{@link #getLanguageCode() <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguageCode()
+ * @generated
+ * @ordered
+ */
+ protected static final int LANGUAGE_CODE_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getLanguageCode() <em>Language Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguageCode()
+ * @generated
+ * @ordered
+ */
+ protected int languageCode = LANGUAGE_CODE_EDEFAULT;
+ /**
+ * This is true if the Language Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean languageCodeESet;
+ /**
+ * The default value of the '{@link #getString() <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getString()
+ * @generated
+ * @ordered
+ */
+ protected static final String STRING_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getString() <em>String</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getString()
+ * @generated
+ * @ordered
+ */
+ protected String string = STRING_EDEFAULT;
+ /**
+ * This is true if the String attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean stringESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocalisedShortStringImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.LOCALISED_SHORT_STRING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getLanguageCode() {
+ return languageCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguageCode(int newLanguageCode) {
+ int oldLanguageCode = languageCode;
+ languageCode = newLanguageCode;
+ boolean oldLanguageCodeESet = languageCodeESet;
+ languageCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.LOCALISED_SHORT_STRING__LANGUAGE_CODE, oldLanguageCode, languageCode, !oldLanguageCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLanguageCode() {
+ int oldLanguageCode = languageCode;
+ boolean oldLanguageCodeESet = languageCodeESet;
+ languageCode = LANGUAGE_CODE_EDEFAULT;
+ languageCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, TpegfwktypesPackage.LOCALISED_SHORT_STRING__LANGUAGE_CODE, oldLanguageCode, LANGUAGE_CODE_EDEFAULT, oldLanguageCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLanguageCode() {
+ return languageCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getString() {
+ return string;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setString(String newString) {
+ String oldString = string;
+ string = newString;
+ boolean oldStringESet = stringESet;
+ stringESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.LOCALISED_SHORT_STRING__STRING, oldString, string, !oldStringESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetString() {
+ String oldString = string;
+ boolean oldStringESet = stringESet;
+ string = STRING_EDEFAULT;
+ stringESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, TpegfwktypesPackage.LOCALISED_SHORT_STRING__STRING, oldString, STRING_EDEFAULT, oldStringESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetString() {
+ return stringESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__LANGUAGE_CODE:
+ return getLanguageCode();
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__STRING:
+ return getString();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__LANGUAGE_CODE:
+ setLanguageCode((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__STRING:
+ setString((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__LANGUAGE_CODE:
+ unsetLanguageCode();
+ return;
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__STRING:
+ unsetString();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__LANGUAGE_CODE:
+ return isSetLanguageCode();
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING__STRING:
+ return isSetString();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (languageCode: ");
+ if (languageCodeESet) result.append(languageCode); else result.append("<unset>");
+ result.append(", string: ");
+ if (stringESet) result.append(string); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //LocalisedShortStringImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocationReferencingContainerImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocationReferencingContainerImpl.java
new file mode 100755
index 0000000..193b636
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/LocationReferencingContainerImpl.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.Method;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Location Referencing Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.LocationReferencingContainerImpl#getMethod <em>Method</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LocationReferencingContainerImpl extends EObjectImpl implements LocationReferencingContainer {
+ /**
+ * The cached value of the '{@link #getMethod() <em>Method</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMethod()
+ * @generated
+ * @ordered
+ */
+ protected EList<Method> method;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocationReferencingContainerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.LOCATION_REFERENCING_CONTAINER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Method> getMethod() {
+ if (method == null) {
+ method = new EObjectContainmentEList<Method>(Method.class, this, TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER__METHOD);
+ }
+ return method;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER__METHOD:
+ return ((InternalEList<?>)getMethod()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER__METHOD:
+ return getMethod();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER__METHOD:
+ getMethod().clear();
+ getMethod().addAll((Collection<? extends Method>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER__METHOD:
+ getMethod().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER__METHOD:
+ return method != null && !method.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LocationReferencingContainerImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMasterMessageImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMasterMessageImpl.java
new file mode 100755
index 0000000..995a941
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMasterMessageImpl.java
@@ -0,0 +1,155 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>MMC Master Message</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMasterMessageImpl#getMultiPartMessageDirectory <em>Multi Part Message Directory</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MMCMasterMessageImpl extends MMCSwitchImpl implements MMCMasterMessage {
+ /**
+ * The cached value of the '{@link #getMultiPartMessageDirectory() <em>Multi Part Message Directory</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiPartMessageDirectory()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiPartMessageDirectory> multiPartMessageDirectory;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MMCMasterMessageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.MMC_MASTER_MESSAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiPartMessageDirectory> getMultiPartMessageDirectory() {
+ if (multiPartMessageDirectory == null) {
+ multiPartMessageDirectory = new EObjectContainmentEList<MultiPartMessageDirectory>(MultiPartMessageDirectory.class, this, TpegfwktypesPackage.MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY);
+ }
+ return multiPartMessageDirectory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY:
+ return ((InternalEList<?>)getMultiPartMessageDirectory()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY:
+ return getMultiPartMessageDirectory();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY:
+ getMultiPartMessageDirectory().clear();
+ getMultiPartMessageDirectory().addAll((Collection<? extends MultiPartMessageDirectory>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY:
+ getMultiPartMessageDirectory().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY:
+ return multiPartMessageDirectory != null && !multiPartMessageDirectory.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MMCMasterMessageImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMessagePartImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMessagePartImpl.java
new file mode 100755
index 0000000..076854b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCMessagePartImpl.java
@@ -0,0 +1,264 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>MMC Message Part</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl#getPartID <em>Part ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl#getUpdateMode <em>Update Mode</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCMessagePartImpl#getMasterMessageVersions <em>Master Message Versions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MMCMessagePartImpl extends MMCSwitchImpl implements MMCMessagePart {
+ /**
+ * The default value of the '{@link #getPartID() <em>Part ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartID()
+ * @generated
+ * @ordered
+ */
+ protected static final int PART_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getPartID() <em>Part ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartID()
+ * @generated
+ * @ordered
+ */
+ protected int partID = PART_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getUpdateMode() <em>Update Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpdateMode()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPDATE_MODE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getUpdateMode() <em>Update Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpdateMode()
+ * @generated
+ * @ordered
+ */
+ protected int updateMode = UPDATE_MODE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMasterMessageVersions() <em>Master Message Versions</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMasterMessageVersions()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> masterMessageVersions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MMCMessagePartImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.MMC_MESSAGE_PART;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPartID() {
+ return partID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartID(int newPartID) {
+ int oldPartID = partID;
+ partID = newPartID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_MESSAGE_PART__PART_ID, oldPartID, partID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getUpdateMode() {
+ return updateMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUpdateMode(int newUpdateMode) {
+ int oldUpdateMode = updateMode;
+ updateMode = newUpdateMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_MESSAGE_PART__UPDATE_MODE, oldUpdateMode, updateMode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Integer> getMasterMessageVersions() {
+ if (masterMessageVersions == null) {
+ masterMessageVersions = new EDataTypeUniqueEList<Integer>(Integer.class, this, TpegfwktypesPackage.MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS);
+ }
+ return masterMessageVersions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__PART_ID:
+ return getPartID();
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__UPDATE_MODE:
+ return getUpdateMode();
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS:
+ return getMasterMessageVersions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__PART_ID:
+ setPartID((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__UPDATE_MODE:
+ setUpdateMode((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS:
+ getMasterMessageVersions().clear();
+ getMasterMessageVersions().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__PART_ID:
+ setPartID(PART_ID_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__UPDATE_MODE:
+ setUpdateMode(UPDATE_MODE_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS:
+ getMasterMessageVersions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__PART_ID:
+ return partID != PART_ID_EDEFAULT;
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__UPDATE_MODE:
+ return updateMode != UPDATE_MODE_EDEFAULT;
+ case TpegfwktypesPackage.MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS:
+ return masterMessageVersions != null && !masterMessageVersions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (partID: ");
+ result.append(partID);
+ result.append(", updateMode: ");
+ result.append(updateMode);
+ result.append(", masterMessageVersions: ");
+ result.append(masterMessageVersions);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MMCMessagePartImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCSwitchImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCSwitchImpl.java
new file mode 100755
index 0000000..c90dcbe
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MMCSwitchImpl.java
@@ -0,0 +1,427 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Date;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>MMC Switch</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl#getMessageID <em>Message ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl#getVersionID <em>Version ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl#getMessageExpiryTime <em>Message Expiry Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl#isCancelFlag <em>Cancel Flag</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl#getMessageGenerationTime <em>Message Generation Time</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MMCSwitchImpl#getPriority <em>Priority</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MMCSwitchImpl extends EObjectImpl implements MMCSwitch {
+ /**
+ * The default value of the '{@link #getMessageID() <em>Message ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageID()
+ * @generated
+ * @ordered
+ */
+ protected static final int MESSAGE_ID_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getMessageID() <em>Message ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageID()
+ * @generated
+ * @ordered
+ */
+ protected int messageID = MESSAGE_ID_EDEFAULT;
+ /**
+ * The default value of the '{@link #getVersionID() <em>Version ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersionID()
+ * @generated
+ * @ordered
+ */
+ protected static final int VERSION_ID_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getVersionID() <em>Version ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersionID()
+ * @generated
+ * @ordered
+ */
+ protected int versionID = VERSION_ID_EDEFAULT;
+ /**
+ * The default value of the '{@link #getMessageExpiryTime() <em>Message Expiry Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageExpiryTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date MESSAGE_EXPIRY_TIME_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getMessageExpiryTime() <em>Message Expiry Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageExpiryTime()
+ * @generated
+ * @ordered
+ */
+ protected Date messageExpiryTime = MESSAGE_EXPIRY_TIME_EDEFAULT;
+ /**
+ * The default value of the '{@link #isCancelFlag() <em>Cancel Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCancelFlag()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CANCEL_FLAG_EDEFAULT = false;
+ /**
+ * The cached value of the '{@link #isCancelFlag() <em>Cancel Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCancelFlag()
+ * @generated
+ * @ordered
+ */
+ protected boolean cancelFlag = CANCEL_FLAG_EDEFAULT;
+ /**
+ * The default value of the '{@link #getMessageGenerationTime() <em>Message Generation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageGenerationTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date MESSAGE_GENERATION_TIME_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getMessageGenerationTime() <em>Message Generation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageGenerationTime()
+ * @generated
+ * @ordered
+ */
+ protected Date messageGenerationTime = MESSAGE_GENERATION_TIME_EDEFAULT;
+ /**
+ * The default value of the '{@link #getPriority() <em>Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPriority()
+ * @generated
+ * @ordered
+ */
+ protected static final int PRIORITY_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getPriority() <em>Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPriority()
+ * @generated
+ * @ordered
+ */
+ protected int priority = PRIORITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MMCSwitchImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.MMC_SWITCH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMessageID() {
+ return messageID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMessageID(int newMessageID) {
+ int oldMessageID = messageID;
+ messageID = newMessageID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_SWITCH__MESSAGE_ID, oldMessageID, messageID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getVersionID() {
+ return versionID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersionID(int newVersionID) {
+ int oldVersionID = versionID;
+ versionID = newVersionID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_SWITCH__VERSION_ID, oldVersionID, versionID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getMessageExpiryTime() {
+ return messageExpiryTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMessageExpiryTime(Date newMessageExpiryTime) {
+ Date oldMessageExpiryTime = messageExpiryTime;
+ messageExpiryTime = newMessageExpiryTime;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_SWITCH__MESSAGE_EXPIRY_TIME, oldMessageExpiryTime, messageExpiryTime));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCancelFlag() {
+ return cancelFlag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCancelFlag(boolean newCancelFlag) {
+ boolean oldCancelFlag = cancelFlag;
+ cancelFlag = newCancelFlag;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_SWITCH__CANCEL_FLAG, oldCancelFlag, cancelFlag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getMessageGenerationTime() {
+ return messageGenerationTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMessageGenerationTime(Date newMessageGenerationTime) {
+ Date oldMessageGenerationTime = messageGenerationTime;
+ messageGenerationTime = newMessageGenerationTime;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_SWITCH__MESSAGE_GENERATION_TIME, oldMessageGenerationTime, messageGenerationTime));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPriority() {
+ return priority;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPriority(int newPriority) {
+ int oldPriority = priority;
+ priority = newPriority;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MMC_SWITCH__PRIORITY, oldPriority, priority));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_ID:
+ return getMessageID();
+ case TpegfwktypesPackage.MMC_SWITCH__VERSION_ID:
+ return getVersionID();
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_EXPIRY_TIME:
+ return getMessageExpiryTime();
+ case TpegfwktypesPackage.MMC_SWITCH__CANCEL_FLAG:
+ return isCancelFlag();
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_GENERATION_TIME:
+ return getMessageGenerationTime();
+ case TpegfwktypesPackage.MMC_SWITCH__PRIORITY:
+ return getPriority();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_ID:
+ setMessageID((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__VERSION_ID:
+ setVersionID((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_EXPIRY_TIME:
+ setMessageExpiryTime((Date)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__CANCEL_FLAG:
+ setCancelFlag((Boolean)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_GENERATION_TIME:
+ setMessageGenerationTime((Date)newValue);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__PRIORITY:
+ setPriority((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_ID:
+ setMessageID(MESSAGE_ID_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__VERSION_ID:
+ setVersionID(VERSION_ID_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_EXPIRY_TIME:
+ setMessageExpiryTime(MESSAGE_EXPIRY_TIME_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__CANCEL_FLAG:
+ setCancelFlag(CANCEL_FLAG_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_GENERATION_TIME:
+ setMessageGenerationTime(MESSAGE_GENERATION_TIME_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MMC_SWITCH__PRIORITY:
+ setPriority(PRIORITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_ID:
+ return messageID != MESSAGE_ID_EDEFAULT;
+ case TpegfwktypesPackage.MMC_SWITCH__VERSION_ID:
+ return versionID != VERSION_ID_EDEFAULT;
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_EXPIRY_TIME:
+ return MESSAGE_EXPIRY_TIME_EDEFAULT == null ? messageExpiryTime != null : !MESSAGE_EXPIRY_TIME_EDEFAULT.equals(messageExpiryTime);
+ case TpegfwktypesPackage.MMC_SWITCH__CANCEL_FLAG:
+ return cancelFlag != CANCEL_FLAG_EDEFAULT;
+ case TpegfwktypesPackage.MMC_SWITCH__MESSAGE_GENERATION_TIME:
+ return MESSAGE_GENERATION_TIME_EDEFAULT == null ? messageGenerationTime != null : !MESSAGE_GENERATION_TIME_EDEFAULT.equals(messageGenerationTime);
+ case TpegfwktypesPackage.MMC_SWITCH__PRIORITY:
+ return priority != PRIORITY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (messageID: ");
+ result.append(messageID);
+ result.append(", versionID: ");
+ result.append(versionID);
+ result.append(", messageExpiryTime: ");
+ result.append(messageExpiryTime);
+ result.append(", cancelFlag: ");
+ result.append(cancelFlag);
+ result.append(", messageGenerationTime: ");
+ result.append(messageGenerationTime);
+ result.append(", priority: ");
+ result.append(priority);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MMCSwitchImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MessageManagementContainerImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MessageManagementContainerImpl.java
new file mode 100755
index 0000000..f1bfd87
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MessageManagementContainerImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Message Management Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MessageManagementContainerImpl extends MMCSwitchImpl implements MessageManagementContainer {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MessageManagementContainerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.MESSAGE_MANAGEMENT_CONTAINER;
+ }
+
+} //MessageManagementContainerImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MethodImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MethodImpl.java
new file mode 100755
index 0000000..c03a172
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MethodImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.Method;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MethodImpl extends EObjectImpl implements Method {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MethodImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.METHOD;
+ }
+
+} //MethodImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MultiPartMessageDirectoryImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MultiPartMessageDirectoryImpl.java
new file mode 100755
index 0000000..63b772e
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/MultiPartMessageDirectoryImpl.java
@@ -0,0 +1,222 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Part Message Directory</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MultiPartMessageDirectoryImpl#getPartID <em>Part ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.MultiPartMessageDirectoryImpl#getPartType <em>Part Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiPartMessageDirectoryImpl extends EObjectImpl implements MultiPartMessageDirectory {
+ /**
+ * The default value of the '{@link #getPartID() <em>Part ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartID()
+ * @generated
+ * @ordered
+ */
+ protected static final int PART_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getPartID() <em>Part ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartID()
+ * @generated
+ * @ordered
+ */
+ protected int partID = PART_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPartType() <em>Part Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartType()
+ * @generated
+ * @ordered
+ */
+ protected static final int PART_TYPE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getPartType() <em>Part Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartType()
+ * @generated
+ * @ordered
+ */
+ protected int partType = PART_TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiPartMessageDirectoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.MULTI_PART_MESSAGE_DIRECTORY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPartID() {
+ return partID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartID(int newPartID) {
+ int oldPartID = partID;
+ partID = newPartID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_ID, oldPartID, partID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPartType() {
+ return partType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartType(int newPartType) {
+ int oldPartType = partType;
+ partType = newPartType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE, oldPartType, partType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_ID:
+ return getPartID();
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE:
+ return getPartType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_ID:
+ setPartID((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE:
+ setPartType((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_ID:
+ setPartID(PART_ID_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE:
+ setPartType(PART_TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_ID:
+ return partID != PART_ID_EDEFAULT;
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE:
+ return partType != PART_TYPE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (partID: ");
+ result.append(partID);
+ result.append(", partType: ");
+ result.append(partType);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MultiPartMessageDirectoryImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/OLRLocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/OLRLocationReferenceImpl.java
new file mode 100755
index 0000000..dd2e9e5
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/OLRLocationReferenceImpl.java
@@ -0,0 +1,164 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>OLR Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.OLRLocationReferenceImpl#getLocationData <em>Location Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OLRLocationReferenceImpl extends MethodImpl implements OLRLocationReference {
+ /**
+ * The default value of the '{@link #getLocationData() <em>Location Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationData()
+ * @generated
+ * @ordered
+ */
+ protected static final byte[] LOCATION_DATA_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getLocationData() <em>Location Data</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocationData()
+ * @generated
+ * @ordered
+ */
+ protected byte[] locationData = LOCATION_DATA_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OLRLocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.OLR_LOCATION_REFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte[] getLocationData() {
+ return locationData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocationData(byte[] newLocationData) {
+ byte[] oldLocationData = locationData;
+ locationData = newLocationData;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.OLR_LOCATION_REFERENCE__LOCATION_DATA, oldLocationData, locationData));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.OLR_LOCATION_REFERENCE__LOCATION_DATA:
+ return getLocationData();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.OLR_LOCATION_REFERENCE__LOCATION_DATA:
+ setLocationData((byte[])newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.OLR_LOCATION_REFERENCE__LOCATION_DATA:
+ setLocationData(LOCATION_DATA_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.OLR_LOCATION_REFERENCE__LOCATION_DATA:
+ return LOCATION_DATA_EDEFAULT == null ? locationData != null : !LOCATION_DATA_EDEFAULT.equals(locationData);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (locationData: ");
+ result.append(locationData);
+ result.append(')');
+ return result.toString();
+ }
+
+} //OLRLocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameCountedProtectedImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameCountedProtectedImpl.java
new file mode 100755
index 0000000..00d8984
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameCountedProtectedImpl.java
@@ -0,0 +1,275 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Serv Comp Frame Counted Protected</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl#getMessageCount <em>Message Count</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameCountedProtectedImpl#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServCompFrameCountedProtectedImpl extends ServiceComponentFrameImpl implements ServCompFrameCountedProtected {
+ /**
+ * The default value of the '{@link #getMessageCount() <em>Message Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageCount()
+ * @generated
+ * @ordered
+ */
+ protected static final int MESSAGE_COUNT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMessageCount() <em>Message Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageCount()
+ * @generated
+ * @ordered
+ */
+ protected int messageCount = MESSAGE_COUNT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected static final Object APPLICATION_CONTENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected Object applicationContent = APPLICATION_CONTENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int DATA_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected int dataCRC = DATA_CRC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServCompFrameCountedProtectedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERV_COMP_FRAME_COUNTED_PROTECTED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMessageCount() {
+ return messageCount;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMessageCount(int newMessageCount) {
+ int oldMessageCount = messageCount;
+ messageCount = newMessageCount;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT, oldMessageCount, messageCount));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getApplicationContent() {
+ return applicationContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicationContent(Object newApplicationContent) {
+ Object oldApplicationContent = applicationContent;
+ applicationContent = newApplicationContent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT, oldApplicationContent, applicationContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDataCRC() {
+ return dataCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataCRC(int newDataCRC) {
+ int oldDataCRC = dataCRC;
+ dataCRC = newDataCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC, oldDataCRC, dataCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT:
+ return getMessageCount();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ return getApplicationContent();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC:
+ return getDataCRC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT:
+ setMessageCount((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC:
+ setDataCRC((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT:
+ setMessageCount(MESSAGE_COUNT_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(APPLICATION_CONTENT_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC:
+ setDataCRC(DATA_CRC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT:
+ return messageCount != MESSAGE_COUNT_EDEFAULT;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ return APPLICATION_CONTENT_EDEFAULT == null ? applicationContent != null : !APPLICATION_CONTENT_EDEFAULT.equals(applicationContent);
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC:
+ return dataCRC != DATA_CRC_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (messageCount: ");
+ result.append(messageCount);
+ result.append(", applicationContent: ");
+ result.append(applicationContent);
+ result.append(", dataCRC: ");
+ result.append(dataCRC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServCompFrameCountedProtectedImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedCountedProtectedImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedCountedProtectedImpl.java
new file mode 100755
index 0000000..5fcd2a7
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedCountedProtectedImpl.java
@@ -0,0 +1,329 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Serv Comp Frame Prioritised Counted Protected</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl#getGroupPriority <em>Group Priority</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl#getMessageCount <em>Message Count</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedCountedProtectedImpl#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServCompFramePrioritisedCountedProtectedImpl extends ServiceComponentFrameImpl implements ServCompFramePrioritisedCountedProtected {
+ /**
+ * The default value of the '{@link #getGroupPriority() <em>Group Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroupPriority()
+ * @generated
+ * @ordered
+ */
+ protected static final int GROUP_PRIORITY_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getGroupPriority() <em>Group Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroupPriority()
+ * @generated
+ * @ordered
+ */
+ protected int groupPriority = GROUP_PRIORITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMessageCount() <em>Message Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageCount()
+ * @generated
+ * @ordered
+ */
+ protected static final int MESSAGE_COUNT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMessageCount() <em>Message Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageCount()
+ * @generated
+ * @ordered
+ */
+ protected int messageCount = MESSAGE_COUNT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected static final Object APPLICATION_CONTENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected Object applicationContent = APPLICATION_CONTENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int DATA_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected int dataCRC = DATA_CRC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServCompFramePrioritisedCountedProtectedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getGroupPriority() {
+ return groupPriority;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGroupPriority(int newGroupPriority) {
+ int oldGroupPriority = groupPriority;
+ groupPriority = newGroupPriority;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY, oldGroupPriority, groupPriority));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMessageCount() {
+ return messageCount;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMessageCount(int newMessageCount) {
+ int oldMessageCount = messageCount;
+ messageCount = newMessageCount;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT, oldMessageCount, messageCount));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getApplicationContent() {
+ return applicationContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicationContent(Object newApplicationContent) {
+ Object oldApplicationContent = applicationContent;
+ applicationContent = newApplicationContent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT, oldApplicationContent, applicationContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDataCRC() {
+ return dataCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataCRC(int newDataCRC) {
+ int oldDataCRC = dataCRC;
+ dataCRC = newDataCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC, oldDataCRC, dataCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY:
+ return getGroupPriority();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT:
+ return getMessageCount();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ return getApplicationContent();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC:
+ return getDataCRC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY:
+ setGroupPriority((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT:
+ setMessageCount((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC:
+ setDataCRC((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY:
+ setGroupPriority(GROUP_PRIORITY_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT:
+ setMessageCount(MESSAGE_COUNT_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(APPLICATION_CONTENT_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC:
+ setDataCRC(DATA_CRC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY:
+ return groupPriority != GROUP_PRIORITY_EDEFAULT;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT:
+ return messageCount != MESSAGE_COUNT_EDEFAULT;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT:
+ return APPLICATION_CONTENT_EDEFAULT == null ? applicationContent != null : !APPLICATION_CONTENT_EDEFAULT.equals(applicationContent);
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC:
+ return dataCRC != DATA_CRC_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (groupPriority: ");
+ result.append(groupPriority);
+ result.append(", messageCount: ");
+ result.append(messageCount);
+ result.append(", applicationContent: ");
+ result.append(applicationContent);
+ result.append(", dataCRC: ");
+ result.append(dataCRC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServCompFramePrioritisedCountedProtectedImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedProtectedImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedProtectedImpl.java
new file mode 100755
index 0000000..7cd743b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFramePrioritisedProtectedImpl.java
@@ -0,0 +1,275 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Serv Comp Frame Prioritised Protected</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl#getGroupPriority <em>Group Priority</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFramePrioritisedProtectedImpl#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServCompFramePrioritisedProtectedImpl extends ServiceComponentFrameImpl implements ServCompFramePrioritisedProtected {
+ /**
+ * The default value of the '{@link #getGroupPriority() <em>Group Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroupPriority()
+ * @generated
+ * @ordered
+ */
+ protected static final int GROUP_PRIORITY_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getGroupPriority() <em>Group Priority</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroupPriority()
+ * @generated
+ * @ordered
+ */
+ protected int groupPriority = GROUP_PRIORITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected static final Object APPLICATION_CONTENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected Object applicationContent = APPLICATION_CONTENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int DATA_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected int dataCRC = DATA_CRC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServCompFramePrioritisedProtectedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERV_COMP_FRAME_PRIORITISED_PROTECTED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getGroupPriority() {
+ return groupPriority;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGroupPriority(int newGroupPriority) {
+ int oldGroupPriority = groupPriority;
+ groupPriority = newGroupPriority;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY, oldGroupPriority, groupPriority));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getApplicationContent() {
+ return applicationContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicationContent(Object newApplicationContent) {
+ Object oldApplicationContent = applicationContent;
+ applicationContent = newApplicationContent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT, oldApplicationContent, applicationContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDataCRC() {
+ return dataCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataCRC(int newDataCRC) {
+ int oldDataCRC = dataCRC;
+ dataCRC = newDataCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC, oldDataCRC, dataCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY:
+ return getGroupPriority();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT:
+ return getApplicationContent();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC:
+ return getDataCRC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY:
+ setGroupPriority((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC:
+ setDataCRC((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY:
+ setGroupPriority(GROUP_PRIORITY_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(APPLICATION_CONTENT_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC:
+ setDataCRC(DATA_CRC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY:
+ return groupPriority != GROUP_PRIORITY_EDEFAULT;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT:
+ return APPLICATION_CONTENT_EDEFAULT == null ? applicationContent != null : !APPLICATION_CONTENT_EDEFAULT.equals(applicationContent);
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC:
+ return dataCRC != DATA_CRC_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (groupPriority: ");
+ result.append(groupPriority);
+ result.append(", applicationContent: ");
+ result.append(applicationContent);
+ result.append(", dataCRC: ");
+ result.append(dataCRC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServCompFramePrioritisedProtectedImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameProtectedImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameProtectedImpl.java
new file mode 100755
index 0000000..84ddc66
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompFrameProtectedImpl.java
@@ -0,0 +1,221 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Serv Comp Frame Protected</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameProtectedImpl#getApplicationContent <em>Application Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompFrameProtectedImpl#getDataCRC <em>Data CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServCompFrameProtectedImpl extends ServiceComponentFrameImpl implements ServCompFrameProtected {
+ /**
+ * The default value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected static final Object APPLICATION_CONTENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getApplicationContent() <em>Application Content</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplicationContent()
+ * @generated
+ * @ordered
+ */
+ protected Object applicationContent = APPLICATION_CONTENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int DATA_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDataCRC() <em>Data CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCRC()
+ * @generated
+ * @ordered
+ */
+ protected int dataCRC = DATA_CRC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServCompFrameProtectedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERV_COMP_FRAME_PROTECTED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getApplicationContent() {
+ return applicationContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplicationContent(Object newApplicationContent) {
+ Object oldApplicationContent = applicationContent;
+ applicationContent = newApplicationContent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT, oldApplicationContent, applicationContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDataCRC() {
+ return dataCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataCRC(int newDataCRC) {
+ int oldDataCRC = dataCRC;
+ dataCRC = newDataCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__DATA_CRC, oldDataCRC, dataCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT:
+ return getApplicationContent();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__DATA_CRC:
+ return getDataCRC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(newValue);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__DATA_CRC:
+ setDataCRC((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT:
+ setApplicationContent(APPLICATION_CONTENT_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__DATA_CRC:
+ setDataCRC(DATA_CRC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT:
+ return APPLICATION_CONTENT_EDEFAULT == null ? applicationContent != null : !APPLICATION_CONTENT_EDEFAULT.equals(applicationContent);
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED__DATA_CRC:
+ return dataCRC != DATA_CRC_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (applicationContent: ");
+ result.append(applicationContent);
+ result.append(", dataCRC: ");
+ result.append(dataCRC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServCompFrameProtectedImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompMultiplexImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompMultiplexImpl.java
new file mode 100755
index 0000000..e5057d3
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServCompMultiplexImpl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Serv Comp Multiplex</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServCompMultiplexImpl#getMultiplexContent <em>Multiplex Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServCompMultiplexImpl extends EObjectImpl implements ServCompMultiplex {
+ /**
+ * The cached value of the '{@link #getMultiplexContent() <em>Multiplex Content</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiplexContent()
+ * @generated
+ * @ordered
+ */
+ protected EList<ServiceComponentFrame> multiplexContent;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServCompMultiplexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERV_COMP_MULTIPLEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ServiceComponentFrame> getMultiplexContent() {
+ if (multiplexContent == null) {
+ multiplexContent = new EObjectContainmentEList<ServiceComponentFrame>(ServiceComponentFrame.class, this, TpegfwktypesPackage.SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT);
+ }
+ return multiplexContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT:
+ return ((InternalEList<?>)getMultiplexContent()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT:
+ return getMultiplexContent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT:
+ getMultiplexContent().clear();
+ getMultiplexContent().addAll((Collection<? extends ServiceComponentFrame>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT:
+ getMultiplexContent().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT:
+ return multiplexContent != null && !multiplexContent.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ServCompMultiplexImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceComponentFrameImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceComponentFrameImpl.java
new file mode 100755
index 0000000..5411d9b
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceComponentFrameImpl.java
@@ -0,0 +1,274 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service Component Frame</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl#getSCID <em>SCID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl#getFieldLength <em>Field Length</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceComponentFrameImpl#getScHeaderCRC <em>Sc Header CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServiceComponentFrameImpl extends EObjectImpl implements ServiceComponentFrame {
+ /**
+ * The default value of the '{@link #getSCID() <em>SCID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSCID()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SCID_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSCID() <em>SCID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSCID()
+ * @generated
+ * @ordered
+ */
+ protected byte scid = SCID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFieldLength() <em>Field Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFieldLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int FIELD_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getFieldLength() <em>Field Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFieldLength()
+ * @generated
+ * @ordered
+ */
+ protected int fieldLength = FIELD_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getScHeaderCRC() <em>Sc Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScHeaderCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int SC_HEADER_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getScHeaderCRC() <em>Sc Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScHeaderCRC()
+ * @generated
+ * @ordered
+ */
+ protected int scHeaderCRC = SC_HEADER_CRC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServiceComponentFrameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERVICE_COMPONENT_FRAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSCID() {
+ return scid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSCID(byte newSCID) {
+ byte oldSCID = scid;
+ scid = newSCID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SCID, oldSCID, scid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getFieldLength() {
+ return fieldLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFieldLength(int newFieldLength) {
+ int oldFieldLength = fieldLength;
+ fieldLength = newFieldLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__FIELD_LENGTH, oldFieldLength, fieldLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getScHeaderCRC() {
+ return scHeaderCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setScHeaderCRC(int newScHeaderCRC) {
+ int oldScHeaderCRC = scHeaderCRC;
+ scHeaderCRC = newScHeaderCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SC_HEADER_CRC, oldScHeaderCRC, scHeaderCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SCID:
+ return getSCID();
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__FIELD_LENGTH:
+ return getFieldLength();
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SC_HEADER_CRC:
+ return getScHeaderCRC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SCID:
+ setSCID((Byte)newValue);
+ return;
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__FIELD_LENGTH:
+ setFieldLength((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SC_HEADER_CRC:
+ setScHeaderCRC((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SCID:
+ setSCID(SCID_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__FIELD_LENGTH:
+ setFieldLength(FIELD_LENGTH_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SC_HEADER_CRC:
+ setScHeaderCRC(SC_HEADER_CRC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SCID:
+ return scid != SCID_EDEFAULT;
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__FIELD_LENGTH:
+ return fieldLength != FIELD_LENGTH_EDEFAULT;
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME__SC_HEADER_CRC:
+ return scHeaderCRC != SC_HEADER_CRC_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (SCID: ");
+ result.append(scid);
+ result.append(", fieldLength: ");
+ result.append(fieldLength);
+ result.append(", scHeaderCRC: ");
+ result.append(scHeaderCRC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServiceComponentFrameImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceFrameImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceFrameImpl.java
new file mode 100755
index 0000000..22992e3
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceFrameImpl.java
@@ -0,0 +1,316 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service Frame</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl#getServEncID <em>Serv Enc ID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl#getServiceFrameContent <em>Service Frame Content</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceFrameImpl#getSID <em>SID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServiceFrameImpl extends EObjectImpl implements ServiceFrame {
+ /**
+ * The default value of the '{@link #getServEncID() <em>Serv Enc ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServEncID()
+ * @generated
+ * @ordered
+ */
+ protected static final int SERV_ENC_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getServEncID() <em>Serv Enc ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServEncID()
+ * @generated
+ * @ordered
+ */
+ protected int servEncID = SERV_ENC_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getServiceFrameContent() <em>Service Frame Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServiceFrameContent()
+ * @generated
+ * @ordered
+ */
+ protected ServCompMultiplex serviceFrameContent;
+
+ /**
+ * The cached value of the '{@link #getSID() <em>SID</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSID()
+ * @generated
+ * @ordered
+ */
+ protected ServiceIdentifier sid;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServiceFrameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERVICE_FRAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getServEncID() {
+ return servEncID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServEncID(int newServEncID) {
+ int oldServEncID = servEncID;
+ servEncID = newServEncID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_FRAME__SERV_ENC_ID, oldServEncID, servEncID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServCompMultiplex getServiceFrameContent() {
+ return serviceFrameContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetServiceFrameContent(ServCompMultiplex newServiceFrameContent, NotificationChain msgs) {
+ ServCompMultiplex oldServiceFrameContent = serviceFrameContent;
+ serviceFrameContent = newServiceFrameContent;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT, oldServiceFrameContent, newServiceFrameContent);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServiceFrameContent(ServCompMultiplex newServiceFrameContent) {
+ if (newServiceFrameContent != serviceFrameContent) {
+ NotificationChain msgs = null;
+ if (serviceFrameContent != null)
+ msgs = ((InternalEObject)serviceFrameContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT, null, msgs);
+ if (newServiceFrameContent != null)
+ msgs = ((InternalEObject)newServiceFrameContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT, null, msgs);
+ msgs = basicSetServiceFrameContent(newServiceFrameContent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT, newServiceFrameContent, newServiceFrameContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceIdentifier getSID() {
+ return sid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSID(ServiceIdentifier newSID, NotificationChain msgs) {
+ ServiceIdentifier oldSID = sid;
+ sid = newSID;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_FRAME__SID, oldSID, newSID);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSID(ServiceIdentifier newSID) {
+ if (newSID != sid) {
+ NotificationChain msgs = null;
+ if (sid != null)
+ msgs = ((InternalEObject)sid).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.SERVICE_FRAME__SID, null, msgs);
+ if (newSID != null)
+ msgs = ((InternalEObject)newSID).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.SERVICE_FRAME__SID, null, msgs);
+ msgs = basicSetSID(newSID, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_FRAME__SID, newSID, newSID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT:
+ return basicSetServiceFrameContent(null, msgs);
+ case TpegfwktypesPackage.SERVICE_FRAME__SID:
+ return basicSetSID(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_FRAME__SERV_ENC_ID:
+ return getServEncID();
+ case TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT:
+ return getServiceFrameContent();
+ case TpegfwktypesPackage.SERVICE_FRAME__SID:
+ return getSID();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_FRAME__SERV_ENC_ID:
+ setServEncID((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT:
+ setServiceFrameContent((ServCompMultiplex)newValue);
+ return;
+ case TpegfwktypesPackage.SERVICE_FRAME__SID:
+ setSID((ServiceIdentifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_FRAME__SERV_ENC_ID:
+ setServEncID(SERV_ENC_ID_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT:
+ setServiceFrameContent((ServCompMultiplex)null);
+ return;
+ case TpegfwktypesPackage.SERVICE_FRAME__SID:
+ setSID((ServiceIdentifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_FRAME__SERV_ENC_ID:
+ return servEncID != SERV_ENC_ID_EDEFAULT;
+ case TpegfwktypesPackage.SERVICE_FRAME__SERVICE_FRAME_CONTENT:
+ return serviceFrameContent != null;
+ case TpegfwktypesPackage.SERVICE_FRAME__SID:
+ return sid != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (servEncID: ");
+ result.append(servEncID);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServiceFrameImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceIdentifierImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceIdentifierImpl.java
new file mode 100755
index 0000000..9e0c5c8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/ServiceIdentifierImpl.java
@@ -0,0 +1,276 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl#getSidA <em>Sid A</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl#getSidB <em>Sid B</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.ServiceIdentifierImpl#getSidC <em>Sid C</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServiceIdentifierImpl extends EObjectImpl implements ServiceIdentifier {
+ /**
+ * The default value of the '{@link #getSidA() <em>Sid A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSidA()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SID_A_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSidA() <em>Sid A</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSidA()
+ * @generated
+ * @ordered
+ */
+ protected byte sidA = SID_A_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSidB() <em>Sid B</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSidB()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SID_B_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSidB() <em>Sid B</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSidB()
+ * @generated
+ * @ordered
+ */
+ protected byte sidB = SID_B_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSidC() <em>Sid C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSidC()
+ * @generated
+ * @ordered
+ */
+ protected static final byte SID_C_EDEFAULT = 0x00;
+
+ /**
+ * The cached value of the '{@link #getSidC() <em>Sid C</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSidC()
+ * @generated
+ * @ordered
+ */
+ protected byte sidC = SID_C_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServiceIdentifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.SERVICE_IDENTIFIER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSidA() {
+ return sidA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSidA(byte newSidA) {
+ byte oldSidA = sidA;
+ sidA = newSidA;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_A, oldSidA, sidA));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSidB() {
+ return sidB;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSidB(byte newSidB) {
+ byte oldSidB = sidB;
+ sidB = newSidB;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_B, oldSidB, sidB));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public byte getSidC() {
+ return sidC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSidC(byte newSidC) {
+ byte oldSidC = sidC;
+ sidC = newSidC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_C, oldSidC, sidC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_A:
+ return getSidA();
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_B:
+ return getSidB();
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_C:
+ return getSidC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_A:
+ setSidA((Byte)newValue);
+ return;
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_B:
+ setSidB((Byte)newValue);
+ return;
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_C:
+ setSidC((Byte)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_A:
+ setSidA(SID_A_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_B:
+ setSidB(SID_B_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_C:
+ setSidC(SID_C_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_A:
+ return sidA != SID_A_EDEFAULT;
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_B:
+ return sidB != SID_B_EDEFAULT;
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER__SID_C:
+ return sidC != SID_C_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (sidA: ");
+ result.append(sidA);
+ result.append(", sidB: ");
+ result.append(sidB);
+ result.append(", sidC: ");
+ result.append(sidC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ServiceIdentifierImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/StreamDirectoryFrameImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/StreamDirectoryFrameImpl.java
new file mode 100755
index 0000000..1491e14
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/StreamDirectoryFrameImpl.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stream Directory Frame</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl#getSID <em>SID</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl#getNumberOfServices <em>Number Of Services</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.StreamDirectoryFrameImpl#getHeaderCRC <em>Header CRC</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StreamDirectoryFrameImpl extends EObjectImpl implements StreamDirectoryFrame {
+ /**
+ * The cached value of the '{@link #getSID() <em>SID</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSID()
+ * @generated
+ * @ordered
+ */
+ protected EList<ServiceIdentifier> sid;
+
+ /**
+ * The default value of the '{@link #getNumberOfServices() <em>Number Of Services</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfServices()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUMBER_OF_SERVICES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNumberOfServices() <em>Number Of Services</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfServices()
+ * @generated
+ * @ordered
+ */
+ protected int numberOfServices = NUMBER_OF_SERVICES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHeaderCRC() <em>Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeaderCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int HEADER_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getHeaderCRC() <em>Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeaderCRC()
+ * @generated
+ * @ordered
+ */
+ protected int headerCRC = HEADER_CRC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StreamDirectoryFrameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.STREAM_DIRECTORY_FRAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ServiceIdentifier> getSID() {
+ if (sid == null) {
+ sid = new EObjectContainmentEList<ServiceIdentifier>(ServiceIdentifier.class, this, TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__SID);
+ }
+ return sid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumberOfServices() {
+ return numberOfServices;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfServices(int newNumberOfServices) {
+ int oldNumberOfServices = numberOfServices;
+ numberOfServices = newNumberOfServices;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES, oldNumberOfServices, numberOfServices));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHeaderCRC() {
+ return headerCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHeaderCRC(int newHeaderCRC) {
+ int oldHeaderCRC = headerCRC;
+ headerCRC = newHeaderCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__HEADER_CRC, oldHeaderCRC, headerCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__SID:
+ return ((InternalEList<?>)getSID()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__SID:
+ return getSID();
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES:
+ return getNumberOfServices();
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__HEADER_CRC:
+ return getHeaderCRC();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__SID:
+ getSID().clear();
+ getSID().addAll((Collection<? extends ServiceIdentifier>)newValue);
+ return;
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES:
+ setNumberOfServices((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__HEADER_CRC:
+ setHeaderCRC((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__SID:
+ getSID().clear();
+ return;
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES:
+ setNumberOfServices(NUMBER_OF_SERVICES_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__HEADER_CRC:
+ setHeaderCRC(HEADER_CRC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__SID:
+ return sid != null && !sid.isEmpty();
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES:
+ return numberOfServices != NUMBER_OF_SERVICES_EDEFAULT;
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME__HEADER_CRC:
+ return headerCRC != HEADER_CRC_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (numberOfServices: ");
+ result.append(numberOfServices);
+ result.append(", headerCRC: ");
+ result.append(headerCRC);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StreamDirectoryFrameImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TETLocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TETLocationReferenceImpl.java
new file mode 100755
index 0000000..17da7ce
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TETLocationReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TETLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TET Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TETLocationReferenceImpl extends MethodImpl implements TETLocationReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TETLocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TET_LOCATION_REFERENCE;
+ }
+
+} //TETLocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TMCLocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TMCLocationReferenceImpl.java
new file mode 100755
index 0000000..8e7b76f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TMCLocationReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TMCLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TMC Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TMCLocationReferenceImpl extends MethodImpl implements TMCLocationReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TMCLocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TMC_LOCATION_REFERENCE;
+ }
+
+} //TMCLocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TPEGLocationReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TPEGLocationReferenceImpl.java
new file mode 100755
index 0000000..986c519
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TPEGLocationReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TPEGLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TPEG Location Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TPEGLocationReferenceImpl extends MethodImpl implements TPEGLocationReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TPEGLocationReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TPEG_LOCATION_REFERENCE;
+ }
+
+} //TPEGLocationReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TimeServiceComponentFrameImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TimeServiceComponentFrameImpl.java
new file mode 100755
index 0000000..5810631
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TimeServiceComponentFrameImpl.java
@@ -0,0 +1,291 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Service Component Frame</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TimeServiceComponentFrameImpl#getDate <em>Date</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TimeServiceComponentFrameImpl#getFormattedDate <em>Formatted Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeServiceComponentFrameImpl extends ServiceComponentFrameImpl implements TimeServiceComponentFrame {
+ /**
+ * The default value of the '{@link #getDate() <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDate()
+ * @generated
+ * @ordered
+ */
+ protected static final Date DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDate() <em>Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDate()
+ * @generated
+ * @ordered
+ */
+ protected Date date = DATE_EDEFAULT;
+
+ /**
+ * This is true if the Date attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dateESet;
+
+ /**
+ * The default value of the '{@link #getFormattedDate() <em>Formatted Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormattedDate()
+ * @generated
+ * @ordered
+ */
+ protected static final String FORMATTED_DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFormattedDate() <em>Formatted Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormattedDate()
+ * @generated
+ * @ordered
+ */
+ protected String formattedDate = FORMATTED_DATE_EDEFAULT;
+
+ /**
+ * This is true if the Formatted Date attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean formattedDateESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TimeServiceComponentFrameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TIME_SERVICE_COMPONENT_FRAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getDate() {
+ return date;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDate(Date newDate) {
+ Date oldDate = date;
+ date = newDate;
+ boolean oldDateESet = dateESet;
+ dateESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__DATE, oldDate, date, !oldDateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDate() {
+ Date oldDate = date;
+ boolean oldDateESet = dateESet;
+ date = DATE_EDEFAULT;
+ dateESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__DATE, oldDate, DATE_EDEFAULT, oldDateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDate() {
+ return dateESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFormattedDate() {
+ return formattedDate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFormattedDate(String newFormattedDate) {
+ String oldFormattedDate = formattedDate;
+ formattedDate = newFormattedDate;
+ boolean oldFormattedDateESet = formattedDateESet;
+ formattedDateESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE, oldFormattedDate, formattedDate, !oldFormattedDateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetFormattedDate() {
+ String oldFormattedDate = formattedDate;
+ boolean oldFormattedDateESet = formattedDateESet;
+ formattedDate = FORMATTED_DATE_EDEFAULT;
+ formattedDateESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE, oldFormattedDate, FORMATTED_DATE_EDEFAULT, oldFormattedDateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFormattedDate() {
+ return formattedDateESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__DATE:
+ return getDate();
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE:
+ return getFormattedDate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__DATE:
+ setDate((Date)newValue);
+ return;
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE:
+ setFormattedDate((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__DATE:
+ unsetDate();
+ return;
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE:
+ unsetFormattedDate();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__DATE:
+ return isSetDate();
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE:
+ return isSetFormattedDate();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (date: ");
+ if (dateESet) result.append(date); else result.append("<unset>");
+ result.append(", formattedDate: ");
+ if (formattedDateESet) result.append(formattedDate); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //TimeServiceComponentFrameImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesFactoryImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesFactoryImpl.java
new file mode 100755
index 0000000..a430eae
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesFactoryImpl.java
@@ -0,0 +1,408 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TpegfwktypesFactoryImpl extends EFactoryImpl implements TpegfwktypesFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TpegfwktypesFactory init() {
+ try {
+ TpegfwktypesFactory theTpegfwktypesFactory = (TpegfwktypesFactory)EPackage.Registry.INSTANCE.getEFactory(TpegfwktypesPackage.eNS_URI);
+ if (theTpegfwktypesFactory != null) {
+ return theTpegfwktypesFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new TpegfwktypesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TpegfwktypesFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING: return createLocalisedShortString();
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER: return createLocationReferencingContainer();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE: return createTransportFrameTemplate();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0: return createTransportFrameType0();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1: return createTransportFrameType1();
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME: return createServiceComponentFrame();
+ case TpegfwktypesPackage.SERVICE_FRAME: return createServiceFrame();
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME: return createStreamDirectoryFrame();
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX: return createServCompMultiplex();
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER: return createServiceIdentifier();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED: return createServCompFrameProtected();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED: return createServCompFrameCountedProtected();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED: return createServCompFramePrioritisedProtected();
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED: return createServCompFramePrioritisedCountedProtected();
+ case TpegfwktypesPackage.MMC_SWITCH: return createMMCSwitch();
+ case TpegfwktypesPackage.MESSAGE_MANAGEMENT_CONTAINER: return createMessageManagementContainer();
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE: return createMMCMasterMessage();
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY: return createMultiPartMessageDirectory();
+ case TpegfwktypesPackage.MMC_MESSAGE_PART: return createMMCMessagePart();
+ case TpegfwktypesPackage.METHOD: return createMethod();
+ case TpegfwktypesPackage.TPEG_LOCATION_REFERENCE: return createTPEGLocationReference();
+ case TpegfwktypesPackage.DLR1_LOCATION_REFERENCE: return createDLR1LocationReference();
+ case TpegfwktypesPackage.TMC_LOCATION_REFERENCE: return createTMCLocationReference();
+ case TpegfwktypesPackage.VICS_LINK_REFERENCE: return createVICSLinkReference();
+ case TpegfwktypesPackage.KOREAN_NODE_LINK_LOCATION_REFERENCE: return createKoreanNodeLinkLocationReference();
+ case TpegfwktypesPackage.TET_LOCATION_REFERENCE: return createTETLocationReference();
+ case TpegfwktypesPackage.GLR_LOCATION_REFERENCE: return createGLRLocationReference();
+ case TpegfwktypesPackage.OLR_LOCATION_REFERENCE: return createOLRLocationReference();
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME: return createTimeServiceComponentFrame();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocalisedShortString createLocalisedShortString() {
+ LocalisedShortStringImpl localisedShortString = new LocalisedShortStringImpl();
+ return localisedShortString;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LocationReferencingContainer createLocationReferencingContainer() {
+ LocationReferencingContainerImpl locationReferencingContainer = new LocationReferencingContainerImpl();
+ return locationReferencingContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransportFrameTemplate createTransportFrameTemplate() {
+ TransportFrameTemplateImpl transportFrameTemplate = new TransportFrameTemplateImpl();
+ return transportFrameTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransportFrameType0 createTransportFrameType0() {
+ TransportFrameType0Impl transportFrameType0 = new TransportFrameType0Impl();
+ return transportFrameType0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransportFrameType1 createTransportFrameType1() {
+ TransportFrameType1Impl transportFrameType1 = new TransportFrameType1Impl();
+ return transportFrameType1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceComponentFrame createServiceComponentFrame() {
+ ServiceComponentFrameImpl serviceComponentFrame = new ServiceComponentFrameImpl();
+ return serviceComponentFrame;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceFrame createServiceFrame() {
+ ServiceFrameImpl serviceFrame = new ServiceFrameImpl();
+ return serviceFrame;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StreamDirectoryFrame createStreamDirectoryFrame() {
+ StreamDirectoryFrameImpl streamDirectoryFrame = new StreamDirectoryFrameImpl();
+ return streamDirectoryFrame;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServCompMultiplex createServCompMultiplex() {
+ ServCompMultiplexImpl servCompMultiplex = new ServCompMultiplexImpl();
+ return servCompMultiplex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceIdentifier createServiceIdentifier() {
+ ServiceIdentifierImpl serviceIdentifier = new ServiceIdentifierImpl();
+ return serviceIdentifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServCompFrameProtected createServCompFrameProtected() {
+ ServCompFrameProtectedImpl servCompFrameProtected = new ServCompFrameProtectedImpl();
+ return servCompFrameProtected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServCompFrameCountedProtected createServCompFrameCountedProtected() {
+ ServCompFrameCountedProtectedImpl servCompFrameCountedProtected = new ServCompFrameCountedProtectedImpl();
+ return servCompFrameCountedProtected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServCompFramePrioritisedProtected createServCompFramePrioritisedProtected() {
+ ServCompFramePrioritisedProtectedImpl servCompFramePrioritisedProtected = new ServCompFramePrioritisedProtectedImpl();
+ return servCompFramePrioritisedProtected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServCompFramePrioritisedCountedProtected createServCompFramePrioritisedCountedProtected() {
+ ServCompFramePrioritisedCountedProtectedImpl servCompFramePrioritisedCountedProtected = new ServCompFramePrioritisedCountedProtectedImpl();
+ return servCompFramePrioritisedCountedProtected;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MMCSwitch createMMCSwitch() {
+ MMCSwitchImpl mmcSwitch = new MMCSwitchImpl();
+ return mmcSwitch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MessageManagementContainer createMessageManagementContainer() {
+ MessageManagementContainerImpl messageManagementContainer = new MessageManagementContainerImpl();
+ return messageManagementContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MMCMasterMessage createMMCMasterMessage() {
+ MMCMasterMessageImpl mmcMasterMessage = new MMCMasterMessageImpl();
+ return mmcMasterMessage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPartMessageDirectory createMultiPartMessageDirectory() {
+ MultiPartMessageDirectoryImpl multiPartMessageDirectory = new MultiPartMessageDirectoryImpl();
+ return multiPartMessageDirectory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MMCMessagePart createMMCMessagePart() {
+ MMCMessagePartImpl mmcMessagePart = new MMCMessagePartImpl();
+ return mmcMessagePart;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Method createMethod() {
+ MethodImpl method = new MethodImpl();
+ return method;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TPEGLocationReference createTPEGLocationReference() {
+ TPEGLocationReferenceImpl tpegLocationReference = new TPEGLocationReferenceImpl();
+ return tpegLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DLR1LocationReference createDLR1LocationReference() {
+ DLR1LocationReferenceImpl dlr1LocationReference = new DLR1LocationReferenceImpl();
+ return dlr1LocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TMCLocationReference createTMCLocationReference() {
+ TMCLocationReferenceImpl tmcLocationReference = new TMCLocationReferenceImpl();
+ return tmcLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VICSLinkReference createVICSLinkReference() {
+ VICSLinkReferenceImpl vicsLinkReference = new VICSLinkReferenceImpl();
+ return vicsLinkReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public KoreanNodeLinkLocationReference createKoreanNodeLinkLocationReference() {
+ KoreanNodeLinkLocationReferenceImpl koreanNodeLinkLocationReference = new KoreanNodeLinkLocationReferenceImpl();
+ return koreanNodeLinkLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TETLocationReference createTETLocationReference() {
+ TETLocationReferenceImpl tetLocationReference = new TETLocationReferenceImpl();
+ return tetLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GLRLocationReference createGLRLocationReference() {
+ GLRLocationReferenceImpl glrLocationReference = new GLRLocationReferenceImpl();
+ return glrLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OLRLocationReference createOLRLocationReference() {
+ OLRLocationReferenceImpl olrLocationReference = new OLRLocationReferenceImpl();
+ return olrLocationReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeServiceComponentFrame createTimeServiceComponentFrame() {
+ TimeServiceComponentFrameImpl timeServiceComponentFrame = new TimeServiceComponentFrameImpl();
+ return timeServiceComponentFrame;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TpegfwktypesPackage getTpegfwktypesPackage() {
+ return (TpegfwktypesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static TpegfwktypesPackage getPackage() {
+ return TpegfwktypesPackage.eINSTANCE;
+ }
+
+} //TpegfwktypesFactoryImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesPackageImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesPackageImpl.java
new file mode 100755
index 0000000..7674e60
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TpegfwktypesPackageImpl.java
@@ -0,0 +1,1348 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.DLR1LocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.GLRLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.KoreanNodeLinkLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.Method;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TETLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TMCLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TPEGLocationReference;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesFactory;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.VICSLinkReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TpegfwktypesPackageImpl extends EPackageImpl implements TpegfwktypesPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass localisedShortStringEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass locationReferencingContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transportFrameTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transportFrameType0EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transportFrameType1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serviceComponentFrameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serviceFrameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass streamDirectoryFrameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass servCompMultiplexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serviceIdentifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass servCompFrameProtectedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass servCompFrameCountedProtectedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass servCompFramePrioritisedProtectedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass servCompFramePrioritisedCountedProtectedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mmcSwitchEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass messageManagementContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mmcMasterMessageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiPartMessageDirectoryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mmcMessagePartEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass methodEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tpegLocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dlr1LocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tmcLocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vicsLinkReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass koreanNodeLinkLocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tetLocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass glrLocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass olrLocationReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass timeServiceComponentFrameEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private TpegfwktypesPackageImpl() {
+ super(eNS_URI, TpegfwktypesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link TpegfwktypesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static TpegfwktypesPackage init() {
+ if (isInited) return (TpegfwktypesPackage)EPackage.Registry.INSTANCE.getEPackage(TpegfwktypesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ TpegfwktypesPackageImpl theTpegfwktypesPackage = (TpegfwktypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TpegfwktypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TpegfwktypesPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theTpegfwktypesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theTpegfwktypesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTpegfwktypesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(TpegfwktypesPackage.eNS_URI, theTpegfwktypesPackage);
+ return theTpegfwktypesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocalisedShortString() {
+ return localisedShortStringEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalisedShortString_LanguageCode() {
+ return (EAttribute)localisedShortStringEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLocalisedShortString_String() {
+ return (EAttribute)localisedShortStringEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLocationReferencingContainer() {
+ return locationReferencingContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLocationReferencingContainer_Method() {
+ return (EReference)locationReferencingContainerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransportFrameTemplate() {
+ return transportFrameTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransportFrameTemplate_MetaInformationTODO() {
+ return (EAttribute)transportFrameTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransportFrameTemplate_SyncWord() {
+ return (EAttribute)transportFrameTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransportFrameTemplate_FieldLength() {
+ return (EAttribute)transportFrameTemplateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransportFrameTemplate_HeaderCRC() {
+ return (EAttribute)transportFrameTemplateEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransportFrameTemplate_FrameType() {
+ return (EAttribute)transportFrameTemplateEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransportFrameType0() {
+ return transportFrameType0EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransportFrameType0_TransportFrameContent() {
+ return (EReference)transportFrameType0EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransportFrameType1() {
+ return transportFrameType1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransportFrameType1_TransportFrameContent() {
+ return (EReference)transportFrameType1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServiceComponentFrame() {
+ return serviceComponentFrameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceComponentFrame_SCID() {
+ return (EAttribute)serviceComponentFrameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceComponentFrame_FieldLength() {
+ return (EAttribute)serviceComponentFrameEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceComponentFrame_ScHeaderCRC() {
+ return (EAttribute)serviceComponentFrameEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServiceFrame() {
+ return serviceFrameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceFrame_ServEncID() {
+ return (EAttribute)serviceFrameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServiceFrame_ServiceFrameContent() {
+ return (EReference)serviceFrameEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServiceFrame_SID() {
+ return (EReference)serviceFrameEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStreamDirectoryFrame() {
+ return streamDirectoryFrameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStreamDirectoryFrame_SID() {
+ return (EReference)streamDirectoryFrameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStreamDirectoryFrame_NumberOfServices() {
+ return (EAttribute)streamDirectoryFrameEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStreamDirectoryFrame_HeaderCRC() {
+ return (EAttribute)streamDirectoryFrameEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServCompMultiplex() {
+ return servCompMultiplexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServCompMultiplex_MultiplexContent() {
+ return (EReference)servCompMultiplexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServiceIdentifier() {
+ return serviceIdentifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceIdentifier_SidA() {
+ return (EAttribute)serviceIdentifierEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceIdentifier_SidB() {
+ return (EAttribute)serviceIdentifierEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServiceIdentifier_SidC() {
+ return (EAttribute)serviceIdentifierEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServCompFrameProtected() {
+ return servCompFrameProtectedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFrameProtected_ApplicationContent() {
+ return (EAttribute)servCompFrameProtectedEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFrameProtected_DataCRC() {
+ return (EAttribute)servCompFrameProtectedEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServCompFrameCountedProtected() {
+ return servCompFrameCountedProtectedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFrameCountedProtected_MessageCount() {
+ return (EAttribute)servCompFrameCountedProtectedEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFrameCountedProtected_ApplicationContent() {
+ return (EAttribute)servCompFrameCountedProtectedEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFrameCountedProtected_DataCRC() {
+ return (EAttribute)servCompFrameCountedProtectedEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServCompFramePrioritisedProtected() {
+ return servCompFramePrioritisedProtectedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedProtected_GroupPriority() {
+ return (EAttribute)servCompFramePrioritisedProtectedEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedProtected_ApplicationContent() {
+ return (EAttribute)servCompFramePrioritisedProtectedEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedProtected_DataCRC() {
+ return (EAttribute)servCompFramePrioritisedProtectedEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServCompFramePrioritisedCountedProtected() {
+ return servCompFramePrioritisedCountedProtectedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedCountedProtected_GroupPriority() {
+ return (EAttribute)servCompFramePrioritisedCountedProtectedEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedCountedProtected_MessageCount() {
+ return (EAttribute)servCompFramePrioritisedCountedProtectedEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedCountedProtected_ApplicationContent() {
+ return (EAttribute)servCompFramePrioritisedCountedProtectedEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServCompFramePrioritisedCountedProtected_DataCRC() {
+ return (EAttribute)servCompFramePrioritisedCountedProtectedEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMMCSwitch() {
+ return mmcSwitchEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCSwitch_MessageID() {
+ return (EAttribute)mmcSwitchEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCSwitch_VersionID() {
+ return (EAttribute)mmcSwitchEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCSwitch_MessageExpiryTime() {
+ return (EAttribute)mmcSwitchEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCSwitch_CancelFlag() {
+ return (EAttribute)mmcSwitchEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCSwitch_MessageGenerationTime() {
+ return (EAttribute)mmcSwitchEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCSwitch_Priority() {
+ return (EAttribute)mmcSwitchEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMessageManagementContainer() {
+ return messageManagementContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMMCMasterMessage() {
+ return mmcMasterMessageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMMCMasterMessage_MultiPartMessageDirectory() {
+ return (EReference)mmcMasterMessageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiPartMessageDirectory() {
+ return multiPartMessageDirectoryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiPartMessageDirectory_PartID() {
+ return (EAttribute)multiPartMessageDirectoryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiPartMessageDirectory_PartType() {
+ return (EAttribute)multiPartMessageDirectoryEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMMCMessagePart() {
+ return mmcMessagePartEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCMessagePart_PartID() {
+ return (EAttribute)mmcMessagePartEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCMessagePart_UpdateMode() {
+ return (EAttribute)mmcMessagePartEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMMCMessagePart_MasterMessageVersions() {
+ return (EAttribute)mmcMessagePartEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMethod() {
+ return methodEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTPEGLocationReference() {
+ return tpegLocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDLR1LocationReference() {
+ return dlr1LocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTMCLocationReference() {
+ return tmcLocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVICSLinkReference() {
+ return vicsLinkReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getKoreanNodeLinkLocationReference() {
+ return koreanNodeLinkLocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTETLocationReference() {
+ return tetLocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGLRLocationReference() {
+ return glrLocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOLRLocationReference() {
+ return olrLocationReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOLRLocationReference_LocationData() {
+ return (EAttribute)olrLocationReferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTimeServiceComponentFrame() {
+ return timeServiceComponentFrameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTimeServiceComponentFrame_Date() {
+ return (EAttribute)timeServiceComponentFrameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTimeServiceComponentFrame_FormattedDate() {
+ return (EAttribute)timeServiceComponentFrameEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TpegfwktypesFactory getTpegfwktypesFactory() {
+ return (TpegfwktypesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ localisedShortStringEClass = createEClass(LOCALISED_SHORT_STRING);
+ createEAttribute(localisedShortStringEClass, LOCALISED_SHORT_STRING__LANGUAGE_CODE);
+ createEAttribute(localisedShortStringEClass, LOCALISED_SHORT_STRING__STRING);
+
+ locationReferencingContainerEClass = createEClass(LOCATION_REFERENCING_CONTAINER);
+ createEReference(locationReferencingContainerEClass, LOCATION_REFERENCING_CONTAINER__METHOD);
+
+ transportFrameTemplateEClass = createEClass(TRANSPORT_FRAME_TEMPLATE);
+ createEAttribute(transportFrameTemplateEClass, TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO);
+ createEAttribute(transportFrameTemplateEClass, TRANSPORT_FRAME_TEMPLATE__SYNC_WORD);
+ createEAttribute(transportFrameTemplateEClass, TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH);
+ createEAttribute(transportFrameTemplateEClass, TRANSPORT_FRAME_TEMPLATE__HEADER_CRC);
+ createEAttribute(transportFrameTemplateEClass, TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE);
+
+ transportFrameType0EClass = createEClass(TRANSPORT_FRAME_TYPE0);
+ createEReference(transportFrameType0EClass, TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT);
+
+ transportFrameType1EClass = createEClass(TRANSPORT_FRAME_TYPE1);
+ createEReference(transportFrameType1EClass, TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT);
+
+ serviceComponentFrameEClass = createEClass(SERVICE_COMPONENT_FRAME);
+ createEAttribute(serviceComponentFrameEClass, SERVICE_COMPONENT_FRAME__SCID);
+ createEAttribute(serviceComponentFrameEClass, SERVICE_COMPONENT_FRAME__FIELD_LENGTH);
+ createEAttribute(serviceComponentFrameEClass, SERVICE_COMPONENT_FRAME__SC_HEADER_CRC);
+
+ serviceFrameEClass = createEClass(SERVICE_FRAME);
+ createEAttribute(serviceFrameEClass, SERVICE_FRAME__SERV_ENC_ID);
+ createEReference(serviceFrameEClass, SERVICE_FRAME__SERVICE_FRAME_CONTENT);
+ createEReference(serviceFrameEClass, SERVICE_FRAME__SID);
+
+ streamDirectoryFrameEClass = createEClass(STREAM_DIRECTORY_FRAME);
+ createEReference(streamDirectoryFrameEClass, STREAM_DIRECTORY_FRAME__SID);
+ createEAttribute(streamDirectoryFrameEClass, STREAM_DIRECTORY_FRAME__NUMBER_OF_SERVICES);
+ createEAttribute(streamDirectoryFrameEClass, STREAM_DIRECTORY_FRAME__HEADER_CRC);
+
+ servCompMultiplexEClass = createEClass(SERV_COMP_MULTIPLEX);
+ createEReference(servCompMultiplexEClass, SERV_COMP_MULTIPLEX__MULTIPLEX_CONTENT);
+
+ serviceIdentifierEClass = createEClass(SERVICE_IDENTIFIER);
+ createEAttribute(serviceIdentifierEClass, SERVICE_IDENTIFIER__SID_A);
+ createEAttribute(serviceIdentifierEClass, SERVICE_IDENTIFIER__SID_B);
+ createEAttribute(serviceIdentifierEClass, SERVICE_IDENTIFIER__SID_C);
+
+ servCompFrameProtectedEClass = createEClass(SERV_COMP_FRAME_PROTECTED);
+ createEAttribute(servCompFrameProtectedEClass, SERV_COMP_FRAME_PROTECTED__APPLICATION_CONTENT);
+ createEAttribute(servCompFrameProtectedEClass, SERV_COMP_FRAME_PROTECTED__DATA_CRC);
+
+ servCompFrameCountedProtectedEClass = createEClass(SERV_COMP_FRAME_COUNTED_PROTECTED);
+ createEAttribute(servCompFrameCountedProtectedEClass, SERV_COMP_FRAME_COUNTED_PROTECTED__MESSAGE_COUNT);
+ createEAttribute(servCompFrameCountedProtectedEClass, SERV_COMP_FRAME_COUNTED_PROTECTED__APPLICATION_CONTENT);
+ createEAttribute(servCompFrameCountedProtectedEClass, SERV_COMP_FRAME_COUNTED_PROTECTED__DATA_CRC);
+
+ servCompFramePrioritisedProtectedEClass = createEClass(SERV_COMP_FRAME_PRIORITISED_PROTECTED);
+ createEAttribute(servCompFramePrioritisedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_PROTECTED__GROUP_PRIORITY);
+ createEAttribute(servCompFramePrioritisedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_PROTECTED__APPLICATION_CONTENT);
+ createEAttribute(servCompFramePrioritisedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_PROTECTED__DATA_CRC);
+
+ servCompFramePrioritisedCountedProtectedEClass = createEClass(SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED);
+ createEAttribute(servCompFramePrioritisedCountedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__GROUP_PRIORITY);
+ createEAttribute(servCompFramePrioritisedCountedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__MESSAGE_COUNT);
+ createEAttribute(servCompFramePrioritisedCountedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__APPLICATION_CONTENT);
+ createEAttribute(servCompFramePrioritisedCountedProtectedEClass, SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED__DATA_CRC);
+
+ mmcSwitchEClass = createEClass(MMC_SWITCH);
+ createEAttribute(mmcSwitchEClass, MMC_SWITCH__MESSAGE_ID);
+ createEAttribute(mmcSwitchEClass, MMC_SWITCH__VERSION_ID);
+ createEAttribute(mmcSwitchEClass, MMC_SWITCH__MESSAGE_EXPIRY_TIME);
+ createEAttribute(mmcSwitchEClass, MMC_SWITCH__CANCEL_FLAG);
+ createEAttribute(mmcSwitchEClass, MMC_SWITCH__MESSAGE_GENERATION_TIME);
+ createEAttribute(mmcSwitchEClass, MMC_SWITCH__PRIORITY);
+
+ messageManagementContainerEClass = createEClass(MESSAGE_MANAGEMENT_CONTAINER);
+
+ mmcMasterMessageEClass = createEClass(MMC_MASTER_MESSAGE);
+ createEReference(mmcMasterMessageEClass, MMC_MASTER_MESSAGE__MULTI_PART_MESSAGE_DIRECTORY);
+
+ multiPartMessageDirectoryEClass = createEClass(MULTI_PART_MESSAGE_DIRECTORY);
+ createEAttribute(multiPartMessageDirectoryEClass, MULTI_PART_MESSAGE_DIRECTORY__PART_ID);
+ createEAttribute(multiPartMessageDirectoryEClass, MULTI_PART_MESSAGE_DIRECTORY__PART_TYPE);
+
+ mmcMessagePartEClass = createEClass(MMC_MESSAGE_PART);
+ createEAttribute(mmcMessagePartEClass, MMC_MESSAGE_PART__PART_ID);
+ createEAttribute(mmcMessagePartEClass, MMC_MESSAGE_PART__UPDATE_MODE);
+ createEAttribute(mmcMessagePartEClass, MMC_MESSAGE_PART__MASTER_MESSAGE_VERSIONS);
+
+ methodEClass = createEClass(METHOD);
+
+ tpegLocationReferenceEClass = createEClass(TPEG_LOCATION_REFERENCE);
+
+ dlr1LocationReferenceEClass = createEClass(DLR1_LOCATION_REFERENCE);
+
+ tmcLocationReferenceEClass = createEClass(TMC_LOCATION_REFERENCE);
+
+ vicsLinkReferenceEClass = createEClass(VICS_LINK_REFERENCE);
+
+ koreanNodeLinkLocationReferenceEClass = createEClass(KOREAN_NODE_LINK_LOCATION_REFERENCE);
+
+ tetLocationReferenceEClass = createEClass(TET_LOCATION_REFERENCE);
+
+ glrLocationReferenceEClass = createEClass(GLR_LOCATION_REFERENCE);
+
+ olrLocationReferenceEClass = createEClass(OLR_LOCATION_REFERENCE);
+ createEAttribute(olrLocationReferenceEClass, OLR_LOCATION_REFERENCE__LOCATION_DATA);
+
+ timeServiceComponentFrameEClass = createEClass(TIME_SERVICE_COMPONENT_FRAME);
+ createEAttribute(timeServiceComponentFrameEClass, TIME_SERVICE_COMPONENT_FRAME__DATE);
+ createEAttribute(timeServiceComponentFrameEClass, TIME_SERVICE_COMPONENT_FRAME__FORMATTED_DATE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ transportFrameType0EClass.getESuperTypes().add(this.getTransportFrameTemplate());
+ transportFrameType1EClass.getESuperTypes().add(this.getTransportFrameTemplate());
+ servCompFrameProtectedEClass.getESuperTypes().add(this.getServiceComponentFrame());
+ servCompFrameCountedProtectedEClass.getESuperTypes().add(this.getServiceComponentFrame());
+ servCompFramePrioritisedProtectedEClass.getESuperTypes().add(this.getServiceComponentFrame());
+ servCompFramePrioritisedCountedProtectedEClass.getESuperTypes().add(this.getServiceComponentFrame());
+ messageManagementContainerEClass.getESuperTypes().add(this.getMMCSwitch());
+ mmcMasterMessageEClass.getESuperTypes().add(this.getMMCSwitch());
+ mmcMessagePartEClass.getESuperTypes().add(this.getMMCSwitch());
+ tpegLocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ dlr1LocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ tmcLocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ vicsLinkReferenceEClass.getESuperTypes().add(this.getMethod());
+ koreanNodeLinkLocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ tetLocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ glrLocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ olrLocationReferenceEClass.getESuperTypes().add(this.getMethod());
+ timeServiceComponentFrameEClass.getESuperTypes().add(this.getServiceComponentFrame());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(localisedShortStringEClass, LocalisedShortString.class, "LocalisedShortString", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLocalisedShortString_LanguageCode(), ecorePackage.getEInt(), "languageCode", null, 1, 1, LocalisedShortString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLocalisedShortString_String(), ecorePackage.getEString(), "string", null, 1, 1, LocalisedShortString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(locationReferencingContainerEClass, LocationReferencingContainer.class, "LocationReferencingContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLocationReferencingContainer_Method(), this.getMethod(), null, "method", null, 1, -1, LocationReferencingContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transportFrameTemplateEClass, TransportFrameTemplate.class, "TransportFrameTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTransportFrameTemplate_MetaInformationTODO(), ecorePackage.getEString(), "metaInformationTODO", null, 0, 1, TransportFrameTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTransportFrameTemplate_SyncWord(), ecorePackage.getEInt(), "syncWord", "0", 1, 1, TransportFrameTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTransportFrameTemplate_FieldLength(), ecorePackage.getEInt(), "fieldLength", null, 1, 1, TransportFrameTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTransportFrameTemplate_HeaderCRC(), ecorePackage.getEInt(), "headerCRC", null, 1, 1, TransportFrameTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTransportFrameTemplate_FrameType(), ecorePackage.getEInt(), "frameType", null, 1, 1, TransportFrameTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transportFrameType0EClass, TransportFrameType0.class, "TransportFrameType0", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTransportFrameType0_TransportFrameContent(), this.getStreamDirectoryFrame(), null, "transportFrameContent", null, 1, 1, TransportFrameType0.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transportFrameType1EClass, TransportFrameType1.class, "TransportFrameType1", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTransportFrameType1_TransportFrameContent(), this.getServiceFrame(), null, "transportFrameContent", null, 1, 1, TransportFrameType1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(serviceComponentFrameEClass, ServiceComponentFrame.class, "ServiceComponentFrame", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServiceComponentFrame_SCID(), ecorePackage.getEByte(), "SCID", null, 1, 1, ServiceComponentFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServiceComponentFrame_FieldLength(), ecorePackage.getEInt(), "fieldLength", null, 1, 1, ServiceComponentFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServiceComponentFrame_ScHeaderCRC(), ecorePackage.getEInt(), "scHeaderCRC", null, 1, 1, ServiceComponentFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(serviceFrameEClass, ServiceFrame.class, "ServiceFrame", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServiceFrame_ServEncID(), ecorePackage.getEInt(), "servEncID", null, 1, 1, ServiceFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServiceFrame_ServiceFrameContent(), this.getServCompMultiplex(), null, "serviceFrameContent", null, 1, 1, ServiceFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServiceFrame_SID(), this.getServiceIdentifier(), null, "SID", null, 1, 1, ServiceFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(streamDirectoryFrameEClass, StreamDirectoryFrame.class, "StreamDirectoryFrame", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStreamDirectoryFrame_SID(), this.getServiceIdentifier(), null, "SID", null, 1, -1, StreamDirectoryFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStreamDirectoryFrame_NumberOfServices(), ecorePackage.getEInt(), "numberOfServices", null, 1, 1, StreamDirectoryFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStreamDirectoryFrame_HeaderCRC(), ecorePackage.getEInt(), "headerCRC", null, 1, 1, StreamDirectoryFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(servCompMultiplexEClass, ServCompMultiplex.class, "ServCompMultiplex", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getServCompMultiplex_MultiplexContent(), this.getServiceComponentFrame(), null, "multiplexContent", null, 1, -1, ServCompMultiplex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(serviceIdentifierEClass, ServiceIdentifier.class, "ServiceIdentifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServiceIdentifier_SidA(), ecorePackage.getEByte(), "sidA", null, 1, 1, ServiceIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServiceIdentifier_SidB(), ecorePackage.getEByte(), "sidB", null, 1, 1, ServiceIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServiceIdentifier_SidC(), ecorePackage.getEByte(), "sidC", null, 1, 1, ServiceIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(servCompFrameProtectedEClass, ServCompFrameProtected.class, "ServCompFrameProtected", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServCompFrameProtected_ApplicationContent(), ecorePackage.getEJavaObject(), "applicationContent", null, 1, 1, ServCompFrameProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFrameProtected_DataCRC(), ecorePackage.getEInt(), "dataCRC", null, 1, 1, ServCompFrameProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(servCompFrameCountedProtectedEClass, ServCompFrameCountedProtected.class, "ServCompFrameCountedProtected", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServCompFrameCountedProtected_MessageCount(), ecorePackage.getEInt(), "messageCount", null, 1, 1, ServCompFrameCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFrameCountedProtected_ApplicationContent(), ecorePackage.getEJavaObject(), "applicationContent", null, 1, 1, ServCompFrameCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFrameCountedProtected_DataCRC(), ecorePackage.getEInt(), "dataCRC", null, 1, 1, ServCompFrameCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(servCompFramePrioritisedProtectedEClass, ServCompFramePrioritisedProtected.class, "ServCompFramePrioritisedProtected", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServCompFramePrioritisedProtected_GroupPriority(), ecorePackage.getEInt(), "groupPriority", null, 1, 1, ServCompFramePrioritisedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFramePrioritisedProtected_ApplicationContent(), ecorePackage.getEJavaObject(), "applicationContent", null, 1, 1, ServCompFramePrioritisedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFramePrioritisedProtected_DataCRC(), ecorePackage.getEInt(), "dataCRC", null, 1, 1, ServCompFramePrioritisedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(servCompFramePrioritisedCountedProtectedEClass, ServCompFramePrioritisedCountedProtected.class, "ServCompFramePrioritisedCountedProtected", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServCompFramePrioritisedCountedProtected_GroupPriority(), ecorePackage.getEInt(), "groupPriority", null, 1, 1, ServCompFramePrioritisedCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFramePrioritisedCountedProtected_MessageCount(), ecorePackage.getEInt(), "messageCount", null, 1, 1, ServCompFramePrioritisedCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFramePrioritisedCountedProtected_ApplicationContent(), ecorePackage.getEJavaObject(), "applicationContent", null, 1, 1, ServCompFramePrioritisedCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServCompFramePrioritisedCountedProtected_DataCRC(), ecorePackage.getEInt(), "dataCRC", null, 1, 1, ServCompFramePrioritisedCountedProtected.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(mmcSwitchEClass, MMCSwitch.class, "MMCSwitch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMMCSwitch_MessageID(), ecorePackage.getEInt(), "messageID", null, 1, 1, MMCSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCSwitch_VersionID(), ecorePackage.getEInt(), "versionID", null, 1, 1, MMCSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCSwitch_MessageExpiryTime(), ecorePackage.getEDate(), "messageExpiryTime", null, 1, 1, MMCSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCSwitch_CancelFlag(), ecorePackage.getEBoolean(), "cancelFlag", null, 1, 1, MMCSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCSwitch_MessageGenerationTime(), ecorePackage.getEDate(), "messageGenerationTime", null, 0, 1, MMCSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCSwitch_Priority(), ecorePackage.getEInt(), "priority", null, 0, 1, MMCSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(messageManagementContainerEClass, MessageManagementContainer.class, "MessageManagementContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(mmcMasterMessageEClass, MMCMasterMessage.class, "MMCMasterMessage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMMCMasterMessage_MultiPartMessageDirectory(), this.getMultiPartMessageDirectory(), null, "multiPartMessageDirectory", null, 1, 255, MMCMasterMessage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiPartMessageDirectoryEClass, MultiPartMessageDirectory.class, "MultiPartMessageDirectory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMultiPartMessageDirectory_PartID(), ecorePackage.getEInt(), "partID", null, 1, 1, MultiPartMessageDirectory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMultiPartMessageDirectory_PartType(), ecorePackage.getEInt(), "partType", null, 1, 1, MultiPartMessageDirectory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(mmcMessagePartEClass, MMCMessagePart.class, "MMCMessagePart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMMCMessagePart_PartID(), ecorePackage.getEInt(), "partID", null, 1, 1, MMCMessagePart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCMessagePart_UpdateMode(), ecorePackage.getEInt(), "updateMode", null, 1, 1, MMCMessagePart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMMCMessagePart_MasterMessageVersions(), ecorePackage.getEInt(), "masterMessageVersions", null, 0, 255, MMCMessagePart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(methodEClass, Method.class, "Method", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(tpegLocationReferenceEClass, TPEGLocationReference.class, "TPEGLocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(dlr1LocationReferenceEClass, DLR1LocationReference.class, "DLR1LocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(tmcLocationReferenceEClass, TMCLocationReference.class, "TMCLocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(vicsLinkReferenceEClass, VICSLinkReference.class, "VICSLinkReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(koreanNodeLinkLocationReferenceEClass, KoreanNodeLinkLocationReference.class, "KoreanNodeLinkLocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(tetLocationReferenceEClass, TETLocationReference.class, "TETLocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(glrLocationReferenceEClass, GLRLocationReference.class, "GLRLocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(olrLocationReferenceEClass, OLRLocationReference.class, "OLRLocationReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOLRLocationReference_LocationData(), ecorePackage.getEByteArray(), "locationData", null, 1, 1, OLRLocationReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(timeServiceComponentFrameEClass, TimeServiceComponentFrame.class, "TimeServiceComponentFrame", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTimeServiceComponentFrame_Date(), ecorePackage.getEDate(), "date", null, 0, 1, TimeServiceComponentFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTimeServiceComponentFrame_FormattedDate(), ecorePackage.getEString(), "formattedDate", null, 0, 1, TimeServiceComponentFrame.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // GenModel
+ createGenModelAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations() {
+ String source = "GenModel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "documentation", "Copyright (C) 2013 TomTom International B.V.\r\n\r\nThis Source Code Form is subject to the terms of the Mozilla Public\r\nLicense, v. 2.0. If a copy of the MPL was not distributed with this\r\nfile, You can obtain one at http://mozilla.org/MPL/2.0/."
+ });
+ }
+
+} //TpegfwktypesPackageImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameTemplateImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameTemplateImpl.java
new file mode 100755
index 0000000..b560306
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameTemplateImpl.java
@@ -0,0 +1,384 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transport Frame Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl#getMetaInformationTODO <em>Meta Information TODO</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl#getSyncWord <em>Sync Word</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl#getFieldLength <em>Field Length</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl#getHeaderCRC <em>Header CRC</em>}</li>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameTemplateImpl#getFrameType <em>Frame Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransportFrameTemplateImpl extends EObjectImpl implements TransportFrameTemplate {
+ /**
+ * The default value of the '{@link #getMetaInformationTODO() <em>Meta Information TODO</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaInformationTODO()
+ * @generated
+ * @ordered
+ */
+ protected static final String META_INFORMATION_TODO_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMetaInformationTODO() <em>Meta Information TODO</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMetaInformationTODO()
+ * @generated
+ * @ordered
+ */
+ protected String metaInformationTODO = META_INFORMATION_TODO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSyncWord() <em>Sync Word</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSyncWord()
+ * @generated
+ * @ordered
+ */
+ protected static final int SYNC_WORD_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSyncWord() <em>Sync Word</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSyncWord()
+ * @generated
+ * @ordered
+ */
+ protected int syncWord = SYNC_WORD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFieldLength() <em>Field Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFieldLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int FIELD_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getFieldLength() <em>Field Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFieldLength()
+ * @generated
+ * @ordered
+ */
+ protected int fieldLength = FIELD_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHeaderCRC() <em>Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeaderCRC()
+ * @generated
+ * @ordered
+ */
+ protected static final int HEADER_CRC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getHeaderCRC() <em>Header CRC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHeaderCRC()
+ * @generated
+ * @ordered
+ */
+ protected int headerCRC = HEADER_CRC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFrameType() <em>Frame Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFrameType()
+ * @generated
+ * @ordered
+ */
+ protected static final int FRAME_TYPE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getFrameType() <em>Frame Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFrameType()
+ * @generated
+ * @ordered
+ */
+ protected int frameType = FRAME_TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransportFrameTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TRANSPORT_FRAME_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMetaInformationTODO() {
+ return metaInformationTODO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMetaInformationTODO(String newMetaInformationTODO) {
+ String oldMetaInformationTODO = metaInformationTODO;
+ metaInformationTODO = newMetaInformationTODO;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO, oldMetaInformationTODO, metaInformationTODO));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSyncWord() {
+ return syncWord;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSyncWord(int newSyncWord) {
+ int oldSyncWord = syncWord;
+ syncWord = newSyncWord;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__SYNC_WORD, oldSyncWord, syncWord));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getFieldLength() {
+ return fieldLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFieldLength(int newFieldLength) {
+ int oldFieldLength = fieldLength;
+ fieldLength = newFieldLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH, oldFieldLength, fieldLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHeaderCRC() {
+ return headerCRC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHeaderCRC(int newHeaderCRC) {
+ int oldHeaderCRC = headerCRC;
+ headerCRC = newHeaderCRC;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__HEADER_CRC, oldHeaderCRC, headerCRC));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getFrameType() {
+ return frameType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFrameType(int newFrameType) {
+ int oldFrameType = frameType;
+ frameType = newFrameType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE, oldFrameType, frameType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO:
+ return getMetaInformationTODO();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__SYNC_WORD:
+ return getSyncWord();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH:
+ return getFieldLength();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__HEADER_CRC:
+ return getHeaderCRC();
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE:
+ return getFrameType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO:
+ setMetaInformationTODO((String)newValue);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__SYNC_WORD:
+ setSyncWord((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH:
+ setFieldLength((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__HEADER_CRC:
+ setHeaderCRC((Integer)newValue);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE:
+ setFrameType((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO:
+ setMetaInformationTODO(META_INFORMATION_TODO_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__SYNC_WORD:
+ setSyncWord(SYNC_WORD_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH:
+ setFieldLength(FIELD_LENGTH_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__HEADER_CRC:
+ setHeaderCRC(HEADER_CRC_EDEFAULT);
+ return;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE:
+ setFrameType(FRAME_TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__META_INFORMATION_TODO:
+ return META_INFORMATION_TODO_EDEFAULT == null ? metaInformationTODO != null : !META_INFORMATION_TODO_EDEFAULT.equals(metaInformationTODO);
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__SYNC_WORD:
+ return syncWord != SYNC_WORD_EDEFAULT;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FIELD_LENGTH:
+ return fieldLength != FIELD_LENGTH_EDEFAULT;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__HEADER_CRC:
+ return headerCRC != HEADER_CRC_EDEFAULT;
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE__FRAME_TYPE:
+ return frameType != FRAME_TYPE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (metaInformationTODO: ");
+ result.append(metaInformationTODO);
+ result.append(", syncWord: ");
+ result.append(syncWord);
+ result.append(", fieldLength: ");
+ result.append(fieldLength);
+ result.append(", headerCRC: ");
+ result.append(headerCRC);
+ result.append(", frameType: ");
+ result.append(frameType);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TransportFrameTemplateImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType0Impl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType0Impl.java
new file mode 100755
index 0000000..3824b04
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType0Impl.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transport Frame Type0</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType0Impl#getTransportFrameContent <em>Transport Frame Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransportFrameType0Impl extends TransportFrameTemplateImpl implements TransportFrameType0 {
+ /**
+ * The cached value of the '{@link #getTransportFrameContent() <em>Transport Frame Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransportFrameContent()
+ * @generated
+ * @ordered
+ */
+ protected StreamDirectoryFrame transportFrameContent;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransportFrameType0Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TRANSPORT_FRAME_TYPE0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StreamDirectoryFrame getTransportFrameContent() {
+ return transportFrameContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTransportFrameContent(StreamDirectoryFrame newTransportFrameContent, NotificationChain msgs) {
+ StreamDirectoryFrame oldTransportFrameContent = transportFrameContent;
+ transportFrameContent = newTransportFrameContent;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT, oldTransportFrameContent, newTransportFrameContent);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransportFrameContent(StreamDirectoryFrame newTransportFrameContent) {
+ if (newTransportFrameContent != transportFrameContent) {
+ NotificationChain msgs = null;
+ if (transportFrameContent != null)
+ msgs = ((InternalEObject)transportFrameContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT, null, msgs);
+ if (newTransportFrameContent != null)
+ msgs = ((InternalEObject)newTransportFrameContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT, null, msgs);
+ msgs = basicSetTransportFrameContent(newTransportFrameContent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT, newTransportFrameContent, newTransportFrameContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT:
+ return basicSetTransportFrameContent(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT:
+ return getTransportFrameContent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT:
+ setTransportFrameContent((StreamDirectoryFrame)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT:
+ setTransportFrameContent((StreamDirectoryFrame)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0__TRANSPORT_FRAME_CONTENT:
+ return transportFrameContent != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransportFrameType0Impl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType1Impl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType1Impl.java
new file mode 100755
index 0000000..67f97f8
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/TransportFrameType1Impl.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transport Frame Type1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.impl.TransportFrameType1Impl#getTransportFrameContent <em>Transport Frame Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransportFrameType1Impl extends TransportFrameTemplateImpl implements TransportFrameType1 {
+ /**
+ * The cached value of the '{@link #getTransportFrameContent() <em>Transport Frame Content</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransportFrameContent()
+ * @generated
+ * @ordered
+ */
+ protected ServiceFrame transportFrameContent;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransportFrameType1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.TRANSPORT_FRAME_TYPE1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServiceFrame getTransportFrameContent() {
+ return transportFrameContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTransportFrameContent(ServiceFrame newTransportFrameContent, NotificationChain msgs) {
+ ServiceFrame oldTransportFrameContent = transportFrameContent;
+ transportFrameContent = newTransportFrameContent;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT, oldTransportFrameContent, newTransportFrameContent);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransportFrameContent(ServiceFrame newTransportFrameContent) {
+ if (newTransportFrameContent != transportFrameContent) {
+ NotificationChain msgs = null;
+ if (transportFrameContent != null)
+ msgs = ((InternalEObject)transportFrameContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT, null, msgs);
+ if (newTransportFrameContent != null)
+ msgs = ((InternalEObject)newTransportFrameContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT, null, msgs);
+ msgs = basicSetTransportFrameContent(newTransportFrameContent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT, newTransportFrameContent, newTransportFrameContent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT:
+ return basicSetTransportFrameContent(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT:
+ return getTransportFrameContent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT:
+ setTransportFrameContent((ServiceFrame)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT:
+ setTransportFrameContent((ServiceFrame)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1__TRANSPORT_FRAME_CONTENT:
+ return transportFrameContent != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransportFrameType1Impl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/VICSLinkReferenceImpl.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/VICSLinkReferenceImpl.java
new file mode 100755
index 0000000..991b81c
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/impl/VICSLinkReferenceImpl.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.VICSLinkReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>VICS Link Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class VICSLinkReferenceImpl extends MethodImpl implements VICSLinkReference {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VICSLinkReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TpegfwktypesPackage.Literals.VICS_LINK_REFERENCE;
+ }
+
+} //VICSLinkReferenceImpl
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesAdapterFactory.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesAdapterFactory.java
new file mode 100755
index 0000000..87c8c81
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesAdapterFactory.java
@@ -0,0 +1,629 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.util;
+
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage
+ * @generated
+ */
+public class TpegfwktypesAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TpegfwktypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TpegfwktypesAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = TpegfwktypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TpegfwktypesSwitch<Adapter> modelSwitch =
+ new TpegfwktypesSwitch<Adapter>() {
+ @Override
+ public Adapter caseLocalisedShortString(LocalisedShortString object) {
+ return createLocalisedShortStringAdapter();
+ }
+ @Override
+ public Adapter caseLocationReferencingContainer(LocationReferencingContainer object) {
+ return createLocationReferencingContainerAdapter();
+ }
+ @Override
+ public Adapter caseTransportFrameTemplate(TransportFrameTemplate object) {
+ return createTransportFrameTemplateAdapter();
+ }
+ @Override
+ public Adapter caseTransportFrameType0(TransportFrameType0 object) {
+ return createTransportFrameType0Adapter();
+ }
+ @Override
+ public Adapter caseTransportFrameType1(TransportFrameType1 object) {
+ return createTransportFrameType1Adapter();
+ }
+ @Override
+ public Adapter caseServiceComponentFrame(ServiceComponentFrame object) {
+ return createServiceComponentFrameAdapter();
+ }
+ @Override
+ public Adapter caseServiceFrame(ServiceFrame object) {
+ return createServiceFrameAdapter();
+ }
+ @Override
+ public Adapter caseStreamDirectoryFrame(StreamDirectoryFrame object) {
+ return createStreamDirectoryFrameAdapter();
+ }
+ @Override
+ public Adapter caseServCompMultiplex(ServCompMultiplex object) {
+ return createServCompMultiplexAdapter();
+ }
+ @Override
+ public Adapter caseServiceIdentifier(ServiceIdentifier object) {
+ return createServiceIdentifierAdapter();
+ }
+ @Override
+ public Adapter caseServCompFrameProtected(ServCompFrameProtected object) {
+ return createServCompFrameProtectedAdapter();
+ }
+ @Override
+ public Adapter caseServCompFrameCountedProtected(ServCompFrameCountedProtected object) {
+ return createServCompFrameCountedProtectedAdapter();
+ }
+ @Override
+ public Adapter caseServCompFramePrioritisedProtected(ServCompFramePrioritisedProtected object) {
+ return createServCompFramePrioritisedProtectedAdapter();
+ }
+ @Override
+ public Adapter caseServCompFramePrioritisedCountedProtected(ServCompFramePrioritisedCountedProtected object) {
+ return createServCompFramePrioritisedCountedProtectedAdapter();
+ }
+ @Override
+ public Adapter caseMMCSwitch(MMCSwitch object) {
+ return createMMCSwitchAdapter();
+ }
+ @Override
+ public Adapter caseMessageManagementContainer(MessageManagementContainer object) {
+ return createMessageManagementContainerAdapter();
+ }
+ @Override
+ public Adapter caseMMCMasterMessage(MMCMasterMessage object) {
+ return createMMCMasterMessageAdapter();
+ }
+ @Override
+ public Adapter caseMultiPartMessageDirectory(MultiPartMessageDirectory object) {
+ return createMultiPartMessageDirectoryAdapter();
+ }
+ @Override
+ public Adapter caseMMCMessagePart(MMCMessagePart object) {
+ return createMMCMessagePartAdapter();
+ }
+ @Override
+ public Adapter caseMethod(Method object) {
+ return createMethodAdapter();
+ }
+ @Override
+ public Adapter caseTPEGLocationReference(TPEGLocationReference object) {
+ return createTPEGLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseDLR1LocationReference(DLR1LocationReference object) {
+ return createDLR1LocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseTMCLocationReference(TMCLocationReference object) {
+ return createTMCLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseVICSLinkReference(VICSLinkReference object) {
+ return createVICSLinkReferenceAdapter();
+ }
+ @Override
+ public Adapter caseKoreanNodeLinkLocationReference(KoreanNodeLinkLocationReference object) {
+ return createKoreanNodeLinkLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseTETLocationReference(TETLocationReference object) {
+ return createTETLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseGLRLocationReference(GLRLocationReference object) {
+ return createGLRLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseOLRLocationReference(OLRLocationReference object) {
+ return createOLRLocationReferenceAdapter();
+ }
+ @Override
+ public Adapter caseTimeServiceComponentFrame(TimeServiceComponentFrame object) {
+ return createTimeServiceComponentFrameAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString <em>Localised Short String</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocalisedShortString
+ * @generated
+ */
+ public Adapter createLocalisedShortStringAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer <em>Location Referencing Container</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.LocationReferencingContainer
+ * @generated
+ */
+ public Adapter createLocationReferencingContainerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate <em>Transport Frame Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameTemplate
+ * @generated
+ */
+ public Adapter createTransportFrameTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0 <em>Transport Frame Type0</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType0
+ * @generated
+ */
+ public Adapter createTransportFrameType0Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1 <em>Transport Frame Type1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TransportFrameType1
+ * @generated
+ */
+ public Adapter createTransportFrameType1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame <em>Service Component Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceComponentFrame
+ * @generated
+ */
+ public Adapter createServiceComponentFrameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame <em>Service Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceFrame
+ * @generated
+ */
+ public Adapter createServiceFrameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame <em>Stream Directory Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.StreamDirectoryFrame
+ * @generated
+ */
+ public Adapter createStreamDirectoryFrameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex <em>Serv Comp Multiplex</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompMultiplex
+ * @generated
+ */
+ public Adapter createServCompMultiplexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier <em>Service Identifier</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServiceIdentifier
+ * @generated
+ */
+ public Adapter createServiceIdentifierAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected <em>Serv Comp Frame Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameProtected
+ * @generated
+ */
+ public Adapter createServCompFrameProtectedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected <em>Serv Comp Frame Counted Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFrameCountedProtected
+ * @generated
+ */
+ public Adapter createServCompFrameCountedProtectedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected <em>Serv Comp Frame Prioritised Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedProtected
+ * @generated
+ */
+ public Adapter createServCompFramePrioritisedProtectedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected <em>Serv Comp Frame Prioritised Counted Protected</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.ServCompFramePrioritisedCountedProtected
+ * @generated
+ */
+ public Adapter createServCompFramePrioritisedCountedProtectedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch <em>MMC Switch</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCSwitch
+ * @generated
+ */
+ public Adapter createMMCSwitchAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer <em>Message Management Container</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MessageManagementContainer
+ * @generated
+ */
+ public Adapter createMessageManagementContainerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage <em>MMC Master Message</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMasterMessage
+ * @generated
+ */
+ public Adapter createMMCMasterMessageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory <em>Multi Part Message Directory</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MultiPartMessageDirectory
+ * @generated
+ */
+ public Adapter createMultiPartMessageDirectoryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart <em>MMC Message Part</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.MMCMessagePart
+ * @generated
+ */
+ public Adapter createMMCMessagePartAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.Method <em>Method</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.Method
+ * @generated
+ */
+ public Adapter createMethodAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TPEGLocationReference <em>TPEG Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TPEGLocationReference
+ * @generated
+ */
+ public Adapter createTPEGLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.DLR1LocationReference <em>DLR1 Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.DLR1LocationReference
+ * @generated
+ */
+ public Adapter createDLR1LocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TMCLocationReference <em>TMC Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TMCLocationReference
+ * @generated
+ */
+ public Adapter createTMCLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.VICSLinkReference <em>VICS Link Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.VICSLinkReference
+ * @generated
+ */
+ public Adapter createVICSLinkReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.KoreanNodeLinkLocationReference <em>Korean Node Link Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.KoreanNodeLinkLocationReference
+ * @generated
+ */
+ public Adapter createKoreanNodeLinkLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TETLocationReference <em>TET Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TETLocationReference
+ * @generated
+ */
+ public Adapter createTETLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.GLRLocationReference <em>GLR Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.GLRLocationReference
+ * @generated
+ */
+ public Adapter createGLRLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference <em>OLR Location Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.OLRLocationReference
+ * @generated
+ */
+ public Adapter createOLRLocationReferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame <em>Time Service Component Frame</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TimeServiceComponentFrame
+ * @generated
+ */
+ public Adapter createTimeServiceComponentFrameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //TpegfwktypesAdapterFactory
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesSwitch.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesSwitch.java
new file mode 100755
index 0000000..8756e3f
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegfwktypes-model/src/main/java/org/genivi/trafficinfo/tpeg/tpegfwktypes/util/TpegfwktypesSwitch.java
@@ -0,0 +1,721 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegfwktypes.util;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.genivi.trafficinfo.tpeg.tpegfwktypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.genivi.trafficinfo.tpeg.tpegfwktypes.TpegfwktypesPackage
+ * @generated
+ */
+public class TpegfwktypesSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TpegfwktypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TpegfwktypesSwitch() {
+ if (modelPackage == null) {
+ modelPackage = TpegfwktypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case TpegfwktypesPackage.LOCALISED_SHORT_STRING: {
+ LocalisedShortString localisedShortString = (LocalisedShortString)theEObject;
+ T result = caseLocalisedShortString(localisedShortString);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.LOCATION_REFERENCING_CONTAINER: {
+ LocationReferencingContainer locationReferencingContainer = (LocationReferencingContainer)theEObject;
+ T result = caseLocationReferencingContainer(locationReferencingContainer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TEMPLATE: {
+ TransportFrameTemplate transportFrameTemplate = (TransportFrameTemplate)theEObject;
+ T result = caseTransportFrameTemplate(transportFrameTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE0: {
+ TransportFrameType0 transportFrameType0 = (TransportFrameType0)theEObject;
+ T result = caseTransportFrameType0(transportFrameType0);
+ if (result == null) result = caseTransportFrameTemplate(transportFrameType0);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TRANSPORT_FRAME_TYPE1: {
+ TransportFrameType1 transportFrameType1 = (TransportFrameType1)theEObject;
+ T result = caseTransportFrameType1(transportFrameType1);
+ if (result == null) result = caseTransportFrameTemplate(transportFrameType1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERVICE_COMPONENT_FRAME: {
+ ServiceComponentFrame serviceComponentFrame = (ServiceComponentFrame)theEObject;
+ T result = caseServiceComponentFrame(serviceComponentFrame);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERVICE_FRAME: {
+ ServiceFrame serviceFrame = (ServiceFrame)theEObject;
+ T result = caseServiceFrame(serviceFrame);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.STREAM_DIRECTORY_FRAME: {
+ StreamDirectoryFrame streamDirectoryFrame = (StreamDirectoryFrame)theEObject;
+ T result = caseStreamDirectoryFrame(streamDirectoryFrame);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERV_COMP_MULTIPLEX: {
+ ServCompMultiplex servCompMultiplex = (ServCompMultiplex)theEObject;
+ T result = caseServCompMultiplex(servCompMultiplex);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERVICE_IDENTIFIER: {
+ ServiceIdentifier serviceIdentifier = (ServiceIdentifier)theEObject;
+ T result = caseServiceIdentifier(serviceIdentifier);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PROTECTED: {
+ ServCompFrameProtected servCompFrameProtected = (ServCompFrameProtected)theEObject;
+ T result = caseServCompFrameProtected(servCompFrameProtected);
+ if (result == null) result = caseServiceComponentFrame(servCompFrameProtected);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERV_COMP_FRAME_COUNTED_PROTECTED: {
+ ServCompFrameCountedProtected servCompFrameCountedProtected = (ServCompFrameCountedProtected)theEObject;
+ T result = caseServCompFrameCountedProtected(servCompFrameCountedProtected);
+ if (result == null) result = caseServiceComponentFrame(servCompFrameCountedProtected);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_PROTECTED: {
+ ServCompFramePrioritisedProtected servCompFramePrioritisedProtected = (ServCompFramePrioritisedProtected)theEObject;
+ T result = caseServCompFramePrioritisedProtected(servCompFramePrioritisedProtected);
+ if (result == null) result = caseServiceComponentFrame(servCompFramePrioritisedProtected);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.SERV_COMP_FRAME_PRIORITISED_COUNTED_PROTECTED: {
+ ServCompFramePrioritisedCountedProtected servCompFramePrioritisedCountedProtected = (ServCompFramePrioritisedCountedProtected)theEObject;
+ T result = caseServCompFramePrioritisedCountedProtected(servCompFramePrioritisedCountedProtected);
+ if (result == null) result = caseServiceComponentFrame(servCompFramePrioritisedCountedProtected);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.MMC_SWITCH: {
+ MMCSwitch mmcSwitch = (MMCSwitch)theEObject;
+ T result = caseMMCSwitch(mmcSwitch);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.MESSAGE_MANAGEMENT_CONTAINER: {
+ MessageManagementContainer messageManagementContainer = (MessageManagementContainer)theEObject;
+ T result = caseMessageManagementContainer(messageManagementContainer);
+ if (result == null) result = caseMMCSwitch(messageManagementContainer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.MMC_MASTER_MESSAGE: {
+ MMCMasterMessage mmcMasterMessage = (MMCMasterMessage)theEObject;
+ T result = caseMMCMasterMessage(mmcMasterMessage);
+ if (result == null) result = caseMMCSwitch(mmcMasterMessage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.MULTI_PART_MESSAGE_DIRECTORY: {
+ MultiPartMessageDirectory multiPartMessageDirectory = (MultiPartMessageDirectory)theEObject;
+ T result = caseMultiPartMessageDirectory(multiPartMessageDirectory);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.MMC_MESSAGE_PART: {
+ MMCMessagePart mmcMessagePart = (MMCMessagePart)theEObject;
+ T result = caseMMCMessagePart(mmcMessagePart);
+ if (result == null) result = caseMMCSwitch(mmcMessagePart);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.METHOD: {
+ Method method = (Method)theEObject;
+ T result = caseMethod(method);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TPEG_LOCATION_REFERENCE: {
+ TPEGLocationReference tpegLocationReference = (TPEGLocationReference)theEObject;
+ T result = caseTPEGLocationReference(tpegLocationReference);
+ if (result == null) result = caseMethod(tpegLocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.DLR1_LOCATION_REFERENCE: {
+ DLR1LocationReference dlr1LocationReference = (DLR1LocationReference)theEObject;
+ T result = caseDLR1LocationReference(dlr1LocationReference);
+ if (result == null) result = caseMethod(dlr1LocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TMC_LOCATION_REFERENCE: {
+ TMCLocationReference tmcLocationReference = (TMCLocationReference)theEObject;
+ T result = caseTMCLocationReference(tmcLocationReference);
+ if (result == null) result = caseMethod(tmcLocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.VICS_LINK_REFERENCE: {
+ VICSLinkReference vicsLinkReference = (VICSLinkReference)theEObject;
+ T result = caseVICSLinkReference(vicsLinkReference);
+ if (result == null) result = caseMethod(vicsLinkReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.KOREAN_NODE_LINK_LOCATION_REFERENCE: {
+ KoreanNodeLinkLocationReference koreanNodeLinkLocationReference = (KoreanNodeLinkLocationReference)theEObject;
+ T result = caseKoreanNodeLinkLocationReference(koreanNodeLinkLocationReference);
+ if (result == null) result = caseMethod(koreanNodeLinkLocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TET_LOCATION_REFERENCE: {
+ TETLocationReference tetLocationReference = (TETLocationReference)theEObject;
+ T result = caseTETLocationReference(tetLocationReference);
+ if (result == null) result = caseMethod(tetLocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.GLR_LOCATION_REFERENCE: {
+ GLRLocationReference glrLocationReference = (GLRLocationReference)theEObject;
+ T result = caseGLRLocationReference(glrLocationReference);
+ if (result == null) result = caseMethod(glrLocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.OLR_LOCATION_REFERENCE: {
+ OLRLocationReference olrLocationReference = (OLRLocationReference)theEObject;
+ T result = caseOLRLocationReference(olrLocationReference);
+ if (result == null) result = caseMethod(olrLocationReference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TpegfwktypesPackage.TIME_SERVICE_COMPONENT_FRAME: {
+ TimeServiceComponentFrame timeServiceComponentFrame = (TimeServiceComponentFrame)theEObject;
+ T result = caseTimeServiceComponentFrame(timeServiceComponentFrame);
+ if (result == null) result = caseServiceComponentFrame(timeServiceComponentFrame);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Localised Short String</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Localised Short String</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocalisedShortString(LocalisedShortString object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Location Referencing Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Location Referencing Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocationReferencingContainer(LocationReferencingContainer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transport Frame Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transport Frame Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransportFrameTemplate(TransportFrameTemplate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transport Frame Type0</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transport Frame Type0</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransportFrameType0(TransportFrameType0 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transport Frame Type1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transport Frame Type1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransportFrameType1(TransportFrameType1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Service Component Frame</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Service Component Frame</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServiceComponentFrame(ServiceComponentFrame object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Service Frame</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Service Frame</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServiceFrame(ServiceFrame object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Stream Directory Frame</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Stream Directory Frame</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStreamDirectoryFrame(StreamDirectoryFrame object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Serv Comp Multiplex</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Serv Comp Multiplex</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServCompMultiplex(ServCompMultiplex object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Service Identifier</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Service Identifier</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServiceIdentifier(ServiceIdentifier object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Serv Comp Frame Protected</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Serv Comp Frame Protected</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServCompFrameProtected(ServCompFrameProtected object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Serv Comp Frame Counted Protected</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Serv Comp Frame Counted Protected</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServCompFrameCountedProtected(ServCompFrameCountedProtected object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Serv Comp Frame Prioritised Protected</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Serv Comp Frame Prioritised Protected</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServCompFramePrioritisedProtected(ServCompFramePrioritisedProtected object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Serv Comp Frame Prioritised Counted Protected</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Serv Comp Frame Prioritised Counted Protected</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseServCompFramePrioritisedCountedProtected(ServCompFramePrioritisedCountedProtected object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>MMC Switch</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>MMC Switch</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMMCSwitch(MMCSwitch object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Message Management Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Message Management Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMessageManagementContainer(MessageManagementContainer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>MMC Master Message</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>MMC Master Message</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMMCMasterMessage(MMCMasterMessage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Part Message Directory</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Part Message Directory</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiPartMessageDirectory(MultiPartMessageDirectory object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>MMC Message Part</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>MMC Message Part</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMMCMessagePart(MMCMessagePart object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Method</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Method</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMethod(Method object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>TPEG Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>TPEG Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTPEGLocationReference(TPEGLocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DLR1 Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DLR1 Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDLR1LocationReference(DLR1LocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>TMC Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>TMC Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTMCLocationReference(TMCLocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>VICS Link Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>VICS Link Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVICSLinkReference(VICSLinkReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Korean Node Link Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Korean Node Link Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseKoreanNodeLinkLocationReference(KoreanNodeLinkLocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>TET Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>TET Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTETLocationReference(TETLocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>GLR Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>GLR Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGLRLocationReference(GLRLocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>OLR Location Reference</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>OLR Location Reference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOLRLocationReference(OLRLocationReference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Time Service Component Frame</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Time Service Component Frame</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTimeServiceComponentFrame(TimeServiceComponentFrame object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //TpegfwktypesSwitch
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.classpath
new file mode 100755
index 0000000..7a338a5
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.project
new file mode 100755
index 0000000..929cd62
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/.project
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.tpegtables</name>
+ <comment>Unclear why I have this project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/ReadMe.confluence
new file mode 100755
index 0000000..dc60f6d
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains a minimal set (as needed for the TrafficIncidentsService PoC) of tables defined by TPEG. \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/pom.xml
new file mode 100755
index 0000000..0ad37b5
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/pom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegtables</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>TPEG Tables (unclear)</name>
+ <description>Unclear why I have this project</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/src/main/java/org/genivi/trafficinfo/tpeg/tpegtables/LanguageCode.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/src/main/java/org/genivi/trafficinfo/tpeg/tpegtables/LanguageCode.java
new file mode 100755
index 0000000..031c663
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.tpegtables/src/main/java/org/genivi/trafficinfo/tpeg/tpegtables/LanguageCode.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.tpeg.tpegtables;
+
+/**
+ * TPEG Type001
+ */
+public enum LanguageCode {
+ UNKNOWN(0, null, null),
+ AFAR(1, "Afar", "aa"),
+ ABKHAZIAN(2, "Abkhazian", "ab"),
+ AVESTAN(3, "Avestan", "ae"),
+ AFRIKAANS(4, "Afrikaans", "af"),
+ AKAN(5, "Akan", "ak"),
+ AMHARIC(6, "Amharic", "am"),
+ ARAGONESE(7, "Aragonese", "an"),
+ ARABIC(8, "Arabic", "ar"),
+ ASSAMESE(9, "Assamese", "as"),
+ AVARIC(10, "Avaric", "av"),
+ AYMARA(11, "Aymara", "ay"),
+ AZERBAIJANI(12, "Azerbaijani", "az"),
+ BASHKIR(13, "Bashkir", "ba"),
+ BELARUSIAN(14, "Belarusian", "be"),
+ BULGARIAN(15, "Bulgarian", "bg"),
+ BIHARI(16, "Bihari", "bh"),
+ BISLAMA(17, "Bislama", "bi"),
+ BAMBARA(18, "Bambara", "bm"),
+ BENGALI(19, "Bengali", "bn"),
+ TIBETAN(20, "Tibetan", "bo"),
+ BRETON(21, "Breton", "br"),
+ BOSNIAN(22, "Bosnian", "bs"),
+ CATALAN(23, "Catalan", "ca"),
+ CHECHEN(24, "Chechen", "ce"),
+ CHAMORRO(25, "Chamorro", "ch"),
+ CORSICAN(26, "Corsican", "co"),
+ CREE(27, "Cree", "cr"),
+ CZECH(28, "Czech", "cs"),
+ CHURCH_SLAVIC(29, "Church Slavic", "cu"),
+ CHUVASH(30, "Chuvash", "cv"),
+ WELSH(31, "Welsh", "cy"),
+ DANISH(32, "Danish", "da"),
+ GERMAN(33, "German", "de"),
+ DIVEHI(34, "Divehi", "dv"),
+ DZONGKHA(35, "Dzongkha", "dz"),
+ EWE(36, "Ewe", "ee"),
+ GREEK(37, "Greek", "el"),
+ ENGLISH(38, "English", "en"),
+ ESPERANTO(39, "Esperanto", "eo"),
+ SPANISH(40, "Spanish", "es"),
+ ESTONIAN(41, "Estonian", "et"),
+ BASQUE(42, "Basque", "eu"),
+ PERSIAN(43, "Persian", "fa"),
+ FULAH(44, "Fulah", "ff"),
+ FINNISH(45, "Finnish", "fi"),
+ FIJIAN(46, "Fijian", "fj"),
+ FAROESE(47, "Faroese", "fo"),
+ FRENCH(48, "French", "fr"),
+ WESTERN_FRISIAN(49, "Western Frisian", "fy"),
+ IRISH(50, "Irish", "ga"),
+ SCOTTISH_GAELIC(51, "Scottish Gaelic", "gd"),
+ GALICIAN(52, "Galician", "gl"),
+ GUARANI(53, "Guaraní", "gn"),
+ GUJARATI(54, "Gujarati", "gu"),
+ MANX(55, "Manx", "gv"),
+ HAUSA(56, "Hausa", "ha"),
+ HEBREW(57, "Hebrew", "he"),
+ HINDI(58, "Hindi", "hi"),
+ HIRI(59, "Hiri", "Motu ho"),
+ CROATIAN(60, "Croatian", "hr"),
+ HAITIAN(61, "Haitian", "ht"),
+ HUNGARIAN(62, "Hungarian", "hu"),
+ ARMENIAN(63, "Armenian", "hy"),
+ HERERO(64, "Herero", "hz"),
+ INTERLINGUA(65, "Interlingua", "ia"),
+ INDONESIAN(66, "Indonesian", "id"),
+ INTERLINGUE(67, "Interlingue", "ie"),
+ IGBO(68, "Igbo", "ig"),
+ SICHUAN_YI(69, "Sichuan Yi", "ii"),
+ INUPIAQ(70, "Inupiaq", "ik"),
+ IDO(71, "Ido", "io"),
+ ICELANDIC(72, "Icelandic", "is"),
+ ITALIAN(73, "Italian", "it"),
+ INUKTITUT(74, "Inuktitut", "iu"),
+ JAPANESE(75, "Japanese", "ja"),
+ JAVANESE(76, "Javanese", "jv"),
+ GEORGIAN(77, "Georgian", "ka"),
+ KONGO(78, "Kongo", "kg"),
+ KIKUYU(79, "Kikuyu", "ki"),
+ KUANYAMA(80, "Kuanyama", "kj"),
+ KAZAKH(81, "Kazakh", "kk"),
+ KALAALLISUT(82, "Kalaallisut", "kl"),
+ KHMER(83, "Khmer", "km"),
+ KANNADA(84, "Kannada", "kn"),
+ KOREAN(85, "Korean", "ko"),
+ KANURI(86, "Kanuri", "kr"),
+ KASHMIRI(87, "Kashmiri", "ks"),
+ KURDISH(88, "Kurdish", "ku"),
+ KOMI(89, "Komi", "kv"),
+ CORNISH(90, "Cornish", "kw"),
+ KIRGHIZ(91, "Kirghiz", "ky"),
+ LATIN(92, "Latin", "la"),
+ LUXEMBOURGISH(93, "Luxembourgish", "lb"),
+ GANDA(94, "Ganda", "lg"),
+ LIMBURGISH(95, "Limburgish", "li"),
+ LINGALA(96, "Lingala", "ln"),
+ LAO(97, "Lao", "lo"),
+ LITHUANIAN(98, "Lithuanian", "lt"),
+ LUBA_KATANGA(99, "Luba-Katanga", "lu"),
+ LATVIAN(100, "Latvian", "lv"),
+ MALAGASY(101, "Malagasy", "mg"),
+ MARSHALLESE(102, "Marshallese", "mh"),
+ MA_ORI(103, "Ma-ori", "mi"),
+ MACEDONIAN(104, "Macedonian", "mk /sl"),
+ MALAYALAM(105, "Malayalam", "ml"),
+ MONGOLIAN(106, "Mongolian", "mn"),
+ MOLDAVIAN(107, "Moldavian", "mo"),
+ MARATHI(108, "Marathi", "mr"),
+ MALAY(109, "Malay", "ms"),
+ MALTESE(110, "Maltese", "mt"),
+ BURMESE(111, "Burmese", "my"),
+ NAURU(112, "Nauru", "na"),
+ NORWEGIAN_BOKMAL(113, "Norwegian Bokmål", "nb"),
+ NORTH_NDEBELE(114, "North Ndebele", "nd"),
+ NAPALI(115, "Nepali", "ne"),
+ NDONGA(116, "Ndonga", "ng"),
+ DUTCH(117, "Dutch", "nl"),
+ NORWEGIAN_NYNORSK(118, "Norwegian Nynorsk", "nn"),
+ NORWEGIAN(119, "Norwegian", "no"),
+ SOUTH_NDEBELE(120, "South Ndebele", "nr"),
+ NAVAJO(121, "Navajo", "nv"),
+ CHICHEWA(122, "Chichewa", "ny"),
+ OCCITAN(123, "Occitan", "oc"),
+ OJIBWA(124, "Ojibwa", "oj"),
+ OROMO(125, "Oromo", "om"),
+ ORIYA(126, "Oriya", "or"),
+ OSSETIAN(127, "Ossetian", "os"),
+ PANJABI(128, "Panjabi", "pa"),
+ PA_LI(129, "Pa-li", "pi"),
+ POLISH(130, "Polish", "pl"),
+ PASHTO(131, "Pashto", "ps"),
+ PORTUGUESE(132, "Portuguese", "pt"),
+ QUECHUA(133, "Quechua", "qu"),
+ RAETO_ROMANCE(134, "Raeto-Romance", "rm"),
+ KIRUNDI(135, "Kirundi", "rn"),
+ ROMANIAN(136, "Romanian", "ro"),
+ RUSSIAN(137, "Russian", "ru"),
+ KINYARWANDA(138, "Kinyarwanda", "rw"),
+ SANSKRIT(139, "Sanskrit", "sa"),
+ SARDINIAN(140, "Sardinian", "sc"),
+ SINDHI(141, "Sindhi", "sd"),
+ NORTHERN_SAMI(142, "Northern Sami", "se"),
+ SANGO(143, "Sango", "sg"),
+ SERBO_CROATIAN(144, "Serbo-Croatian", "sh"),
+ SINHALESE(145, "Sinhalese", "si"),
+ SLOVAK(146, "Slovak", "sk"),
+ SLOVENIAN(147, "Slovenian", "sl"),
+ SAMOAN(148, "Samoan", "sm"),
+ SHONA(149, "Shona", "sn"),
+ SOMALI(150, "Somali", "so"),
+ ALBANIAN(151, "Albanian", "sq"),
+ SERBIAN(152, "Serbian", "sr"),
+ SWATI(153, "Swati", "ss"),
+ SOUTHERN_SOTHO(154, "Southern Sotho", "st"),
+ SUNSANESE(155, "Sundanese", "su"),
+ SWEDISH(156, "Swedish", "sv"),
+ SWAHILI(157, "Swahili", "sw"),
+ TAMIL(158, "Tamil", "ta"),
+ TELUGU(159, "Telugu", "te"),
+ TAJIK(160, "Tajik", "tg"),
+ THAI(161, "Thai", "th"),
+ TIGRINYA(162, "Tigrinya", "ti"),
+ TURKMEN(163, "Turkmen", "tk"),
+ TAGALOG(164, "Tagalog", "tl"),
+ TSWANA(165, "Tswana", "tn"),
+ TONGA(166, "Tonga", "to"),
+ TURKISH(167, "Turkish", "tr"),
+ TSONGA(168, "Tsonga", "ts"),
+ TATAR(169, "Tatar", "tt"),
+ TWI(170, "Twi", "tw"),
+ TAHITIAN(171, "Tahitian", "ty"),
+ UIGHUR(172, "Uighur", "ug"),
+ UKRAINIAN(173, "Ukrainian", "uk"),
+ URDU(174, "Urdu", "ur"),
+ UZBEK(175, "Uzbek", "uz"),
+ VENDA(176, "Venda", "ve"),
+ VIETNAMESE(177, "Vietnamese", "vi"),
+ VOLAPUK(178, "Volapük", "vo"),
+ WALLOON(179, "Walloon", "wa"),
+ WOLOF(180, "Wolof", "wo"),
+ XHOSA(181, "Xhosa", "xh"),
+ YIDDISH(182, "Yiddish", "yi"),
+ YORUBA(183, "Yoruba", "yo"),
+ ZHUANG(184, "Zhuang", "za"),
+ CHINESE(185, "Chinese", "zh"),
+ ZULU(186, "Zulu", "zu ");
+
+ private int code;
+ private String languageName; // TISA-English language name
+ private String alpha2Code; // 2-alpha code of ISO 639
+
+
+ private LanguageCode(int code, String languageName, String alpha2Code) {
+ this.code = code;
+ this.languageName = languageName;
+ this.alpha2Code = alpha2Code;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getLanguageName() {
+ return languageName;
+ }
+
+ public String getAlpha2Code() {
+ return alpha2Code;
+ }
+
+}
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.classpath b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.classpath
new file mode 100755
index 0000000..001dc96
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.classpath
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/dbuswrapper/1.0-SNAPSHOT/dbuswrapper-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsfeed.tpegtec"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tecservice"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.project b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.project
new file mode 100755
index 0000000..9eca3ef
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidenttestfeed</name>
+ <comment>This project contains the test feed and framework of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficincidentsfeed.tpegtec</project>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ <project>org.genivi.trafficinfo.tpeg.tecservice</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/ReadMe.confluence b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/ReadMe.confluence
new file mode 100755
index 0000000..8568b26
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains a class to start the whole chain for TPEG-TEC messages; from generating them on the server side to injecting them in the TrafficIncidentsService (using a D-Bus interface). \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/pom.xml b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/pom.xml
new file mode 100755
index 0000000..96c04c1
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidenttestfeed</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Feed</name>
+ <description>This project contains the test feed and framework of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsfeed</groupId>
+ <artifactId>tpegtec</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwk</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>tecservice</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficinfo.trafficincidenttestfeed.TrafficIncidentTestFeed</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/src/main/java/org/genivi/trafficinfo/trafficincidenttestfeed/TrafficIncidentTestFeed.java b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/src/main/java/org/genivi/trafficinfo/trafficincidenttestfeed/TrafficIncidentTestFeed.java
new file mode 100755
index 0000000..f1a0dc4
--- /dev/null
+++ b/test/traffic-incidents-service/feed/org.genivi.trafficinfo.trafficincidenttestfeed/src/main/java/org/genivi/trafficinfo/trafficincidenttestfeed/TrafficIncidentTestFeed.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidenttestfeed;
+
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.freedesktop.DBus.Introspectable;
+import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.tpegtecfeed.refimpl.TpegTecFeedRefImpl;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsUpdatesListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeed;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.TrafficIncidentFeedDBus;
+import org.genivi.trafficincidentsservice.trafficincidentfeed.dbus.impl.TrafficIncidentFeedDBusProxy;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.impl.TpegSfwRefImpl;
+import org.genivi.trafficinfo.tpeg.clientside.broadcastadaptionlayer.refimpl.BroadcastAdaptationLayerImplementation;
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.impl.BroadcastFrameworkImplementation;
+import org.genivi.trafficinfo.tpeg.tecservice.testsetplayer.TestPlayerTecService;
+
+
+public class TrafficIncidentTestFeed {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentTestFeed.class.getName());
+ private final static String TRAFFIC_INCIDENTS_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsUpdatesDBus";
+ private final static String OBJECT_PATH_SERVICE = "/trafficincidentfeed";
+
+
+ private String objectPath = OBJECT_PATH_SERVICE;
+ private String interfaceName = TRAFFIC_INCIDENTS_SERVICE_NAME;
+
+ //settings to control what to run and what not
+ private final static Level logLevel = Level.SEVERE;
+
+ private TrafficIncidentFeed trafficIncidentsService;
+
+ TrafficIncidentTestFeed() throws DBusException {
+
+ logSetup();
+
+ // Create the Traffic Information Service Proxy
+ trafficIncidentsService = createTrafficIncidentsServiceProxy();
+
+ createTpegTecFeeds(trafficIncidentsService);
+ }
+
+ private void logSetup() {
+ // Create Logger
+ Logger logger = Logger.getLogger("");
+ logger.setLevel(logLevel);
+
+ Handler consoleHandler = null;
+ for (Handler handler: logger.getHandlers()) {
+ if (handler.getClass().getName().equals("java.util.logging.ConsoleHandler")) {
+ consoleHandler = handler;
+ break;
+ }
+ }
+ consoleHandler.setLevel(logLevel);
+ }
+
+
+ private TrafficIncidentFeed createTrafficIncidentsServiceProxy() throws DBusException {
+ DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+
+ // Show the D-Bus xml interface definition
+ Introspectable introSpectable = (Introspectable) conn.getRemoteObject(interfaceName, objectPath, Introspectable.class);
+ boolean introspectOk = false;
+ while (!introspectOk) {
+ LOGGER.info("Waiting for service to become available ...");
+ try {
+ String data = introSpectable.Introspect();
+ LOGGER.severe("Connected to interface with following specification:");
+ LOGGER.severe(data);
+ introspectOk = true;
+ } catch (Exception e) {
+ LOGGER.info(e.getMessage());
+ }
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ }
+ }
+
+ TrafficIncidentFeedDBus trafficIncidentFeedDBus = (TrafficIncidentFeedDBus) conn.getRemoteObject(interfaceName, objectPath, TrafficIncidentFeedDBus.class);
+ LOGGER.info("TrafficIncidentsUpdatesDBus obtained");
+
+ TrafficIncidentFeedDBusProxy trafficIncidentFeedDBusProxy = new TrafficIncidentFeedDBusProxy(conn, trafficIncidentFeedDBus);
+
+ return trafficIncidentFeedDBusProxy;
+ }
+
+ private void createTpegTecFeeds(TrafficIncidentFeed trafficIncidentsService) {
+ /*
+ * Initialise server side broadcast, and a TPEG-TEC Service.
+ */
+
+ // Create and start Server Side framework
+ BroadcastFrameworkImplementation serverSideBroadcastFramework = new BroadcastFrameworkImplementation();
+ serverSideBroadcastFramework.start();
+
+ @SuppressWarnings("unused")
+ TestPlayerTecService tecService = new TestPlayerTecService(serverSideBroadcastFramework);
+
+ /*
+ * Initialize client side TPEG framework for broadcast reception, and a Time Application.
+ */
+
+ // Create client side TPEG framework.
+ TpegSfwRefImpl clientSideTpegFrameworkImplementationBroadcast = new TpegSfwRefImpl();
+ @SuppressWarnings("unused")
+ BroadcastAdaptationLayerImplementation broadcastAdaptationLayerImplementation = new BroadcastAdaptationLayerImplementation("some tuner", clientSideTpegFrameworkImplementationBroadcast);
+
+
+ // Create TPEG-TEC Feed (TEC Application in TISA terms)
+ new TpegTecFeedRefImpl(clientSideTpegFrameworkImplementationBroadcast, trafficIncidentsService);
+
+ // Register a dummy feed for extra status information.
+ TrafficIncidentFeedListener dummyTrafficIncidentsUpdatesListener = new DefaultTrafficIncidentsUpdatesListener();
+ trafficIncidentsService.registerFeed(dummyTrafficIncidentsUpdatesListener , "GENIVI", "RDS-TMC", "TMC bridge");
+
+ }
+
+ public static void main(String[] args) throws DBusException {
+ @SuppressWarnings("unused")
+ TrafficIncidentTestFeed trafficIncidentTestFeed = new TrafficIncidentTestFeed();
+ LOGGER.info("TrafficIncidentsFeed running");
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.classpath b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.classpath
new file mode 100755
index 0000000..a709c89
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.classpath
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/dbuswrapper/1.0-SNAPSHOT/dbuswrapper-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.project b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.project
new file mode 100755
index 0000000..c533367
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/.project
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidentspoc</name>
+ <comment>This project is the top level project for the Traffic Incidents Proof of Concept. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/ReadMe.confluence b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/ReadMe.confluence
new file mode 100755
index 0000000..d5afe93
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/ReadMe.confluence
@@ -0,0 +1,3 @@
+This project contains:
+* An NSIS script to generate the installer of the Traffic Incidents PoC (folder nsis)
+* Scripts to start the processes of the PoC (folder scripts) \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/GENIVI_TomTom_64x64.bmp b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/GENIVI_TomTom_64x64.bmp
new file mode 100755
index 0000000..7a0c728
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/GENIVI_TomTom_64x64.bmp
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Thumbs.db b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Thumbs.db
new file mode 100755
index 0000000..093b3d3
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Thumbs.db
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Traffic Info license.rtf b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Traffic Info license.rtf
new file mode 100755
index 0000000..3f3e389
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/Traffic Info license.rtf
@@ -0,0 +1,173 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
+{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Verdana;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
+{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
+{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f41\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f42\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\f44\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f45\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f46\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f47\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\f48\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f381\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f382\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
+{\f384\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f385\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f388\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f389\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
+{\f421\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f422\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f424\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;}{\f425\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;}
+{\f428\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f429\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
+{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
+{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
+{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
+{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
+{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
+\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;
+\caccentone\ctint255\cshade191\red54\green95\blue145;\caccentone\ctint255\cshade255\red79\green129\blue189;\ctexttwo\ctint255\cshade191\red23\green54\blue93;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
+\f38\fs18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 \styrsid12075506 Normal;}{\s1\ql \li0\ri0\sb480\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0
+\rtlch\fcs1 \ab\af0\afs28\alang1025 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid1780167 heading 1;}{
+\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0
+\b\fs26\cf18\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink16 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid1780167 heading 2;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1
+Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
+\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused
+Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0 \b\fs28\cf17\loch\f38\hich\af38\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid1780167 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\af0\afs26 \ltrch\fcs0
+\b\fs26\cf18\loch\f38\hich\af38\dbch\af31501 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 \styrsid1780167 Heading 2 Char;}{\s17\ql \li0\ri0\sa300\widctlpar\brdrb\brdrs\brdrw20\brsp80\brdrcf18
+\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\contextualspace \rtlch\fcs1 \af0\afs52\alang1025 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf19\lang1033\langfe1033\kerning28\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext0 \slink18 \sqformat \spriority10 \styrsid1780167 Title;}{\*\cs18 \additive \rtlch\fcs1 \af0\afs52 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf19\kerning28\loch\f38\hich\af38\dbch\af31501
+\sbasedon10 \slink17 \slocked \spriority10 \styrsid1780167 Title Char;}{\s19\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ilvl1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ai\af0\afs24\alang1025 \ltrch\fcs0
+\i\fs24\expnd3\expndtw15\cf18\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink20 \sqformat \spriority11 \styrsid1780167 Subtitle;}{\*\cs20 \additive \rtlch\fcs1 \ai\af0\afs24 \ltrch\fcs0
+\i\fs24\expnd3\expndtw15\cf18\loch\f38\hich\af38\dbch\af31501 \sbasedon10 \slink19 \slocked \spriority11 \styrsid1780167 Subtitle Char;}}{\*\rsidtbl \rsid1312242\rsid1780167\rsid2360776\rsid3034291\rsid7419968\rsid10096906\rsid11485746\rsid12075506
+\rsid15359627}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Peter Goedegebure}{\operator Peter Goedegebure}{\creatim\yr2012\mo9\dy27\hr10\min53}
+{\revtim\yr2013\mo11\dy25\hr14\min24}{\version4}{\edmins20}{\nofpages1}{\nofwords53}{\nofchars306}{\*\company TomTom Group}{\nofcharsws358}{\vern49167}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
+\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
+\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
+\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
+\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
+\asianbrkrule\rsidroot11485746\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
+{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
+\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
+\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
+{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10096906 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
+\f38\fs18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906 Copyright \'a9 2012, TomTom International B.V.
+\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7419968 This software is only meant to be used to demonstrate the functionality of the GENIVI interfaces for Traffic Information.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906
+\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906 This Source Code Form is subject to the terms of the Mo}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906 zilla Public\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906 License, v. 2.0. If a copy of the MP}{
+\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906 L was not distributed with this\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10096906 file, You can obtain one at http://mozilla.org/MPL/2.0/.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7419968\charrsid1780167
+
+\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
+9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
+5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
+b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
+0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
+a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
+c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
+0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
+a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
+6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
+4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
+4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f
+7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87
+615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad
+79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b
+5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab
+999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9
+699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586
+8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6
+0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f
+9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be
+15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979
+3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d
+32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a
+f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86
+e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90
+fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2
+ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae
+a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1
+399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5
+4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84
+0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b
+c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7
+689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20
+5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0
+aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d
+316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840
+545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a
+c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100
+0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7
+8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89
+d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500
+1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f
+bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6
+a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a
+0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021
+0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008
+00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000}
+{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
+6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
+656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
+{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
+\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
+\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
+\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
+4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000000087
+89b7e1e9ce01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficIncidentsPOC.nsi b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficIncidentsPOC.nsi
new file mode 100755
index 0000000..5717eff
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficIncidentsPOC.nsi
@@ -0,0 +1,197 @@
+;
+; Copyright (C) 2013 TomTom International B.V.
+;
+; This Source Code Form is subject to the terms of the Mozilla Public
+; License, v. 2.0. If a copy of the MPL was not distributed with this
+; file, You can obtain one at http://mozilla.org/MPL/2.0/.
+;
+;
+; NSIS script om de GENIVI Traffic Incidents POC installer te genereren.
+;
+
+!include LogicLib.nsh
+
+;--------------------------------
+
+!macro BIMAGE IMAGE
+ Push $0
+ GetTempFileName $0
+ File /oname=$0 "${IMAGE}"
+ SetBrandingImage $0
+ Delete $0
+ Pop $0
+!macroend
+
+
+;--------------------------------
+
+Name "GENIVI Traffic Incidents POC"
+Caption "GENIVI Traffic Incidents POC"
+
+OutFile "..\target\TrafficIncidentsPOC-Installer.exe"
+
+LicenseText "In order to install this software you have to agree with the following license agreement"
+LicenseData "Traffic Info license.rtf"
+
+
+InstallColors 101010 e0e0e0
+XPStyle on
+
+; Add branding image to the installer (an image placeholder on the side).
+; It is not enough to just add the placeholder, we must set the image too...
+; We will later set the image in every pre-page function.
+; We can also set just one persistent image in .onGUIInit
+AddBrandingImage left 50 10
+
+InstallDir "$PROGRAMFILES\Traffic Info demo"
+
+
+;--------------------------------
+
+Page license setBrandingImage
+Page components
+Page directory
+Page instfiles "" "" readySound
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+;--------------------------------
+
+
+Section "" ; empty string makes it hidden.
+ SetOutPath $INSTDIR
+SectionEnd
+
+
+Section "!Traffic Incidents POC"
+ SectionIn RO
+
+ ; Create folder with all jars, copy them from there to required locations. Remove afterwards.
+ CreateDirectory $INSTDIR\jars
+ File "/oname=jars\dbuswrapper-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsservice\dbuswrapper\1.0-SNAPSHOT\dbuswrapper-1.0-SNAPSHOT.jar"
+ File "/oname=jars\dbus-java-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\dbus-java\1.0-SNAPSHOT\dbus-java-1.0-SNAPSHOT.jar"
+ File "/oname=jars\libmatthew-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\libmatthew\1.0-SNAPSHOT\libmatthew-1.0-SNAPSHOT.jar"
+ File "/oname=jars\trafficinfo-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\1.0-SNAPSHOT\trafficinfo-1.0-SNAPSHOT.jar"
+ File "/oname=jars\demo-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\demo\1.0-SNAPSHOT\demo-1.0-SNAPSHOT.jar"
+ File "/oname=jars\tecservice-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\tpeg\tecservice\1.0-SNAPSHOT\tecservice-1.0-SNAPSHOT.jar"
+ File "/oname=jars\tpegfwk-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\tpegfwk\1.0-SNAPSHOT\tpegfwk-1.0-SNAPSHOT.jar"
+ File "/oname=jars\tpegfwktypes-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\tpegfwktypes-model\1.0-SNAPSHOT\tpegfwktypes-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\tpegtables-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\tpegtables\1.0-SNAPSHOT\tpegtables-1.0-SNAPSHOT.jar"
+ File "/oname=jars\event-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\tpeg\tec\event-model\1.0-SNAPSHOT\event-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\commons-logging-1.0.4.jar" "D:\maven_repository\repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar"
+ File "/oname=jars\openlr-cli-sqlite-with-dependencies-1.2.2.jar" "D:\maven_repository\repository\openlr\openlr-cli-sqlite-with-dependencies\1.2.2\openlr-cli-sqlite-with-dependencies-1.2.2.jar"
+ File "/oname=jars\openlr-map-1.2.2.jar" "D:\maven_repository\repository\openlr\openlr-map\1.2.2\openlr-map-1.2.2.jar"
+ File "/oname=jars\openlr-map-sqlite-with-dependencies-1.2.2.jar" "D:\maven_repository\repository\openlr\openlr-map-sqlite-with-dependencies\1.2.2\openlr-map-sqlite-with-dependencies-1.2.2.jar"
+ File "/oname=jars\basetypes-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\basetypes-model\1.0-SNAPSHOT\basetypes-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\booleanexpr-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\booleanexpr-model\1.0-SNAPSHOT\booleanexpr-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\iconset-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\iconset-model\1.0-SNAPSHOT\iconset-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\locref-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\locref-model\1.0-SNAPSHOT\locref-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\sni-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\tpeg\sni-model\1.0-SNAPSHOT\sni-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsservice\trafficincidents\trafficincidents-trafficincident-model\1.0-SNAPSHOT\trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\trafficincidenttables-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsservice\trafficincidenttables-model\1.0-SNAPSHOT\trafficincidenttables-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\trafficincidentsservice-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsservice\trafficincidentsservice-model\1.0-SNAPSHOT\trafficincidentsservice-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsservice\trafficincidentfeed\trafficincidentfeed-trafficincident-model\1.0-SNAPSHOT\trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"
+ File "/oname=jars\trafficincidentsexampleclients-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\trafficincidentsexampleclients\1.0-SNAPSHOT\trafficincidentsexampleclients-1.0-SNAPSHOT.jar"
+ File "/oname=jars\org.eclipse.emf.common-2.8.0.v20130125-0546.jar" "D:\maven_repository\repository\org\eclipse\emf\org.eclipse.emf.common\2.8.0.v20130125-0546\org.eclipse.emf.common-2.8.0.v20130125-0546.jar"
+ File "/oname=jars\org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar" "D:\maven_repository\repository\org\eclipse\emf\org.eclipse.emf.ecore\2.8.3.v20130125-0546\org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"
+ File "/oname=jars\org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar" "D:\maven_repository\repository\org\eclipse\emf\org.eclipse.emf.ecore.xmi\2.8.1.v20130125-0546\org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"
+ File "/oname=jars\org.jdesktop.swingx-none.jar" "D:\maven_repository\repository\org\jdesktop\org.jdesktop.swingx\none\org.jdesktop.swingx-none.jar"
+ File "/oname=jars\org.jdesktop.swingx-ws-2007_10_14.jar" "D:\maven_repository\repository\org\jdesktop\org.jdesktop.swingx-ws\2007_10_14\org.jdesktop.swingx-ws-2007_10_14.jar"
+
+ File "..\scripts\RunTrafficIncidentsPOC.sh"
+
+ CreateDirectory $INSTDIR\TrafficIncidentsService
+ File "/oname=TrafficIncidentsService\RunTrafficIncidentsService.sh" "..\scripts\TrafficIncidentsService\RunTrafficIncidentsService.sh"
+ File "/oname=TrafficIncidentsService\dbus.impl-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsservice\dbus.impl\1.0-SNAPSHOT\dbus.impl-1.0-SNAPSHOT.jar"
+ CopyFiles "$INSTDIR\jars\*.jar" "$INSTDIR\TrafficIncidentsService"
+
+ CreateDirectory $INSTDIR\TrafficIncidentsFeed
+ File "/oname=TrafficIncidentsFeed\trafficincidenttestfeed-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\trafficincidenttestfeed\1.0-SNAPSHOT\trafficincidenttestfeed-1.0-SNAPSHOT.jar"
+ File "/oname=TrafficIncidentsFeed\tpegtec-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficincidentsfeed\tpegtec\1.0-SNAPSHOT\tpegtec-1.0-SNAPSHOT.jar"
+ File "/oname=TrafficIncidentsFeed\RunTrafficIncidentsFeed.sh" "..\scripts\TrafficIncidentsFeed\RunTrafficIncidentsFeed.sh"
+ CopyFiles "$INSTDIR\jars\*.jar" "$INSTDIR\TrafficIncidentsFeed"
+
+ CreateDirectory $INSTDIR\TrafficIncidentsConfiguration
+ File "/oname=TrafficIncidentsConfiguration\RunTrafficIncidentsConfiguration.sh" "..\scripts\TrafficIncidentsConfiguration\RunTrafficIncidentsConfiguration.sh"
+ File "/oname=TrafficIncidentsConfiguration\trafficincidentsconfiguration-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\trafficincidentsconfiguration\1.0-SNAPSHOT\trafficincidentsconfiguration-1.0-SNAPSHOT.jar"
+ CopyFiles "$INSTDIR\jars\*.jar" "$INSTDIR\TrafficIncidentsConfiguration"
+
+ CreateDirectory $INSTDIR\TrafficIncidentsListClient
+ File "/oname=TrafficIncidentsListClient\RunTrafficIncidentsListClient.sh" "..\scripts\TrafficIncidentsListClient\RunTrafficIncidentsListClient.sh"
+ File "/oname=TrafficIncidentsListClient\trafficincidentslistclient-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\trafficincidentslistclient\1.0-SNAPSHOT\trafficincidentslistclient-1.0-SNAPSHOT.jar"
+ CopyFiles "$INSTDIR\jars\*.jar" "$INSTDIR\TrafficIncidentsListClient"
+
+ CreateDirectory $INSTDIR\TrafficIncidentsMapClient
+ File "/oname=TrafficIncidentsMapClient\RunTrafficIncidentsMapClient.sh" "..\scripts\TrafficIncidentsMapClient\RunTrafficIncidentsMapClient.sh"
+ File "/oname=TrafficIncidentsMapClient\trafficincidentsmapclient-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\trafficincidentsmapclient\1.0-SNAPSHOT\trafficincidentsmapclient-1.0-SNAPSHOT.jar"
+ CopyFiles "$INSTDIR\jars\*.jar" "$INSTDIR\TrafficIncidentsMapClient"
+
+ CreateDirectory $INSTDIR\TrafficIncidentsWarningClient
+ File "/oname=TrafficIncidentsWarningClient\RunTrafficIncidentsWarningClient.sh" "..\scripts\TrafficIncidentsWarningClient\RunTrafficIncidentsWarningClient.sh"
+ File "/oname=TrafficIncidentsWarningClient\trafficincidentswarningclient-1.0-SNAPSHOT.jar" "D:\maven_repository\repository\org\genivi\trafficinfo\trafficincidentswarningclient\1.0-SNAPSHOT\trafficincidentswarningclient-1.0-SNAPSHOT.jar"
+ CopyFiles "$INSTDIR\jars\*.jar" "$INSTDIR\TrafficIncidentsWarningClient"
+
+
+ CreateDirectory $INSTDIR\resources
+ File "/oname=resources\tomtom_utrecht_2008_04.db3" "..\..\org.genivi.trafficinfo.trafficincidentsexampleclients\resources\tomtom_utrecht_2008_04.db3"
+
+ RMDir /r "$INSTDIR\jars"
+
+SectionEnd
+
+
+Function .onInit
+ # the plugins dir is automatically deleted when the installer exits
+ InitPluginsDir
+
+ StrCpy $INSTDIR "D:\Data\VirtualBoxShare\TrafficInfoPOC"
+
+FunctionEnd
+
+Function .onGUIInit
+ # lets extract some bitmaps...
+ File /oname=$PLUGINSDIR\TrafficInfoBackground.bmp "TrafficInfoBackground.bmp"
+; File /oname=$PLUGINSDIR\notify.wav "notify.wav"
+
+ # set the initial background for images to be drawn on
+ # we will use a gradient from dark blue to a bright blue
+ BgImage::SetBg /NOUNLOAD /GRADIENT 0x0 0x0 0x50 0x10 0x10 0xFF
+
+ # create the font for the following text
+ CreateFont $R0 "Times New Roman" 50 700
+ # add a text with shadow
+ BgImage::AddText /NOUNLOAD "Traffic Incidents Proof Of Concept" $R0 50 50 50 328 48 900 198
+ BgImage::AddText /NOUNLOAD "Traffic Incidents Proof Of Concept" $R0 80 80 80 327 49 899 199
+ BgImage::AddText /NOUNLOAD "Traffic Incidents Proof Of Concept" $R0 110 110 110 326 50 898 200
+ BgImage::AddText /NOUNLOAD "Traffic Incidents Proof Of Concept" $R0 150 150 150 325 51 897 201
+ BgImage::AddText /NOUNLOAD "Traffic Incidents Proof Of Concept" $R0 190 190 190 324 52 896 202
+
+ # add the background image @ (150,200)
+ BgImage::AddImage /NOUNLOAD $PLUGINSDIR\TrafficInfoBackground.bmp 100 250
+
+ # show our creation to the world!
+ BgImage::Redraw /NOUNLOAD
+ # Refresh doesn't return any value
+
+FunctionEnd
+
+
+Function .onGUIEnd
+ # Destroy must not have /NOUNLOAD so NSIS will be able to unload
+ # and delete BgImage before it exits
+ BgImage::Destroy
+FunctionEnd
+
+
+Function setBrandingImage
+ !insertmacro BIMAGE "GENIVI_TomTom_64x64.bmp"
+FunctionEnd
+
+
+Function readySound
+; BgImage::Sound /NOUNLOAD /WAIT $PLUGINSDIR\notify.wav
+FunctionEnd
+
+;--------------------------------
+
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficInfoBackground.bmp b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficInfoBackground.bmp
new file mode 100755
index 0000000..a0bfd93
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/nsis/TrafficInfoBackground.bmp
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/pom.xml b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/pom.xml
new file mode 100755
index 0000000..11d1fe8
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentspoc</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Proof Of Concept</name>
+ <description>This project is the top level project for the Traffic Incidents Proof of Concept.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/RunTrafficIncidentsPOC.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/RunTrafficIncidentsPOC.sh
new file mode 100755
index 0000000..6c720da
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/RunTrafficIncidentsPOC.sh
@@ -0,0 +1,17 @@
+gnome-terminal -e "bash -c \"cd TrafficIncidentsService;./RunTrafficIncidentsService.sh;exec bash\""
+
+sleep 1
+gnome-terminal -e "bash -c \"cd TrafficIncidentsFeed;./RunTrafficIncidentsFeed.sh;exec bash\""
+
+sleep 1
+gnome-terminal -e "bash -c \"cd TrafficIncidentsConfiguration;./RunTrafficIncidentsConfiguration.sh;exec bash\""
+
+sleep 1
+gnome-terminal -e "bash -c \"cd TrafficIncidentsListClient;./RunTrafficIncidentsListClient.sh;exec bash\""
+
+sleep 1
+gnome-terminal -e "bash -c \"cd TrafficIncidentsMapClient;./RunTrafficIncidentsMapClient.sh;exec bash\""
+
+sleep 1
+gnome-terminal -e "bash -c \"cd TrafficIncidentsWarningClient;./RunTrafficIncidentsWarningClient.sh;exec bash\""
+
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsConfiguration/RunTrafficIncidentsConfiguration.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsConfiguration/RunTrafficIncidentsConfiguration.sh
new file mode 100755
index 0000000..5c07e8a
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsConfiguration/RunTrafficIncidentsConfiguration.sh
@@ -0,0 +1 @@
+java -Djava.library.path=/usr/lib/jni -jar trafficincidentsconfiguration-1.0-SNAPSHOT.jar
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsFeed/RunTrafficIncidentsFeed.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsFeed/RunTrafficIncidentsFeed.sh
new file mode 100755
index 0000000..13da664
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsFeed/RunTrafficIncidentsFeed.sh
@@ -0,0 +1 @@
+java -Djava.library.path=/usr/lib/jni -jar trafficincidenttestfeed-1.0-SNAPSHOT.jar
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsListClient/RunTrafficIncidentsListClient.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsListClient/RunTrafficIncidentsListClient.sh
new file mode 100755
index 0000000..ee43e52
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsListClient/RunTrafficIncidentsListClient.sh
@@ -0,0 +1 @@
+java -Djava.library.path=/usr/lib/jni -jar trafficincidentslistclient-1.0-SNAPSHOT.jar
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsMapClient/RunTrafficIncidentsMapClient.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsMapClient/RunTrafficIncidentsMapClient.sh
new file mode 100755
index 0000000..ada60f6
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsMapClient/RunTrafficIncidentsMapClient.sh
@@ -0,0 +1 @@
+java -Djava.library.path=/usr/lib/jni -jar trafficincidentsmapclient-1.0-SNAPSHOT.jar
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsService/RunTrafficIncidentsService.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsService/RunTrafficIncidentsService.sh
new file mode 100755
index 0000000..f840d83
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsService/RunTrafficIncidentsService.sh
@@ -0,0 +1 @@
+java -Djava.library.path=/usr/lib/jni -jar dbus.impl-1.0-SNAPSHOT.jar
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsWarningClient/RunTrafficIncidentsWarningClient.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsWarningClient/RunTrafficIncidentsWarningClient.sh
new file mode 100755
index 0000000..d2167e8
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.poc/scripts/TrafficIncidentsWarningClient/RunTrafficIncidentsWarningClient.sh
@@ -0,0 +1 @@
+java -Djava.library.path=/usr/lib/jni -jar trafficincidentswarningclient-1.0-SNAPSHOT.jar
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.classpath b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.classpath
new file mode 100755
index 0000000..bb29924
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.classpath
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/dbuswrapper/1.0-SNAPSHOT/dbuswrapper-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.project b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.project
new file mode 100755
index 0000000..17ace7d
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/.project
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidentsconfiguration</name>
+ <comment>This project contains the Configuration Client of the Traffic Incidents Service of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/ReadMe.confluence b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/ReadMe.confluence
new file mode 100755
index 0000000..2abe0d5
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains a client of the TrafficIncidentsService, which configures this service (using a D-Bus interface). It defines icons and categories which use these icons. \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/pom.xml b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/pom.xml
new file mode 100755
index 0000000..554a487
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/pom.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsconfiguration</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Configuration client</name>
+ <description>This project contains the Configuration Client of the Traffic Incidents Service of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficinfo.trafficincidentsconfiguration.TrafficIncidentsConfiguration</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/src/main/java/org/genivi/trafficinfo/trafficincidentsconfiguration/TrafficIncidentsConfiguration.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/src/main/java/org/genivi/trafficinfo/trafficincidentsconfiguration/TrafficIncidentsConfiguration.java
new file mode 100755
index 0000000..02c7080
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsconfiguration/src/main/java/org/genivi/trafficinfo/trafficincidentsconfiguration/TrafficIncidentsConfiguration.java
@@ -0,0 +1,558 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsconfiguration;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.imageio.ImageIO;
+import javax.swing.JOptionPane;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.ComparisonOperator;
+import org.genivi.booleanexpr.ComparisonPredicate;
+import org.genivi.booleanexpr.DownCastPredicate;
+import org.genivi.booleanexpr.DyadicExpression;
+import org.genivi.booleanexpr.DyadicLogicalOperator;
+import org.genivi.booleanexpr.FilterexprFactory;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.LocalizedString;
+import org.genivi.iconset.ColorType;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconDimension;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconSize;
+import org.genivi.iconset.IconsetFactory;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.impl.TrafficIncidentsDBusProxy;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+
+import cx.ath.matthew.debug.Debug;
+
+
+public class TrafficIncidentsConfiguration {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsConfiguration.class.getName());
+ private static final String NEWLINE = System.getProperty("line.separator");
+ private final static String TRAFFIC_INCIDENTS_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsDBus";
+ private final static String OBJECT_PATH_SERVICE = "/java";
+ private final static CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private final static IconsetFactory iconsetFactory = IconsetFactory.eINSTANCE;
+ private final static trafficincidentsserviceFactory TRAFFIC_INCIDENTS_SVC_FACTORY = trafficincidentsserviceFactory.eINSTANCE;
+ private final static FilterexprFactory FILTER_EXPR_FACTORY = FilterexprFactory.eINSTANCE;
+ private final static trafficincidentPackage tip = trafficincidentPackage.eINSTANCE;
+
+
+ private String objectPath = OBJECT_PATH_SERVICE;
+ private String interfaceName = TRAFFIC_INCIDENTS_SERVICE_NAME;
+
+
+
+ // settings to control what to run and what not
+ private final static Level logLevel = Level.SEVERE;
+ private final static boolean useIconFiles = false;
+
+ private EList<Integer> iconSetIds = null;
+ private EList<Integer> categoryIds = null;
+ private EList<IconSet> iconSets = null;
+ private EList<IconDefinition> iconDefinitions = null;
+
+ private TrafficIncidentsDBusProxy trafficIncidentsService;
+
+ TrafficIncidentsConfiguration() throws DBusException {
+ // Create the Traffic Information Service Proxy
+ trafficIncidentsService = new TrafficIncidentsDBusProxy(interfaceName, objectPath);
+
+ try {
+ Debug.setOutput(System.out);
+ Debug.setLineNos(true);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // Customize the Service
+ customizeTrafficIncidentsService(trafficIncidentsService);
+
+ }
+
+ private void customizeTrafficIncidentsService(TrafficIncidents trafficIncidentsService) {
+
+ TrafficIncidentsListener reserveIconSetIdsReplyListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void reserveIconSetIdsReply(EList<Integer> iconSetIds) {
+ setIconSetIds(iconSetIds);
+ }
+ };
+
+ trafficIncidentsService.reserveIconSetIds(reserveIconSetIdsReplyListener, 10);
+ while (iconSetIds == null) {
+ LOGGER.info("Waiting for iconSetIds");
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ LOGGER.info("iconSetIds received");
+
+ // Create the icon set definitions.
+ iconSets = new BasicEList<IconSet>();
+ iconSets.add(createIconSet(iconSetIds.get(0), ColorType.GRAY_8, IconDimension.D2D, true, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(1), ColorType.RGB888, IconDimension.D2D, true, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(2), ColorType.GRAY_8, IconDimension.D2D, false, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(3), ColorType.RGB888, IconDimension.D2D, false, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(4), ColorType.RGB888, IconDimension.D25D, true, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(5), ColorType.RGB888, IconDimension.D25D, false, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(6), ColorType.GRAY_8, IconDimension.D2D, true, 44, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(7), ColorType.RGB888, IconDimension.D2D, true, 44, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(8), ColorType.GRAY_8, IconDimension.D2D, false, 44, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(9), ColorType.RGB888, IconDimension.D2D, false, 44, 32, useIconFiles));
+
+ iconDefinitions = createIconDefinitions(iconSets);
+
+ trafficIncidentsService.addIconDefinitions(null, iconDefinitions);
+ trafficIncidentsService.addIconSetDefinitions(null, iconSets);
+
+ TrafficIncidentsListener reserveCategoryIdsReplyListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void reserveCategoryIdsReply(EList<Integer> categoryIds) {
+ setCategoryIds(categoryIds);
+ }
+ };
+
+ trafficIncidentsService.reserveCategoryIds(reserveCategoryIdsReplyListener, 3);
+ while (categoryIds == null) {
+ LOGGER.info("Waiting for categoryIds");
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ LOGGER.info("categoryIds received");
+
+ EList<CategoryDefinition> categoryDefinitions = new BasicEList<CategoryDefinition>();
+ categoryDefinitions.add(createCategory1(categoryIds.get(0)));
+ categoryDefinitions.add(createCategory2(categoryIds.get(1)));
+ categoryDefinitions.add(createCategory3(categoryIds.get(2)));
+
+ trafficIncidentsService.addCategoryDefinitions(new DefaultTrafficIncidentsListener(), categoryDefinitions);
+ }
+
+ private void setIconSetIds(EList<Integer> iconSetIds) {
+ this.iconSetIds = iconSetIds;
+ }
+
+ private void setCategoryIds(EList<Integer> categoryIds) {
+ this.categoryIds = categoryIds;
+ }
+
+ private IconSet createIconSet(int iconSetId, ColorType colorType,
+ IconDimension iconDimension, boolean dayTimeIcon, int themeId,
+ int size, boolean useIconFiles) {
+ IconSet iconSet = iconsetFactory.createIconSet();
+ iconSet.setIconSetId(iconSetId);
+ iconSet.setColorType(colorType);
+ iconSet.setDimension(iconDimension);
+ iconSet.setDayTimeIcon(dayTimeIcon);
+ iconSet.setThemeId(themeId);
+ iconSet.setMediumType("image/png");
+ IconSize iconSize = iconsetFactory.createIconSize();
+ iconSize.setWidth(size);
+ iconSize.setHeight(size);
+ iconSet.setSize(iconSize);
+ for (int iconId = 1; iconId <= 6; iconId++) {
+ IconDescriptor iconDescriptor = iconsetFactory.createIconDescriptor();
+ if (useIconFiles) {
+ iconDescriptor.setUrl(constructIconFileName(iconSet, iconId));
+ }
+ iconDescriptor.setIconId(iconId);
+ iconSet.getIconDescriptors().add(iconDescriptor);
+ }
+
+ return iconSet;
+ }
+
+ private String constructIconFileName(IconSet iconSet, int iconId) {
+ StringBuilder buf = new StringBuilder();
+
+ buf.append("icons");
+ buf.append(File.separator);
+
+ buf.append("icon_setId");
+ buf.append(iconSet.getIconSetId());
+ buf.append("_");
+ buf.append(iconSet.getColorType().getName());
+ buf.append("_");
+ buf.append(iconSet.getDimension().getName());
+ buf.append("_");
+ if (iconSet.isDayTimeIcon()) {
+ buf.append("day");
+ } else {
+ buf.append("night");
+ }
+ buf.append("_themeId");
+ buf.append(iconSet.getThemeId());
+ buf.append("_");
+ buf.append(iconSet.getSize().getWidth());
+ buf.append("x");
+ buf.append(iconSet.getSize().getHeight());
+ buf.append("_iconId");
+ buf.append(iconId);
+ buf.append(".png");
+
+ return buf.toString();
+ }
+
+ private EList<IconDefinition> createIconDefinitions(EList<IconSet> iconSets) {
+ EList<IconDefinition> iconDefinitions = new BasicEList<IconDefinition>();
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ iconDescriptor.getIconId();
+ iconDescriptor.getUrl();
+ BufferedImage image = createIcon(iconSet.getIconSetId(), iconSet.getColorType(), iconSet.getDimension(),
+ iconSet.isDayTimeIcon(), iconSet.getThemeId(), iconSet.getSize(), iconDescriptor.getIconId());
+ IconDefinition iconDefinition = iconsetFactory.createIconDefinition();
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ iconDefinition.setIconInfo(iconInfo);
+
+ if (iconDescriptor.isSetUrl()) {
+ File output = new File(iconDescriptor.getUrl());
+ try {
+ ImageIO.write(image, "png", output);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ try {
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ ImageIO.write(image, "png", outputStream);
+ IconData iconData = iconsetFactory.createIconData();
+ byte[] bytes = outputStream.toByteArray();
+ iconData.setData(bytes);
+ iconDefinition.setIconData(iconData);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ iconDefinitions.add(iconDefinition);
+
+ }
+ }
+
+ return iconDefinitions;
+ }
+
+ private Color getColor(ColorType colorType, int iconId, boolean dayTimeIcon) {
+ Color color = null;
+
+ switch (colorType) {
+ case BLACK_AND_WHITE:
+ case GRAY_4:
+ case GRAY_8:
+ int componentValue = 255 - (28 * iconId);
+ if (!dayTimeIcon) {
+ componentValue = 255 - componentValue;
+ }
+ color = new Color(componentValue, componentValue, componentValue);
+ break;
+
+ case RGB555:
+ case RGB565:
+ case RGB888:
+ int red = 42 * (iconId - 1);
+ int green = 125;
+ int blue = 42 * (6 - iconId);
+ if (!dayTimeIcon) {
+ red = 255 - red;
+ green = 255 - green;
+ blue = 255 - blue;
+ }
+ color = new Color(red, green, blue);
+ }
+
+ return color;
+ }
+
+ private BufferedImage createIcon(int iconSetId, ColorType colorType,
+ IconDimension iconDimension, boolean dayTimeIcon, int themeId,
+ IconSize iconSize, int iconId) {
+ BufferedImage bi = new BufferedImage(iconSize.getWidth(), iconSize.getHeight(), BufferedImage.TYPE_INT_ARGB);
+ Graphics g = bi.getGraphics();
+
+ g.setColor(getColor(colorType, iconId, dayTimeIcon));
+
+ if (themeId == 44) {
+ g.fillOval(0, 0, iconSize.getWidth() - 1, iconSize.getHeight() - 1);
+ } else {
+ g.fill3DRect(0, 0, iconSize.getWidth() - 1, iconSize.getHeight() - 1, true);
+ }
+
+ if (iconDimension == IconDimension.D25D) {
+ g.setColor(Color.GRAY);
+ g.drawString(iconSetId + "/" + iconId, 10, 18);
+ g.drawString(iconSetId + "/" + iconId, 9, 19);
+ g.drawString(iconSetId + "/" + iconId, 8, 20);
+ }
+
+ if (dayTimeIcon) {
+ g.setColor(Color.BLACK);
+ } else {
+ g.setColor(Color.WHITE);
+ }
+ g.drawString(iconSetId + "/" + iconId, 7, 21);
+
+ return bi;
+ }
+
+ private CategoryDefinition createCategory1(int categoryId) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ categoryDefinition.setCategoryId(categoryId);
+
+ LocalizedString[] localizedNames = new LocalizedString[2];
+ LocalizedString localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("nld");
+ localizedCategoryName.setString("file");
+ localizedNames[0] = localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("eng");
+ localizedCategoryName.setString("stationary traffic");
+ localizedNames[1] = localizedCategoryName;
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+ // Comparison Predicate: effectCode == STATIONARY_TRAFFIC
+ ComparisonPredicate effectIsStationaryTraffic = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute effectCode = FILTER_EXPR_FACTORY.createClassAttribute();
+ effectCode.setAttributeName(tip.getTrafficIncident_EffectCode().getName());
+ effectIsStationaryTraffic.setAttribute(effectCode);
+ effectIsStationaryTraffic.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral stationaryTrafficEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ stationaryTrafficEnumValue.setValue(EffectCode.STATIONARY_TRAFFIC.getValue());
+ effectIsStationaryTraffic.setLiteral(stationaryTrafficEnumValue);
+
+ categoryDefinition.setExpression(effectIsStationaryTraffic.toString());
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.getIconId() == 1) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ categoryDefinition.getIconsList().add(iconInfo);
+ }
+ }
+ }
+
+ return categoryDefinition;
+ }
+
+ private CategoryDefinition createCategory2(int categoryId) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ categoryDefinition.setCategoryId(categoryId);
+
+ LocalizedString[] localizedNames = new LocalizedString[2];
+ LocalizedString localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("nld");
+ localizedCategoryName.setString("druk verkeer - laagstaande zon");
+ localizedNames[0] = localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("eng");
+ localizedCategoryName.setString("heavy traffic - low sunglare");
+ localizedNames[1] = localizedCategoryName;
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+ // Comparison Predicate: effectCode == HEAVY_TRAFFIC
+ ComparisonPredicate effectIsHeavyTraffic = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute effectCode = FILTER_EXPR_FACTORY.createClassAttribute();
+ effectCode.setAttributeName(tip.getTrafficIncident_EffectCode().getName());
+ effectIsHeavyTraffic.setAttribute(effectCode);
+ effectIsHeavyTraffic.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral heavyTrafficEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ heavyTrafficEnumValue.setValue(EffectCode.HEAVY_TRAFFIC.getValue());
+ effectIsHeavyTraffic.setLiteral(heavyTrafficEnumValue);
+
+
+ // Comparison Predicate: mainCause == VISIBILITY_REDUCED
+ ComparisonPredicate mainCauseIsVisibilityReduced = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute mainCause = FILTER_EXPR_FACTORY.createClassAttribute();
+ mainCause.setAttributeName(tip.getCause_MainCause().getName());
+ mainCauseIsVisibilityReduced.setAttribute(mainCause);
+ mainCauseIsVisibilityReduced.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral visibilityReducedEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ visibilityReducedEnumValue.setValue(CauseCode.VISIBILITY_REDUCED.getValue());
+ mainCauseIsVisibilityReduced.setLiteral(visibilityReducedEnumValue);
+
+ // Comparison Predicate: subCause == LOW_SUNGLARE
+ ComparisonPredicate subCauseIsLowSunglare = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute subCause = FILTER_EXPR_FACTORY.createClassAttribute();
+ subCause.setAttributeName(tip.getDirectCause_SubCause().getName());
+ subCauseIsLowSunglare.setAttribute(subCause);
+ subCauseIsLowSunglare.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral lowSunglareEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ lowSunglareEnumValue.setValue(VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE.getValue());
+ subCauseIsLowSunglare.setLiteral(lowSunglareEnumValue);
+
+ // Dyadic Expression: (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE)
+ DyadicExpression causeExpression = FILTER_EXPR_FACTORY.createDyadicExpression();
+ causeExpression.setLeftHandTerm(mainCauseIsVisibilityReduced);
+ causeExpression.setLogicalOperator(DyadicLogicalOperator.AND);
+ causeExpression.setRightHandTerm(subCauseIsLowSunglare);
+
+ // Downcast: to DirectCause where (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE)
+ DownCastPredicate directCauseDownCast = FILTER_EXPR_FACTORY.createDownCastPredicate();
+ directCauseDownCast.setClassName(tip.getDirectCause().getName());
+ directCauseDownCast.setExpression(causeExpression);
+
+ // Multiplicity Predicate: ANY cause instanceof DirectCause where (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE)
+ MultiplicityPredicate anyCausePredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ anyCausePredicate.setListOperator(ListOperator.ANY);
+ ClassAttribute causes = FILTER_EXPR_FACTORY.createClassAttribute();
+ causes.setAttributeName(tip.getTrafficIncident_Causes().getName());
+ anyCausePredicate.setAttribute(causes);
+ anyCausePredicate.setExpression(directCauseDownCast);
+
+
+ // Dyadic Expression: (effectCode == HAEVY_TRAFFIC) AND (ANY cause instanceof DirectCause where (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE))
+ DyadicExpression expression = FILTER_EXPR_FACTORY.createDyadicExpression();
+ expression.setLeftHandTerm(effectIsHeavyTraffic);
+ expression.setLogicalOperator(DyadicLogicalOperator.AND);
+ expression.setRightHandTerm(anyCausePredicate);
+
+ categoryDefinition.setExpression(expression.toString());
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.getIconId() == 2) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ categoryDefinition.getIconsList().add(iconInfo);
+ }
+ }
+ }
+
+ return categoryDefinition;
+ }
+
+ private CategoryDefinition createCategory3(int categoryId) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ categoryDefinition.setCategoryId(categoryId);
+
+ LocalizedString[] localizedNames = new LocalizedString[2];
+ LocalizedString localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("nld");
+ localizedCategoryName.setString("beperkt zicht");
+ localizedNames[0] = localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("eng");
+ localizedCategoryName.setString("visibility reduced");
+ localizedNames[1] = localizedCategoryName;
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+
+ // Comparison Predicate: mainCause == VISIBILITY_REDUCED
+ ComparisonPredicate mainCauseIsVisibilityReduced = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute mainCause = FILTER_EXPR_FACTORY.createClassAttribute();
+ mainCause.setAttributeName(tip.getCause_MainCause().getName());
+ mainCauseIsVisibilityReduced.setAttribute(mainCause);
+ mainCauseIsVisibilityReduced.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral visibilityReducedEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ visibilityReducedEnumValue.setValue(CauseCode.VISIBILITY_REDUCED.getValue());
+ mainCauseIsVisibilityReduced.setLiteral(visibilityReducedEnumValue);
+
+ // Multiplicity Predicate: ANY cause where (mainCause == VISIBILITY_REDUCED)
+ MultiplicityPredicate anyCausePredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ anyCausePredicate.setListOperator(ListOperator.ANY);
+ ClassAttribute causes = FILTER_EXPR_FACTORY.createClassAttribute();
+ causes.setAttributeName(tip.getTrafficIncident_Causes().getName());
+ anyCausePredicate.setAttribute(causes);
+ anyCausePredicate.setExpression(mainCauseIsVisibilityReduced);
+
+ categoryDefinition.setExpression(anyCausePredicate.toString());
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.getIconId() == 3) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ categoryDefinition.getIconsList().add(iconInfo);
+ }
+ }
+ }
+
+ return categoryDefinition;
+ }
+
+
+ public static void main(String[] args) throws DBusException {
+ LOGGER.setLevel(logLevel);
+
+ // Check the arguments and if not OK, show a message and exit.
+ // TrafficIncidentsConfiguration has no arguments.
+ if (args.length != 0) {
+ showUsageInfoDialogAndExit(args);
+ }
+
+ @SuppressWarnings("unused")
+ TrafficIncidentsConfiguration trafficIncidentsConfiguration = new TrafficIncidentsConfiguration();
+
+ trafficIncidentsConfiguration = null;
+
+ System.exit(0);
+ }
+
+ private static void showUsageInfoDialogAndExit(final String[] args) {
+ StringBuilder argInfo = new StringBuilder();
+
+ argInfo.append("TrafficIncidentsListClient has to be called without any arguments.").append(NEWLINE);
+ argInfo.append("The following arguments were given:");
+ for (int i = 0; i < args.length; i++) {
+ argInfo.append(NEWLINE).append(args[i]);
+ }
+
+ JOptionPane.showMessageDialog(null,
+ argInfo.toString(),
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+
+ System.exit(0);
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.classpath b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.classpath
new file mode 100755
index 0000000..008c4e5
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.classpath
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsfeed.tpegtec"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tecservice"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx/none/org.jdesktop.swingx-none.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx-ws/2007_10_14/org.jdesktop.swingx-ws-2007_10_14.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.project b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.project
new file mode 100755
index 0000000..49f411c
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidentsexampleclients</name>
+ <comment>This project contains example clients for a TrafficIncidentsService. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficincidentsfeed.tpegtec</project>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ <project>org.genivi.trafficinfo.tpeg.tecservice</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain$MyTrafficIncidentsUpdatesListener.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain$MyTrafficIncidentsUpdatesListener.class
new file mode 100755
index 0000000..e5587f4
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain$MyTrafficIncidentsUpdatesListener.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.class
new file mode 100755
index 0000000..895adcc
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.class
new file mode 100755
index 0000000..4e18821
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.class
new file mode 100755
index 0000000..2ea7ef0
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.class
new file mode 100755
index 0000000..dc38695
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.class
new file mode 100755
index 0000000..4b6f655
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.class
new file mode 100755
index 0000000..ca3441c
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.class
new file mode 100755
index 0000000..91f6eee
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay$ListCategoryDefinition.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay$ListCategoryDefinition.class
new file mode 100755
index 0000000..2b2512d
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay$ListCategoryDefinition.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.class
new file mode 100755
index 0000000..ce0026e
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.class
new file mode 100755
index 0000000..ecaca67
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.class b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.class
new file mode 100755
index 0000000..b48a6f8
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/bin/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.class
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/pom.xml b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/pom.xml
new file mode 100755
index 0000000..12e302c
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/pom.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance"
+ xmlns="http://maven.apache.org/POM/4.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsexampleclients</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>Example clients of a TrafficIncidentsService</name>
+ <description>This project contains example clients for a TrafficIncidentsService.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-cli-sqlite-with-dependencies</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>booleanexpr-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>iconset-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsfeed</groupId>
+ <artifactId>tpegtec</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidents</groupId>
+ <artifactId>trafficincidents-trafficincident-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>tecservice</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jdesktop</groupId>
+ <artifactId>org.jdesktop.swingx</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jdesktop</groupId>
+ <artifactId>org.jdesktop.swingx-ws</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/Traffic Info demo.sh b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/Traffic Info demo.sh
new file mode 100755
index 0000000..f380b27
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/Traffic Info demo.sh
@@ -0,0 +1 @@
+java -jar org-genivi-trafficinfo-1.0-SNAPSHOT.jar \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/tomtom_utrecht_2008_04.db3 b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/tomtom_utrecht_2008_04.db3
new file mode 100755
index 0000000..2a85359
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/resources/tomtom_utrecht_2008_04.db3
Binary files differ
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.java
new file mode 100755
index 0000000..0867f4c
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/pocmain/TrafficIncidentsServicePocMain.java
@@ -0,0 +1,686 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.pocmain;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.imageio.ImageIO;
+
+import openlr.map.MapDatabase;
+import openlr.map.teleatlas.sqlite.impl.MapDatabaseImpl;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.ComparisonOperator;
+import org.genivi.booleanexpr.ComparisonPredicate;
+import org.genivi.booleanexpr.DownCastPredicate;
+import org.genivi.booleanexpr.DyadicExpression;
+import org.genivi.booleanexpr.DyadicLogicalOperator;
+import org.genivi.booleanexpr.FilterexprFactory;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.LocalizedString;
+import org.genivi.common.Version;
+import org.genivi.iconset.ColorType;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconDimension;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconSize;
+import org.genivi.iconset.IconsetFactory;
+import org.genivi.locref.LocationReferenceType;
+import org.genivi.locref.decoder.openlr.OpenLRDecoder;
+import org.genivi.locref.refimpl.LocationReferenceDecodingHandlerRefImpl;
+import org.genivi.tpegtecfeed.refimpl.TpegTecFeedRefImpl;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedListener;
+import org.genivi.trafficincidentsservice.trafficincidentsserviceFactory;
+import org.genivi.trafficincidentsservice.refimpl.TrafficIncidentsService;
+import org.genivi.trafficincidentsservice.textgenerator.basictextgenerator.BasicTextGenerator;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidenttables.CauseCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.EffectCode;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VisibilityReduced;
+import org.genivi.trafficinfo.demo.logging.EclipseConsoleFormatter;
+import org.genivi.trafficinfo.tpeg.clientside.broadcast.fwk.impl.TpegSfwRefImpl;
+import org.genivi.trafficinfo.tpeg.clientside.broadcastadaptionlayer.refimpl.BroadcastAdaptationLayerImplementation;
+import org.genivi.trafficinfo.tpeg.serverside.broadcast.fwk.impl.BroadcastFrameworkImplementation;
+import org.genivi.trafficinfo.tpeg.tecservice.testsetplayer.TestPlayerTecService;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.ATrafficInfoClient;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.CategoryDefinitionsWindow;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.IconDefinitionWindow;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.TrafficInfoListDisplay;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.TrafficInfoMapView;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.WarningClient;
+
+
+
+/**
+ * This class demonstrates the usage of the functionality of the TrafficIncidentsService.
+ * - Logging is performed via the Java package java.util.logging.
+ * - Three different applications (clients of the TrafficIncidentsService) can be started:
+ * - ATrafficInfoClient: uses polling to get the Traffic Incidents, outputs textual information via Logging.
+ *
+ */
+public class TrafficIncidentsServicePocMain {
+ private final static String MAP_PATH = "resources/tomtom_utrecht_2008_04.db3";
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsServicePocMain.class.getName());
+ private final static CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private final static IconsetFactory iconsetFactory = IconsetFactory.eINSTANCE;
+ private final static trafficincidentsserviceFactory TRAFFIC_INCIDENTS_SVC_FACTORY = trafficincidentsserviceFactory.eINSTANCE;
+ private final static FilterexprFactory FILTER_EXPR_FACTORY = FilterexprFactory.eINSTANCE;
+ private final static trafficincidentPackage tip = trafficincidentPackage.eINSTANCE;
+
+ // settings to control what to run and what not
+ private final static Level logLevel = Level.SEVERE;
+ private final static boolean useIconFiles = false;
+ private final static boolean runIconDefinitionWindow = false;
+ private final static boolean runCategoryDefinitionsWindow = false;
+ private final static boolean runATrafficInfoClient = false;
+ private final static boolean runTrafficInfoMapView = true;
+ private final static boolean runTrafficInfoListDisplay = true;
+ private final static boolean runWarningClient = true;
+
+ private EList<Integer> iconSetIds = null;
+ private EList<Integer> categoryIds = null;
+ private EList<IconSet> iconSets = null;
+ private EList<IconDefinition> iconDefinitions = null;
+ private EList<CategoryDefinition> categoryDefinitions = null;
+ private MapDatabase mapDataBase;
+ private TrafficIncidentsService trafficIncidentsService;
+ private ATrafficInfoClient trafficIncidentsClient;
+
+ TrafficIncidentsServicePocMain() {
+
+ logSetup();
+
+ // Show that a client can be started without having a Traffic Information Provider.
+ if (runATrafficInfoClient) {
+ trafficIncidentsClient = new ATrafficInfoClient();
+ trafficIncidentsClient.start();
+ }
+
+
+ // Create a Location Reference Decoding Handler to be used by the Traffic Incidents Service
+ LocationReferenceDecodingHandlerRefImpl locationReferenceDecodingHandlerRefImpl = new LocationReferenceDecodingHandlerRefImpl();
+
+ // Open a map database to be used by the location decoders
+ mapDataBase = new MapDatabaseImpl(MAP_PATH);
+
+ // Create an OpenLR decoder and register it on the LocationReferenceDecodingHandlerRefImpl
+ OpenLRDecoder openLRDecoder = new OpenLRDecoder(mapDataBase);
+ locationReferenceDecodingHandlerRefImpl.addDecoder((Byte) (byte) LocationReferenceType.OPEN_LR.getValue(), openLRDecoder);
+
+ // Create the Traffic Incidents Service
+ trafficIncidentsService = new TrafficIncidentsService(locationReferenceDecodingHandlerRefImpl, new BasicTextGenerator());
+ customizeTrafficIncidentsService(trafficIncidentsService);
+
+ // Make this provider known to the client
+ if (runATrafficInfoClient) {
+ trafficIncidentsClient.setTrafficIncidentsService(trafficIncidentsService);
+ }
+
+ /*
+ * Initialise server side broadcast setup, and a services:
+ * TPEG-TEC Service and Time Service.
+ */
+
+ // Create and start Server Side framework
+ BroadcastFrameworkImplementation serverSideBroadcastFramework = new BroadcastFrameworkImplementation();
+ serverSideBroadcastFramework.start();
+
+ @SuppressWarnings("unused")
+ TestPlayerTecService tecService = new TestPlayerTecService(serverSideBroadcastFramework);
+
+ /*
+ * Initialize client side TPEG framework for broadcast reception, and a Time Application.
+ */
+
+ // Create client side TPEG framework.
+ TpegSfwRefImpl clientSideTpegFrameworkImplementationBroadcast = new TpegSfwRefImpl();
+ @SuppressWarnings("unused")
+ BroadcastAdaptationLayerImplementation broadcastAdaptationLayerImplementation = new BroadcastAdaptationLayerImplementation("some tuner", clientSideTpegFrameworkImplementationBroadcast);
+
+ // Create TPEG-TEC Feed (TEC Application in TISA terms)
+ new TpegTecFeedRefImpl(clientSideTpegFrameworkImplementationBroadcast, trafficIncidentsService);
+
+ // Register dummy feed for extra status information.
+ TrafficIncidentFeedListener dummyTrafficIncidentsUpdatesListener = new MyTrafficIncidentsUpdatesListener();
+ trafficIncidentsService.registerFeed(dummyTrafficIncidentsUpdatesListener , "GENIVI", "RDS-TMC", "TMC bridge");
+
+
+ javax.swing.SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ createAndShowGUI();
+ }
+ });
+
+ LOGGER.info("Main end");
+ }
+
+ private void customizeTrafficIncidentsService(
+ TrafficIncidentsService trafficIncidentsService) {
+
+ TrafficIncidentsListener reserveIconSetIdsReplyListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void reserveIconSetIdsReply(EList<Integer> iconSetIds) {
+ setIconSetIds(iconSetIds);
+ }
+ };
+
+ trafficIncidentsService.reserveIconSetIds(reserveIconSetIdsReplyListener, 10);
+ while (iconSetIds == null) {
+ LOGGER.info("Waiting for iconSetIds");
+ try {
+ Thread.sleep(1);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ LOGGER.info("iconSetIds received");
+
+ // Create the icon set definitions.
+ iconSets = new BasicEList<IconSet>();
+ iconSets.add(createIconSet(iconSetIds.get(0), ColorType.GRAY_8, IconDimension.D2D, true, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(1), ColorType.RGB888, IconDimension.D2D, true, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(2), ColorType.GRAY_8, IconDimension.D2D, false, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(3), ColorType.RGB888, IconDimension.D2D, false, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(4), ColorType.RGB888, IconDimension.D25D, true, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(5), ColorType.RGB888, IconDimension.D25D, false, 28, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(6), ColorType.GRAY_8, IconDimension.D2D, true, 44, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(7), ColorType.RGB888, IconDimension.D2D, true, 44, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(8), ColorType.GRAY_8, IconDimension.D2D, false, 44, 32, useIconFiles));
+ iconSets.add(createIconSet(iconSetIds.get(9), ColorType.RGB888, IconDimension.D2D, false, 44, 32, useIconFiles));
+
+ iconDefinitions = createIconDefinitions(iconSets);
+
+ trafficIncidentsService.addIconDefinitions(null, iconDefinitions);
+ trafficIncidentsService.addIconSetDefinitions(null, iconSets);
+
+ TrafficIncidentsListener reserveCategoryIdsReplyListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void reserveCategoryIdsReply(EList<Integer> categoryIds) {
+ setCategoryIds(categoryIds);
+ }
+ };
+
+ trafficIncidentsService.reserveCategoryIds(reserveCategoryIdsReplyListener, 3);
+ while (categoryIds == null) {
+ LOGGER.info("Waiting for categoryIds");
+ try {
+ Thread.sleep(1);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ LOGGER.info("categoryIds received");
+
+ categoryDefinitions = new BasicEList<CategoryDefinition>();
+ categoryDefinitions.add(createCategory1(categoryIds.get(0)));
+ categoryDefinitions.add(createCategory2(categoryIds.get(1)));
+ categoryDefinitions.add(createCategory3(categoryIds.get(2)));
+
+ trafficIncidentsService.addCategoryDefinitions(null, categoryDefinitions);
+ }
+
+ private void setIconSetIds(EList<Integer> iconSetIds) {
+ this.iconSetIds = iconSetIds;
+ }
+
+ private void setCategoryIds(EList<Integer> categoryIds) {
+ this.categoryIds = categoryIds;
+ }
+
+ private IconSet createIconSet(int iconSetId, ColorType colorType,
+ IconDimension iconDimension, boolean dayTimeIcon, int themeId,
+ int size, boolean useIconFiles) {
+ IconSet iconSet = iconsetFactory.createIconSet();
+ iconSet.setIconSetId(iconSetId);
+ iconSet.setColorType(colorType);
+ iconSet.setDimension(iconDimension);
+ iconSet.setDayTimeIcon(dayTimeIcon);
+ iconSet.setThemeId(themeId);
+ iconSet.setMediumType("image/png");
+ IconSize iconSize = iconsetFactory.createIconSize();
+ iconSize.setWidth(size);
+ iconSize.setHeight(size);
+ iconSet.setSize(iconSize);
+ for (int iconId = 1; iconId <= 6; iconId++) {
+ IconDescriptor iconDescriptor = iconsetFactory.createIconDescriptor();
+ if (useIconFiles) {
+ iconDescriptor.setUrl(constructIconFileName(iconSet, iconId));
+ }
+ iconDescriptor.setIconId(iconId);
+ iconSet.getIconDescriptors().add(iconDescriptor);
+ }
+
+ return iconSet;
+ }
+
+ private String constructIconFileName(IconSet iconSet, int iconId) {
+ StringBuilder buf = new StringBuilder();
+
+ buf.append("icons");
+ buf.append(File.separator);
+
+ buf.append("icon_setId");
+ buf.append(iconSet.getIconSetId());
+ buf.append("_");
+ buf.append(iconSet.getColorType().getName());
+ buf.append("_");
+ buf.append(iconSet.getDimension().getName());
+ buf.append("_");
+ if (iconSet.isDayTimeIcon()) {
+ buf.append("day");
+ } else {
+ buf.append("night");
+ }
+ buf.append("_themeId");
+ buf.append(iconSet.getThemeId());
+ buf.append("_");
+ buf.append(iconSet.getSize().getWidth());
+ buf.append("x");
+ buf.append(iconSet.getSize().getHeight());
+ buf.append("_iconId");
+ buf.append(iconId);
+ buf.append(".png");
+
+ return buf.toString();
+ }
+
+ private EList<IconDefinition> createIconDefinitions(EList<IconSet> iconSets) {
+ EList<IconDefinition> iconDefinitions = new BasicEList<IconDefinition>();
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ iconDescriptor.getIconId();
+ iconDescriptor.getUrl();
+ BufferedImage image = createIcon(iconSet.getIconSetId(), iconSet.getColorType(), iconSet.getDimension(),
+ iconSet.isDayTimeIcon(), iconSet.getThemeId(), iconSet.getSize(), iconDescriptor.getIconId());
+ IconDefinition iconDefinition = iconsetFactory.createIconDefinition();
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ iconDefinition.setIconInfo(iconInfo);
+
+ if (iconDescriptor.isSetUrl()) {
+ File output = new File(iconDescriptor.getUrl());
+ try {
+ ImageIO.write(image, "png", output);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ try {
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ ImageIO.write(image, "png", outputStream);
+ IconData iconData = iconsetFactory.createIconData();
+ byte[] bytes = outputStream.toByteArray();
+ iconData.setData(bytes);
+ iconDefinition.setIconData(iconData);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ iconDefinitions.add(iconDefinition);
+
+ }
+ }
+
+ return iconDefinitions;
+ }
+
+ private Color getColor(ColorType colorType, int iconId, boolean dayTimeIcon) {
+ Color color = null;
+
+ switch (colorType) {
+ case BLACK_AND_WHITE:
+ case GRAY_4:
+ case GRAY_8:
+ int componentValue = 255 - (28 * iconId);
+ if (!dayTimeIcon) {
+ componentValue = 255 - componentValue;
+ }
+ color = new Color(componentValue, componentValue, componentValue);
+ break;
+
+ case RGB555:
+ case RGB565:
+ case RGB888:
+ int red = 42 * (iconId - 1);
+ int green = 125;
+ int blue = 42 * (6 - iconId);
+ if (!dayTimeIcon) {
+ red = 255 - red;
+ green = 255 - green;
+ blue = 255 - blue;
+ }
+ color = new Color(red, green, blue);
+ }
+
+ return color;
+ }
+
+ private BufferedImage createIcon(int iconSetId, ColorType colorType,
+ IconDimension iconDimension, boolean dayTimeIcon, int themeId,
+ IconSize iconSize, int iconId) {
+ BufferedImage bi = new BufferedImage(iconSize.getWidth(), iconSize.getHeight(), BufferedImage.TYPE_INT_ARGB);
+ Graphics g = bi.getGraphics();
+
+ g.setColor(getColor(colorType, iconId, dayTimeIcon));
+
+ if (themeId == 44) {
+ g.fillOval(0, 0, iconSize.getWidth() - 1, iconSize.getHeight() - 1);
+ } else {
+ g.fill3DRect(0, 0, iconSize.getWidth() - 1, iconSize.getHeight() - 1, true);
+ }
+
+ if (iconDimension == IconDimension.D25D) {
+ g.setColor(Color.GRAY);
+ g.drawString(iconSetId + "/" + iconId, 10, 18);
+ g.drawString(iconSetId + "/" + iconId, 9, 19);
+ g.drawString(iconSetId + "/" + iconId, 8, 20);
+ }
+
+ if (dayTimeIcon) {
+ g.setColor(Color.BLACK);
+ } else {
+ g.setColor(Color.WHITE);
+ }
+ g.drawString(iconSetId + "/" + iconId, 7, 21);
+
+ return bi;
+ }
+
+ private CategoryDefinition createCategory1(int categoryId) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ categoryDefinition.setCategoryId(categoryId);
+
+ LocalizedString[] localizedNames = new LocalizedString[2];
+ LocalizedString localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("nld");
+ localizedCategoryName.setString("file");
+ localizedNames[0] = localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("eng");
+ localizedCategoryName.setString("stationary traffic");
+ localizedNames[1] = localizedCategoryName;
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+ // Comparison Predicate: effectCode == STATIONARY_TRAFFIC
+ ComparisonPredicate effectIsStationaryTraffic = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute effectCode = FILTER_EXPR_FACTORY.createClassAttribute();
+ effectCode.setAttributeName(tip.getTrafficIncident_EffectCode().getName());
+ effectIsStationaryTraffic.setAttribute(effectCode);
+ effectIsStationaryTraffic.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral stationaryTrafficEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ stationaryTrafficEnumValue.setValue(EffectCode.STATIONARY_TRAFFIC.getValue());
+ effectIsStationaryTraffic.setLiteral(stationaryTrafficEnumValue);
+
+ categoryDefinition.setExpression(effectIsStationaryTraffic.toString());
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.getIconId() == 1) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ categoryDefinition.getIconsList().add(iconInfo);
+ }
+ }
+ }
+
+ return categoryDefinition;
+ }
+
+ private CategoryDefinition createCategory2(int categoryId) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ categoryDefinition.setCategoryId(categoryId);
+
+ LocalizedString[] localizedNames = new LocalizedString[2];
+ LocalizedString localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("nld");
+ localizedCategoryName.setString("druk verkeer - laagstaande zon");
+ localizedNames[0] = localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("eng");
+ localizedCategoryName.setString("heavy traffic - low sunglare");
+ localizedNames[1] = localizedCategoryName;
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+ // Comparison Predicate: effectCode == HEAVY_TRAFFIC
+ ComparisonPredicate effectIsHeavyTraffic = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute effectCode = FILTER_EXPR_FACTORY.createClassAttribute();
+ effectCode.setAttributeName(tip.getTrafficIncident_EffectCode().getName());
+ effectIsHeavyTraffic.setAttribute(effectCode);
+ effectIsHeavyTraffic.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral heavyTrafficEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ heavyTrafficEnumValue.setValue(EffectCode.HEAVY_TRAFFIC.getValue());
+ effectIsHeavyTraffic.setLiteral(heavyTrafficEnumValue);
+
+
+ // Comparison Predicate: mainCause == VISIBILITY_REDUCED
+ ComparisonPredicate mainCauseIsVisibilityReduced = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute mainCause = FILTER_EXPR_FACTORY.createClassAttribute();
+ mainCause.setAttributeName(tip.getCause_MainCause().getName());
+ mainCauseIsVisibilityReduced.setAttribute(mainCause);
+ mainCauseIsVisibilityReduced.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral visibilityReducedEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ visibilityReducedEnumValue.setValue(CauseCode.VISIBILITY_REDUCED.getValue());
+ mainCauseIsVisibilityReduced.setLiteral(visibilityReducedEnumValue);
+
+ // Comparison Predicate: subCause == LOW_SUNGLARE
+ ComparisonPredicate subCauseIsLowSunglare = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute subCause = FILTER_EXPR_FACTORY.createClassAttribute();
+ subCause.setAttributeName(tip.getDirectCause_SubCause().getName());
+ subCauseIsLowSunglare.setAttribute(subCause);
+ subCauseIsLowSunglare.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral lowSunglareEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ lowSunglareEnumValue.setValue(VisibilityReduced.VISIBILITY_REDUCED_DUE_TO_LOW_SUN_GLARE.getValue());
+ subCauseIsLowSunglare.setLiteral(lowSunglareEnumValue);
+
+ // Dyadic Expression: (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE)
+ DyadicExpression causeExpression = FILTER_EXPR_FACTORY.createDyadicExpression();
+ causeExpression.setLeftHandTerm(mainCauseIsVisibilityReduced);
+ causeExpression.setLogicalOperator(DyadicLogicalOperator.AND);
+ causeExpression.setRightHandTerm(subCauseIsLowSunglare);
+
+ // Downcast: to DirectCause where (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE)
+ DownCastPredicate directCauseDownCast = FILTER_EXPR_FACTORY.createDownCastPredicate();
+ directCauseDownCast.setClassName(tip.getDirectCause().getName());
+ directCauseDownCast.setExpression(causeExpression);
+
+ // Multiplicity Predicate: ANY cause instanceof DirectCause where (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE)
+ MultiplicityPredicate anyCausePredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ anyCausePredicate.setListOperator(ListOperator.ANY);
+ ClassAttribute causes = FILTER_EXPR_FACTORY.createClassAttribute();
+ causes.setAttributeName(tip.getTrafficIncident_Causes().getName());
+ anyCausePredicate.setAttribute(causes);
+ anyCausePredicate.setExpression(directCauseDownCast);
+
+
+ // Dyadic Expression: (effectCode == HAEVY_TRAFFIC) AND (ANY cause instanceof DirectCause where (mainCause == VISIBILITY_REDUCED) && (subCause == LOW_SUNGLARE))
+ DyadicExpression expression = FILTER_EXPR_FACTORY.createDyadicExpression();
+ expression.setLeftHandTerm(effectIsHeavyTraffic);
+ expression.setLogicalOperator(DyadicLogicalOperator.AND);
+ expression.setRightHandTerm(anyCausePredicate);
+
+ categoryDefinition.setExpression(expression.toString());
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.getIconId() == 2) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ categoryDefinition.getIconsList().add(iconInfo);
+ }
+ }
+ }
+
+ return categoryDefinition;
+ }
+
+ private CategoryDefinition createCategory3(int categoryId) {
+ CategoryDefinition categoryDefinition = TRAFFIC_INCIDENTS_SVC_FACTORY.createCategoryDefinition();
+
+ categoryDefinition.setCategoryId(categoryId);
+
+ LocalizedString[] localizedNames = new LocalizedString[2];
+ LocalizedString localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("nld");
+ localizedCategoryName.setString("beperkt zicht");
+ localizedNames[0] = localizedCategoryName;
+ localizedCategoryName = COMMON_FACTORY.createLocalizedString();
+ localizedCategoryName.setLanguageCode("eng");
+ localizedCategoryName.setString("visibility reduced");
+ localizedNames[1] = localizedCategoryName;
+ categoryDefinition.setLocalizedNames(localizedNames);
+
+
+ // Comparison Predicate: mainCause == VISIBILITY_REDUCED
+ ComparisonPredicate mainCauseIsVisibilityReduced = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute mainCause = FILTER_EXPR_FACTORY.createClassAttribute();
+ mainCause.setAttributeName(tip.getCause_MainCause().getName());
+ mainCauseIsVisibilityReduced.setAttribute(mainCause);
+ mainCauseIsVisibilityReduced.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral visibilityReducedEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ visibilityReducedEnumValue.setValue(CauseCode.VISIBILITY_REDUCED.getValue());
+ mainCauseIsVisibilityReduced.setLiteral(visibilityReducedEnumValue);
+
+ // Multiplicity Predicate: ANY cause where (mainCause == VISIBILITY_REDUCED)
+ MultiplicityPredicate anyCausePredicate = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ anyCausePredicate.setListOperator(ListOperator.ANY);
+ ClassAttribute causes = FILTER_EXPR_FACTORY.createClassAttribute();
+ causes.setAttributeName(tip.getTrafficIncident_Causes().getName());
+ anyCausePredicate.setAttribute(causes);
+ anyCausePredicate.setExpression(mainCauseIsVisibilityReduced);
+
+ categoryDefinition.setExpression(anyCausePredicate.toString());
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.getIconId() == 3) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ categoryDefinition.getIconsList().add(iconInfo);
+ }
+ }
+ }
+
+ return categoryDefinition;
+ }
+
+ /**
+ * Create the GUI and show it. For thread safety,
+ * this method should be invoked from the
+ * event-dispatching thread.
+ */
+ private void createAndShowGUI() {
+ // Map view
+ if (runTrafficInfoMapView) {
+ @SuppressWarnings("unused")
+ TrafficInfoMapView trafficInfoMapView = new TrafficInfoMapView(mapDataBase, trafficIncidentsService);
+ }
+
+ // Traffic incidentIds list display
+ if (runTrafficInfoListDisplay) {
+ TrafficInfoListDisplay trafficIncidentsListDisplay = new TrafficInfoListDisplay(trafficIncidentsService);
+ trafficIncidentsListDisplay.setVisible(true);
+ }
+
+ // Warning Client
+ if (runWarningClient) {
+ @SuppressWarnings("unused")
+ WarningClient warningClient = new WarningClient(trafficIncidentsService);
+ }
+
+ if (runIconDefinitionWindow) {
+ IconDefinitionWindow iconDefinitionWindow = new IconDefinitionWindow(iconDefinitions, iconSets, useIconFiles);
+ iconDefinitionWindow.setVisible(true);
+ }
+
+ if (runCategoryDefinitionsWindow) {
+ CategoryDefinitionsWindow categoryDefinitionsWindow = new CategoryDefinitionsWindow(categoryDefinitions, iconDefinitions, iconSets, useIconFiles);
+ categoryDefinitionsWindow.setVisible(true);
+ }
+ }
+
+ private void logSetup() {
+ // Create Logger
+ Logger logger = Logger.getLogger("");
+ logger.setLevel(logLevel);
+
+ Handler consoleHandler = null;
+ for (Handler handler: logger.getHandlers()) {
+ if (handler.getClass().getName().equals("java.util.logging.ConsoleHandler")) {
+ consoleHandler = handler;
+ break;
+ }
+ }
+ consoleHandler.setFormatter(new EclipseConsoleFormatter());
+ consoleHandler.setLevel(Level.INFO);
+ }
+
+ public static void main(String[] args) {
+ @SuppressWarnings("unused")
+ TrafficIncidentsServicePocMain trafficIncidentsServicePocMain = new TrafficIncidentsServicePocMain();
+ }
+
+ class MyTrafficIncidentsUpdatesListener extends EObjectImpl implements TrafficIncidentFeedListener {
+
+ @Override
+ public void getVersionReply(Version version) {
+ // No action
+ }
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ // No action
+ }
+
+ @Override
+ public void registerFeedReply(int feedId) {
+ // No action
+ }
+
+ @Override
+ public void addLanguageListenerReply() {
+ // No action
+ }
+
+ @Override
+ public void removeLanguageListenerReply() {
+ // No action
+ }
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.java
new file mode 100755
index 0000000..24533d6
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ATrafficInfoClient.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.util.logging.Logger;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+/**
+ * This class is a very simple Traffic Incidents Service client.
+ * Every 3 seconds:
+ * - It requests the Ids of all the current Traffic Incidents
+ * - For these Ids it requests the full texts
+ * - It prints the Ids and the texts to System.out.
+ */
+public class ATrafficInfoClient extends Thread {
+ private final static Logger LOGGER = Logger.getLogger(ATrafficInfoClient.class.getName());
+
+ private TrafficIncidents trafficInfo = null;
+ private EList<Integer> incidentIds;
+ private TrafficIncidentsListener trafficIncidentsListener;
+
+ public ATrafficInfoClient() {
+ LOGGER.info("Creating ATrafficInfoClient");
+
+ trafficIncidentsListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentIdsReply(EList<Integer> incidentIds) {
+ LOGGER.info("getTrafficIncidentIdsReply called.");
+ getAndShowTrafficInfoStep2(incidentIds);
+ }
+
+
+ @Override
+ public void getTextsReply(EList<String> texts) {
+ LOGGER.info("getTextsReply called.");
+ getAndShowTrafficInfoStep3(texts);
+ }
+ };
+ }
+
+ public TrafficIncidents getTrafficInfo() {
+ return trafficInfo;
+ }
+
+ public void setTrafficIncidentsService(TrafficIncidents trafficInfo) {
+ this.trafficInfo = trafficInfo;
+ }
+
+ public void run() {
+ for ( ; ; ) {
+ if (trafficInfo != null) {
+ getAndShowTrafficInfoStep1();
+ } else {
+ System.out.println("ATrafficInfoClient: No traffic info provider");
+ }
+
+ try {
+ sleep(1000 * 3);
+ } catch (InterruptedException e) {
+ System.out.println("ATrafficInfoClient woke up too early");
+ }
+ }
+ }
+
+
+ private void getAndShowTrafficInfoStep1() {
+ LOGGER.info("Polling; calling getTrafficIncidentIds()");
+ trafficInfo.getTrafficIncidentIds(trafficIncidentsListener, new BasicEList<WarningLevel>(), new BasicEList<Integer>());
+ }
+
+ private void getAndShowTrafficInfoStep2(EList<Integer> incidentIds) {
+ this.incidentIds = incidentIds;
+ LOGGER.info("Getting the texts for the Traffic Incidents by calling getTexts().");
+ trafficInfo.getTexts(trafficIncidentsListener, incidentIds, TextDetailLevel.FULL);
+ }
+
+ private void getAndShowTrafficInfoStep3(EList<String> messageTexts) {
+ System.out.println("Current Traffic Incidents:");
+ System.out.print("Ids:");
+ for (Integer incidentId: incidentIds) {
+ System.out.print(" " + incidentId.toString());
+ }
+ System.out.println();
+ for (String messageText: messageTexts) {
+ System.out.println(messageText);
+ }
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.java
new file mode 100755
index 0000000..370505e
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/BooleanExpressionsFrame.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.util.logging.Logger;
+
+import javax.swing.BoxLayout;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextPane;
+
+@SuppressWarnings("serial")
+public class BooleanExpressionsFrame extends JFrame {
+ private final static Logger LOGGER = Logger.getLogger(TrafficInfoMapView.class.getName());
+
+ public BooleanExpressionsFrame(String[] descriptions, String[] expressions) {
+ init(descriptions, expressions);
+
+ pack();
+ }
+
+ private void init(String[] descriptions, String[] expressions) {
+ JPanel mainPanel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS);
+ mainPanel.setLayout(boxLayout);
+
+ for (int i = 0; i < descriptions.length; i++) {
+ mainPanel.add(createExpressionPanel(descriptions[i], expressions[i]));
+ }
+
+ JScrollPane scrollPane = new JScrollPane(mainPanel);
+
+ setContentPane(scrollPane);
+
+ setPreferredSize(new Dimension(850, 900));
+ }
+
+ private Component createExpressionPanel(String description, String expression) {
+ LOGGER.info("=> description = " + description + ", expression = " + expression);
+ JPanel panel = new JPanel();
+
+ JLabel descriptionLabel = new JLabel(description);
+ JPanel labelPanel = new JPanel();
+ labelPanel.add(descriptionLabel);
+ Dimension currentSize = labelPanel.getPreferredSize();
+ Dimension labelPanelSize = new Dimension(200, (int) currentSize.getHeight());
+ labelPanel.setSize(labelPanelSize);
+ labelPanel.setMinimumSize(labelPanelSize);
+ labelPanel.setMaximumSize(labelPanelSize);
+ labelPanel.setPreferredSize(labelPanelSize);
+ panel.add(labelPanel);
+
+ JTextPane expressionPane = new JTextPane();
+ expressionPane.setText(expression);
+ expressionPane.setEditable(false);
+ currentSize = expressionPane.getPreferredSize();
+ Dimension expressionPaneSize = new Dimension(600, (int) currentSize.getHeight());
+ expressionPane.setSize(expressionPaneSize);
+ expressionPane.setMinimumSize(expressionPaneSize);
+ expressionPane.setMaximumSize(expressionPaneSize);
+ expressionPane.setPreferredSize(expressionPaneSize);
+ panel.add(expressionPane);
+
+ return panel;
+ }
+
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.java
new file mode 100755
index 0000000..bb99493
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/CategoryDefinitionsWindow.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.imageio.ImageIO;
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.common.LocalizedString;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconsetFactory;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+
+@SuppressWarnings("serial")
+public class CategoryDefinitionsWindow extends JFrame {
+ private static final String NEW_LINE = System.getProperty("line.separator");
+ private static final IconsetFactory ICON_SET_FACTORY = IconsetFactory.eINSTANCE;
+
+ private boolean useIconFiles = false;
+ private Map<IconInfo, IconDefinition> iconDefinitionsMap = new HashMap<>();
+ private Map<IconInfo, IconDescriptor> iconDescriptorsMap = new HashMap<>();
+
+ public CategoryDefinitionsWindow(
+ EList<CategoryDefinition> categoryDefinitions,
+ EList<IconDefinition> iconDefinitions, EList<IconSet> iconSets, boolean useIconFiles) {
+ this.useIconFiles = useIconFiles;
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ IconInfo iconInfo = ICON_SET_FACTORY.createIconInfo();
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconDescriptorsMap.put(iconInfo, iconDescriptor);
+ }
+ }
+
+ if (!useIconFiles) {
+ for (IconDefinition iconDefinition: iconDefinitions) {
+ iconDefinitionsMap.put(iconDefinition.getIconInfo(), iconDefinition);
+ }
+ }
+
+ JPanel panel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
+ panel.setLayout(boxLayout);
+
+ for (CategoryDefinition categoryDefinition: categoryDefinitions) {
+ panel.add(createCategoryDefinitionPanel(categoryDefinition));
+ }
+
+ getContentPane().add(panel, BorderLayout.CENTER);
+ pack();
+ }
+
+ private Component createCategoryDefinitionPanel(
+ CategoryDefinition categoryDefinition) {
+ JPanel panel = new JPanel();
+ panel.setBorder(BorderFactory.createLoweredBevelBorder());
+ BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
+ panel.setLayout(boxLayout);
+
+ panel.add(createTextPanel(categoryDefinition));
+ panel.add(createIconsPanel(categoryDefinition));
+
+ return panel;
+ }
+
+ private Component createTextPanel(CategoryDefinition categoryDefinition) {
+ StringBuilder buf = new StringBuilder();
+
+ buf.append("categoryId: ");
+ buf.append(categoryDefinition.getCategoryId());
+ buf.append(NEW_LINE);
+
+ buf.append("expression: ");
+ buf.append(categoryDefinition.getExpression());
+ buf.append(NEW_LINE);
+
+ buf.append("Localized names: ");
+ for (LocalizedString localizedName: categoryDefinition.getLocalizedNames()) {
+ buf.append(NEW_LINE);
+ buf.append(" languageCode: ");
+ buf.append(localizedName.getLanguageCode());
+ buf.append(NEW_LINE);
+ buf.append(" countryCode: ");
+ buf.append(localizedName.getCountryCode());
+ buf.append(NEW_LINE);
+ buf.append(" name: ");
+ buf.append(localizedName.getString());
+ buf.append(NEW_LINE);
+ }
+
+ buf.append(NEW_LINE);
+ buf.append("icons:");
+
+
+ JTextArea textArea = new JTextArea(buf.toString());
+ textArea.setEditable(false);
+ textArea.setAlignmentX(Component.LEFT_ALIGNMENT);
+ return textArea;
+ }
+
+ private Component createIconsPanel(CategoryDefinition categoryDefinition) {
+ JPanel panel = new JPanel();
+
+ for (IconInfo iconInfo: categoryDefinition.getIcons()) {
+ panel.add(createIconPanel(iconInfo));
+ }
+
+ panel.setAlignmentX(Component.LEFT_ALIGNMENT);
+ return panel;
+ }
+
+ private Component createIconPanel(IconInfo iconInfo) {
+ JPanel panel = new JPanel();
+
+ panel.setLayout(new BorderLayout());
+ BufferedImage image = null;
+ if (useIconFiles) {
+ IconDescriptor iconDescriptor = iconDescriptorsMap.get(iconInfo);
+ File imageFile = new File(iconDescriptor.getUrl());
+ try {
+ image = ImageIO.read(imageFile);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ IconDefinition iconDefinition = iconDefinitionsMap.get(iconInfo);
+ IconData iconData = iconDefinition.getIconData();
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(iconData.getData());
+ try {
+ image = ImageIO.read(inputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ panel.add(new JLabel(new ImageIcon(image)), BorderLayout.CENTER);
+
+ panel.add(createIconInfoTextPanel(iconInfo), BorderLayout.SOUTH);
+
+ return panel;
+ }
+
+ private Component createIconInfoTextPanel(IconInfo iconInfo) {
+ JPanel panel = new JPanel();
+ StringBuilder buf = new StringBuilder();
+
+ buf.append("iconSetId: ");
+ buf.append(iconInfo.getIconSetId());
+ buf.append(NEW_LINE);
+
+ buf.append("iconId: ");
+ buf.append(iconInfo.getIconId());
+
+ JTextArea textArea = new JTextArea(buf.toString());
+ textArea.setEditable(false);
+
+ panel.add(textArea);
+
+ return panel;
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.java
new file mode 100755
index 0000000..e40e916
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/IconDefinitionWindow.java
@@ -0,0 +1,158 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.imageio.ImageIO;
+import javax.swing.BoxLayout;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconsetFactory;
+
+@SuppressWarnings("serial")
+public class IconDefinitionWindow extends JFrame {
+ private static final String NEW_LINE = System.getProperty("line.separator");
+ private static final IconsetFactory iconsetFactory = IconsetFactory.eINSTANCE;
+
+ private boolean useIconFiles = false;
+ private Map<IconInfo, IconDefinition> iconDefinitionsMap = new HashMap<IconInfo, IconDefinition>();
+
+ public IconDefinitionWindow(EList<IconDefinition> iconDefinitions, EList<IconSet> iconSets, boolean useIconFiles) {
+ this.useIconFiles = useIconFiles;
+
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ if (!useIconFiles) {
+ for (IconDefinition iconDefinition: iconDefinitions) {
+ iconDefinitionsMap.put(iconDefinition.getIconInfo(), iconDefinition);
+ }
+ }
+
+ JPanel panel = new JPanel();
+
+ panel.add(creatIconThemePanel(iconSets, 28));
+ panel.add(creatIconThemePanel(iconSets, 44));
+
+ setContentPane(panel);
+ pack();
+ }
+
+ private Component creatIconThemePanel(EList<IconSet> iconSets, int themeId) {
+ JPanel panel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
+ panel.setLayout(boxLayout);
+
+ for (IconSet iconSet: iconSets) {
+ if (iconSet.getThemeId() == themeId) {
+ panel.add(createIconSetPanel(iconSet));
+ }
+ }
+
+ return panel;
+ }
+
+ private Component createIconSetPanel(IconSet iconSet) {
+ JPanel panel = new JPanel();
+ panel.add(createMetaDataPanel(iconSet));
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ panel.add(createIconPreviewPanel(iconSet, iconDescriptor));
+ }
+ return panel;
+ }
+
+ private Component createIconPreviewPanel(IconSet iconSet,
+ IconDescriptor iconDescriptor) {
+ JPanel panel = new JPanel();
+
+ panel.setLayout(new BorderLayout());
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSet.getIconSetId());
+ iconInfo.setIconId(iconDescriptor.getIconId());
+ BufferedImage image = null;
+ if (useIconFiles) {
+ File imageFile = new File(iconDescriptor.getUrl());
+ try {
+ image = ImageIO.read(imageFile);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ IconDefinition iconDefinition = iconDefinitionsMap.get(iconInfo);
+ IconData iconData = iconDefinition.getIconData();
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(iconData.getData());
+ try {
+ image = ImageIO.read(inputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ panel.add(new ImagePanel(image), BorderLayout.CENTER);
+
+ JLabel label = new JLabel("icon " + iconDescriptor.getIconId());
+ panel.add(label, BorderLayout.SOUTH);
+
+ return panel;
+ }
+
+ private Component createMetaDataPanel(IconSet iconSet) {
+ JPanel panel = new JPanel();
+ StringBuilder buf = new StringBuilder();
+
+ buf.append("iconSetId: ");
+ buf.append(iconSet.getIconSetId());
+ buf.append(NEW_LINE);
+
+ buf.append("colorType: ");
+ buf.append(iconSet.getColorType().getName());
+ buf.append(NEW_LINE);
+
+ buf.append("dimension: ");
+ buf.append(iconSet.getDimension().getName());
+ buf.append(NEW_LINE);
+
+ buf.append("daytime/nighttime: ");
+ if (iconSet.isDayTimeIcon()) {
+ buf.append("daytime");
+ } else {
+ buf.append("nighttime");
+ }
+ buf.append(NEW_LINE);
+
+ buf.append("themeId: ");
+ buf.append(iconSet.getThemeId());
+ buf.append(NEW_LINE);
+
+ buf.append("size: ");
+ buf.append(iconSet.getSize().getWidth());
+ buf.append(" x ");
+ buf.append(iconSet.getSize().getHeight());
+ buf.append(NEW_LINE);
+
+ JTextArea textArea = new JTextArea(buf.toString());
+ textArea.setEditable(false);
+
+ return panel.add(textArea);
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.java
new file mode 100755
index 0000000..46996f2
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/ImagePanel.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Image;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+@SuppressWarnings("serial")
+public class ImagePanel extends JPanel {
+
+ private Image img;
+
+ public ImagePanel(String imageFileName) {
+ this(new ImageIcon(imageFileName).getImage());
+ }
+
+ public ImagePanel(Image img) {
+ this.img = img;
+ Dimension dimension = new Dimension(img.getWidth(null), img.getHeight(null));
+ setSize(dimension);
+ setPreferredSize(dimension);
+ }
+
+ public void paintComponent(Graphics g) {
+ g.drawImage(img, 0, 0, img.getWidth(null), img.getHeight(null), this);
+ }
+} \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.java
new file mode 100755
index 0000000..6626c2a
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficIncidentsPainter.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.List;
+import java.util.logging.Logger;
+
+import openlr.map.Line;
+import openlr.map.MapDatabase;
+import openlr.map.Node;
+
+import org.eclipse.emf.common.util.EList;
+import org.genivi.common.Coordinate;
+import org.genivi.common.RectangularArea;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.jdesktop.swingx.JXMapViewer;
+import org.jdesktop.swingx.mapviewer.GeoPosition;
+import org.jdesktop.swingx.painter.AbstractPainter;
+
+
+/**
+ * Painter that only can draw on to JXMapViewers.
+ * Based on code from rbair.
+ */
+public class TrafficIncidentsPainter<T extends JXMapViewer> extends AbstractPainter<T> {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsPainter.class.getName());
+
+ private MapDatabase mapDataBase;
+ private EList<TrafficIncident> incidents;
+ private boolean drawBoundingBox = false;
+ private boolean useCoordinates = false; // If true, the location from getLocation() is used, else the coordinates from LocatinInfo are used.
+ private EList<RectangularArea> areas = null; // If not null, areas are drawn
+
+ /**
+ * Creates a new instance of WaypointPainter
+ */
+ public TrafficIncidentsPainter(MapDatabase mapDataBase) {
+ this.mapDataBase = mapDataBase;
+
+ setAntialiasing(true);
+ setCacheable(false);
+ }
+
+ public EList<TrafficIncident> getIncidents() {
+ return incidents;
+ }
+
+ public void setIncidents(EList<TrafficIncident> incidents) {
+ this.incidents = incidents;
+ }
+
+ public void setUseCoordinates(boolean useCoordinates) {
+ this.useCoordinates = useCoordinates;
+ }
+
+ public void setDrawBoundingBox(boolean drawBoundingBox) {
+ this.drawBoundingBox = drawBoundingBox;
+ }
+
+ public void setAreas(EList<RectangularArea> areas) {
+ this.areas = areas;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param g
+ * @param map
+ * @param width
+ * @param height
+ */
+ @Override
+ protected void doPaint(Graphics2D g, T map, int width, int height) {
+ LOGGER.fine("=>");
+ if (areas != null) {
+ for (RectangularArea area: areas) {
+ drawRectangle(g, map, area);
+ }
+ }
+
+ if (incidents == null) {
+ LOGGER.fine("<= No Traffic Incidents.");
+ return;
+ }
+
+ LOGGER.fine("Number of Traffic Incidents = " + incidents.size());
+ for (TrafficIncident incident: incidents) {
+ paintIncident(g, map, width, height, incident);
+ }
+ LOGGER.fine("<=");
+ }
+
+ private void paintIncident(Graphics2D g, T map, int width, int height, TrafficIncident incident) {
+ LOGGER.fine("=>");
+ if (useCoordinates) {
+ paintLocation(g, map, incident.getLocation());
+ } else {
+ paintLocationInfo(g, map, incident.getLocationInfo());
+ }
+
+ if (drawBoundingBox && incident.getLocationBoundingBox() != null) {
+ drawRectangle(g, map, incident.getLocationBoundingBox());
+ }
+ LOGGER.fine("<=");
+ }
+
+ private void paintLocation(Graphics2D g, T map, Location location) {
+ LOGGER.fine("=>");
+ if (location instanceof LinearLocation) {
+ LOGGER.fine("location is LinearLocation");
+ LinearLocation linearLocation = (LinearLocation) location;
+ List<Long> segments = linearLocation.getSegments();
+
+ for (long segment: segments) {
+ Line line = mapDataBase.getLine(segment);
+ Node startNode = line.getStartNode();
+ Node endNode = line.getEndNode();
+ paintLine(g, map, startNode.getLongitudeDeg(), startNode.getLatitudeDeg(), endNode.getLongitudeDeg(), endNode.getLatitudeDeg(), Color.BLUE, 3f);
+ }
+ } else {
+ LOGGER.fine("location is not a linearLocation, this type is not supported");
+ }
+ LOGGER.fine("<=");
+ }
+
+ private void paintLocationInfo(Graphics2D g, T map, LocationInfo locationInfo) {
+ LOGGER.fine("=>");
+ if (locationInfo instanceof LinearLocationInfo) {
+ LinearLocationInfo linearLocationInfo = (LinearLocationInfo) locationInfo;
+ EList<Coordinate> coordinates = linearLocationInfo.getCoordinates();
+ LOGGER.fine("linear location, size = " + coordinates.size());
+
+ for (int i = 1; i < coordinates.size(); i++) {
+ Coordinate startCoordinate = coordinates.get(i - 1);
+ Coordinate endCoordinate = coordinates.get(i);
+ paintLine(g, map, startCoordinate.getLongitude(), startCoordinate.getLatitude(), endCoordinate.getLongitude(), endCoordinate.getLatitude(), Color.RED, 3f);
+ }
+ } else {
+ LOGGER.fine("location is not a linearLocation, this type is not supported");
+ }
+ LOGGER.fine("=>");
+ }
+
+ private void drawRectangle(Graphics2D g, T map, RectangularArea locationBoundingBox) {
+ Coordinate bottomLeft = locationBoundingBox.getBottomLeft();
+ Coordinate topRight = locationBoundingBox.getTopRight();
+ paintLine(g, map, bottomLeft.getLongitude(), topRight.getLatitude(), topRight.getLongitude(), topRight.getLatitude(), Color.BLACK, 1f);
+ paintLine(g, map, topRight.getLongitude(), topRight.getLatitude(), topRight.getLongitude(), bottomLeft.getLatitude(), Color.BLACK, 1f);
+ paintLine(g, map, topRight.getLongitude(), bottomLeft.getLatitude(), bottomLeft.getLongitude(), bottomLeft.getLatitude(), Color.BLACK, 1f);
+ paintLine(g, map, bottomLeft.getLongitude(), bottomLeft.getLatitude(), bottomLeft.getLongitude(), topRight.getLatitude(), Color.BLACK, 1f);
+ }
+
+ private void paintLine(Graphics2D g, T map, double longitude1,
+ double latitude1, double longitude2, double latitude2,
+ Color color, Float lineWidth) {
+ LOGGER.fine("=> coordinates: (" + longitude1 + ", " + latitude1 + ") (" + longitude2 + ", " + latitude2 + ")");
+
+ // figure out whether the line is within this map viewport
+ // so, get the bounds
+ Rectangle viewportBounds = map.getViewportBounds();
+ int zoom = map.getZoom();
+ Dimension sizeInTiles = map.getTileFactory().getMapSize(zoom);
+ int tileSize = map.getTileFactory().getTileSize(zoom);
+ Dimension sizeInPixels = new Dimension(sizeInTiles.width*tileSize, sizeInTiles.height*tileSize);
+
+ double vpx = viewportBounds.getX();
+ // normalize the left edge of the viewport to be positive
+ while(vpx < 0) {
+ vpx += sizeInPixels.getWidth();
+ }
+ // normalize the left edge of the viewport to no wrap around the world
+ while(vpx > sizeInPixels.getWidth()) {
+ vpx -= sizeInPixels.getWidth();
+ }
+
+ // create two new viewports next to eachother
+ Rectangle2D vp2 = new Rectangle2D.Double(vpx,
+ viewportBounds.getY(),viewportBounds.getWidth(),viewportBounds.getHeight());
+
+ GeoPosition startNodeGeoPosition = new GeoPosition(latitude1, longitude1);
+ Point2D point0 = map.getTileFactory().geoToPixel(startNodeGeoPosition, map.getZoom());
+ GeoPosition endNodeGeoPosition = new GeoPosition(latitude2, longitude2);
+ Point2D point1 = map.getTileFactory().geoToPixel(endNodeGeoPosition, map.getZoom());
+ int x0 = (int)(point0.getX() - vp2.getX());
+ int y0 = (int)(point0.getY() - vp2.getY());
+ int x1 = (int)(point1.getX() - vp2.getX());
+ int y1 = (int)(point1.getY() - vp2.getY());
+ g.setStroke(new BasicStroke(lineWidth));
+ g.setColor(color);
+ g.drawLine(x0, y0, x1, y1);
+
+ LOGGER.fine("<=");
+ }
+} \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.java
new file mode 100755
index 0000000..07cfd59
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoListDisplay.java
@@ -0,0 +1,2165 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.imageio.ImageIO;
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.border.EtchedBorder;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableModel;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.genivi.booleanexpr.BooleanExpression;
+import org.genivi.booleanexpr.ClassAttribute;
+import org.genivi.booleanexpr.ComparisonOperator;
+import org.genivi.booleanexpr.ComparisonPredicate;
+import org.genivi.booleanexpr.DyadicExpression;
+import org.genivi.booleanexpr.DyadicLogicalOperator;
+import org.genivi.booleanexpr.FilterexprFactory;
+import org.genivi.booleanexpr.IsSetPredicate;
+import org.genivi.booleanexpr.ListOperator;
+import org.genivi.booleanexpr.MetaOperator;
+import org.genivi.booleanexpr.MultiplicityPredicate;
+import org.genivi.booleanexpr.SignedIntegerLiteral;
+import org.genivi.booleanexpr.util.FilterExprUtil;
+import org.genivi.common.LocalizedString;
+import org.genivi.common.Version;
+import org.genivi.iconset.ColorType;
+import org.genivi.iconset.IconData;
+import org.genivi.iconset.IconDefinition;
+import org.genivi.iconset.IconDescriptor;
+import org.genivi.iconset.IconDimension;
+import org.genivi.iconset.IconInfo;
+import org.genivi.iconset.IconSet;
+import org.genivi.iconset.IconsetFactory;
+import org.genivi.location.AreaLocation;
+import org.genivi.location.AreaLocationInfo;
+import org.genivi.location.LinearLocation;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.location.Location;
+import org.genivi.location.LocationInfo;
+import org.genivi.location.PointLocation;
+import org.genivi.location.PointLocationInfo;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.FeedInformation;
+import org.genivi.trafficincidentsservice.LengthUnit;
+import org.genivi.trafficincidentsservice.TextDetailLevel;
+import org.genivi.trafficincidentsservice.TrafficIncidentFeedStatus;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentsStatus;
+import org.genivi.trafficincidentsservice.WeightUnit;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Advice;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Applicability;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LaneRestrictions;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.LinkedCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.trafficincidentPackage;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.VehicleRelatedRestriction;
+import org.genivi.trafficincidentsservice.trafficincidenttables.RestrictionType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.VehicleType;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+
+@SuppressWarnings("serial")
+public class TrafficInfoListDisplay extends JFrame {
+ private final static Logger LOGGER = Logger.getLogger(TrafficInfoMapView.class.getName());
+ private static final String TITLE_BODY = "Traffic Incidents List Display (TrafficIncidentsService version: ";
+ private static final String NEW_LINE = System.getProperty("line.separator");
+ private static final SimpleDateFormat DF = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+ private final static FilterexprFactory FILTER_EXPR_FACTORY = FilterexprFactory.eINSTANCE;
+ private final static trafficincidentPackage tip = trafficincidentPackage.eINSTANCE;
+ private static final String NO_COUNTRY = "<none>";
+ private static String[] SUPPORTED_LANGUAGES = {
+ "nld", "eng", "fra", "deu"
+ };
+ private static String[] SUPPORTED_COUNTRIES = {
+ NO_COUNTRY, "nld", "gbr", "usa", "fra", "deu"
+ };
+ private static String[] FEED_INFO_TABLE_COLUMN_NAMES = {
+ "Data Provider", "Protocol", "Communication Channel", "Feed Status", "Traffic Incidents Status"
+ };
+ private static Object[][] UNKOWN_FEED_INFO = {
+ {"-", "-", "-", "-", "-"}
+ };
+ private static final long AXLE_LOAD_NORMAL = 4;
+ private static final long AXLE_LOAD_EXTRA = 3;
+
+ private final static IconsetFactory iconsetFactory = IconsetFactory.eINSTANCE;
+ private static List<TrafficIncidentField> trafficIncidentFields = new ArrayList<TrafficIncidentField>();
+
+ private TrafficIncidents trafficIncidentsService;
+
+ private boolean versionInfoObtained = false;
+ private boolean iconSetsObtained = false;
+ private boolean iconDefinitionsObtained = false;
+ private boolean categoryDefinitionsObtained = false;
+
+ private EList<IconSet> iconSets; // Descriptions of the icon sets available in the system. These are obtained from the TrafficIncidentsService.
+ private EList<Integer> iconThemes; // Icon themes available in iconSets.
+ private EList<ColorType> iconColorTypes; // Color types available in iconSets.
+ private EList<IconDimension> iconDimensions; // Icon dimensions available in iconSets.
+ private boolean dayTimeSupported = false; // Indicates whether there are daytime icons in iconSets.
+ private boolean nightTimeSupported = false; // Indicates whether there are night time icons in iconSets.
+ private EList<Integer> iconSetsPriorityOrder; // Priority order for the icon to be used.
+ private Map<IconInfo, BufferedImage> iconImages = new HashMap<IconInfo, BufferedImage>(); // Images of all icons.
+ private Map<Integer, CategoryDefinition> categoryDefinitionsMap = new HashMap<Integer, CategoryDefinition>();
+ private EList<Integer> currentCategoryIds = new BasicEList<Integer>();
+ private JCheckBox holdCheckBox;
+ private JCheckBox applicabilityCheckBox;
+ private JCheckBox extraTonsCheckBox;
+ private JTextArea fullTextArea;
+ private JTextArea summaryTextArea;
+ private JPanel fieldsTextPanel;
+ private Version trafficIncidentsVersion = null;
+ private Date lastUpdateDate = null;
+ private TrafficIncidentsListener primaryUpdateListener;
+ private TrafficIncidentsListener updateListener = null;
+ private TrafficIncidentsListener fullTextListener;
+ private TrafficIncidentsListener summaryTextListener;
+ private TrafficIncidentsListener fieldsListener;
+ private JCheckBox allCategoriesCheckBox;
+ private JList<ListCategoryDefinition> categoriesSelectionList;
+ private JComboBox<String> languageSelectionBox;
+ private JComboBox<String> languageCountrySelectionBox;
+ private JComboBox<Integer> iconThemeSelectionBox;
+ private JComboBox<ColorType> iconColorTypeSelectionBox;
+ private JComboBox<IconDimension> iconDimensionSelectionBox;
+ private JCheckBox nightTimeCheckbox;
+ private JLabel iconSetPriorityOrderLabel;
+ private JPanel statusPanel;
+ private JLabel trafficIncidentFeedStatusLabel;
+ private JLabel trafficIncidentsStatusLabel;
+ DefaultTableModel feedInfoTableModel;
+ private String currentLanguage;
+ private String currentLanguageCountry;
+ private JComboBox<LengthUnit> lengthUnitSelectionBox;
+ private JComboBox<WeightUnit> weightUnitSelectionBox;
+ private JTextField dateFormatTextField;
+ private JTextField timeFormatTextField;
+
+ static {
+ for (TrafficIncidentField trafficIncidentField: TrafficIncidentField.values()) {
+ trafficIncidentFields.add(trafficIncidentField);
+ }
+ }
+
+ public TrafficInfoListDisplay(TrafficIncidents trafficIncidents) {
+ super(TITLE_BODY + "<no version info available>");
+ LOGGER.setLevel(Level.SEVERE);
+
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ this.trafficIncidentsService = trafficIncidents;
+
+ primaryUpdateListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getVersionReply(Version trafficIncidentsVersion) {
+ LOGGER.info("getVersionReply() called.");
+ setTrafficIncidentsVersion(trafficIncidentsVersion);
+
+ updateTitle();
+
+ versionInfoObtained = true;
+
+ // Only start the real work after we obtained the necessary information.
+ if (readyToGo() && (updateListener == null)) {
+ updateListener = this;
+ updateApplicabilitySetting();
+
+ trafficIncidentsService.addUpdateListener(this, new BasicEList<WarningLevel>(), currentCategoryIds, this);
+ }
+ }
+
+ @Override
+ public void updates(EList<Integer> unchangedTrafficIncidentIds, EList<Integer> changedTrafficIncidentIds, EList<Integer> newTrafficIncidentIds, EList<Integer> deletedTrafficIncidentIds) {
+ LOGGER.info("updates() called. unchangedTrafficIncidentIds = " + unchangedTrafficIncidentIds + ", changedTrafficIncidentIds = " + changedTrafficIncidentIds + ", newTrafficIncidentIds = " + newTrafficIncidentIds + ", deletedTrafficIncidentIds = " + deletedTrafficIncidentIds);
+
+ EList<Integer> incidentIds = new BasicEList<>(unchangedTrafficIncidentIds);
+ incidentIds.addAll(changedTrafficIncidentIds);
+ incidentIds.addAll(newTrafficIncidentIds);
+
+ LOGGER.info("New list of incidents = " + incidentIds);
+ updateFullTextPaneStep1(incidentIds);
+ updateSummaryTextPaneStep1(incidentIds);
+ updateFieldsTextPaneStep1(incidentIds);
+ lastUpdateDate = new Date();
+ updateTitle();
+ }
+
+ @Override
+ public void getLanguageReply(String languageCode, String countryCode) {
+ LOGGER.info("getLanguageReply() called.");
+ updateSelectedLanguage(languageCode, countryCode);
+ }
+
+ @Override
+ public void trafficIncidentsStatus(
+ TrafficIncidentFeedStatus trafficIncidentFeedStatus,
+ TrafficIncidentsStatus trafficIncidentsStatus) {
+ LOGGER.info("trafficIncidentsStatus() called.");
+ updateStatusInfo(trafficIncidentFeedStatus, trafficIncidentsStatus);
+ }
+
+ @Override
+ public void feedInformation(EList<FeedInformation> feedsInformation) {
+ LOGGER.info("feedInformation() called.");
+ updateFeedInfo(feedsInformation);
+ }
+
+ @Override
+ public void getIconSetsReply(EList<IconSet> iconSets) {
+ LOGGER.info("getIconSetsReply() called.");
+ boolean obtainIconsFromTrafficIncidentsService = handleIconSets(iconSets);
+ if (obtainIconsFromTrafficIncidentsService) {
+ LOGGER.info("Calling getIconDefinitions()");
+ trafficIncidentsService.getIconDefinitions(this, new BasicEList<IconInfo>());
+ } else {
+ iconDefinitionsObtained = true;
+ }
+
+ iconSetsObtained = true;
+
+ // Only start the real work after we obtained the necessary information.
+ if (readyToGo() && (updateListener == null)) {
+ updateListener = this;
+ updateApplicabilitySetting();
+
+ trafficIncidentsService.addUpdateListener(this, new BasicEList<WarningLevel>(), new BasicEList<Integer>(), this);
+ }
+ }
+
+ @Override
+ public void getIconDefinitionsReply(EList<IconDefinition> iconDefinitions) {
+ LOGGER.info("getIconDefinitionsReply() called.");
+ handleIconDefinitions(iconDefinitions);
+ iconDefinitionsObtained = true;
+
+ // Only start the real work after we obtained the necessary information.
+ if (readyToGo() && (updateListener == null)) {
+ updateListener = this;
+ updateApplicabilitySetting();
+
+ trafficIncidentsService.addUpdateListener(this, new BasicEList<WarningLevel>(), new BasicEList<Integer>(), this);
+ }
+ }
+
+ @Override
+ public void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions) {
+ LOGGER.info("getCategoryDefinitionsReply() called.");
+ handleCategoryDefinitions(categoryDefinitions);
+ categoryDefinitionsObtained = true;
+
+ // Only start the real work after we obtained the necessary information.
+ if (readyToGo() && (updateListener == null)) {
+ updateListener = this;
+ updateApplicabilitySetting();
+
+ trafficIncidentsService.addUpdateListener(this, new BasicEList<WarningLevel>(), new BasicEList<Integer>(), this);
+ }
+ }
+
+ @Override
+ public void addUpdateListenerReply() {
+ LOGGER.info("addUpdateListenerReply() called.");
+ // no action
+ }
+
+ @Override
+ public void removeUpdateListenerReply() {
+ LOGGER.info("Installing new updateListener");
+ trafficIncidentsService.addUpdateListener(this, new BasicEList<WarningLevel>(), currentCategoryIds, this);
+ }
+ };
+
+ fullTextListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTextsReply(EList<String> texts) {
+ LOGGER.info("getTextsReply() for Full Text called.");
+ updateFullTextPaneStep2(texts);
+ }
+ };
+
+ summaryTextListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTextsReply(EList<String> texts) {
+ LOGGER.info("getTextsReply() for Summary called.");
+ updateSummaryTextPaneStep2(texts);
+ }
+ };
+
+ fieldsListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ LOGGER.info("getTrafficIncidentsReply() called.");
+ updateFieldsTextPaneStep2(trafficIncidents);
+ }
+
+ };
+
+ init();
+
+ pack();
+
+ updateTitle();
+
+ LOGGER.info("Calling getVersion()");
+ trafficIncidents.getVersion(primaryUpdateListener);
+ LOGGER.info("Calling getLanguage()");
+ trafficIncidents.getLanguage(primaryUpdateListener);
+ LOGGER.info("Calling getIconSets()");
+ trafficIncidents.getIconSets(primaryUpdateListener);
+ LOGGER.info("Calling getCategoryDefinitions()");
+ trafficIncidents.getCategoryDefinitions(primaryUpdateListener);
+ LOGGER.info("Calling addTrafficIncidentsStatusListener()");
+ trafficIncidents.addTrafficIncidentsStatusListener(null, primaryUpdateListener);
+ LOGGER.info("Calling addFeedInformationListener()");
+ trafficIncidents.addFeedInformationListener(null, primaryUpdateListener);
+ }
+
+ protected void handleCategoryDefinitions(EList<CategoryDefinition> categoryDefinitions) {
+ for (CategoryDefinition categoryDefinition: categoryDefinitions) {
+ categoryDefinitionsMap.put(categoryDefinition.getCategoryId(), categoryDefinition);
+ }
+
+ updateCategoriesSelectionBox();
+ }
+
+ private void updateCategoriesSelectionBox() {
+ DefaultListModel<ListCategoryDefinition> listModel = new DefaultListModel<>();
+ for (CategoryDefinition categoryDefinition: categoryDefinitionsMap.values()) {
+ listModel.addElement(new ListCategoryDefinition(categoryDefinition));
+ }
+ categoriesSelectionList.setSelectionInterval(0, listModel.getSize());
+ categoriesSelectionList.setModel(listModel);
+ }
+
+ private boolean readyToGo() {
+ LOGGER.info("In readyToGo: versionInfoObtained = " + versionInfoObtained + ", iconSetsObtained = " + iconSetsObtained + ", iconDefinitionsObtained = " + iconDefinitionsObtained + ", categoryDefinitionsObtained = " + categoryDefinitionsObtained);
+ if (versionInfoObtained && iconSetsObtained &&
+ iconDefinitionsObtained && categoryDefinitionsObtained) {
+ LOGGER.info("Ready to GO!");
+ } else {
+ LOGGER.info("Not yet ready to go");
+ }
+ return versionInfoObtained && iconSetsObtained &&
+ iconDefinitionsObtained && categoryDefinitionsObtained;
+ }
+
+ protected boolean handleIconSets(EList<IconSet> iconSets) {
+ this.iconSets = iconSets;
+
+ boolean obtainIconsFromTrafficIncidentsService = false;
+
+ for (IconSet iconSet: iconSets) {
+ for (IconDescriptor iconDescriptor: iconSet.getIconDescriptors()) {
+ if (iconDescriptor.isSetUrl()) {
+ readIconFromFile(iconSet.getIconSetId(), iconDescriptor);
+ } else {
+ obtainIconsFromTrafficIncidentsService = true;
+ }
+ }
+ }
+
+ updateIconSetControls();
+
+ return obtainIconsFromTrafficIncidentsService;
+ }
+
+ private void updateIconSetControls() {
+ determineIconThemes();
+ updateIconThemeSelectionBox();
+ determineIconColorTypes();
+ updateIconColorTypeSelectionBox();
+ determineIconDimensions();
+ updateIconDimensionSelectionBox();
+ determineDayNightSupport();
+ updateNightTimeCheckbox();
+
+ determineIconSetsOrder();
+ }
+
+ private void determineIconThemes() {
+ iconThemes = new BasicEList<Integer>();
+
+ for (IconSet iconSet: iconSets) {
+ Integer themeId = iconSet.getThemeId();
+ if (!iconThemes.contains(themeId)) {
+ iconThemes.add(themeId);
+ }
+ }
+ }
+
+ private void updateIconThemeSelectionBox() {
+ iconThemeSelectionBox.removeAllItems();
+
+ for (Integer themeId: iconThemes) {
+ iconThemeSelectionBox.addItem(themeId);
+ }
+
+ iconThemeSelectionBox.setSelectedIndex(0);
+ }
+
+ private void determineIconColorTypes() {
+ iconColorTypes = new BasicEList<ColorType>();
+
+ for (IconSet iconSet: iconSets) {
+ ColorType colorType = iconSet.getColorType();
+ if (!iconColorTypes.contains(colorType)) {
+ iconColorTypes.add(colorType);
+ }
+ }
+ }
+
+ private void updateIconColorTypeSelectionBox() {
+ iconColorTypeSelectionBox.removeAllItems();
+
+ for (ColorType colorType: iconColorTypes) {
+ iconColorTypeSelectionBox.addItem(colorType);
+ }
+
+ iconColorTypeSelectionBox.setSelectedIndex(0);
+ }
+
+ private void determineIconDimensions() {
+ iconDimensions = new BasicEList<IconDimension>();
+
+ for (IconSet iconSet: iconSets) {
+ IconDimension iconDimension = iconSet.getDimension();
+ if (!iconDimensions.contains(iconDimension)) {
+ iconDimensions.add(iconDimension);
+ }
+ }
+ }
+
+ private void updateIconDimensionSelectionBox() {
+ iconDimensionSelectionBox.removeAllItems();
+
+ for (IconDimension iconDimension: iconDimensions) {
+ iconDimensionSelectionBox.addItem(iconDimension);
+ }
+
+ iconDimensionSelectionBox.setSelectedIndex(0);
+ }
+
+ private void determineDayNightSupport() {
+ dayTimeSupported = false;
+ nightTimeSupported = false;
+
+ for (IconSet iconSet: iconSets) {
+ boolean isDayTimeIcon = iconSet.isDayTimeIcon();
+ if (isDayTimeIcon) {
+ dayTimeSupported = true;
+ } else {
+ nightTimeSupported = true;
+ }
+ }
+ }
+
+ private void updateNightTimeCheckbox() {
+ if (dayTimeSupported && nightTimeSupported) {
+ nightTimeCheckbox.setEnabled(true);
+ nightTimeCheckbox.setSelected(false);
+ } else {
+ nightTimeCheckbox.setEnabled(true);
+ if (dayTimeSupported) {
+ nightTimeCheckbox.setSelected(false);
+ } else {
+ nightTimeCheckbox.setSelected(true);
+ }
+ }
+ }
+
+ private void determineIconSetsOrder() {
+ // Get latest values from controls
+ Integer preferredIconThemeId = (Integer) iconThemeSelectionBox.getSelectedItem();
+ ColorType preferredIconColorType = (ColorType) iconColorTypeSelectionBox.getSelectedItem();
+ IconDimension preferredIconDimension = (IconDimension) iconDimensionSelectionBox.getSelectedItem();
+ boolean dayTimePreferred = !nightTimeCheckbox.isSelected();
+
+
+ iconSetsPriorityOrder = new BasicEList<Integer>();
+
+ // Add icons: Start with specifying all properties, ..., end with all don't cares.
+ iconSetOrderAddSets(preferredIconThemeId, preferredIconColorType,
+ preferredIconDimension, dayTimePreferred);
+ iconSetOrderAddSets(preferredIconThemeId, preferredIconColorType,
+ preferredIconDimension, null);
+ iconSetOrderAddSets(preferredIconThemeId, preferredIconColorType,
+ null, null);
+ iconSetOrderAddSets(null, preferredIconColorType,
+ null, null);
+ iconSetOrderAddSets(null, null,
+ null, null);
+
+ updateIconSetPriorityOrderLabel();
+ }
+
+ private void iconSetOrderAddSets(Integer themeId, ColorType colorType,
+ IconDimension iconDimension, Boolean isDayTimeIcon) {
+ EList<IconSet> iconSetsToAdd = getIconSets(themeId, colorType, iconDimension, isDayTimeIcon);
+
+ for (IconSet iconSet: iconSetsToAdd) {
+ Integer iconSetId = iconSet.getIconSetId();
+ if (!iconSetsPriorityOrder.contains(iconSetId)) {
+ iconSetsPriorityOrder.add(iconSetId);
+ }
+ }
+ }
+
+ private EList<IconSet> getIconSets(Integer themeId, ColorType colorType,
+ IconDimension iconDimension, Boolean isDayTimeIcon) {
+ EList<IconSet> filteredIconSets = new BasicEList<IconSet>();
+
+ for (IconSet iconSet: iconSets) {
+ if (((themeId == null) || (iconSet.getThemeId() == themeId)) &&
+ ((colorType == null) || (iconSet.getColorType() == colorType)) &&
+ ((iconDimension == null) || (iconSet.getDimension() == iconDimension)) &&
+ ((isDayTimeIcon == null) || (iconSet.isDayTimeIcon() == isDayTimeIcon))) {
+ filteredIconSets.add(iconSet);
+ }
+ }
+ return filteredIconSets;
+ }
+
+ private void updateIconSetPriorityOrderLabel() {
+ StringBuilder buf = new StringBuilder();
+ boolean first = true;
+
+ for (Integer iconSetId: iconSetsPriorityOrder) {
+ if (!first) {
+ buf.append(", ");
+ } else {
+ first = false;
+ }
+ buf.append(iconSetId);
+ }
+
+ iconSetPriorityOrderLabel.setText(buf.toString());
+ }
+
+ private void readIconFromFile(int iconSetId, IconDescriptor iconDescriptor) {
+ IconInfo iconInfo = iconsetFactory.createIconInfo();
+ iconInfo.setIconSetId(iconSetId);
+ iconInfo.setIconId(iconDescriptor.getIconId());
+
+ File input = new File(iconDescriptor.getUrl());
+ try {
+ BufferedImage image = ImageIO.read(input);
+ iconImages.put(iconInfo, image);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected void handleIconDefinitions(EList<IconDefinition> iconDefinitions) {
+ for (IconDefinition iconDefinition: iconDefinitions) {
+ IconData iconData = iconDefinition.getIconData();
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(iconData.getData());
+ try {
+ BufferedImage image = ImageIO.read(inputStream);
+ iconImages.put(iconDefinition.getIconInfo(), image);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void setTrafficIncidentsVersion(Version trafficIncidentsVersion) {
+ this.trafficIncidentsVersion = trafficIncidentsVersion;
+ }
+
+
+ private void init() {
+ Container contentPane = getContentPane();
+
+ // create control pane on the top.
+ contentPane.add(createStatusAndControlPanel(), BorderLayout.NORTH);
+
+ // create the 3 message text panels.
+ JPanel incidentsPanel = new JPanel();
+ incidentsPanel.setLayout(new BorderLayout());
+ incidentsPanel.add(createFullTextPanel(), BorderLayout.NORTH);
+ incidentsPanel.add(createSummaryTextPanel(), BorderLayout.CENTER);
+ incidentsPanel.add(createFieldsTextPanel(), BorderLayout.SOUTH);
+ contentPane.add(incidentsPanel, BorderLayout.CENTER);
+
+ // call the update methods to get the text for 'no messages' in the panels.
+ updateFullTextPaneStep1(null);
+ updateSummaryTextPaneStep1(null);
+ updateFieldsTextPaneStep1(null);
+ }
+
+ private JPanel createStatusAndControlPanel() {
+ JPanel panel = new JPanel();
+ panel.add(createCategoriesSelectionPanel());
+
+ JPanel statusAndControlPanel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(statusAndControlPanel, BoxLayout.Y_AXIS);
+ statusAndControlPanel.setLayout(boxLayout);
+
+ statusAndControlPanel.add(createStatusPanel());
+ statusAndControlPanel.add(createIconSetSelectionPanel());
+ statusAndControlPanel.add(createUnitControlPanel());
+
+ panel.add(statusAndControlPanel);
+
+ return panel;
+ }
+
+ private JPanel createStatusPanel() {
+ JPanel panel = new JPanel();
+
+ panel.add(createHoldApplicabilityAndTrafficIncidentsStatusPanel());
+ panel.add(createFeedInfoPanel());
+
+ return panel;
+ }
+
+ private Component createHoldApplicabilityAndTrafficIncidentsStatusPanel() {
+ JPanel panel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
+ panel.setLayout(boxLayout);
+
+ panel.add(createHoldAndApplicabilityPanel());
+ panel.add(createTrafficIncidentsStatusPanel());
+
+ return panel;
+ }
+
+ private Component createHoldAndApplicabilityPanel() {
+ JPanel panel = new JPanel();
+
+ holdCheckBox = new JCheckBox("hold");
+ panel.add(holdCheckBox);
+
+ applicabilityCheckBox = new JCheckBox("applicability");
+ applicabilityCheckBox.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ updateApplicabilitySetting();
+ }
+
+ });
+ panel.add(applicabilityCheckBox);
+ extraTonsCheckBox = new JCheckBox("Add " + AXLE_LOAD_EXTRA + "t to " + AXLE_LOAD_NORMAL + "t");
+ extraTonsCheckBox.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ updateApplicabilitySetting();
+ }
+
+ });
+ panel.add(extraTonsCheckBox);
+
+
+
+ return panel;
+ }
+
+ protected void updateApplicabilitySetting() {
+ String expressionString;
+
+ if (applicabilityCheckBox.isSelected()) {
+ BooleanExpression applicabilityFilterExpression;
+
+ if (extraTonsCheckBox.isSelected()) {
+ applicabilityFilterExpression = createApplicabilityExpression(1000 * (AXLE_LOAD_NORMAL + AXLE_LOAD_EXTRA));
+ } else {
+ applicabilityFilterExpression = createApplicabilityExpression(1000 * AXLE_LOAD_NORMAL);
+ }
+ expressionString = applicabilityFilterExpression.toString();
+ LOGGER.info("expressionString = " + expressionString);
+ } else {
+ expressionString = "";
+ }
+
+ LOGGER.info("Filter expression: " + expressionString);
+ trafficIncidentsService.setApplicability(null, expressionString);
+ applicabilityCheckBox.setToolTipText("Test" + NEW_LINE + "ok" + NEW_LINE + "last");
+ }
+
+ private Component createUnitControlPanel() {
+ JPanel panel = new JPanel();
+
+ panel.add(createLanguageSelectionsPanel());
+ panel.add(createLengthUnitPanel());
+ panel.add(createWeightUnitPanel());
+ panel.add(createDateFormatPanel());
+ panel.add(createTimeFormatPanel());
+
+ return panel;
+ }
+
+ private Component createLengthUnitPanel() {
+ JPanel panel = new JPanel();
+
+ JLabel label = new JLabel("Length unit:");
+ panel.add(label);
+
+ lengthUnitSelectionBox = new JComboBox<>(LengthUnit.values());
+ Dimension lengthUnitSelectionBoxDimension = new Dimension(75, 26);
+ lengthUnitSelectionBox.setSize(lengthUnitSelectionBoxDimension);
+ lengthUnitSelectionBox.setMaximumSize(lengthUnitSelectionBoxDimension);
+ lengthUnitSelectionBox.setPreferredSize(lengthUnitSelectionBoxDimension);
+ lengthUnitSelectionBox.setSelectedIndex(-1);
+ lengthUnitSelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ updateLengthUnit();
+ }
+
+ });
+ panel.add(lengthUnitSelectionBox);
+
+ return panel;
+ }
+
+ private void updateLengthUnit() {
+ LengthUnit lengthUnit = (LengthUnit) lengthUnitSelectionBox.getSelectedItem();
+ LOGGER.info("Setting length unit to: " + lengthUnit);
+ trafficIncidentsService.setLengthUnit(null, lengthUnit);
+ }
+
+ private Component createWeightUnitPanel() {
+ JPanel panel = new JPanel();
+
+ JLabel label = new JLabel("Weight unit:");
+ panel.add(label);
+
+ weightUnitSelectionBox = new JComboBox<>(WeightUnit.values());
+ Dimension weightUnitSelectionBoxDimension = new Dimension(75, 26);
+ weightUnitSelectionBox.setSize(weightUnitSelectionBoxDimension);
+ weightUnitSelectionBox.setMaximumSize(weightUnitSelectionBoxDimension);
+ weightUnitSelectionBox.setPreferredSize(weightUnitSelectionBoxDimension);
+ weightUnitSelectionBox.setSelectedIndex(-1);
+ weightUnitSelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ updateWeightUnit();
+ }
+
+ });
+ panel.add(weightUnitSelectionBox);
+
+ return panel;
+ }
+
+ private void updateWeightUnit() {
+ WeightUnit weightUnit = (WeightUnit) weightUnitSelectionBox.getSelectedItem();
+ LOGGER.info("Setting weight unit to: " + weightUnit);
+ trafficIncidentsService.setWeightUnit(null, weightUnit);
+ }
+
+ private Component createDateFormatPanel() {
+ JPanel panel = new JPanel();
+
+ JLabel label = new JLabel("Date format:");
+ panel.add(label);
+
+ dateFormatTextField = new JTextField(6);
+ dateFormatTextField.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ updateDateFormat();
+ }
+
+ });
+ panel.add(dateFormatTextField);
+
+ return panel;
+ }
+
+ private void updateDateFormat() {
+ String dateFormat = dateFormatTextField.getText();
+ LOGGER.info("Setting date format to: " + dateFormat);
+ trafficIncidentsService.setDateFormat(null, dateFormat);
+ }
+
+ private Component createTimeFormatPanel() {
+ JPanel panel = new JPanel();
+
+ JLabel label = new JLabel("Time format:");
+ panel.add(label);
+
+ timeFormatTextField = new JTextField(6);
+ timeFormatTextField.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ updateTimeFormat();
+ }
+
+ });
+ panel.add(timeFormatTextField);
+
+ return panel;
+ }
+
+ private void updateTimeFormat() {
+ String timeFormat = timeFormatTextField.getText();
+ LOGGER.info("Setting time format to: " + timeFormat);
+ trafficIncidentsService.setTimeFormat(null, timeFormat);
+ }
+
+
+ private JPanel createCategoriesSelectionPanel() {
+ JPanel panel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
+ panel.setLayout(boxLayout);
+
+ JButton showExpressionsPanel = new JButton("Boolean Expressions");
+ showExpressionsPanel.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ showExpressionsPanel();
+ }
+
+ });
+ panel.add(showExpressionsPanel);
+
+ JLabel label = new JLabel("Categories:");
+ panel.add(label);
+
+ allCategoriesCheckBox = new JCheckBox("All categories");
+ allCategoriesCheckBox.setSelected(true);
+ allCategoriesCheckBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ if (allCategoriesCheckBox.isSelected()) {
+ categoriesSelectionList.setEnabled(false);
+ } else {
+ categoriesSelectionList.setEnabled(true);
+ }
+ handleCategorySelectionChanged();
+ }
+
+ });
+ panel.add(allCategoriesCheckBox);
+
+ categoriesSelectionList = new JList<>();
+ categoriesSelectionList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+ categoriesSelectionList.setVisibleRowCount(-1);
+ categoriesSelectionList.setEnabled(false);
+ categoriesSelectionList.addListSelectionListener(new ListSelectionListener() {
+
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+ handleCategorySelectionChanged();
+ }
+ });
+ JScrollPane listScroller = new JScrollPane(categoriesSelectionList);
+ listScroller.setPreferredSize(new Dimension(100, 80));
+ panel.add(listScroller);
+
+ return panel;
+ }
+
+ protected void showExpressionsPanel() {
+ String[] descriptions = new String[5];
+ String[] expressions = new String[5];
+
+ descriptions[0] = "applicability 3t";
+ expressions[0] = createApplicabilityExpression(1000 * AXLE_LOAD_NORMAL).format("", " ");
+
+ descriptions[1] = "applicability 7t";
+ expressions[1] = createApplicabilityExpression(1000 * (AXLE_LOAD_NORMAL + AXLE_LOAD_EXTRA)).format("", " ");
+
+ int index = 2;
+ for (CategoryDefinition categoryDefinition: categoryDefinitionsMap.values()) {
+ descriptions[index] = categoryDefinition.getLocalizedNames(1).getString();
+ String expressionString = categoryDefinition.getExpression();
+ BooleanExpression expression = FilterExprUtil.parseFilterExpression(expressionString);
+ expressions[index] = expression.format("", " ");
+ index++;
+ }
+
+ BooleanExpressionsFrame booleanExpressionsFrame = new BooleanExpressionsFrame(descriptions, expressions);
+ booleanExpressionsFrame.setVisible(true);
+ }
+
+ protected void handleCategorySelectionChanged() {
+ LOGGER.info("=>");
+ EList<Integer> selectedCategoryIds = new BasicEList<Integer>();
+
+ if (allCategoriesCheckBox.isSelected()) {
+ // selectedCategoryIds stays empty.
+ LOGGER.info("allCategoriesCheckBox is selected, so empty category list");
+ } else {
+ int[] selectedIndices = categoriesSelectionList.getSelectedIndices();
+ for (int i = 0; i < selectedIndices.length; i++) {
+ ListCategoryDefinition listCategoryDefinition = categoriesSelectionList.getModel().getElementAt(selectedIndices[i]);
+ LOGGER.info("Adding selected category Id: " + listCategoryDefinition.getCategoryDefinition().getCategoryId());
+ selectedCategoryIds.add(listCategoryDefinition.getCategoryDefinition().getCategoryId());
+ }
+ }
+
+ if (!selectedCategoryIds.equals(currentCategoryIds)) {
+ currentCategoryIds = selectedCategoryIds;
+ LOGGER.info("Going to remove updateListener: " + updateListener);
+ trafficIncidentsService.removeUpdateListener(primaryUpdateListener, updateListener);
+ }
+
+ LOGGER.info("<=");
+ }
+
+ private JPanel createLanguageSelectionsPanel() {
+ JPanel panel = new JPanel();
+
+ JLabel label = new JLabel("UI Language:");
+ panel.add(label);
+
+ languageSelectionBox = new JComboBox<>(SUPPORTED_LANGUAGES);
+ languageSelectionBox.setSelectedIndex(-1);
+ languageSelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ LOGGER.info("languageSelectionBox: actionPerformed");
+ String selectedLanguage = (String) languageSelectionBox.getSelectedItem();
+ LOGGER.info("languageSelectionBox: actionPerformed, currentLanguage = " + currentLanguage + ", selectedLanguage = " + selectedLanguage);
+
+ if (!selectedLanguage.equals(currentLanguage)) {
+ currentLanguage = selectedLanguage;
+ LOGGER.info("Calling setLanguage()");
+ trafficIncidentsService.setLanguage(null, currentLanguage, currentLanguageCountry);
+ } else {
+ LOGGER.info("Same language selected, no action");
+ }
+
+ }
+
+ });
+ panel.add(languageSelectionBox);
+
+ languageCountrySelectionBox = new JComboBox<>(SUPPORTED_COUNTRIES);
+ languageCountrySelectionBox.setSelectedIndex(-1);
+ languageCountrySelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ LOGGER.info("languageCountrySelectionBox: actionPerformed");
+ String selectedLanguageCountry = (String) languageCountrySelectionBox.getSelectedItem();
+ if (selectedLanguageCountry.equals(NO_COUNTRY)) {
+ selectedLanguageCountry = null;
+ }
+ LOGGER.info("languageCountrySelectionBox: actionPerformed, currentLanguageCountry = " + currentLanguageCountry + ", selectedLanguageCountry = " + selectedLanguageCountry);
+
+ if (!isRequestedLanguageCountry(selectedLanguageCountry)) {
+ currentLanguageCountry = selectedLanguageCountry;
+ LOGGER.info("Calling setLanguage()");
+ trafficIncidentsService.setLanguage(null, currentLanguage, currentLanguageCountry);
+ } else {
+ LOGGER.info("Same country selected, no action");
+ }
+
+ }
+
+ });
+ panel.add(languageCountrySelectionBox);
+
+ return panel;
+ }
+
+ private JPanel createIconSetSelectionPanel() {
+ // Theme
+ JPanel panel = new JPanel();
+
+ JLabel label = new JLabel("Theme:");
+ panel.add(label);
+
+ iconThemeSelectionBox = new JComboBox<>();
+ iconThemeSelectionBox.setSelectedIndex(-1);
+ iconThemeSelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ determineIconSetsOrder();
+ }
+
+ });
+ panel.add(iconThemeSelectionBox);
+
+ // Color type
+ label = new JLabel("Color type:");
+ panel.add(label);
+
+ iconColorTypeSelectionBox = new JComboBox<>();
+ iconColorTypeSelectionBox.setSelectedIndex(-1);
+ iconColorTypeSelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ determineIconSetsOrder();
+ }
+
+ });
+ panel.add(iconColorTypeSelectionBox);
+
+
+ // Icon dimension
+ label = new JLabel("Dimension:");
+ panel.add(label);
+
+ iconDimensionSelectionBox = new JComboBox<>();
+ iconDimensionSelectionBox.setSelectedIndex(-1);
+ iconDimensionSelectionBox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ determineIconSetsOrder();
+ }
+
+ });
+ panel.add(iconDimensionSelectionBox);
+
+ // Night time
+ nightTimeCheckbox = new JCheckBox("Night time");
+ nightTimeCheckbox.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ determineIconSetsOrder();
+ }
+
+ });
+ panel.add(nightTimeCheckbox);
+
+
+ // Calculated priority order
+ label = new JLabel("IconSet priority order:");
+ panel.add(label);
+
+ iconSetPriorityOrderLabel = new JLabel("No icon sets available");
+ panel.add(iconSetPriorityOrderLabel);
+
+ return panel;
+ }
+
+ private JPanel createTrafficIncidentsStatusPanel() {
+ statusPanel = new JPanel();
+
+ GridLayout layout = new GridLayout(2, 2);
+ statusPanel.setLayout(layout);
+ statusPanel.setForeground(Color.ORANGE);
+
+ JLabel label;
+
+ label = new JLabel("Feed status: ");
+ statusPanel.add(label);
+
+ trafficIncidentFeedStatusLabel = new JLabel("INIT");
+ statusPanel.add(trafficIncidentFeedStatusLabel);
+
+ label = new JLabel("Traffic Incidents status: ");
+ statusPanel.add(label);
+
+ trafficIncidentsStatusLabel = new JLabel("init");
+ statusPanel.add(trafficIncidentsStatusLabel);
+
+ return statusPanel;
+ }
+
+ private JPanel createFeedInfoPanel() {
+ JPanel feedInfoTablePanel = new JPanel();
+ feedInfoTableModel = new DefaultTableModel(UNKOWN_FEED_INFO, FEED_INFO_TABLE_COLUMN_NAMES);
+ JTable table = new JTable(feedInfoTableModel);
+ table.setPreferredScrollableViewportSize(new Dimension(600, 40));
+ table.setFillsViewportHeight(true);
+
+ //Create the scroll pane and add the table to it.
+ JScrollPane scrollPane = new JScrollPane(table);
+
+ //Add the scroll pane to this panel.
+ feedInfoTablePanel.add(scrollPane);
+
+ return feedInfoTablePanel;
+ }
+
+ /**
+ * Create a panel for the Full message texts.
+ */
+ private JPanel createFullTextPanel() {
+ JPanel panel = new JPanel();
+
+ panel.setBorder(BorderFactory.createTitledBorder("Full text"));
+
+ fullTextArea = new JTextArea(8, 100);
+ fullTextArea.setLineWrap(true);
+ fullTextArea.setEditable(false);
+ JScrollPane scrollPane = new JScrollPane(fullTextArea);
+ panel.add(scrollPane, BorderLayout.CENTER);
+
+ return panel;
+ }
+
+ /**
+ * Create a panel for the Summary messages texts.
+ */
+ private JPanel createSummaryTextPanel() {
+ JPanel panel = new JPanel();
+
+ panel.setBorder(BorderFactory.createTitledBorder("Summary text"));
+
+ summaryTextArea = new JTextArea(6, 100);
+ summaryTextArea.setLineWrap(true);
+ summaryTextArea.setEditable(false);
+ JScrollPane scrollPane = new JScrollPane(summaryTextArea);
+ panel.add(scrollPane, BorderLayout.CENTER);
+
+ return panel;
+ }
+
+ /**
+ * Create a panel for the texts created from the fields in a
+ * Traffic Incident.
+ */
+ private JPanel createFieldsTextPanel() {
+ fieldsTextPanel = new JPanel();
+ fieldsTextPanel.setBorder(BorderFactory.createTitledBorder("Fields text"));
+ return fieldsTextPanel;
+ }
+
+ /**
+ * First step in updating the Full text panel:
+ * - display a default text if there are no incidents
+ * - otherwise send a request for the texts, with fullTextListener as listener.
+ */
+ private void updateFullTextPaneStep1(EList<Integer> incidentIds) {
+ LOGGER.info("=>");
+ if (incidentIds == null || incidentIds.size() == 0) {
+ LOGGER.info("<= No Traffic Incidents.");
+ if (holdCheckBox.isSelected()) {
+ return;
+ }
+
+ fullTextArea.setText("Nothing to report");
+ return;
+ }
+
+ trafficIncidentsService.getTexts(fullTextListener, incidentIds, TextDetailLevel.FULL);
+ LOGGER.info("<= Traffic Incidents.");
+ }
+
+ /**
+ * Second step in updating the Full text panel:
+ * - display the received texts.
+ */
+ private void updateFullTextPaneStep2(EList<String> texts) {
+ if (holdCheckBox.isSelected()) {
+ return;
+ }
+
+ StringBuilder buf = new StringBuilder();
+
+ boolean first = true;
+ for (String text: texts) {
+ if (!first) {
+ buf.append(NEW_LINE);
+ buf.append(NEW_LINE);
+ } else {
+ first = false;
+ }
+ buf.append(text);
+ }
+
+ fullTextArea.setText(buf.toString());
+
+ this.repaint();
+ }
+
+
+ /**
+ * First step in updating the Summary text panel:
+ * - display a default text if there are no incidents
+ * - otherwise send a request for the texts, with summaryTextListener as listener.
+ */
+ private void updateSummaryTextPaneStep1(EList<Integer> incidentIds) {
+ if (incidentIds == null || incidentIds.size() == 0) {
+ if (holdCheckBox.isSelected()) {
+ return;
+ }
+
+ summaryTextArea.setText("Nothing to report");
+ return;
+ }
+
+ trafficIncidentsService.getTexts(summaryTextListener, incidentIds, TextDetailLevel.SUMMARY);
+ }
+
+
+ /**
+ * Second step in updating the Summary text panel:
+ * - display the received texts.
+ */
+ private void updateSummaryTextPaneStep2(EList<String> texts) {
+ if (holdCheckBox.isSelected()) {
+ return;
+ }
+
+ StringBuilder buf = new StringBuilder();
+
+ boolean first = true;
+ for (String text: texts) {
+ if (!first) {
+ buf.append(NEW_LINE);
+ buf.append(NEW_LINE);
+ } else {
+ first = false;
+ }
+ buf.append(text);
+ }
+
+ summaryTextArea.setText(buf.toString());
+
+ repaint();
+ }
+
+
+ /**
+ * First step in updating the Fields text panel:
+ * - display a default text if there are no incidents
+ * - otherwise send a request for the Traffic Incidents, with fieldsListener as listener.
+ */
+ private void updateFieldsTextPaneStep1(EList<Integer> incidentIds) {
+ if ((incidentIds == null) || (incidentIds.size() == 0)) {
+ updateFieldsTextPaneStep2(null);
+ return;
+ }
+
+ trafficIncidentsService.getTrafficIncidents(fieldsListener, incidentIds, true);
+ }
+
+
+ /**
+ * Second step in updating the Summary text panel:
+ * - display the information per field for each incident.
+ */
+ private void updateFieldsTextPaneStep2(EList<TrafficIncident> incidents) {
+ if (holdCheckBox.isSelected()) {
+ return;
+ }
+
+ fieldsTextPanel.removeAll();
+
+ JPanel incidentsPanel = new JPanel();
+
+ if (incidents != null) {
+ LOGGER.info("incidents list in not null, number of incidents = " + incidents.size());
+ BoxLayout boxLayout = new BoxLayout(incidentsPanel, BoxLayout.Y_AXIS);
+ incidentsPanel.setLayout(boxLayout);
+ for (TrafficIncident incident: incidents) {
+ incidentsPanel.add(createIncidentPanel(incident));
+ }
+ } else {
+ incidentsPanel.add(new JLabel("Nothing to report"));
+ }
+ JScrollPane scrollPane = new JScrollPane(incidentsPanel);
+ Dimension dimension = new Dimension(1000, 400);
+ scrollPane.setPreferredSize(dimension);
+ fieldsTextPanel.add(scrollPane);
+
+ fieldsTextPanel.revalidate();
+ fieldsTextPanel.repaint();
+ }
+
+ private JPanel createIncidentPanel(TrafficIncident incident) {
+ LOGGER.info("Creating panel for incident with Id: " + incident.getTrafficIncidentId());
+ JPanel panel = new JPanel();
+ panel.setLayout(new BorderLayout());
+ panel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
+
+ panel.add(createTextFieldsPanel(incident), BorderLayout.CENTER);
+ EList<Integer> categoryIds;
+ categoryIds = incident.getCategoryIds();
+ panel.add(createCategoriesPanel(categoryIds), BorderLayout.WEST);
+
+ return panel;
+ }
+
+ private Component createTextFieldsPanel(TrafficIncident incident) {
+ StringBuilder buf = new StringBuilder();
+ generateFieldsText(buf, incident);
+ JTextArea textArea = new JTextArea(buf.toString());
+ textArea.setEditable(false);
+
+ return textArea;
+ }
+
+ private Component createCategoriesPanel(EList<Integer> categoryIds) {
+ JPanel panel = new JPanel();
+ BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
+ panel.setLayout(boxLayout);
+
+ if (categoryIds.size() != 0) {
+ for (int categoryId: categoryIds) {
+ panel.add(createCategoryPanel(categoryId));
+ }
+ } else {
+ panel.add(createCategoryPanel(-1));
+ }
+
+ return panel;
+ }
+
+ private Component createCategoryPanel(int categoryId) {
+ JPanel panel = new JPanel();
+ Dimension dimension = new Dimension(200, 50);
+ panel.setMaximumSize(dimension);
+ panel.setPreferredSize(dimension);
+
+ panel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
+
+ panel.setLayout(new BorderLayout());
+
+ if (categoryId != -1) {
+ CategoryDefinition categoryDefinition = categoryDefinitionsMap.get(categoryId);
+
+ // Add icon as CENTER
+ // Create a map with icons related to the category, the set we have to chose from.
+ Map<Integer, IconInfo> categoryIcons = new HashMap<Integer, IconInfo>();
+ for (IconInfo iconInfo: categoryDefinition.getIcons()) {
+ LOGGER.fine("Adding iconInfo to categoryIcons: iconSetId = " + iconInfo.getIconSetId() + ", iconId = " + iconInfo.getIconId());
+ categoryIcons.put(iconInfo.getIconSetId(), iconInfo);
+ }
+
+ // In priority order, check which one is available for the category.
+ IconInfo iconInfo = null;
+ for (Integer iconSetId: iconSetsPriorityOrder) {
+ LOGGER.fine("Looking for iconSetId: " + iconSetId);
+ if (categoryIcons.containsKey(iconSetId)) {
+ LOGGER.fine("Found it!");
+ iconInfo = categoryIcons.get(iconSetId);
+ break;
+ }
+ }
+ if (iconInfo != null) {
+ LOGGER.info("iconInfo: iconSetId = " + iconInfo.getIconSetId() + ", iconId = " + iconInfo.getIconId());
+ } else {
+ LOGGER.info("iconInfo: iconSetId = null!");
+ }
+ BufferedImage image = iconImages.get(iconInfo);
+ panel.add(new ImagePanel(image), BorderLayout.CENTER);
+
+ // Add category name as SOUTH
+ // First search for language and country, then for language, then take first name
+ String categoryName = null;
+ for (LocalizedString localizedString: categoryDefinition.getLocalizedNames()) {
+ if (isRequestedLocale(localizedString.getLanguageCode(), localizedString.getCountryCode())) {
+ categoryName = localizedString.getString();
+ LOGGER.info("Category name found for current language and country");
+ break;
+ }
+ }
+ if (categoryName == null) {
+ for (LocalizedString localizedString: categoryDefinition.getLocalizedNames()) {
+ if (isRequestedLanguage(localizedString.getLanguageCode())) {
+ categoryName = localizedString.getString();
+ LOGGER.info("Category name found for current language");
+ break;
+ }
+ }
+ }
+ if (categoryName == null) {
+ categoryName = categoryDefinition.getLocalizedNames(0).getString();
+ }
+ panel.add(new JLabel(categoryName), BorderLayout.SOUTH);
+ } else {
+ panel.add(new JLabel("No category"), BorderLayout.SOUTH);
+ }
+
+ return panel;
+ }
+
+ private boolean isRequestedLocale(String languageCode, String countryCode) {
+ return isRequestedLanguage(languageCode) && isRequestedLanguageCountry(countryCode);
+ }
+
+ private boolean isRequestedLanguage(String languageCode) {
+ boolean returnValue = ((languageCode == null && currentLanguage == null) ||
+ ((languageCode != null) && (currentLanguage != null) &&
+ languageCode.equals(currentLanguage)));
+ LOGGER.info("<=" + returnValue);
+ return returnValue;
+ }
+
+ private boolean isRequestedLanguageCountry(String languageCountryCode) {
+ boolean returnValue = ((languageCountryCode == null && currentLanguageCountry == null) ||
+ ((languageCountryCode != null) && (currentLanguageCountry != null) &&
+ languageCountryCode.equals(currentLanguageCountry)));
+ LOGGER.info("<=" + returnValue);
+ return returnValue;
+ }
+
+ /**
+ * Generate text field information for a single incident.
+ */
+ private void generateFieldsText(StringBuilder buf, TrafficIncident trafficIncident) {
+ LOGGER.info("Creating Fields Text for incident with Id: " + trafficIncident.getTrafficIncidentId());
+
+ buf.append("General Information");
+
+ buf.append(NEW_LINE);
+
+ buf.append("\tEffect: ");
+ String effect = trafficIncident.getEffectText();
+ if (effect != null) {
+ buf.append(effect);
+ } else {
+ buf.append("---");
+ }
+ buf.append(" (effectCode = ");
+ if (trafficIncident.isSetEffectCode()) {
+ buf.append(trafficIncident.getEffectCode());
+ buf.append(" = ");
+ buf.append(trafficIncident.getEffectCode().getValue());
+ } else {
+ buf.append("---");
+ }
+ buf.append(")");
+
+ buf.append(NEW_LINE);
+
+ buf.append("\tValidity Period: ");
+ if (trafficIncident.isSetStartTime()) {
+ buf.append(" from ");
+ buf.append(DF.format(trafficIncident.getStartTime()));
+ }
+ if (trafficIncident.isSetStopTime()) {
+ buf.append(" till ");
+ buf.append(DF.format(trafficIncident.getStopTime()));
+ }
+ buf.append(NEW_LINE);
+
+ buf.append("\tTendency: ");
+ String tendency = trafficIncident.getTendencyText();
+ if (tendency != null) {
+ buf.append(tendency);
+ } else {
+ buf.append("---");
+ }
+ buf.append(" (tendency = ");
+ if (trafficIncident.isSetTendency()) {
+ buf.append(trafficIncident.getTendency());
+ buf.append(" = ");
+ buf.append(trafficIncident.getTendency().getValue());
+ } else {
+ buf.append("---");
+ }
+ buf.append(")");
+ buf.append(NEW_LINE);
+
+ buf.append("\tLength Affected: ");
+ if (trafficIncident.isSetLengthAffected()) {
+ buf.append(String.valueOf(trafficIncident.getLengthAffected()));
+ buf.append(" meters");
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("\tAverage Speed: ");
+ if (trafficIncident.isSetAverageSpeedAbsolute()) {
+ buf.append(String.valueOf(trafficIncident.getAverageSpeedAbsolute()));
+ buf.append(" m/s");
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("\tDelay: ");
+ if (trafficIncident.isSetDelay()) {
+ buf.append(String.valueOf(trafficIncident.getDelay()));
+ buf.append(" minutes");
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("\tSpeed Limit: ");
+ if (trafficIncident.isSetSegmentSpeedLimit()) {
+ buf.append(String.valueOf(trafficIncident.getSegmentSpeedLimit()));
+ buf.append(" m/s");
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("\tExpected Speed: ");
+ if (trafficIncident.isSetExpectedSpeedAbsolute()) {
+ buf.append(String.valueOf(trafficIncident.getExpectedSpeedAbsolute()));
+ buf.append(" m/s");
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("Location: ");
+ if (trafficIncident.isSetLocation()) {
+ Location location = trafficIncident.getLocation();
+ if (location instanceof PointLocation) {
+ buf.append("point location");
+ } else if (location instanceof LinearLocation) {
+ buf.append("linear location");
+ LinearLocation linearLocation = (LinearLocation) location;
+ buf.append(", positive offet = ");
+ buf.append(linearLocation.getPositiveOffset());
+ buf.append(", negative offset = ");
+ buf.append(linearLocation.getNegativeOffset());
+ buf.append(", segments");
+ for (Long segment: linearLocation.getSegments()) {
+ buf.append(": ");
+ buf.append(segment);
+ }
+ } else if (location instanceof AreaLocation) {
+ buf.append("area location");
+ }
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("Location Info: ");
+ if (trafficIncident.isSetLocationInfo()) {
+ LocationInfo locationInfo = trafficIncident.getLocationInfo();
+ if (locationInfo instanceof PointLocationInfo) {
+ buf.append("(point location) ");
+ buf.append(locationInfo.getName());
+ } else if (locationInfo instanceof LinearLocationInfo) {
+ LinearLocationInfo linearLocationInfo = (LinearLocationInfo) locationInfo;
+ buf.append("(linear location) ");
+ buf.append(linearLocationInfo.getName());
+ buf.append(": ");
+ if (linearLocationInfo.getFromLocationParentName() != null &&
+ linearLocationInfo.getToLocationParentName() != null) {
+ buf.append(linearLocationInfo.getFromLocationParentName());
+ buf.append(" => ");
+ buf.append(linearLocationInfo.getToLocationParentName());
+ buf.append(" ");
+ }
+ buf.append("section: ");
+ buf.append(linearLocationInfo.getFromLocationName());
+ buf.append(" - ");
+ buf.append(linearLocationInfo.getToLocationName());
+ } else if (locationInfo instanceof AreaLocationInfo) {
+ buf.append("(area location) ");
+ buf.append(locationInfo.getName());
+ }
+ } else {
+ buf.append("---");
+ }
+
+ buf.append(NEW_LINE);
+
+ buf.append("Cause texts");
+ buf.append(NEW_LINE);
+
+ List<String> causes = trafficIncident.getCauseTexts();
+ for (String cause: causes) {
+ buf.append("\tCause: ");
+ buf.append(cause);
+ buf.append(NEW_LINE);
+ }
+
+ buf.append("Cause model data");
+ buf.append(NEW_LINE);
+ for (Cause cause: trafficIncident.getCauses()) {
+ buf.append("mainCause = " + cause.getMainCause() + " = " + cause.getMainCause().getValue());
+ if (cause instanceof DirectCause) {
+ buf.append(", direct cause, ");
+ DirectCause directCause = (DirectCause) cause;
+ buf.append(", warning level = " + directCause.getWarningLevel() + " = " + directCause.getWarningLevel().getValue());
+ if (directCause.isUnverifiedInformation()) {
+ buf.append(", unverified information");
+ } else {
+ buf.append(", verified information");
+ }
+ buf.append(", sub cause = ");
+ if (directCause.isSetSubCause()) {
+ buf.append(directCause.getSubCause());
+ } else {
+ buf.append("---");
+ }
+ buf.append(", length affected = ");
+ if (directCause.isSetLengthAffected()) {
+ buf.append(directCause.getLengthAffected());
+ } else {
+ buf.append("---");
+ }
+ buf.append(", lane restrictions: ");
+ if (directCause.isSetLaneRestrictions()) {
+ LaneRestrictions laneRestrictions = directCause.getLaneRestrictions();
+ buf.append("type = " + laneRestrictions.getLaneRestrictionType() + " = " + laneRestrictions.getLaneRestrictionType().getValue());
+ buf.append("; number of lanes = " + laneRestrictions.getNumberOfLanes());
+ } else {
+ buf.append("---");
+ }
+ buf.append(", free text = " );
+ if (directCause.isSetFreeText()) {
+ buf.append(directCause.getFreeText());
+ } else {
+ buf.append("---");
+ }
+ } else if (cause instanceof LinkedCause) {
+ buf.append(", linked cause, ");
+ LinkedCause linkedCause = (LinkedCause) cause;
+ buf.append(" trafficIncidentId = ");
+ buf.append(linkedCause.getCauseTrafficIncidentId());
+ }
+ buf.append(NEW_LINE);
+ }
+
+ buf.append("Advices");
+ buf.append(NEW_LINE);
+
+ buf.append("Advice model data");
+ buf.append(NEW_LINE);
+ for (Advice advice: trafficIncident.getAdvices()) {
+ buf.append("mainAdvice = " + advice.getMainAdvice() + " = " + advice.getMainAdvice().getValue());
+ buf.append(", sub advice = ");
+ if (advice.isSetSubAdvice()) {
+ buf.append(advice.getSubAdvice());
+ } else {
+ buf.append("---");
+ }
+ buf.append(", free text = " );
+ if (advice.isSetFreeText()) {
+ buf.append(advice.getFreeText());
+ } else {
+ buf.append(" ---");
+ }
+ buf.append(", applicability =" );
+ if (advice.isSetApplicability()) {
+ bufAppendApplicability(buf, advice.getApplicability());
+ } else {
+ buf.append(" ---");
+ }
+ buf.append(NEW_LINE);
+ }
+
+
+ List<String> advices = trafficIncident.getAdviceTexts();
+ for (String advice: advices) {
+ buf.append("\tAdvice: ");
+ buf.append(advice);
+ buf.append(NEW_LINE);
+ }
+
+
+ buf.append("Applicability");
+ buf.append(NEW_LINE);
+
+ List<String> applicabilityList = trafficIncident.getApplicabilityTexts();
+ for (String applicability: applicabilityList) {
+ buf.append("\tApplicability: ");
+ buf.append(applicability);
+ buf.append(NEW_LINE);
+ }
+
+ buf.append("Applicability from data model");
+ if (trafficIncident.isSetApplicability()) {
+ bufAppendApplicability(buf, trafficIncident.getApplicability());
+ } else {
+ buf.append(" ---");
+ }
+ buf.append(NEW_LINE);
+ }
+
+ private void bufAppendApplicability(StringBuilder buf, List<Applicability> applicabilities) {
+ for (Applicability applicability: applicabilities) {
+ buf.append(" vehicle type = ");
+ buf.append(applicability.getVehicleType());
+ buf.append(" = ");
+ buf.append(applicability.getVehicleType().getValue());
+
+ buf.append("; vehicle related restrictions: ");
+ if (applicability.isSetVehicleRelatedRestrictions()) {
+ bufAppendVehicleRelatedRestrictions(buf, applicability.getVehicleRelatedRestrictions());
+ } else {
+ buf.append("---");
+ }
+ }
+ }
+
+ private void bufAppendVehicleRelatedRestrictions(StringBuilder buf, List<VehicleRelatedRestriction> vehicleRelatedRestrictions) {
+ for (VehicleRelatedRestriction restriction: vehicleRelatedRestrictions) {
+ buf.append("restriction type = ");
+ buf.append(restriction.getRestrictionType());
+ buf.append(" = ");
+ buf.append(restriction.getRestrictionType().getValue());
+ buf.append("; restriction type = ");
+ buf.append(restriction.getRestrictionValue());
+ }
+
+ }
+
+ /**
+ * Update the title of the Frame.
+ */
+ private void updateTitle() {
+ // Create and display title, using the version received from trafficIncidentsService.
+ StringBuilder title = new StringBuilder();
+ title.append(TITLE_BODY);
+
+ if (trafficIncidentsVersion != null) {
+ title.append(String.valueOf(trafficIncidentsVersion.getMajor()));
+ title.append(".");
+ title.append(String.valueOf(trafficIncidentsVersion.getMinor()));
+ title.append(".");
+ title.append(String.valueOf(trafficIncidentsVersion.getMicro()));
+ title.append(" ");
+ title.append(trafficIncidentsVersion.getDate());
+ } else {
+ title.append("<no version info available>");
+ }
+
+ title.append(", last updated: ");
+ if (lastUpdateDate != null) {
+ title.append(DF.format(lastUpdateDate));
+ } else {
+ title.append("<nothing received yet>");
+ }
+ title.append(")");
+ setTitle(title.toString());
+ }
+
+ private void updateSelectedLanguage(String languageCode, String languageCountryCode) {
+ currentLanguage = languageCode;
+ currentLanguageCountry = languageCountryCode;
+
+ String selectedLanguage = (String) languageSelectionBox.getSelectedItem();
+ if (selectedLanguage != null) {
+ if (!selectedLanguage.equals(currentLanguage)) {
+ languageSelectionBox.setSelectedItem(currentLanguage);
+ }
+ } else {
+ languageSelectionBox.setSelectedItem(currentLanguage);
+ }
+
+ String selectedLanguageCountry = (String) languageCountrySelectionBox.getSelectedItem();
+ if (selectedLanguageCountry != null) {
+ if (!selectedLanguageCountry.equals(currentLanguageCountry)) {
+ if (currentLanguageCountry != null) {
+ languageCountrySelectionBox.setSelectedItem(currentLanguageCountry);
+ } else {
+ languageCountrySelectionBox.setSelectedItem(NO_COUNTRY);
+ }
+ }
+ } else {
+ if (currentLanguageCountry != null) {
+ languageCountrySelectionBox.setSelectedItem(currentLanguageCountry);
+ } else {
+ languageCountrySelectionBox.setSelectedItem(NO_COUNTRY);
+ }
+ }
+ }
+
+ private void updateStatusInfo(TrafficIncidentFeedStatus trafficIncidentFeedStatus, TrafficIncidentsStatus trafficIncidentsStatus) {
+ trafficIncidentFeedStatusLabel.setText(trafficIncidentFeedStatus.getName());
+ trafficIncidentsStatusLabel.setText(trafficIncidentsStatus.getName());
+
+ Color backgroundColor = null;
+ if (trafficIncidentFeedStatus == TrafficIncidentFeedStatus.UNAVAILABLE) {
+ backgroundColor = Color.LIGHT_GRAY;
+ } else {
+ switch (trafficIncidentsStatus) {
+ case AVAILABLE:
+ backgroundColor = Color.GREEN;
+ break;
+
+ case PARTLY_AVAILABLE:
+ backgroundColor = Color.ORANGE;
+ break;
+
+ case UNAVAILABLE:
+ backgroundColor = Color.RED;
+ break;
+ }
+ }
+ statusPanel.setBackground(backgroundColor);
+ }
+
+ protected void updateFeedInfo(EList<FeedInformation> feedsInformation) {
+ feedInfoTableModel.setRowCount(feedsInformation.size());
+ int row = 0;
+ for (FeedInformation feedInformation: feedsInformation) {
+ if (feedInformation.getDataProviderName() != null) {
+ feedInfoTableModel.setValueAt(feedInformation.getDataProviderName(), row, 0);
+ } else {
+ feedInfoTableModel.setValueAt("-", row, 0);
+ }
+ if (feedInformation.getProtocolName() != null) {
+ feedInfoTableModel.setValueAt(feedInformation.getProtocolName(), row, 1);
+ } else {
+ feedInfoTableModel.setValueAt("-", row, 1);
+ }
+ if (feedInformation.getCommunicationChannelName() != null) {
+ feedInfoTableModel.setValueAt(feedInformation.getCommunicationChannelName(), row, 2);
+ } else {
+ feedInfoTableModel.setValueAt("-", row, 2);
+ }
+ if (feedInformation.getFeedStatus() != null) {
+ feedInfoTableModel.setValueAt(feedInformation.getFeedStatus().getName(), row, 3);
+ } else {
+ feedInfoTableModel.setValueAt("-", row, 3);
+ }
+ if (feedInformation.getTrafficIncidentsStatus() != null) {
+ feedInfoTableModel.setValueAt(feedInformation.getTrafficIncidentsStatus().getName(), row, 4);
+ } else {
+ feedInfoTableModel.setValueAt("-", row, 4);
+ }
+ row++;
+ }
+ }
+
+ /**
+ * When does the statement isApplicable() evaluate to true?
+ *
+ * If there is no Applicability, it is applicable to all cars.
+ * If there is one Applicability, it is applicable to cars matching the Applicability.
+ * If there is more than one Applicability this should be interpreted as:
+ * - for cars matching Applicability-1
+ * - and for cars matching Applicability-2
+ * - and ....
+ * - and for cars matching Applicability-n.
+ *
+ * In a logical expression this is:
+ * - there is no Applicability
+ * - OR
+ * - vehicle parameters match Applicability-1
+ * - OR vehicle parameters match Applicability-2
+ * - OR ..
+ * - OR vehicle parameters match Applicability-n.
+ *
+ * Or isApplicable() is true if:
+ * - there is no Applicability
+ * - OR ANY Applicability matches the vehicle parameters
+ *
+ * An Applicability matches the vehicle parameters:
+ * - if Applicability contains a vehicleType AND
+ * vehicleType matches the carVehicleType
+ * - AND the VehicleRelatedRestrictions match
+ *
+ * VehicleRelatedRestrictions match if:
+ * - if there are no VehicleRelatedRestrictions
+ * - OR each VehicleRelatedRestriction matches the related car parameter
+ *
+ * How to handle unknown car parameters?
+ * E.g. what if the car type or weight is unknown.
+ * In this case the application has to chose between:
+ * - false positives
+ * Incidents which aren't applicable are treated as applicable.
+ * This is achieved by defining the test related to an unknown parameter to always be true.
+ * - false negatives
+ * Incidents which are applicable aren't treated as applicable.
+ * This is achieved by defining the test related to an unknown parameter to always be false.
+ * It is advised to go for false positives.
+ *
+ * This description shows that it will be simpler to define the isNotApplicable expression (so the expression for the incidents
+ * to be filtered out).
+ *
+ * When does the statement isNotApplicable() evaluate to true?
+ *
+ * isNotApplicable() is true if:
+ * - there is at least one Applicability
+ * - AND all Applicabilities don't match the vehicle parameters.
+ *
+ * An Applicability doesn't match the vehicle parameters:
+ * - if Applicability contains a vehicleType AND
+ * vehicleType doesn't match the carVehicleType
+ * - OR the VehicleRelatedRestrictions don't match
+ *
+ * VehicleRelatedRestrictions don't match if:
+ * - any VehicleRelatedRestriction doesn't match the related car parameter
+ *
+ * Using false positives this changes to:
+ *
+ * An Applicability doesn't match the vehicle parameters:
+ * - if carVehicleType is known AND
+ * Applicability contains a vehicleType AND
+ * vehicleType doesn't match the carVehicleType
+ * - OR the VehicleRelatedRestrictions don't match
+ *
+ * VehicleRelatedRestrictions don't match if:
+ * - any VehicleRelatedRestriction related to a known car parameter doesn't match this parameter
+ *
+ *
+ * This method creates an ApplicabilityExpression for:
+ * - Vehicle type: LORRY
+ * - AXLE_LOAD: 7000 kg (7 tonnes)
+ * - False positives for all other parameters.
+ *
+ * ApplicabilityExpression := applicabilitySpecified AND ALL ApplicabilityDoesntMatchTheVehicleParameters
+ * ApplicabilityExpression := ALL ApplicabilityDoesntMatchTheVehicleParameters
+ * ApplicabilityDoesntMatchTheVehicleParameters := VehicleTypeDoesntMatch OR VehicleRelatedRestrictionsDontMatch
+ * VehicleTypeDoesntMatch := vehicleTypeIsSet AND vehicleType != LORRY
+ * VehicleRelatedRestrictionsDontMatch := ANY VehicleRelatedRestrictionDoesntMatch
+ * VehicleRelatedRestrictionDoesntMatch := AxleLoadNotLessThan7t OR AxleLoadNotGreaterThan7t
+ * AxleLoadNotLessThan7t := restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000
+ * AxleLoadNotGreaterThan7t := restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000
+ * @param axleLoad
+ *
+ * @return
+ */
+ private BooleanExpression createApplicabilityExpression(long axleLoad) {
+ ClassAttribute restrictionType;
+
+ // AxleLoadGreaterThan7t := restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000
+ // Comparison Predicate: restrictionType == AXLE_LOAD_GREATER_THAN
+ ComparisonPredicate restrictionTypeIsAxleLoadGreaterThan = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ restrictionType = FILTER_EXPR_FACTORY.createClassAttribute();
+ restrictionType.setAttributeName(tip.getVehicleRelatedRestriction_RestrictionType().getName());
+ restrictionTypeIsAxleLoadGreaterThan.setAttribute(restrictionType);
+ restrictionTypeIsAxleLoadGreaterThan.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral restrictionTypeGreaterThanEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ restrictionTypeGreaterThanEnumValue.setValue(RestrictionType.AXLE_LOAD_GREATER_THAN.getValue());
+ restrictionTypeIsAxleLoadGreaterThan.setLiteral(restrictionTypeGreaterThanEnumValue);
+
+ // Comparison Predicate: restrictionValue > 7000
+ ComparisonPredicate restrictionValueGreaterThan7t = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ ClassAttribute restrictionValue = FILTER_EXPR_FACTORY.createClassAttribute();
+ restrictionValue.setAttributeName(tip.getVehicleRelatedRestriction_RestrictionValue().getName());
+ restrictionValueGreaterThan7t.setAttribute(restrictionValue);
+ restrictionValueGreaterThan7t.setComparisonOperator(ComparisonOperator.GREATER_THEN);
+ SignedIntegerLiteral literal7t = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ literal7t.setValue(axleLoad);
+ restrictionValueGreaterThan7t.setLiteral(literal7t);
+
+ // Dyadic Expression: restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000
+ DyadicExpression axleLoadGreaterThan7t = FILTER_EXPR_FACTORY.createDyadicExpression();
+ axleLoadGreaterThan7t.setLeftHandTerm(restrictionTypeIsAxleLoadGreaterThan);
+ axleLoadGreaterThan7t.setLogicalOperator(DyadicLogicalOperator.AND);
+ axleLoadGreaterThan7t.setRightHandTerm(restrictionValueGreaterThan7t);
+
+
+ // AxleLoadNotLessThan7t := restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000
+ // Comparison Predicate: restrictionType == AXLE_LOAD_LESS_THAN
+ ComparisonPredicate restrictionTypeIsAxleLoadLessThan = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ restrictionType = FILTER_EXPR_FACTORY.createClassAttribute();
+ restrictionType.setAttributeName(tip.getVehicleRelatedRestriction_RestrictionType().getName());
+ restrictionTypeIsAxleLoadLessThan.setAttribute(restrictionType);
+ restrictionTypeIsAxleLoadLessThan.setComparisonOperator(ComparisonOperator.EQUAL);
+ SignedIntegerLiteral restrictionTypeEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ restrictionTypeEnumValue.setValue(RestrictionType.AXLE_LOAD_LESS_THAN.getValue());
+ restrictionTypeIsAxleLoadLessThan.setLiteral(restrictionTypeEnumValue);
+
+ // Comparison Predicate: restrictionValue < 7000
+ ComparisonPredicate restrictionValueLessThan7t = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ restrictionValue = FILTER_EXPR_FACTORY.createClassAttribute();
+ restrictionValue.setAttributeName(tip.getVehicleRelatedRestriction_RestrictionValue().getName());
+ restrictionValueLessThan7t.setAttribute(restrictionValue);
+ restrictionValueLessThan7t.setComparisonOperator(ComparisonOperator.LESS_THAN);
+ literal7t = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ literal7t.setValue(axleLoad);
+ restrictionValueLessThan7t.setLiteral(literal7t);
+
+ // Dyadic Expression: restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000
+ DyadicExpression axleLoadLessThan7t = FILTER_EXPR_FACTORY.createDyadicExpression();
+ axleLoadLessThan7t.setLeftHandTerm(restrictionTypeIsAxleLoadLessThan);
+ axleLoadLessThan7t.setLogicalOperator(DyadicLogicalOperator.AND);
+ axleLoadLessThan7t.setRightHandTerm(restrictionValueLessThan7t);
+
+ // VehicleRelatedRestrictionDoesntMatch := AxleLoadLessThan7t OR AxleLoadGreaterThan7t
+ // Dyadic Expression: ((restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000) ||
+ // (restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000))
+ DyadicExpression axleLoadLessThan7tOrAxleLoadGreaterThan7t = FILTER_EXPR_FACTORY.createDyadicExpression();
+ axleLoadLessThan7tOrAxleLoadGreaterThan7t.setLeftHandTerm(axleLoadLessThan7t);
+ axleLoadLessThan7tOrAxleLoadGreaterThan7t.setLogicalOperator(DyadicLogicalOperator.OR);
+ axleLoadLessThan7tOrAxleLoadGreaterThan7t.setRightHandTerm(axleLoadGreaterThan7t);
+
+
+ // Sub Class Predicate: Applicability: (isSet(vehicle type) AND vehicle type != LORRY) ||
+ // (restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000) ||
+ // (restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000)
+
+ // VehicleRelatedRestrictionsDontMatch := ANY VehicleRelatedRestrictionDoesntMatch
+ MultiplicityPredicate vehicleRelatedRestrictionsDontMatch = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ vehicleRelatedRestrictionsDontMatch.setListOperator(ListOperator.ANY);
+ ClassAttribute vehicleRelatedRestrictions = FILTER_EXPR_FACTORY.createClassAttribute();
+ vehicleRelatedRestrictions.setAttributeName(tip.getApplicability_VehicleRelatedRestrictions().getName());
+ vehicleRelatedRestrictionsDontMatch.setAttribute(vehicleRelatedRestrictions);
+ vehicleRelatedRestrictionsDontMatch.setExpression(axleLoadLessThan7tOrAxleLoadGreaterThan7t);
+
+ ClassAttribute vehicleType;
+ // VehicleTypeDoesntMatch := isSet(vehicle type) AND vehicleType != LORRY
+
+ // Is Set Predicate: isSet(vehicle type)
+ vehicleType = FILTER_EXPR_FACTORY.createClassAttribute();
+ vehicleType.setAttributeName(tip.getApplicability_VehicleType().getName());
+ IsSetPredicate vehicleTypeIsSet = FILTER_EXPR_FACTORY.createIsSetPredicate();
+ vehicleTypeIsSet.setAttribute(vehicleType);
+
+ // Comparison Predicate: vehicle type != LORRY
+ ComparisonPredicate vehicleTypeNotLorry = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ vehicleType = FILTER_EXPR_FACTORY.createClassAttribute();
+ vehicleType.setAttributeName(tip.getApplicability_VehicleType().getName());
+ vehicleTypeNotLorry.setAttribute(vehicleType);
+ vehicleTypeNotLorry.setComparisonOperator(ComparisonOperator.NOT_EQUAL);
+ SignedIntegerLiteral lorryEnumValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ lorryEnumValue.setValue(VehicleType.LORRY.getValue());
+ vehicleTypeNotLorry.setLiteral(lorryEnumValue);
+
+ // Dyadic Expression: isSet(vehicle type) AND vehicle type != LORRY
+ DyadicExpression vehicleTypeIsSetAndNotLorry = FILTER_EXPR_FACTORY.createDyadicExpression();
+ vehicleTypeIsSetAndNotLorry.setLeftHandTerm(vehicleTypeIsSet);
+ vehicleTypeIsSetAndNotLorry.setLogicalOperator(DyadicLogicalOperator.AND);
+ vehicleTypeIsSetAndNotLorry.setRightHandTerm(vehicleTypeNotLorry);
+
+
+
+ // ApplicabilityDoesntMatchTheVehicleParameters := VehicleTypeDoesntMatch OR VehicleRelatedRestrictionsDontMatch
+ // Dyadic Expression: (isSet(vehicle type) AND vehicle type != LORRY) ||
+ // ((restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000) ||
+ // (restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000))
+ DyadicExpression notLorryAndAxleLoad = FILTER_EXPR_FACTORY.createDyadicExpression();
+ notLorryAndAxleLoad.setLeftHandTerm(vehicleTypeIsSetAndNotLorry);
+ notLorryAndAxleLoad.setLogicalOperator(DyadicLogicalOperator.OR);
+ notLorryAndAxleLoad.setRightHandTerm(vehicleRelatedRestrictionsDontMatch);
+
+ // Sub Class Predicate: Applicability: (isSet(vehicle type) AND vehicle type != LORRY) ||
+ // (restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000) ||
+ // (restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000)
+
+ ClassAttribute applicabilityAttribute;
+
+ // ApplicabilityExpression := ALL ApplicabilityDoesntMatchTheVehicleParameters
+ // Multiplicity Predicate: ALL (Applicability: (isSet(vehicle type) AND vehicle type != LORRY) ||
+ // (restrictionType == AXLE_LOAD_LESS_THAN AND restrictionValue < 7000) ||
+ // (restrictionType == AXLE_LOAD_GREATER_THAN AND restrictionValue > 7000))
+ MultiplicityPredicate allApplicabilityNotLorryAndAxleLoad = FILTER_EXPR_FACTORY.createMultiplicityPredicate();
+ allApplicabilityNotLorryAndAxleLoad.setListOperator(ListOperator.ALL);
+ applicabilityAttribute = FILTER_EXPR_FACTORY.createClassAttribute();
+ applicabilityAttribute.setAttributeName(tip.getTrafficIncident_Applicability().getName());
+ allApplicabilityNotLorryAndAxleLoad.setAttribute(applicabilityAttribute);
+ allApplicabilityNotLorryAndAxleLoad.setExpression(notLorryAndAxleLoad);
+
+ // ApplicabilitySpecified := COUNT(applicability) > 0
+ // Multiplicity Predicate: LIST (COUNT > 0)
+
+ applicabilityAttribute = FILTER_EXPR_FACTORY.createClassAttribute();
+ applicabilityAttribute.setAttributeName(tip.getTrafficIncident_Applicability().getName());
+ applicabilityAttribute.setMetaOperator(MetaOperator.SIZE);
+
+ ComparisonPredicate applicabilityListSizeGreaterThan0 = FILTER_EXPR_FACTORY.createComparisonPredicate();
+ applicabilityListSizeGreaterThan0.setAttribute(applicabilityAttribute);
+ applicabilityListSizeGreaterThan0.setComparisonOperator(ComparisonOperator.GREATER_THEN);
+ SignedIntegerLiteral zeroValue = FILTER_EXPR_FACTORY.createSignedIntegerLiteral();
+ zeroValue.setValue(0l);
+ applicabilityListSizeGreaterThan0.setLiteral(zeroValue);
+
+ DyadicExpression isNotApplicable = FILTER_EXPR_FACTORY.createDyadicExpression();
+ isNotApplicable.setLeftHandTerm(applicabilityListSizeGreaterThan0);
+ isNotApplicable.setLogicalOperator(DyadicLogicalOperator.AND);
+ isNotApplicable.setRightHandTerm(allApplicabilityNotLorryAndAxleLoad);
+
+ return isNotApplicable;
+ }
+
+ private class ListCategoryDefinition {
+ CategoryDefinition categoryDefinition;
+
+ public ListCategoryDefinition(CategoryDefinition categoryDefinition) {
+ this.categoryDefinition = categoryDefinition;
+ }
+
+ public CategoryDefinition getCategoryDefinition() {
+ return categoryDefinition;
+ }
+
+ public String toString() {
+ LOGGER.fine("toString => currentLanguage = " + currentLanguage);
+ String categoryName = null;
+
+ for (LocalizedString localizedString: categoryDefinition.getLocalizedNames()) {
+ if (localizedString.getLanguageCode().equals(currentLanguage) &&
+ (localizedString.getCountryCode() == null ||
+ localizedString.getCountryCode().equals(currentLanguageCountry))) {
+ categoryName = localizedString.getString();
+ LOGGER.fine("Category name found for current language and country");
+ break;
+ }
+ }
+
+ if (categoryName == null) {
+ for (LocalizedString localizedString: categoryDefinition.getLocalizedNames()) {
+ if (localizedString.getLanguageCode().equals(currentLanguage)) {
+ categoryName = localizedString.getString();
+ LOGGER.fine("Category name found for current language");
+ break;
+ }
+ }
+ }
+
+ if (categoryName == null) {
+ LOGGER.fine("Using default (first) language.");
+ categoryName = categoryDefinition.getLocalizedNames(0).getString();
+ }
+
+ LOGGER.fine("toString <=");
+ return categoryName;
+ }
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.java
new file mode 100755
index 0000000..373ece2
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/TrafficInfoMapView.java
@@ -0,0 +1,265 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JCheckBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+
+import openlr.map.MapDatabase;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.genivi.common.CommonFactory;
+import org.genivi.common.Coordinate;
+import org.genivi.common.RectangularArea;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+import org.jdesktop.swingx.JXMapViewer;
+import org.jdesktop.swingx.mapviewer.GeoPosition;
+
+
+public class TrafficInfoMapView extends Thread {
+ private final static Logger LOGGER = Logger.getLogger(TrafficInfoMapView.class.getName());
+ private static final String WINDOW_TITLE = "GENIVI Traffic Information Map View";
+ private static final CommonFactory COMMON_FACTORY = CommonFactory.eINSTANCE;
+ private static EList<RectangularArea> areas;
+
+ private static final String locationString = "location";
+ private static final String locationInfoString = "locationInfo";
+
+ private JFrame frame;
+ private MapDatabase mapDataBase;
+ private TrafficIncidents trafficIncidentsService = null;
+ private TrafficIncidentsListener trafficIncidentsListener;
+ private org.jdesktop.swingx.JXMapKit jXMapKit;
+ private JRadioButton locationButton;
+ private JRadioButton locationInfoButton;
+ private ButtonGroup buttonGroup;
+ private JCheckBox boundingBoxCheckBox;
+ private JCheckBox areaFilterCheckBox;
+ private JCheckBox showFilterAreasCheckBox;
+
+ static {
+ areas = new BasicEList<RectangularArea>();
+
+ RectangularArea area = COMMON_FACTORY.createRectangularArea();
+ Coordinate bottomLeft = COMMON_FACTORY.createCoordinate();
+ bottomLeft.setAltitude(0);
+ bottomLeft.setLongitude(5.06d);
+ bottomLeft.setLatitude(52.08d);
+ Coordinate topRight = COMMON_FACTORY.createCoordinate();
+ topRight.setAltitude(0);
+ topRight.setLongitude(5.10d);
+ topRight.setLatitude(52.11d);
+ area.setBottomLeft(bottomLeft);
+ area.setTopRight(topRight);
+ areas.add(area);
+
+ area = COMMON_FACTORY.createRectangularArea();
+ bottomLeft = COMMON_FACTORY.createCoordinate();
+ bottomLeft.setAltitude(0);
+ bottomLeft.setLongitude(5.07d);
+ bottomLeft.setLatitude(52.07d);
+ topRight = COMMON_FACTORY.createCoordinate();
+ topRight.setAltitude(0);
+ topRight.setLongitude(5.15d);
+ topRight.setLatitude(52.09d);
+ area.setBottomLeft(bottomLeft);
+ area.setTopRight(topRight);
+ areas.add(area);
+ }
+
+ public TrafficInfoMapView(MapDatabase mapDataBase, TrafficIncidents trafficIncidentsService) {
+ LOGGER.setLevel(Level.SEVERE);
+ LOGGER.info("Creating TrafficInfoMapView");
+ this.mapDataBase = mapDataBase;
+ this.trafficIncidentsService = trafficIncidentsService;
+
+ trafficIncidentsListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getTrafficIncidentIdsReply(EList<Integer> incidentIds) {
+ LOGGER.info("getTrafficIncidentIdsReply called.");
+ getAndShowTrafficInfoStep2(incidentIds);
+ }
+
+ @Override
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ LOGGER.info("getTrafficIncidentsReply called.");
+ getAndShowTrafficInfoStep3(trafficIncidents);
+ }
+ };
+
+ frame = new JFrame();
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ frame.setTitle(WINDOW_TITLE);
+
+ jXMapKit = new org.jdesktop.swingx.JXMapKit();
+ jXMapKit.setDefaultProvider(org.jdesktop.swingx.JXMapKit.DefaultProviders.OpenStreetMaps);
+ jXMapKit.setDataProviderCreditShown(true);
+ jXMapKit.setPreferredSize(new Dimension(600, 500));
+ jXMapKit.setZoom(3);
+ jXMapKit.setAddressLocationShown(false);
+ jXMapKit.setAddressLocation(new GeoPosition(52.095,5.088));
+ frame.getContentPane().add(jXMapKit);
+
+ frame.getContentPane().add(createControlPanel(), BorderLayout.NORTH);
+
+ //Display the window.
+ frame.pack();
+ frame.setVisible(true);
+ getAndShowTrafficInfoStep3(null);
+ start();
+ }
+
+ private JPanel createControlPanel() {
+ JPanel panel = new JPanel();
+ panel.add(createLocationControlPanel());
+ panel.add(createBoundingBoxPanel());
+ panel.add(createFilterPanel());
+
+ return panel;
+ }
+
+ private JPanel createLocationControlPanel() {
+ JPanel panel = new JPanel();
+ panel.setBorder(BorderFactory.createEtchedBorder());
+
+ JLabel label = new JLabel("draw location from: ");
+ panel.add(label);
+
+ locationButton = new JRadioButton(locationString);
+ locationButton.setSelected(true);
+ panel.add(locationButton);
+ locationInfoButton = new JRadioButton(locationInfoString);
+ panel.add(locationInfoButton);
+
+ buttonGroup = new ButtonGroup();
+ buttonGroup.add(locationButton);
+ buttonGroup.add(locationInfoButton);
+
+ return panel;
+ }
+
+
+ private JPanel createBoundingBoxPanel() {
+ JPanel panel = new JPanel();
+ panel.setBorder(BorderFactory.createEtchedBorder());
+
+ boundingBoxCheckBox = new JCheckBox("bounding box");
+ panel.add(boundingBoxCheckBox);
+
+ return panel;
+ }
+
+ private JPanel createFilterPanel() {
+ JPanel panel = new JPanel();
+ panel.setBorder(BorderFactory.createEtchedBorder());
+
+ areaFilterCheckBox = new JCheckBox("area filter");
+ panel.add(areaFilterCheckBox);
+
+ showFilterAreasCheckBox = new JCheckBox("show filter areas");
+ panel.add(showFilterAreasCheckBox);
+
+ return panel;
+ }
+
+ public void run() {
+ for ( ; ; ) {
+ if (trafficIncidentsService != null) {
+ getAndShowTrafficInfoStep1();
+ } else {
+ System.out.println("TrafficInfoMapView: No Traffic Incidents Service");
+ }
+
+ try {
+ sleep(1000 * 3);
+ } catch (InterruptedException e) {
+ System.out.println("TrafficInfoMapView woke up too early");
+ }
+ }
+ }
+
+ private void getAndShowTrafficInfoStep1() {
+ LOGGER.info("Polling; calling getTrafficIncidentIds()");
+ if (areaFilterCheckBox.isSelected()) {
+ trafficIncidentsService.getTrafficIncidentIdsInAreas(trafficIncidentsListener, new BasicEList<WarningLevel>(), new BasicEList<Integer>(), areas);
+ } else {
+ trafficIncidentsService.getTrafficIncidentIds(trafficIncidentsListener, new BasicEList<WarningLevel>(), new BasicEList<Integer>());
+ }
+ }
+
+ private void getAndShowTrafficInfoStep2(EList<Integer> incidentIds) {
+ if (incidentIds != null && incidentIds.size() > 0) {
+ LOGGER.info("There are incidents, calling getTrafficIncidents().");
+ trafficIncidentsService.getTrafficIncidents(trafficIncidentsListener, incidentIds, false);
+ } else {
+ LOGGER.info("No incidents.");
+ getAndShowTrafficInfoStep3(null);
+ }
+ }
+
+ public void getAndShowTrafficInfoStep3(EList<TrafficIncident> incidents) {
+ TrafficIncidentsPainter<JXMapViewer> painter = new TrafficIncidentsPainter<JXMapViewer>(mapDataBase);
+
+ painter.setIncidents(incidents);
+ boolean useCoordinates;
+ if (locationButton.isSelected()) {
+ LOGGER.info("useCoordinates = true");
+ useCoordinates = true;
+ } else {
+ LOGGER.info("useCoordinates = false");
+ useCoordinates = false;
+ }
+
+ painter.setUseCoordinates(useCoordinates);
+
+ painter.setDrawBoundingBox(boundingBoxCheckBox.isSelected());
+
+ if (showFilterAreasCheckBox.isSelected()) {
+ painter.setAreas(areas);
+ }
+
+ jXMapKit.getMainMap().setOverlayPainter(painter);
+ }
+
+ /**
+ * Create the GUI and show it. For thread safety,
+ * this method should be invoked from the
+ * event-dispatching thread.
+ */
+ private static void createAndShowGUI() {
+ TrafficInfoMapView trafficInfoMapView = new TrafficInfoMapView(null, null);
+
+ trafficInfoMapView.getAndShowTrafficInfoStep3(null);
+ }
+
+ public static void main(String[] args) {
+ //Schedule a job for the event-dispatching thread:
+ //creating and showing this application's GUI.
+ javax.swing.SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ createAndShowGUI();
+ }
+ });
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.java
new file mode 100755
index 0000000..5d23095
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsexampleclients/src/main/java/org/genivi/trafficinfo/trafficincidentsexampleclients/WarningClient.java
@@ -0,0 +1,240 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsexampleclients;
+
+import java.awt.Color;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.BorderFactory;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.genivi.location.LinearLocationInfo;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidentField;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.Cause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.DirectCause;
+import org.genivi.trafficincidentsservice.trafficincidents.trafficincident.TrafficIncident;
+import org.genivi.trafficincidentsservice.trafficincidenttables.WarningLevel;
+
+@SuppressWarnings("serial")
+public class WarningClient extends JFrame{
+ private final static Logger LOGGER = Logger.getLogger(TrafficInfoMapView.class.getName());
+ private static final String TITLE = "Traffic Incident Warning";
+ private static final BasicEList<WarningLevel> severities = new BasicEList<WarningLevel>();
+ private static final BasicEList<TrafficIncidentField> trafficIncidentFields = new BasicEList<TrafficIncidentField>();
+
+ private TrafficIncidents trafficIncidentsService;
+ private TrafficIncidentsListener trafficIncidentsListener;
+ private JPanel warningPanel;
+
+ static {
+ severities.add(WarningLevel.DANGER_LEVEL_1);
+ severities.add(WarningLevel.DANGER_LEVEL_2);
+ severities.add(WarningLevel.DANGER_LEVEL_3);
+ trafficIncidentFields.add(TrafficIncidentField.CAUSES);
+ trafficIncidentFields.add(TrafficIncidentField.LOCATION_INFO);
+ trafficIncidentFields.add(TrafficIncidentField.CAUSE_TEXTS);
+ }
+
+ public WarningClient(TrafficIncidents trafficIncidents) {
+ super(TITLE);
+
+ LOGGER.setLevel(Level.SEVERE);
+
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ this.trafficIncidentsService = trafficIncidents;
+
+ trafficIncidentsListener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void updates(EList<Integer> unchangedTrafficIncidentIds, EList<Integer> changedTrafficIncidentIds, EList<Integer> newTrafficIncidentIds, EList<Integer> deletedTrafficIncidentIds) {
+ LOGGER.info("updates() called.");
+
+ EList<Integer> incidentIds = new BasicEList<>(unchangedTrafficIncidentIds);
+ incidentIds.addAll(changedTrafficIncidentIds);
+ incidentIds.addAll(newTrafficIncidentIds);
+
+ // Update text pane with the new information.
+ handleTrafficIncidentIdsReply(incidentIds);
+ }
+
+ @Override
+ public void getTrafficIncidentsReply(EList<TrafficIncident> trafficIncidents) {
+ LOGGER.info("getTrafficIncidentsReply() called.");
+ updateWarningPanel(trafficIncidents);
+ }
+
+ @Override
+ public void addUpdateListenerReply() {
+ // No action.
+ LOGGER.info("Call to addUpdateListenerReply ignored.");
+ }
+ };
+
+ Container contentPane = getContentPane();
+ contentPane.add(createTextPanel());
+ pack();
+
+ trafficIncidentsService.addUpdateListener(trafficIncidentsListener, severities, new BasicEList<Integer>(), trafficIncidentsListener);
+ }
+
+
+ /**
+ * Create a panel for the Full message texts.
+ */
+ private JPanel createTextPanel() {
+ warningPanel = new JPanel();
+ warningPanel.setLayout(new FlowLayout());
+ Dimension warningPanelSize = new Dimension(1000, 500);
+ warningPanel.setMinimumSize(warningPanelSize);
+ warningPanel.setPreferredSize(warningPanelSize);
+
+ return warningPanel;
+ }
+
+
+ /**
+ * First step in updating the text panel:
+ * - hide the Frame if there are no incidents.
+ * - otherwise send a request for the texts, with textListener as listener.
+ */
+ private void handleTrafficIncidentIdsReply(EList<Integer> incidentIds) {
+ LOGGER.info("=>");
+ if (incidentIds == null || incidentIds.size() == 0) {
+ LOGGER.info("<= No Traffic Incidents.");
+ warningPanel.removeAll();
+ setVisible(false);
+ return;
+ }
+
+ trafficIncidentsService.getTrafficIncidentsFields(trafficIncidentsListener, incidentIds, trafficIncidentFields);
+ LOGGER.info("<= Traffic Incidents.");
+ }
+
+ /**
+ * Second step in updating the Full text panel:
+ * - display the received texts.
+ */
+ private void updateWarningPanel(EList<TrafficIncident> trafficIncidents) {
+ LOGGER.info("=>");
+ warningPanel.removeAll();
+
+ for (TrafficIncident trafficIncident: trafficIncidents) {
+ StringBuffer buf = new StringBuffer();
+
+ EList<Cause> causes = trafficIncident.getCauses();
+ EList<String> causeTexts = trafficIncident.getCauseTexts();
+
+ if (causes.size() != causeTexts.size()) {
+ throw new RuntimeException("Unequal sizes of causes and cause texts");
+ }
+
+ for (int i = 0; i < causes.size(); i++) {
+ // Only if it is a DirectCause there can be a WarningLevel, so it may have to be shown.
+ Cause cause = causes.get(i);
+ if (cause instanceof DirectCause) {
+ DirectCause directCause = (DirectCause) cause;
+ WarningLevel warningLevel = null;
+ if (directCause.isSetWarningLevel()) {
+ warningLevel = directCause.getWarningLevel();
+ }
+ if (warningLevel != null && severities.contains(warningLevel)) {
+ buf.setLength(0);
+ generateLocationText(buf, trafficIncident);
+ buf.append(" ");
+
+ String causeText = causeTexts.get(i);
+ buf.append(causeText);
+ warningPanel.add(createWarningPanel(buf.toString(), warningLevel));
+ }
+ }
+ }
+ }
+
+ this.repaint();
+ setVisible(true);
+ LOGGER.info("<= visible");
+ }
+
+ private void generateLocationText(StringBuffer buf, TrafficIncident trafficIncident) {
+
+ if (trafficIncident.isSetLocationInfo()) {
+ LinearLocationInfo linearLocationInfo = (LinearLocationInfo) trafficIncident.getLocationInfo();
+ buf.append("on the ");
+ buf.append(linearLocationInfo.getName());
+ buf.append(" from ");
+ buf.append(linearLocationInfo.getFromLocationParentName());
+ buf.append(" to ");
+ buf.append(linearLocationInfo.getFromLocationName());
+ buf.append(" between ");
+ buf.append(linearLocationInfo.getToLocationName());
+ buf.append(" and ");
+ buf.append(linearLocationInfo.getToLocationParentName());
+ }
+ }
+
+ private JPanel createWarningPanel(String text, WarningLevel warningLevel) {
+ JPanel panel = new JPanel();
+
+ String title;
+ if (warningLevel != null) {
+ title = warningLevel.getName();
+ } else {
+ title = "No warning level available in the Traffic Incident";
+ }
+
+ panel.setBorder(BorderFactory.createTitledBorder(title));
+
+ JTextArea textArea = new JTextArea(6, 80);
+ textArea.setLineWrap(true);
+ textArea.setEditable(false);
+ textArea.setText(text);
+ JScrollPane scrollPane = new JScrollPane(textArea);
+
+ Color backgroundColor = null;
+ if (warningLevel != null) {
+ switch (warningLevel) {
+ case DANGER_LEVEL_1:
+ backgroundColor = Color.YELLOW;
+ break;
+
+ case DANGER_LEVEL_2:
+ backgroundColor = Color.ORANGE;
+ break;
+
+ case DANGER_LEVEL_3:
+ backgroundColor = Color.RED;
+ break;
+
+ default:
+ // should not occur, no specific background color.
+ break;
+ }
+ }
+
+ if (backgroundColor != null) {
+ panel.setBackground(backgroundColor);
+ }
+
+ panel.add(scrollPane);
+
+ return panel;
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.classpath b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.classpath
new file mode 100755
index 0000000..70e4dec
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.classpath
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/dbuswrapper/1.0-SNAPSHOT/dbuswrapper-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.trafficincidentsexampleclients"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsfeed.tpegtec"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tecservice"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx/none/org.jdesktop.swingx-none.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx-ws/2007_10_14/org.jdesktop.swingx-ws-2007_10_14.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.project b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.project
new file mode 100755
index 0000000..eef6edf
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidentslistclient</name>
+ <comment>This project contains the List Client of the Traffic Incidents Service of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.trafficincidentsexampleclients</project>
+ <project>org.genivi.trafficincidentsfeed.tpegtec</project>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ <project>org.genivi.trafficinfo.tpeg.tecservice</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/ReadMe.confluence b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/ReadMe.confluence
new file mode 100755
index 0000000..151615c
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/ReadMe.confluence
@@ -0,0 +1,2 @@
+This project contains a class to start the TrafficInfoListDisplay from
+org.genivi.trafficinfo.trafficincidentsexampleclients on top of a D-Bus proxy. \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/pom.xml b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/pom.xml
new file mode 100755
index 0000000..9a2f178
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentslistclient</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents List client</name>
+ <description>This project contains the List Client of the Traffic Incidents Service of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsexampleclients</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficinfo.trafficincidentslistclient.TrafficIncidentsListClient</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/src/main/java/org/genivi/trafficinfo/trafficincidentslistclient/TrafficIncidentsListClient.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/src/main/java/org/genivi/trafficinfo/trafficincidentslistclient/TrafficIncidentsListClient.java
new file mode 100755
index 0000000..4d32ba3
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentslistclient/src/main/java/org/genivi/trafficinfo/trafficincidentslistclient/TrafficIncidentsListClient.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentslistclient;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.JOptionPane;
+
+import org.eclipse.emf.common.util.EList;
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.trafficincidentsservice.CategoryDefinition;
+import org.genivi.trafficincidentsservice.DefaultTrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.TrafficIncidentsListener;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.impl.TrafficIncidentsDBusProxy;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.TrafficInfoListDisplay;
+
+
+public class TrafficIncidentsListClient {
+ private final static Logger LOGGER = Logger.getLogger(TrafficIncidentsListClient.class.getName());
+ private static final String NEWLINE = System.getProperty("line.separator");
+ private final static String TRAFFIC_INCIDENTS_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsDBus";
+ private final static String TRAFFIC_INCIDENTS_SERVICE_OBJECT_PATH = "/java";
+
+ private String trafficIncidentsInterfaceName = TRAFFIC_INCIDENTS_SERVICE_NAME;
+ private String trafficIncidentsObjectPath = TRAFFIC_INCIDENTS_SERVICE_OBJECT_PATH;
+
+ private TrafficIncidents trafficIncidentsService;
+ private boolean waitingForReply;
+ private EList<CategoryDefinition> categoryDefinitions;
+
+ TrafficIncidentsListClient() throws DBusException {
+ // Create the Traffic Information Provider Proxy
+ trafficIncidentsService = new TrafficIncidentsDBusProxy(
+ trafficIncidentsInterfaceName, trafficIncidentsObjectPath);
+
+ // Wait for configuration to be ready, checked by category definitions being available.
+ TrafficIncidentsListener listener = new DefaultTrafficIncidentsListener() {
+
+ @Override
+ public void getCategoryDefinitionsReply(EList<CategoryDefinition> categoryDefinitions) {
+ LOGGER.info("getCategoryDefinitionsReply => categoryDefinitions = " + categoryDefinitions);
+ handleCategoryDefinitionsReceived(categoryDefinitions);
+ }
+ };
+
+ while (categoryDefinitions == null || categoryDefinitions.isEmpty()) {
+ LOGGER.info("Waiting for category definitions");
+ waitingForReply = true;
+ trafficIncidentsService.getCategoryDefinitions(listener);
+
+ while (waitingForReply) {
+ try {
+ Thread.sleep(50);
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
+ // Create the List Display
+ TrafficInfoListDisplay trafficIncidentsListDisplay = new TrafficInfoListDisplay(trafficIncidentsService);
+ trafficIncidentsListDisplay.setVisible(true);
+
+ }
+
+ protected void handleCategoryDefinitionsReceived(EList<CategoryDefinition> categoryDefinitions) {
+ this.categoryDefinitions = categoryDefinitions;
+ waitingForReply = false;
+ }
+
+ public static void main(String[] args) throws DBusException {
+ LOGGER.setLevel(Level.SEVERE);
+
+ // Check the arguments and if not OK, show a message and exit.
+ // The TrafficIncidentsListClient has no arguments.
+ if (args.length != 0) {
+ showUsageInfoDialogAndExit(args);
+ }
+
+ @SuppressWarnings("unused")
+ TrafficIncidentsListClient trafficIncidentsListClient = new TrafficIncidentsListClient();
+ }
+
+ private static void showUsageInfoDialogAndExit(final String[] args) {
+ StringBuilder argInfo = new StringBuilder();
+
+ argInfo.append("TrafficIncidentsListClient has to be called without arguments.").append(NEWLINE);
+ argInfo.append("The following arguments were given:");
+ for (int i = 0; i < args.length; i++) {
+ argInfo.append(NEWLINE).append(args[i]);
+ }
+
+ JOptionPane.showMessageDialog(null,
+ argInfo.toString(),
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+
+ System.exit(0);
+ }
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.classpath b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.classpath
new file mode 100755
index 0000000..70e4dec
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.classpath
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/dbuswrapper/1.0-SNAPSHOT/dbuswrapper-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.trafficincidentsexampleclients"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsfeed.tpegtec"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tecservice"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx/none/org.jdesktop.swingx-none.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx-ws/2007_10_14/org.jdesktop.swingx-ws-2007_10_14.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.project b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.project
new file mode 100755
index 0000000..47ff566
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidentsmapclient</name>
+ <comment>This project contains the Map Client of the Traffic Incidents Service of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.trafficincidentsexampleclients</project>
+ <project>org.genivi.trafficincidentsfeed.tpegtec</project>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ <project>org.genivi.trafficinfo.tpeg.tecservice</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/ReadMe.confluence b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/ReadMe.confluence
new file mode 100755
index 0000000..1832836
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains a class to start the TrafficInfoMapView from org.genivi.trafficinfo.trafficincidentsexampleclients on top of a D-Bus proxy. \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/pom.xml b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/pom.xml
new file mode 100755
index 0000000..026be40
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsmapclient</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Map client</name>
+ <description>This project contains the Map Client of the Traffic Incidents Service of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsexampleclients</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficinfo.trafficincidentsmapclient.TrafficIncidentsMapClient</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/src/main/java/org/genivi/trafficinfo/trafficincidentsmapclient/TrafficIncidentsMapClient.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/src/main/java/org/genivi/trafficinfo/trafficincidentsmapclient/TrafficIncidentsMapClient.java
new file mode 100755
index 0000000..8cbe31b
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentsmapclient/src/main/java/org/genivi/trafficinfo/trafficincidentsmapclient/TrafficIncidentsMapClient.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentsmapclient;
+
+import javax.swing.JOptionPane;
+
+import openlr.map.MapDatabase;
+import openlr.map.teleatlas.sqlite.impl.MapDatabaseImpl;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.impl.TrafficIncidentsDBusProxy;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.TrafficInfoMapView;
+
+public class TrafficIncidentsMapClient {
+ private final static String MAP_PATH = "../resources/tomtom_utrecht_2008_04.db3";
+ private static final String NEWLINE = System.getProperty("line.separator");
+ private final static String TRAFFIC_INCIDENTS_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsDBus";
+ private final static String TRAFFIC_INCIDENTS_GATEWAY_NAME = "org.genivi.trafficinfo.TrafficIncidentsGateway";
+ private final static String OBJECT_PATH_SERVICE = "/java";
+ private final static String OBJECT_PATH_GATEWAY = "/cpp";
+ private String objectPath = OBJECT_PATH_SERVICE;
+ private String interfaceName = TRAFFIC_INCIDENTS_SERVICE_NAME;
+
+ private MapDatabase mapDataBase;
+ private TrafficIncidents trafficIncidentsService;
+
+ TrafficIncidentsMapClient(boolean useCppGateway) throws DBusException {
+ if (useCppGateway) {
+ objectPath = OBJECT_PATH_GATEWAY;
+ interfaceName = TRAFFIC_INCIDENTS_GATEWAY_NAME;
+ }
+
+ // Open a map database to be used by the Map Display
+ mapDataBase = new MapDatabaseImpl(MAP_PATH);
+
+ // Create the Traffic Information Provider Proxy
+// trafficIncidentsService = createTrafficIncidentsServiceProxy();
+ trafficIncidentsService = new TrafficIncidentsDBusProxy(interfaceName, objectPath);
+
+ // Create the Map Display
+ @SuppressWarnings("unused")
+ TrafficInfoMapView trafficInfoMapView = new TrafficInfoMapView(mapDataBase, trafficIncidentsService);
+ }
+
+// private TrafficIncidents createTrafficIncidentsServiceProxy() throws DBusException {
+// DBusConnection conn = DBusConnection.getConnection(DBusConnection.SESSION);
+//
+// // Show the D-Bus xml interface definition
+// Introspectable introSpectable = (Introspectable) conn.getRemoteObject(interfaceName, objectPath, Introspectable.class);
+// boolean introspectOk = false;
+// while (!introspectOk) {
+// LOGGER.info("Waiting for service to become available ...");
+// try {
+// String data = introSpectable.Introspect();
+// LOGGER.info("Introspectable: " + data);
+// introspectOk = true;
+// } catch (Exception e) {
+// LOGGER.severe(e.getMessage());
+// }
+// try {
+// Thread.sleep(500);
+// } catch (InterruptedException e) {
+// }
+// }
+//
+// TrafficIncidentsDBus trafficIncidentsDBus = (TrafficIncidentsDBus) conn.getRemoteObject(interfaceName, objectPath, TrafficIncidentsDBus.class);
+// LOGGER.info("TrafficIncidentsDBus obtained");
+//
+// TrafficIncidentsDBusProxy trafficIncidentsDBusProxy = new TrafficIncidentsDBusProxy(conn, trafficIncidentsDBus, null);
+//
+// return trafficIncidentsDBusProxy;
+// }
+
+ public static void main(String[] args) throws DBusException {
+ boolean useGateway = false;
+
+ // Check the arguments and if not OK, show a message and exit.
+ // The TrafficIncidentsMapClient has 1 optional argument: to use the C++ gateway.
+ if ((args.length != 0 && args.length != 1) ||
+ (args.length != 0 && !args[0].equals("useGateway"))) {
+ showUsageInfoDialogAndExit(args);
+ }
+
+ if (args.length != 0 && args[0].equals("useGateway")) {
+ useGateway = true;
+ }
+
+ @SuppressWarnings("unused")
+ TrafficIncidentsMapClient trafficIncidentsListClient = new TrafficIncidentsMapClient(useGateway);
+ }
+
+ private static void showUsageInfoDialogAndExit(final String[] args) {
+ StringBuilder argInfo = new StringBuilder();
+
+ argInfo.append("TrafficIncidentsMapClient has one optional argument: useGateway.").append(NEWLINE);
+ argInfo.append("By default this client directly talks to the Java server").append(NEWLINE);
+ argInfo.append("If 'useGateway' is specified, it will talk to the C++ gateway.").append(NEWLINE);
+ argInfo.append("The following arguments were given:");
+ for (int i = 0; i < args.length; i++) {
+ argInfo.append(NEWLINE).append(args[i]);
+ }
+
+ JOptionPane.showMessageDialog(null,
+ argInfo.toString(),
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+
+ System.exit(0);
+ }
+
+}
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.classpath b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.classpath
new file mode 100755
index 0000000..70e4dec
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.classpath
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/dbuswrapper/1.0-SNAPSHOT/dbuswrapper-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/basetypes-model/1.0-SNAPSHOT/basetypes-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.common/2.8.0.v20130125-0546/org.eclipse.emf.common-2.8.0.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore/2.8.3.v20130125-0546/org.eclipse.emf.ecore-2.8.3.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/emf/org.eclipse.emf.ecore.xmi/2.8.1.v20130125-0546/org.eclipse.emf.ecore.xmi-2.8.1.v20130125-0546.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/1.0-SNAPSHOT/trafficinfo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-cli-sqlite-with-dependencies/1.2.2/openlr-cli-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map/1.2.2/openlr-map-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/openlr/openlr-map-sqlite-with-dependencies/1.2.2/openlr-map-sqlite-with-dependencies-1.2.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/dbus-java/1.0-SNAPSHOT/dbus-java-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/libmatthew/1.0-SNAPSHOT/libmatthew-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentsservice-model/1.0-SNAPSHOT/trafficincidentsservice-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/booleanexpr-model/1.0-SNAPSHOT/booleanexpr-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.3.1/junit-4.3.1.jar" sourcepath="M2_REPO/junit/junit/4.3.1/junit-4.3.1-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/junit/junit/4.3.1/junit-4.3.1-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficinfo/demo/1.0-SNAPSHOT/demo-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/iconset-model/1.0-SNAPSHOT/iconset-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/locref-model/1.0-SNAPSHOT/locref-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidents/trafficincidents-trafficincident-model/1.0-SNAPSHOT/trafficincidents-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidenttables-model/1.0-SNAPSHOT/trafficincidenttables-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/genivi/trafficincidentsservice/trafficincidentfeed/trafficincidentfeed-trafficincident-model/1.0-SNAPSHOT/trafficincidentfeed-trafficincident-model-1.0-SNAPSHOT.jar"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.trafficincidentsexampleclients"/>
+ <classpathentry kind="src" path="/org.genivi.trafficincidentsfeed.tpegtec"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwk"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegfwktypes-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.sni-model"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpegtables"/>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tec.event-model"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar">
+ <attributes>
+ <attribute value="jar:file:/D:/maven_repository/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" name="javadoc_location"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="/org.genivi.trafficinfo.tpeg.tecservice"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx/none/org.jdesktop.swingx-none.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jdesktop/org.jdesktop.swingx-ws/2007_10_14/org.jdesktop.swingx-ws-2007_10_14.jar"/>
+</classpath> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.project b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.project
new file mode 100755
index 0000000..236f6cd
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.trafficincidentswarningclient</name>
+ <comment>This project contains the Warning Client of the Traffic Incidents Service of the GENIVI Traffic Information project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ <project>org.genivi.trafficinfo.trafficincidentsexampleclients</project>
+ <project>org.genivi.trafficincidentsfeed.tpegtec</project>
+ <project>org.genivi.trafficinfo.tpegfwk</project>
+ <project>org.genivi.trafficinfo.tpegfwktypes-model</project>
+ <project>org.genivi.trafficinfo.tpeg.sni-model</project>
+ <project>org.genivi.trafficinfo.tpegtables</project>
+ <project>org.genivi.trafficinfo.tpeg.tec.event-model</project>
+ <project>org.genivi.trafficinfo.tpeg.tecservice</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/ReadMe.confluence b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/ReadMe.confluence
new file mode 100755
index 0000000..da43e05
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/ReadMe.confluence
@@ -0,0 +1 @@
+This project contains a class to start the WarningClient from org.genivi.trafficinfo.trafficincidentsexampleclients on top of a D-Bus proxy. \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/pom.xml b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/pom.xml
new file mode 100755
index 0000000..aeb28aa
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance" xmlns="http://maven.apache.org/POM/4.0"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentswarningclient</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>GENIVI Traffic Incidents Warning client</name>
+ <description>This project contains the Warning Client of the Traffic Incidents Service of the GENIVI Traffic Information project.</description>
+ <parent>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../../org.genivi.trafficinfo.maven-parent</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsexampleclients</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.genivi.trafficinfo.trafficincidentswarningclient.TrafficIncidentsWarningClient</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/src/main/java/org/genivi/trafficinfo/trafficincidentswarningclient/TrafficIncidentsWarningClient.java b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/src/main/java/org/genivi/trafficinfo/trafficincidentswarningclient/TrafficIncidentsWarningClient.java
new file mode 100755
index 0000000..2240535
--- /dev/null
+++ b/test/traffic-incidents-service/hmi/org.genivi.trafficinfo.trafficincidentswarningclient/src/main/java/org/genivi/trafficinfo/trafficincidentswarningclient/TrafficIncidentsWarningClient.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (C) 2013 TomTom International B.V.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+package org.genivi.trafficinfo.trafficincidentswarningclient;
+
+import javax.swing.JOptionPane;
+
+import org.freedesktop.dbus.exceptions.DBusException;
+import org.genivi.trafficincidentsservice.TrafficIncidents;
+import org.genivi.trafficincidentsservice.trafficincidents.dbus.impl.TrafficIncidentsDBusProxy;
+import org.genivi.trafficinfo.trafficincidentsexampleclients.WarningClient;
+
+public class TrafficIncidentsWarningClient {
+ private static final String NEWLINE = System.getProperty("line.separator");
+ private final static String TRAFFIC_INCIDENTS_SERVICE_NAME = "org.genivi.trafficinfo.TrafficIncidentsDBus";
+ private final static String OBJECT_PATH_SERVICE = "/java";
+ private String objectPath = OBJECT_PATH_SERVICE;
+ private String interfaceName = TRAFFIC_INCIDENTS_SERVICE_NAME;
+
+ private TrafficIncidents trafficIncidentsService;
+
+ TrafficIncidentsWarningClient() throws DBusException {
+ // Create the Traffic Information Provider Proxy
+ trafficIncidentsService = new TrafficIncidentsDBusProxy(interfaceName, objectPath);
+
+ // Create the Warning Client
+ @SuppressWarnings("unused")
+ WarningClient trafficInfoMapView = new WarningClient(trafficIncidentsService);
+ }
+
+ public static void main(String[] args) throws DBusException {
+ // Check the arguments and if not OK, show a message and exit.
+ // The TrafficIncidentsWarningClient has no arguments.
+ if (args.length != 0) {
+ showUsageInfoDialogAndExit(args);
+ }
+
+ @SuppressWarnings("unused")
+ TrafficIncidentsWarningClient trafficIncidentsWarningClient = new TrafficIncidentsWarningClient();
+ }
+
+ private static void showUsageInfoDialogAndExit(final String[] args) {
+ StringBuilder argInfo = new StringBuilder();
+
+ argInfo.append("TrafficIncidentsWarningClient has to be called without arguments.").append(NEWLINE);
+ argInfo.append("The following arguments were given:");
+ for (int i = 0; i < args.length; i++) {
+ argInfo.append(NEWLINE).append(args[i]);
+ }
+
+ JOptionPane.showMessageDialog(null,
+ argInfo.toString(),
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+
+ System.exit(0);
+ }
+
+}
diff --git a/test/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project b/test/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project
new file mode 100755
index 0000000..5a1a074
--- /dev/null
+++ b/test/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.genivi.trafficinfo.maven-parent</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/test/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml b/test/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml
new file mode 100755
index 0000000..86de90a
--- /dev/null
+++ b/test/traffic-incidents-service/org.genivi.trafficinfo.maven-parent/pom.xml
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>TrafficInfo Project Parent Pom</name>
+ <description>Top level project for all GENIVI TrafficIncidentsService Eclipse projects.</description>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>Codehaus Snapshots</id>
+ <url>http://nexus.codehaus.org/snapshots/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled> <!-- Workaround for MNG-2974, see note below -->
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>demo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg.tec</groupId>
+ <artifactId>event-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>tecservice</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwk</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegfwktypes-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>tpegtables</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-cli-sqlite-with-dependencies</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>openlr</groupId>
+ <artifactId>openlr-map-sqlite-with-dependencies</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ <version>2.8.0.v20130125-0546</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore</artifactId>
+ <version>2.8.3.v20130125-0546</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ <version>2.8.1.v20130125-0546</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>basetypes-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>booleanexpr-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>iconset-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>locref-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo.tpeg</groupId>
+ <artifactId>sni-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsfeed</groupId>
+ <artifactId>tpegtec</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>dbuswrapper</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi</groupId>
+ <artifactId>trafficinfo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidents</groupId>
+ <artifactId>trafficincidents-trafficincident-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidentsservice-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice</groupId>
+ <artifactId>trafficincidenttables-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficincidentsservice.trafficincidentfeed</groupId>
+ <artifactId>trafficincidentfeed-trafficincident-model</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>libmatthew</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>dbus-java</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.genivi.trafficinfo</groupId>
+ <artifactId>trafficincidentsexampleclients</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jdesktop</groupId>
+ <artifactId>org.jdesktop.swingx</artifactId>
+ <version>none</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jdesktop</groupId>
+ <artifactId>org.jdesktop.swingx-ws</artifactId>
+ <version>2007_10_14</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <modules>
+ <module>../feed/org.genivi.trafficinfo.tpegfwktypes-model</module>
+ <module>../feed/org.genivi.trafficinfo.tpegtables</module>
+ <module>../feed/org.genivi.trafficinfo.tpeg.sni-model</module>
+ <module>../feed/org.genivi.trafficinfo.tpegfwk</module>
+ <module>../feed/org.genivi.trafficinfo.tpeg.tec.event-model</module>
+ <module>../feed/org.genivi.trafficincidentsfeed.tpegtec</module>
+ <module>../feed/org.genivi.trafficinfo.tpeg.tecservice</module>
+ <module>../feed/org.genivi.trafficinfo.trafficincidenttestfeed</module>
+ <module>../hmi/org.genivi.trafficinfo.trafficincidentsexampleclients</module>
+ <module>../hmi/org.genivi.trafficinfo.trafficincidentsconfiguration</module>
+ <module>../hmi/org.genivi.trafficinfo.trafficincidentslistclient</module>
+ <module>../hmi/org.genivi.trafficinfo.trafficincidentsmapclient</module>
+ <module>../hmi/org.genivi.trafficinfo.trafficincidentswarningclient</module>
+ <module>../hmi/org.genivi.trafficinfo.poc</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.5.1</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.9</version>
+ <configuration>
+ <projectNameTemplate>[groupId].[artifactId]</projectNameTemplate>
+ <downloadSources>true</downloadSources>
+ <downloadJavadocs>true</downloadJavadocs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file